interrupt cleanup started

This commit is contained in:
FeralChild64 committed 2019-08-06 18:06:47 +02:00
1 parent 87b6a3f19a
commit 44ca73be40
12 files changed
+51 -25

No files matched your search

+1 -1
View File
@@ -3,7 +3,7 @@
SRC_COMMON = $(wildcard c64/aliases/*.s)
SRC_BASIC_COMMON = $(SRC_COMMON) $(wildcard c64/basic/*.s)
SRC_KERNAL_COMMON = $(SRC_COMMON) $(wildcard c64/kernal/*.s c64/kernal/jumptable/*.s c64/kernal/iec/*.s)
SRC_KERNAL_COMMON = $(SRC_COMMON) $(wildcard c64/kernal/*.s c64/kernal/jumptable/*.s c64/kernal/iec/*.s c64/kernal/interrupts/*.s)
SRC_BASIC_generic = $(SRC_BASIC_COMMON) $(wildcard c64/basic/,target_generic/*.s)
SRC_BASIC_mega65 = $(SRC_BASIC_COMMON) $(wildcard c64/basic/,target_mega65/*.s)
+2 -2
View File
@@ -25,7 +25,7 @@ The following ROM features are currently missing:
* floating point routines
* tape support
* RS-232 support
* warm start (RUN/STOP + RESTORE) - NMI is not implemented at all
* warm start (RUN/STOP + RESTORE) - NMI/BRK handling is not implemented at all
* breaking Kernal routines with RUN/STOP key
Features currently being worked on:
@@ -73,7 +73,7 @@ NOTE: Even the 'DONE' routines won't support features described as missing in on
| `$FF81` | `CINT` | PARTIAL | at least PAL/NTSC detection is missing |
| `$FF84` | `IOINIT` | PARTIAL | at least SID volume handling is missing |
| `$FF87` | `RAMTAS` | DONE | |
| `$FF8A` | `RESTOR` | PARTIAL | CBINV, NMINV, and USRCMD missing |
| `$FF8A` | `RESTOR` | DONE | |
| `$FF8D` | `VECTOR` | DONE | |
| `$FF90` | `SETMSG` | DONE | |
| `$FF93` | `SECOND` | DONE | |
@@ -11,7 +11,7 @@
;; CHKIN implementation
chkin:
chkin_real:
;; Store Y for preservation
tya
@@ -88,11 +88,9 @@ chkinout_file_not_output:
tay
jmp kernalerror_FILE_NOT_OUTPUT
chkinout_common:
;; CKOUT implementation
ckout:
ckout_real:
;; Store Y for preservation
tya
+6
View File
@@ -0,0 +1,6 @@
;; In our implementation CHKIN and CKOUT are closely tied,
;; placing it here would cause a collision
chkin:
jmp chkin_real
+6
View File
@@ -0,0 +1,6 @@
;; In our implementation CHKIN and CKOUT are closely tied,
;; placing it here would cause a collision
ckout:
jmp ckout_real
@@ -0,0 +1,8 @@
default_nmi_handler:
;; XXX provide real implementation
inc $D020
rti
@@ -0,0 +1,6 @@
default_brk_handler:
;; XXX implement this!
;; Acknowledge CIA interrupt and return
jmp clear_cia1_interrupt_flag_and_return_from_interrupt
File renamed without changes.
+5
View File
@@ -0,0 +1,5 @@
nmi_handler:
jmp (NMINV)
-3
View File
@@ -1,3 +0,0 @@
nmi_handler:
inc $D020
rti
+15 -15
View File
@@ -8,19 +8,19 @@
vector_defaults:
.word default_irq_handler ;; CINV
.word $0000 ;; CBINV XXX implement this, has to be $FE66 for autostart support
.word $0000 ;; NMINV XXX implement this, has to be $FE47 for autostart support
.word default_brk_handler ;; CBINV
.word default_nmi_handler ;; NMINV
.word open ;; IOPEN
.word close ;; ICLOSE
.word chkin ;; ICHKIN XXX move routine to $F20E - for autostart support
.word ckout ;; ICKOUT XXX move routine to $F250 - for autostart support
.word clrchn ;; ICLRCH
.word chrin ;; IBASIN
.word chrout ;; IBSOUT
.word stop ;; ISTOP
.word getin ;; IGETIN
.word clall ;; ICLALL
.word $0000 ;; USRCMD XXX implement this, has to be $FE66 for autostart support
.word load ;; ILOAD
.word save ;; ISAVE
.word open ;; IOPEN
.word close ;; ICLOSE
.word chkin ;; ICHKIN
.word ckout ;; ICKOUT
.word clrchn ;; ICLRCH
.word chrin ;; IBASIN
.word chrout ;; IBSOUT
.word stop ;; ISTOP
.word getin ;; IGETIN
.word clall ;; ICLALL
.word default_brk_handler ;; USRCMD
.word load ;; ILOAD
.word save ;; ISAVE