Page Numbers: Yes X: 527 Y: 10.5" First Page: 29
Columns: 1 Edge Margin: .4" Between Columns: .4"
Margins: Top: 1.3" Bottom: 1"
Line Numbers: No Modulus: 5 Page-relative
Odd Heading:
Maxc OperationsMaxc1 Midas Operation
Even Heading:
Maxc1 Midas OperationMaxc Operations
10. MAXC1 MIDAS OPERATION
10.1. Conventions
The memories accessible to Midas are called:
MAINsystem main memory, lower 64K words only
LMleft register bank, 32 registers
RMright register bank, 32 registers
SMscratch memory, 512 registers
DMPDP-10 emulator dispatch memory, 512 registers
DM11Byte Lisp emulator dispatch memory, 512 registers
DM21unused dispatch memory, 512 registers
IMinstruction memory, 4096 registers
MPmap memory, 1024 registers
These names are consistent with all other microprocessor and microcode literature.
The Infoton display is completely controlled by Midas. The upper seven rows display 14 of the microprocessors internal registers. The lower 8 rows can display any memory words from the memories listed above.
Aaddress, one of 3 forms
i)symbol identifier, possibly followed by blank and octal increment
(increment may contain leading + or - sign)
ii)memory identifier followed by blank and octal address
iii)octal address, presumed to be in instruction memory
Voctal value
Pscreen position
The letter L(left) or R(right) followed by a decimal integer from 1 to 15(row)
Fa file name.
If it contains no period, a default extension will be added, as specified for
each command.
Octal values, addresses and increments may contain embedded blanks.
Rubout deletes the previously typed character and backspaces the cursor.
------------------------------
1These memories do not presently exist in Maxc1.
10.2. Commands
In the following, some commands have two forms, with and without a screen position field.
In the form without a screen position field, the current screen position is used. Unless otherwise noted, all commands with a screen position field reset the current positiont to that specified in the current command.
A=prints out numeric value of A, in octal
: single step
A:single step at address A
A/display contents of address A at given position
A,P/
<cr>displays at given position the contents of next
P<cr>higher address than currently displayed there
displays at given position the contents of next
P↑lower address than currently displayed there
<lf>displays, at position below current position, contents of next higher address than
currently displayed at current position. Resets current position one lower.
V←store octal value into the memory word addressed or register
V,P←named at the given screen position
A;Binsert a break point at given instruction memory address
A;Kremove a break point from given address
A;Gstart processor at address A
;Pcontinue running the microprocessor at the current microaddress (in IMA)
;Ssingle step processor (same as :)
A;Ssingle step processor at address A (same as A:)
;Crepaint the screen
F[1],...,F[k];Rload files F[1] to F[k]
(default extension ".MB")
3,F;T(default extension ".XX") take commands from file F until exhausted. May not
be nested.
4,F;T(default extension ".ST") define /R file for subsequent patch calls to MICRO
5,F;T(default extension ".MB") dump state of microprocessor onto file F, for sub-
sequent reload using F;R. State dumped consists of the complete IM, SM,
DM, LM, and RM memories but does ~!not! include the MP memory or the
registers. The address symbols are dumped also. Reloading, the dump file takes
about one minute ten seconds and it occupies about 52,000 characters on the Nova
disk.
6,F;T(default extension ".SV") makes .EXEC DOS system call upon file F.
!F<sp><cr>(null default extension) is the same as 6,F;T except that F can contain spaces and
slashes for constructing more elaborate .EXEC calls (e.g., "!NVIO.SV/B<sp><cr>"
or "!POWER.SV OFF/M<sp><cr>"). The .SV extension is always required, and
the trailing space nearly always.
<sp>TEXT<cr>will carry out microassembly of the TEXT using the file specified by the last 4,F;T
as a /R file for MICRO. The text of the patch is appended to DBGPTCH and
the binary is loaded. Two garbage files PTCH$$ (text of last patch) and
PTCH$$.ST (/R file created by assembly) are also left.
10.3. Special Information
The cursor on the Infoton display will rise above the line when a command is in progress and drop down again when it is done.
Control-A will stop the microprocessor if it is running, but crash Midas back to the DOS EXEC if the microprocessor is not running (in which case you will have to restart by reloading the microprocessor). Midas can take 15 seconds to evaluate a new symbol near the end of a big microprogram so don’t get impatient and type control-A. (Reloading from a big file takes over two minutes.) The cursor will rise above the command line when any command is in progress. If the command is a ;G or ;P, then the microprocessor will be running and control-A can be used to stop it. However, if you say SYMBOL;G, be sure you have waited the required 15 seconds for symbol lookup before typing control-A.
The first time you reference a symbol, Midas takes up to 15 seconds. Subsequent references are relatively fast (about 1/2 second).
Instruction memory addresses can only be displayed in the left column of the display and take up the full width of the screen.
When the microprocessor is stopped by control-A it will sometimes be possible to continue by ;P safely, but don’t count on it. It is possible to continue safely from breakpoints except when the break occurs during the read portion of a read-modify-write memory reference or on either of the two cycles following a write, if the memory data register has not been loaded.
When Midas runs, it creates two temporary files called $$DBGE and $$DGBS. If you use the patch feature, PTCH$$, PTCH$$.ST, and DBGPTCH also get created. If you wish you may delete these when you return to DOS.
Do not attempt to examine main memory locations >177777 with Midas. Midas will go through the motions of examining and changing the addressed cell, but in fact the address will be truncated to 16 bits. All main memory addresses may be examined using ODT, as follows:
!NVIO.SV/H <cr>Starts NVIO but leaves Maxc halted.
NVIO
:addr/contentsExamines main memory.
:M...OK.Returns to Midas.