$E44E/58446:   Write side-sector and allocate new

Jump from $E3EF:

E44E: 20 1E F1  JSR $F11E       ; find free block in BAM
E451: 20 1E CF  JSR $CF1E       ; change buffer
E454: 20 F1 DD  JSR $DDF1       ; write block
E457: 20 93 DF  JSR $DF93       ; get buffer number
E45A: 48        PHA
E45B: 20 C1 DE  JSR $DEC1       ; erase buffer
E45E: A6 82     LDX $82         ; channel number
E460: B5 CD     LDA $CD,X       ; buffer number
E462: A8        TAY
E463: 68        PLA
E464: AA        TAX
E465: A9 10     LDA #$10        ; 16 bytes of the side-sector
E467: 20 A5 DE  JSR $DEA5       ; copy in buffer
E46A: A9 00     LDA #$00
E46C: 20 DC DE  JSR $DEDC       ; buffer pointer to 0, old side-sector
E46F: A0 02     LDY #$02
E471: B1 94     LDA ($94),Y     ; side-sector number
E473: 48        PHA
E474: A9 00     LDA #$00
E476: 20 C8 D4  JSR $D4C8       ; buffer pointer to 0, new side-sector
E479: 68        PLA
E47A: 18        CLC
E47B: 69 01     ADC #$01        ; increment side-sector number
E47D: 91 94     STA ($94),Y     ; and in buffer
E47F: 0A        ASL             ; times 2
E480: 69 04     ADC #$04        ; plus 4
E482: 85 89     STA $89
E484: A8        TAY
E485: 38        SEC
E486: E9 02     SBC #$02        ; minus 2
E488: 85 8A     STA $8A         ; same pointer to old side-sector
E48A: A5 80     LDA $80         ; track
E48C: 85 87     STA $87
E48E: 91 94     STA ($94),Y     ; in buffer
E490: C8        INY
E491: A5 81     LDA $81         ; sector
E493: 85 88     STA $88
E495: 91 94     STA ($94),Y     ; in buffer
E497: A0 00     LDY #$00
E499: 98        TYA
E49A: 91 94     STA ($94),Y     ; zero in buffer
E49C: C8        INY
E49D: A9 11     LDA #$11        ; 17
E49F: 91 94     STA ($94),Y     ; number of bytes in block
E4A1: A9 10     LDA #$10        ; 16
E4A3: 20 C8 D4  JSR $D4C8       ; buffer pointer to 16
E4A6: 20 50 DE  JSR $DE50       ; write block
E4A9: 20 99 D5  JSR $D599       ; and verify
E4AC: A6 82     LDX $82         ; channel number
E4AE: B5 CD     LDA $CD,X       ; buffer number of the side-sector
E4B0: 48        PHA
E4B1: 20 9E DF  JSR $DF9E       ; get buffer number
E4B4: A6 82     LDX $82         ; channel number
E4B6: 95 CD     STA $CD,X       ; write in table
E4B8: 68        PLA
E4B9: AE 57 02  LDX $0257       ; channel number + 7
E4BC: 95 A7     STA $A7,X       ; in table
E4BE: A9 00     LDA #$00
E4C0: 20 C8 D4  JSR $D4C8       ; buffer pointer to zero
E4C3: A0 00     LDY #$00
E4C5: A5 80     LDA $80         ; track
E4C7: 91 94     STA ($94),Y     ; in buffer
E4C9: C8        INY
E4CA: A5 81     LDA $81         ; sector
E4CC: 91 94     STA ($94),Y     ; in buffer
E4CE: 4C DE E4  JMP $E4DE

Jump from $E4F7:

E4D1: 20 93 DF  JSR $DF93       ; get buffer number
E4D4: A6 82     LDX $82         ; channel number
E4D6: 20 1B DF  JSR $DF1B       ; read block
E4D9: A9 00     LDA #$00
E4DB: 20 C8 D4  JSR $D4C8       ; buffer pointer to zero

Jump from $E4CE:

E4DE: C6 8A     DEC $8A
E4E0: C6 8A     DEC $8A         ; counter for side-sector blocks
E4E2: A4 89     LDY $89
E4E4: A5 87     LDA $87         ; track number
E4E6: 91 94     STA ($94),Y     ; in buffer
E4E8: C8        INY
E4E9: A5 88     LDA $88         ; sector number
E4EB: 91 94     STA ($94),Y     ; in buffer
E4ED: 20 5E DE  JSR $DE5E       ; write block
E4F0: 20 99 D5  JSR $D599       ; and verify
E4F3: A4 8A     LDY $8A         ; counter for side-sector blocks
E4F5: C0 03     CPY #$03
E4F7: B0 D8     BCS $E4D1       ; greater than or equal to 3?
E4F9: 4C 1E CF  JMP $CF1E       ; change buffer

    Previous Page / Next Page