more IEC error reporting work

This commit is contained in:
FeralChild64 committed 2019-07-17 16:57:54 +02:00
1 parent ecf1b3aa50
commit 152120a3fe
10 files changed
+252 -100

No files matched your search

+79 -44
View File
@@ -1,53 +1,88 @@
;; Kernal error codes are described in 'Commodore 64 Programmer's Reference Guide', page 306
kernalerror_common:
sta DFLTN
kernalerror_ROUTINE_TERMINATED: ; by a STOP key
lda #K_ERR_ROUTINE_TERMINATED
sec
rts
kernalerror_ROUTINE_TERMINATED: ; by a STOP key
lda #$00
jmp kernalerror_common
kernalerror_TOO_MANY_OPEN_FILES:
lda #$01
jmp kernalerror_common
kernalerror_FILE_ALREADY_OPEN:
lda #$02
jmp kernalerror_common
kernalerror_FILE_NOT_OPEN:
lda #$03
jmp kernalerror_common
kernalerror_FILE_NOT_FOUND:
lda #$04
jmp kernalerror_common
kernalerror_DEVICE_NOT_FOUND:
lda #$05
jmp kernalerror_common
kernalerror_FILE_NOT_INPUT:
lda #$06
jmp kernalerror_common
kernalerror_FILE_NOT_OUTPUT:
lda #$07
jmp kernalerror_common
kernalerror_FILE_NAME_MISSING:
lda #$08
jmp kernalerror_common
kernalerror_ILLEGAL_DEVICE_NUMBER:
lda #$09
jmp kernalerror_common
kernalerror_TOP_MEM_RS232:
lda #$F0
sta RSSTAT
lda #K_ERR_TOO_MANY_OPEN_FILES
sec
rts
kernalerror_FILE_ALREADY_OPEN:
lda #K_ERR_FILE_ALREADY_OPEN
sec
rts
kernalerror_FILE_NOT_OPEN:
lda #K_ERR_FILE_NOT_OPEN
sec
rts
kernalerror_FILE_NOT_FOUND:
lda #K_ERR_FILE_NOT_FOUND
sec
rts
kernalerror_DEVICE_NOT_FOUND:
lda #K_ERR_DEVICE_NOT_FOUND
sec
rts
kernalerror_FILE_NOT_INPUT:
lda #K_ERR_FILE_NOT_INPUT
sec
rts
kernalerror_FILE_NOT_OUTPUT:
lda #K_ERR_FILE_NOT_OUTPUT
sec
rts
kernalerror_FILE_NAME_MISSING:
lda #K_ERR_FILE_NAME_MISSING
sec
rts
kernalerror_ILLEGAL_DEVICE_NUMBER:
lda #K_ERR_ILLEGAL_DEVICE_NUMBER
sec
rts
kernalerror_TOP_MEM_RS232:
lda #K_ERR_TOP_MEM_RS232
sec
rts
;; Kernal status codes are described in 'Commodore 64 Programmer's Reference Guide', page 292
kernalstatus_reset:
lda #$00
sta IOSTATUS
rts
kernalstatus_TIMEOUT_WRITE: ;; XXX detect this!
lda IOSTATUS
ora #K_STS_TIMEOUT_WRITE
sta IOSTATUS
rts
kernalstatus_TIMEOUT_READ: ;; XXX detect this!
lda IOSTATUS
ora #K_STS_TIMEOUT_READ
sta IOSTATUS
rts
kernalstatus_EOI:
lda IOSTATUS
ora #K_STS_EOI
sta IOSTATUS
rts
kernalstatus_DEVICE_NOT_FOUND:
lda IOSTATUS
ora #K_STS_DEVICE_NOT_FOUND
sta IOSTATUS
rts