added stubs for official BASIC routines

This commit is contained in:
FeralChild64 committed 2019-09-12 20:28:53 +02:00
1 parent ef1354f7b2
commit 123e5e46c3
13 files changed
+154 -3

No files matched your search

+22 -3
View File
@@ -46,14 +46,29 @@ For the current status of the low memory location implementation andd usage chec
## BASIC
### Official BASIC routines
TODO
Note: vectors at `$0300` are not supported yet - for now only the locations below can be used!
<br />
| Address | Name | Status | Remarks |
| :-------: | :---------------- | :------: | :------------------------------------------------: |
| `($A000)` | cold start vector | PARTIAL | |
| `($A002)` | warm start vector | PARTIAL | |
| `$A483` | `MAIN` | NOT DONE | some implementation exists, but not connected here |
| `$A57C` | `CHRNCH` | NOT DONE | |
| `$A71A` | `QPLOP` | NOT DONE | some implementation exists, but not connected here |
| `$A7E4` | `GONE` | NOT DONE | some implementation exists, but not connected here |
| `$AE86` | `EVAL` | NOT DONE | some implementation exists, but not connected here |
| `$E38B` | `ERROR` | NOT DONE | |
<br />
## Kernal
Note: only the jump table addresses are currently supported, real routine addresses are different!
Note: only the jump table addresses are fully supported, real routine addresses are sometimes different!
### Official Kernal routines
@@ -63,7 +78,7 @@ NOTE: Even the 'DONE' routines won't support features described as missing in on
<br />
| Address | Name | Status | Remarks |
| --------- | :------- | :------: | :------------------------------------------------: |
| :-------: | :------- | :------: | :------------------------------------------------: |
| `$FF81` | `CINT` | DONE | |
| `$FF84` | `IOINIT` | PARTIAL | CIA initialization incomplete |
| `$FF87` | `RAMTAS` | DONE | |
@@ -103,6 +118,10 @@ NOTE: Even the 'DONE' routines won't support features described as missing in on
| `$FFED` | `SCREEN` | DONE | |
| `$FFF0` | `PLOT` | PARTIAL | cursor blink not handled |
| `$FFF3` | `IOBASE` | DONE | |
| `($FFFA)` | NMI vector | PARTIAL | |
| `($FFFC)` | RESET vector | PARTIAL | |
| `($FFFE)` | IRQ/BRK vector | PARTIAL | |
<br />
+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.
+13
View File
@@ -0,0 +1,13 @@
//
// Official BASIC routine, described in:
//
// - [RG64] C64 Programmer's Reference Guide - XXX
// - [CM64] Compute's Mapping the Commodore 64 - page 69, XXX
//
// CPU registers that has to be preserved (see [RG64]): XXX
//
MAIN:
rts // XXX implement this
+13
View File
@@ -0,0 +1,13 @@
//
// Official BASIC routine, described in:
//
// - [RG64] C64 Programmer's Reference Guide - XXX
// - [CM64] Compute's Mapping the Commodore 64 - page 69, XXX
//
// CPU registers that has to be preserved (see [RG64]): XXX
//
CHRNCH:
rts // XXX implement this
+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 @@
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.
+13
View File
@@ -0,0 +1,13 @@
//
// Official BASIC routine, described in:
//
// - [RG64] C64 Programmer's Reference Guide - XXX
// - [CM64] Compute's Mapping the Commodore 64 - page 69, XXX
//
// CPU registers that has to be preserved (see [RG64]): XXX
//
QPLOP:
rts // XXX implement this
+13
View File
@@ -0,0 +1,13 @@
//
// Official BASIC routine, described in:
//
// - [RG64] C64 Programmer's Reference Guide - XXX
// - [CM64] Compute's Mapping the Commodore 64 - page 70, XXX
//
// CPU registers that has to be preserved (see [RG64]): XXX
//
GONE:
rts // XXX implement this
+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.
+13
View File
@@ -0,0 +1,13 @@
//
// Official BASIC routine, described in:
//
// - [RG64] C64 Programmer's Reference Guide - XXX
// - [CM64] Compute's Mapping the Commodore 64 - page 70, XXX
//
// CPU registers that has to be preserved (see [RG64]): XXX
//
EVAL:
rts // XXX implement this
+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.
+13
View File
@@ -0,0 +1,13 @@
//
// Official BASIC routine, described in:
//
// - [RG64] C64 Programmer's Reference Guide - XXX
// - [CM64] Compute's Mapping the Commodore 64 - page 69, XXX
//
// CPU registers that has to be preserved (see [RG64]): XXX
//
ERROR:
rts // XXX implement this
+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.