PGC(Program Chain)に使われる命令セット(Instruction Set)
(1)特別な命令(Special instructions)
| NOP | 00 00 00 00 00 00 00 00 | ||
| Goto line# 3 | 00 01 00 00 00 00 00 03 | ☆☆ | |
| Break | 00 02 00 00 00 00 00 00 | ||
| SetTmpPML lvl 1, line# 2 | 00 03 00 00 00 00 01 02 | ||
| 比較 | If GPreg<1> == GPreg<2> then Goto line# 3 | 00 21 00 01 00 02 00 03 | !=:3 |
| 比較 | If GPreg<1> == (cmp-val)<2> then Goto line# 3 | 00 a1 00 01 00 02 00 03 | !=:3+8 |
(2)連結命令(Link instructions)
| (Link subset) LinkTailPGC | 20 01 00 00 00 00 00 0d | ☆☆ | |
| (LinkPGCN) Link PGC 3 | 20 04 00 00 00 00 00 03 | ☆ | |
| (LinkPTTN) Link Chapter 2, [button=1] | 20 05 00 00 00 00 04 02 | ||
| (LinkPGN) Link Program 3, [button=2] | 20 06 00 00 00 00 08 03 | ☆☆ | |
| (LinkCN) Link Cell 2, [button=3] | 20 07 00 00 00 00 0c 02 | ||
| 比較 | If GPreg<4> == GPreg<5> then (LinkPGN) Link Program 3, [button=2] | 20 26 00 04 00 05 08 03 | !=:3 |
| 比較 | If GPreg<4> == (cmp-val)<5> then (LinkPGN) Link Program 3, [button=2] | 20 a6 00 04 00 05 08 03 | !=:3+8 |
(3)分岐命令(Jump and Call instructions)
| 左→上 | FP | VMG | TT | VTSM |
| FP | JumpSS VMGM | JumpTT | JumpSS VTSM | |
| VMG | JumpSS FP | JumpTT | JumpSS VTSM | |
| TT | CallSS FP | CallSS VMGM | JumpVTS_TT* | CallSS VTSM* |
| VTSM | JumpSS FP | JumpSS VMGM | JumpVTS_TT* |
VIDEO_TS.IFO - VMGM_MAT - First
Play PGC [FP(First Play domain)]
VIDEO_TS.IFO - VMGM_PGCI_UT - LU_1
(Japanese) PGC-Menu_1 [VMG(Video Manager
domain)]
VTS_01_0.IFO - VTS_PGCITI
- VTS_PGC_1 [TT(Title
domain),PTT(Part of Title)]
VTS_01_0.IFO - VTSM_PGCI_UT
- LU_1 (Japanese) PGC-Menu_1
[VTSM(VTS menu domain)]
* 同一VTS内のみ分岐ができる
| Exit | 30 01 00 00 00 00 00 00 | ||
| FP,VMG->TT | (JumpTT) Jump to Title: 1 | 30 02 00 00 00 01 00 00 | ☆☆ |
| VTSM,TT->TT | (JumpVTS_TT) Jump to Title: 1 | 30 03 00 00 00 01 00 00 | |
| VTSM,TT->PTT | (JumpVTS_PTT) Jump to Title(ttn): 1 Chapter(pttn): 2 | 30 05 00 02 00 01 00 00 | |
| VMG,VTSM->FP | (JumpSS FP) Jump to First-Play domain PGC | 30 06 00 00 00 00 00 00 | |
| FP,VTSM->VMG | (JumpSS VMGM) Jump to VMG title-menu | 30 06 00 00 00 42 00 00 | |
| FP,VMG->VTSM | (JumpSS VTSM) Jump to TitleSet(vts): 1, Title(ttn): 2, root-menu | 30 06 00 02 01 83 00 00 | ☆☆ |
| FP,VTSM->VMG | (JumpSS VMGM) Jump to VMG PGC: 2 | 30 06 00 02 00 c0 00 00 | |
| TT->FP | (CallSS FP) Call First-Play domain PGC [Resume Cell: 1] | 30 08 00 00 01 00 00 00 | ☆ |
| TT->VMG | (CallSS VMGM) Call VMG title-menu [Resume Cell: 1] | 30 08 00 00 01 42 00 00 | |
| TT->VTSM | (CallSS VTSM) Call TitleSet root-menu [Resume Cell: 1] | 30 08 00 00 01 83 00 00 | |
| TT->VMG | (CallSS VMGM) Call VMG PGC: 2 [Resume Cell: 1] | 30 08 00 02 01 c0 00 00 | ☆☆ |
| 比較 | If GPreg<3> == GPreg<4> then (JumpTT) Jump to Title: 2 | 30 22 00 00 00 02 03 04 | !=:3 |
(4)システム変数(System Parameters)←一般変数(General Parameter)
| (SetSTN) Set Audio Stream: GPreg<1> | 41 00 00 81 00 00 00 00 | ||
| (SetSTN) Set Subpicture Stream: GPreg<2> | 41 00 00 00 82 00 00 00 | ||
| (SetSTN) Set Angle Stream: GPreg<3> | 41 00 00 00 00 83 00 00 | ||
| (SetNVTMR) Set GPreg<2>, pgcn 3 | 42 00 00 02 00 03 00 00 | ||
| (SetGPRMMD) Set GPRMMD = GPreg<3> = GPreg<2>, [COUNTER](mf=1) | 43 00 00 02 00 83 00 00 | ||
| (SetAMXMD) Set AMXMD = GPreg<3> | 44 00 00 00 00 03 00 00 | ||
| (SetHL_BTNN) Set Button Nr: GPreg<2> | 46 00 00 00 00 02 00 00 | ||
| 比較 | If GPreg<2> == GPreg<3> then (SetSTN) Set Audio Stream: GPreg<1> | 41 20 00 81 00 00 02 03 | !=:3 |
| 連結 | (SetSTN) Set Audio Stream: GPreg<1>(Link subset) LinkTopCell | 41 01 00 81 00 00 00 01 |
(5)システム変数(System Parameters)←直接の値(16-bit immediate value)
| (SetSTN) Set Audio Stream: 1 | 51 00 00 81 00 00 00 00 | ||
| (SetSTN) Set Subpicture Stream: 2(Off) | 51 00 00 00 82 00 00 00 | ||
| (SetSTN) Set Angle Stream: 3 | 51 00 00 00 00 83 00 00 | ||
| (SetNVTMR) Set NVTMR = (set-val) 2, pgcn 3 | 52 00 00 02 00 03 00 00 | ||
| (SetGPRMMD) Set GPRMMD<GPreg<3>> = (set-val) 2, [COUNTER](mf=1) | 53 00 00 02 00 83 00 00 | ||
| (SetAMXMD) Set AMXMD = (set-val) 3 | 54 00 00 00 00 03 00 00 | ||
| (SetHL_BTNN) Set Button Nr: (set-val) 2 | 56 00 00 00 02 00 00 00 | ||
| 比較 | If GPreg<2> == GPreg<3> then (SetSTN) Set Subpicture Stream: 1(Off) | 51 20 00 00 81 00 02 03 | !=:3 |
| 連結 | (SetSTN) Set Subpicture Stream: 1(Off)(LinkPGCN) Link PGC 2 | 51 04 00 00 81 00 00 02 |
(6)一般変数(General Parameter)←システム変数(System Parameters)
| Set GPreg<2> mov SPreg<audio stream number (ASTN)> | 61 00 00 02 00 81 00 00 | ||
| Set GPreg<2> mov SPreg<sub-picture stream number (SPSTN)> | 61 00 00 02 00 82 00 00 | ||
| Set GPreg<2> mov SPreg<angle number (AGLN)> | 61 00 00 02 00 83 00 00 | ||
| 比較 | If GPreg<3> == GPreg<4> then Set GPreg<2> mov SPreg<(ASTN)> | 61 20 03 02 00 81 00 04 | !=:3 |
| 比較 | If GPreg<3> == (cmp-val)<4> then Set GPreg<2> mov SPreg<(ASTN)> | 61 a0 03 02 00 81 00 04 | !=:3+8 |
| 連結 | Set GPreg<2> mov SPreg<(ASTN)>(Link subset) LinkTopPGC | 61 01 00 02 00 81 00 09 |
(7)一般変数(General Parameter)←直接の値(16-bit immediate value)
| Set GPreg<2> mov (set-val)<1> | 71 00 00 02 00 01 00 00 | ||
| 比較 | If GPreg<3> == GPreg<4> then Set GPreg<2> mov (set-val)<1> | 71 20 03 02 00 01 00 04 | !=:3 |
| 比較 | If GPreg<3> == (cmp-val)<4> then Set GPreg<2> mov (set-val)<1> | 71 a0 03 02 00 01 00 04 | !=:3+8 |
| 連結 | Set GPreg<2> mov (set-val)<1>(LinkPGCN) Link PGC 2 | 71 04 00 02 00 01 00 02 |
(8)代入と比較演算(SET and CMP operations)、連結符号(Link subset codes)
| Code | 代入(SET) | 比較(CMP) | 連結(Link) |
| 00 | none | none | NOP |
| 01 | = (mov) | & (BC) | LinkTopCell |
| 02 | <-> (swp) | == (EQ) | LinkNextCell |
| 03 | += (add) | != (NE) | LinkPrevCell |
| 04 | -= (sub) | >= (GE) | - |
| 05 | *= (mul) | > (GT) | LinkTopPG |
| 06 | /= (div) | <= (LE) | LinkNextPG |
| 07 | %= (mod) | < (LT) | LinkPrevPG |
| 08 | rnd | - | |
| 09 | &= (and) | LinkTopPGC | |
| 0a | |= (or) | LinkNextPGC | |
| 0b | ^= (xor) | LinkPrevPGC | |
| 0c | LinkGoupPGC | ||
| 0d | LinkTailPGC | ||
| 0e | - | ||
| 0f | - | ||
| 10 | RSM |
(9)システム変数(System Parameter Registers (SPRM))
| Code | 名称 | 内容 | 許容値 [初期値] |
|---|---|---|---|
| 0 |   | preferred menu language | ISO 639 code |
| 1 | ASTN | audio stream number | 0-7, 15(なし) [15] |
| 2 | SPSTN | sub-picture stream number | bit0-bit5:0-31, 62(なし), 63(強調),bit6=0 - 表示なし [62] |
| 3 | AGLN | angle number | 1-9 [1] |
| 4 | TTN | title number in volume | 1-99 [1] |
| 5 | VTS_TTN | title number in VTS | 1-99 [1] |
| 6 | TT_PGCN | PGC number | 1-32767 |
| 7 | PTTN | PTT number | 1-99 [1] |
| 8 | HL_BTNN | highlighted button number | bit10-bit15: 1-36, bit0-bit9 = 0 [1(1024)] |
| 9 | NVTMR | navigation timer | 0-65535 (秒) [0] |
| 10 | NV_PGCN | PGC jump for nav timer | 1-32767 (現在タイトルのPGC) |
| 11 | AMXMD | Karaoke audio mixing mode | 各ビットがmix ch to ch, bit2 2->1, bit3 3->1, bit4 4->1, bit10 2->0, bit11 3->0, bit12 4->0 [0] |
| 12 | CC_PLT | parental management country code | ISO 3166 code |
| 13 | PLT | parental level | 1-8, 15(none) |
| 14 |   | video preference and current mode | bit10-bit11
表示の縦横比 0=4:3, 1=指定なし, 2=予約, 3=16:9 bit8-bit9 現在のモード 0=普通, 1=全走査, 2=郵便箱, 3=予約 |
| 15 |   | player audio capabilities | 0=再生不能 bit2:SDDSカラオケ, bit3:DTSカラオケ, bit4:MPEGカラオケ, bit6:Dolbyカラオケ, bit7:PCMカラオケ, bit10:SDDS, bit11:DTS, bit12:MPEG, bit14:Dolby |
| 16 |   | preferred audio language | ISO 639 code [0xFFFF] |
| 17 |   | preferred audio language extension | 0=指定なし, 1=普通, 2=減少, 3=監督解説, 4=他の監督解説 [0] |
| 18 |   | preferred sub-picture language | ISO 639 code [0xFFFF] |
| 19 |   | preferred sub-picture language extension | 0=指定なし, 1=普通, 2=大, 3=小, 5=見出し, 6=見出し大, 7=見出し小, 9=強調, 13=監督解説, 14=監督解説大, 15=監督解説小 [0] |
| 20 |   | player region code (mask) | 各ビットがregion, bit0=region 1 |