$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