TMSI IDIOT/4 Monitor Summary All inputs are echoed but ignored until one of the following commands is typed. All numbers are in hexadecimal. Follow each command with a . Backspace, Rubout, etc. aren't used. Spaces, Linefeeds, etc. can be used freely except if they cause ambiguity. Only the last 4 digits of byte counts and addresses are used; continue typing to correct errors. ?Maaaa nnnn Examine Memory: Lists nnnn bytes of memory starting at address aaaa. Each line begins with the address, followed by up to 16 data bytes in groups of 2. If more, the line ends with a semicolon (;) and the listing continues on the next line. !Maaaa dd..dd; comment Change Memory: Writes data byte pairs dd into aaaa dd..dd, comment successive locations beginning at address aaaa. dd..dd End the line with a semicolon (;) to continue on the next line at a new address. End the line with a comma (,) to continue on next line at the next consecutive address. Comments after the ";" or "," are ignored. Accepts ?M format. ?Maaaa nnnn !Mbbbb Move Memory: Moves a block of nnnn bytes of memory from address aaaa to bbbb. Blocks can be any size and can overlap without error. ?R Examine Registers: Lists 1802 registers as they were saved in RAM at the time of entering the monitor. Format is same as $M. Contents can be altered using !M to change the memory image, then $R to restore them. Example: ?R Run Registers: Restore 1802 registers to the $Rp values shown by the ?R command, and begin $Rxp execution with the specified values of X and P (or 0 if not specified). Example: If entered from BASIC, return with "$R23". $Paaaa Run Program: Begin program execution at address aaaa with X=0, P=0, and interrupts disabled. "$P0" is the same as a hardware reset. Hardware Interrupt: If interrupts are enabled, a hardware interrupt enters the monitor and T contains the old X and P. Return with $R(T). Breakpoints (for programs in RAM): Replace 1 byte of program with SEP R1 (D1) using !M. When executed, D1 saves all registers in RAM except P and X, and enters the monitor. To also save X and P, replace 2 bytes of program with MARK, SEP R1 (79, D1). MARK saves X and P in T and M(R2), and decrements R2. To resume after a breakpoint, restore the original bytes replaced in the program, adjust the program counter accordingly, and return with $Rxp.