Definindo uma função:
DEF FN N(x)=USR (4+PEEK 23563+256*PEEK 23564)
Executa-se código máquina definido "em cima do joelho", ao invocar a função.
RANDOMIZE FN N(51699): REM Disable Interrupts
RANDOMIZE FN N(51707): REM Enable Interrupts
O que acontece é que a função define que vai invocar o endereço apontado pela word em 23563, que é o endereço do buffer usado por DEF FN/FN. O número com que o invocam é colocado nessa posição de memória, sendo que a representação BASIC do inteiro corresponde à instruções código máquina Z80:
Senão vejamos:
51699
00 NOP
00 NOP
F3 DI
C9 RET
00 NOP
51707
00 NOP
00 NOP
FB EI
C9 RET
00 NOP
Portanto, ao definir um número, efectivamente estamos a codificar um "programa" a ser executado.
Sem comentários:
Enviar um comentário