140 lines
1.6 KiB
ArmAsm
Executable File
140 lines
1.6 KiB
ArmAsm
Executable File
lst off
|
|
|
|
org $300
|
|
|
|
*
|
|
* loresshow:0C00.0FFF ($400)
|
|
* framedata:1000.6BFF ($5C00)
|
|
*
|
|
* buffer18 :6C00.7DFF ($1200 one track)
|
|
* rw18.d000:7E00.82FF ($500 moved to aux ramcard)
|
|
*
|
|
|
|
BbundID = $AD
|
|
|
|
loresshow = $c00
|
|
buffer18 = $6c00
|
|
|
|
rw18 = $d000
|
|
rw18temp = $7e00
|
|
|
|
slot = $FD
|
|
track = $FE
|
|
lastrack = $FF
|
|
|
|
startrack = 12 ;last 6 sectors here
|
|
|
|
* 13,14,15,16,17 (5 full tracks here)
|
|
|
|
errcode = 0
|
|
|
|
start jsr $e74c ;get slot#
|
|
txa
|
|
asl
|
|
asl
|
|
asl
|
|
asl
|
|
|
|
sta $C009 ;aux zpage, ramcard
|
|
sta slot
|
|
|
|
bit $C083
|
|
bit $C083
|
|
|
|
* Move rw18 to its home
|
|
|
|
ldx #>rw18temp
|
|
ldy #>rw18
|
|
lda #5
|
|
jsr movedata
|
|
|
|
* Now we can use rw18
|
|
|
|
jsr rw18
|
|
db 7,BbundID
|
|
|
|
jsr rw18
|
|
db 0,5,1 ;drive on
|
|
|
|
jsr rw18 ;seek to startrack
|
|
db 2,1,startrack
|
|
|
|
* handle special track with
|
|
|
|
jsr rw18
|
|
db 3 ;read in original data
|
|
db >buffer18
|
|
lda #1
|
|
bcs :error
|
|
|
|
* update last 6 sectors
|
|
|
|
ldx #>loresshow
|
|
ldy #>buffer18+$C00
|
|
lda #6
|
|
jsr movedata
|
|
|
|
* write it back out
|
|
|
|
jsr rw18
|
|
db 5 ;writesequ
|
|
db >buffer18
|
|
lda #2
|
|
bcs :error
|
|
|
|
* write out rest of data...
|
|
|
|
lda #>loresshow+$600
|
|
:wloop sta :buf
|
|
|
|
inc track
|
|
|
|
jsr rw18
|
|
db 5 ;writesequ
|
|
:buf db $11
|
|
lda #2
|
|
bcs :error
|
|
|
|
lda :buf
|
|
adc #$12
|
|
cmp #>loresshow+$600+{5*$1200}
|
|
bne :wloop
|
|
|
|
lda #0
|
|
|
|
:error pha
|
|
jsr rw18
|
|
db 1 ;drive off
|
|
pla
|
|
|
|
sta $C008
|
|
bit $C081
|
|
sta errcode
|
|
rts
|
|
|
|
*------------------------------------------------- movedata
|
|
*
|
|
* Move data: x:source, y:dest, a:length
|
|
*
|
|
|
|
movedata stx :src+2
|
|
sty :dst+2
|
|
tax
|
|
|
|
ldy #0
|
|
:loop
|
|
:src lda $1100,y
|
|
:dst sta $1100,y
|
|
iny
|
|
bne :loop
|
|
|
|
inc :src+2
|
|
inc :dst+2
|
|
|
|
dex
|
|
bne :loop
|
|
|
|
rts
|
|
|
|
*------------------------------------------------- EOF
|