81 lines
1.2 KiB
ArmAsm
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
|