Files
open-roms/src/dos_m65/dos_acptr.s
T

81 lines
1.2 KiB
ArmAsm

;
; Implementation of ACPTR command. For detailed description see 'm65dos_bridge.s' file.
;
dos_ACPTR: ; does not have to preserve .X
ldx IDX1_TALKER
bmi dos_ACPTR_fail
lda XX_CHANNEL, X
cmp #$0F
beq dos_ACPTR_status
; XXX providde implementation for non-status streams
jmp dos_ACPTR_fail
dos_ACPTR_status:
ldx IDX2_TALKER
jsr (dos_ACPTR_getsts_table, X)
sta TBTCNT ; byte return
beq dos_ACPTR_reset_status
clc
rts
dos_ACPTR_fail:
; XXX set error code
sec
rts
dos_ACPTR_reset_status:
lda IDX1_TALKER
jsr dos_status_00
; FALLTROUGH
dos_ACPTR_eoi:
jsr kernalstatus_EOI
clc
rts
; Retrieving bytes from the status string
dos_ACPTR_getsts_SD: ; get next byte of status - SD card
ldx SD_STATUS_IDX
inc SD_STATUS_IDX
lda SD_STATUS_STR,x
rts
dos_ACPTR_getsts_FD: ; get next byte of status - floppy
ldx FD_STATUS_IDX
inc FD_STATUS_IDX
lda FD_STATUS_STR,x
rts
dos_ACPTR_getsts_RD: ; get next byte of status - ram disk
ldx RD_STATUS_IDX
inc RD_STATUS_IDX
lda RD_STATUS_STR,x
rts
dos_ACPTR_getsts_table:
!word dos_ACPTR_getsts_SD
!word dos_ACPTR_getsts_FD
!word dos_ACPTR_getsts_RD