Apple II User Manual
0790 E46A EE 10 A4 INC BKFLG ;SET FLG
0791 E46D ;CHCK OUTPUT DEV
0792 E46D AD 13 A4 DU1A LDA OUTFLG
0792 E46D AD 13 A4 DU1A LDA OUTFLG
0793 E470 C9 4B CMP #'K' ;TAPE FOR KIM?
0794 E472 D0 04 BNE *+6
0794 E472 D0 04 BNE *+6
0795 E474 68 PLA ;PULL FLG
0796 E475 4C 87 E5 JMP DUMPKI ;YES, GO OUTPUT WHOLE FILE
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
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
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
0802 E483 20 4D EB JSR CLRCK ;CLEAR CKSUM
0803 E486 AD 1C A4 LDA ADDR ;END ADDRESS-CURRENT ADDRESS
0804 E489 38 SEC
0804 E489 38 SEC
0805 E48A ED 1A A4 SBC S1
0806 E48D 48 PHA ;# OF BYTES LOW
0806 E48D 48 PHA ;# OF BYTES LOW
0807 E48E AD 1D A4 LDA ADDR+1
0808 E491 ED 1B A4 SBC S1+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
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
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
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
0816 E49F 68 DU6 PLA
0817 E4A0 A9 18 DU7 LDA #24
0818 E4A2 ;OUTPUT ";" ,# OF BYTES AND SA
0818 E4A2 ;OUTPUT ";" ,# OF BYTES AND SA
0819 E4A2 48 DU8 PHA
0820 E4A3 20 BA E9 JSR SEMI ;SEMICOLON
0820 E4A3 20 BA E9 JSR SEMI ;SEMICOLON
0821 E4A6 68 PLA
0822 E4A7 8D 19 A4 STA COUNT ;SAVE # OF BYTES
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
0824 E4AD AD 1B A4 LDA S1+1 ;OUTPUT ADDRESS
0825 E4B0 20 38 E5 JSR OUTCK
0826 E4B3 AD 1A A4 LDA S1
0826 E4B3 AD 1A A4 LDA S1
0827 E4B6 20 38 E5 JSR OUTCK
0828 E4B9 ;OUTPUT DATA
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
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
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
0834 E4C7 D0 F0 BNE DU9 ;NOT DONE WITH THIS RECORD
0835 E4C9 ;OUTPUT CKSUM
0836 E4C9 AD 1F A4 LDA CKSUM+1
0836 E4C9 AD 1F A4 LDA CKSUM+1
0837 E4CC 20 3B E5 JSR OUTCK1 ;WITHOUT CHEKA
0838 E4CF AD 1E A4 LDA CKSUM
0838 E4CF AD 1E A4 LDA CKSUM
0839 E4D2 20 3B E5 JSR OUTCK1
0840 E4D5 20 66 E5 JSR INCS2 ;INC VERTICAL COUNT
0840 E4D5 20 66 E5 JSR INCS2 ;INC VERTICAL COUNT
0841 E4D8 4C 7D E4 JMP DU2 ;NEXT RECORD
0842 E4DB ;ALL DONE
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
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
0846 E4E2 D0 03 BNE *+5
0847 E4E4 4C 44 E4 JMP DU1 ;DUMP MORE DATA
0848 E4E7 68 PLA ;RESTORE FLG
0848 E4E7 68 PLA ;RESTORE FLG
0849 E4E8 8D 10 A4 STA BKFLG
0850 E4EB ;OUTPUT LAST RECORD
0850 E4EB ;OUTPUT LAST RECORD
0851 E4EB 20 66 E5 JSR INCS2