# HG changeset patch # User William Astle # Date 1667457374 21600 # Node ID fbb8f369ce768ed5e9eb54b9ddabf470f689f8a6 Initial project creation with README file diff -r 000000000000 -r fbb8f369ce76 README.txt --- /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.