Apple IIe显示器中的6502机器代码

0 assembly 6502 machine-code

我们有一台没有工作磁盘驱动器的Apple IIe.经过一些搜索,我发现显示器可用于编程机器代码,并找到了一个例子,但没有解释它是如何工作的. 300:20 58 FC A9 C8 20 ED FD A9 E9 20 ED FD 20 8E FD 60这是什么意思?即使在找到所有操作码之后我仍然无法弄明白它们.

Tom*_*e2k 5

让我们看看,谷歌肯定会帮助我们

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