Commodore 1571 firmware
Burst routine
.page
.subttl 'burst'
*=$8000
signature_lo *=*+1 ; <<< TO BE DETERMINED
signature_hi *=*+1 ; <<< TO BE DETERMINED
.byte W - DAVID G SIRACUSA',$0D,W - GREG BERLIN",$0D,'1985',$0D
burst_routines
lda cmdsiz ; check command size
cmp #3
bcc realus
lda cmdbuf+2 ; get command
sta switch ; save info
and #$1f
tax ; command info
asl a
tay
lda cmdtbb,y
sta ip
lda cmdtbb+1,y
sta ip+1
cpx #30 ; utload ok for 1541 mode
beq 1$
lda pota1
and #$20 ;2 Mhz ?
beq realus ; 1541 mode...ignore
1$ lda fastsr ; clear clock & error return
and #$eb
sta fastsr
lda cmdctl,x ; most sig bit set set error recover
sta cmdbuf+2 ; save info here
;<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>
jmp ptch65
; jmp (ip) ; *** rom ds 86 ***
;<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>
realus lda #<ublock ; set default block add
sta usrjmp
lda #>ublock
sta usrjmp+1
unused rts
.page
; command tables and information
cmdctl .byte $80,$81,$90,$91,$b0,$b1,$f0,$f1,$00,$01,$B0,$01,$00,$01,$00,$01
.byte $80,$81,$90,$91,$b0,$b1,$f0,$f1,$00,$01,$B0,$01,$00,$01,$00,$80
cmdtbb .word fstrd ; fast read drv #0 - 0000
.word ndkrd ; fast read drv #1 - 0001
.word fstwrt ; fast write drv #0 - 0010
.word ndkwrt ; fast write drv #1 - 0011
.word fstsek ; seek disk drv #0 - 0100
.word ndkrd ; seek disk drv #1 - 0101
.word fstfmt ; format disk drv #0 - 0110
.word fstfmt ; format disk drv #1 - 0111
.word cpmint ; interleave disk drv #0 - 1000
.word cpmint ; interleave disk drv #1 - 1001
.word querdk ; query disk format - 1010
.word ndkrd ; seek disk drv #1 - 1011
.word inqst ; return disk status - 1100
.word ndkrd ; return disk status - 1101
.word duplc1 ; backup drv0 to drv1 - 1110
.word duplc1 ; backup drv1 to drv0 - 1111
; *****************************************************************
.word fstrd ; fast read drv #0 - 0000
.word ndkrd ; fast read drv #1 - 0001
.word fstwrt ; fast write drv #0 - 0010
.word ndkwrt ; fast write drv #1 - 0011
.word fstsek ; seek disk drv #0 - 0100
.word ndkrd ; seek disk drv #1 - 0101
.word fstfmt
.word fstfmt
.word unused
.word unused
.word querdk ; query disk format - 1010
.word ndkrd ; seek disk drv #1 - 1011
.word unused
.word unused
.word chgutl
.word fstload