I added a pretty simple feature - the paging of cartridge ROMs. The memory region 0x6000..0x7FFF (8kbytes) is reserved for cartridge ROMs on the TI-99/4A. Since this region is only 8K in size, it became a limitation already early in the TI-99/4A's lifespan. As a solution some cartridges, such as TI's own Extended Basic implemented ROM paging. This was done in a very simple way: writes to the cartridge ROM area were used to change ROM pages. The only speciality was that the page number was deliver over address bus, normally address signal A1 (A14 in TI's own inverted parlance, the 2nd least significant address bit) was used to select between the two pages in an extended Basic cartridge. The original TI circuitry did not initialise the page selection in any way, it was random. Due to that the two banks of the TI extended Basic had the bottom 4K with the same contents. Thus no matter which page happened to be active on entry, the same code would execute and that code was aware of the bank selection logic.
Subsequently people have made later improved versions of TI's extended Basic, one of them is Rich Gilbertson's very nice "RXB" or Rich Extended Basic. I got it running, and with the same very simple test program as before
10 for i=0 to 200
20 print i
30 next i
execution speed is much faster than on TI's regular Basic. Here are the current benchmark results:
- Regular TI Basic on original TI-99/4A hardware: 30 seconds
- RXB on original TI-99/4A hardware: 20 seconds
- Regular TI Basic on RC2016/99 (this system): 6 seconds
- RXB on RC2016/99: 3 seconds
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.