DVD-Video 内部/指令集详细信息
有关基本指令集概念的解释,请参阅上一页。
在每个显示指令位模式的表格中,顶行显示从 0 到 7 的字节号,以及可选地显示每个字节内的位号(从 7 到 0 编号),用冒号分隔。例如,字节 1 的最高位写成“1:7”。包含多个位的字段用连字符分隔起始和结束(含)位号,例如,字节 2 的最底四位写成“2:3-0”。
顶行下面是一到两行。每行描述一组指令的有效形式。
用cccc....填充的字段用于条件格式,而用llll....填充的字段可以从任何 Link 指令的相应字段中复制,也以相同的颜色突出显示。无关紧要的字段用以下方式填充: .
0:7-5 | 0:4-0 | 1:7-4 | 1:3-0 | 2 | 3 | 4 | 5 | 6 | 7 | |
---|---|---|---|---|---|---|---|---|---|---|
0 | 0 |
无操作。
0:7-5 | 0:4-0 | 1:7-4 | 1:3-0 | 2 | 3 | 4 | 5 | 6 | 7 |
---|---|---|---|---|---|---|---|---|---|
0 | cccc | 1 | cccccccc | cccccccc | cccccccc | instrnr |
将控制权转移到当前序列中指定的指令号。多个指令的序列仅在 FPC 以及 PGC 的前后部分允许,因此这些是唯一可以使用此指令的地方。序列中的指令从 1 开始编号。
条件格式:1。
0:7-5 | 0:4-0 | 1:7-4 | 1:3-0 | 2 | 3 | 4 | 5 | 6 | 7 |
---|---|---|---|---|---|---|---|---|---|
0 | cccc | 2 | cccccccc | cccccccc | cccccccc |
终止当前指令序列。多个指令的序列仅在 FPC 以及 PGC 的前后部分允许,因此这些是唯一可以使用此指令的地方。
条件格式:1。
0:7-5 | 0:4-0 | 1:7-4 | 1:3-0 | 2 | 3 | 4 | 5 | 6:7-4 | 6:3-0 | 7 |
---|---|---|---|---|---|---|---|---|---|---|
0 | cccc | 3 | cccccccc | cccccccc | cccccccc | level | instrnr |
设置新的临时家长管理级别,这可能要求用户在提高级别时输入密码。成功后将控制权转移到指定的指令。多个指令的序列仅在 FPC 以及 PGC 的前后部分允许,因此这些是唯一可以使用此指令的地方。序列中的指令从 1 开始编号。
条件格式:1。
0:7-5 | 0:4-0 | 1:7-4 | 1:3-0 | 2 | 3 | 4 | 5 | 6 | 7 |
---|---|---|---|---|---|---|---|---|---|
1 | 0 |
无操作。
0:7-4 | 0:3-0 | 1:7-4 | 1:3-0 | 2 | 3 | 4 | 5 | 6:7-2 | 6:1-0 | 7:7-5 | 7:4-0 |
---|---|---|---|---|---|---|---|---|---|---|---|
2 | cccc | 1 | cccccccc | cccccccc | | cccccccc | hl_bn | lnk |
如果 hl_bn 不为零(如果 hl_bn 为零,则保持按钮突出显示设置不变),则突出显示按钮号 hl_bn,并将控制权转移到由 lnk 标识的目标
Lnk | 名称 |
---|---|
0 | 不转移控制权(如果指定,则只突出显示按钮) |
1 | LinkTopCell(“链接到单元格顶部”,即 重新开始当前单元格的播放) |
2 | LinkNextCell |
3 | LinkPrevCell |
5 | LinkTopPG(“链接到节目顶部”,即 重新开始当前节目的播放) |
6 | LinkNextPG |
7 | LinkPrevPG |
9 | LinkTopPGC(“链接到 PGC 顶部”,即 重新开始当前 PGC 的播放,可能重新执行预命令) |
10 | LinkNextPGC |
11 | LinkPrevPGC |
12 | LinkGoupPGC(“向上”) |
13 | LinkTailPGC(停止播放 PGC 并跳转到后命令) |
16 | RSM(从最后一个 Call 处恢复执行) |
请注意,PGC 之间的“下一个”、“上一个”和“向上”关系是由每个 PGC 的 IFO 条目中的字段明确定义的。
条件格式:1。
0:7-4 | 0:3-0 | 1:7-4 | 1:3-0 | 2 | 3 | 4 | 5 | 6 | 7 |
---|---|---|---|---|---|---|---|---|---|
2 | cccc | 4 | cccccccc | cccccccc | cccccccc | pgcn |
链接到编号的 PGC。PGC 必须在同一域中。
条件格式:1。
0:7-4 | 0:3-0 | 1:7-4 | 1:3-0 | 2 | 3 | 4 | 5 | 6:7-2 | 6:1-0 | 7 |
---|---|---|---|---|---|---|---|---|---|---|
2 | cccc | 5 | cccccccc | cccccccc | cccccccc | hl_bn | pttn |
链接到编号的章节 (PTT)。只能在标题内使用,用于在同一标题内转移。
条件格式:1。
0:7-4 | 0:3-0 | 1:7-4 | 1:3-0 | 2 | 3 | 4 | 5 | 6:7-2 | 6:1-0 | 7 |
---|---|---|---|---|---|---|---|---|---|---|
2 | cccc | 6 | cccccccc | cccccccc | cccccccc | hl_bn | 0 | pgn |
链接到编号的节目。只能在 PGC 内转移。
条件格式:1。
0:7-4 | 0:3-0 | 1:7-4 | 1:3-0 | 2 | 3 | 4 | 5 | 6:7-2 | 6:1-0 | 7 |
---|---|---|---|---|---|---|---|---|---|---|
2 | cccc | 7 | cccccccc | cccccccc | cccccccc | hl_bn | 0 | cn |
链接到编号的单元格。只能在 PGC 内转移。
条件格式:1。
0:7-4 | 0:3-0 | 1:7-4 | 1:3-0 | 2 | 3 | 4 | 5 | 6 | 7 |
---|---|---|---|---|---|---|---|---|---|
3 | cccc | 1 | cccccccc | cccccccc |
停止播放。等同于按下遥控器上的停止按钮。
条件格式:2。
0:7-4 | 0:3-0 | 1:7-4 | 1:3-0 | 2 | 3 | 4 | 5 | 6 | 7 |
---|---|---|---|---|---|---|---|---|---|
3 | cccc | 2 | ttn | cccccccc | cccccccc |
在以下位置有效 | FPC | VMGM | VTSM | VTST |
---|---|---|---|---|
Y | Y | N | N |
跳转到编号的标题的入口 PGC(标题映射中的索引?)。
条件格式:2。
0:7-4 | 0:3-0 | 1:7-4 | 1:3-0 | 2 | 3 | 4 | 5 | 6 | 7 |
---|---|---|---|---|---|---|---|---|---|
3 | cccc | 3 | ttn | cccccccc | cccccccc |
在以下位置有效 | FPC | VMGM | VTSM | VTST |
---|---|---|---|---|
N | N | Y | Y |
跳转到编号的 VTS 标题入口 PGC(当前标题集中的索引?)。只能在同一标题集中转移。
条件格式:2。
0:7-4 | 0:3-0 | 1:7-4 | 1:3-0 | 2 | 3 | 4 | 5 | 6 | 7 |
---|---|---|---|---|---|---|---|---|---|
3 | cccc | 5 | pttn | ttn | cccccccc | cccccccc |
在以下位置有效 | FPC | VMGM | VTSM | VTST |
---|---|---|---|---|
N | N | Y | Y |
跳转到编号的指定标题 (当前标题集中的索引?) 的 VTS 章节 (PTT)。只能在同一标题集中转移。
条件格式:2。
0:7-4 | 0:3-0 | 1:7-4 | 1:3-0 | 2 | 3 | 4 | 5:7-6 | 5:5 | 5:4-0 | 6 | 7 |
---|---|---|---|---|---|---|---|---|---|---|---|
3 | cccc | 6 | 0 | cccccccc | cccccccc |
在以下位置有效 | FPC | VMGM | VTSM | VTST |
---|---|---|---|---|
N | Y | Y | N |
跳转到 FPC。
条件格式:2。
0:7-4 | 0:3-0 | 1:7-4 | 1:3-0 | 2 | 3 | 4 | 5:7-6 | 5:5 | 5:4-0 | 6 | 7 |
---|---|---|---|---|---|---|---|---|---|---|---|
3 | cccc | 6 | 1 | 菜单 | cccccccc | cccccccc |
在以下位置有效 | FPC | VMGM | VTSM | VTST |
---|---|---|---|---|
Y | N | Y | N |
跳转到 VMG 条目菜单。menu 的唯一有效值为 2,表示标题菜单。
条件格式:2。
0:7-4 | 0:3-0 | 1:7-4 | 1:3-0 | 2 | 3 | 4 | 5:7-6 | 5:5 | 5:4-0 | 6 | 7 |
---|---|---|---|---|---|---|---|---|---|---|---|
3 | cccc | 6 | ttn | vts | 2 | 菜单 | cccccccc | cccccccc |
在以下位置有效 | FPC | VMGM | VTSM | VTST |
---|---|---|---|---|
Y | Y | N | N |
跳转到 VTS 条目菜单。menu 的有效值为
菜单 | 条目类型 |
---|---|
3 | 根 |
4 | 子画面(字幕) |
5 | 音频 |
6 | 角度 |
7 | 章节 |
条件格式:2。
0:7-4 | 0:3-0 | 1:7-4 | 1:3-0 | 2 | 3 | 4 | 5:7-6 | 5:5 | 5:4-0 | 6 | 7 |
---|---|---|---|---|---|---|---|---|---|---|---|
3 | cccc | 6 | pgcn | 3 | cccccccc | cccccccc |
在以下位置有效 | FPC | VMGM | VTSM | VTST |
---|---|---|---|---|
Y | Y | Y | N |
跳转到 VMGM PGC。
条件格式:2。
0:7-4 | 0:3-0 | 1:7-4 | 1:3-0 | 2 | 3 | 4 | 5:7-6 | 5:5 | 5:4-0 | 6 | 7 |
---|---|---|---|---|---|---|---|---|---|---|---|
3 | cccc | 8 | rsm_cell | 0 | cccccccc | cccccccc |
在以下位置有效 | FPC | VMGM | VTSM | VTST |
---|---|---|---|---|
N | N | N | Y |
保存恢复点并转移控制到 FPC。rsm_cell 指定非零时恢复的单元编号(在哪个单元内?当前程序或 PGC?),否则在下一个单元恢复。
条件格式:2。
0:7-4 | 0:3-0 | 1:7-4 | 1:3-0 | 2 | 3 | 4 | 5:7-6 | 5:5 | 5:4-0 | 6 | 7 |
---|---|---|---|---|---|---|---|---|---|---|---|
3 | cccc | 8 | rsm_cell | 1 | 菜单 | cccccccc | cccccccc |
在以下位置有效 | FPC | VMGM | VTSM | VTST |
---|---|---|---|---|
N | N | N | Y |
保存恢复点并转移控制到 VMG 条目菜单。rsm_cell 指定非零时恢复的单元编号(在哪个单元内?当前程序或 PGC?),否则在下一个单元恢复。menu 的唯一有效值为 2,表示标题菜单。
条件格式:2。
0:7-4 | 0:3-0 | 1:7-4 | 1:3-0 | 2 | 3 | 4 | 5:7-6 | 5:5 | 5:4-0 | 6 | 7 |
---|---|---|---|---|---|---|---|---|---|---|---|
3 | cccc | 8 | rsm_cell | 2 | 菜单 | cccccccc | cccccccc |
在以下位置有效 | FPC | VMGM | VTSM | VTST |
---|---|---|---|---|
N | N | N | Y |
保存恢复点并转移控制到当前标题集中菜单。rsm_cell 指定非零时恢复的单元编号(在哪个单元内?当前程序或 PGC?),否则在下一个单元恢复。menu 的有效值为
菜单 | 条目类型 |
---|---|
3 | 根 |
4 | 子画面(字幕) |
5 | 音频 |
6 | 角度 |
7 | 章节 |
条件格式:2。
0:7-4 | 0:3-0 | 1:7-4 | 1:3-0 | 2 | 3 | 4 | 5:7-6 | 5:5 | 5:4-0 | 6 | 7 |
---|---|---|---|---|---|---|---|---|---|---|---|
3 | cccc | 8 | pgcn | rsm_cell | 3 | cccccccc | cccccccc |
在以下位置有效 | FPC | VMGM | VTSM | VTST |
---|---|---|---|---|
N | N | N | Y |
保存恢复点并转移控制到 VMGM PGC。rsm_cell 指定非零时恢复的单元编号(在哪个单元内?当前程序或 PGC?),否则在下一个单元恢复。
条件格式:2。
0:7-5 | 0:4 | 0:3-0 | 1:7 | 1:6-0 | 2 | 3 | 4 | 5 | 6 | 7 |
---|---|---|---|---|---|---|---|---|---|---|
2 | 0 | 0 |
无操作。
0:7-5 | 0:4 | 0:3-0 | 1:7-4 | 1:3-0 | 2 | 3:7 | 3:6-0 | 4:7 | 4:6-0 | 5:7 | 5:6-0 | 6 | 7 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
2 | immed | 1 | cccc | 0 | af | asrc | sf | ssrc | vf | vsrc | cccccccc | cccccccc | |
0 | llll | llllllll | llllllll |
此指令可以一次性设置所有音频、子画面和视角注册器(分别为 SPRM 1、2 和 3),或设置其中任意组合。
- 如果 af 为 1,则音频 SPRM 从 asrc 设置。如果 af 为 0,则 asrc 被忽略,SPRM 1 不变。
- 如果 sf 为 1,则子画面 SPRM 从 ssrc 设置。如果 sf 为 0,则 ssrc 被忽略,SPRM 2 不变。
- 如果 vf 为 1,则角度 SPRM 从 vsrc 设置。如果 vf 为 0,则 vsrc 被忽略,SPRM 3 不变。
asrc、ssrc 和 vsrc 的解释由 immed 标志控制。如果它为 1,则所有这些字段都是对应注册器的 7 位新值的字面值。如果 immed 为 0,则每个字段的最低 8 位是包含目标注册器新值的源注册器的编号。
asrc 和 ssrc 生成的值不是直接的流编号,而是当前 PGC 中 PGC_AST_CTL 和 PGC_SPST_CTL 表的索引。PGC_SPST_CTL 可以包含每个条目中的四个流编号,选择哪个流编号取决于当前视频播放模式(参见上面 SPRM 14 的描述)。
条件格式:2。
0:7-5 | 0:4 | 0:3-0 | 1:7-4 | 1:3-0 | 2 | 3 | 4 | 5 | 6 | 7 |
---|---|---|---|---|---|---|---|---|---|---|
2 | immed | 2 | cccc | 0 | src | pgcn | cccccccc | cccccccc | ||
0 | llll | llllllll | llllllll |
设定导航计时器:将 pgcn 放入 NV_PGCN(SPRM 10)中,将 src 的值放入 NVTMR(SPRM 9)中,NVTMR 每秒递减一次。当 NVTMR 达到 0 时,如果 pgcn 非零,则跳转到 pgcn。
将 src 和 pgcn 都(或其中一个)指定为零似乎是清除导航计时器在触发之前最明显的方式。
src 的解释由 immed 标志控制。如果它为 1,则 src 是 16 位字面值。如果 immed 为 0,则 src 的最低 8 位是包含该值的注册器的编号。
条件格式:2。
0:7-5 | 0:4 | 0:3-0 | 1:7-4 | 1:3-0 | 2 | 3 | 4 | 5:7 | 5:6-4 | 5:3-0 | 6 | 7 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2 | immed | 3 | cccc | 0 | src | mode | reg | cccccccc | cccccccc | |||
0 | llll | llllllll | llllllll |
将 GPRM reg 设置为由 src 给定的值;如果 mode 为 1,则启用计数器模式,如果 mode 为 0,则禁用计数器模式。在计数器模式下,GPRM 每秒递增一次,否则,其值保持不变直到再次更改。
src 的解释由 immed 标志控制。如果它为 1,则 src 是 16 位字面值。如果 immed 为 0,则 src 的最低 8 位是包含该值的注册器的编号。
条件格式:2。
0:7-5 | 0:4 | 0:3-0 | 1:7-4 | 1:3-0 | 2 | 3 | 4 | 5 | 6 | 7 |
---|---|---|---|---|---|---|---|---|---|---|
2 | immed | 4 | cccc | 0 | src | cccccccc | cccccccc | |||
0 | llll | llllllll | llllllll |
将卡拉 OK 混音模式(SPRM 11)设置为 src 的值。
src 的解释由 immed 标志控制。如果它为 1,则 src 是 16 位字面值。如果 immed 为 0,则 src 的最低 8 位是包含该值的注册器的编号。
条件格式:2。
0:7-5 | 0:4 | 0:3-0 | 1:7-4 | 1:3-0 | 2 | 3 | 4 | 5 | 6 | 7 |
---|---|---|---|---|---|---|---|---|---|---|
2 | immed | 6 | cccc | 0 | src | cccccccc | cccccccc | |||
0 | llll | llllllll | llllllll |
将 HL_BTNN(SPRM 8)设置为 src 的值。这将设置当前突出显示的按钮,1-36 或 0 表示没有按钮。请注意,该值必须是按钮编号乘以 1024。
src 的解释由 immed 标志控制。如果它为 1,则 src 是 16 位字面值。如果 immed 为 0,则 src 的最低 8 位是包含该值的注册器的编号。
条件格式:2。
0:7-5 | 0:4 | 0:3-0 | 1:7-4 | 1:3-0 | 2 | 3:7-4 | 3:3-0 | 4 | 5 | 6 | 7 |
---|---|---|---|---|---|---|---|---|---|---|---|
3 | immed | op | cccc | 0 | cccccccc | reg | src | cccccccc | cccccccc | ||
0 | llll | 0 | llllllll | llllllll |
将 GPRM 设置为根据其现有值和源操作数的值计算出的函数(并且在交换的情况下,还可以更改源操作数)。它是否保持计数器模式不变?op 根据设置操作(以上)确定要执行的操作。
src 的解释由 immed 标志控制。如果它为 1,则 src 是 16 位字面值。如果 immed 为 0,则 src 的最低 8 位是包含该值的注册器的编号。但是,请注意 src 的限制,如设置操作表中所列。
条件格式:3。
0:7-5 | 0:4 | 0:3-0 | 1:7 | 1:6-4 | 1:3-0 | 2 | 3 | 4 | 5 | 6:7-2 | 6:1-0 | 7 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
4 | simmed | op | cimmed | cmp | reg | ssrc | csrc | hl_bn | lnk |
根据操作 op 将 GPRM reg 设置为它和 ssrc 的函数,然后根据 cmp 将更新后的 reg 与 csrc 的值进行比较,如果条件为真,则执行由 hl_bn 和 lnk 定义的链接操作。这些字段的解释与链接子集指令(以上)相同。
ssrc 的解释由 simmed 标志控制。如果此标志为 1,则 ssrc 是字面上的 16 位值。如果 simmed 为 0,则 ssrc 的低 8 位是包含该值的寄存器的编号。但请注意,ssrc 有设置操作表中列出的限制。
csrc 的解释由 cimmed 标志控制。如果此标志为 1,则 csrc 是字面上的 16 位值。如果 cimmed 为 0,则 csrc 的低 8 位是包含该值的寄存器的编号。
0:7-5 | 0:4 | 0:3-0 | 1:7 | 1:6-4 | 1:3-0 | 2 | 3 | 4 | 5 | 6:7-2 | 6:1-0 | 7 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
5 | 0 | op | cimmed | cmp | reg | srcreg | creg1 | csrc2 | hl_bn | lnk | ||
1 | 0 | simmed | creg1 | creg2 |
根据 cmp 对寄存器 creg1 与寄存器 creg2 或操作数 csrc2 进行比较,如果结果为真,则根据 op 使用寄存器 srcreg 的值或立即值 simmed 将 GPRM reg 设置为计算结果,并执行由 hl_bn 和 lnk 定义的链接子集操作。如果条件为假,则不会执行设置或链接操作。
csrc2 的解释由 cimmed 标志控制。如果此标志为 1,则 csrc2 是字面上的 16 位值。如果 cimmed 为 0,则 csrc2 的低 8 位是包含该值的寄存器的编号。
0:7-5 | 0:4 | 0:3-0 | 1:7 | 1:6-4 | 1:3-0 | 2 | 3 | 4 | 5 | 6:7-2 | 6:1-0 | 7 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
6 | 0 | op | cimmed | cmp | reg | srcreg | creg1 | csrc2 | hl_bn | lnk | ||
1 | 0 | simmed | creg1 | creg2 |
根据 cmp 对寄存器 creg1 与寄存器 creg2 或操作数 csrc2 进行比较,如果结果为真,则根据 op 使用寄存器 srcreg 的值或立即值 simmed 将 GPRM reg 设置为计算结果。无论比较结果如何,都会执行由 hl_bn 和 lnk 定义的链接子集操作。
csrc2 的解释由 cimmed 标志控制。如果此标志为 1,则 csrc2 是字面上的 16 位值。如果 cimmed 为 0,则 csrc2 的低 8 位是包含该值的寄存器的编号。