STOP + RESTORE now works (bad news: works even without STOP)

This commit is contained in:
FeralChild64 committed 2019-08-06 22:00:50 +02:00
1 parent 03bc8b8e78
commit e4ddf9ec0c
12 files changed
+46 -19

No files matched your search

@@ -1,12 +1,25 @@
default_nmi_handler:
;; XXX implement according to Compute's Mapping the Commodore 64, page 74
;; Implemented according to Compute's Mapping the Commodore 64, page 74
;; and to https://www.c64-wiki.com/wiki/Interrupt
;; Save registers, sequence according to Compute's Mapping the Commodore 64, page 73
pha
txa
pha
tya
pha
;; XXX: RS-232 support is not implemented
;; XXX check if the source was RESTORE key, quit if it wasn't (no RS-232 support)
;; XXX if cartridge present, enter it through warm start vector
;; XXX if stop pressed, go to default_brk_handler
inc $D020
rti
;; According to C64 Wiki, if STOP key is pressed, the routine assumes warm start request
jsr JSTOP
bcs +
jmp return_from_interrupt ; no STOP pressed
*
jmp (CBINV) ; STOP + RESTORE