Apple II User Manual

Page of 257
FF24: 90 F0     1015          BCC   RD3        ;LOOP UNTIL DONE
FF26: 20 EC FC  1016          JSR   RDBYTE     ;READ CHKSUM BYTE
FF29: C5 2E     1017          CMP   CHKSUM
FF2B: F0 0D     1018          BEQ   BELL       ;GOOD, SOUND BELL AND RETURN
FF2D: A9 C5     1019 PRERR    LDA   #$C5
FF2F: 20 ED FD  1020          JSR   COUT       ;PRINT "ERR", THEN BELL
FF32: A9 D2     1021          LDA   #$D2
FF34: 20 ED FD  1022          JSR   COUT
FF37: 20 ED FD  1023          JSR   COUT
FF3A: A9 87     1024 BELL     LDA   #$87       ;OUTPUT BELL AND RETURN
FF3C: 4C ED FD  1025          JMP   COUT
FF3F: A5 48     1026 RESTORE  LDA   STATUS     ;RESTORE 6502 REG CONTENTS
FF41: 48        1027          PHA              ;  USED BY DEBUG SOFTWARE
FF42: A5 45     1028          LDA   ACC
FF44: A6 46     1029 RESTR1   LDX   XREG
FF46: A4 47     1030          LDY   YREG
FF48: 28        1031          PLP
FF49: 60        1032          RTS
FF4A: 85 45     1033 SAVE     STA   ACC        ;SAVE 6502 REG CONTENTS
FF4C: 86 46     1034 SAV1     STX   XREG
FF4E: 84 47     1035          STY   YREG
FF50: 08        1036          PHP
FF51: 68        1037          PLA
FF52: 85 48     1038          STA   STATUS
FF54: BA        1039          TSX
FF55: 86 49     1040          STX   SPNT
FF57: D8        1041          CLD
FF58: 60        1042          RTS
FF59: 20 84 FE  1043 RESET    JSR   SETNORM    ;SET SCREEN MODE
FF5C: 20 2F FB  1044          JSR   INIT       ;  AND INIT KBD/SCREEN
FF5F: 20 93 FE  1045          JSR   SETVID     ;  AS I/O DEV'S
FF62: 20 89 FE  1046          JSR   SETKBD
FF65: D8        1047 MON      CLD              ;MUST SET HEX MODE!
FF66: 20 3A FF  1048          JSR   BELL
FF69: A9 AA     1049 MONZ     LDA   #$AA       ;'*' PROMPT FOR MON
FF6B: 85 33     1050          STA   PROMPT
FF6D: 20 67 FD  1051          JSR   GETLNZ     ;READ A LINE
FF70: 20 C7 FF  1052          JSR   ZMODE      ;CLEAR MON MODE, SCAN IDX
FF73: 20 A7 FF  1053 NXTITM   JSR   GETNUM     ;GET ITEM, NON-HEX
FF76: 84 34     1054          STY   YSAV       ;  CHAR IN A-REG
FF78: A0 17     1055          LDY   #$17       ;  X-REG=0 IF NO HEX INPUT
FF7A: 88        1056 CHRSRCH  DEY
FF7B: 30 E8     1057          BMI   MON        ;NOT FOUND, GO TO MON
FF7D: D9 CC FF  1058          CMP   CHRTBL,Y   ;FIND CMND CHAR IN TEL
FF80: D0 F8     1059          BNE   CHRSRCH
FF82: 20 BE FF  1060          JSR   TOSUB      ;FOUND, CALL CORRESPONDING
FF85: A4 34     1061          LDY   YSAV       ;  SUBROUTINE
FF87: 4C 73 FF  1062          JMP   NXTITM
FF8A: A2 03     1063 DIG      LDX   #$03
FF8C: 0A        1064          ASL
FF8D: 0A        1065          ASL              ;GOT HEX DIG,
FF8E: 0A        1066          ASL              ;  SHIFT INTO A2
FF8F: 0A        1067          ASL
FF90: 0A        1068 NXTBIT   ASL
FF91: 26 3E     1069          ROL   A2L
FF93: 26 3F     1070          ROL   A2H
FF95: CA        1071          DEX              ;LEAVE X=$FF IF DIG
FF96: 10 F8     1072          BPL   NXTBIT
FF98: A5 31     1073 NXTBAS   LDA   MODE
FF9A: D0 06     1074          BNE   NXTBS2     ;IF MODE IS ZERO
FF9C: B5 3F     1075          LDA   A2H,X      ; THEN COPY A2 TO
FF9E: 95 3D     1076          STA   A1H,X      ; A1 AND A3