Post by Jonathan Cauldwell on Nov 21, 2020 18:47:05 GMT
Hi folks,
I've spent 3 or 4 days completely rewriting the ZX Spectrum ROM from scratch, using core routines from AGD 4.8. Gone is the slow (although powerful) Sinclair BASIC and in its place are most of the AGD editors, with a few changes along the way to squeeze in as much as possible. Power up your Spectrum with this ROM and instead of the familiar black-on-white copyright message at the bottom of the screen you will be confronted with an AGD menu.
The main changes: The particle engine, MENU and INV commands are gone, along with the specialisations. There was no room for a jump table editor so JUMP now uses the MPAGD functionality and requires a parameter to specify the power. That seems to work well enough in MPAGD. AY sound is out and there was no room for ULAplus although the white noise BEEP routine has been improved. Unlike the original ZX Spectrum ROM the keyboard routines allow a new key to be pressed before the old one is released, so you can type as quickly as you like. The cursor behaviour is improved when entering lines in indented blocks. There is also no extended mode so a few symbols have had to be assigned new key combinations. Notably the combination to exit the text and code editors has changed to symbol shift and enter.
The tape loading and saving routines are not located at the addresses they are found in the original ROM so emulators won't trap the calls and bring up the Windows file selector. I've documented the ROM as best I can and this includes the addresses for the new tape routines in the memory map.
The game engine is located in contended RAM at 24832, but this means there is more room for a game. Look at the memory indicator in the top-right, on power up it reads 35951 bytes! With the editors all in the ROM you have the entire Spectrum RAM to yourself.
This hasn't been tested on real hardware yet but if anyone has the ability to burn a 128Mbit PROM and post a video of the result that would be fun.
Have fun and let me know what I've messed up.
AGD0.1.zip (53.97 KB)
I've spent 3 or 4 days completely rewriting the ZX Spectrum ROM from scratch, using core routines from AGD 4.8. Gone is the slow (although powerful) Sinclair BASIC and in its place are most of the AGD editors, with a few changes along the way to squeeze in as much as possible. Power up your Spectrum with this ROM and instead of the familiar black-on-white copyright message at the bottom of the screen you will be confronted with an AGD menu.
The main changes: The particle engine, MENU and INV commands are gone, along with the specialisations. There was no room for a jump table editor so JUMP now uses the MPAGD functionality and requires a parameter to specify the power. That seems to work well enough in MPAGD. AY sound is out and there was no room for ULAplus although the white noise BEEP routine has been improved. Unlike the original ZX Spectrum ROM the keyboard routines allow a new key to be pressed before the old one is released, so you can type as quickly as you like. The cursor behaviour is improved when entering lines in indented blocks. There is also no extended mode so a few symbols have had to be assigned new key combinations. Notably the combination to exit the text and code editors has changed to symbol shift and enter.
The tape loading and saving routines are not located at the addresses they are found in the original ROM so emulators won't trap the calls and bring up the Windows file selector. I've documented the ROM as best I can and this includes the addresses for the new tape routines in the memory map.
The game engine is located in contended RAM at 24832, but this means there is more room for a game. Look at the memory indicator in the top-right, on power up it reads 35951 bytes! With the editors all in the ROM you have the entire Spectrum RAM to yourself.
This hasn't been tested on real hardware yet but if anyone has the ability to burn a 128Mbit PROM and post a video of the result that would be fun.
Have fun and let me know what I've messed up.
AGD0.1.zip (53.97 KB)