$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