我们有一台没有工作磁盘驱动器的Apple IIe.经过一些搜索,我发现显示器可用于编程机器代码,并找到了一个例子,但没有解释它是如何工作的. 300:20 58 FC A9 C8 20 ED FD A9 E9 20 ED FD 20 8E FD 60这是什么意思?即使在找到所有操作码之后我仍然无法弄明白它们.
让我们看看,谷歌肯定会帮助我们
20 58 FC A9 C8 20 ED FD A9 E9 20 ED FD 20 8E FD 60
Run Code Online (Sandbox Code Playgroud)
http://www.6502.org/tutorials/6502opcodes.html有操作码,
http://apple2.org.za/gswv/USA2WUG/FOUNDING.MEMBERS/HOME.PAGES/EDHEL/texts/pokes.html(1 )知道其中一些地址,http://apple2.org.za/gswv/a2zine/faqs/csa2pfaq.html(2)知道更多
("300:"告诉我们它将以$ 0300存储)
$ 20是JSR,JSR是3字节指令,因此20 58 FC属于一起
JSR $FC58 ; CLEAR SCREEN (1)
Run Code Online (Sandbox Code Playgroud)
A9立即是LDA(2个字节),接下来的2个字节是A9 C8
LDA #$C8 ;
Run Code Online (Sandbox Code Playgroud)
20 ED FD:
JSR $FDED ; OUTPUT CHARACTER IN ACCUMULATOR. (2)
Run Code Online (Sandbox Code Playgroud)
A9 E9
LDA #$E9
Run Code Online (Sandbox Code Playgroud)
20 ED FD:
JSR $FDED ;
Run Code Online (Sandbox Code Playgroud)
20 8E FD
JSR $FD8E ; "PRINT CARRIAGE RETURN" (2)
Run Code Online (Sandbox Code Playgroud)
60
RTS ; return
Run Code Online (Sandbox Code Playgroud)
整个东西:
org $0300
20 58 FC JSR $FC58 ; CLEAR SCREEN (1)
A9 C8 LDA #$C8
20 ED FD JSR $FDED ; OUTPUT CHARACTER IN ACCUMULATOR. (2)
A9 E9 LDA #$E9
20 ED FD JSR $FDED
20 8E FD JSR $FD8E ; "PRINT CARRIAGE RETURN" (2)
60 RTS ; return
Run Code Online (Sandbox Code Playgroud)
所以这个功能会清除屏幕,写2个字符和一个CR