Apple II User Manual

Page of 257
0914   E569 D0 03              BNE *+5
0915   E56B EE 07 01           INC S2+1
0916   E56E 60                 RTS
0917   E56F
0918   E56F             ;OPEN A FILE FOR OUTPUT TO TAPE BY BLOCKS
0919   E56F             ;OUTPUT FILENAME GIVEN BY JSR WHEREO TO TAPE BUFF
0920   E56F A2 00       DUMPTA LDX #0          ;INITIALIZE TAPTR
0921   E571 8A                 TXA             ;TO OUTPUT
0922   E572 8E 68 01           STX BLKO        ;BLOCK COUNTER
0923   E575 8E 37 A4           STX TAPTR2      ;TAP OUTPUT BUFF PTR
0924   E578 20 8B F1           JSR TOBYTE      ;TWO START OF FILE CHRS
0925   E57B BD 2E A4    DUMPT1 LDA NAME,X      ;OUTPUT FILENAME
0926   E57E 20 8B F1           JSR TOBYTE
0927   E581 E8                 INX
0928   E582 E0 05              CPX #5
0929   E584 D0 F5              BNE DUMPT1      ;5 FILENAME CHRS ?
0930   E586 60                 RTS
0931   E587
0932   E587             ;DUMP ROUTINE TO TAPE WITH KIM-1 FORMAT
0933   E587 20 1D F2    DUMPKI JSR TAOSET      ;SET TAPE FOR OUTPUT
0934   E58A A9 2A              LDA #'*'        ;TO EITHER 1 OR 2
0935   E58C 20 4A F2           JSR OUTTAP      ;DIRECTLY TO TAPE
0936   E58F             ;ID FROM LAST 2 CHRS OF FILENAME
0937   E58F 20 25 E4           JSR GETID
0938   E592 20 3B E5           JSR OUTCK1
0939   E595 20 4D EB           JSR CLRCK
0940   E598             ;STARTING ADDR
0941   E598 AD 1A A4           LDA S1
0942   E59B 20 38 E5           JSR OUTCK       ;WITH CHCKSUM
0943   E59E AD 1B A4           LDA S1+1
0944   E5A1 20 38 E5           JSR OUTCK
0945   E5A4             ;OUTPUT DATA
0946   E5A4 20 31 E5    DUK2   JSR OUTCKS      ;OUTPUT CHR SPECIFIED BY S1+1,S1
0947   E5A7 20 5D E5           JSR ADDS1       ;INCREM S1+1,S1
0948   E5AA AD 1A A4           LDA S1          ;CHCK FOR LAST BYTE
0949   E5AD CD 1C A4           CMP ADDR        ;LSB OF END ADDR
0950   E5B0 AD 1B A4           LDA S1+1
0951   E5B3 ED 1D A4           SBC ADDR+1
0952   E5B6 90 EC              BCC DUK2        ;NEXT CHR
0953   E5B8             ;NOW SEND END CHR "/"
0954   E5B8 A9 2F              LDA #'/'
0955   E5BA 20 4A F2           JSR OUTTAP      ;DIRECTLY TO TAPE
0956   E5BD             ;CHECKSUM
0957   E5BD AD 1E A4           LDA CKSUM
0958   E5C0 20 46 EA           JSR NUMA        ;ASCII REPRES
0959   E5C3 AD 1F A4           LDA CKSUM+1
0960   E5C6 20 46 EA           JSR NUMA
0961   E5C9             ;TWO EOT CHRS
0962   E5C9 A9 04              LDA #$04
0963   E5CB 20 4A F2           JSR OUTTAP
0964   E5CE 20 4A F2           JSR OUTTAP
0965   E5D1             ;TURN TAPES ON
0966   E5D1 4C 20 E5           JMP DU13
0967   E5D4
0968   E5D4             ;***** * COMMAND-ALTER PROGRAM COUNTER *****
0969   E5D4 20 AE EA    CGPC   JSR ADDIN       ;ADDR <=ADDRESS ENTERED FROM KB
0970   E5D7 20 DD E5    CGPC0  JSR CGPC1       ;TRANSFER ADDR TO SAVPC
0971   E5DA 4C 13 EA           JMP CRLOW
0972   E5DD AD 1D A4    CGPC1  LDA ADDR+1      ;THIS WAY MNEMONICS CAN USE IT
0973   E5E0 8D 26 A4           STA SAVPC+1
0974   E5E3 AD 1C A4           LDA ADDR
0975   E5E6 8D 25 A4           STA SAVPC