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.