48 lines
811 B
PHP
48 lines
811 B
PHP
|
macro buttabnum a0,a1,a2,a3,a4
|
||
|
{
|
||
|
test [flags],(1 shl 5)
|
||
|
jnz .prg
|
||
|
test [flags],(1 shl 3)
|
||
|
jnz .a1
|
||
|
if a4
|
||
|
test [flags],(1 shl 4)
|
||
|
jnz .a4
|
||
|
endf
|
||
|
test [flags],(1 shl 11)
|
||
|
jnz .a2
|
||
|
test [flags],(1 shl 12)
|
||
|
jnz .a3
|
||
|
test [flags],(1 shl 9)
|
||
|
jnz .prg
|
||
|
mov eax,a0
|
||
|
jmp but_table.to_opcode
|
||
|
.a1: mov eax,a1
|
||
|
jmp but_table.to_opcode
|
||
|
.a2: mov eax,a2
|
||
|
jmp but_table.to_opcode
|
||
|
.a3: mov eax,a3
|
||
|
jmp but_table.to_opcode
|
||
|
.prg:
|
||
|
test [flags],(1 shl 8)
|
||
|
jz @f
|
||
|
add [dop8],a0
|
||
|
jmp but_table.dop8
|
||
|
@@: test [flags],(1 shl 9)
|
||
|
jz @f
|
||
|
mov al,a0
|
||
|
jmp but_table.dop9
|
||
|
@@: movzx eax,[schk]
|
||
|
add eax,PMEM
|
||
|
inc [schk]
|
||
|
test [flags],(1 shl 3)
|
||
|
jnz @f
|
||
|
mov byte [eax],a0
|
||
|
ret
|
||
|
@@: mov byte [eax],a1
|
||
|
btr [flags],3
|
||
|
ret
|
||
|
if a4
|
||
|
.a4: mov eax,a4
|
||
|
jmp but_table.to_opcode
|
||
|
endf
|
||
|
}
|