     $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