Prev: F72C Up: Map Next: F7D0
F76A: write the tape header
Used by the routines at F291, F34A and F5ED.
F76A 85 9E STA $9E save header type
F76C 20 D0 F7 JSR $F7D0 get tape buffer start pointer in XY
F76F 90 5E BCC $F7CF if < $0200 just exit ??
F771 A5 C2 LDA $C2 get I/O start address high byte
F773 48 PHA save it
F774 A5 C1 LDA $C1 get I/O start address low byte
F776 48 PHA save it
F777 A5 AF LDA $AF get tape end address high byte
F779 48 PHA save it
F77A A5 AE LDA $AE get tape end address low byte
F77C 48 PHA save it
F77D A0 BF LDY #$BF index to header end
F77F A9 20 LDA #" " clear byte, [SPACE]
F781 91 B2 STA ($B2),Y clear header byte
F783 88 DEY decrement index
F784 D0 FB BNE $F781 loop if more to do
F786 A5 9E LDA $9E get the header type back
F788 91 B2 STA ($B2),Y write it to header
F78A C8 INY increment the index
F78B A5 C1 LDA $C1 get the I/O start address low byte
F78D 91 B2 STA ($B2),Y write it to header
F78F C8 INY increment the index
F790 A5 C2 LDA $C2 get the I/O start address high byte
F792 91 B2 STA ($B2),Y write it to header
F794 C8 INY increment the index
F795 A5 AE LDA $AE get the tape end address low byte
F797 91 B2 STA ($B2),Y write it to header
F799 C8 INY increment the index
F79A A5 AF LDA $AF get the tape end address high byte
F79C 91 B2 STA ($B2),Y write it to header
F79E C8 INY increment the index
F79F 84 9F STY $9F save the index
F7A1 A0 00 LDY #$00 clear Y
F7A3 84 9E STY $9E clear the name index
F7A5 A4 9E LDY $9E get name index
F7A7 C4 B7 CPY $B7 compare with file name length
F7A9 F0 0C BEQ $F7B7 if all done exit the loop
F7AB B1 BB LDA ($BB),Y get file name byte
F7AD A4 9F LDY $9F get buffer index
F7AF 91 B2 STA ($B2),Y save file name byte to buffer
F7B1 E6 9E INC $9E increment file name index
F7B3 E6 9F INC $9F increment tape buffer index
F7B5 D0 EE BNE $F7A5 loop, branch always
F7B7 20 D7 F7 JSR $F7D7 set tape buffer start and end pointers
F7BA A9 69 LDA #$69 set write lead cycle count
F7BC 85 AB STA $AB save write lead cycle count
F7BE 20 6B F8 JSR $F86B do tape write, no cycle count set
F7C1 A8 TAY
F7C2 68 PLA pull tape end address low byte
F7C3 85 AE STA $AE restore it
F7C5 68 PLA pull tape end address high byte
F7C6 85 AF STA $AF restore it
F7C8 68 PLA pull I/O start addresses low byte
F7C9 85 C1 STA $C1 restore it
F7CB 68 PLA pull I/O start addresses high byte
F7CC 85 C2 STA $C2 restore it
F7CE 98 TYA
F7CF 60 RTS
Prev: F72C Up: Map Next: F7D0