Mercurial > hg > index.cgi
view README.txt @ 71:f4b2406d7352
Add numeric argument matching routine
Numeric calculations need to either match types or do type promotion to
matching types. Add a routine to handle that and have the routine through a
type mismatch if the types are not compatible or not numeric. Note that this
will require special handling for string concatenation and comparision which
are obviously not numeric.
author | William Astle <lost@l-w.ca> |
---|---|
date | Sun, 02 Jul 2023 02:33:53 -0600 |
parents | fbb8f369ce76 |
children | 663d8e77b579 |
line wrap: on
line source
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.