Z80 M_I -------------=--=--
OnIor == -=-===:=::~====-::==
'=='= ~ =:s--=- :::: ~~-=-
-==.;:~~.;;;.;",;;;;.;:~;;;....;....;;,---------------
the location contained in the user-pro gram-counter, P.
~.
[4] G startmg-addr (CR)
This command is exactly like [3] except that the
user-program-counter, P, is first loaded with starting-
address. Thus, execution begins at starting-address.
GO WITH BREAKPOINTS SET
[5] G / breakpoint-addr-1 breakpoint-addr-2 ... (CR)
[6] G starting-addr / brkpt-addr-1 brkpt-addr-2 ... (CR)
Commands [5] and ] 6] are like [3] and [4],
respectively, except that breakpoints are set at
breakpoint-address-1, breakpoint-address-2, etc.
When a breakpoint is encountered in the execu-
tion of the user program, the monitor is re-entered. All
registers are saved in the user register area (which is
part of the system stack), the address of the breakpoint
is printed, and all breakpoints are cleared (i.e., the user
program is restored to its original state). Finally, the
prompt, , : ' is issued for the next command from the
keyboard. Note the following about the use of break-
points:
(a) Breakpoints can only be set in programs resid-
ing in RAM. This is because the monitor inserts a RST
48 instruction (F7 hex) at each breakpoint location.
(The original contents of these locations are saved so
that they can later be restored.)
(b) Up to five breakpoints can be set. If an
attempt is made to set a sixth breakpoint, the monitor
will print a question mark to indicate error, erase all
breakpoints, and prompt for a new command.
(c) When a breakpoint is set, the monitor inserts
a 3-byte jump instruction at location 30 hex. This
means that locations 30, 31, and 32 hex are not avail-
able to the user program when breakpoints are used.
(d) The monitor temporarily uses ten bytes on
the user's stack in executing a breakpoint. The area
reserved for the user's stack must, therefore, be at least
ten bytes larger than that required for the user's
program.
(e) If breakpoints are set in a program and the
computer is reset and the monitor re-entered before
any breakpoint is reached in the execution of the pro-
gram, then the breakpoints will have to be removed
from the program by means of the Substitute Memory
command, SM. However, if any breakpoint is reached,
all breakpoints are automatically cleared by the
monitor.
INITIALIZE BAUD RATE
[7] I (CR)
After the CARRIAGE-RETURN is typed, change
the baud rate of the terminal to the desired value and
then push the CARRIAGE-RETURN until the monitor
responds with its prompt, , : '.
5
The monitor is capable of selecting 19200, 9600,
4800, 2400, 1200, 300, 150, or 110 baud when used
with the Cromemco TUART I/O board. The maximum
number of carriage-returns required to select any of
these baud rates is four.
The command is particularly useful for setting
the baud rate of the second serial port on the TUART.
(See Multiple Commands.)
MOVE
[8] M source-addr source-end destination-addr (CR)
or
M source-addr S swath-widthdestination-addr (CR)
Move the contents of memory beginning with
source-address and ending with source-end to destina-
tion-address. After the move, the monitor verifies that
source and destination are the same. This will result in
a print-out of discrepancies which are not really errors
after certain types of overlapping moves. However, this
print-out can be terminated by depressing ESCAPE
or ALT MODE.
The Move command can be used to fill a block of
memory with a constant. For example, to enter zeros
between locations 100 and 108, use the Substitute
Memory command to enter 0 at location 100, and then
move 100 through 107 to 101:
M100 107 101
or
M 100 S 8 101
Care should be taken not to overwrite the system
stack which resides in the top of active RAM. (See
System Stack.)
NULLS
[9] N hex-number (CR)
Write hex-number nulls to the current device.
This command is used to punch leaders and trailers on
paper tape. (See Multiple Commands.)
OUTPUT
[10] 0data-byte port-number (CR)
Outputs data to a port. One use of this command
is to select banks on Cromemco memory boards.
When the monitor is first entered on power-up or reset,
it selects bank 0 and turns off all other memory banks.
Either a software output or a monitor output to
port 40 hex serves to change the bank selection. To
select bank n, output a byte with bit n high. To select
two banks, nand m, output a byte with both bits n
and m high.