Mercurial > hg > index.cgi
changeset 0:fbb8f369ce76
Initial project creation with README file
author | William Astle <lost@l-w.ca> |
---|---|
date | Thu, 03 Nov 2022 00:36:14 -0600 |
parents | |
children | a5a4c575a2c8 |
files | README.txt |
diffstat | 1 files changed, 45 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/README.txt Thu Nov 03 00:36:14 2022 -0600 @@ -0,0 +1,45 @@ +This is the LWBasic project. Its goal is to create a replacement Basic for +the TRS80 Color Computer. This Basic will not be binary compatible with the +stock ROM. In particular, any various peeks, pokes, executes, and the like +intended to mess with the interpreter internals are unlikely to work, and, +in fact, may be completely detrimental. + +There are two versions of LWBasic. One is for the Coco 1 and 2. The other +is for the Coco 3. The primary differences between the two are in the +startup code and features that rely on the existence of Coco 3 hardware. The +main differences for the Coco 3 version are: + +* 32/40/64/80 column text modes with attributes +* 256/320/512/640 column bitmap graphics with up to 16 colours (256/320) + or 4 colours (512/640) +* palette register setting +* graphics and text screen located outside main program memory +* disk I/O buffers located outside main program memory +* separate heaps for strings, scalars, arrays, and program text not limited + to the 64K address space of the CPU +* ROM/RAM copy at startup and initialization of Coco 3 specific hardware; + defaulting to the 80 column text screen + +Both versions can either be installed in ROM or loaded from disk or tape. +In the case of loading from disk or tape, the machine must have at least +64K of RAM. The loadable versions do not include certain initalization +routines that are only relevant to cold starting the hardware. + +For the Coco 3 version, the ROM is a single 32K chunk intended to replace +the 32K internal ROM. For the Coco 1/2 version, there are three chunks: an +"Extended Color Basic" chunk (8K for the ECB socket), a "Color Basic" chunk +(8K for the CB socket), and "Disk Extended Color Basic", a 16K chunk +intended to be installed in a cartridge ROM, probably a disk controller. On +machines with a single 16K internal ROM, the "Extended Color Basic" and +"Color Basic" chunks should arranged with "Extended Color Basic" at the +lowest address and "Color Basic" immediately above. + +An important note about the hardware interrupt vectors in the ROMs: the Coco +1/2 get the FFFx vectors from the top 16 bytes of the "Color Basic" chunk. +The Coco 3 gets the FFFx vectors from the top 16 bytes of the 32K internal +ROM. + +Note that LWBasic does not look for the DK signature of a Disk Basic ROM +and, thus, will not autostart whatever Disk Basic you happen to have +installed. This is most relevant on a Coco 3 where the upper 16K of the +LWBasic ROM is internal instead of in a cartrige.