improved VECTOR/RESTOR compatibility, small DOS wedge improvements

This commit is contained in:
FeralChild64 committed 2019-10-27 18:36:57 +01:00
1 parent d0ac49b2b6
commit 05253c3e92
3 files changed
+11 -12

No files matched your search

+2 -2
View File
@@ -30,11 +30,11 @@ hw_entry_reset:
!:
// Initialising IO is obviously required. Also indicated by c64 prg p269.
jsr JIOINIT
// Setting up the screen and testing ram is obviously required
// also affirmed by p269 of c64 prg
jsr JRAMTAS // called RANTAM on Codebase64 wiki
// Resetting IO vectors is obviously required, if we want interrupts to run
// also affirmed by c64 prg p269
jsr JRESTOR
+6 -7
View File
@@ -1,4 +1,5 @@
vector_real:
// Use MEMUSS as temporary storage location - checked on real C64 that this is the
@@ -8,11 +9,11 @@ vector_real:
// According to 'Compute's Mapping the Commodore 64' page 237,
// the CBM implementation does not disable IRQs - yet, the
// 'C64 Programmers Reference Guide' does not contain such
// warning and does not mention any preparations needed, so...
// better safe than sorry, disable the IRQ for the duration
// of vector manipulation
php
cli
// warning and does not mention any preparations needed.
// Initial idea was to do php, cli, ..., plp to make the routine safer,
// but it seems it might cause problem with initialization sequence,
// as the stack might be uninitialized when this routine is called
// Prepare the user data pointer - strange order to reduce risk
// of potential similarity to the original routine
@@ -38,6 +39,4 @@ vector_end_loop:
dey
bpl vector_restore
// Restore status register (IRQ) before return
plp
rts