small cleanup in BASIC, improved cartridge compatibility

This commit is contained in:
FeralChild64 committed 2020-01-12 13:12:16 +01:00
1 parent bb60a10f51
commit 3ca3725cba
28 files changed
+32 -22

No files matched your search

+2
View File
@@ -0,0 +1,2 @@
This address is called at least by the Simon's BASIC cartridge.
+9
View File
@@ -0,0 +1,9 @@
#if ROM_LAYOUT_STD || (ROM_LAYOUT_M65 && SEGMENT_BASIC_0)
// XXX provide documentation and implementation
REASON:
STUB_IMPLEMENTATION()
#endif // ROM layout
+3
View File
@@ -0,0 +1,3 @@
This routine is probably used by many cartridges and other software to initialize parts of the system. At least the UCart uses it - see here:
- https://www.elektroda.pl/rtvforum/topic3293027.html
+8
View File
@@ -0,0 +1,8 @@
#if ROM_LAYOUT_STD || (ROM_LAYOUT_M65 && SEGMENT_BASIC_0)
// XXX provide documentation and implementation
STUB_IMPLEMENTATION()
#endif // ROM layout
+17
View File
@@ -0,0 +1,17 @@
#if ROM_LAYOUT_STD || (ROM_LAYOUT_M65 && SEGMENT_BASIC_0)
//
// Official BASIC routine, described in:
//
// - [RG64] C64 Programmers Reference Guide - XXX
// - [CM64] Computes Mapping the Commodore 64 - page 69, XXX
//
// CPU registers that has to be preserved (see [RG64]): XXX
//
MAIN:
STUB_IMPLEMENTATION()
#endif // ROM layout
+17
View File
@@ -0,0 +1,17 @@
#if ROM_LAYOUT_STD || (ROM_LAYOUT_M65 && SEGMENT_BASIC_0)
//
// Official BASIC routine, described in:
//
// - [RG64] C64 Programmers Reference Guide - XXX
// - [CM64] Computes Mapping the Commodore 64 - page 69, XXX
//
// CPU registers that has to be preserved (see [RG64]): XXX
//
CHRNCH:
STUB_IMPLEMENTATION()
#endif // ROM layout
+9
View File
@@ -0,0 +1,9 @@
All the BASIC routines, for which there are vectors in $0300-$030B, have to be available at their original addresses.
Reason: some autostart software (https://codebase64.org/doku.php?id=base:autostarting_disk_files) override these vectors, so that some point
to new locations (usually Kernal related), while others points the original BASIC routines. Different techniques modify different vectors
(while resetting others to original C64 locations), some don't change the vectors at all, but might still put the original
C64 BASIC addresses there.
For various cartridges this just means disabling their extensions (like new commands); for us that would mean improperly functionning BASIC.
+3
View File
@@ -0,0 +1,3 @@
This routine is probably used by many cartridges and other software to initialize parts of the system. At least the UCart uses it - see here:
- https://www.elektroda.pl/rtvforum/topic3293027.html
+9
View File
@@ -0,0 +1,9 @@
#if ROM_LAYOUT_STD || (ROM_LAYOUT_M65 && SEGMENT_BASIC_0)
// XXX provide documentation and real implementation
new:
STUB_IMPLEMENTATION()
#endif // ROM layout
+6
View File
@@ -0,0 +1,6 @@
This routine is used to launch other software. It is used by:
- Exomizer (see https://github.com/bitshifters/exomizer/blob/master/exomizer/exomizer115.txt)
- FileBrowser64 (FB64) - found by debugging
and probably others.
+11
View File
@@ -0,0 +1,11 @@
#if ROM_LAYOUT_STD || (ROM_LAYOUT_M65 && SEGMENT_BASIC_0)
// XXX provide documentation and implementation
// see: https://www.lemon64.com/forum/viewtopic.php?t=64721&sid=bc400a5a6d404f8f092e4d32a92f5de7
// https://www.lemon64.com/forum/viewtopic.php?t=70680&sid=3ff66caf7f5fdf2a3c2ff2ee31fc3fd8
setcharptr:
STUB_IMPLEMENTATION()
#endif // ROM layout
+9
View File
@@ -0,0 +1,9 @@
All the BASIC routines, for which there are vectors in $0300-$030B, have to be available at their original addresses.
Reason: some autostart software (https://codebase64.org/doku.php?id=base:autostarting_disk_files) override these vectors, so that some point
to new locations (usually Kernal related), while others points the original BASIC routines. Different techniques modify different vectors
(while resetting others to original C64 locations), some don't change the vectors at all, but might still put the original
C64 BASIC addresses there.
For various cartridges this just means disabling their extensions (like new commands); for us that would mean improperly functionning BASIC.
+17
View File
@@ -0,0 +1,17 @@
#if ROM_LAYOUT_STD || (ROM_LAYOUT_M65 && SEGMENT_BASIC_0)
//
// Official BASIC routine, described in:
//
// - [RG64] C64 Programmers Reference Guide - XXX
// - [CM64] Computes Mapping the Commodore 64 - page 69, XXX
//
// CPU registers that has to be preserved (see [RG64]): XXX
//
QPLOP:
STUB_IMPLEMENTATION()
#endif // ROM layout
+17
View File
@@ -0,0 +1,17 @@
#if ROM_LAYOUT_STD || (ROM_LAYOUT_M65 && SEGMENT_BASIC_0)
//
// Official BASIC routine, described in:
//
// - [RG64] C64 Programmers Reference Guide - XXX
// - [CM64] Computes Mapping the Commodore 64 - page 70, XXX
//
// CPU registers that has to be preserved (see [RG64]): XXX
//
GONE:
STUB_IMPLEMENTATION()
#endif // ROM layout
+9
View File
@@ -0,0 +1,9 @@
All the BASIC routines, for which there are vectors in $0300-$030B, have to be available at their original addresses.
Reason: some autostart software (https://codebase64.org/doku.php?id=base:autostarting_disk_files) override these vectors, so that some point
to new locations (usually Kernal related), while others points the original BASIC routines. Different techniques modify different vectors
(while resetting others to original C64 locations), some don't change the vectors at all, but might still put the original
C64 BASIC addresses there.
For various cartridges this just means disabling their extensions (like new commands); for us that would mean improperly functionning BASIC.
+9
View File
@@ -0,0 +1,9 @@
#if ROM_LAYOUT_STD || (ROM_LAYOUT_M65 && SEGMENT_BASIC_0)
// XXX provide documentation and implementation
FRMEVL:
STUB_IMPLEMENTATION()
#endif // ROM layout
+3
View File
@@ -0,0 +1,3 @@
This routine is desribed in Mapping the C64, page 102, and used at least by CCGMS terminal software - see here:
- https://raw.githubusercontent.com/spathiwa/ccgmsterm/master/original/5a.gs
+17
View File
@@ -0,0 +1,17 @@
#if ROM_LAYOUT_STD || (ROM_LAYOUT_M65 && SEGMENT_BASIC_0)
//
// Official BASIC routine, described in:
//
// - [RG64] C64 Programmers Reference Guide - XXX
// - [CM64] Computes Mapping the Commodore 64 - page 70, XXX
//
// CPU registers that has to be preserved (see [RG64]): XXX
//
EVAL:
STUB_IMPLEMENTATION()
#endif // ROM layout
+9
View File
@@ -0,0 +1,9 @@
All the BASIC routines, for which there are vectors in $0300-$030B, have to be available at their original addresses.
Reason: some autostart software (https://codebase64.org/doku.php?id=base:autostarting_disk_files) override these vectors, so that some point
to new locations (usually Kernal related), while others points the original BASIC routines. Different techniques modify different vectors
(while resetting others to original C64 locations), some don't change the vectors at all, but might still put the original
C64 BASIC addresses there.
For various cartridges this just means disabling their extensions (like new commands); for us that would mean improperly functionning BASIC.
+17
View File
@@ -0,0 +1,17 @@
#if ROM_LAYOUT_STD || (ROM_LAYOUT_M65 && SEGMENT_BASIC_0)
//
// Official BASIC routine, described in:
//
// - [RG64] C64 Programmers Reference Guide - XXX
// - [CM64] Computes Mapping the Commodore 64 - page 69, XXX
//
// CPU registers that has to be preserved (see [RG64]): XXX
//
ERROR:
STUB_IMPLEMENTATION()
#endif // ROM layout
+9
View File
@@ -0,0 +1,9 @@
All the BASIC routines, for which there are vectors in $0300-$030B, have to be available at their original addresses.
Reason: some autostart software (https://codebase64.org/doku.php?id=base:autostarting_disk_files) override these vectors, so that some point
to new locations (usually Kernal related), while others points the original BASIC routines. Different techniques modify different vectors
(while resetting others to original C64 locations), some don't change the vectors at all, but might still put the original
C64 BASIC addresses there.
For various cartridges this just means disabling their extensions (like new commands); for us that would mean improperly functionning BASIC.
+9
View File
@@ -0,0 +1,9 @@
#if ROM_LAYOUT_STD || (ROM_LAYOUT_M65 && SEGMENT_BASIC_0)
// XXX provide documentation and implementation
INIT:
STUB_IMPLEMENTATION()
#endif // ROM layout
+3
View File
@@ -0,0 +1,3 @@
This routine is mentionned in the cartridge writing tutorial here: https://codebase64.org/doku.php?id=base:assembling_your_own_cart_rom_image
We have to implement (or at least provide stub), otherwise cartridges will crash.
+3
View File
@@ -0,0 +1,3 @@
This routine is mentionned in the cartridge writing tutorial here: https://codebase64.org/doku.php?id=base:assembling_your_own_cart_rom_image
We have to implement (or at least provide stub), otherwise cartridges will crash.
+9
View File
@@ -0,0 +1,9 @@
#if ROM_LAYOUT_STD || (ROM_LAYOUT_M65 && SEGMENT_BASIC_0)
// XXX provide documentation and implementation
RVECT:
STUB_IMPLEMENTATION()
#endif // ROM layout