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 languageISO 639 code
1ASTNaudio stream number0-7, 15(なし) [15]
2SPSTNsub-picture stream numberbit0-bit5:0-31, 62(なし), 63(強調),bit6=0 - 表示なし [62]
3AGLNangle number1-9 [1]
4TTNtitle number in volume1-99 [1]
5VTS_TTNtitle number in VTS1-99 [1]
6TT_PGCNPGC number1-32767
7PTTNPTT number1-99 [1]
8HL_BTNNhighlighted button numberbit10-bit15: 1-36, bit0-bit9 = 0 [1(1024)]
9NVTMRnavigation timer0-65535 (秒) [0]
10NV_PGCNPGC jump for nav timer1-32767 (現在タイトルのPGC)
11AMXMDKaraoke 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]
12CC_PLTparental management country codeISO 3166 code
13PLTparental level1-8, 15(none)
14 video preference and current modebit10-bit11 表示の縦横比 0=4:3, 1=指定なし, 2=予約, 3=16:9
bit8-bit9 現在のモード 0=普通, 1=全走査, 2=郵便箱, 3=予約
15 player audio capabilities0=再生不能 bit2:SDDSカラオケ, bit3:DTSカラオケ, bit4:MPEGカラオケ, bit6:Dolbyカラオケ, bit7:PCMカラオケ, bit10:SDDS, bit11:DTS, bit12:MPEG, bit14:Dolby
16 preferred audio languageISO 639 code [0xFFFF]
17 preferred audio language extension0=指定なし, 1=普通, 2=減少, 3=監督解説, 4=他の監督解説 [0]
18 preferred sub-picture languageISO 639 code [0xFFFF]
19 preferred sub-picture language extension0=指定なし, 1=普通, 2=大, 3=小, 5=見出し, 6=見出し大, 7=見出し小, 9=強調, 13=監督解説, 14=監督解説大, 15=監督解説小 [0]
20 player region code (mask)各ビットがregion, bit0=region 1