fixed VECTOR defaults location, needed by GEOS

This commit is contained in:
FeralChild64 committed 2019-09-24 18:52:48 +02:00
1 parent 6949bd3f48
commit 571efdd03d
5 files changed
+33 -29

No files matched your search

+24
View File
@@ -0,0 +1,24 @@
//
// Official Kernal routine, described in:
//
// - [RG64] C64 Programmer's Reference Guide - page 293 (RESTOR), 304 (VECTOR)
// - [CM64] Compute's Mapping the Commodore 64 - page 237
//
// CPU registers that has to be preserved (see [RG64]): none
//
RESTOR:
clc // clear carry - for writing to system table
ldx #<vector_defaults
ldy #>vector_defaults
// FALLTHROUGH
VECTOR:
// Our implementation is longer than the original one,
// placing it here would cause a collision with VECTOR defaults
jmp vector_real
+3
View File
@@ -0,0 +1,3 @@
Location of the default Kernal vector values, described in Compute's Mapping the Commodore 64, page 237
It is referenced by GEOS - see https://github.com/mist64/geos/blob/master/inc/c64.inc
File renamed without changes.
@@ -1,22 +1,5 @@
//
// Official Kernal routine, described in:
//
// - [RG64] C64 Programmer's Reference Guide - page 293 (RESTOR), 304 (VECTOR)
// - [CM64] Compute's Mapping the Commodore 64 - page 237
//
// CPU registers that has to be preserved (see [RG64]): none
//
RESTOR:
clc // clear carry - for writing to system table
ldx #<vector_defaults
ldy #>vector_defaults
// FALLTHROUGH
VECTOR:
vector_real:
// Temporary storage location - checked on real C64 that this is the
// address originally used; after calling VECTOR and checking zero page
@@ -41,17 +24,10 @@ VECTOR:
ldy #$1F
bcc vector_restore
// FALLTHROUGH
vector_store:
lda CINV, y
sta (_caller_arr_ptr), y
dey
bpl vector_store
// Restore status register (IRQ) before return
plp
rts
// FALLTHROUGH
vector_restore:
lda (_caller_arr_ptr), y