4.4 KiB
4.4 KiB
New features
Here are the features of the Open ROMs not found in the original ROMs from the 80s:
- improved keyboard scanning, supports multi-key roll-over and rejection of spurious joystick input
- joystick (port 1) can be used to move text cursor
- banking in the BASIC interpreter: 61436 bytes free
- LOAD start/end addresses are displayed, in the Final cartridge style
- LOAD command with just the file name tries to use the last device if it's number seems sane; otherwise uses 8
- LOAD secondary address over 255 is considered a start address; NOTE: syntax will most likely change here in the future!
Features missing
The following ROM features are currently missing:
- most BASIC commands
- BASIC variables
- BASIC expression parsing
- floating point routines
- tape support
- RS-232 support
- warm start (RUN/STOP + RESTORE) - NMI is not implemented at all
- breaking Kernal routines with RUN/STOP key
Features currently being worked on:
- IEC support
- DOS wedge
API status
Status of the various APIs and variables from the original ROMs
Page 0
TODO
Pages 2 & 3
TODO
BASIC
TODO
Kernal
Note: only the jump table addresses are currently supported, real routine addresses are different!
Official Kernal routines
NOTE: Even the 'DONE' routines won't support features described as missing in one of the previous chapters!
| Address | Name | Status | Remarks |
|---|---|---|---|
| $FF81 | CINT | PARTIAL | at least PAL/NTSC detection is missing |
| $FF84 | IOINIT | PARTIAL | at least SID volume handling is missing |
| $FF87 | RAMTAS | DONE | |
| $FF8A | RESTOR | PARTIAL | CBINV, NMINV, and USRCMD missing |
| $FF8D | VECTOR | DONE | |
| $FF90 | SETMSG | DONE | |
| $FF93 | SECOND | DONE | |
| $FF96 | TKSA | PARTIAL | should it do a turnaround? |
| $FF99 | MEMTOP | DONE | |
| $FF9C | MEMBOT | DONE | |
| $FF9F | SCNKEY | DONE | could be better integrated with ROM |
| $FFA2 | SETTMO | NOT DONE | |
| $FFA5 | ACPTR | NOT DONE | * work in progress |
| $FFA8 | CIOUT | DONE | |
| $FFAB | UNTLK | PARITAL | * work in progress |
| $FFAE | UNLSN | DONE | |
| $FFB1 | LISTEN | DONE | |
| $FFB4 | TALK | PARTIAL | should it do a turnaround? |
| $FFB7 | READST | DONE | |
| $FFBA | SETFLS | DONE | |
| $FFBD | SETNAM | DONE | |
| $FFC0 | OPEN | DONE | |
| $FFC3 | CLOSE | PARTIAL | * work in progress |
| $FFC6 | CHKIN | PARTIAL | * work in progress |
| $FFC9 | CHKOUT | PARTIAL | * work in progress |
| $FFCC | CLRCHN | PARTIAL | * work in progress |
| $FFCF | CHRIN | NOT DONE | * work in progress |
| $FFD2 | CHROUT | NOT DONE | * work in progress |
| $FFD5 | LOAD | PARTIAL | no VERIFY support yet |
| $FFD8 | SAVE | NOT DONE | * work in progress |
| $FFDB | SETTIM | NOT DONE | |
| $FFDE | RDTIM | NOT DONE | |
| $FFE1 | STOP | PARTIAL | no connection with UDTIM |
| $FFE4 | GETIN | PARTIAL | * work in progress |
| $FFE7 | CLALL | PARTIAL | * work in progress |
| $FFEA | UDTIM | NOT DONE | |
| $FFED | SCREEN | DONE | |
| $FFF0 | PLOT | NOT DONE | |
| $FFF3 | IOBASE | DONE |
Unofficial Kernal locations
TODO