Apple II User Manual

Page of 257
0790   E46A EE 10 A4           INC BKFLG       ;SET FLG
0791   E46D             ;CHCK OUTPUT DEV
0792   E46D AD 13 A4    DU1A   LDA OUTFLG
0793   E470 C9 4B              CMP #'K'        ;TAPE FOR KIM?
0794   E472 D0 04              BNE *+6
0795   E474 68                 PLA             ;PULL FLG
0796   E475 4C 87 E5           JMP DUMPKI      ;YES, GO OUTPUT WHOLE FILE
0797   E478 A0 01              LDY #1          ;OUTPUT ONE MORE BYTE
0798   E47A 20 CD E2           JSR NXTADD
0799   E47D 20 F0 E9    DU2    JSR CRLF
0800   E480 20 07 E9           JSR RCHEK       ;SEE IF HE WANTS TO INTERRUPT
0801   E483             ;CALCULATE # OF BYTES YET TO BE DUMPED
0802   E483 20 4D EB           JSR CLRCK       ;CLEAR CKSUM
0803   E486 AD 1C A4           LDA ADDR        ;END ADDRESS-CURRENT ADDRESS
0804   E489 38                 SEC
0805   E48A ED 1A A4           SBC S1
0806   E48D 48                 PHA             ;# OF BYTES LOW
0807   E48E AD 1D A4           LDA ADDR+1
0808   E491 ED 1B A4           SBC S1+1
0809   E494 D0 09              BNE DU6         ;# OF BYTES HIGH
0810   E496             ;SEE IF 24 OR MORE BYTES TO GO
0811   E496 68                 PLA             ;# BYTES HIGH WAS ZERO
0812   E497 F0 42              BEQ DU10        ;ARE DONE
0813   E499 C9 18              CMP #24         ;# BYTES > 24 ?
0814   E49B 90 05              BCC DU8         ;NO ,ONLY OUTPUT REMAINING BYTES
0815   E49D B0 01              BCS DU7         ;YES ,24 BYTES IN NEXT RECORD
0816   E49F 68          DU6    PLA
0817   E4A0 A9 18       DU7    LDA #24
0818   E4A2             ;OUTPUT ";" ,# OF BYTES AND SA
0819   E4A2 48          DU8    PHA
0820   E4A3 20 BA E9           JSR SEMI        ;SEMICOLON
0821   E4A6 68                 PLA
0822   E4A7 8D 19 A4           STA COUNT       ;SAVE # OF BYTES
0823   E4AA 20 38 E5           JSR OUTCK       ;OUTPUT # OF BYTES
0824   E4AD AD 1B A4           LDA S1+1        ;OUTPUT ADDRESS
0825   E4B0 20 38 E5           JSR OUTCK
0826   E4B3 AD 1A A4           LDA S1
0827   E4B6 20 38 E5           JSR OUTCK
0828   E4B9             ;OUTPUT DATA
0829   E4B9 20 31 E5    DU9    JSR OUTCKS      ;GET CHAR SPEC BY S1 (NO PAG 0)
0830   E4BC A9 00              LDA #0          ;CLEAR DISP PTR
0831   E4BE 8D 15 A4           STA CURPO2
0832   E4C1 20 5D E5           JSR ADDS1       ;INCR S1+1,S1
0833   E4C4 CE 19 A4           DEC COUNT       ;DECREMENT BYTE COUNT
0834   E4C7 D0 F0              BNE DU9         ;NOT DONE WITH THIS RECORD
0835   E4C9             ;OUTPUT CKSUM
0836   E4C9 AD 1F A4           LDA CKSUM+1
0837   E4CC 20 3B E5           JSR OUTCK1      ;WITHOUT CHEKA
0838   E4CF AD 1E A4           LDA CKSUM
0839   E4D2 20 3B E5           JSR OUTCK1
0840   E4D5 20 66 E5           JSR INCS2       ;INC VERTICAL COUNT
0841   E4D8 4C 7D E4           JMP DU2         ;NEXT RECORD
0842   E4DB             ;ALL DONE
0843   E4DB A0 1C       DU10   LDY #M5-M1      ;PRINT "MORE ?#
0844   E4DD 20 70 E9           JSR KEPR        ;OUTPUT MSG AND GET AN ANSWER
0845   E4E0 C9 59              CMP #'Y'
0846   E4E2 D0 03              BNE *+5
0847   E4E4 4C 44 E4           JMP DU1         ;DUMP MORE DATA
0848   E4E7 68                 PLA             ;RESTORE FLG
0849   E4E8 8D 10 A4           STA BKFLG
0850   E4EB             ;OUTPUT LAST RECORD
0851   E4EB 20 66 E5           JSR INCS2