$DBA5/56229: Directory entry Jump from $DB23, $DB5C: DBA5: A6 82 LDX $82 ; channel number DBA7: 8E 70 02 STX $0270 ; save DBAA: A5 83 LDA $83 ; secondary address DBAC: 48 PHA ; save DBAD: BD 60 02 LDA $0260,X ; sector number in directory DBB0: 85 81 STA $81 ; set DBB2: BD 66 02 LDA $0266,X ; pointer in directory DBB5: 8D 94 02 STA $0294 DBB8: B5 EC LDA $EC,X DBBA: 29 01 AND #$01 DBBC: 85 7F STA $7F ; drive number DBBE: AD 85 FE LDA $FE85 ; 18, directory track DBC1: 85 80 STA $80 ; set DBC3: 20 93 DF JSR $DF93 ; increment buffer number DBC6: 48 PHA DBC7: 85 F9 STA $F9 DBC9: 20 60 D4 JSR $D460 ; read directory block DBCC: A0 00 LDY #$00 DBCE: BD E0 FE LDA $FEE0,X ; buffer address DBD1: 85 87 STA $87 DBD3: AD 94 02 LDA $0294 ; buffer pointer DBD6: 85 86 STA $86 DBD8: B1 86 LDA ($86),Y ; file type DBDA: 29 20 AND #$20 ; file closed? DBDC: F0 43 BEQ $DC21 ; yes DBDE: 20 25 D1 JSR $D125 ; check file type DBE1: C9 04 CMP #$04 ; rel-file? DBE3: F0 44 BEQ $DC29 ; yes DBE5: B1 86 LDA ($86),Y DBE7: 29 8F AND #$8F ; erase bits 4,5, and 6 DBE9: 91 86 STA ($86),Y ; in file type DBEB: C8 INY DBEC: B1 86 LDA ($86),Y ; track number DBEE: 85 80 STA $80 DBF0: 84 71 STY $71 DBF2: A0 1B LDY #$1B DBF4: B1 86 LDA ($86),Y ; sector number of the file for DBF6: 48 PHA ; overwriting DBF7: 88 DEY DBF8: B1 86 LDA ($86),Y ; track number for overwriting DBFA: D0 0A BNE $DC06 ; set? DBFC: 85 80 STA $80 ; set track number DBFE: 68 PLA DBFF: 85 81 STA $81 ; sector number DC01: A9 67 LDA #$67 DC03: 20 45 E6 JSR $E645 ; 67, 'illegal track or sector' Jump from $DBFA: DC06: 48 PHA DC07: A9 00 LDA #$00 DC09: 91 86 STA ($86),Y ; erase track number DC0B: C8 INY DC0C: 91 86 STA ($86),Y ; and sector number of the DC0E: 68 PLA ; substitute file DC0F: A4 71 LDY $71 DC11: 91 86 STA ($86),Y DC13: C8 INY ; set track & sector number of the new file DC14: B1 86 LDA ($86),Y DC16: 85 81 STA $81 DC18: 68 PLA DC19: 91 86 STA ($86),Y DC1B: 20 7D C8 JSR $C87D ; erase all files DC1E: 4C 29 DC JMP $DC29 Jump from $DBDC: DC21: B1 86 LDA ($86),Y ; get file type DC23: 29 0F AND #$0F ; isolate bits 0-3 DC25: 09 80 ORA #$80 ; set bit 7 for closed file DC27: 91 86 STA ($86),Y Jump from $DBE3, $DC1E: DC29: AE 70 02 LDX $0270 ; channel number DC2C: A0 1C LDY #$1C DC2E: B5 B5 LDA $B5,X ; block number lo DC30: 91 86 STA ($86),Y ; in directory entry DC32: C8 INY DC33: B5 BB LDA $BB,X ; and block number hi DC35: 91 86 STA ($86),Y ; write DC37: 68 PLA ; buffer number DC38: AA TAX DC39: A9 90 LDA #$90 ; code for 'writing' DC3B: 05 7F ORA $7F DC3D: 20 90 D5 JSR $D590 ; write block DC40: 68 PLA DC41: 85 83 STA $83 ; secondary address DC43: 4C 07 D1 JMP $D107 ; open channel for writing Previous Page / Next Page |