added more stubs, updated documentation
This commit is contained in:
1 parent
123e5e46c3
commit
8fce9681be
14 files changed
+149
-69
No files matched your search
@@ -52,79 +52,109 @@ Note: vectors at `$0300` are not supported yet - for now only the locations belo
|
||||
|
||||
<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 | |
|
||||
| Entry | Unofficial | Name | Status | Remarks |
|
||||
| :-------: | :--------: | :--------- | :------: | :------------------------------------------------: |
|
||||
| | `$E38B` | `ERROR` | NOT DONE | |
|
||||
| | `$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 |
|
||||
| `($A000)` | | cold start | PARTIAL | |
|
||||
| `($A002)` | | warm start | PARTIAL | |
|
||||
|
||||
|
||||
<br />
|
||||
|
||||
### Unofficial BASIC routines/locations
|
||||
|
||||
Not all of them - only these we want to have implemented.
|
||||
|
||||
<br />
|
||||
|
||||
| Address | Name | Status | Remarks |
|
||||
| :-------: | :----------- | :------: | :------------------------------------------------: |
|
||||
| `$A004` | revision str | DONE | |
|
||||
| `$A68E` | RUNC | NOT DONE | |
|
||||
| `$A7AE` | NEWSTT | NOT DONE | |
|
||||
| `$AB1E` | STROUT | DONE | |
|
||||
| `$BDCD` | LINPRT | NOT DONE | |
|
||||
| `$E3BF` | INIT | NOT DONE | |
|
||||
| `$E422` | INITMSG | NOT DONE | |
|
||||
| `$E453` | RVECT | NOT DONE | |
|
||||
|
||||
<br />
|
||||
|
||||
## Kernal
|
||||
|
||||
|
||||
Note: only the jump table addresses are fully supported, real routine addresses are sometimes different!
|
||||
|
||||
|
||||
### Official Kernal routines
|
||||
|
||||
NOTE: Even the 'DONE' routines won't support features described as missing in one of the previous chapters!
|
||||
|
||||
<br />
|
||||
|
||||
| Address | Name | Status | Remarks |
|
||||
| :-------: | :------- | :------: | :------------------------------------------------: |
|
||||
| `$FF81` | `CINT` | DONE | |
|
||||
| `$FF84` | `IOINIT` | PARTIAL | CIA initialization incomplete |
|
||||
| `$FF87` | `RAMTAS` | DONE | |
|
||||
| `$FF8A` | `RESTOR` | DONE | |
|
||||
| `$FF8D` | `VECTOR` | DONE | |
|
||||
| `$FF90` | `SETMSG` | DONE | |
|
||||
| `$FF93` | `SECOND` | DONE | |
|
||||
| `$FF96` | `TKSA` | DONE | |
|
||||
| `$FF99` | `MEMTOP` | DONE | |
|
||||
| `$FF9C` | `MEMBOT` | DONE | |
|
||||
| `$FF9F` | `SCNKEY` | DONE | could be better integrated with ROM (aliases) |
|
||||
| `$FFA2` | `SETTMO` | DONE | |
|
||||
| `$FFA5` | `ACPTR` | DONE | |
|
||||
| `$FFA8` | `CIOUT` | DONE | |
|
||||
| `$FFAB` | `UNTLK` | DONE | |
|
||||
| `$FFAE` | `UNLSN` | DONE | |
|
||||
| `$FFB1` | `LISTEN` | DONE | |
|
||||
| `$FFB4` | `TALK` | DONE | |
|
||||
| `$FFB7` | `READST` | DONE | |
|
||||
| `$FFBA` | `SETFLS` | DONE | |
|
||||
| `$FFBD` | `SETNAM` | DONE | |
|
||||
| `$FFC0` | `OPEN` | DONE | |
|
||||
| `$FFC3` | `CLOSE` | DONE | |
|
||||
| `$FFC6` | `CHKIN` | DONE | |
|
||||
| `$FFC9` | `CHKOUT` | PARTIAL | |
|
||||
| `$FFCC` | `CLRCHN` | DONE | |
|
||||
| `$FFCF` | `CHRIN` | PARTIAL | |
|
||||
| `$FFD2` | `CHROUT` | PARTIAL | |
|
||||
| `$FFD5` | `LOAD` | PARTIAL | no VERIFY support yet, no STOP key support |
|
||||
| `$FFD8` | `SAVE` | NOT DONE | |
|
||||
| `$FFDB` | `SETTIM` | DONE | |
|
||||
| `$FFDE` | `RDTIM` | DONE | |
|
||||
| `$FFE1` | `STOP` | DONE | |
|
||||
| `$FFE4` | `GETIN` | PARTIAL | only some devices supported |
|
||||
| `$FFE7` | `CLALL` | DONE | |
|
||||
| `$FFEA` | `UDTIM` | DONE | |
|
||||
| `$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 | |
|
||||
|
||||
| Address | Unofficial | Name | Status | Remarks |
|
||||
| :-------: | :--------: | :---------- | :------: | :------------------------------------------------: |
|
||||
| `$FF81` | `$FF5B` | `CINT` | DONE | |
|
||||
| `$FF84` | `$FDA3` | `IOINIT` | PARTIAL | CIA initialization incomplete |
|
||||
| `$FF87` | `$FD50` | `RAMTAS` | DONE | |
|
||||
| `$FF8A` | | `RESTOR` | DONE | |
|
||||
| `$FF8D` | `$FD15` | `VECTOR` | PARTIAL | wrong address, code starts from RESTOR |
|
||||
| `$FF90` | | `SETMSG` | DONE | |
|
||||
| `$FF93` | | `SECOND` | DONE | |
|
||||
| `$FF96` | | `TKSA` | DONE | |
|
||||
| `$FF99` | | `MEMTOP` | DONE | |
|
||||
| `$FF9C` | | `MEMBOT` | DONE | |
|
||||
| `$FF9F` | | `SCNKEY` | DONE | could be better integrated with ROM (aliases) |
|
||||
| `$FFA2` | | `SETTMO` | DONE | |
|
||||
| `$FFA5` | | `ACPTR` | DONE | |
|
||||
| `$FFA8` | | `CIOUT` | DONE | |
|
||||
| `$FFAB` | | `UNTLK` | DONE | |
|
||||
| `$FFAE` | | `UNLSN` | DONE | |
|
||||
| `$FFB1` | | `LISTEN` | DONE | |
|
||||
| `$FFB4` | | `TALK` | DONE | |
|
||||
| `$FFB7` | | `READST` | DONE | |
|
||||
| `$FFBA` | | `SETFLS` | DONE | |
|
||||
| `$FFBD` | | `SETNAM` | DONE | |
|
||||
| `$FFC0` | `$F34A` | `OPEN` | DONE | |
|
||||
| `$FFC3` | `$F291` | `CLOSE` | DONE | |
|
||||
| `$FFC6` | `$F20E` | `CHKIN` | DONE | |
|
||||
| `$FFC9` | `$F250` | `CKOUT` | PARTIAL | |
|
||||
| `$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 |
|
||||
| `$FFDB` | | `SETTIM` | DONE | |
|
||||
| `$FFDE` | | `RDTIM` | DONE | |
|
||||
| `$FFE1` | `$F6ED` | `STOP` | DONE | |
|
||||
| `$FFE4` | `$F13E` | `GETIN` | PARTIAL | only some devices supported |
|
||||
| `$FFE7` | `$F32F` | `CLALL` | DONE | |
|
||||
| `$FFEA` | | `UDTIM` | DONE | |
|
||||
| `$FFED` | | `SCREEN` | DONE | |
|
||||
| `$FFF0` | | `PLOT` | PARTIAL | cursor blink not handled |
|
||||
| `$FFF3` | | `IOBASE` | DONE | |
|
||||
| `($FFFA)` | | NMI vec | PARTIAL | |
|
||||
| `($FFFC)` | | RESET vec | PARTIAL | |
|
||||
| `($FFFE)` | | IRQ/BRK vec | PARTIAL | |
|
||||
|
||||
<br />
|
||||
|
||||
### Unofficial Kernal locations
|
||||
### Unofficial Kernal routines/locations
|
||||
|
||||
TODO
|
||||
Not all of them - only these we want to have implemented.
|
||||
|
||||
<br />
|
||||
|
||||
| Address | Name | Status | Remarks |
|
||||
| :-------: | :--------------- | :------: | :------------------------------------------------: |
|
||||
| `$E544` | clear screen | DONE | |
|
||||
| `$E5A0` | setup VIC II | DONE | |
|
||||
| `$EA31` | default IRQ | PARTIAL | |
|
||||
| `$EA7E` | ack CIA1 + below | DONE | |
|
||||
| `$EA81` | ret from IRQ/NMI | DONE | |
|
||||
| `$FE47` | default NMI | PARTIAL | |
|
||||
| `$FE66` | default BRK | DONE | |
|
||||
| `$FF80` | revision byte | DONE | |
|
||||
|
||||
<br />
|
||||
@@ -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.
|
||||
@@ -0,0 +1,5 @@
|
||||
|
||||
// XXX provide documentation and implementation
|
||||
|
||||
RUNC:
|
||||
rts
|
||||
@@ -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.
|
||||
@@ -0,0 +1,5 @@
|
||||
|
||||
// XXX provide documentation and implementation
|
||||
|
||||
NEWSTT:
|
||||
rts
|
||||
@@ -1,7 +1,9 @@
|
||||
// Print string at $YYAA
|
||||
// Compute's Mapping the 64 p101
|
||||
|
||||
print_string:
|
||||
// print string routine
|
||||
|
||||
STROUT:
|
||||
// Setup pointer
|
||||
sty temp_string_ptr+1
|
||||
sta temp_string_ptr+0
|
||||
@@ -11,14 +13,13 @@ print_string:
|
||||
|
||||
// Get offset ready
|
||||
ldy #$00
|
||||
|
||||
print_string_loop:
|
||||
!:
|
||||
// Save Y in X, since X is preserved by chrout, but Y is not
|
||||
tya
|
||||
tax
|
||||
|
||||
lda (temp_string_ptr),y
|
||||
beq print_string_end
|
||||
beq !+
|
||||
|
||||
jsr JCHROUT
|
||||
|
||||
@@ -26,10 +27,8 @@ print_string_loop:
|
||||
tay
|
||||
|
||||
iny
|
||||
bne print_string_loop
|
||||
|
||||
print_string_end:
|
||||
|
||||
bne !-
|
||||
!:
|
||||
pla
|
||||
tax
|
||||
rts
|
||||
@@ -0,0 +1 @@
|
||||
At least the FB64 (a file browser) uses this routine - but outputting number as ASCI is defintelyy useful routine, certainly much more programs use it.
|
||||
@@ -0,0 +1,10 @@
|
||||
|
||||
//
|
||||
// Well-known BASIC routine, described in:
|
||||
//
|
||||
// - [CM64] Compute's Mapping the Commodore 64 - page 116, XXX
|
||||
//
|
||||
|
||||
|
||||
LINPRT:
|
||||
rts // XXX implement this
|
||||
@@ -0,0 +1,5 @@
|
||||
|
||||
// XXX provide documentation and implementation
|
||||
|
||||
INIT:
|
||||
rts
|
||||
@@ -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.
|
||||
@@ -0,0 +1,5 @@
|
||||
|
||||
// XXX provide documentation and implementation
|
||||
|
||||
INITMSG:
|
||||
rts
|
||||
@@ -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.
|
||||
@@ -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.
|
||||
@@ -0,0 +1,5 @@
|
||||
|
||||
// XXX provide documentation and implementation
|
||||
|
||||
RVECT:
|
||||
rts
|
||||
Reference in new issue
Block a user