added temporary handling of double LOAD/SAVE entries in Kernal

This commit is contained in:
FeralChild64 committed 2019-09-29 22:09:33 +02:00
1 parent d17b5f9cde
commit 9fd0297e51
14 files changed
+36 -5

No files matched your search

+1 -1
View File
@@ -189,7 +189,7 @@ test_mega65: build/kernal_mega65.rom build/basic_mega65.rom build/symbols_mega65
test_ultimate64: build/kernal_ultimate64.rom build/basic_ultimate64.rom build/symbols_ultimate64.vs
x64 -kernal build/kernal_ultimate64.rom -basic build/basic_ultimate64.rom -moncommands build/symbols_ultimate64.vs -8 empty.d64
test_m65: build/newc65
test_m65: build/newc65.rom
m65 -b ../mega65-core/bin/mega65r1.bit -k ../mega65-core/bin/KICKUP.M65 -R build/newc65.rom -4
testremote: build/kernal_generic.rom build/basic_generic.rom build/symbols_generic.vs
+4 -2
View File
@@ -126,8 +126,10 @@ NOTE: Even the 'DONE' routines won't support features described as missing in on
| `$FFCC` | `$F333` | `CLRCHN` | DONE | |
| `$FFCF` | `$F157` | `CHRIN` | PARTIAL | |
| `$FFD2` | `$F1CA` | `CHROUT` | PARTIAL | |
| `$FFD5` | `$F4A5` | `LOAD` | PARTIAL | no VERIFY support, no STOP key, check $F49E addr |
| `$FFD8` | `$F5ED` | `SAVE` | NOT DONE | check $F5DD location |
| `$FFD5` | `$F49E` | `LOAD` | PARTIAL | not yet clear what's this entry doing |
| `($0330)` | `$F4A5` | `LOAD` | PARTIAL | no VERIFY support, no STOP key, check $F49E addr |
| `$FFD8` | `$F5DD` | `SAVE` | NOT DONE | |
| `($0332)` | `$F5ED` | `SAVE` | NOT DONE | |
| `$FFDB` | | `SETTIM` | DONE | |
| `$FFDE` | | `RDTIM` | DONE | |
| `$FFE1` | `$F6ED` | `STOP` | DONE | |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+2
View File
@@ -0,0 +1,2 @@
This is a well-known address of a heavily used Kernal routine, it has to be the same so our ROM is compatible.
+13
View File
@@ -0,0 +1,13 @@
//
// XXX Note: something unusual was done with LOAD routine - although the vector at $330 points to $F4A5,
// the Kernal jump table points to $F49E (see also Mapping the C64, page 76). By experimenting
// I have already discovered that $F4A5 performs indirect jump via ($0330) vector, but it must
// be doing a little bit more - not sure yet, what. Something similar is done with SAVE.
//
// This has to be clarified.
//
LOAD_INT:
jmp (ILOAD)
+2
View File
@@ -0,0 +1,2 @@
This is a well-known address of a heavily used Kernal routine, it has to be the same so our ROM is compatible.
+12
View File
@@ -0,0 +1,12 @@
//
// XXX Note: something unusual was done with LOAD routine - although the vector at $330 points to $F4A5,
// the Kernal jump table points to $F49E (see also Mapping the C64, page 76). By experimenting
// I have already discovered that $F4A5 performs indirect jump via ($0330) vector, but it must
// be doing a little bit more - not sure yet, what. Something similar is done with SAVE.
//
// This has to be clarified.
//
SAVE_INT:
jmp (ISAVE)
+1 -1
View File
@@ -1,4 +1,4 @@
// load RAM from a device
// C64 Programmer's Reference Guide Page 272
jmp LOAD
jmp LOAD_INT
+1 -1
View File
@@ -1,4 +1,4 @@
// SAVE RAM to device
// C64 Programmer's Reference Guide Page 273
jmp SAVE
jmp SAVE_INT