added stubs for official BASIC routines
This commit is contained in:
1 parent
ef1354f7b2
commit
123e5e46c3
13 files changed
+154
-3
No files matched your search
@@ -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 />
|
||||
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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.
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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.
|
||||
|
||||
@@ -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
|
||||
@@ -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.
|
||||
|
||||
@@ -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
|
||||
@@ -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.
|
||||
|
||||
Reference in new issue
Block a user