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
|
## 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
|
## 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
|
### Official Kernal routines
|
||||||
@@ -63,7 +78,7 @@ NOTE: Even the 'DONE' routines won't support features described as missing in on
|
|||||||
<br />
|
<br />
|
||||||
|
|
||||||
| Address | Name | Status | Remarks |
|
| Address | Name | Status | Remarks |
|
||||||
| --------- | :------- | :------: | :------------------------------------------------: |
|
| :-------: | :------- | :------: | :------------------------------------------------: |
|
||||||
| `$FF81` | `CINT` | DONE | |
|
| `$FF81` | `CINT` | DONE | |
|
||||||
| `$FF84` | `IOINIT` | PARTIAL | CIA initialization incomplete |
|
| `$FF84` | `IOINIT` | PARTIAL | CIA initialization incomplete |
|
||||||
| `$FF87` | `RAMTAS` | DONE | |
|
| `$FF87` | `RAMTAS` | DONE | |
|
||||||
@@ -103,6 +118,10 @@ NOTE: Even the 'DONE' routines won't support features described as missing in on
|
|||||||
| `$FFED` | `SCREEN` | DONE | |
|
| `$FFED` | `SCREEN` | DONE | |
|
||||||
| `$FFF0` | `PLOT` | PARTIAL | cursor blink not handled |
|
| `$FFF0` | `PLOT` | PARTIAL | cursor blink not handled |
|
||||||
| `$FFF3` | `IOBASE` | DONE | |
|
| `$FFF3` | `IOBASE` | DONE | |
|
||||||
|
| `($FFFA)` | NMI vector | PARTIAL | |
|
||||||
|
| `($FFFC)` | RESET vector | PARTIAL | |
|
||||||
|
| `($FFFE)` | IRQ/BRK vector | PARTIAL | |
|
||||||
|
|
||||||
|
|
||||||
<br />
|
<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