mirror of
https://github.com/brouhaha/ramfactor.git
synced 2024-05-31 15:41:31 +00:00
ProDOS command decode.
This commit is contained in:
parent
1d276ecb09
commit
f4c5509834
|
@ -217,17 +217,17 @@ setvid equ $fe93
|
||||||
resetvec equ $fffc
|
resetvec equ $fffc
|
||||||
|
|
||||||
|
|
||||||
pc_err_bad_cmd equ $01
|
err_bad_cmd equ $01
|
||||||
pc_err_bad_pcnt equ $04
|
err_bad_pcnt equ $04
|
||||||
pc_err_bus_err equ $06
|
err_bus_err equ $06
|
||||||
pc_err_bad_unit_num equ $11
|
err_bad_unit_num equ $11
|
||||||
pc_err_bad_ctl equ $21
|
err_bad_ctl equ $21
|
||||||
pc_err_bad_ctl_param equ $22
|
err_bad_ctl_param equ $22
|
||||||
pc_err_io_error equ $27
|
err_io_error equ $27
|
||||||
pc_err_no_drive equ $28
|
err_no_drive equ $28
|
||||||
pc_err_no_write equ $2b ; write-protected
|
err_no_write equ $2b ; write-protected
|
||||||
pc_err_bad_block_num equ $2d
|
err_bad_block_num equ $2d
|
||||||
pc_err_offline equ $2f
|
err_offline equ $2f
|
||||||
; Protocol Converter error codes $30..$3f are device-specific errors
|
; Protocol Converter error codes $30..$3f are device-specific errors
|
||||||
; Protocol Converter error codes $50..$7f are device-specific non-fatal errors
|
; Protocol Converter error codes $50..$7f are device-specific non-fatal errors
|
||||||
|
|
||||||
|
@ -389,7 +389,7 @@ slot_prodos:
|
||||||
|
|
||||||
slot_protocol_converter
|
slot_protocol_converter
|
||||||
jsr romsel
|
jsr romsel
|
||||||
jmp protocol_converter
|
jmp pconv
|
||||||
|
|
||||||
slot_prodos_x:
|
slot_prodos_x:
|
||||||
jsr romsel
|
jsr romsel
|
||||||
|
@ -435,8 +435,8 @@ Lcnf2: pla
|
||||||
|
|
||||||
org $c800
|
org $c800
|
||||||
|
|
||||||
public protocol_converter ; referenced from slot
|
public pconv ; referenced from slot
|
||||||
protocol_converter:
|
pconv:
|
||||||
jsr Scd99
|
jsr Scd99
|
||||||
|
|
||||||
ldx #$09 ; save ten bytes from Z42 on stack
|
ldx #$09 ; save ten bytes from Z42 on stack
|
||||||
|
@ -464,10 +464,10 @@ Lc825: dey
|
||||||
sty shg_05f8
|
sty shg_05f8
|
||||||
tax
|
tax
|
||||||
cmp #$0a
|
cmp #$0a
|
||||||
bcs ret_pc_err_bad_cmd
|
bcs ret_err_bad_cmd
|
||||||
lda Dc887,x
|
lda Dc887,x
|
||||||
cmp (Z43),y
|
cmp (Z43),y
|
||||||
bne ret_pc_err_bad_pcnt
|
bne ret_err_bad_pcnt
|
||||||
|
|
||||||
ldy #$08
|
ldy #$08
|
||||||
Lc83f: lda (Z43),y
|
Lc83f: lda (Z43),y
|
||||||
|
@ -476,7 +476,7 @@ Lc83f: lda (Z43),y
|
||||||
bne Lc83f
|
bne Lc83f
|
||||||
|
|
||||||
lsr ; first param is unit num, only allow 0 and 1
|
lsr ; first param is unit num, only allow 0 and 1
|
||||||
bne ret_pc_err_bad_unit_num
|
bne ret_err_bad_unit_num
|
||||||
|
|
||||||
ldx shg_0778
|
ldx shg_0778
|
||||||
|
|
||||||
|
@ -489,14 +489,14 @@ Lc83f: lda (Z43),y
|
||||||
lda Z47
|
lda Z47
|
||||||
rts
|
rts
|
||||||
|
|
||||||
ret_pc_err_bad_unit_num:
|
ret_err_bad_unit_num:
|
||||||
lda #$11
|
lda #$11
|
||||||
skip2
|
skip2
|
||||||
ret_pc_err_bad_cmd:
|
ret_err_bad_cmd:
|
||||||
lda #pc_err_bad_cmd
|
lda #err_bad_cmd
|
||||||
skip2
|
skip2
|
||||||
ret_pc_err_bad_pcnt:
|
ret_err_bad_pcnt:
|
||||||
lda #pc_err_bad_pcnt
|
lda #err_bad_pcnt
|
||||||
LC863: sta shg_04f8
|
LC863: sta shg_04f8
|
||||||
Lc866: ldx #$00
|
Lc866: ldx #$00
|
||||||
Lc868: pla
|
Lc868: pla
|
||||||
|
@ -539,7 +539,7 @@ pc_cmd_format_init:
|
||||||
jmp Lc866
|
jmp Lc866
|
||||||
|
|
||||||
pc_cmd_rw_char:
|
pc_cmd_rw_char:
|
||||||
jmp ret_pc_err_bad_cmd
|
jmp ret_err_bad_cmd
|
||||||
|
|
||||||
pc_cmd_write_bytes:
|
pc_cmd_write_bytes:
|
||||||
bcs Lc8c5
|
bcs Lc8c5
|
||||||
|
@ -968,29 +968,32 @@ prodos:
|
||||||
lda Z43
|
lda Z43
|
||||||
bmi Lcc0c
|
bmi Lcc0c
|
||||||
ldy Z42
|
ldy Z42
|
||||||
beq Lcc0f
|
beq prodos_status
|
||||||
dey
|
dey
|
||||||
beq Lcc1f
|
beq prodos_read
|
||||||
dey
|
dey
|
||||||
beq Lcc3d
|
beq prodos_write
|
||||||
dey
|
dey
|
||||||
beq Lcc1b
|
beq prodos_format
|
||||||
ldy #$01
|
ldy #err_bad_cmd
|
||||||
skip2
|
skip2
|
||||||
lcc0a: ldy #$27
|
lcc0a: ldy #err_io_error
|
||||||
Lcc0c: tya
|
Lcc0c: tya
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
|
|
||||||
Lcc0f: ldy mslot
|
prodos_status:
|
||||||
|
ldy mslot
|
||||||
jsr Scfe4
|
jsr Scfe4
|
||||||
ldy shg_0478
|
ldy shg_0478
|
||||||
ldx shg_04f8
|
ldx shg_04f8
|
||||||
Lcc1b: lda #$00
|
prodos_format
|
||||||
|
: lda #$00
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
Lcc1f: jsr Scc58
|
prodos_read:
|
||||||
|
jsr Scc58
|
||||||
bcs Lcc0a
|
bcs Lcc0a
|
||||||
ldy #$00
|
ldy #$00
|
||||||
Lcc26: lda Dbffb,x
|
Lcc26: lda Dbffb,x
|
||||||
|
@ -1007,7 +1010,8 @@ Lcc38: dec Z45
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
Lcc3d: jsr Scc58
|
prodos_write:
|
||||||
|
jsr Scc58
|
||||||
bcs Lcc0a
|
bcs Lcc0a
|
||||||
ldy #$00
|
ldy #$00
|
||||||
Lcc44: lda (Z44),y
|
Lcc44: lda (Z44),y
|
||||||
|
|
Loading…
Reference in New Issue
Block a user