Club 100

ROM2/Cleuseau Model 100/102
Developers Version
Supplement

Note: This document supplements the regular ROM2/Cleuseau ROM manual. The Developers version of this ROM is available from Club 100 for Modes 100/102 only — a developers version is not available for the Model 200 or NEC PC8201a.

Deleted CMD modes:

CALL 913,145
No longer activates Cleuseau.

CALL 913,193
No longer calculates ROM2's 8K checksum.

CALL 911'command str
No longer supported.

ROM2 entry points
ROM2 machine code entry points no longer supported.

New Cleuseau command:

ctrl-R
Invokes ROM2 (if Cleuseau is active).

Model 100/102 new CMD modes:

RC$="str":CALL 911
Invokes ROM2 with value of RC$ as the command input.

CALL 913,17
Invokes DBG directly. Useful for invoking DBG directly from machine code.

CALL 913,129
Load machine code from TDD via routine.

CALL 63013,1
Enables Cleuseau.

CALL 63013,144
Disables Cleuseau.

Tandy 200 new CMD modes:

RC$="str":CALL 921,2
Invokes ROM2 with value of RC$ as the command input.

CALL 921,18
Invokes DBG directly. Useful for invoking DBG directly from machine code.

CALL 61167,2
Enables Cleuseau.

CALL 61167,144
Disables Cleuseau.

New messages:

Attach TDD!
This message is displayed if a TDD is not connected.

TDD err
This message is displayed if a TDD command cannot be completed properly.

?FC error
If ROM2 fails to complete a command as instructed, a ?FC error is issued.

New CMD commands:

RUN []
Load from the TDD and run it. (.BA and .DO files are loaded into RAM as while .CO files are loaded in the HIMEM-MAXRAM area. If is omitted then the name is used.

LOAD []
Load from the TDD into RAM as . If is omitted then the name is used.

SAVE []
Save in RAM to the TDD as . If is omitted then the name is used.

KILL
Kill on the TDD. (No confirmation.)

FILES
List TDD files and sizes.

FORMAT
Format the TDD disk. (No confirmation.)

TDD file types:

ROM2 uses the two character extension in TDD file names for determining the file type.

ROM2 allows these extensions: .DO, .CO, .BA, and .BR.

Extensions in ROM2 commands which have two file names must have equivalent file types. If the extension is omitted in the second file name then the extension of the first is used. If the extension is omitted in the first file name then .DO is used.

Strong and weak machine file types:

ROM2 allows a third character in the TDD file extension. Weak machine file type checking (the default mode) allows any character. Strong checking allows only the machine's corresponding digit (if the third character is blank then the machine's digit is added). Machine file type checking helps when the TDD files are a mixture of Model 100, NEC 8201A, and/or Tandy 200 files. Since .CO files are almost never compatible, running the wrong machine's file will probably lead to a machine crash and data loss. Also, NEC and Tandy BASIC programs are tokenized differently and will probably corrupt RAM if loaded into the wrong machine type. Strong machine file type checking prevents loading the wrong type of file into the machine.

Weak machine file type mode:

100: POKE 63852,0
Third character in the file extension can be anything.

200: POKE 62044,0
Third character in the file extension can be anything.

NEC: POKE 63577,0
Third character in the file extension can be anything. Example (assuming the machine is a Model 100):

SAVE PROG.BA PROG.BA1
Save RAM file PROG.BA as TDD file PROG.BA1.

SAVE PROG.BA PROG.BA2
Save RAM file PROG.BA as TDD file PROG.BA2.

Strong machine file type mode:

100: POKE 63852,32
Third character in the file extension must be '1'.

200: POKE 62044,32
Third character in the file extension must be '2'.

NEC: POKE 63577,32
Third character in the file extension must be '0'.

If the third char is blank then the proper machine char is added. Example (assuming the machine is a Model 100):

SAVE PROG.BA PROG.BA1
Save RAM file PROG.BA as TDD file PROG.BA1.

SAVE PROG.BA PROG.BA2
Results in a ?FC error, due to machine type mismatch.

Example ROM2/TDD program:

10 INPUT "File";F$
20 IF F$="" THEN MENU
30 RC$="LOAD "+F$:CALL 911
40 RC$="ASMN "+F$+" "+F$:CALL 911
50 RC$="SAVE "+F$+".CO":CALL 911
60 MENU

****** ASM/DBG Modifications ******

New ASM modes:

ASM []
Assembles .DO to .CO If is omitted then machine code is placed directly into the HIMEM-MAXRAM area.

_LAB_.DO
An _ASM_.DO file can be renamed _LAB_.DO and used as the initial symbol table for ASM. This reduces the time and memory required to assemble programs which reference many constant label values.

New ASM pseudo ops:

ENTRY
Define the current PC ($) as the EXEcute address for the .CO file created by ASM.

DEC
Untyped constants are converted to decimal. This is the initial mode of ASM.

HEX
Untyped constants are converted to hexadecimal.

Extended ASM pseudo ops:

&file
&&file

If file.DO is not in RAM then load it from the TDD, include it and then delete it. Macros can not be defined in a file loaded this way.

New ASM/DBG constant types:

[0..9]* 'T'
Decimal constant. This constant type is needed for entering decimal constants while in HEX mode, since 'D' is a valid hex digit.

[0..1]* 'Y'
Binary constant. This constant type is needed for entering binary constants while in hex mode, since 'B' is a valid hex digit.

New DBG commands:

F [],[]
Find all memory blocks matching the one that starts at address and is long. If is omitted then a length of three (3) is used. If is omitted then the current PC is used.

DEC
Display register values in decimal. Untyped constants are converted to decimal.

HEX
Display register values in hexadecimal. Untyped constants are converted to hexadecimal. This is the initial mode of DBG.

LPT
All DBG display goes to the printer, including prompts and keyboard entry.

COM
All DBG display and input via the COM/MDM port. Use TELCOM's STAT command or a BASIC OPEN statement to set the communication parameters.

EQ [],[]
Breakpoint if the byte at is equal to . If is omitted then the current value at is used. If is omitted then the current PC is used.

NEQ [],[]
Breakpoint if the byte at is not equal to . If is omitted then the current value at is used. If is omitted then the current PC is used.

CST
Clear the stack trap address. DBG automatically exits when the RET at the end of a routine that invoked DBG is simulated. CST turns off the auto exit.

D
Display registers and the next instruction to be simulated. All values displayed in decimal or hexadecimal, controlled by the DEC and HEX commands. DBG starts in HEX mode. Values and addresses displayed as the equivalent label name if possible.

L []
Disassemble opcodes starting at . All values displayed in decimal or hexadecimal, controlled by the DEC and HEX commands. DBG starts in HEX mode. Values and addresses displayed as the equivalent label name if possible.

N
as first debug command. Causes subsequent L commands to disassemble the Cleuseau/ROM2 addresses. This allows you to examine and test the contents of the Cleuseau/ ROM2. Also can run/simulate ROM2 routines.

******Other Notes ******

RAM
ROM2/Cleuseau uses the following areas of RAM:
ROM_Check:  T200:EEC8..EEEE
IN_Buf:     T200:EFC0..F05F
ROM_Name:   T200:F4D3..F4DA
Page2:      T200:F7C8..F8CF

ROM2 uses the last two-thirds of In_buf for operating on user input. This limits the usable input line length to 80 chars while in DBG or other ROM2 functions.

In the T200, the Page2 area starts at F7B0 and runs for 640 bytes to FA2F. ROM2 and Cleuseau use the F7C8..F8CF part only.

Model Ts Forever!
The Original Laptop Computer . . . 1983