KiwiSinceBirth has posted updates to his compilable source file for the Model I/III ROM
He has a traditional Model I Level 2 BASIC ROM and Model III Level 2 BASIC ROM which have comments and which can be compiled into a workable ROM. His source differs from a standard disassembly in the following ways
- Replaced all disassembler generated labels with meaningful labels.
- Ensured all jumps (JR and JP) reference valid code labels.
- Replaced all $3xxx hardware references with .EQU definitions.
- Replaced all $4xxx buffer references with .EQU definitions.
- Replaced all $xx byte references with appropriate decimal or ascii values, and/or .EQU definitions.
- Replaced all generated op-code with Byte .DB .DW definitions for DataTables/Text/Constants/Etc
- Added code documentation from various sources at the code block / function level.
- Replaced incorrect op-codes, where Better Else "Trick" was used.
These ROMs can also be somewhat customized as follows:
| #DEFINE VER12 | uncomment this to degrade from V1.3 to V1.2 of the ROM. |
| #DEFINE VER13 | this is the default if VER12 is not defined, and doesnt need to be uncommented |
| #DEFINE EACA80 | uncomment to enable Dick Smith System-80 (EACA) hardware support. NOTE: While not mandatory you should also define VER12 since the System-80 ROM was based on V1.2. V1.3 has not been formally tested, but assume should work, and opens ability to also specify FREHDBT. This only targets the core 12kb ROM, and does not include the latter Rom extensions |
| #DEFINE FREHDBT | Enables the FreHD auto boot feature, i.e. the Auto boot ROM. This requires version 1.3 ROM as a base, please do NOT define VER12 as it is not compatible (it will be ignored anyway) Consider also enabling NMIHARD to ensure reset (on non-floppy machine) will force a reset. |
| #DEFINE NMIHARD | Set NMI (reset) as always perform a hard reset. Normally on non-floppy systems NMI performs a soft reset returning to the READY> prompt with the basic program intact. This is useful in system without floppy disk to force a full reset (0066h) |
| #DEFINE LOWCASE | Disable Alpha character translation of letters A-Z,a-z to the values on range 00h to 1Fh. This is useful when a lower case mod is installed, but an alternate video driver has not been installed, or where the font rom on the machine has the alternate characters in the 00h 1Fh range (0471h) |
| #DEFINE FASTMEM | Speed up startup memory size check by checking first byte of every 256 page, rather than every byte. |
| #DEFINE BUGFIX5 | Fix Error 5 - 08A7H - INT(DoubleValue) rounding |
| #DEFINE BUGFIX8 | Fix Error 8 - 1009H - PRINT USING, - sign at end of field |
| #DEFINE PATCH | Includes NMIHARD, LOWCASE, FASTMEM, BUGFIX5, and BUGFIX8` |
| #DEFINE SIZE16K | Will pad the end of the rom with $FF to 16KB size. useful if want to append multiple ROM images for used in large 16K paged rom |
| #DEFINE _EMBED | Strip all HW, and IO routines leaving just BASIC language as standalone code and used in L2 Basic for CP/M |
He has also developed an enhanced ROM for both machines which have slightly broken compatibility, but which otherwise include new support, features, and some bug fixes
| #DEFINE NEWBOOT | Enables a new boot routine which asks for "diskette?" when no disk is detected and retries. It also allows for break to be pressed at any time. (Credit : John Swiderski) |
| #DEFINE FREHDBT | Enables the FreHD auto boot feature, i.e. the Auto boot ROM. This requires version 1.3 ROM as a base, please do NOT define VER12 as it is not compatible (it will be ignored anyway) Consider also enabling NMIHARD to ensure reset (on non-floppy machine) will force a reset. |
| #DEFINE NOMEMSIZE | Skip user input of Memory Size? override at startup with M key. (Credit : John Swiderski) |
| #DEFINE FASTMEM | Speed up startup memory size check by checking first byte of every 256 page, rather than every byte. |
| #DEFINE NMIHARD | Set NMI (reset) as always perform a hard reset. Normally on non-floppy systems NMI performs a soft reset returning to the READY> prompt with the basic program intact. This is useful in system without floppy disk to force a full reset (0066h) |
| #DEFINE LOWCASE | Disable Alpha character translation of letters A-Z,a-z to the values on range 00h to 1Fh. This is useful when a lower case mod is installed, but an alternate video driver has not been installed, or where the font rom on the machine has the alternate characters in the 00h 1Fh range (0471h) |
| #DEFINE MSGSTART | Enhanced startup message showing Free Bytes available to BASIC |
| #DEFINE KEYBOUNCE | Enables the Keyboard debounce routines that where introduced in rev1.3 |
| #DEFINE BUGFIX1 | Fix Error 1 - 04F6H - 32 Character Mode Line Length |
| #DEFINE BUGFIX2 | Fix Error 2 - 153EH - Random Number Single Precision Overrun |
| #DEFINE BUGFIX5 | Fix Error 5 - 08A7H - INT(DoubleValue) rounding |
| #DEFINE BUGFIX7 | Fix Error 7 - 0EF2H - Space after type declaration tag |
| #DEFINE BUGFIX7C | Fix Error 7C - 213DH - Space after TAB token |
| #DEFINE BUGFIX8 | Fix Error 8 - 1009H - PRINT USING, - sign at end of field |
| #DEFINE BUGFIX11 | Fix Error 11 - 2301H - Overflow on Integer FOR loop |
| #DEFINE BUGFIX13 | Fix Error 13 - 1222H - Display of Single Precision Numbers |
| #DEFINE EACA80 | (OPTIONAL) uncomment to enable Dick Smith System-80 (EACA) hardware support. This only targets the core 12kb ROM, and does not include the latter Rom extensions |
| #DEFINE SIZE16K | (OPTIONAL) Will pad the end of the rom with $FF to 16KB size. useful if want to append multiple ROM images for used in large 16K paged rom |
To make room for all this, cassette support has been removed.
Additionally, you can now download pre-built binary images for most common configurations. There are 16 variants. Hr did this to make it easier to use, no assembly required, no defines to understand, just choose the ROM that makes sense. It also means the vanilla configurations can be compared against official roms, to check for binary compatibility. This build process is automated by GITHub anytime a change is made, it will assemble and publish a new release.
- Dick Smith System 80 (Official)
- Dick Smith System 80 FreHd Patched
- Dick Smith System 80 Patched
- Model I Rev 1.2 (Official)
- Model I Rev 1.3 - FreHD Patched
- Model I Rev 1.3 - Patched
- Model I Rev 1.3 (Official)
- Model I Rev 1.4 (Enhanced 50Hz)
- Model I Rev 1.4 (Enhanced)
- Model I Rev 1.4 (Enhanced)
- Model III - FreHd Patched
- Model III - FreHd Patched 50Hz
- Model III - Patched
- Model III - Patched 50Hz
- Model III (Official)
- System 80 Rev 1.4 (Enhanced)
Visit his site here.





























(Instant-Software).jpg)
(Rick-Morel-Instant-Software).jpg)

(Dusty).jpg)
(Amardeep-Chana).jpg)
(Micro-Systems-Software)[OCR][Set-2].jpg)
(Micro-Systems-Software)[OCR][Set-2].jpg)
(Micro-Systems-Software)[OCR][Set-2].jpg)
(Micro-Systems-Software)[OCR][Set-2].jpg)
(Micro-Systems-Software)[OCR][Set-2].jpg)


