DataMuseum.dk

Presents historical artifacts from the history of:

CP/M

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about CP/M

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download

⟦0a7e86ce3⟧ RcTekst

    Length: 41600 (0xa280)
    Types: RcTekst
    Names: »99110093.WP«

Derivation

└─⟦7fab0c8ae⟧ Bits:30005866/disk3.imd Dokumenter i RcTekst format (RCSL 99-1-*)
    └─⟦this⟧ »99110093.WP« 

RcTekst


╱04002d4e0c0006000000000301473100000000000000000000000000000000000000000000000000050f19232d3741464b555f69737d87ff04╱

════════════════════════════════════════════════════════════════════════
↓
┆14┆┆b3┆┆b3┆RC39 Monitor┆05┆Page ┆0b┆↲
┆a1┆↲
↲
┆a1┆1.     INTRODUCTION.↲
↲
↲
The RC39 Monitor is a program for a processor of the Intel iAPX 286 ↓
family intended to run on a system which includes at least the ↓
following com┄ponents:↲
↲
↲
╞	- iAPX 286 microprocessor,↲
╞	- some PROM to hold the Monitor program,↲
╞	- some RAM to hold the Monitor variables,↲
╞	- a disk (winchester and/or floppy) controller and drive(s),↲
╞	- a USART supporting a V.24 serial communications interface.↲
↲
↲
Several versions of the RC39 Monitor will exist for systems which ↓
differ with respect to the specific type of disk controller, USART or ↓
other hardware components.↲
↲
↲
An ┆a1┆operator console┆e1┆ for the RC39 Monitor is a tty-compatible terminal ↓
attached via the V.24 interface.↲
↲
↲
The following facilities are provided by the RC39 Monitor:↲
↲
↲
╞	- ┆84┆a Debug Monitor, running in the Protected Virtual Address Mode ↓
┆19┆┆86┆┄┄only, integrated with both the power-on selftest programs and the ↓
┆19┆┆86┆┄┄XENIX Version 3.2 Operating System. In the latter case the ↓
┆19┆┆86┆┄┄Monitor acts as a KERNEL Debugger which communicates with an ↓
┆19┆┆86┆┄┄operator by means of the operator console,↲
↲
↲
╞	- ┆84┆a disk boot loader which can load a file, in Microsoft x.out ↓
┆19┆┆86┆┄┄SMALL model format, from the bootstrap track of a disk ↓
┆19┆┆86┆┄┄(winchester or floppy) into RAM.↲
↲
↲
┆8c┆┆83┆┆ec┆↓
A unified command interface allows all functions of the Debug Monitor ↓
to be activated from the operator console. In typical applications, the ↓
Debug Monitor is integrated with hardware selftest programs, so that it ↓
will be possible to enter the Debug Monitor from the selftest and to ↓
return also.↲
↲
↲
The primary use of the RC39 Monitor lies in the area of testing and ↓
debugging low-level programs. The Debug Monitor will, however, also be ↓
used in production systems, where only the bootloader will be commonly ↓
used, but where the other features will also be available for special ↓
tests and diagnostics.↲
↲
↲
When the system is powered on or reset the Debug Monitor will test ↓
whether or not an operator console is present by inspecting V.24 status ↓
signals. If the status signal indicate console present the Debug ↓
Monitor will prompt the operator for a command, otherwise it will ↓
execute a load-and-go command using the default disk medium. Thus the ↓
bootloader will work, also when no operator console is present.↲
↲
↲
In the operator console dialogue 7-bit ASCII-code is used. The high ↓
order bit of characters transmitted to the console is 0, and the high ↓
order bit of received characters is ignored.↲

════════════════════════════════════════════════════════════════════════
↓
┆a1┆2.     THE DEBUG MONITOR.↲
↲
↲
The Debug Monitor allows execution and monitoring of a program loaded ↓
into RAM. The program being monitored is called the ┆a1┆target program┆e1┆ to ↓
distinguish it from the RC39 Monitor itself. The only restrictions to ↓
the target program is that it must not overwrite the RAM reserved for ↓
the Debug Monitor.↲
↲
↲
The Debug Monitor has two modes: ┆a1┆command mode┆e1┆ and ┆a1┆target mode┆e1┆. The ↓
Debug Monitor is in command mode when a command is being typed in or ↓
executed (this includes loading). The Debug Monitor is in target mode ↓
when a target program is exe┄cuting. A transition from command mode to ↓
target mode occurs when control of the processor is transferred to the ↓
target program as a result of a go command ( G(C)(sel:offset)(; ↓
sel:offset) ) or load-and-go command ( L(W/F)G ).↲
↲
↲
While in command mode the Debug Monitor keeps external interrupts ↓
disabled in order to exclude the execution of any part of a loaded ↓
target program. Thus the contents of RAM will change only under command ↓
control.↲
↲
↲
When the system is powered on or reset the Debug Monitor will enter ↓
command mode, possibly after execution of a hardware selftest program.↲
↲
↲
A transition from target mode to command mode, i.e. an activation of ↓
the Debug Monitor, takes place in the following situations:↲
↲
↲
1.╞	┆84┆┆84┆A breakpoint trap is encountered during the execution of a target ↓
┆19┆┆84┆┄┄program.↲
↲
↲
┆8c┆┆83┆┆bc┆↓
2.  ┆84┆A single step trap is encountered during the execution of a target ↓
┆19┆┆84┆┄┄program.↲
↲
↲
3.╞	┆84┆An INT3 instruction is executed by a target program.↲
↲
↲
All these traps generates a TASK SWITCH into the Debug Monitor. The ↓
Debug Monitor will be able to change the target program context ↓
(registers and variables) by backtracking to the suspended target Task ↓
State Segment (TSS) and even further.↲
↲
↲
Up to eight breakpoints can be set in the user program by means of the ↓
set breakpoint command ( B(bp_no sel:offset) ). A breakpoint must be ↓
located at the first byte of an instruction. Break┄points work ↓
transparently, i.e. following a break execution of the program may be ↓
resumed simply by giving a go command. Once set, a breakpoint remains ↓
until redefined by a new set breakpoint command or explicitly deleted ↓
by either the clear breakpoint command ( C(bp_no) ) or the go and clear ↓
all breackpoints command ( GC (sel:offset)(; sel:offset) ).↲
↲
↲
The Task State Segment (TSS or Context) of the target program may be ↓
modified by an ( R(reg-spec)) command. When the transition from command ↓
to user mode is made ( G(C) (sel:offset)(; sel:offset) ) the processor ↓
registers are updated from the modified TSS.↲
↲
↲
In addition to breakpoint handling the Debug Monitor can be used to ↓
inspect and modify RAM, Protection Tables, Segment Descriptors, System ↓
Descriptors and to read to or write from specified I/O ports. For ↓
details, see the next chapter.↲

════════════════════════════════════════════════════════════════════════
↓
┆a1┆2.1    iAPX 286 Protection Mechanisms.↲
↲
↲
The basic entity in an iAPX 286 system is the ┆a1┆Segment┆e1┆. A segment is ↓
a contigous part of virtual memory used to hold either CODE (TEXT) or ↓
DATA. Segments are of variable size, ranging from as small as a single ↓
byte to as large as 64 K byte. Allthough the iAPX 286 processor ↓
supports a virtual address range of 1 Giga byte and a physical address ↓
range of 16 Mega byte, only 4 segment may be addressed at the same ↓
time. The CS register is used to address the current CODE (TEXT) ↓
segment, and DS, SS and ES may be used to address various types of ↓
DATA. The segment is accessed indirecly through a ┆a1┆Segment Descriptor┆e1┆ ↓
which reside in a specific ┆a1┆Segment Descriptor Table┆e1┆. Two kinds of ↓
segment descriptor tables exists, the Global Descriptor Table (GDT) ↓
used to hold segment descriptors shared by several users and the Local ↓
Descriptor Table (LDT) used to hold user specific segment descriptors. ↓
A segment descriptor is 8 byte long as shown below.↲
↲
↲
╞	╞	--------------------------------↲
╞	       +7╞	!         reserved             ! +6↲
╞	       +5 !P!DPL!1!TYPE!A!  BASE A23-A16 ! +4↲
╞	       +3 !         BASE A15-A0╞	 ! +2↲
╞	       +1 !         LIMIT 15-0╞	 ! 0↲
╞	╞	--------------------------------↲
↲
↲
╞	╞	      ┆a1┆┆e1┆┆a1┆Segment Descriptor.↲
↲
↲
The first word of the descriptor is used to hold the size of the ↓
segment and if the program makes access to CODE or DATA outside the ↓
segment limit a trap is generated into the operating system. Byte 2-4 ↓
is used to hold the physical memory base address of the segment. Byte 5 ↓
is the ┆a1┆Access Right Byte┆e1┆. The P bit indicates whether the segment is ↓
present in physical memory or not. The DPL is a two bit wide field ↓
giving the ┆a1┆Descriptor Privelege Level┆e1┆. Privilege levels are used to ↓
seperate high quality and very thrusted CODE such as the operating ↓
┆8c┆┆83┆┆c8┆↓
system kernel from code generated by stupid (sorry) application ↓
programmers. In XENIX Version 3.2 only two of the four available ↓
privilege levels are used, the operating system executes at privilege ↓
level 0 (SYSTEM) and applications execute a level 3 (USER). The 3 bit ↓
wide TYPE field gives the segment access rights. For CODE segments the ↓
possibily of Execute Only, Execute and Read, Read Only or Conforming ↓
(Execute at caller privilege level) exists. For DATA segments the ↓
expand direction may be either expand up (like CODE segments) or expand ↓
down. A DATA segment may also be either Read Only or both Read and ↓
Write. The A bit is set whenever a segment is referenced. A segment ↓
descriptor is addressed by an index. Bit 2 of the index, the ┆a1┆Table ↓
┆19┆┄┄┆84┆Indicator┆e1┆, tells whether the descriptor is in the GDT or the LDT table. ↓
Bit 0 and bit 1 of the index gives the ┆a1┆Requested Privelege Level┆e1┆ (the ↓
level upon which the caller is executing). Whenever a descriptor is ↓
accessed extensive access checks such as Privilege Level Check, Access ↓
Right Check and Segment Present Check is made by the iAPX 286 ↓
processor. If access is granted the A bit is set and processing ↓
continues otherwise a trap into the operating system is generated.↲
↲
↲
┆a1┆2.2  Alias Descriptors.↲
↲
↲
In order to be able to access the also protected protection tables GDT, ↓
LDT and IDT as data segments the Debug Monitor as well as the XENIX ↓
operating system needs to use an alias descriptor. An alias descriptor ↓
for the GDT table for instance is a Segment Descriptor that addresses ↓
the GDT table as a DATA segment. Several conventions for the layout of ↓
the LDT and GDT tables exists. The first entry of the protection tables ↓
are never used, it is filled with zeroes. The second entry of the GDT ↓
or LDT table is an alias descriptor for the table itself (R/W DATA). ↓
This means that if the Debug Monitor wants to access the GDT or the LDT ↓
table it may use the alias descriptor allready present. The third entry ↓
in the GDT table is an alias to access the IDT table as a R/W DATA ↓
segment.↲
↲
↲
┆8c┆┆83┆┆bc┆↓
HINT! If you want to change the protection tables from the Debug ↓
Monitor (no commands exists for that) then you should use the alias ↓
descriptors allready there.↲
↲
↲
┆a1┆2.3     Monitor Exception Handling.↲
↲
↲
When CPU control switches from target mode to command mode the Debug ↓
Monitor saves the 17 lowest target interrupt vectors, and loads 17 ↓
Debug Monitor vectors. These vectors are used to catch exceptions and ↓
protection violations that might happen in command mode (it is for ↓
instance possible to change the limit or access rights of the Debug ↓
Monitor itself). The protection violations and instruction exceptions ↓
will cause the Debug Monitor to write a message to the console and then ↓
execute a HALT instruction. The only way to get out of these exceptions ↓
is to hardware reset the CPU.↲
↲
↲
┆a1┆Vector type   Error Text                                      ↲
↲
0             Interrupt 0 at 'CS:IP' Divide By Zero↲
╞	╞	HALTED - Hardware RESET required↲
↲
2╞	╞	Interrupt 2 at 'CS:IP' NMI↲
╞	╞	HALTED - Hardware RESET required↲
↲
4╞	╞	Interrupt 4 at 'CS:IP' Overflow↲
╞	╞	HALTED - Hardware RESET required↲
↲
5╞	╞	Interrupt 5 at 'CS:IP' Bounds Check↲
╞	╞	HALTED - Hardware RESET required↲
↲
6╞	╞	Interrupt 6 at 'CS:IP' Undefined Operation↲
╞	╞	HALTED - Hardware RESET required↲
↲
7╞	╞	Interrupt 7 at 'CS:IP' Device Not Available↲
╞	╞	HALTED - Hardware RESET required↲
↲
┆8c┆┆83┆┆d4┆↓
8╞	╞	Interrupt 8 at 'CS:IP' Double Fault↲
╞	╞	HALTED - Hardware RESET required↲
↲
9╞	╞	Interrupt 9 at 'CS:IP' Math Address Error↲
╞	╞	HALTED - Hardware RESET required↲
↲
10╞	╞	Interrupt 10 at 'CS:IP' Invalid Task State Segment↲
              - ECODE = XXXX↲
╞	╞	HALTED - Hardware RESET required↲
↲
11╞	╞	Interrupt 11 at 'CS:IP' Not Present - ECODE = XXXX↲
╞	╞	HALTED - Hardware RESET required↲
↲
12╞	╞	Interrupt 12 at 'CS:IP' Stack Protection↲
╞	╞	 - ECODE = XXXX↲
╞	╞	HALTED - Hardware RESET required↲
↲
13╞	╞	Interrupt 13 at 'CS:IP' General Protection↲
╞	╞	- ECODE = XXXX↲
╞	╞	HALTED - Hardware RESET required↲
↲
14╞	╞	Interrupt 14 at 'CS:IP'↲
╞	╞	HALTED - Hardware RESET required↲
↲
15╞	╞	Interrupt 15 at 'CS:IP'↲
╞	╞	HALTED - Hardware RESET required↲
↲
16╞	╞	Interrupt 16 at 'CS:IP' Math Error↲
╞	╞	HALTED - Hardware RESET required↲
↲
↲
The term 'CS:IP' refers to the logical location in the program, where ↓
the exception came. The errorcode pushed onto the stack by some ↓
exceptions (ECODE) may be hard to decode, and no attempt to document ↓
them in this manual will be done. Consult INTEL manuals for further ↓
description of the exceptions and their errorcodes.↲
↲
↲
┆8c┆┆83┆┆c8┆↓
Prior to the exit to target mode the target vectors are naturally ↓
restored.↲

════════════════════════════════════════════════════════════════════════
↓
┆a1┆3.     MONITOR COMMANDS.↲
↲
↲
When the Monitor enters command mode or completes execution of a ↓
command without entering target mode, i.e. whenever it becomes ready ↓
for a new command, it outputs a '. ' (period and space) as a prompt. A ↓
command can then be typed as a sequence of characters terminated by CR, ↓
',' (comma), or '^' (upward arrow head or circumflex =5E┆82┆Hex┆81┆). It is ↓
possible to edit the command line using backspace or del (rubout) to ↓
erase faulty characters one at a time. No distinction is made between ↓
upper and lower case letters in the command input.↲
↲
↲
Before details of the individual commands are given, the vocabulary of ↓
the command syntax definitions is explained:↲
↲
↲
╞	- Capital letters must be typed as shown (or in lower case).↲
↲
↲
╞	- Parentheses delimit optional parameters and should not be typed.↲
↲
↲
╞	- ┆84┆Slashes separate alternative forms of a parameter and should not ↓
┆19┆┆86┆┄┄be typed.↲
↲
↲
╞	- "bp-no" stands for a breakpoint number in the range 0-7.↲
↲
↲
╞	- ┆84┆"addr type" stands for a memory address specified as either ↓
┆19┆┆86┆┄┄"sel:offset" or as "physadr".↲
↲
↲
    - ┆84┆"sel:offset" stands for a memory address specified as ↓
┆19┆┆86┆┄┄selector:offset or just offset, where segment and offset can each ↓
┆19┆┆86┆┄┄be given as a hexadecimal number with up to 4 digits or as the ↓
┆19┆┆86┆┄┄name of one of the registers in the context. In the latter case ↓
┆8c┆┆83┆┆c8┆↓
┆19┆┆86┆┄┄the value of the indicated register variable is used. When only ↓
┆19┆┆86┆┄┄offset is specified the value of CS is used as default for ↓
┆19┆┆86┆┄┄selector. An address speci┄fication may also be left out ↓
┆19┆┆86┆┄┄completely, in which case CS:IP is used as default. When both ↓
┆19┆┆86┆┄┄selector and offset are specified the separating ':' (colon) must ↓
┆19┆┆86┆┄┄be typed.↲
↲
↲
    - ┆84┆"physadr" is a 6 digit long hexadecimal physical memory address.↲
↲
↲
╞	- ┆84┆"count" stands for an unsigned decimal number to be used as a ↓
┆19┆┆86┆┄┄repetition counter.↲
↲
↲
╞	- ┆84┆"port_adr" stands for the address of an I/O port.↲
↲
↲
    - ┆84┆"value" stands for a byte or word value to be written to a ↓
┆19┆┆86┆┄┄register, memory location, or output port. Both may be given as a ↓
┆19┆┆86┆┄┄hexadecimal number with up to 4 digits (2 if byte). Register ↓
┆19┆┆86┆┄┄names may also be used as for addresses.↲
↲
↲
    - ┆84┆"reg_spec" stands for one of the iAPX 286 internal registers CS, ↓
┆19┆┆86┆┄┄DS, SS, ES, AX, BX, CX, DX, SP, BP, SI, DI, IP or FL (flags).↲
↲
╞	- ┆84┆"string" stands for any string of graphic characters not ↓
┆19┆┆86┆┄┄including ',' or '^'.↲
↲
↲
Command names are typed as single letters, in some cases preceded by an ↓
optional count indicating the command should be repeated the specified ↓
number of times, and usually followed by other parameters. In several ↓
cases a command may be continued or repeated if a ',' or '^' is typed ↓
instead of a command in response to the next prompt.↲
↲
↲
┆8c┆┆83┆┆c8┆↓
In the remainder of this chapter the individual commands are described. ↓
In the command syntax definitions the elements of each command are ↓
separated by blanks for readability. Such blanks are not necessary in ↓
actual command input. In the EXAMPLES shown below all Debug Monitor ↓
output is shown in ┆b0┆bold┆f0┆ and comments is preceded with a % character.↲
↲
┆a1┆↲
┆a1┆3.1  Help Command.↲
↲
↲
Command Syntax: ┆b0┆(H/?).↲
↲
↲
The help command displays a menu of available commands like this.↲
↲
↲
┆b0┆********************************************************************↲
┆b0┆*╞	╞	       RC 39 MONITOR MENU╞	╞	   - PAGE 1  *↲
┆b0┆********************************************************************↲
┆b0┆Command╞	╞	╞	   Action↲
↲
┆b0┆(<delete>/<back space>)╞	╞	   Erase last character↲
┆b0┆(H/?)╞	╞	╞	   Request this menu↲
┆b0┆*╞	╞	╞	╞	   Hardware Reset Command↲
┆b0┆G (C) (sel:offset) (; sel:offset)╞	   GO FROM user addr. TO user addr.↲
┆a1┆┆e1┆┆b0┆(count) N (sel:offset) (; sel:offset) STEP FROM user addr TO user addr.↲
┆b0┆B (bp_no sel:offset)╞	╞	   Set breakpoint in user code↲
┆b0┆C (bp_no)╞	╞	╞	   Reset one or all breakpoints↲
┆b0┆R (reg_spec)╞	╞	╞	   Display all/Change one register↲
┆b0┆RMSW╞	╞	╞	   Dispaly Machine Status Word↲
┆b0┆(count) M (W/X/P)(addr type)(=value) Display/Update/Disassemble Memory↲
┆b0┆(count) M (W/X) P (physadr)(=value)  P means Physical 6 digit hex addr.↲
┆b0┆(count) M (W/X) (sel:offset)(=value) Address given as Selector:Offset↲
┆b0┆I (W) port_adr╞	╞	   Input from byte or Word port↲
┆b0┆O (W) port_adr=value╞	╞	   Output value to byte or Word port↲
┆b0┆L (W/F) (G) (:string)╞	╞	   Load from disc↲
↲
┆b0┆,╞	╞	╞	╞	   Request more menu↲
↲
↲
┆8c┆┆83┆┆e0┆↓
If a comma is entered the rest of the menu is displayed.↲
↲
↲
┆b0┆********************************************************************↲
┆b0┆*╞	╞	       RC 39 MONITOR MENU╞	╞	   - PAGE 2  *↲
┆b0┆********************************************************************↲
┆b0┆Command╞	╞	╞	   Action↲
↲
┆b0┆(count) XLDT (ldt_index) (,)╞	   Examine USER LDT↲
┆b0┆(count) XGDT (gdt_index) (,)╞	   Examine GDT↲
┆b0┆(count) XIDT (idt_index) (,)╞	   Examine IDT↲
┆b0┆(count) XDT (gdt_index) (,)          Examine any LDT↲
┆b0┆XTSS (gdt_index) (,)╞	╞	   Examine TSS↲
┆b0┆,╞	╞	╞	╞	   Request more menu↲
↲
↲
┆a1┆3.2  Programmable Hardware Reset Command.↲
↲
↲
Command Syntax: ┆b0┆*.↲
↲
↲
This command is only available on the RC Manufactured CPU 610, not the ↓
Intel Manufactured CPU 691 iAPX 286 board. This command executes a ↓
hardware reset on the Multibus.↲
↲
↲
┆a1┆3.3  Set Breakpoint Command.↲
↲
↲
Command Syntax: ┆b0┆B (bp-no sel:offset).↲
↲
↲
Without parameters this command causes all currently set breakpoints  ↓
to be displayed. With parameters, a B command sets the breakpoint with ↓
the specified number at the specified address. If this breakpoint was ↓
previously set the old setting is deleted.↲
↲
↲
┆8c┆┆83┆┆d4┆↓
EXAMPLE.↲
↲
↲
┆b0┆. B╞	╞	╞	╞	┆f0┆% display active breakpoints.↲
┆b0┆Breakpoint 0 at 0160:664A substitute B8↲
┆b0┆Breakpoint 4 at 0168:001B substitute EA↲
┆b0┆Breakpoint 7 at 0168:1AAB substitute B8↲
┆b0┆.↲
↲
or↲
↲
↲
┆b0┆. B 6 11AB┆f0┆╞	╞	╞	% set breakpoint no. 6 at CS:11AB↲
↲
↲
If no selector is given CS is used.↲
↲
↲
┆a1┆3.4  Clear Breakpoint Command.↲
↲
↲
Command Syntax:┆b0┆ C (bp-no).↲
↲
↲
┆a1┆┆e1┆If a parameter is present the breakpoint with the specified number is ↓
deleted, otherwise all currently set breakpoints are deleted.↲
↲
↲
┆a1┆3.5  Single Step Through Target Code Command.↲
↲
↲
Command Syntax: ┆b0┆(count) N (sel:offset) (;sel:offset) (,).↲
↲
↲
This command single steps through target code from start address to end ↓
address. It may be wise to use a count if the end address is never ↓
reached. Breakpoint also terminates the single stepping. Before every ↓
step the instruction to be executed is disassembled and after each ↓
single step the registers are displayed.↲
↲
↲
┆8c┆┆83┆┆ec┆↓
EXAMPLE.↲
↲
↲
┆b0┆. 4N┆f0┆╞	╞	╞	% execute 4 Single Steps↲
↲
↲

╱04002d4e0c00060000000003014e3100000000000000000000000000000000000000000000000000050f19232d3741464b555f69737d87ff04╱

╱04002d4e0c0006000000000301473100000000000000000000000000000000000000000000000000050f19232d3741464b555f69737d87ff04╱
↓
┆b0┆0168:664A  C746FC0000╞	MOV   WORD PTRÆBP+FCÅ,0000H↲
┆b0┆ IP   FL   AX   CX   DX   BX   SP   BP   SI   DI   ES   CS   SS   DS  ABELGSI↲
┆b0┆6647 0312 0000 0120 00DC 0010 03C8 03D4 0004 097A 0008 0168 0188 0158 +---+-+↲
↲
┆b0┆0168:664F  8B46FC╞	MOV   AX,WORD PTRÆBP+FCÅ↲
┆b0┆ IP   FL   AX   CX   DX   BX   SP   BP   SI   DI   ES   CS   SS   DS  ABELGSI↲
┆b0┆6652 0312 0000 0120 00DC 0010 03C8 03D4 0004 097A 0008 0168 0188 0158 +---+-+↲
↲
┆b0┆0168:6652  6BC016╞	IMUL  AX,AX,0016H↲
┆b0┆ IP   FL   AX   CX   DX   BX   SP   BP   SI   DI   ES   CS   SS   DS  ABELGSI↲
┆b0┆6655 0356 0000 0120 00DC 0010 03C8 03D4 0004 097A 0008 0168 0188 0158 --+---+↲
↲
┆b0┆0168:6655  8BF8╞	MOV   DI,AX↲
┆b0┆ IP   FL   AX   CX   DX   BX   SP   BP   SI   DI   ES   CS   SS   DS  ABELGSI↲
┆b0┆6657 0356 0000 0120 00DC 0010 03C8 03D4 0004 0000 0008 0168 0188 0158 --+---+↲

╱04002d4e0c0006000000000301463100000000000000000000000000000000000000000000000000050f19232d3741464b555f69737d87ff04╱

╱04002d4e0c00060000000003014e3100000000000000000000000000000000000000000000000000050f19232d3741464b555f69737d87ff04╱
↓
↲
┆b0┆┆b0┆.↲
The command may be repeated with comma.↲
↲
↲
┆a1┆3.6  Go to (Exit to) Target Code Command.↲
↲
↲
Command Syntax = ┆b0┆G (C) (sel:offset) (;sel:offset).↲
↲
↲
This command exits to target code. If C is specified all breakpoints ↓
are deleted. If no start address is given the current CS:IP is used. ↓
If an end address is given a breakpoint (no. 0) is set at that ↓
address. NOTE that you should always reserve breakpoint 0 for the G ↓
command.↲
↲
↲
┆8c┆┆83┆┆d4┆↓
EXAMPLE.↲
↲
↲
┆b0┆. G ;665E┆f0┆╞	╞	╞	% CS is default↲
↲
↲
┆b0┆Breakpoint no. 0 at 0168:665E┆f0┆↲
┆b0┆. ↲
↲
↲
┆a1┆3.7  Display Target Registers.↲
↲
↲
Command Syntax: ┆b0┆R (reg-spec).↲
┆a1┆↲
↲
┆a1┆┆e1┆The R command is used to display and modify the values of the register ↓
variables in the target context. If the register specification is left ↓
out the values of all the registers are displayed. If a register is ↓
specified the value of that register is displayed followed by '-'. A ↓
new value for that register may now be entered, followed by CR. If no ↓
value is specified the old value (the one displayed) is kept.↲
↲
↲
EXAMPLE.↲
↲
↲
┆b0┆. R┆f0┆╞	╞	╞	╞	% display all registers↲

╱04002d4e0c00060000000003014e3100000000000000000000000000000000000000000000000000050f19232d3741464b555f69737d87ff04╱

╱04002d4e0c0006000000000301463100000000000000000000000000000000000000000000000000050f19232d3741464b555f69737d87ff04╱
↓
↲
 IP   FL   AX   CX   DX   BX   SP   BP   SI   DI   ES   CS   SS   DS  ABELGSI↲
┆b0┆665E 0286 0000 0120 00DC 0010 03C8 03D4 0004 8D18 0008 0168 0188 0158 +--+-++↲

╱04002d4e0c0006000000000301463100000000000000000000000000000000000000000000000000050f19232d3741464b555f69737d87ff04╱

╱04002d4e0c00060000000003014e3100000000000000000000000000000000000000000000000000050f19232d3741464b555f69737d87ff04╱
↓
↲
↲
┆b0┆. RAX┆f0┆╞	╞	╞	% change register AX↲
┆b0┆AX=0000-┆f0┆┆b0┆1234┆f0┆╞	╞	╞	% user types 1234↲
┆b0┆. RAX↲
┆b0┆AX=1234-┆f0┆╞	╞	╞	% user types <cr>↲
┆b0┆.↲

════════════════════════════════════════════════════════════════════════
↓
┆a1┆3.8  Display Machine Status Word.↲
↲
↲
Command Syntax: ┆b0┆RMSW.↲
↲
↲
This command displays the Machine Status Word.↲
↲
↲
EXAMPLE.↲
↲
↲
┆b0┆RMSW↲
┆b0┆MSW = FFFD↲
┆b0┆. ↲
↲
↲
┆a1┆3.9  Display/Change/Disassemble Memory.↲
↲
↲
Command Syntax: ┆b0┆(count) M(W/X/P) (addr type)(=value) (,) (^).↲
↲
↲
The M command is used to inspect and/or modify the contents of ↓
specified memory locations. It operates in three different ways, ↓
depending on the presence of the count and value specifications. In all ↓
cases the oper┄ation is performed on consecutive locations, beginning at ↓
the specified address. If X is specified memory is inspected in units ↓
of (variable length) processor instructions, i.e. a disassembler is ↓
invoked. If W is specified the unit to be inspected/modified is a word, ↓
otherwise a byte. If P is specified a maximum 6 digit long hexadecimal ↓
address must be given, otherwise a logical selector:offset address is ↓
expected.↲
↲
↲
If a value is specified, in which case the '=' (equal sign) must be ↓
typed, it is assigned to as many consecutive units (bytes or words) of ↓
memory as specified by the count, 1 if the count is omitted.↲
↲
↲
┆8c┆┆83┆┆e0┆↓
If no value is specified, but a count is, or if X is specified, the ↓
command is a pure display command. 16 bytes/8 words/1 instruction are ↓
displayed per line in hexadecimal/mnemonic. The number of units to be ↓
displayed is specified by the count. If, in this case, a ',' is entered ↓
in response to the following command prompt the same number of ↓
bytes/words/instructions is again displayed from subsequent memory ↓
locations. This exercise may be repeated indefinitely.↲
↲
↲
If no value, no count, and no X is specified, the command works as ↓
follows: The specified address and the current contents of the memory ↓
unit (byte or word) at that location are displayed, followed by '-'. A ↓
new value to be entered into that location may now be entered, followed ↓
by ',', '^', or CR. If no value is specified the old value (the one ↓
displayed) is kept. If CR is entered the command terminates; if ',' or ↓
'^' is input the address is incremented/decremented by 1 (byte) or 2 ↓
(word) and the operation repeated.↲
↲
↲
If a logical address is given (selector:offset), and an attempt to ↓
display/substitute/disassemble memory outside the descriptor limit is ↓
made then a message is written to the console.↲
↲
↲
┆b0┆Selector limit exceeded↲
↲
↲
NOTE that if a physical address is supplied then there is no ↓
restrictions to the address except it must be in the 16 M byte memory ↓
space.↲
↲
↲
NOTE also that the Debug Monitor always writes bytes to memory, even ↓
if word is specified. Word commands is divided into two successive ↓
byte operations.↲
↲
↲
EXAMPLE.↲
↲
↲
┆8c┆┆83┆┆e0┆↓
┆b0┆. 4MX┆f0┆ ╞	╞	╞	% CS:IP is default↲
↲
┆b0┆0168:665E  6BC00A ╞	IMUL   AX,AX,000AH╞	; I=+10↲
┆b0┆0168:6661  8BF0╞	MOV    SI,AX↲
┆b0┆0168:6663  81C66E25╞	ADD    SI,256E╞	; I=+9582↲
┆b0┆0168:6667  688200╞	PUSH   130↲
↲
┆b0┆. 20 M DS:0┆f0┆╞	╞	╞	% display bytewise, (.) means non↲

╱04002d4e0c00060000000003014e3100000000000000000000000000000000000000000000000000050f19232d3741464b555f69737d87ff04╱

╱04002d4e0c0006000000000301463100000000000000000000000000000000000000000000000000050f19232d3741464b555f69737d87ff04╱
↓
╞	╞	╞	╞	% ascii character↲
┆b0┆0158:06F0  1E 61 60 01 E6 21 60 01 7C 4D 68 01 21 41 68 01   .a'..!'.øMh.!Ah.↲
┆b0┆0158:0700  7C 6D 68 01╞	╞	╞	╞	       ømh.↲

╱04002d4e0c0006000000000301463100000000000000000000000000000000000000000000000000050f19232d3741464b555f69737d87ff04╱

╱04002d4e0c00060000000003014e3100000000000000000000000000000000000000000000000000050f19232d3741464b555f69737d87ff04╱
↓
↲
┆b0┆.┆f0┆↲
↲
┆b0┆. 10 MW DS:6F0┆f0┆╞	╞	% display wordwise↲
↲
┆b0┆0158:06F0  611E 0160 21E6 0160 4D7C 0168 4121 0168↲
┆b0┆0158:0700  6D7C 0168↲
↲
┆b0┆. 10 MWP FFF5┆f0┆╞	╞	╞	% display physical memory↲
↲
┆b0┆00FFF5  0000 0000 0000 0000 0000 0000 0000 0000↲
┆b0┆010005  0000 0000↲
↲
┆b0┆. MWP FFF5┆f0┆╞	╞	╞	% substitute physical memory↲
↲
┆b0┆00FFF5  0000-1234,┆f0┆╞	╞	% user types 1234 and (,)↲
┆b0┆00FFF7  0000-5678,┆f0┆╞	╞	% user types 5678 and (,)↲
┆b0┆00FFF9  0000-^┆f0┆╞	╞	% user types ^↲
┆b0┆00FFF7  5678-^┆f0┆╞	╞	% user types ^↲
┆b0┆00FFF5  1234-╞	┆f0┆╞	╞	% user types <cr>↲
↲
┆b0┆. ↲
↲
↲
┆b0┆100 MW DS:1000 = 1234┆f0┆╞	╞	% block assignment↲
↲
↲
┆8c┆┆83┆┆c8┆↓
┆a1┆3.10 Input from Port.↲
↲
↲
Command Syntax: ┆e1┆┆b0┆(count) I (W) port (,).↲
↲
↲
A number of bytes or, if W is specified, words, are read from the ↓
specified input port and displayed. The number of input operations is ↓
specified by count. Default is 1. Repetition can be requested (',').↲
↲
↲
EXAMPLE.↲
↲
↲
┆b0┆. IDE┆f0┆╞	╞	╞	% input from byte port↲
┆b0┆68↲
┆b0┆┆b0┆. IWDE┆f0┆╞	╞	╞	% input from word port↲
┆b0┆E868↲
┆b0┆. ,┆f0┆╞	╞	╞	╞	% repeat↲
┆b0┆E868↲
↲
↲
┆a1┆3.11 Output to Port.↲
↲
↲
Command┆e1┆ Syntax: ┆b0┆O (W) port = value.↲
↲
↲
The specified value is written to the specified output port as a byte ↓
or, if W is specified, as a word.↲
↲
↲
EXAMPLE.↲
↲
↲
┆b0┆. ODE=12┆f0┆╞	╞	╞	% output to byte port↲
↲
┆b0┆. OWDE=1234┆f0┆╞	╞	╞	% output to word port↲
↲
↲
┆8c┆┆83┆┆e0┆↓
┆a1┆3.12 Load (boot) from disc.↲
↲
↲
Command Syntax:┆e1┆ ┆b0┆L (W/F) (G) (: string).↲
↲
↲
The L command starts the disk bootloader. If G is speci┄fied and if the ↓
loading is succesfull then the Debug Monitor makes a Task State Segment ↓
for the target code and starts execution.↲
↲
↲
If the G is omitted, or if an exception occur the Debug Monitor remains ↓
in command mode.↲
↲
↲
The first parameter specifies the type of disk:↲
    W    Winchester disk↲
    F    Floppy disk↲
↲
↲
If a string parameter is present it is forced to lower case letters and ↓
stored in the bootname string area terminated with CR.↲
↲
↲
┆a1┆EXAMPLE.↲
↲
↲
┆b0┆. LG┆f0┆╞	╞	╞	% load and Go command↲
┆b0┆Stage 1 Boot OK↲
↲
┆b0┆ ╞	╞	Microsoft XENIX  3.2  ┆f0┆(and so on)↲
↲
↲
See chapter 4 for further boot information.↲
↲
┆a1┆↲
┆a1┆3.13 Examine Global Descriptor Table (GDT).↲
↲
↲
┆8c┆┆83┆┆d4┆↓
Command Syntax: ┆b0┆(count) XGDT (gdt_index) (,).↲
↲
↲
This command is used to display the content of the Global Descriptor ↓
Table (GDT). The content of the GDT table is ┆a1┆Segment Descriptors┆e1┆ and ↓
┆a1┆System Descriptors┆e1┆.↓
↲
↲
Also if the GDT index is outside the GDT limit another error message is ↓
written.↲
↲
↲
┆b0┆exception - table limit exceeded↲
↲
↲
EXAMPLE.↲
↲
↲
┆b0┆. 4 XGDT┆f0┆╞	╞	╞	% display first 4 GDT entries↲
↲
┆b0┆0000 : NULL DESCRIPTOR↲
╞	╞	╞	╞	% Note that entry 0008 is the GDT↲
╞	╞	╞	╞	% alias descriptor↲
┆b0┆0008 : LIMIT = 027F -  BASE = 00297A -  ACCESS = 93↲
┆b0┆╞	   DSEG, Present, DPL=0, Expand Up, Read/Write, Accessed↲
↲
┆b0┆╞	╞	╞	╞	┆b0┆┆f0┆% Note that entry 10 is the IDT↲
╞	╞	╞	╞	% alias descriptor↲
┆b0┆0010 : LIMIT = 07FF -  BASE = 0030D8 -  ACCESS = 93↲
┆b0┆╞	   DSEG, Present, DPL=0, Expand Up, Read/Write, Accessed↲
↲
┆b0┆0018 : LIMIT = 0200 -  BASE = 000000 -  ACCESS = 93↲
┆b0┆╞	   DSEG, Present, DPL=0, Expand Up, Read/Write, Ignored↲
↲
↲
┆b0┆. XGDT 28╞	╞	╞	┆f0┆% example TASK GATE↲
↲
┆b0┆0028 : SSEL = 0040↲
┆8c┆┆83┆┆c8┆↓
┆b0┆       TASK GATE, Present, DPL=0↲
↲
↲
┆b0┆. XGDT 30┆f0┆╞	╞	╞	% example Task State Segment↲
↲
┆b0┆0030 : LIMIT = 002C -  BASE = 001008 -  ACCESS = 81↲
┆b0┆       AVAILABLE TSS, Present, DPL=0↲
↲
↲
┆b0┆. XGDT 108┆f0┆╞	╞	╞	% example LDT descriptor↲
↲
┆b0┆0108 : LIMIT = 0838 -  BASE = 001008 -  ACCESS = 82↲
┆b0┆       LDT DESCRIPTOR, Present, DPL=0↲
↲
↲
┆b0┆. XGDT 138┆f0┆╞	╞	╞	% example CODE (TEXT) segment desc.↲
↲
┆b0┆0138 : LIMIT = 7FFF -  BASE = FF8000 -  ACCESS = 9B↲
┆b0┆       ESEG, Present, DPL=0, Execute/Read, Not Conforming↲
↲
↲
┆b0┆. XGDT 1D0┆f0┆╞	╞	╞	% example CALL GATE↲
↲
┆b0┆01D0 : WCNT = 1 -  SSEL = 0160 -  SOFF = 4559↲
┆b0┆       CALL GATE, Present, DPL=3↲
↲
↲
┆a1┆3.14 Examine Target Local Descriptor Table (LDT).↲
↲
↲
Command Syntax: ┆b0┆(count) XLDT (ldt_index) (,).↲
↲
↲
This command is used to display the content of the presently active LDT ↓
descriptor table. The content of the LDT table is ┆a1┆Segment Descriptors┆e1┆ ↓
and ┆a1┆System Descriptors┆e1┆. If neither CS, DS, SS or ES references a LDT ↓
table a message is written to the console.↲
↲
↲
┆8c┆┆83┆┆d4┆↓
┆b0┆exception - USER has no LDT↲
↲
↲
Also if the LDT index is outside the LDT limit another error message is ↓
written.↲
↲
↲
┆b0┆exception - table limit exceeded↲
↲
↲
EXAMPLE.↓
↲
↲
┆b0┆. 4XLDT┆f0┆╞	╞	╞	% display 4 LDT entries↲
↲
┆b0┆0004 : NULL DESCRIPTOR↲
↲
┆b0┆000C : LIMIT = 0838 -  BASE = 000350 -  ACCESS = 92↲
┆b0┆       DSEG, Present, DPL=0, Expand Up, Read Write, Ignored↲
↲
┆b0┆0014 : LIMIT = 7FFF -  BASE = FF8000 -  ACCESS = 9B↲
┆b0┆       ESEG, Present, DPL=0, Execute/Read, Not Conforming↲
↲
┆b0┆001C : LIMIT = FFFF -  BASE = 000000 -  ACCESS = 93↲
┆b0┆       DSEG, Present, DPL=0, Expand Up, Read/Write, Accessed↲
↲
↲
┆a1┆3.15 Examine Interrupt Descriptor Table (IDT).↲
↲
┆82┆↲
Command Syntax: ┆b0┆(count) XIDT (idt_index) (,).↲
↲
↲
This command is used to display the content of the Interrupt Descriptor ↓
Table. The content of the IDT table may be either ┆a1┆TASK Gates┆e1┆, ┆a1┆Interrupt ↓
┆19┆┄┄┆84┆Gates┆e1┆, ┆a1┆Interrupt Traps┆e1┆ or ┆a1┆NULL Descriptors.↲
↲
↲
┆8c┆┆83┆┆c8┆↓
If IDT index is outside the IDT limit another error message is written.↲
↲
↲
┆b0┆exception - table limit exceeded↲
↲
↲
EXAMPLE.↲
↲
↲
┆b0┆. 4 XIDT┆f0┆╞	╞	╞	% display 4 IDT entries↲
↲
┆b0┆0000 : SSEL = 0160 -  SOFF = 44AE↲
┆b0┆       TRAP GATE, Present, DPL=0↲
↲
┆b0┆0008 : SSEL = 0160 -  SOFF = 44B2↲
┆b0┆       TRAP GATE, Present, DPL=0↲
↲
┆b0┆0010 : SSEL = 0160 -  SOFF = 44BF↲
┆b0┆       TRAP GATE, Present, DPL=0↲
↲
┆b0┆0018 : SSEL = 0160 -  SOFF = 44C8↲
┆b0┆       TRAP GATE, Present, DPL=0↲
↲
↲
┆b0┆. XIDT 200┆f0┆╞	╞	╞	% example Interrupt Gate↲
↲
┆b0┆0200 : SSEL = 0160 -  SOFF = 4576↲
┆b0┆       INTERRUPT GATE, Present, DPL=0↲
↲
↲
┆a1┆3.16 Examine any LDT Table.↲
↲
↲
Command Syntax: ┆b0┆(count) XDT (gdt_index) (,).↲
↲
↲
This command is used to display the content of any memory resident LDT ↓
table. This command is typically used to display the content of ↓
┆8c┆┆83┆┆c8┆↓
inactive LDT tables whereas the XLDT command displays the content of ↓
the currently active LDT table. The gdt_index must be an LDT descriptor ↓
in the GDT.↲
↲
↲
If the LDT descriptor indicates segment not present in physical memory ↓
a message is written to the console.↲
↲
↲
┆b0┆exception - LDT segment NOT present↲
↲
↲
Also if the GDT index does'nt point to a LDT descriptor another  ↓
message is generated.↲
↲
↲
┆b0┆exception - entry is NOT an LDT descriptor↲
↲
↲
Also if the GDT index is outside the GDT limit another error message is ↓
written.↲
↲
↲
┆b0┆exception - table limit exceeded↲
↲
↲
EXAMPLE.↲
↲
↲
This command will produce a listing similar to the XLDT command. There ↓
is a known bug in this command in release 3.2 of the Debug Monitor. ↓
This bug will be corrected in further releases.↲
↲
↲
┆a1┆3.17 Examine TASK State Segment (TSS).↲
↲
↲
Command Syntax: ┆b0┆XTSS (gdt_index) (,).↲
↲
↲
┆8c┆┆83┆┆e0┆↓
This command is used to display the content of a Task State Segment ↓
(TSS). A TSS is a special segment (44 bytes long) used to hold all the ↓
iAPX 286 variables that changes during a TASK SWITCH. The gdt_index ↓
must be TSS descriptor (TSS descriptors must always be available and ↓
for that reason they must be in the GDT table). If a (,) is entered ↓
the command is repeated with the next GDT selector.↲
↲
↲
If the GDT index does'nt point to a TSS descriptor an error message is ↓
written.↲
↲
↲
┆b0┆exception - entry is NOT a TSS descriptor↲
↲
↲
Also if the GDT index is outside the GDT limit another error message is ↓
written.↲
↲
↲
┆b0┆exception - table limit exceeded↲
↲
↲
EXAMPLE.↲
↲
↲
┆b0┆. XTSS 190┆f0┆╞	╞	╞	% examine XENIX 3.2 TSS (Only One)↲
↲
┆b0┆       Link SP-0 SS-0 SP-1 SS-1 SP-2 SS-2 IP-r FL-r AX-r CX-r↲
┆b0┆0190 : 0000 0400 0188 0000 0000 0000 0000 0000 0000 0000 0000↲
┆b0┆       DX-r BX-r SP-r BP-r SI-r DI-r ES-s CS-s SS-s DS-s LDT-s↲
┆b0┆╞	   0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 01C8↲
↲
↲
The snapshot above was taken before the XENIX TASK was running, just ↓
after bootload was finished.↲

════════════════════════════════════════════════════════════════════════
↓
┆a1┆┆a1┆4.     LOAD (BOOT) FROM DISC.↲
↲
↲
The Debug Monitor is carefully integrated with the built in selftest ↓
in the products where it is used. The selftest is for instance ↓
responsible for the initialization of all peripheral devices and also ↓
for switching the iAPX 286 CPU and the SBC board itself into the ↓
Protected Virtuel Address Mode (PVAM) of operation┆b0┆. ┆f0┆Before the ↓
┆19┆┄┆81┆┄termination of the selftest a Multibus configuration is made and all ↓
┆19┆┄┆81┆┄"test-slaves" are sent to their bootload phase. Allthough it is ↓
┆19┆┄┆81┆┄possible to stop the selftest prior to its natural termination and ↓
┆19┆┄┆81┆┄then execute a boot (load from disc) command, it is not wise to do so ↓
┆19┆┄┆81┆┄because the XENIX operating system uses the Multibus Configuration ↓
┆19┆┄┆81┆┄schedule to determine which boards need bootloading and the "test-↓
┆19┆┄┆81┆┄slaves" will be waiting for their go to boot command as well.↲
┆81┆↲
↲
If no console is present on the iAPX 286 CPU board then the bootload ↓
from winchester disc is started by default, otherwise the result of ↓
the configuration is written to the screen and the Debug Monitor is ↓
entered. The console output might look like this.↲
↲
↲
┆b0┆Multibus Configuration:↲
┆b0┆======================================================================↲
┆b0┆┆b0┆MB entry - MB address - Card State - Card ID - MB RAM size - error no.↲
┆b0┆======================================================================↲
┆b0┆00000       000000╞	  master╞	   CPU 610   02048          00000↲
┆b0┆┆b0┆00001       9E0000╞	  ready╞	   ITC 602   00064          00000↲
┆b0┆00002       8E0000        ready╞	   COM 601   00064          00000↲
┆b0┆00003       800000        ready      ETC 611   00512          00000↲
↲
┆b0┆<00001> Sent to bootload↲
┆b0┆<00002> Sent to bootload↲
┆b0┆<00003> Sent to bootload↲
↲
┆b0┆RC 39 Monitor release 2.0↲
┆b0┆.↲
↲
↲
┆8c┆┆83┆┆e0┆↓
It is now necessary to enter a boot command to get XENIX up and ↓
running. If the bootload is made from floppy it is normally necessary ↓
to enter the file name "xenix.fd" (LFG:xenix.fd). If the booload goes ↓
from winchester it is enough to enter (LG) and the default kernel ↓
"/xenix" is loaded.↲
↲
↲
The bootload is seperated into two stages. The first stage loads the ↓
bootstrap track from either winchester or floppy into memory, builds a ↓
Task State Segment from the loaded image, and starts execution. The ↓
format of both the floppy and the winchester disc is 1024 ↓
bytes/sector. The floppy disc has 8 sectors/track and the winchester ↓
has 9 sectors/track.↲
↲
↲
If the first stage is unable to read from floppy or winchester disc an ↓
error message is written to the console.↲
↲
↲
┆b0┆SCSI disc read error↲
↲
↲
If the reading went succesfull but the format was not as expected ↓
another message is written. The loaded code must be in MICROSOFT x.out ↓
SMALL model format. ↲
↲
↲
┆b0┆x.out Format error↲
↲
↲
If neither SCSI error nor format error is detected an OK message is ↓
written to the console.↲
↲
↲
┆b0┆Stage 1 Boot OK.↲
↲
↲
┆8c┆┆83┆┆bc┆↓
The loaded program is not XENIX, but the second stage boot which ↓
"knows" about the XENIX file structure, and is able to load and ↓
start the execution of the XENIX Kernel, which must be in MICROSOFT ↓
x.out MIDDLE model format. When the Kernel is loaded succesfully and ↓
started a message is written to the console.↲
↲
↲
╞	╞	┆f0┆┆b0┆Microsoft XENIX 3.2 ┆f0┆(and so on)↲
↲
↲
A number of exceptions may arise during the second stage boot. The ↓
exceptions are listed below. After an exception the loader returns to ↓
the Debug Monitor if possible. Experience has shown that not all ↓
exceptions are restartable, but a hardware reset must be supplied.↲
↲
↲
All exceptions are numbered and they will all produce the same type of ↓
output.↲
↲
↲
┆b0┆Stage 2 Boot EXCEPTION no: nn↲
↲
↲
nn↲
↲
↲
2. header error (x.out format error)↲
↲
3. bad magic number (x.out format error)↲
↲
4. bad word ordering (x.out format error) ↓
↲
5. bad target cpu (x.out format error)↲
↲
6. bad runtime environment (x.out format error)↲
↲
7. extended header read error (x.out format error)↲
↲
┆8c┆┆83┆┆c8┆↓
8. can't boot unsegmented x.out files (x.out format error)↲
↲
9. zero segments (x.out format error)↲
↲
32. means file not found↲
↲
100. 5 retries was made by the disc driver, but still no data.↲

════════════════════════════════════════════════════════════════════════
↓
┆a1┆5.     RAM RESERVATION.↲
↲
↲
┆a1┆┆e1┆This version of the Debug Monitor is currently running on two iAPX 286 ↓
CPU's, the CPU 610 and the CPU 691. On both CPU's the lowest 8 K byte ↓
of RAM is reserved for the Debug Monitor.↲

════════════════════════════════════════════════════════════════════════
↓
┆a1┆6.     RELATED DOCUMENTS.↲
↲
↲
RC 39 Selftest Concept, User's Manual              RCSL. 99110092↲
↲
ITC 602 hardware selftest, User's Manual           RCSL. 99110095↲
↲
F641 COM 601 hardware selftest, User's Manual      RCSL. 99110097↲
↲
RC 3902 (CPU 691) hardware selftest, User's Manual RCSL. 99110094↲
↲
RC 3902 (CPU 610) hardware selftest, User's Manual RCSL. 99119134 ↲
↲
↲
RC 39 Monitor 8086 version, Reference Manual       RCSL. 99110134↲

════════════════════════════════════════════════════════════════════════
↓
┆a1┆Appendix A.↲
↲
↲
In order to integrate the Debug Monitor with XENIX 3.2 a number of GDT ↓
selectors (40) is reserved for the Debug Monitor. This gives the ↓
following GDT table layout.↲
↲
↲
╞	╞	╞	-----------------↲
╞	╞	    0000╞	!                ! NULL DESCRIPTOR↲
 ╞	╞	╞	!----------------!↲
╞	  ╞	    0008╞	!   GDT ALIAS    !↲
╞	╞	╞	!----------------!↲
╞	              0010╞	!   IDT ALIAS    !↲
╞	╞	╞	!----------------!-----------------------↲
╞	╞	╞	!╞	       ! 40 Debug Monitor GDT↲
╞	╞	╞	!╞	       ! entries↲
╞	╞	╞	!╞	       !↲
╞	╞	╞	 ╞	       ↲
╞	╞	╞	╞	       ↲
╞	╞	╞	!                !↲
╞	╞	╞	!----------------!↲
╞	╞	    0110  !  CONFIG DESC.  ! Descriptor for the Mul-↲
╞	╞	╞	!----------------! tibus Configuration Table↲
╞	╞	    0118  ! INT 1 TASK GATE! Task Gate to simulate↲
                        !----------------! Single Step interrupt↲
╞	╞	    0120  ! INT 3 TASK GATE! Task Gate to simulate↲
╞	╞	╞	!----------------! Breakpoint OR INT 3 int.↲
╞	╞	╞	! not used       !↲
╞	╞	╞	!                !↲
                        !----------------!------------------------↲
↲
↲
╞	╞	╞	┆b0┆┆f0┆┆a1┆┆f0┆┆e2┆┆e1┆   ┆a1┆GDT Layout.↲

════════════════════════════════════════════════════════════════════════
↓
╞	╞	    0158  ! KERNEL DATA    ! XENIX 3.2 selectors↲
╞	╞	╞	!----------------!↲
╞	╞	    0160╞	! KERNEL CODE 1  !↲
╞	╞	          !----------------!↲
╞	              0168╞	! KERNEL CODE 2  !↲
╞	╞	╞	!----------------!↲
╞	╞	    0170 ╞	! KERNEL CODE 3  ! not used in XENIX 3.2↲
╞	╞	╞	!----------------!↲
╞	              0178╞	! KERNEL CODE 4  ! not used in XENIX 3.2↲
╞	╞	╞	!----------------!↲
╞	              0180╞	! KERNEL CODE 5  ! not used in XENIX 3.2↲
╞	╞	╞	!----------------!↲
╞	              0188╞	! KERNEL STACK   !↲
╞	╞	╞	!----------------!↲
╞	              0190╞	!   XENIX TSS    ! XENIX 3.2 is only one iAPX↲
╞	╞	╞	!----------------! 286 Task.↲
╞	              0198╞	!   TSS ALIAS    !↲
╞	╞	╞	!----------------!↲
╞	╞	    01A0╞	!  KERNEL WORK   !↲
╞	╞	╞	!----------------!↲
╞	╞	    01A8╞	!  KERNEL WORK   !↲
╞	╞	╞	!----------------!↲
╞	╞	    01B0╞	!  KERNEL WORK   !↲
╞	╞	╞	!----------------!↲
╞	╞	    01B8╞	!  KERNEL WORK   !↲
╞	╞	╞	!----------------!↲
╞	╞	    01C0╞	!  KERNEL WORK   !↲
╞	╞	╞	!----------------!↲
╞	╞	    01C8╞	!  USER LDT      ! XENIX 3.2 USER LDT↲
╞	╞	╞	!----------------!↲
╞	╞	    01D0╞	!  SYS CALL GATE !↲
╞	╞	╞	!----------------!↲
↲
↲
╞	╞	         ┆a1┆GDT Layout Continued.↲

════════════════════════════════════════════════════════════════════════
↓
╞	╞	    01D8╞	!  KERNEL WORK   !↲
╞	╞	╞	!----------------!↲
╞	  ╞	    01E0╞	!  KERNEL WORK   !↲
╞	╞	╞	!----------------!↲
╞	╞	    01E8╞	!  KERNEL WORK   !↲
╞	╞	╞	!----------------!↲
╞	╞	    01F0╞	!  KERNEL WORK   !↲
╞	╞	╞	!----------------!↲
╞	╞	    01F8╞	!  KERNEL WORK   !↲
╞	╞	╞	!----------------!↲
╞	╞	    0200╞	!  MAP WORK      !↲
╞	╞	╞	!----------------!↲
╞	╞	╞	! 10 Dynamically !↲
╞	╞	╞	!  Allocated     !↲
╞	╞	╞	!  entries       !↲
╞	╞	╞	!╞	       !↲
╞	╞	    027F╞	!----------------!↲
↲
↲
╞	╞	 ┆a1┆┆e1┆        ┆a1┆GDT Layout Continued.↲
↲
↲
The Debug Monitor is integrated with XENIX 3.2 in a way so that it ↓
works as a KERNEL Debugger. This means that all interrupt 1 or ↓
interrupt 3 that occur in SYSTEM-mode (privilege level 0) are directed ↓
to the Debug Monitor and all USER-mode interrupt of the same type are ↓
handled by the XENIX Kernel itself. This strategy preserves the ↓
functionality of the XENIX USER-mode debugger, ADB.↲

════════════════════════════════════════════════════════════════════════
↓
         !↲
╞	     !↲
   INT 1 or INT 3  -----------------------> mch.s↲
         !                                    !↲
         !----!  ╞	                   oemsup.s↲
 ╞	     !    !╞	╞	╞	  !↲
         !╞	!       SYSTEM-mode  -------- USER-mode↲
╞	     !╞	!╞	  !╞	╞	  !↲
╞	     !╞	!     DEBUG MONITOR╞	╞	mch.s↲
╞	     !╞	!╞	  !╞	╞	  !↲
╞	     !╞	!-----------!╞	╞	  !↲
╞	     !╞	╞	╞	╞	  ! XENIX Handles TRAP↲
         !↲
↲
↲
             ┆a1┆XENIX 3.2 Interrupt 1 or 3 Handling.↲
↲
↲
The figure above explains what happens in the XENIX 3.2 Kernel when an ↓
interrupt 1 or 3 occur. The interrupt gate in the IDT points to a TRAP ↓
handler in a file called mch.s . This TRAP handler passes control to a ↓
program in a file called oemsup.s . This program finds out whether the ↓
interrupt occured in SYSTEM-mode or not. If true a call to the Debug ↓
Monitor through one of the GDT gates index 118 or 120 hex. is made. ↓
The Debug Monitor compensates for the additional processing since the ↓
TRAP occured and returns direct to the point where the exception came ↓
from. In USER-mode the program in oemsup.s returns transparently to ↓
mch.s and the operating system handles the TRAP.↲
↲
↲
To get into the monitor from the Kernel a routine called "rcmonitor" ↓
is included in the module called "oemsup.s". This routine simply ↓
executes an INT 3 instruction into the Debug Monitor. After one single ↓
step (N command) your back into the suspended program.↲
↓
↓
↓
↓
┆b0┆↓
┆1a┆┆1a┆╞	╞	!----------------!↲
╞	              0180╞	! KERNEL CODE 5  ! not used in XE

OctetView

0x0000…0020 (0,)  00 00 00 00 00 00 00 00 42 05 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0c 4e 00 00 00   ┆        B                   N   ┆
0x0020…0040       00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
0x0040…0047       00 00 00 00 00 00 00                                                                              ┆       ┆
0x0047…0080       Params {
0x0047…0080         04 00 2d 4e 0c 00 06 00 00 00 00 03 01 47 31 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆  -N         G1                 ┆
0x0047…0080         00 00 00 00 00 00 00 00 05 0f 19 23 2d 37 41 46 4b 55 5f 69 73 7d 87 ff 04                        ┆           #-7AFKU_iså   ┆
0x0047…0080       }
0x0080…0083       FormFeed {
0x0080…0083         0c 80 83                                                                                          ┆   ┆
0x0080…0083       }
0x0083…00a0       0a 14 b3 b3 52 43 33 39 20 4d 6f 6e 69 74 6f 72 05 50 61 67 65 20 0b 0d 0a a1 0d 0a 0d            ┆    RC39 Monitor Page        ┆
0x00a0…00c0       0a a1 31 2e 20 20 20 20 20 49 4e 54 52 4f 44 55 43 54 49 4f 4e 2e 0d 0a 0d 0a 0d 0a 54 68 65 20   ┆  1.     INTRODUCTION.      The ┆
0x00c0…00e0       52 43 33 39 20 4d 6f 6e 69 74 6f 72 20 69 73 20 61 20 70 72 6f 67 72 61 6d 20 66 6f 72 20 61 20   ┆RC39 Monitor is a program for a ┆
0x00e0…0100       70 72 6f 63 65 73 73 6f 72 20 6f 66 20 74 68 65 20 49 6e 74 65 6c 20 69 41 50 58 20 32 38 36 20   ┆processor of the Intel iAPX 286 ┆
0x0100…0120       0a 66 61 6d 69 6c 79 20 69 6e 74 65 6e 64 65 64 20 74 6f 20 72 75 6e 20 6f 6e 20 61 20 73 79 73   ┆ family intended to run on a sys┆
0x0120…0140       74 65 6d 20 77 68 69 63 68 20 69 6e 63 6c 75 64 65 73 20 61 74 20 6c 65 61 73 74 20 74 68 65 20   ┆tem which includes at least the ┆
0x0140…0160       0a 66 6f 6c 6c 6f 77 69 6e 67 20 63 6f 6d 80 70 6f 6e 65 6e 74 73 3a 0d 0a 0d 0a 0d 0a 09 2d 20   ┆ following com ponents:       - ┆
0x0160…0180       69 41 50 58 20 32 38 36 20 6d 69 63 72 6f 70 72 6f 63 65 73 73 6f 72 2c 0d 0a 09 2d 20 73 6f 6d   ┆iAPX 286 microprocessor,   - som┆
0x0180…01a0       65 20 50 52 4f 4d 20 74 6f 20 68 6f 6c 64 20 74 68 65 20 4d 6f 6e 69 74 6f 72 20 70 72 6f 67 72   ┆e PROM to hold the Monitor progr┆
0x01a0…01c0       61 6d 2c 0d 0a 09 2d 20 73 6f 6d 65 20 52 41 4d 20 74 6f 20 68 6f 6c 64 20 74 68 65 20 4d 6f 6e   ┆am,   - some RAM to hold the Mon┆
0x01c0…01e0       69 74 6f 72 20 76 61 72 69 61 62 6c 65 73 2c 0d 0a 09 2d 20 61 20 64 69 73 6b 20 28 77 69 6e 63   ┆itor variables,   - a disk (winc┆
0x01e0…0200       68 65 73 74 65 72 20 61 6e 64 2f 6f 72 20 66 6c 6f 70 70 79 29 20 63 6f 6e 74 72 6f 6c 6c 65 72   ┆hester and/or floppy) controller┆
0x0200…0220 (1,)  20 61 6e 64 20 64 72 69 76 65 28 73 29 2c 0d 0a 09 2d 20 61 20 55 53 41 52 54 20 73 75 70 70 6f   ┆ and drive(s),   - a USART suppo┆
0x0220…0240       72 74 69 6e 67 20 61 20 56 2e 32 34 20 73 65 72 69 61 6c 20 63 6f 6d 6d 75 6e 69 63 61 74 69 6f   ┆rting a V.24 serial communicatio┆
0x0240…0260       6e 73 20 69 6e 74 65 72 66 61 63 65 2e 0d 0a 0d 0a 0d 0a 53 65 76 65 72 61 6c 20 76 65 72 73 69   ┆ns interface.      Several versi┆
0x0260…0280       6f 6e 73 20 6f 66 20 74 68 65 20 52 43 33 39 20 4d 6f 6e 69 74 6f 72 20 77 69 6c 6c 20 65 78 69   ┆ons of the RC39 Monitor will exi┆
0x0280…02a0       73 74 20 66 6f 72 20 73 79 73 74 65 6d 73 20 77 68 69 63 68 20 0a 64 69 66 66 65 72 20 77 69 74   ┆st for systems which  differ wit┆
0x02a0…02c0       68 20 72 65 73 70 65 63 74 20 74 6f 20 74 68 65 20 73 70 65 63 69 66 69 63 20 74 79 70 65 20 6f   ┆h respect to the specific type o┆
0x02c0…02e0       66 20 64 69 73 6b 20 63 6f 6e 74 72 6f 6c 6c 65 72 2c 20 55 53 41 52 54 20 6f 72 20 0a 6f 74 68   ┆f disk controller, USART or  oth┆
0x02e0…0300       65 72 20 68 61 72 64 77 61 72 65 20 63 6f 6d 70 6f 6e 65 6e 74 73 2e 0d 0a 0d 0a 0d 0a 41 6e 20   ┆er hardware components.      An ┆
0x0300…0320       a1 6f 70 65 72 61 74 6f 72 20 63 6f 6e 73 6f 6c 65 e1 20 66 6f 72 20 74 68 65 20 52 43 33 39 20   ┆ operator console  for the RC39 ┆
0x0320…0340       4d 6f 6e 69 74 6f 72 20 69 73 20 61 20 74 74 79 2d 63 6f 6d 70 61 74 69 62 6c 65 20 74 65 72 6d   ┆Monitor is a tty-compatible term┆
0x0340…0360       69 6e 61 6c 20 0a 61 74 74 61 63 68 65 64 20 76 69 61 20 74 68 65 20 56 2e 32 34 20 69 6e 74 65   ┆inal  attached via the V.24 inte┆
0x0360…0380       72 66 61 63 65 2e 0d 0a 0d 0a 0d 0a 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 66 61 63 69 6c 69   ┆rface.      The following facili┆
0x0380…03a0       74 69 65 73 20 61 72 65 20 70 72 6f 76 69 64 65 64 20 62 79 20 74 68 65 20 52 43 33 39 20 4d 6f   ┆ties are provided by the RC39 Mo┆
0x03a0…03c0       6e 69 74 6f 72 3a 0d 0a 0d 0a 0d 0a 09 2d 20 84 61 20 44 65 62 75 67 20 4d 6f 6e 69 74 6f 72 2c   ┆nitor:       -  a Debug Monitor,┆
0x03c0…03e0       20 72 75 6e 6e 69 6e 67 20 69 6e 20 74 68 65 20 50 72 6f 74 65 63 74 65 64 20 56 69 72 74 75 61   ┆ running in the Protected Virtua┆
0x03e0…0400       6c 20 41 64 64 72 65 73 73 20 4d 6f 64 65 20 0a 19 86 80 80 6f 6e 6c 79 2c 20 69 6e 74 65 67 72   ┆l Address Mode      only, integr┆
0x0400…0420 (2,)  61 74 65 64 20 77 69 74 68 20 62 6f 74 68 20 74 68 65 20 70 6f 77 65 72 2d 6f 6e 20 73 65 6c 66   ┆ated with both the power-on self┆
0x0420…0440       74 65 73 74 20 70 72 6f 67 72 61 6d 73 20 61 6e 64 20 74 68 65 20 0a 19 86 80 80 58 45 4e 49 58   ┆test programs and the      XENIX┆
0x0440…0460       20 56 65 72 73 69 6f 6e 20 33 2e 32 20 4f 70 65 72 61 74 69 6e 67 20 53 79 73 74 65 6d 2e 20 49   ┆ Version 3.2 Operating System. I┆
0x0460…0480       6e 20 74 68 65 20 6c 61 74 74 65 72 20 63 61 73 65 20 74 68 65 20 0a 19 86 80 80 4d 6f 6e 69 74   ┆n the latter case the      Monit┆
0x0480…04a0       6f 72 20 61 63 74 73 20 61 73 20 61 20 4b 45 52 4e 45 4c 20 44 65 62 75 67 67 65 72 20 77 68 69   ┆or acts as a KERNEL Debugger whi┆
0x04a0…04c0       63 68 20 63 6f 6d 6d 75 6e 69 63 61 74 65 73 20 77 69 74 68 20 61 6e 20 0a 19 86 80 80 6f 70 65   ┆ch communicates with an      ope┆
0x04c0…04e0       72 61 74 6f 72 20 62 79 20 6d 65 61 6e 73 20 6f 66 20 74 68 65 20 6f 70 65 72 61 74 6f 72 20 63   ┆rator by means of the operator c┆
0x04e0…0500       6f 6e 73 6f 6c 65 2c 0d 0a 0d 0a 0d 0a 09 2d 20 84 61 20 64 69 73 6b 20 62 6f 6f 74 20 6c 6f 61   ┆onsole,       -  a disk boot loa┆
0x0500…0520       64 65 72 20 77 68 69 63 68 20 63 61 6e 20 6c 6f 61 64 20 61 20 66 69 6c 65 2c 20 69 6e 20 4d 69   ┆der which can load a file, in Mi┆
0x0520…0540       63 72 6f 73 6f 66 74 20 78 2e 6f 75 74 20 0a 19 86 80 80 53 4d 41 4c 4c 20 6d 6f 64 65 6c 20 66   ┆crosoft x.out      SMALL model f┆
0x0540…0560       6f 72 6d 61 74 2c 20 66 72 6f 6d 20 74 68 65 20 62 6f 6f 74 73 74 72 61 70 20 74 72 61 63 6b 20   ┆ormat, from the bootstrap track ┆
0x0560…0580       6f 66 20 61 20 64 69 73 6b 20 0a 19 86 80 80 28 77 69 6e 63 68 65 73 74 65 72 20 6f 72 20 66 6c   ┆of a disk      (winchester or fl┆
0x0580…05a0       6f 70 70 79 29 20 69 6e 74 6f 20 52 41 4d 2e 0d 0a 0d 0a 0d 0a 8c 83 ec 0a 41 20 75 6e 69 66 69   ┆oppy) into RAM.          A unifi┆
0x05a0…05c0       65 64 20 63 6f 6d 6d 61 6e 64 20 69 6e 74 65 72 66 61 63 65 20 61 6c 6c 6f 77 73 20 61 6c 6c 20   ┆ed command interface allows all ┆
0x05c0…05e0       66 75 6e 63 74 69 6f 6e 73 20 6f 66 20 74 68 65 20 44 65 62 75 67 20 4d 6f 6e 69 74 6f 72 20 0a   ┆functions of the Debug Monitor  ┆
0x05e0…0600       74 6f 20 62 65 20 61 63 74 69 76 61 74 65 64 20 66 72 6f 6d 20 74 68 65 20 6f 70 65 72 61 74 6f   ┆to be activated from the operato┆
0x0600…0620 (3,)  72 20 63 6f 6e 73 6f 6c 65 2e 20 49 6e 20 74 79 70 69 63 61 6c 20 61 70 70 6c 69 63 61 74 69 6f   ┆r console. In typical applicatio┆
0x0620…0640       6e 73 2c 20 74 68 65 20 0a 44 65 62 75 67 20 4d 6f 6e 69 74 6f 72 20 69 73 20 69 6e 74 65 67 72   ┆ns, the  Debug Monitor is integr┆
0x0640…0660       61 74 65 64 20 77 69 74 68 20 68 61 72 64 77 61 72 65 20 73 65 6c 66 74 65 73 74 20 70 72 6f 67   ┆ated with hardware selftest prog┆
0x0660…0680       72 61 6d 73 2c 20 73 6f 20 74 68 61 74 20 69 74 20 0a 77 69 6c 6c 20 62 65 20 70 6f 73 73 69 62   ┆rams, so that it  will be possib┆
0x0680…06a0       6c 65 20 74 6f 20 65 6e 74 65 72 20 74 68 65 20 44 65 62 75 67 20 4d 6f 6e 69 74 6f 72 20 66 72   ┆le to enter the Debug Monitor fr┆
0x06a0…06c0       6f 6d 20 74 68 65 20 73 65 6c 66 74 65 73 74 20 61 6e 64 20 74 6f 20 0a 72 65 74 75 72 6e 20 61   ┆om the selftest and to  return a┆
0x06c0…06e0       6c 73 6f 2e 0d 0a 0d 0a 0d 0a 54 68 65 20 70 72 69 6d 61 72 79 20 75 73 65 20 6f 66 20 74 68 65   ┆lso.      The primary use of the┆
0x06e0…0700       20 52 43 33 39 20 4d 6f 6e 69 74 6f 72 20 6c 69 65 73 20 69 6e 20 74 68 65 20 61 72 65 61 20 6f   ┆ RC39 Monitor lies in the area o┆
0x0700…0720       66 20 74 65 73 74 69 6e 67 20 61 6e 64 20 0a 64 65 62 75 67 67 69 6e 67 20 6c 6f 77 2d 6c 65 76   ┆f testing and  debugging low-lev┆
0x0720…0740       65 6c 20 70 72 6f 67 72 61 6d 73 2e 20 54 68 65 20 44 65 62 75 67 20 4d 6f 6e 69 74 6f 72 20 77   ┆el programs. The Debug Monitor w┆
0x0740…0760       69 6c 6c 2c 20 68 6f 77 65 76 65 72 2c 20 61 6c 73 6f 20 62 65 20 0a 75 73 65 64 20 69 6e 20 70   ┆ill, however, also be  used in p┆
0x0760…0780       72 6f 64 75 63 74 69 6f 6e 20 73 79 73 74 65 6d 73 2c 20 77 68 65 72 65 20 6f 6e 6c 79 20 74 68   ┆roduction systems, where only th┆
0x0780…07a0       65 20 62 6f 6f 74 6c 6f 61 64 65 72 20 77 69 6c 6c 20 62 65 20 63 6f 6d 6d 6f 6e 6c 79 20 0a 75   ┆e bootloader will be commonly  u┆
0x07a0…07c0       73 65 64 2c 20 62 75 74 20 77 68 65 72 65 20 74 68 65 20 6f 74 68 65 72 20 66 65 61 74 75 72 65   ┆sed, but where the other feature┆
0x07c0…07e0       73 20 77 69 6c 6c 20 61 6c 73 6f 20 62 65 20 61 76 61 69 6c 61 62 6c 65 20 66 6f 72 20 73 70 65   ┆s will also be available for spe┆
0x07e0…0800       63 69 61 6c 20 0a 74 65 73 74 73 20 61 6e 64 20 64 69 61 67 6e 6f 73 74 69 63 73 2e 0d 0a 0d 0a   ┆cial  tests and diagnostics.    ┆
0x0800…0820 (4,)  0d 0a 57 68 65 6e 20 74 68 65 20 73 79 73 74 65 6d 20 69 73 20 70 6f 77 65 72 65 64 20 6f 6e 20   ┆  When the system is powered on ┆
0x0820…0840       6f 72 20 72 65 73 65 74 20 74 68 65 20 44 65 62 75 67 20 4d 6f 6e 69 74 6f 72 20 77 69 6c 6c 20   ┆or reset the Debug Monitor will ┆
0x0840…0860       74 65 73 74 20 0a 77 68 65 74 68 65 72 20 6f 72 20 6e 6f 74 20 61 6e 20 6f 70 65 72 61 74 6f 72   ┆test  whether or not an operator┆
0x0860…0880       20 63 6f 6e 73 6f 6c 65 20 69 73 20 70 72 65 73 65 6e 74 20 62 79 20 69 6e 73 70 65 63 74 69 6e   ┆ console is present by inspectin┆
0x0880…08a0       67 20 56 2e 32 34 20 73 74 61 74 75 73 20 0a 73 69 67 6e 61 6c 73 2e 20 49 66 20 74 68 65 20 73   ┆g V.24 status  signals. If the s┆
0x08a0…08c0       74 61 74 75 73 20 73 69 67 6e 61 6c 20 69 6e 64 69 63 61 74 65 20 63 6f 6e 73 6f 6c 65 20 70 72   ┆tatus signal indicate console pr┆
0x08c0…08e0       65 73 65 6e 74 20 74 68 65 20 44 65 62 75 67 20 0a 4d 6f 6e 69 74 6f 72 20 77 69 6c 6c 20 70 72   ┆esent the Debug  Monitor will pr┆
0x08e0…0900       6f 6d 70 74 20 74 68 65 20 6f 70 65 72 61 74 6f 72 20 66 6f 72 20 61 20 63 6f 6d 6d 61 6e 64 2c   ┆ompt the operator for a command,┆
0x0900…0920       20 6f 74 68 65 72 77 69 73 65 20 69 74 20 77 69 6c 6c 20 0a 65 78 65 63 75 74 65 20 61 20 6c 6f   ┆ otherwise it will  execute a lo┆
0x0920…0940       61 64 2d 61 6e 64 2d 67 6f 20 63 6f 6d 6d 61 6e 64 20 75 73 69 6e 67 20 74 68 65 20 64 65 66 61   ┆ad-and-go command using the defa┆
0x0940…0960       75 6c 74 20 64 69 73 6b 20 6d 65 64 69 75 6d 2e 20 54 68 75 73 20 74 68 65 20 0a 62 6f 6f 74 6c   ┆ult disk medium. Thus the  bootl┆
0x0960…0980       6f 61 64 65 72 20 77 69 6c 6c 20 77 6f 72 6b 2c 20 61 6c 73 6f 20 77 68 65 6e 20 6e 6f 20 6f 70   ┆oader will work, also when no op┆
0x0980…09a0       65 72 61 74 6f 72 20 63 6f 6e 73 6f 6c 65 20 69 73 20 70 72 65 73 65 6e 74 2e 0d 0a 0d 0a 0d 0a   ┆erator console is present.      ┆
0x09a0…09c0       49 6e 20 74 68 65 20 6f 70 65 72 61 74 6f 72 20 63 6f 6e 73 6f 6c 65 20 64 69 61 6c 6f 67 75 65   ┆In the operator console dialogue┆
0x09c0…09e0       20 37 2d 62 69 74 20 41 53 43 49 49 2d 63 6f 64 65 20 69 73 20 75 73 65 64 2e 20 54 68 65 20 68   ┆ 7-bit ASCII-code is used. The h┆
0x09e0…0a00       69 67 68 20 0a 6f 72 64 65 72 20 62 69 74 20 6f 66 20 63 68 61 72 61 63 74 65 72 73 20 74 72 61   ┆igh  order bit of characters tra┆
0x0a00…0a20 (5,)  6e 73 6d 69 74 74 65 64 20 74 6f 20 74 68 65 20 63 6f 6e 73 6f 6c 65 20 69 73 20 30 2c 20 61 6e   ┆nsmitted to the console is 0, an┆
0x0a20…0a40       64 20 74 68 65 20 68 69 67 68 20 0a 6f 72 64 65 72 20 62 69 74 20 6f 66 20 72 65 63 65 69 76 65   ┆d the high  order bit of receive┆
0x0a40…0a5a       64 20 63 68 61 72 61 63 74 65 72 73 20 69 73 20 69 67 6e 6f 72 65 64 2e 0d 0a                     ┆d characters is ignored.  ┆
0x0a5a…0a5d       FormFeed {
0x0a5a…0a5d         0c 82 ac                                                                                          ┆   ┆
0x0a5a…0a5d       }
0x0a5d…0a60       0a a1 32                                                                                          ┆  2┆
0x0a60…0a80       2e 20 20 20 20 20 54 48 45 20 44 45 42 55 47 20 4d 4f 4e 49 54 4f 52 2e 0d 0a 0d 0a 0d 0a 54 68   ┆.     THE DEBUG MONITOR.      Th┆
0x0a80…0aa0       65 20 44 65 62 75 67 20 4d 6f 6e 69 74 6f 72 20 61 6c 6c 6f 77 73 20 65 78 65 63 75 74 69 6f 6e   ┆e Debug Monitor allows execution┆
0x0aa0…0ac0       20 61 6e 64 20 6d 6f 6e 69 74 6f 72 69 6e 67 20 6f 66 20 61 20 70 72 6f 67 72 61 6d 20 6c 6f 61   ┆ and monitoring of a program loa┆
0x0ac0…0ae0       64 65 64 20 0a 69 6e 74 6f 20 52 41 4d 2e 20 54 68 65 20 70 72 6f 67 72 61 6d 20 62 65 69 6e 67   ┆ded  into RAM. The program being┆
0x0ae0…0b00       20 6d 6f 6e 69 74 6f 72 65 64 20 69 73 20 63 61 6c 6c 65 64 20 74 68 65 20 a1 74 61 72 67 65 74   ┆ monitored is called the  target┆
0x0b00…0b20       20 70 72 6f 67 72 61 6d e1 20 74 6f 20 0a 64 69 73 74 69 6e 67 75 69 73 68 20 69 74 20 66 72 6f   ┆ program  to  distinguish it fro┆
0x0b20…0b40       6d 20 74 68 65 20 52 43 33 39 20 4d 6f 6e 69 74 6f 72 20 69 74 73 65 6c 66 2e 20 54 68 65 20 6f   ┆m the RC39 Monitor itself. The o┆
0x0b40…0b60       6e 6c 79 20 72 65 73 74 72 69 63 74 69 6f 6e 73 20 74 6f 20 0a 74 68 65 20 74 61 72 67 65 74 20   ┆nly restrictions to  the target ┆
0x0b60…0b80       70 72 6f 67 72 61 6d 20 69 73 20 74 68 61 74 20 69 74 20 6d 75 73 74 20 6e 6f 74 20 6f 76 65 72   ┆program is that it must not over┆
0x0b80…0ba0       77 72 69 74 65 20 74 68 65 20 52 41 4d 20 72 65 73 65 72 76 65 64 20 66 6f 72 20 0a 74 68 65 20   ┆write the RAM reserved for  the ┆
0x0ba0…0bc0       44 65 62 75 67 20 4d 6f 6e 69 74 6f 72 2e 0d 0a 0d 0a 0d 0a 54 68 65 20 44 65 62 75 67 20 4d 6f   ┆Debug Monitor.      The Debug Mo┆
0x0bc0…0be0       6e 69 74 6f 72 20 68 61 73 20 74 77 6f 20 6d 6f 64 65 73 3a 20 a1 63 6f 6d 6d 61 6e 64 20 6d 6f   ┆nitor has two modes:  command mo┆
0x0be0…0c00       64 65 e1 20 61 6e 64 20 a1 74 61 72 67 65 74 20 6d 6f 64 65 e1 2e 20 54 68 65 20 0a 44 65 62 75   ┆de  and  target mode . The  Debu┆
0x0c00…0c20 (6,)  67 20 4d 6f 6e 69 74 6f 72 20 69 73 20 69 6e 20 63 6f 6d 6d 61 6e 64 20 6d 6f 64 65 20 77 68 65   ┆g Monitor is in command mode whe┆
0x0c20…0c40       6e 20 61 20 63 6f 6d 6d 61 6e 64 20 69 73 20 62 65 69 6e 67 20 74 79 70 65 64 20 69 6e 20 6f 72   ┆n a command is being typed in or┆
0x0c40…0c60       20 0a 65 78 65 63 75 74 65 64 20 28 74 68 69 73 20 69 6e 63 6c 75 64 65 73 20 6c 6f 61 64 69 6e   ┆  executed (this includes loadin┆
0x0c60…0c80       67 29 2e 20 54 68 65 20 44 65 62 75 67 20 4d 6f 6e 69 74 6f 72 20 69 73 20 69 6e 20 74 61 72 67   ┆g). The Debug Monitor is in targ┆
0x0c80…0ca0       65 74 20 6d 6f 64 65 20 0a 77 68 65 6e 20 61 20 74 61 72 67 65 74 20 70 72 6f 67 72 61 6d 20 69   ┆et mode  when a target program i┆
0x0ca0…0cc0       73 20 65 78 65 80 63 75 74 69 6e 67 2e 20 41 20 74 72 61 6e 73 69 74 69 6f 6e 20 66 72 6f 6d 20   ┆s exe cuting. A transition from ┆
0x0cc0…0ce0       63 6f 6d 6d 61 6e 64 20 6d 6f 64 65 20 74 6f 20 0a 74 61 72 67 65 74 20 6d 6f 64 65 20 6f 63 63   ┆command mode to  target mode occ┆
0x0ce0…0d00       75 72 73 20 77 68 65 6e 20 63 6f 6e 74 72 6f 6c 20 6f 66 20 74 68 65 20 70 72 6f 63 65 73 73 6f   ┆urs when control of the processo┆
0x0d00…0d20       72 20 69 73 20 74 72 61 6e 73 66 65 72 72 65 64 20 74 6f 20 74 68 65 20 0a 74 61 72 67 65 74 20   ┆r is transferred to the  target ┆
0x0d20…0d40       70 72 6f 67 72 61 6d 20 61 73 20 61 20 72 65 73 75 6c 74 20 6f 66 20 61 20 67 6f 20 63 6f 6d 6d   ┆program as a result of a go comm┆
0x0d40…0d60       61 6e 64 20 28 20 47 28 43 29 28 73 65 6c 3a 6f 66 66 73 65 74 29 28 3b 20 0a 73 65 6c 3a 6f 66   ┆and ( G(C)(sel:offset)(;  sel:of┆
0x0d60…0d80       66 73 65 74 29 20 29 20 6f 72 20 6c 6f 61 64 2d 61 6e 64 2d 67 6f 20 63 6f 6d 6d 61 6e 64 20 28   ┆fset) ) or load-and-go command (┆
0x0d80…0da0       20 4c 28 57 2f 46 29 47 20 29 2e 0d 0a 0d 0a 0d 0a 57 68 69 6c 65 20 69 6e 20 63 6f 6d 6d 61 6e   ┆ L(W/F)G ).      While in comman┆
0x0da0…0dc0       64 20 6d 6f 64 65 20 74 68 65 20 44 65 62 75 67 20 4d 6f 6e 69 74 6f 72 20 6b 65 65 70 73 20 65   ┆d mode the Debug Monitor keeps e┆
0x0dc0…0de0       78 74 65 72 6e 61 6c 20 69 6e 74 65 72 72 75 70 74 73 20 0a 64 69 73 61 62 6c 65 64 20 69 6e 20   ┆xternal interrupts  disabled in ┆
0x0de0…0e00       6f 72 64 65 72 20 74 6f 20 65 78 63 6c 75 64 65 20 74 68 65 20 65 78 65 63 75 74 69 6f 6e 20 6f   ┆order to exclude the execution o┆
0x0e00…0e20 (7,)  66 20 61 6e 79 20 70 61 72 74 20 6f 66 20 61 20 6c 6f 61 64 65 64 20 0a 74 61 72 67 65 74 20 70   ┆f any part of a loaded  target p┆
0x0e20…0e40       72 6f 67 72 61 6d 2e 20 54 68 75 73 20 74 68 65 20 63 6f 6e 74 65 6e 74 73 20 6f 66 20 52 41 4d   ┆rogram. Thus the contents of RAM┆
0x0e40…0e60       20 77 69 6c 6c 20 63 68 61 6e 67 65 20 6f 6e 6c 79 20 75 6e 64 65 72 20 63 6f 6d 6d 61 6e 64 20   ┆ will change only under command ┆
0x0e60…0e80       0a 63 6f 6e 74 72 6f 6c 2e 0d 0a 0d 0a 0d 0a 57 68 65 6e 20 74 68 65 20 73 79 73 74 65 6d 20 69   ┆ control.      When the system i┆
0x0e80…0ea0       73 20 70 6f 77 65 72 65 64 20 6f 6e 20 6f 72 20 72 65 73 65 74 20 74 68 65 20 44 65 62 75 67 20   ┆s powered on or reset the Debug ┆
0x0ea0…0ec0       4d 6f 6e 69 74 6f 72 20 77 69 6c 6c 20 65 6e 74 65 72 20 0a 63 6f 6d 6d 61 6e 64 20 6d 6f 64 65   ┆Monitor will enter  command mode┆
0x0ec0…0ee0       2c 20 70 6f 73 73 69 62 6c 79 20 61 66 74 65 72 20 65 78 65 63 75 74 69 6f 6e 20 6f 66 20 61 20   ┆, possibly after execution of a ┆
0x0ee0…0f00       68 61 72 64 77 61 72 65 20 73 65 6c 66 74 65 73 74 20 70 72 6f 67 72 61 6d 2e 0d 0a 0d 0a 0d 0a   ┆hardware selftest program.      ┆
0x0f00…0f20       41 20 74 72 61 6e 73 69 74 69 6f 6e 20 66 72 6f 6d 20 74 61 72 67 65 74 20 6d 6f 64 65 20 74 6f   ┆A transition from target mode to┆
0x0f20…0f40       20 63 6f 6d 6d 61 6e 64 20 6d 6f 64 65 2c 20 69 2e 65 2e 20 61 6e 20 61 63 74 69 76 61 74 69 6f   ┆ command mode, i.e. an activatio┆
0x0f40…0f60       6e 20 6f 66 20 0a 74 68 65 20 44 65 62 75 67 20 4d 6f 6e 69 74 6f 72 2c 20 74 61 6b 65 73 20 70   ┆n of  the Debug Monitor, takes p┆
0x0f60…0f80       6c 61 63 65 20 69 6e 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 73 69 74 75 61 74 69 6f 6e 73   ┆lace in the following situations┆
0x0f80…0fa0       3a 0d 0a 0d 0a 0d 0a 31 2e 09 84 84 41 20 62 72 65 61 6b 70 6f 69 6e 74 20 74 72 61 70 20 69 73   ┆:      1.   A breakpoint trap is┆
0x0fa0…0fc0       20 65 6e 63 6f 75 6e 74 65 72 65 64 20 64 75 72 69 6e 67 20 74 68 65 20 65 78 65 63 75 74 69 6f   ┆ encountered during the executio┆
0x0fc0…0fe0       6e 20 6f 66 20 61 20 74 61 72 67 65 74 20 0a 19 84 80 80 70 72 6f 67 72 61 6d 2e 0d 0a 0d 0a 0d   ┆n of a target      program.     ┆
0x0fe0…1000       0a 8c 83 bc 0a 32 2e 20 20 84 41 20 73 69 6e 67 6c 65 20 73 74 65 70 20 74 72 61 70 20 69 73 20   ┆     2.   A single step trap is ┆
0x1000…1020 (8,)  65 6e 63 6f 75 6e 74 65 72 65 64 20 64 75 72 69 6e 67 20 74 68 65 20 65 78 65 63 75 74 69 6f 6e   ┆encountered during the execution┆
0x1020…1040       20 6f 66 20 61 20 74 61 72 67 65 74 20 0a 19 84 80 80 70 72 6f 67 72 61 6d 2e 0d 0a 0d 0a 0d 0a   ┆ of a target      program.      ┆
0x1040…1060       33 2e 09 84 41 6e 20 49 4e 54 33 20 69 6e 73 74 72 75 63 74 69 6f 6e 20 69 73 20 65 78 65 63 75   ┆3.  An INT3 instruction is execu┆
0x1060…1080       74 65 64 20 62 79 20 61 20 74 61 72 67 65 74 20 70 72 6f 67 72 61 6d 2e 0d 0a 0d 0a 0d 0a 41 6c   ┆ted by a target program.      Al┆
0x1080…10a0       6c 20 74 68 65 73 65 20 74 72 61 70 73 20 67 65 6e 65 72 61 74 65 73 20 61 20 54 41 53 4b 20 53   ┆l these traps generates a TASK S┆
0x10a0…10c0       57 49 54 43 48 20 69 6e 74 6f 20 74 68 65 20 44 65 62 75 67 20 4d 6f 6e 69 74 6f 72 2e 20 54 68   ┆WITCH into the Debug Monitor. Th┆
0x10c0…10e0       65 20 0a 44 65 62 75 67 20 4d 6f 6e 69 74 6f 72 20 77 69 6c 6c 20 62 65 20 61 62 6c 65 20 74 6f   ┆e  Debug Monitor will be able to┆
0x10e0…1100       20 63 68 61 6e 67 65 20 74 68 65 20 74 61 72 67 65 74 20 70 72 6f 67 72 61 6d 20 63 6f 6e 74 65   ┆ change the target program conte┆
0x1100…1120       78 74 20 0a 28 72 65 67 69 73 74 65 72 73 20 61 6e 64 20 76 61 72 69 61 62 6c 65 73 29 20 62 79   ┆xt  (registers and variables) by┆
0x1120…1140       20 62 61 63 6b 74 72 61 63 6b 69 6e 67 20 74 6f 20 74 68 65 20 73 75 73 70 65 6e 64 65 64 20 74   ┆ backtracking to the suspended t┆
0x1140…1160       61 72 67 65 74 20 54 61 73 6b 20 0a 53 74 61 74 65 20 53 65 67 6d 65 6e 74 20 28 54 53 53 29 20   ┆arget Task  State Segment (TSS) ┆
0x1160…1180       61 6e 64 20 65 76 65 6e 20 66 75 72 74 68 65 72 2e 0d 0a 0d 0a 0d 0a 55 70 20 74 6f 20 65 69 67   ┆and even further.      Up to eig┆
0x1180…11a0       68 74 20 62 72 65 61 6b 70 6f 69 6e 74 73 20 63 61 6e 20 62 65 20 73 65 74 20 69 6e 20 74 68 65   ┆ht breakpoints can be set in the┆
0x11a0…11c0       20 75 73 65 72 20 70 72 6f 67 72 61 6d 20 62 79 20 6d 65 61 6e 73 20 6f 66 20 74 68 65 20 0a 73   ┆ user program by means of the  s┆
0x11c0…11e0       65 74 20 62 72 65 61 6b 70 6f 69 6e 74 20 63 6f 6d 6d 61 6e 64 20 28 20 42 28 62 70 5f 6e 6f 20   ┆et breakpoint command ( B(bp_no ┆
0x11e0…1200       73 65 6c 3a 6f 66 66 73 65 74 29 20 29 2e 20 41 20 62 72 65 61 6b 70 6f 69 6e 74 20 6d 75 73 74   ┆sel:offset) ). A breakpoint must┆
0x1200…1220 (9,)  20 62 65 20 0a 6c 6f 63 61 74 65 64 20 61 74 20 74 68 65 20 66 69 72 73 74 20 62 79 74 65 20 6f   ┆ be  located at the first byte o┆
0x1220…1240       66 20 61 6e 20 69 6e 73 74 72 75 63 74 69 6f 6e 2e 20 42 72 65 61 6b 80 70 6f 69 6e 74 73 20 77   ┆f an instruction. Break points w┆
0x1240…1260       6f 72 6b 20 0a 74 72 61 6e 73 70 61 72 65 6e 74 6c 79 2c 20 69 2e 65 2e 20 66 6f 6c 6c 6f 77 69   ┆ork  transparently, i.e. followi┆
0x1260…1280       6e 67 20 61 20 62 72 65 61 6b 20 65 78 65 63 75 74 69 6f 6e 20 6f 66 20 74 68 65 20 70 72 6f 67   ┆ng a break execution of the prog┆
0x1280…12a0       72 61 6d 20 6d 61 79 20 62 65 20 0a 72 65 73 75 6d 65 64 20 73 69 6d 70 6c 79 20 62 79 20 67 69   ┆ram may be  resumed simply by gi┆
0x12a0…12c0       76 69 6e 67 20 61 20 67 6f 20 63 6f 6d 6d 61 6e 64 2e 20 4f 6e 63 65 20 73 65 74 2c 20 61 20 62   ┆ving a go command. Once set, a b┆
0x12c0…12e0       72 65 61 6b 70 6f 69 6e 74 20 72 65 6d 61 69 6e 73 20 0a 75 6e 74 69 6c 20 72 65 64 65 66 69 6e   ┆reakpoint remains  until redefin┆
0x12e0…1300       65 64 20 62 79 20 61 20 6e 65 77 20 73 65 74 20 62 72 65 61 6b 70 6f 69 6e 74 20 63 6f 6d 6d 61   ┆ed by a new set breakpoint comma┆
0x1300…1320       6e 64 20 6f 72 20 65 78 70 6c 69 63 69 74 6c 79 20 64 65 6c 65 74 65 64 20 0a 62 79 20 65 69 74   ┆nd or explicitly deleted  by eit┆
0x1320…1340       68 65 72 20 74 68 65 20 63 6c 65 61 72 20 62 72 65 61 6b 70 6f 69 6e 74 20 63 6f 6d 6d 61 6e 64   ┆her the clear breakpoint command┆
0x1340…1360       20 28 20 43 28 62 70 5f 6e 6f 29 20 29 20 6f 72 20 74 68 65 20 67 6f 20 61 6e 64 20 63 6c 65 61   ┆ ( C(bp_no) ) or the go and clea┆
0x1360…1380       72 20 0a 61 6c 6c 20 62 72 65 61 63 6b 70 6f 69 6e 74 73 20 63 6f 6d 6d 61 6e 64 20 28 20 47 43   ┆r  all breackpoints command ( GC┆
0x1380…13a0       20 28 73 65 6c 3a 6f 66 66 73 65 74 29 28 3b 20 73 65 6c 3a 6f 66 66 73 65 74 29 20 29 2e 0d 0a   ┆ (sel:offset)(; sel:offset) ).  ┆
0x13a0…13c0       0d 0a 0d 0a 54 68 65 20 54 61 73 6b 20 53 74 61 74 65 20 53 65 67 6d 65 6e 74 20 28 54 53 53 20   ┆    The Task State Segment (TSS ┆
0x13c0…13e0       6f 72 20 43 6f 6e 74 65 78 74 29 20 6f 66 20 74 68 65 20 74 61 72 67 65 74 20 70 72 6f 67 72 61   ┆or Context) of the target progra┆
0x13e0…1400       6d 20 6d 61 79 20 62 65 20 0a 6d 6f 64 69 66 69 65 64 20 62 79 20 61 6e 20 28 20 52 28 72 65 67   ┆m may be  modified by an ( R(reg┆
0x1400…1420 (10,) 2d 73 70 65 63 29 29 20 63 6f 6d 6d 61 6e 64 2e 20 57 68 65 6e 20 74 68 65 20 74 72 61 6e 73 69   ┆-spec)) command. When the transi┆
0x1420…1440       74 69 6f 6e 20 66 72 6f 6d 20 63 6f 6d 6d 61 6e 64 20 0a 74 6f 20 75 73 65 72 20 6d 6f 64 65 20   ┆tion from command  to user mode ┆
0x1440…1460       69 73 20 6d 61 64 65 20 28 20 47 28 43 29 20 28 73 65 6c 3a 6f 66 66 73 65 74 29 28 3b 20 73 65   ┆is made ( G(C) (sel:offset)(; se┆
0x1460…1480       6c 3a 6f 66 66 73 65 74 29 20 29 20 74 68 65 20 70 72 6f 63 65 73 73 6f 72 20 0a 72 65 67 69 73   ┆l:offset) ) the processor  regis┆
0x1480…14a0       74 65 72 73 20 61 72 65 20 75 70 64 61 74 65 64 20 66 72 6f 6d 20 74 68 65 20 6d 6f 64 69 66 69   ┆ters are updated from the modifi┆
0x14a0…14c0       65 64 20 54 53 53 2e 0d 0a 0d 0a 0d 0a 49 6e 20 61 64 64 69 74 69 6f 6e 20 74 6f 20 62 72 65 61   ┆ed TSS.      In addition to brea┆
0x14c0…14e0       6b 70 6f 69 6e 74 20 68 61 6e 64 6c 69 6e 67 20 74 68 65 20 44 65 62 75 67 20 4d 6f 6e 69 74 6f   ┆kpoint handling the Debug Monito┆
0x14e0…1500       72 20 63 61 6e 20 62 65 20 75 73 65 64 20 74 6f 20 0a 69 6e 73 70 65 63 74 20 61 6e 64 20 6d 6f   ┆r can be used to  inspect and mo┆
0x1500…1520       64 69 66 79 20 52 41 4d 2c 20 50 72 6f 74 65 63 74 69 6f 6e 20 54 61 62 6c 65 73 2c 20 53 65 67   ┆dify RAM, Protection Tables, Seg┆
0x1520…1540       6d 65 6e 74 20 44 65 73 63 72 69 70 74 6f 72 73 2c 20 53 79 73 74 65 6d 20 0a 44 65 73 63 72 69   ┆ment Descriptors, System  Descri┆
0x1540…1560       70 74 6f 72 73 20 61 6e 64 20 74 6f 20 72 65 61 64 20 74 6f 20 6f 72 20 77 72 69 74 65 20 66 72   ┆ptors and to read to or write fr┆
0x1560…1580       6f 6d 20 73 70 65 63 69 66 69 65 64 20 49 2f 4f 20 70 6f 72 74 73 2e 20 46 6f 72 20 0a 64 65 74   ┆om specified I/O ports. For  det┆
0x1580…159d       61 69 6c 73 2c 20 73 65 65 20 74 68 65 20 6e 65 78 74 20 63 68 61 70 74 65 72 2e 0d 0a            ┆ails, see the next chapter.  ┆
0x159d…15a0       FormFeed {
0x159d…15a0         0c 83 8c                                                                                          ┆   ┆
0x159d…15a0       }
0x15a0…15c0       0a a1 32 2e 31 20 20 20 20 69 41 50 58 20 32 38 36 20 50 72 6f 74 65 63 74 69 6f 6e 20 4d 65 63   ┆  2.1    iAPX 286 Protection Mec┆
0x15c0…15e0       68 61 6e 69 73 6d 73 2e 0d 0a 0d 0a 0d 0a 54 68 65 20 62 61 73 69 63 20 65 6e 74 69 74 79 20 69   ┆hanisms.      The basic entity i┆
0x15e0…1600       6e 20 61 6e 20 69 41 50 58 20 32 38 36 20 73 79 73 74 65 6d 20 69 73 20 74 68 65 20 a1 53 65 67   ┆n an iAPX 286 system is the  Seg┆
0x1600…1620 (11,) 6d 65 6e 74 e1 2e 20 41 20 73 65 67 6d 65 6e 74 20 69 73 20 0a 61 20 63 6f 6e 74 69 67 6f 75 73   ┆ment . A segment is  a contigous┆
0x1620…1640       20 70 61 72 74 20 6f 66 20 76 69 72 74 75 61 6c 20 6d 65 6d 6f 72 79 20 75 73 65 64 20 74 6f 20   ┆ part of virtual memory used to ┆
0x1640…1660       68 6f 6c 64 20 65 69 74 68 65 72 20 43 4f 44 45 20 28 54 45 58 54 29 20 6f 72 20 0a 44 41 54 41   ┆hold either CODE (TEXT) or  DATA┆
0x1660…1680       2e 20 53 65 67 6d 65 6e 74 73 20 61 72 65 20 6f 66 20 76 61 72 69 61 62 6c 65 20 73 69 7a 65 2c   ┆. Segments are of variable size,┆
0x1680…16a0       20 72 61 6e 67 69 6e 67 20 66 72 6f 6d 20 61 73 20 73 6d 61 6c 6c 20 61 73 20 61 20 73 69 6e 67   ┆ ranging from as small as a sing┆
0x16a0…16c0       6c 65 20 0a 62 79 74 65 20 74 6f 20 61 73 20 6c 61 72 67 65 20 61 73 20 36 34 20 4b 20 62 79 74   ┆le  byte to as large as 64 K byt┆
0x16c0…16e0       65 2e 20 41 6c 6c 74 68 6f 75 67 68 20 74 68 65 20 69 41 50 58 20 32 38 36 20 70 72 6f 63 65 73   ┆e. Allthough the iAPX 286 proces┆
0x16e0…1700       73 6f 72 20 0a 73 75 70 70 6f 72 74 73 20 61 20 76 69 72 74 75 61 6c 20 61 64 64 72 65 73 73 20   ┆sor  supports a virtual address ┆
0x1700…1720       72 61 6e 67 65 20 6f 66 20 31 20 47 69 67 61 20 62 79 74 65 20 61 6e 64 20 61 20 70 68 79 73 69   ┆range of 1 Giga byte and a physi┆
0x1720…1740       63 61 6c 20 61 64 64 72 65 73 73 20 0a 72 61 6e 67 65 20 6f 66 20 31 36 20 4d 65 67 61 20 62 79   ┆cal address  range of 16 Mega by┆
0x1740…1760       74 65 2c 20 6f 6e 6c 79 20 34 20 73 65 67 6d 65 6e 74 20 6d 61 79 20 62 65 20 61 64 64 72 65 73   ┆te, only 4 segment may be addres┆
0x1760…1780       73 65 64 20 61 74 20 74 68 65 20 73 61 6d 65 20 0a 74 69 6d 65 2e 20 54 68 65 20 43 53 20 72 65   ┆sed at the same  time. The CS re┆
0x1780…17a0       67 69 73 74 65 72 20 69 73 20 75 73 65 64 20 74 6f 20 61 64 64 72 65 73 73 20 74 68 65 20 63 75   ┆gister is used to address the cu┆
0x17a0…17c0       72 72 65 6e 74 20 43 4f 44 45 20 28 54 45 58 54 29 20 0a 73 65 67 6d 65 6e 74 2c 20 61 6e 64 20   ┆rrent CODE (TEXT)  segment, and ┆
0x17c0…17e0       44 53 2c 20 53 53 20 61 6e 64 20 45 53 20 6d 61 79 20 62 65 20 75 73 65 64 20 74 6f 20 61 64 64   ┆DS, SS and ES may be used to add┆
0x17e0…1800       72 65 73 73 20 76 61 72 69 6f 75 73 20 74 79 70 65 73 20 6f 66 20 0a 44 41 54 41 2e 20 54 68 65   ┆ress various types of  DATA. The┆
0x1800…1820 (12,) 20 73 65 67 6d 65 6e 74 20 69 73 20 61 63 63 65 73 73 65 64 20 69 6e 64 69 72 65 63 6c 79 20 74   ┆ segment is accessed indirecly t┆
0x1820…1840       68 72 6f 75 67 68 20 61 20 a1 53 65 67 6d 65 6e 74 20 44 65 73 63 72 69 70 74 6f 72 e1 20 0a 77   ┆hrough a  Segment Descriptor   w┆
0x1840…1860       68 69 63 68 20 72 65 73 69 64 65 20 69 6e 20 61 20 73 70 65 63 69 66 69 63 20 a1 53 65 67 6d 65   ┆hich reside in a specific  Segme┆
0x1860…1880       6e 74 20 44 65 73 63 72 69 70 74 6f 72 20 54 61 62 6c 65 e1 2e 20 54 77 6f 20 6b 69 6e 64 73 20   ┆nt Descriptor Table . Two kinds ┆
0x1880…18a0       6f 66 20 0a 73 65 67 6d 65 6e 74 20 64 65 73 63 72 69 70 74 6f 72 20 74 61 62 6c 65 73 20 65 78   ┆of  segment descriptor tables ex┆
0x18a0…18c0       69 73 74 73 2c 20 74 68 65 20 47 6c 6f 62 61 6c 20 44 65 73 63 72 69 70 74 6f 72 20 54 61 62 6c   ┆ists, the Global Descriptor Tabl┆
0x18c0…18e0       65 20 28 47 44 54 29 20 0a 75 73 65 64 20 74 6f 20 68 6f 6c 64 20 73 65 67 6d 65 6e 74 20 64 65   ┆e (GDT)  used to hold segment de┆
0x18e0…1900       73 63 72 69 70 74 6f 72 73 20 73 68 61 72 65 64 20 62 79 20 73 65 76 65 72 61 6c 20 75 73 65 72   ┆scriptors shared by several user┆
0x1900…1920       73 20 61 6e 64 20 74 68 65 20 4c 6f 63 61 6c 20 0a 44 65 73 63 72 69 70 74 6f 72 20 54 61 62 6c   ┆s and the Local  Descriptor Tabl┆
0x1920…1940       65 20 28 4c 44 54 29 20 75 73 65 64 20 74 6f 20 68 6f 6c 64 20 75 73 65 72 20 73 70 65 63 69 66   ┆e (LDT) used to hold user specif┆
0x1940…1960       69 63 20 73 65 67 6d 65 6e 74 20 64 65 73 63 72 69 70 74 6f 72 73 2e 20 0a 41 20 73 65 67 6d 65   ┆ic segment descriptors.  A segme┆
0x1960…1980       6e 74 20 64 65 73 63 72 69 70 74 6f 72 20 69 73 20 38 20 62 79 74 65 20 6c 6f 6e 67 20 61 73 20   ┆nt descriptor is 8 byte long as ┆
0x1980…19a0       73 68 6f 77 6e 20 62 65 6c 6f 77 2e 0d 0a 0d 0a 0d 0a 09 09 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆shown below.        ------------┆
0x19a0…19c0       2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 09 20 20 20 20 20 20 20 2b 37   ┆--------------------          +7┆
0x19c0…19e0       09 21 20 20 20 20 20 20 20 20 20 72 65 73 65 72 76 65 64 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆ !         reserved             ┆
0x19e0…1a00       21 20 2b 36 0d 0a 09 20 20 20 20 20 20 20 2b 35 20 21 50 21 44 50 4c 21 31 21 54 59 50 45 21 41   ┆! +6          +5 !P!DPL!1!TYPE!A┆
0x1a00…1a20 (13,) 21 20 20 42 41 53 45 20 41 32 33 2d 41 31 36 20 21 20 2b 34 0d 0a 09 20 20 20 20 20 20 20 2b 33   ┆!  BASE A23-A16 ! +4          +3┆
0x1a20…1a40       20 21 20 20 20 20 20 20 20 20 20 42 41 53 45 20 41 31 35 2d 41 30 09 20 21 20 2b 32 0d 0a 09 20   ┆ !         BASE A15-A0  ! +2    ┆
0x1a40…1a60       20 20 20 20 20 20 2b 31 20 21 20 20 20 20 20 20 20 20 20 4c 49 4d 49 54 20 31 35 2d 30 09 20 21   ┆      +1 !         LIMIT 15-0  !┆
0x1a60…1a80       20 30 0d 0a 09 09 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆ 0    --------------------------┆
0x1a80…1aa0       2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 0d 0a 09 09 20 20 20 20 20 20 a1 e1 a1 53 65 67 6d 65 6e 74 20 44   ┆------                 Segment D┆
0x1aa0…1ac0       65 73 63 72 69 70 74 6f 72 2e 0d 0a 0d 0a 0d 0a 54 68 65 20 66 69 72 73 74 20 77 6f 72 64 20 6f   ┆escriptor.      The first word o┆
0x1ac0…1ae0       66 20 74 68 65 20 64 65 73 63 72 69 70 74 6f 72 20 69 73 20 75 73 65 64 20 74 6f 20 68 6f 6c 64   ┆f the descriptor is used to hold┆
0x1ae0…1b00       20 74 68 65 20 73 69 7a 65 20 6f 66 20 74 68 65 20 0a 73 65 67 6d 65 6e 74 20 61 6e 64 20 69 66   ┆ the size of the  segment and if┆
0x1b00…1b20       20 74 68 65 20 70 72 6f 67 72 61 6d 20 6d 61 6b 65 73 20 61 63 63 65 73 73 20 74 6f 20 43 4f 44   ┆ the program makes access to COD┆
0x1b20…1b40       45 20 6f 72 20 44 41 54 41 20 6f 75 74 73 69 64 65 20 74 68 65 20 0a 73 65 67 6d 65 6e 74 20 6c   ┆E or DATA outside the  segment l┆
0x1b40…1b60       69 6d 69 74 20 61 20 74 72 61 70 20 69 73 20 67 65 6e 65 72 61 74 65 64 20 69 6e 74 6f 20 74 68   ┆imit a trap is generated into th┆
0x1b60…1b80       65 20 6f 70 65 72 61 74 69 6e 67 20 73 79 73 74 65 6d 2e 20 42 79 74 65 20 32 2d 34 20 0a 69 73   ┆e operating system. Byte 2-4  is┆
0x1b80…1ba0       20 75 73 65 64 20 74 6f 20 68 6f 6c 64 20 74 68 65 20 70 68 79 73 69 63 61 6c 20 6d 65 6d 6f 72   ┆ used to hold the physical memor┆
0x1ba0…1bc0       79 20 62 61 73 65 20 61 64 64 72 65 73 73 20 6f 66 20 74 68 65 20 73 65 67 6d 65 6e 74 2e 20 42   ┆y base address of the segment. B┆
0x1bc0…1be0       79 74 65 20 35 20 0a 69 73 20 74 68 65 20 a1 41 63 63 65 73 73 20 52 69 67 68 74 20 42 79 74 65   ┆yte 5  is the  Access Right Byte┆
0x1be0…1c00       e1 2e 20 54 68 65 20 50 20 62 69 74 20 69 6e 64 69 63 61 74 65 73 20 77 68 65 74 68 65 72 20 74   ┆ . The P bit indicates whether t┆
0x1c00…1c20 (14,) 68 65 20 73 65 67 6d 65 6e 74 20 69 73 20 0a 70 72 65 73 65 6e 74 20 69 6e 20 70 68 79 73 69 63   ┆he segment is  present in physic┆
0x1c20…1c40       61 6c 20 6d 65 6d 6f 72 79 20 6f 72 20 6e 6f 74 2e 20 54 68 65 20 44 50 4c 20 69 73 20 61 20 74   ┆al memory or not. The DPL is a t┆
0x1c40…1c60       77 6f 20 62 69 74 20 77 69 64 65 20 66 69 65 6c 64 20 0a 67 69 76 69 6e 67 20 74 68 65 20 a1 44   ┆wo bit wide field  giving the  D┆
0x1c60…1c80       65 73 63 72 69 70 74 6f 72 20 50 72 69 76 65 6c 65 67 65 20 4c 65 76 65 6c e1 2e 20 50 72 69 76   ┆escriptor Privelege Level . Priv┆
0x1c80…1ca0       69 6c 65 67 65 20 6c 65 76 65 6c 73 20 61 72 65 20 75 73 65 64 20 74 6f 20 0a 73 65 70 65 72 61   ┆ilege levels are used to  sepera┆
0x1ca0…1cc0       74 65 20 68 69 67 68 20 71 75 61 6c 69 74 79 20 61 6e 64 20 76 65 72 79 20 74 68 72 75 73 74 65   ┆te high quality and very thruste┆
0x1cc0…1ce0       64 20 43 4f 44 45 20 73 75 63 68 20 61 73 20 74 68 65 20 6f 70 65 72 61 74 69 6e 67 20 0a 8c 83   ┆d CODE such as the operating    ┆
0x1ce0…1d00       c8 0a 73 79 73 74 65 6d 20 6b 65 72 6e 65 6c 20 66 72 6f 6d 20 63 6f 64 65 20 67 65 6e 65 72 61   ┆  system kernel from code genera┆
0x1d00…1d20       74 65 64 20 62 79 20 73 74 75 70 69 64 20 28 73 6f 72 72 79 29 20 61 70 70 6c 69 63 61 74 69 6f   ┆ted by stupid (sorry) applicatio┆
0x1d20…1d40       6e 20 0a 70 72 6f 67 72 61 6d 6d 65 72 73 2e 20 49 6e 20 58 45 4e 49 58 20 56 65 72 73 69 6f 6e   ┆n  programmers. In XENIX Version┆
0x1d40…1d60       20 33 2e 32 20 6f 6e 6c 79 20 74 77 6f 20 6f 66 20 74 68 65 20 66 6f 75 72 20 61 76 61 69 6c 61   ┆ 3.2 only two of the four availa┆
0x1d60…1d80       62 6c 65 20 0a 70 72 69 76 69 6c 65 67 65 20 6c 65 76 65 6c 73 20 61 72 65 20 75 73 65 64 2c 20   ┆ble  privilege levels are used, ┆
0x1d80…1da0       74 68 65 20 6f 70 65 72 61 74 69 6e 67 20 73 79 73 74 65 6d 20 65 78 65 63 75 74 65 73 20 61 74   ┆the operating system executes at┆
0x1da0…1dc0       20 70 72 69 76 69 6c 65 67 65 20 0a 6c 65 76 65 6c 20 30 20 28 53 59 53 54 45 4d 29 20 61 6e 64   ┆ privilege  level 0 (SYSTEM) and┆
0x1dc0…1de0       20 61 70 70 6c 69 63 61 74 69 6f 6e 73 20 65 78 65 63 75 74 65 20 61 20 6c 65 76 65 6c 20 33 20   ┆ applications execute a level 3 ┆
0x1de0…1e00       28 55 53 45 52 29 2e 20 54 68 65 20 33 20 62 69 74 20 0a 77 69 64 65 20 54 59 50 45 20 66 69 65   ┆(USER). The 3 bit  wide TYPE fie┆
0x1e00…1e20 (15,) 6c 64 20 67 69 76 65 73 20 74 68 65 20 73 65 67 6d 65 6e 74 20 61 63 63 65 73 73 20 72 69 67 68   ┆ld gives the segment access righ┆
0x1e20…1e40       74 73 2e 20 46 6f 72 20 43 4f 44 45 20 73 65 67 6d 65 6e 74 73 20 74 68 65 20 0a 70 6f 73 73 69   ┆ts. For CODE segments the  possi┆
0x1e40…1e60       62 69 6c 79 20 6f 66 20 45 78 65 63 75 74 65 20 4f 6e 6c 79 2c 20 45 78 65 63 75 74 65 20 61 6e   ┆bily of Execute Only, Execute an┆
0x1e60…1e80       64 20 52 65 61 64 2c 20 52 65 61 64 20 4f 6e 6c 79 20 6f 72 20 43 6f 6e 66 6f 72 6d 69 6e 67 20   ┆d Read, Read Only or Conforming ┆
0x1e80…1ea0       0a 28 45 78 65 63 75 74 65 20 61 74 20 63 61 6c 6c 65 72 20 70 72 69 76 69 6c 65 67 65 20 6c 65   ┆ (Execute at caller privilege le┆
0x1ea0…1ec0       76 65 6c 29 20 65 78 69 73 74 73 2e 20 46 6f 72 20 44 41 54 41 20 73 65 67 6d 65 6e 74 73 20 74   ┆vel) exists. For DATA segments t┆
0x1ec0…1ee0       68 65 20 0a 65 78 70 61 6e 64 20 64 69 72 65 63 74 69 6f 6e 20 6d 61 79 20 62 65 20 65 69 74 68   ┆he  expand direction may be eith┆
0x1ee0…1f00       65 72 20 65 78 70 61 6e 64 20 75 70 20 28 6c 69 6b 65 20 43 4f 44 45 20 73 65 67 6d 65 6e 74 73   ┆er expand up (like CODE segments┆
0x1f00…1f20       29 20 6f 72 20 65 78 70 61 6e 64 20 0a 64 6f 77 6e 2e 20 41 20 44 41 54 41 20 73 65 67 6d 65 6e   ┆) or expand  down. A DATA segmen┆
0x1f20…1f40       74 20 6d 61 79 20 61 6c 73 6f 20 62 65 20 65 69 74 68 65 72 20 52 65 61 64 20 4f 6e 6c 79 20 6f   ┆t may also be either Read Only o┆
0x1f40…1f60       72 20 62 6f 74 68 20 52 65 61 64 20 61 6e 64 20 0a 57 72 69 74 65 2e 20 54 68 65 20 41 20 62 69   ┆r both Read and  Write. The A bi┆
0x1f60…1f80       74 20 69 73 20 73 65 74 20 77 68 65 6e 65 76 65 72 20 61 20 73 65 67 6d 65 6e 74 20 69 73 20 72   ┆t is set whenever a segment is r┆
0x1f80…1fa0       65 66 65 72 65 6e 63 65 64 2e 20 41 20 73 65 67 6d 65 6e 74 20 0a 64 65 73 63 72 69 70 74 6f 72   ┆eferenced. A segment  descriptor┆
0x1fa0…1fc0       20 69 73 20 61 64 64 72 65 73 73 65 64 20 62 79 20 61 6e 20 69 6e 64 65 78 2e 20 42 69 74 20 32   ┆ is addressed by an index. Bit 2┆
0x1fc0…1fe0       20 6f 66 20 74 68 65 20 69 6e 64 65 78 2c 20 74 68 65 20 a1 54 61 62 6c 65 20 0a 19 80 80 84 49   ┆ of the index, the  Table      I┆
0x1fe0…2000       6e 64 69 63 61 74 6f 72 e1 2c 20 74 65 6c 6c 73 20 77 68 65 74 68 65 72 20 74 68 65 20 64 65 73   ┆ndicator , tells whether the des┆
0x2000…2020 (16,) 63 72 69 70 74 6f 72 20 69 73 20 69 6e 20 74 68 65 20 47 44 54 20 6f 72 20 74 68 65 20 4c 44 54   ┆criptor is in the GDT or the LDT┆
0x2020…2040       20 74 61 62 6c 65 2e 20 0a 42 69 74 20 30 20 61 6e 64 20 62 69 74 20 31 20 6f 66 20 74 68 65 20   ┆ table.  Bit 0 and bit 1 of the ┆
0x2040…2060       69 6e 64 65 78 20 67 69 76 65 73 20 74 68 65 20 a1 52 65 71 75 65 73 74 65 64 20 50 72 69 76 65   ┆index gives the  Requested Prive┆
0x2060…2080       6c 65 67 65 20 4c 65 76 65 6c e1 20 28 74 68 65 20 0a 6c 65 76 65 6c 20 75 70 6f 6e 20 77 68 69   ┆lege Level  (the  level upon whi┆
0x2080…20a0       63 68 20 74 68 65 20 63 61 6c 6c 65 72 20 69 73 20 65 78 65 63 75 74 69 6e 67 29 2e 20 57 68 65   ┆ch the caller is executing). Whe┆
0x20a0…20c0       6e 65 76 65 72 20 61 20 64 65 73 63 72 69 70 74 6f 72 20 69 73 20 0a 61 63 63 65 73 73 65 64 20   ┆never a descriptor is  accessed ┆
0x20c0…20e0       65 78 74 65 6e 73 69 76 65 20 61 63 63 65 73 73 20 63 68 65 63 6b 73 20 73 75 63 68 20 61 73 20   ┆extensive access checks such as ┆
0x20e0…2100       50 72 69 76 69 6c 65 67 65 20 4c 65 76 65 6c 20 43 68 65 63 6b 2c 20 41 63 63 65 73 73 20 0a 52   ┆Privilege Level Check, Access  R┆
0x2100…2120       69 67 68 74 20 43 68 65 63 6b 20 61 6e 64 20 53 65 67 6d 65 6e 74 20 50 72 65 73 65 6e 74 20 43   ┆ight Check and Segment Present C┆
0x2120…2140       68 65 63 6b 20 69 73 20 6d 61 64 65 20 62 79 20 74 68 65 20 69 41 50 58 20 32 38 36 20 0a 70 72   ┆heck is made by the iAPX 286  pr┆
0x2140…2160       6f 63 65 73 73 6f 72 2e 20 49 66 20 61 63 63 65 73 73 20 69 73 20 67 72 61 6e 74 65 64 20 74 68   ┆ocessor. If access is granted th┆
0x2160…2180       65 20 41 20 62 69 74 20 69 73 20 73 65 74 20 61 6e 64 20 70 72 6f 63 65 73 73 69 6e 67 20 0a 63   ┆e A bit is set and processing  c┆
0x2180…21a0       6f 6e 74 69 6e 75 65 73 20 6f 74 68 65 72 77 69 73 65 20 61 20 74 72 61 70 20 69 6e 74 6f 20 74   ┆ontinues otherwise a trap into t┆
0x21a0…21c0       68 65 20 6f 70 65 72 61 74 69 6e 67 20 73 79 73 74 65 6d 20 69 73 20 67 65 6e 65 72 61 74 65 64   ┆he operating system is generated┆
0x21c0…21e0       2e 0d 0a 0d 0a 0d 0a a1 32 2e 32 20 20 41 6c 69 61 73 20 44 65 73 63 72 69 70 74 6f 72 73 2e 0d   ┆.       2.2  Alias Descriptors. ┆
0x21e0…2200       0a 0d 0a 0d 0a 49 6e 20 6f 72 64 65 72 20 74 6f 20 62 65 20 61 62 6c 65 20 74 6f 20 61 63 63 65   ┆     In order to be able to acce┆
0x2200…2220 (17,) 73 73 20 74 68 65 20 61 6c 73 6f 20 70 72 6f 74 65 63 74 65 64 20 70 72 6f 74 65 63 74 69 6f 6e   ┆ss the also protected protection┆
0x2220…2240       20 74 61 62 6c 65 73 20 47 44 54 2c 20 0a 4c 44 54 20 61 6e 64 20 49 44 54 20 61 73 20 64 61 74   ┆ tables GDT,  LDT and IDT as dat┆
0x2240…2260       61 20 73 65 67 6d 65 6e 74 73 20 74 68 65 20 44 65 62 75 67 20 4d 6f 6e 69 74 6f 72 20 61 73 20   ┆a segments the Debug Monitor as ┆
0x2260…2280       77 65 6c 6c 20 61 73 20 74 68 65 20 58 45 4e 49 58 20 0a 6f 70 65 72 61 74 69 6e 67 20 73 79 73   ┆well as the XENIX  operating sys┆
0x2280…22a0       74 65 6d 20 6e 65 65 64 73 20 74 6f 20 75 73 65 20 61 6e 20 61 6c 69 61 73 20 64 65 73 63 72 69   ┆tem needs to use an alias descri┆
0x22a0…22c0       70 74 6f 72 2e 20 41 6e 20 61 6c 69 61 73 20 64 65 73 63 72 69 70 74 6f 72 20 0a 66 6f 72 20 74   ┆ptor. An alias descriptor  for t┆
0x22c0…22e0       68 65 20 47 44 54 20 74 61 62 6c 65 20 66 6f 72 20 69 6e 73 74 61 6e 63 65 20 69 73 20 61 20 53   ┆he GDT table for instance is a S┆
0x22e0…2300       65 67 6d 65 6e 74 20 44 65 73 63 72 69 70 74 6f 72 20 74 68 61 74 20 61 64 64 72 65 73 73 65 73   ┆egment Descriptor that addresses┆
0x2300…2320       20 0a 74 68 65 20 47 44 54 20 74 61 62 6c 65 20 61 73 20 61 20 44 41 54 41 20 73 65 67 6d 65 6e   ┆  the GDT table as a DATA segmen┆
0x2320…2340       74 2e 20 53 65 76 65 72 61 6c 20 63 6f 6e 76 65 6e 74 69 6f 6e 73 20 66 6f 72 20 74 68 65 20 6c   ┆t. Several conventions for the l┆
0x2340…2360       61 79 6f 75 74 20 6f 66 20 0a 74 68 65 20 4c 44 54 20 61 6e 64 20 47 44 54 20 74 61 62 6c 65 73   ┆ayout of  the LDT and GDT tables┆
0x2360…2380       20 65 78 69 73 74 73 2e 20 54 68 65 20 66 69 72 73 74 20 65 6e 74 72 79 20 6f 66 20 74 68 65 20   ┆ exists. The first entry of the ┆
0x2380…23a0       70 72 6f 74 65 63 74 69 6f 6e 20 74 61 62 6c 65 73 20 0a 61 72 65 20 6e 65 76 65 72 20 75 73 65   ┆protection tables  are never use┆
0x23a0…23c0       64 2c 20 69 74 20 69 73 20 66 69 6c 6c 65 64 20 77 69 74 68 20 7a 65 72 6f 65 73 2e 20 54 68 65   ┆d, it is filled with zeroes. The┆
0x23c0…23e0       20 73 65 63 6f 6e 64 20 65 6e 74 72 79 20 6f 66 20 74 68 65 20 47 44 54 20 0a 6f 72 20 4c 44 54   ┆ second entry of the GDT  or LDT┆
0x23e0…2400       20 74 61 62 6c 65 20 69 73 20 61 6e 20 61 6c 69 61 73 20 64 65 73 63 72 69 70 74 6f 72 20 66 6f   ┆ table is an alias descriptor fo┆
0x2400…2420 (18,) 72 20 74 68 65 20 74 61 62 6c 65 20 69 74 73 65 6c 66 20 28 52 2f 57 20 44 41 54 41 29 2e 20 0a   ┆r the table itself (R/W DATA).  ┆
0x2420…2440       54 68 69 73 20 6d 65 61 6e 73 20 74 68 61 74 20 69 66 20 74 68 65 20 44 65 62 75 67 20 4d 6f 6e   ┆This means that if the Debug Mon┆
0x2440…2460       69 74 6f 72 20 77 61 6e 74 73 20 74 6f 20 61 63 63 65 73 73 20 74 68 65 20 47 44 54 20 6f 72 20   ┆itor wants to access the GDT or ┆
0x2460…2480       74 68 65 20 4c 44 54 20 0a 74 61 62 6c 65 20 69 74 20 6d 61 79 20 75 73 65 20 74 68 65 20 61 6c   ┆the LDT  table it may use the al┆
0x2480…24a0       69 61 73 20 64 65 73 63 72 69 70 74 6f 72 20 61 6c 6c 72 65 61 64 79 20 70 72 65 73 65 6e 74 2e   ┆ias descriptor allready present.┆
0x24a0…24c0       20 54 68 65 20 74 68 69 72 64 20 65 6e 74 72 79 20 0a 69 6e 20 74 68 65 20 47 44 54 20 74 61 62   ┆ The third entry  in the GDT tab┆
0x24c0…24e0       6c 65 20 69 73 20 61 6e 20 61 6c 69 61 73 20 74 6f 20 61 63 63 65 73 73 20 74 68 65 20 49 44 54   ┆le is an alias to access the IDT┆
0x24e0…2500       20 74 61 62 6c 65 20 61 73 20 61 20 52 2f 57 20 44 41 54 41 20 0a 73 65 67 6d 65 6e 74 2e 0d 0a   ┆ table as a R/W DATA  segment.  ┆
0x2500…2520       0d 0a 0d 0a 8c 83 bc 0a 48 49 4e 54 21 20 49 66 20 79 6f 75 20 77 61 6e 74 20 74 6f 20 63 68 61   ┆        HINT! If you want to cha┆
0x2520…2540       6e 67 65 20 74 68 65 20 70 72 6f 74 65 63 74 69 6f 6e 20 74 61 62 6c 65 73 20 66 72 6f 6d 20 74   ┆nge the protection tables from t┆
0x2540…2560       68 65 20 44 65 62 75 67 20 0a 4d 6f 6e 69 74 6f 72 20 28 6e 6f 20 63 6f 6d 6d 61 6e 64 73 20 65   ┆he Debug  Monitor (no commands e┆
0x2560…2580       78 69 73 74 73 20 66 6f 72 20 74 68 61 74 29 20 74 68 65 6e 20 79 6f 75 20 73 68 6f 75 6c 64 20   ┆xists for that) then you should ┆
0x2580…25a0       75 73 65 20 74 68 65 20 61 6c 69 61 73 20 0a 64 65 73 63 72 69 70 74 6f 72 73 20 61 6c 6c 72 65   ┆use the alias  descriptors allre┆
0x25a0…25c0       61 64 79 20 74 68 65 72 65 2e 0d 0a 0d 0a 0d 0a a1 32 2e 33 20 20 20 20 20 4d 6f 6e 69 74 6f 72   ┆ady there.       2.3     Monitor┆
0x25c0…25e0       20 45 78 63 65 70 74 69 6f 6e 20 48 61 6e 64 6c 69 6e 67 2e 0d 0a 0d 0a 0d 0a 57 68 65 6e 20 43   ┆ Exception Handling.      When C┆
0x25e0…2600       50 55 20 63 6f 6e 74 72 6f 6c 20 73 77 69 74 63 68 65 73 20 66 72 6f 6d 20 74 61 72 67 65 74 20   ┆PU control switches from target ┆
0x2600…2620 (19,) 6d 6f 64 65 20 74 6f 20 63 6f 6d 6d 61 6e 64 20 6d 6f 64 65 20 74 68 65 20 44 65 62 75 67 20 0a   ┆mode to command mode the Debug  ┆
0x2620…2640       4d 6f 6e 69 74 6f 72 20 73 61 76 65 73 20 74 68 65 20 31 37 20 6c 6f 77 65 73 74 20 74 61 72 67   ┆Monitor saves the 17 lowest targ┆
0x2640…2660       65 74 20 69 6e 74 65 72 72 75 70 74 20 76 65 63 74 6f 72 73 2c 20 61 6e 64 20 6c 6f 61 64 73 20   ┆et interrupt vectors, and loads ┆
0x2660…2680       31 37 20 0a 44 65 62 75 67 20 4d 6f 6e 69 74 6f 72 20 76 65 63 74 6f 72 73 2e 20 54 68 65 73 65   ┆17  Debug Monitor vectors. These┆
0x2680…26a0       20 76 65 63 74 6f 72 73 20 61 72 65 20 75 73 65 64 20 74 6f 20 63 61 74 63 68 20 65 78 63 65 70   ┆ vectors are used to catch excep┆
0x26a0…26c0       74 69 6f 6e 73 20 61 6e 64 20 0a 70 72 6f 74 65 63 74 69 6f 6e 20 76 69 6f 6c 61 74 69 6f 6e 73   ┆tions and  protection violations┆
0x26c0…26e0       20 74 68 61 74 20 6d 69 67 68 74 20 68 61 70 70 65 6e 20 69 6e 20 63 6f 6d 6d 61 6e 64 20 6d 6f   ┆ that might happen in command mo┆
0x26e0…2700       64 65 20 28 69 74 20 69 73 20 66 6f 72 20 0a 69 6e 73 74 61 6e 63 65 20 70 6f 73 73 69 62 6c 65   ┆de (it is for  instance possible┆
0x2700…2720       20 74 6f 20 63 68 61 6e 67 65 20 74 68 65 20 6c 69 6d 69 74 20 6f 72 20 61 63 63 65 73 73 20 72   ┆ to change the limit or access r┆
0x2720…2740       69 67 68 74 73 20 6f 66 20 74 68 65 20 44 65 62 75 67 20 0a 4d 6f 6e 69 74 6f 72 20 69 74 73 65   ┆ights of the Debug  Monitor itse┆
0x2740…2760       6c 66 29 2e 20 54 68 65 20 70 72 6f 74 65 63 74 69 6f 6e 20 76 69 6f 6c 61 74 69 6f 6e 73 20 61   ┆lf). The protection violations a┆
0x2760…2780       6e 64 20 69 6e 73 74 72 75 63 74 69 6f 6e 20 65 78 63 65 70 74 69 6f 6e 73 20 0a 77 69 6c 6c 20   ┆nd instruction exceptions  will ┆
0x2780…27a0       63 61 75 73 65 20 74 68 65 20 44 65 62 75 67 20 4d 6f 6e 69 74 6f 72 20 74 6f 20 77 72 69 74 65   ┆cause the Debug Monitor to write┆
0x27a0…27c0       20 61 20 6d 65 73 73 61 67 65 20 74 6f 20 74 68 65 20 63 6f 6e 73 6f 6c 65 20 61 6e 64 20 74 68   ┆ a message to the console and th┆
0x27c0…27e0       65 6e 20 0a 65 78 65 63 75 74 65 20 61 20 48 41 4c 54 20 69 6e 73 74 72 75 63 74 69 6f 6e 2e 20   ┆en  execute a HALT instruction. ┆
0x27e0…2800       54 68 65 20 6f 6e 6c 79 20 77 61 79 20 74 6f 20 67 65 74 20 6f 75 74 20 6f 66 20 74 68 65 73 65   ┆The only way to get out of these┆
0x2800…2820 (20,) 20 65 78 63 65 70 74 69 6f 6e 73 20 0a 69 73 20 74 6f 20 68 61 72 64 77 61 72 65 20 72 65 73 65   ┆ exceptions  is to hardware rese┆
0x2820…2840       74 20 74 68 65 20 43 50 55 2e 0d 0a 0d 0a 0d 0a a1 56 65 63 74 6f 72 20 74 79 70 65 20 20 20 45   ┆t the CPU.       Vector type   E┆
0x2840…2860       72 72 6f 72 20 54 65 78 74 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆rror Text                       ┆
0x2860…2880       20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 0d 0a 30 20 20 20 20 20 20 20 20 20 20 20 20   ┆                   0            ┆
0x2880…28a0       20 49 6e 74 65 72 72 75 70 74 20 30 20 61 74 20 27 43 53 3a 49 50 27 20 44 69 76 69 64 65 20 42   ┆ Interrupt 0 at 'CS:IP' Divide B┆
0x28a0…28c0       79 20 5a 65 72 6f 0d 0a 09 09 48 41 4c 54 45 44 20 2d 20 48 61 72 64 77 61 72 65 20 52 45 53 45   ┆y Zero    HALTED - Hardware RESE┆
0x28c0…28e0       54 20 72 65 71 75 69 72 65 64 0d 0a 0d 0a 32 09 09 49 6e 74 65 72 72 75 70 74 20 32 20 61 74 20   ┆T required    2  Interrupt 2 at ┆
0x28e0…2900       27 43 53 3a 49 50 27 20 4e 4d 49 0d 0a 09 09 48 41 4c 54 45 44 20 2d 20 48 61 72 64 77 61 72 65   ┆'CS:IP' NMI    HALTED - Hardware┆
0x2900…2920       20 52 45 53 45 54 20 72 65 71 75 69 72 65 64 0d 0a 0d 0a 34 09 09 49 6e 74 65 72 72 75 70 74 20   ┆ RESET required    4  Interrupt ┆
0x2920…2940       34 20 61 74 20 27 43 53 3a 49 50 27 20 4f 76 65 72 66 6c 6f 77 0d 0a 09 09 48 41 4c 54 45 44 20   ┆4 at 'CS:IP' Overflow    HALTED ┆
0x2940…2960       2d 20 48 61 72 64 77 61 72 65 20 52 45 53 45 54 20 72 65 71 75 69 72 65 64 0d 0a 0d 0a 35 09 09   ┆- Hardware RESET required    5  ┆
0x2960…2980       49 6e 74 65 72 72 75 70 74 20 35 20 61 74 20 27 43 53 3a 49 50 27 20 42 6f 75 6e 64 73 20 43 68   ┆Interrupt 5 at 'CS:IP' Bounds Ch┆
0x2980…29a0       65 63 6b 0d 0a 09 09 48 41 4c 54 45 44 20 2d 20 48 61 72 64 77 61 72 65 20 52 45 53 45 54 20 72   ┆eck    HALTED - Hardware RESET r┆
0x29a0…29c0       65 71 75 69 72 65 64 0d 0a 0d 0a 36 09 09 49 6e 74 65 72 72 75 70 74 20 36 20 61 74 20 27 43 53   ┆equired    6  Interrupt 6 at 'CS┆
0x29c0…29e0       3a 49 50 27 20 55 6e 64 65 66 69 6e 65 64 20 4f 70 65 72 61 74 69 6f 6e 0d 0a 09 09 48 41 4c 54   ┆:IP' Undefined Operation    HALT┆
0x29e0…2a00       45 44 20 2d 20 48 61 72 64 77 61 72 65 20 52 45 53 45 54 20 72 65 71 75 69 72 65 64 0d 0a 0d 0a   ┆ED - Hardware RESET required    ┆
0x2a00…2a20 (21,) 37 09 09 49 6e 74 65 72 72 75 70 74 20 37 20 61 74 20 27 43 53 3a 49 50 27 20 44 65 76 69 63 65   ┆7  Interrupt 7 at 'CS:IP' Device┆
0x2a20…2a40       20 4e 6f 74 20 41 76 61 69 6c 61 62 6c 65 0d 0a 09 09 48 41 4c 54 45 44 20 2d 20 48 61 72 64 77   ┆ Not Available    HALTED - Hardw┆
0x2a40…2a60       61 72 65 20 52 45 53 45 54 20 72 65 71 75 69 72 65 64 0d 0a 0d 0a 8c 83 d4 0a 38 09 09 49 6e 74   ┆are RESET required        8  Int┆
0x2a60…2a80       65 72 72 75 70 74 20 38 20 61 74 20 27 43 53 3a 49 50 27 20 44 6f 75 62 6c 65 20 46 61 75 6c 74   ┆errupt 8 at 'CS:IP' Double Fault┆
0x2a80…2aa0       0d 0a 09 09 48 41 4c 54 45 44 20 2d 20 48 61 72 64 77 61 72 65 20 52 45 53 45 54 20 72 65 71 75   ┆    HALTED - Hardware RESET requ┆
0x2aa0…2ac0       69 72 65 64 0d 0a 0d 0a 39 09 09 49 6e 74 65 72 72 75 70 74 20 39 20 61 74 20 27 43 53 3a 49 50   ┆ired    9  Interrupt 9 at 'CS:IP┆
0x2ac0…2ae0       27 20 4d 61 74 68 20 41 64 64 72 65 73 73 20 45 72 72 6f 72 0d 0a 09 09 48 41 4c 54 45 44 20 2d   ┆' Math Address Error    HALTED -┆
0x2ae0…2b00       20 48 61 72 64 77 61 72 65 20 52 45 53 45 54 20 72 65 71 75 69 72 65 64 0d 0a 0d 0a 31 30 09 09   ┆ Hardware RESET required    10  ┆
0x2b00…2b20       49 6e 74 65 72 72 75 70 74 20 31 30 20 61 74 20 27 43 53 3a 49 50 27 20 49 6e 76 61 6c 69 64 20   ┆Interrupt 10 at 'CS:IP' Invalid ┆
0x2b20…2b40       54 61 73 6b 20 53 74 61 74 65 20 53 65 67 6d 65 6e 74 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20   ┆Task State Segment              ┆
0x2b40…2b60       20 20 2d 20 45 43 4f 44 45 20 3d 20 58 58 58 58 0d 0a 09 09 48 41 4c 54 45 44 20 2d 20 48 61 72   ┆  - ECODE = XXXX    HALTED - Har┆
0x2b60…2b80       64 77 61 72 65 20 52 45 53 45 54 20 72 65 71 75 69 72 65 64 0d 0a 0d 0a 31 31 09 09 49 6e 74 65   ┆dware RESET required    11  Inte┆
0x2b80…2ba0       72 72 75 70 74 20 31 31 20 61 74 20 27 43 53 3a 49 50 27 20 4e 6f 74 20 50 72 65 73 65 6e 74 20   ┆rrupt 11 at 'CS:IP' Not Present ┆
0x2ba0…2bc0       2d 20 45 43 4f 44 45 20 3d 20 58 58 58 58 0d 0a 09 09 48 41 4c 54 45 44 20 2d 20 48 61 72 64 77   ┆- ECODE = XXXX    HALTED - Hardw┆
0x2bc0…2be0       61 72 65 20 52 45 53 45 54 20 72 65 71 75 69 72 65 64 0d 0a 0d 0a 31 32 09 09 49 6e 74 65 72 72   ┆are RESET required    12  Interr┆
0x2be0…2c00       75 70 74 20 31 32 20 61 74 20 27 43 53 3a 49 50 27 20 53 74 61 63 6b 20 50 72 6f 74 65 63 74 69   ┆upt 12 at 'CS:IP' Stack Protecti┆
0x2c00…2c20 (22,) 6f 6e 0d 0a 09 09 20 2d 20 45 43 4f 44 45 20 3d 20 58 58 58 58 0d 0a 09 09 48 41 4c 54 45 44 20   ┆on     - ECODE = XXXX    HALTED ┆
0x2c20…2c40       2d 20 48 61 72 64 77 61 72 65 20 52 45 53 45 54 20 72 65 71 75 69 72 65 64 0d 0a 0d 0a 31 33 09   ┆- Hardware RESET required    13 ┆
0x2c40…2c60       09 49 6e 74 65 72 72 75 70 74 20 31 33 20 61 74 20 27 43 53 3a 49 50 27 20 47 65 6e 65 72 61 6c   ┆ Interrupt 13 at 'CS:IP' General┆
0x2c60…2c80       20 50 72 6f 74 65 63 74 69 6f 6e 0d 0a 09 09 2d 20 45 43 4f 44 45 20 3d 20 58 58 58 58 0d 0a 09   ┆ Protection    - ECODE = XXXX   ┆
0x2c80…2ca0       09 48 41 4c 54 45 44 20 2d 20 48 61 72 64 77 61 72 65 20 52 45 53 45 54 20 72 65 71 75 69 72 65   ┆ HALTED - Hardware RESET require┆
0x2ca0…2cc0       64 0d 0a 0d 0a 31 34 09 09 49 6e 74 65 72 72 75 70 74 20 31 34 20 61 74 20 27 43 53 3a 49 50 27   ┆d    14  Interrupt 14 at 'CS:IP'┆
0x2cc0…2ce0       0d 0a 09 09 48 41 4c 54 45 44 20 2d 20 48 61 72 64 77 61 72 65 20 52 45 53 45 54 20 72 65 71 75   ┆    HALTED - Hardware RESET requ┆
0x2ce0…2d00       69 72 65 64 0d 0a 0d 0a 31 35 09 09 49 6e 74 65 72 72 75 70 74 20 31 35 20 61 74 20 27 43 53 3a   ┆ired    15  Interrupt 15 at 'CS:┆
0x2d00…2d20       49 50 27 0d 0a 09 09 48 41 4c 54 45 44 20 2d 20 48 61 72 64 77 61 72 65 20 52 45 53 45 54 20 72   ┆IP'    HALTED - Hardware RESET r┆
0x2d20…2d40       65 71 75 69 72 65 64 0d 0a 0d 0a 31 36 09 09 49 6e 74 65 72 72 75 70 74 20 31 36 20 61 74 20 27   ┆equired    16  Interrupt 16 at '┆
0x2d40…2d60       43 53 3a 49 50 27 20 4d 61 74 68 20 45 72 72 6f 72 0d 0a 09 09 48 41 4c 54 45 44 20 2d 20 48 61   ┆CS:IP' Math Error    HALTED - Ha┆
0x2d60…2d80       72 64 77 61 72 65 20 52 45 53 45 54 20 72 65 71 75 69 72 65 64 0d 0a 0d 0a 0d 0a 54 68 65 20 74   ┆rdware RESET required      The t┆
0x2d80…2da0       65 72 6d 20 27 43 53 3a 49 50 27 20 72 65 66 65 72 73 20 74 6f 20 74 68 65 20 6c 6f 67 69 63 61   ┆erm 'CS:IP' refers to the logica┆
0x2da0…2dc0       6c 20 6c 6f 63 61 74 69 6f 6e 20 69 6e 20 74 68 65 20 70 72 6f 67 72 61 6d 2c 20 77 68 65 72 65   ┆l location in the program, where┆
0x2dc0…2de0       20 0a 74 68 65 20 65 78 63 65 70 74 69 6f 6e 20 63 61 6d 65 2e 20 54 68 65 20 65 72 72 6f 72 63   ┆  the exception came. The errorc┆
0x2de0…2e00       6f 64 65 20 70 75 73 68 65 64 20 6f 6e 74 6f 20 74 68 65 20 73 74 61 63 6b 20 62 79 20 73 6f 6d   ┆ode pushed onto the stack by som┆
0x2e00…2e20 (23,) 65 20 0a 65 78 63 65 70 74 69 6f 6e 73 20 28 45 43 4f 44 45 29 20 6d 61 79 20 62 65 20 68 61 72   ┆e  exceptions (ECODE) may be har┆
0x2e20…2e40       64 20 74 6f 20 64 65 63 6f 64 65 2c 20 61 6e 64 20 6e 6f 20 61 74 74 65 6d 70 74 20 74 6f 20 64   ┆d to decode, and no attempt to d┆
0x2e40…2e60       6f 63 75 6d 65 6e 74 20 0a 74 68 65 6d 20 69 6e 20 74 68 69 73 20 6d 61 6e 75 61 6c 20 77 69 6c   ┆ocument  them in this manual wil┆
0x2e60…2e80       6c 20 62 65 20 64 6f 6e 65 2e 20 43 6f 6e 73 75 6c 74 20 49 4e 54 45 4c 20 6d 61 6e 75 61 6c 73   ┆l be done. Consult INTEL manuals┆
0x2e80…2ea0       20 66 6f 72 20 66 75 72 74 68 65 72 20 0a 64 65 73 63 72 69 70 74 69 6f 6e 20 6f 66 20 74 68 65   ┆ for further  description of the┆
0x2ea0…2ec0       20 65 78 63 65 70 74 69 6f 6e 73 20 61 6e 64 20 74 68 65 69 72 20 65 72 72 6f 72 63 6f 64 65 73   ┆ exceptions and their errorcodes┆
0x2ec0…2ee0       2e 0d 0a 0d 0a 0d 0a 8c 83 c8 0a 50 72 69 6f 72 20 74 6f 20 74 68 65 20 65 78 69 74 20 74 6f 20   ┆.          Prior to the exit to ┆
0x2ee0…2f00       74 61 72 67 65 74 20 6d 6f 64 65 20 74 68 65 20 74 61 72 67 65 74 20 76 65 63 74 6f 72 73 20 61   ┆target mode the target vectors a┆
0x2f00…2f19       72 65 20 6e 61 74 75 72 61 6c 6c 79 20 0a 72 65 73 74 6f 72 65 64 2e 0d 0a                        ┆re naturally  restored.  ┆
0x2f19…2f1c       FormFeed {
0x2f19…2f1c         0c 80 98                                                                                          ┆   ┆
0x2f19…2f1c       }
0x2f1c…2f20       0a a1 33 2e                                                                                       ┆  3.┆
0x2f20…2f40       20 20 20 20 20 4d 4f 4e 49 54 4f 52 20 43 4f 4d 4d 41 4e 44 53 2e 0d 0a 0d 0a 0d 0a 57 68 65 6e   ┆     MONITOR COMMANDS.      When┆
0x2f40…2f60       20 74 68 65 20 4d 6f 6e 69 74 6f 72 20 65 6e 74 65 72 73 20 63 6f 6d 6d 61 6e 64 20 6d 6f 64 65   ┆ the Monitor enters command mode┆
0x2f60…2f80       20 6f 72 20 63 6f 6d 70 6c 65 74 65 73 20 65 78 65 63 75 74 69 6f 6e 20 6f 66 20 61 20 0a 63 6f   ┆ or completes execution of a  co┆
0x2f80…2fa0       6d 6d 61 6e 64 20 77 69 74 68 6f 75 74 20 65 6e 74 65 72 69 6e 67 20 74 61 72 67 65 74 20 6d 6f   ┆mmand without entering target mo┆
0x2fa0…2fc0       64 65 2c 20 69 2e 65 2e 20 77 68 65 6e 65 76 65 72 20 69 74 20 62 65 63 6f 6d 65 73 20 72 65 61   ┆de, i.e. whenever it becomes rea┆
0x2fc0…2fe0       64 79 20 0a 66 6f 72 20 61 20 6e 65 77 20 63 6f 6d 6d 61 6e 64 2c 20 69 74 20 6f 75 74 70 75 74   ┆dy  for a new command, it output┆
0x2fe0…3000       73 20 61 20 27 2e 20 27 20 28 70 65 72 69 6f 64 20 61 6e 64 20 73 70 61 63 65 29 20 61 73 20 61   ┆s a '. ' (period and space) as a┆
0x3000…3020 (24,) 20 70 72 6f 6d 70 74 2e 20 41 20 0a 63 6f 6d 6d 61 6e 64 20 63 61 6e 20 74 68 65 6e 20 62 65 20   ┆ prompt. A  command can then be ┆
0x3020…3040       74 79 70 65 64 20 61 73 20 61 20 73 65 71 75 65 6e 63 65 20 6f 66 20 63 68 61 72 61 63 74 65 72   ┆typed as a sequence of character┆
0x3040…3060       73 20 74 65 72 6d 69 6e 61 74 65 64 20 62 79 20 43 52 2c 20 0a 27 2c 27 20 28 63 6f 6d 6d 61 29   ┆s terminated by CR,  ',' (comma)┆
0x3060…3080       2c 20 6f 72 20 27 5e 27 20 28 75 70 77 61 72 64 20 61 72 72 6f 77 20 68 65 61 64 20 6f 72 20 63   ┆, or '^' (upward arrow head or c┆
0x3080…30a0       69 72 63 75 6d 66 6c 65 78 20 3d 35 45 82 48 65 78 81 29 2e 20 49 74 20 69 73 20 0a 70 6f 73 73   ┆ircumflex =5E Hex ). It is  poss┆
0x30a0…30c0       69 62 6c 65 20 74 6f 20 65 64 69 74 20 74 68 65 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 20 75 73   ┆ible to edit the command line us┆
0x30c0…30e0       69 6e 67 20 62 61 63 6b 73 70 61 63 65 20 6f 72 20 64 65 6c 20 28 72 75 62 6f 75 74 29 20 74 6f   ┆ing backspace or del (rubout) to┆
0x30e0…3100       20 0a 65 72 61 73 65 20 66 61 75 6c 74 79 20 63 68 61 72 61 63 74 65 72 73 20 6f 6e 65 20 61 74   ┆  erase faulty characters one at┆
0x3100…3120       20 61 20 74 69 6d 65 2e 20 4e 6f 20 64 69 73 74 69 6e 63 74 69 6f 6e 20 69 73 20 6d 61 64 65 20   ┆ a time. No distinction is made ┆
0x3120…3140       62 65 74 77 65 65 6e 20 0a 75 70 70 65 72 20 61 6e 64 20 6c 6f 77 65 72 20 63 61 73 65 20 6c 65   ┆between  upper and lower case le┆
0x3140…3160       74 74 65 72 73 20 69 6e 20 74 68 65 20 63 6f 6d 6d 61 6e 64 20 69 6e 70 75 74 2e 0d 0a 0d 0a 0d   ┆tters in the command input.     ┆
0x3160…3180       0a 42 65 66 6f 72 65 20 64 65 74 61 69 6c 73 20 6f 66 20 74 68 65 20 69 6e 64 69 76 69 64 75 61   ┆ Before details of the individua┆
0x3180…31a0       6c 20 63 6f 6d 6d 61 6e 64 73 20 61 72 65 20 67 69 76 65 6e 2c 20 74 68 65 20 76 6f 63 61 62 75   ┆l commands are given, the vocabu┆
0x31a0…31c0       6c 61 72 79 20 6f 66 20 0a 74 68 65 20 63 6f 6d 6d 61 6e 64 20 73 79 6e 74 61 78 20 64 65 66 69   ┆lary of  the command syntax defi┆
0x31c0…31e0       6e 69 74 69 6f 6e 73 20 69 73 20 65 78 70 6c 61 69 6e 65 64 3a 0d 0a 0d 0a 0d 0a 09 2d 20 43 61   ┆nitions is explained:       - Ca┆
0x31e0…3200       70 69 74 61 6c 20 6c 65 74 74 65 72 73 20 6d 75 73 74 20 62 65 20 74 79 70 65 64 20 61 73 20 73   ┆pital letters must be typed as s┆
0x3200…3220 (25,) 68 6f 77 6e 20 28 6f 72 20 69 6e 20 6c 6f 77 65 72 20 63 61 73 65 29 2e 0d 0a 0d 0a 0d 0a 09 2d   ┆hown (or in lower case).       -┆
0x3220…3240       20 50 61 72 65 6e 74 68 65 73 65 73 20 64 65 6c 69 6d 69 74 20 6f 70 74 69 6f 6e 61 6c 20 70 61   ┆ Parentheses delimit optional pa┆
0x3240…3260       72 61 6d 65 74 65 72 73 20 61 6e 64 20 73 68 6f 75 6c 64 20 6e 6f 74 20 62 65 20 74 79 70 65 64   ┆rameters and should not be typed┆
0x3260…3280       2e 0d 0a 0d 0a 0d 0a 09 2d 20 84 53 6c 61 73 68 65 73 20 73 65 70 61 72 61 74 65 20 61 6c 74 65   ┆.       -  Slashes separate alte┆
0x3280…32a0       72 6e 61 74 69 76 65 20 66 6f 72 6d 73 20 6f 66 20 61 20 70 61 72 61 6d 65 74 65 72 20 61 6e 64   ┆rnative forms of a parameter and┆
0x32a0…32c0       20 73 68 6f 75 6c 64 20 6e 6f 74 20 0a 19 86 80 80 62 65 20 74 79 70 65 64 2e 0d 0a 0d 0a 0d 0a   ┆ should not      be typed.      ┆
0x32c0…32e0       09 2d 20 22 62 70 2d 6e 6f 22 20 73 74 61 6e 64 73 20 66 6f 72 20 61 20 62 72 65 61 6b 70 6f 69   ┆ - "bp-no" stands for a breakpoi┆
0x32e0…3300       6e 74 20 6e 75 6d 62 65 72 20 69 6e 20 74 68 65 20 72 61 6e 67 65 20 30 2d 37 2e 0d 0a 0d 0a 0d   ┆nt number in the range 0-7.     ┆
0x3300…3320       0a 09 2d 20 84 22 61 64 64 72 20 74 79 70 65 22 20 73 74 61 6e 64 73 20 66 6f 72 20 61 20 6d 65   ┆  -  "addr type" stands for a me┆
0x3320…3340       6d 6f 72 79 20 61 64 64 72 65 73 73 20 73 70 65 63 69 66 69 65 64 20 61 73 20 65 69 74 68 65 72   ┆mory address specified as either┆
0x3340…3360       20 0a 19 86 80 80 22 73 65 6c 3a 6f 66 66 73 65 74 22 20 6f 72 20 61 73 20 22 70 68 79 73 61 64   ┆      "sel:offset" or as "physad┆
0x3360…3380       72 22 2e 0d 0a 0d 0a 0d 0a 20 20 20 20 2d 20 84 22 73 65 6c 3a 6f 66 66 73 65 74 22 20 73 74 61   ┆r".          -  "sel:offset" sta┆
0x3380…33a0       6e 64 73 20 66 6f 72 20 61 20 6d 65 6d 6f 72 79 20 61 64 64 72 65 73 73 20 73 70 65 63 69 66 69   ┆nds for a memory address specifi┆
0x33a0…33c0       65 64 20 61 73 20 0a 19 86 80 80 73 65 6c 65 63 74 6f 72 3a 6f 66 66 73 65 74 20 6f 72 20 6a 75   ┆ed as      selector:offset or ju┆
0x33c0…33e0       73 74 20 6f 66 66 73 65 74 2c 20 77 68 65 72 65 20 73 65 67 6d 65 6e 74 20 61 6e 64 20 6f 66 66   ┆st offset, where segment and off┆
0x33e0…3400       73 65 74 20 63 61 6e 20 65 61 63 68 20 0a 19 86 80 80 62 65 20 67 69 76 65 6e 20 61 73 20 61 20   ┆set can each      be given as a ┆
0x3400…3420 (26,) 68 65 78 61 64 65 63 69 6d 61 6c 20 6e 75 6d 62 65 72 20 77 69 74 68 20 75 70 20 74 6f 20 34 20   ┆hexadecimal number with up to 4 ┆
0x3420…3440       64 69 67 69 74 73 20 6f 72 20 61 73 20 74 68 65 20 0a 19 86 80 80 6e 61 6d 65 20 6f 66 20 6f 6e   ┆digits or as the      name of on┆
0x3440…3460       65 20 6f 66 20 74 68 65 20 72 65 67 69 73 74 65 72 73 20 69 6e 20 74 68 65 20 63 6f 6e 74 65 78   ┆e of the registers in the contex┆
0x3460…3480       74 2e 20 49 6e 20 74 68 65 20 6c 61 74 74 65 72 20 63 61 73 65 20 0a 8c 83 c8 0a 19 86 80 80 74   ┆t. In the latter case          t┆
0x3480…34a0       68 65 20 76 61 6c 75 65 20 6f 66 20 74 68 65 20 69 6e 64 69 63 61 74 65 64 20 72 65 67 69 73 74   ┆he value of the indicated regist┆
0x34a0…34c0       65 72 20 76 61 72 69 61 62 6c 65 20 69 73 20 75 73 65 64 2e 20 57 68 65 6e 20 6f 6e 6c 79 20 0a   ┆er variable is used. When only  ┆
0x34c0…34e0       19 86 80 80 6f 66 66 73 65 74 20 69 73 20 73 70 65 63 69 66 69 65 64 20 74 68 65 20 76 61 6c 75   ┆    offset is specified the valu┆
0x34e0…3500       65 20 6f 66 20 43 53 20 69 73 20 75 73 65 64 20 61 73 20 64 65 66 61 75 6c 74 20 66 6f 72 20 0a   ┆e of CS is used as default for  ┆
0x3500…3520       19 86 80 80 73 65 6c 65 63 74 6f 72 2e 20 41 6e 20 61 64 64 72 65 73 73 20 73 70 65 63 69 80 66   ┆    selector. An address speci f┆
0x3520…3540       69 63 61 74 69 6f 6e 20 6d 61 79 20 61 6c 73 6f 20 62 65 20 6c 65 66 74 20 6f 75 74 20 0a 19 86   ┆ication may also be left out    ┆
0x3540…3560       80 80 63 6f 6d 70 6c 65 74 65 6c 79 2c 20 69 6e 20 77 68 69 63 68 20 63 61 73 65 20 43 53 3a 49   ┆  completely, in which case CS:I┆
0x3560…3580       50 20 69 73 20 75 73 65 64 20 61 73 20 64 65 66 61 75 6c 74 2e 20 57 68 65 6e 20 62 6f 74 68 20   ┆P is used as default. When both ┆
0x3580…35a0       0a 19 86 80 80 73 65 6c 65 63 74 6f 72 20 61 6e 64 20 6f 66 66 73 65 74 20 61 72 65 20 73 70 65   ┆     selector and offset are spe┆
0x35a0…35c0       63 69 66 69 65 64 20 74 68 65 20 73 65 70 61 72 61 74 69 6e 67 20 27 3a 27 20 28 63 6f 6c 6f 6e   ┆cified the separating ':' (colon┆
0x35c0…35e0       29 20 6d 75 73 74 20 0a 19 86 80 80 62 65 20 74 79 70 65 64 2e 0d 0a 0d 0a 0d 0a 20 20 20 20 2d   ┆) must      be typed.          -┆
0x35e0…3600       20 84 22 70 68 79 73 61 64 72 22 20 69 73 20 61 20 36 20 64 69 67 69 74 20 6c 6f 6e 67 20 68 65   ┆  "physadr" is a 6 digit long he┆
0x3600…3620 (27,) 78 61 64 65 63 69 6d 61 6c 20 70 68 79 73 69 63 61 6c 20 6d 65 6d 6f 72 79 20 61 64 64 72 65 73   ┆xadecimal physical memory addres┆
0x3620…3640       73 2e 0d 0a 0d 0a 0d 0a 09 2d 20 84 22 63 6f 75 6e 74 22 20 73 74 61 6e 64 73 20 66 6f 72 20 61   ┆s.       -  "count" stands for a┆
0x3640…3660       6e 20 75 6e 73 69 67 6e 65 64 20 64 65 63 69 6d 61 6c 20 6e 75 6d 62 65 72 20 74 6f 20 62 65 20   ┆n unsigned decimal number to be ┆
0x3660…3680       75 73 65 64 20 61 73 20 61 20 0a 19 86 80 80 72 65 70 65 74 69 74 69 6f 6e 20 63 6f 75 6e 74 65   ┆used as a      repetition counte┆
0x3680…36a0       72 2e 0d 0a 0d 0a 0d 0a 09 2d 20 84 22 70 6f 72 74 5f 61 64 72 22 20 73 74 61 6e 64 73 20 66 6f   ┆r.       -  "port_adr" stands fo┆
0x36a0…36c0       72 20 74 68 65 20 61 64 64 72 65 73 73 20 6f 66 20 61 6e 20 49 2f 4f 20 70 6f 72 74 2e 0d 0a 0d   ┆r the address of an I/O port.   ┆
0x36c0…36e0       0a 0d 0a 20 20 20 20 2d 20 84 22 76 61 6c 75 65 22 20 73 74 61 6e 64 73 20 66 6f 72 20 61 20 62   ┆       -  "value" stands for a b┆
0x36e0…3700       79 74 65 20 6f 72 20 77 6f 72 64 20 76 61 6c 75 65 20 74 6f 20 62 65 20 77 72 69 74 74 65 6e 20   ┆yte or word value to be written ┆
0x3700…3720       74 6f 20 61 20 0a 19 86 80 80 72 65 67 69 73 74 65 72 2c 20 6d 65 6d 6f 72 79 20 6c 6f 63 61 74   ┆to a      register, memory locat┆
0x3720…3740       69 6f 6e 2c 20 6f 72 20 6f 75 74 70 75 74 20 70 6f 72 74 2e 20 42 6f 74 68 20 6d 61 79 20 62 65   ┆ion, or output port. Both may be┆
0x3740…3760       20 67 69 76 65 6e 20 61 73 20 61 20 0a 19 86 80 80 68 65 78 61 64 65 63 69 6d 61 6c 20 6e 75 6d   ┆ given as a      hexadecimal num┆
0x3760…3780       62 65 72 20 77 69 74 68 20 75 70 20 74 6f 20 34 20 64 69 67 69 74 73 20 28 32 20 69 66 20 62 79   ┆ber with up to 4 digits (2 if by┆
0x3780…37a0       74 65 29 2e 20 52 65 67 69 73 74 65 72 20 0a 19 86 80 80 6e 61 6d 65 73 20 6d 61 79 20 61 6c 73   ┆te). Register      names may als┆
0x37a0…37c0       6f 20 62 65 20 75 73 65 64 20 61 73 20 66 6f 72 20 61 64 64 72 65 73 73 65 73 2e 0d 0a 0d 0a 0d   ┆o be used as for addresses.     ┆
0x37c0…37e0       0a 20 20 20 20 2d 20 84 22 72 65 67 5f 73 70 65 63 22 20 73 74 61 6e 64 73 20 66 6f 72 20 6f 6e   ┆     -  "reg_spec" stands for on┆
0x37e0…3800       65 20 6f 66 20 74 68 65 20 69 41 50 58 20 32 38 36 20 69 6e 74 65 72 6e 61 6c 20 72 65 67 69 73   ┆e of the iAPX 286 internal regis┆
0x3800…3820 (28,) 74 65 72 73 20 43 53 2c 20 0a 19 86 80 80 44 53 2c 20 53 53 2c 20 45 53 2c 20 41 58 2c 20 42 58   ┆ters CS,      DS, SS, ES, AX, BX┆
0x3820…3840       2c 20 43 58 2c 20 44 58 2c 20 53 50 2c 20 42 50 2c 20 53 49 2c 20 44 49 2c 20 49 50 20 6f 72 20   ┆, CX, DX, SP, BP, SI, DI, IP or ┆
0x3840…3860       46 4c 20 28 66 6c 61 67 73 29 2e 0d 0a 0d 0a 09 2d 20 84 22 73 74 72 69 6e 67 22 20 73 74 61 6e   ┆FL (flags).     -  "string" stan┆
0x3860…3880       64 73 20 66 6f 72 20 61 6e 79 20 73 74 72 69 6e 67 20 6f 66 20 67 72 61 70 68 69 63 20 63 68 61   ┆ds for any string of graphic cha┆
0x3880…38a0       72 61 63 74 65 72 73 20 6e 6f 74 20 0a 19 86 80 80 69 6e 63 6c 75 64 69 6e 67 20 27 2c 27 20 6f   ┆racters not      including ',' o┆
0x38a0…38c0       72 20 27 5e 27 2e 0d 0a 0d 0a 0d 0a 43 6f 6d 6d 61 6e 64 20 6e 61 6d 65 73 20 61 72 65 20 74 79   ┆r '^'.      Command names are ty┆
0x38c0…38e0       70 65 64 20 61 73 20 73 69 6e 67 6c 65 20 6c 65 74 74 65 72 73 2c 20 69 6e 20 73 6f 6d 65 20 63   ┆ped as single letters, in some c┆
0x38e0…3900       61 73 65 73 20 70 72 65 63 65 64 65 64 20 62 79 20 61 6e 20 0a 6f 70 74 69 6f 6e 61 6c 20 63 6f   ┆ases preceded by an  optional co┆
0x3900…3920       75 6e 74 20 69 6e 64 69 63 61 74 69 6e 67 20 74 68 65 20 63 6f 6d 6d 61 6e 64 20 73 68 6f 75 6c   ┆unt indicating the command shoul┆
0x3920…3940       64 20 62 65 20 72 65 70 65 61 74 65 64 20 74 68 65 20 73 70 65 63 69 66 69 65 64 20 0a 6e 75 6d   ┆d be repeated the specified  num┆
0x3940…3960       62 65 72 20 6f 66 20 74 69 6d 65 73 2c 20 61 6e 64 20 75 73 75 61 6c 6c 79 20 66 6f 6c 6c 6f 77   ┆ber of times, and usually follow┆
0x3960…3980       65 64 20 62 79 20 6f 74 68 65 72 20 70 61 72 61 6d 65 74 65 72 73 2e 20 49 6e 20 73 65 76 65 72   ┆ed by other parameters. In sever┆
0x3980…39a0       61 6c 20 0a 63 61 73 65 73 20 61 20 63 6f 6d 6d 61 6e 64 20 6d 61 79 20 62 65 20 63 6f 6e 74 69   ┆al  cases a command may be conti┆
0x39a0…39c0       6e 75 65 64 20 6f 72 20 72 65 70 65 61 74 65 64 20 69 66 20 61 20 27 2c 27 20 6f 72 20 27 5e 27   ┆nued or repeated if a ',' or '^'┆
0x39c0…39e0       20 69 73 20 74 79 70 65 64 20 0a 69 6e 73 74 65 61 64 20 6f 66 20 61 20 63 6f 6d 6d 61 6e 64 20   ┆ is typed  instead of a command ┆
0x39e0…3a00       69 6e 20 72 65 73 70 6f 6e 73 65 20 74 6f 20 74 68 65 20 6e 65 78 74 20 70 72 6f 6d 70 74 2e 0d   ┆in response to the next prompt. ┆
0x3a00…3a20 (29,) 0a 0d 0a 0d 0a 8c 83 c8 0a 49 6e 20 74 68 65 20 72 65 6d 61 69 6e 64 65 72 20 6f 66 20 74 68 69   ┆         In the remainder of thi┆
0x3a20…3a40       73 20 63 68 61 70 74 65 72 20 74 68 65 20 69 6e 64 69 76 69 64 75 61 6c 20 63 6f 6d 6d 61 6e 64   ┆s chapter the individual command┆
0x3a40…3a60       73 20 61 72 65 20 64 65 73 63 72 69 62 65 64 2e 20 0a 49 6e 20 74 68 65 20 63 6f 6d 6d 61 6e 64   ┆s are described.  In the command┆
0x3a60…3a80       20 73 79 6e 74 61 78 20 64 65 66 69 6e 69 74 69 6f 6e 73 20 74 68 65 20 65 6c 65 6d 65 6e 74 73   ┆ syntax definitions the elements┆
0x3a80…3aa0       20 6f 66 20 65 61 63 68 20 63 6f 6d 6d 61 6e 64 20 61 72 65 20 0a 73 65 70 61 72 61 74 65 64 20   ┆ of each command are  separated ┆
0x3aa0…3ac0       62 79 20 62 6c 61 6e 6b 73 20 66 6f 72 20 72 65 61 64 61 62 69 6c 69 74 79 2e 20 53 75 63 68 20   ┆by blanks for readability. Such ┆
0x3ac0…3ae0       62 6c 61 6e 6b 73 20 61 72 65 20 6e 6f 74 20 6e 65 63 65 73 73 61 72 79 20 69 6e 20 0a 61 63 74   ┆blanks are not necessary in  act┆
0x3ae0…3b00       75 61 6c 20 63 6f 6d 6d 61 6e 64 20 69 6e 70 75 74 2e 20 49 6e 20 74 68 65 20 45 58 41 4d 50 4c   ┆ual command input. In the EXAMPL┆
0x3b00…3b20       45 53 20 73 68 6f 77 6e 20 62 65 6c 6f 77 20 61 6c 6c 20 44 65 62 75 67 20 4d 6f 6e 69 74 6f 72   ┆ES shown below all Debug Monitor┆
0x3b20…3b40       20 0a 6f 75 74 70 75 74 20 69 73 20 73 68 6f 77 6e 20 69 6e 20 b0 62 6f 6c 64 f0 20 61 6e 64 20   ┆  output is shown in  bold  and ┆
0x3b40…3b60       63 6f 6d 6d 65 6e 74 73 20 69 73 20 70 72 65 63 65 64 65 64 20 77 69 74 68 20 61 20 25 20 63 68   ┆comments is preceded with a % ch┆
0x3b60…3b80       61 72 61 63 74 65 72 2e 0d 0a 0d 0a a1 0d 0a a1 33 2e 31 20 20 48 65 6c 70 20 43 6f 6d 6d 61 6e   ┆aracter.        3.1  Help Comman┆
0x3b80…3ba0       64 2e 0d 0a 0d 0a 0d 0a 43 6f 6d 6d 61 6e 64 20 53 79 6e 74 61 78 3a 20 b0 28 48 2f 3f 29 2e 0d   ┆d.      Command Syntax:  (H/?). ┆
0x3ba0…3bc0       0a 0d 0a 0d 0a 54 68 65 20 68 65 6c 70 20 63 6f 6d 6d 61 6e 64 20 64 69 73 70 6c 61 79 73 20 61   ┆     The help command displays a┆
0x3bc0…3be0       20 6d 65 6e 75 20 6f 66 20 61 76 61 69 6c 61 62 6c 65 20 63 6f 6d 6d 61 6e 64 73 20 6c 69 6b 65   ┆ menu of available commands like┆
0x3be0…3c00       20 74 68 69 73 2e 0d 0a 0d 0a 0d 0a b0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a   ┆ this.       *******************┆
0x3c00…3c20 (30,) 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a   ┆********************************┆
0x3c20…3c40       2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d 0a b0 2a 09 09 20 20 20 20 20 20 20 52 43   ┆*****************   *         RC┆
0x3c40…3c60       20 33 39 20 4d 4f 4e 49 54 4f 52 20 4d 45 4e 55 09 09 20 20 20 2d 20 50 41 47 45 20 31 20 20 2a   ┆ 39 MONITOR MENU     - PAGE 1  *┆
0x3c60…3c80       0d 0a b0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a   ┆   *****************************┆
0x3c80…3ca0       2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a   ┆********************************┆
0x3ca0…3cc0       2a 2a 2a 2a 2a 2a 2a 0d 0a b0 43 6f 6d 6d 61 6e 64 09 09 09 20 20 20 41 63 74 69 6f 6e 0d 0a 0d   ┆*******   Command      Action   ┆
0x3cc0…3ce0       0a b0 28 3c 64 65 6c 65 74 65 3e 2f 3c 62 61 63 6b 20 73 70 61 63 65 3e 29 09 09 20 20 20 45 72   ┆  (<delete>/<back space>)     Er┆
0x3ce0…3d00       61 73 65 20 6c 61 73 74 20 63 68 61 72 61 63 74 65 72 0d 0a b0 28 48 2f 3f 29 09 09 09 20 20 20   ┆ase last character   (H/?)      ┆
0x3d00…3d20       52 65 71 75 65 73 74 20 74 68 69 73 20 6d 65 6e 75 0d 0a b0 2a 09 09 09 09 20 20 20 48 61 72 64   ┆Request this menu   *       Hard┆
0x3d20…3d40       77 61 72 65 20 52 65 73 65 74 20 43 6f 6d 6d 61 6e 64 0d 0a b0 47 20 28 43 29 20 28 73 65 6c 3a   ┆ware Reset Command   G (C) (sel:┆
0x3d40…3d60       6f 66 66 73 65 74 29 20 28 3b 20 73 65 6c 3a 6f 66 66 73 65 74 29 09 20 20 20 47 4f 20 46 52 4f   ┆offset) (; sel:offset)    GO FRO┆
0x3d60…3d80       4d 20 75 73 65 72 20 61 64 64 72 2e 20 54 4f 20 75 73 65 72 20 61 64 64 72 2e 0d 0a a1 e1 b0 28   ┆M user addr. TO user addr.     (┆
0x3d80…3da0       63 6f 75 6e 74 29 20 4e 20 28 73 65 6c 3a 6f 66 66 73 65 74 29 20 28 3b 20 73 65 6c 3a 6f 66 66   ┆count) N (sel:offset) (; sel:off┆
0x3da0…3dc0       73 65 74 29 20 53 54 45 50 20 46 52 4f 4d 20 75 73 65 72 20 61 64 64 72 20 54 4f 20 75 73 65 72   ┆set) STEP FROM user addr TO user┆
0x3dc0…3de0       20 61 64 64 72 2e 0d 0a b0 42 20 28 62 70 5f 6e 6f 20 73 65 6c 3a 6f 66 66 73 65 74 29 09 09 20   ┆ addr.   B (bp_no sel:offset)   ┆
0x3de0…3e00       20 20 53 65 74 20 62 72 65 61 6b 70 6f 69 6e 74 20 69 6e 20 75 73 65 72 20 63 6f 64 65 0d 0a b0   ┆  Set breakpoint in user code   ┆
0x3e00…3e20 (31,) 43 20 28 62 70 5f 6e 6f 29 09 09 09 20 20 20 52 65 73 65 74 20 6f 6e 65 20 6f 72 20 61 6c 6c 20   ┆C (bp_no)      Reset one or all ┆
0x3e20…3e40       62 72 65 61 6b 70 6f 69 6e 74 73 0d 0a b0 52 20 28 72 65 67 5f 73 70 65 63 29 09 09 09 20 20 20   ┆breakpoints   R (reg_spec)      ┆
0x3e40…3e60       44 69 73 70 6c 61 79 20 61 6c 6c 2f 43 68 61 6e 67 65 20 6f 6e 65 20 72 65 67 69 73 74 65 72 0d   ┆Display all/Change one register ┆
0x3e60…3e80       0a b0 52 4d 53 57 09 09 09 20 20 20 44 69 73 70 61 6c 79 20 4d 61 63 68 69 6e 65 20 53 74 61 74   ┆  RMSW      Dispaly Machine Stat┆
0x3e80…3ea0       75 73 20 57 6f 72 64 0d 0a b0 28 63 6f 75 6e 74 29 20 4d 20 28 57 2f 58 2f 50 29 28 61 64 64 72   ┆us Word   (count) M (W/X/P)(addr┆
0x3ea0…3ec0       20 74 79 70 65 29 28 3d 76 61 6c 75 65 29 20 44 69 73 70 6c 61 79 2f 55 70 64 61 74 65 2f 44 69   ┆ type)(=value) Display/Update/Di┆
0x3ec0…3ee0       73 61 73 73 65 6d 62 6c 65 20 4d 65 6d 6f 72 79 0d 0a b0 28 63 6f 75 6e 74 29 20 4d 20 28 57 2f   ┆sassemble Memory   (count) M (W/┆
0x3ee0…3f00       58 29 20 50 20 28 70 68 79 73 61 64 72 29 28 3d 76 61 6c 75 65 29 20 20 50 20 6d 65 61 6e 73 20   ┆X) P (physadr)(=value)  P means ┆
0x3f00…3f20       50 68 79 73 69 63 61 6c 20 36 20 64 69 67 69 74 20 68 65 78 20 61 64 64 72 2e 0d 0a b0 28 63 6f   ┆Physical 6 digit hex addr.   (co┆
0x3f20…3f40       75 6e 74 29 20 4d 20 28 57 2f 58 29 20 28 73 65 6c 3a 6f 66 66 73 65 74 29 28 3d 76 61 6c 75 65   ┆unt) M (W/X) (sel:offset)(=value┆
0x3f40…3f60       29 20 41 64 64 72 65 73 73 20 67 69 76 65 6e 20 61 73 20 53 65 6c 65 63 74 6f 72 3a 4f 66 66 73   ┆) Address given as Selector:Offs┆
0x3f60…3f80       65 74 0d 0a b0 49 20 28 57 29 20 70 6f 72 74 5f 61 64 72 09 09 20 20 20 49 6e 70 75 74 20 66 72   ┆et   I (W) port_adr     Input fr┆
0x3f80…3fa0       6f 6d 20 62 79 74 65 20 6f 72 20 57 6f 72 64 20 70 6f 72 74 0d 0a b0 4f 20 28 57 29 20 70 6f 72   ┆om byte or Word port   O (W) por┆
0x3fa0…3fc0       74 5f 61 64 72 3d 76 61 6c 75 65 09 09 20 20 20 4f 75 74 70 75 74 20 76 61 6c 75 65 20 74 6f 20   ┆t_adr=value     Output value to ┆
0x3fc0…3fe0       62 79 74 65 20 6f 72 20 57 6f 72 64 20 70 6f 72 74 0d 0a b0 4c 20 28 57 2f 46 29 20 28 47 29 20   ┆byte or Word port   L (W/F) (G) ┆
0x3fe0…4000       28 3a 73 74 72 69 6e 67 29 09 09 20 20 20 4c 6f 61 64 20 66 72 6f 6d 20 64 69 73 63 0d 0a 0d 0a   ┆(:string)     Load from disc    ┆
0x4000…4020 (32,) b0 2c 09 09 09 09 20 20 20 52 65 71 75 65 73 74 20 6d 6f 72 65 20 6d 65 6e 75 0d 0a 0d 0a 0d 0a   ┆ ,       Request more menu      ┆
0x4020…4040       8c 83 e0 0a 49 66 20 61 20 63 6f 6d 6d 61 20 69 73 20 65 6e 74 65 72 65 64 20 74 68 65 20 72 65   ┆    If a comma is entered the re┆
0x4040…4060       73 74 20 6f 66 20 74 68 65 20 6d 65 6e 75 20 69 73 20 64 69 73 70 6c 61 79 65 64 2e 0d 0a 0d 0a   ┆st of the menu is displayed.    ┆
0x4060…4080       0d 0a b0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a   ┆   *****************************┆
0x4080…40a0       2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a   ┆********************************┆
0x40a0…40c0       2a 2a 2a 2a 2a 2a 2a 0d 0a b0 2a 09 09 20 20 20 20 20 20 20 52 43 20 33 39 20 4d 4f 4e 49 54 4f   ┆*******   *         RC 39 MONITO┆
0x40c0…40e0       52 20 4d 45 4e 55 09 09 20 20 20 2d 20 50 41 47 45 20 32 20 20 2a 0d 0a b0 2a 2a 2a 2a 2a 2a 2a   ┆R MENU     - PAGE 2  *   *******┆
0x40e0…4100       2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a   ┆********************************┆
0x4100…4120       2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d 0a b0   ┆*****************************   ┆
0x4120…4140       43 6f 6d 6d 61 6e 64 09 09 09 20 20 20 41 63 74 69 6f 6e 0d 0a 0d 0a b0 28 63 6f 75 6e 74 29 20   ┆Command      Action     (count) ┆
0x4140…4160       58 4c 44 54 20 28 6c 64 74 5f 69 6e 64 65 78 29 20 28 2c 29 09 20 20 20 45 78 61 6d 69 6e 65 20   ┆XLDT (ldt_index) (,)    Examine ┆
0x4160…4180       55 53 45 52 20 4c 44 54 0d 0a b0 28 63 6f 75 6e 74 29 20 58 47 44 54 20 28 67 64 74 5f 69 6e 64   ┆USER LDT   (count) XGDT (gdt_ind┆
0x4180…41a0       65 78 29 20 28 2c 29 09 20 20 20 45 78 61 6d 69 6e 65 20 47 44 54 0d 0a b0 28 63 6f 75 6e 74 29   ┆ex) (,)    Examine GDT   (count)┆
0x41a0…41c0       20 58 49 44 54 20 28 69 64 74 5f 69 6e 64 65 78 29 20 28 2c 29 09 20 20 20 45 78 61 6d 69 6e 65   ┆ XIDT (idt_index) (,)    Examine┆
0x41c0…41e0       20 49 44 54 0d 0a b0 28 63 6f 75 6e 74 29 20 58 44 54 20 28 67 64 74 5f 69 6e 64 65 78 29 20 28   ┆ IDT   (count) XDT (gdt_index) (┆
0x41e0…4200       2c 29 20 20 20 20 20 20 20 20 20 20 45 78 61 6d 69 6e 65 20 61 6e 79 20 4c 44 54 0d 0a b0 58 54   ┆,)          Examine any LDT   XT┆
0x4200…4220 (33,) 53 53 20 28 67 64 74 5f 69 6e 64 65 78 29 20 28 2c 29 09 09 20 20 20 45 78 61 6d 69 6e 65 20 54   ┆SS (gdt_index) (,)     Examine T┆
0x4220…4240       53 53 0d 0a b0 2c 09 09 09 09 20 20 20 52 65 71 75 65 73 74 20 6d 6f 72 65 20 6d 65 6e 75 0d 0a   ┆SS   ,       Request more menu  ┆
0x4240…4260       0d 0a 0d 0a a1 33 2e 32 20 20 50 72 6f 67 72 61 6d 6d 61 62 6c 65 20 48 61 72 64 77 61 72 65 20   ┆     3.2  Programmable Hardware ┆
0x4260…4280       52 65 73 65 74 20 43 6f 6d 6d 61 6e 64 2e 0d 0a 0d 0a 0d 0a 43 6f 6d 6d 61 6e 64 20 53 79 6e 74   ┆Reset Command.      Command Synt┆
0x4280…42a0       61 78 3a 20 b0 2a 2e 0d 0a 0d 0a 0d 0a 54 68 69 73 20 63 6f 6d 6d 61 6e 64 20 69 73 20 6f 6e 6c   ┆ax:  *.      This command is onl┆
0x42a0…42c0       79 20 61 76 61 69 6c 61 62 6c 65 20 6f 6e 20 74 68 65 20 52 43 20 4d 61 6e 75 66 61 63 74 75 72   ┆y available on the RC Manufactur┆
0x42c0…42e0       65 64 20 43 50 55 20 36 31 30 2c 20 6e 6f 74 20 74 68 65 20 0a 49 6e 74 65 6c 20 4d 61 6e 75 66   ┆ed CPU 610, not the  Intel Manuf┆
0x42e0…4300       61 63 74 75 72 65 64 20 43 50 55 20 36 39 31 20 69 41 50 58 20 32 38 36 20 62 6f 61 72 64 2e 20   ┆actured CPU 691 iAPX 286 board. ┆
0x4300…4320       54 68 69 73 20 63 6f 6d 6d 61 6e 64 20 65 78 65 63 75 74 65 73 20 61 20 0a 68 61 72 64 77 61 72   ┆This command executes a  hardwar┆
0x4320…4340       65 20 72 65 73 65 74 20 6f 6e 20 74 68 65 20 4d 75 6c 74 69 62 75 73 2e 0d 0a 0d 0a 0d 0a a1 33   ┆e reset on the Multibus.       3┆
0x4340…4360       2e 33 20 20 53 65 74 20 42 72 65 61 6b 70 6f 69 6e 74 20 43 6f 6d 6d 61 6e 64 2e 0d 0a 0d 0a 0d   ┆.3  Set Breakpoint Command.     ┆
0x4360…4380       0a 43 6f 6d 6d 61 6e 64 20 53 79 6e 74 61 78 3a 20 b0 42 20 28 62 70 2d 6e 6f 20 73 65 6c 3a 6f   ┆ Command Syntax:  B (bp-no sel:o┆
0x4380…43a0       66 66 73 65 74 29 2e 0d 0a 0d 0a 0d 0a 57 69 74 68 6f 75 74 20 70 61 72 61 6d 65 74 65 72 73 20   ┆ffset).      Without parameters ┆
0x43a0…43c0       74 68 69 73 20 63 6f 6d 6d 61 6e 64 20 63 61 75 73 65 73 20 61 6c 6c 20 63 75 72 72 65 6e 74 6c   ┆this command causes all currentl┆
0x43c0…43e0       79 20 73 65 74 20 62 72 65 61 6b 70 6f 69 6e 74 73 20 20 0a 74 6f 20 62 65 20 64 69 73 70 6c 61   ┆y set breakpoints   to be displa┆
0x43e0…4400       79 65 64 2e 20 57 69 74 68 20 70 61 72 61 6d 65 74 65 72 73 2c 20 61 20 42 20 63 6f 6d 6d 61 6e   ┆yed. With parameters, a B comman┆
0x4400…4420 (34,) 64 20 73 65 74 73 20 74 68 65 20 62 72 65 61 6b 70 6f 69 6e 74 20 77 69 74 68 20 0a 74 68 65 20   ┆d sets the breakpoint with  the ┆
0x4420…4440       73 70 65 63 69 66 69 65 64 20 6e 75 6d 62 65 72 20 61 74 20 74 68 65 20 73 70 65 63 69 66 69 65   ┆specified number at the specifie┆
0x4440…4460       64 20 61 64 64 72 65 73 73 2e 20 49 66 20 74 68 69 73 20 62 72 65 61 6b 70 6f 69 6e 74 20 77 61   ┆d address. If this breakpoint wa┆
0x4460…4480       73 20 0a 70 72 65 76 69 6f 75 73 6c 79 20 73 65 74 20 74 68 65 20 6f 6c 64 20 73 65 74 74 69 6e   ┆s  previously set the old settin┆
0x4480…44a0       67 20 69 73 20 64 65 6c 65 74 65 64 2e 0d 0a 0d 0a 0d 0a 8c 83 d4 0a 45 58 41 4d 50 4c 45 2e 0d   ┆g is deleted.          EXAMPLE. ┆
0x44a0…44c0       0a 0d 0a 0d 0a b0 2e 20 42 09 09 09 09 f0 25 20 64 69 73 70 6c 61 79 20 61 63 74 69 76 65 20 62   ┆      . B     % display active b┆
0x44c0…44e0       72 65 61 6b 70 6f 69 6e 74 73 2e 0d 0a b0 42 72 65 61 6b 70 6f 69 6e 74 20 30 20 61 74 20 30 31   ┆reakpoints.   Breakpoint 0 at 01┆
0x44e0…4500       36 30 3a 36 36 34 41 20 73 75 62 73 74 69 74 75 74 65 20 42 38 0d 0a b0 42 72 65 61 6b 70 6f 69   ┆60:664A substitute B8   Breakpoi┆
0x4500…4520       6e 74 20 34 20 61 74 20 30 31 36 38 3a 30 30 31 42 20 73 75 62 73 74 69 74 75 74 65 20 45 41 0d   ┆nt 4 at 0168:001B substitute EA ┆
0x4520…4540       0a b0 42 72 65 61 6b 70 6f 69 6e 74 20 37 20 61 74 20 30 31 36 38 3a 31 41 41 42 20 73 75 62 73   ┆  Breakpoint 7 at 0168:1AAB subs┆
0x4540…4560       74 69 74 75 74 65 20 42 38 0d 0a b0 2e 0d 0a 0d 0a 6f 72 0d 0a 0d 0a 0d 0a b0 2e 20 42 20 36 20   ┆titute B8   .    or       . B 6 ┆
0x4560…4580       31 31 41 42 f0 09 09 09 25 20 73 65 74 20 62 72 65 61 6b 70 6f 69 6e 74 20 6e 6f 2e 20 36 20 61   ┆11AB    % set breakpoint no. 6 a┆
0x4580…45a0       74 20 43 53 3a 31 31 41 42 0d 0a 0d 0a 0d 0a 49 66 20 6e 6f 20 73 65 6c 65 63 74 6f 72 20 69 73   ┆t CS:11AB      If no selector is┆
0x45a0…45c0       20 67 69 76 65 6e 20 43 53 20 69 73 20 75 73 65 64 2e 0d 0a 0d 0a 0d 0a a1 33 2e 34 20 20 43 6c   ┆ given CS is used.       3.4  Cl┆
0x45c0…45e0       65 61 72 20 42 72 65 61 6b 70 6f 69 6e 74 20 43 6f 6d 6d 61 6e 64 2e 0d 0a 0d 0a 0d 0a 43 6f 6d   ┆ear Breakpoint Command.      Com┆
0x45e0…4600       6d 61 6e 64 20 53 79 6e 74 61 78 3a b0 20 43 20 28 62 70 2d 6e 6f 29 2e 0d 0a 0d 0a 0d 0a a1 e1   ┆mand Syntax:  C (bp-no).        ┆
0x4600…4620 (35,) 49 66 20 61 20 70 61 72 61 6d 65 74 65 72 20 69 73 20 70 72 65 73 65 6e 74 20 74 68 65 20 62 72   ┆If a parameter is present the br┆
0x4620…4640       65 61 6b 70 6f 69 6e 74 20 77 69 74 68 20 74 68 65 20 73 70 65 63 69 66 69 65 64 20 6e 75 6d 62   ┆eakpoint with the specified numb┆
0x4640…4660       65 72 20 69 73 20 0a 64 65 6c 65 74 65 64 2c 20 6f 74 68 65 72 77 69 73 65 20 61 6c 6c 20 63 75   ┆er is  deleted, otherwise all cu┆
0x4660…4680       72 72 65 6e 74 6c 79 20 73 65 74 20 62 72 65 61 6b 70 6f 69 6e 74 73 20 61 72 65 20 64 65 6c 65   ┆rrently set breakpoints are dele┆
0x4680…46a0       74 65 64 2e 0d 0a 0d 0a 0d 0a a1 33 2e 35 20 20 53 69 6e 67 6c 65 20 53 74 65 70 20 54 68 72 6f   ┆ted.       3.5  Single Step Thro┆
0x46a0…46c0       75 67 68 20 54 61 72 67 65 74 20 43 6f 64 65 20 43 6f 6d 6d 61 6e 64 2e 0d 0a 0d 0a 0d 0a 43 6f   ┆ugh Target Code Command.      Co┆
0x46c0…46e0       6d 6d 61 6e 64 20 53 79 6e 74 61 78 3a 20 b0 28 63 6f 75 6e 74 29 20 4e 20 28 73 65 6c 3a 6f 66   ┆mmand Syntax:  (count) N (sel:of┆
0x46e0…4700       66 73 65 74 29 20 28 3b 73 65 6c 3a 6f 66 66 73 65 74 29 20 28 2c 29 2e 0d 0a 0d 0a 0d 0a 54 68   ┆fset) (;sel:offset) (,).      Th┆
0x4700…4720       69 73 20 63 6f 6d 6d 61 6e 64 20 73 69 6e 67 6c 65 20 73 74 65 70 73 20 74 68 72 6f 75 67 68 20   ┆is command single steps through ┆
0x4720…4740       74 61 72 67 65 74 20 63 6f 64 65 20 66 72 6f 6d 20 73 74 61 72 74 20 61 64 64 72 65 73 73 20 74   ┆target code from start address t┆
0x4740…4760       6f 20 65 6e 64 20 0a 61 64 64 72 65 73 73 2e 20 49 74 20 6d 61 79 20 62 65 20 77 69 73 65 20 74   ┆o end  address. It may be wise t┆
0x4760…4780       6f 20 75 73 65 20 61 20 63 6f 75 6e 74 20 69 66 20 74 68 65 20 65 6e 64 20 61 64 64 72 65 73 73   ┆o use a count if the end address┆
0x4780…47a0       20 69 73 20 6e 65 76 65 72 20 0a 72 65 61 63 68 65 64 2e 20 42 72 65 61 6b 70 6f 69 6e 74 20 61   ┆ is never  reached. Breakpoint a┆
0x47a0…47c0       6c 73 6f 20 74 65 72 6d 69 6e 61 74 65 73 20 74 68 65 20 73 69 6e 67 6c 65 20 73 74 65 70 70 69   ┆lso terminates the single steppi┆
0x47c0…47e0       6e 67 2e 20 42 65 66 6f 72 65 20 65 76 65 72 79 20 0a 73 74 65 70 20 74 68 65 20 69 6e 73 74 72   ┆ng. Before every  step the instr┆
0x47e0…4800       75 63 74 69 6f 6e 20 74 6f 20 62 65 20 65 78 65 63 75 74 65 64 20 69 73 20 64 69 73 61 73 73 65   ┆uction to be executed is disasse┆
0x4800…4820 (36,) 6d 62 6c 65 64 20 61 6e 64 20 61 66 74 65 72 20 65 61 63 68 20 0a 73 69 6e 67 6c 65 20 73 74 65   ┆mbled and after each  single ste┆
0x4820…4840       70 20 74 68 65 20 72 65 67 69 73 74 65 72 73 20 61 72 65 20 64 69 73 70 6c 61 79 65 64 2e 0d 0a   ┆p the registers are displayed.  ┆
0x4840…4860       0d 0a 0d 0a 8c 83 ec 0a 45 58 41 4d 50 4c 45 2e 0d 0a 0d 0a 0d 0a b0 2e 20 34 4e f0 09 09 09 25   ┆        EXAMPLE.       . 4N    %┆
0x4860…487d       20 65 78 65 63 75 74 65 20 34 20 53 69 6e 67 6c 65 20 53 74 65 70 73 0d 0a 0d 0a 0d 0a            ┆ execute 4 Single Steps      ┆
0x487d…48b6       Params {
0x487d…48b6         04 00 2d 4e 0c 00 06 00 00 00 00 03 01 4e 31 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆  -N         N1                 ┆
0x487d…48b6         00 00 00 00 00 00 00 00 05 0f 19 23 2d 37 41 46 4b 55 5f 69 73 7d 87 ff 04                        ┆           #-7AFKU_iså   ┆
0x487d…48b6       }
0x48b6…48ef       Params {
0x48b6…48ef         04 00 2d 4e 0c 00 06 00 00 00 00 03 01 47 31 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆  -N         G1                 ┆
0x48b6…48ef         00 00 00 00 00 00 00 00 05 0f 19 23 2d 37 41 46 4b 55 5f 69 73 7d 87 ff 04                        ┆           #-7AFKU_iså   ┆
0x48b6…48ef       }
0x48ef…4900       0a b0 30 31 36 38 3a 36 36 34 41 20 20 43 37 34 36                                                ┆  0168:664A  C746┆
0x4900…4920       46 43 30 30 30 30 09 4d 4f 56 20 20 20 57 4f 52 44 20 50 54 52 5b 42 50 2b 46 43 5d 2c 30 30 30   ┆FC0000 MOV   WORD PTRÆBP+FCÅ,000┆
0x4920…4940       30 48 0d 0a b0 20 49 50 20 20 20 46 4c 20 20 20 41 58 20 20 20 43 58 20 20 20 44 58 20 20 20 42   ┆0H    IP   FL   AX   CX   DX   B┆
0x4940…4960       58 20 20 20 53 50 20 20 20 42 50 20 20 20 53 49 20 20 20 44 49 20 20 20 45 53 20 20 20 43 53 20   ┆X   SP   BP   SI   DI   ES   CS ┆
0x4960…4980       20 20 53 53 20 20 20 44 53 20 20 41 42 45 4c 47 53 49 0d 0a b0 36 36 34 37 20 30 33 31 32 20 30   ┆  SS   DS  ABELGSI   6647 0312 0┆
0x4980…49a0       30 30 30 20 30 31 32 30 20 30 30 44 43 20 30 30 31 30 20 30 33 43 38 20 30 33 44 34 20 30 30 30   ┆000 0120 00DC 0010 03C8 03D4 000┆
0x49a0…49c0       34 20 30 39 37 41 20 30 30 30 38 20 30 31 36 38 20 30 31 38 38 20 30 31 35 38 20 2b 2d 2d 2d 2b   ┆4 097A 0008 0168 0188 0158 +---+┆
0x49c0…49e0       2d 2b 0d 0a 0d 0a b0 30 31 36 38 3a 36 36 34 46 20 20 38 42 34 36 46 43 09 4d 4f 56 20 20 20 41   ┆-+     0168:664F  8B46FC MOV   A┆
0x49e0…4a00       58 2c 57 4f 52 44 20 50 54 52 5b 42 50 2b 46 43 5d 0d 0a b0 20 49 50 20 20 20 46 4c 20 20 20 41   ┆X,WORD PTRÆBP+FCÅ    IP   FL   A┆
0x4a00…4a20 (37,) 58 20 20 20 43 58 20 20 20 44 58 20 20 20 42 58 20 20 20 53 50 20 20 20 42 50 20 20 20 53 49 20   ┆X   CX   DX   BX   SP   BP   SI ┆
0x4a20…4a40       20 20 44 49 20 20 20 45 53 20 20 20 43 53 20 20 20 53 53 20 20 20 44 53 20 20 41 42 45 4c 47 53   ┆  DI   ES   CS   SS   DS  ABELGS┆
0x4a40…4a60       49 0d 0a b0 36 36 35 32 20 30 33 31 32 20 30 30 30 30 20 30 31 32 30 20 30 30 44 43 20 30 30 31   ┆I   6652 0312 0000 0120 00DC 001┆
0x4a60…4a80       30 20 30 33 43 38 20 30 33 44 34 20 30 30 30 34 20 30 39 37 41 20 30 30 30 38 20 30 31 36 38 20   ┆0 03C8 03D4 0004 097A 0008 0168 ┆
0x4a80…4aa0       30 31 38 38 20 30 31 35 38 20 2b 2d 2d 2d 2b 2d 2b 0d 0a 0d 0a b0 30 31 36 38 3a 36 36 35 32 20   ┆0188 0158 +---+-+     0168:6652 ┆
0x4aa0…4ac0       20 36 42 43 30 31 36 09 49 4d 55 4c 20 20 41 58 2c 41 58 2c 30 30 31 36 48 0d 0a b0 20 49 50 20   ┆ 6BC016 IMUL  AX,AX,0016H    IP ┆
0x4ac0…4ae0       20 20 46 4c 20 20 20 41 58 20 20 20 43 58 20 20 20 44 58 20 20 20 42 58 20 20 20 53 50 20 20 20   ┆  FL   AX   CX   DX   BX   SP   ┆
0x4ae0…4b00       42 50 20 20 20 53 49 20 20 20 44 49 20 20 20 45 53 20 20 20 43 53 20 20 20 53 53 20 20 20 44 53   ┆BP   SI   DI   ES   CS   SS   DS┆
0x4b00…4b20       20 20 41 42 45 4c 47 53 49 0d 0a b0 36 36 35 35 20 30 33 35 36 20 30 30 30 30 20 30 31 32 30 20   ┆  ABELGSI   6655 0356 0000 0120 ┆
0x4b20…4b40       30 30 44 43 20 30 30 31 30 20 30 33 43 38 20 30 33 44 34 20 30 30 30 34 20 30 39 37 41 20 30 30   ┆00DC 0010 03C8 03D4 0004 097A 00┆
0x4b40…4b60       30 38 20 30 31 36 38 20 30 31 38 38 20 30 31 35 38 20 2d 2d 2b 2d 2d 2d 2b 0d 0a 0d 0a b0 30 31   ┆08 0168 0188 0158 --+---+     01┆
0x4b60…4b80       36 38 3a 36 36 35 35 20 20 38 42 46 38 09 4d 4f 56 20 20 20 44 49 2c 41 58 0d 0a b0 20 49 50 20   ┆68:6655  8BF8 MOV   DI,AX    IP ┆
0x4b80…4ba0       20 20 46 4c 20 20 20 41 58 20 20 20 43 58 20 20 20 44 58 20 20 20 42 58 20 20 20 53 50 20 20 20   ┆  FL   AX   CX   DX   BX   SP   ┆
0x4ba0…4bc0       42 50 20 20 20 53 49 20 20 20 44 49 20 20 20 45 53 20 20 20 43 53 20 20 20 53 53 20 20 20 44 53   ┆BP   SI   DI   ES   CS   SS   DS┆
0x4bc0…4be0       20 20 41 42 45 4c 47 53 49 0d 0a b0 36 36 35 37 20 30 33 35 36 20 30 30 30 30 20 30 31 32 30 20   ┆  ABELGSI   6657 0356 0000 0120 ┆
0x4be0…4c00       30 30 44 43 20 30 30 31 30 20 30 33 43 38 20 30 33 44 34 20 30 30 30 34 20 30 30 30 30 20 30 30   ┆00DC 0010 03C8 03D4 0004 0000 00┆
0x4c00…4c1b (38,) 30 38 20 30 31 36 38 20 30 31 38 38 20 30 31 35 38 20 2d 2d 2b 2d 2d 2d 2b 0d 0a                  ┆08 0168 0188 0158 --+---+  ┆
0x4c1b…4c54       Params {
0x4c1b…4c54         04 00 2d 4e 0c 00 06 00 00 00 00 03 01 46 31 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆  -N         F1                 ┆
0x4c1b…4c54         00 00 00 00 00 00 00 00 05 0f 19 23 2d 37 41 46 4b 55 5f 69 73 7d 87 ff 04                        ┆           #-7AFKU_iså   ┆
0x4c1b…4c54       }
0x4c54…4c8d       Params {
0x4c54…4c8d         04 00 2d 4e 0c 00 06 00 00 00 00 03 01 4e 31 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆  -N         N1                 ┆
0x4c54…4c8d         00 00 00 00 00 00 00 00 05 0f 19 23 2d 37 41 46 4b 55 5f 69 73 7d 87 ff 04                        ┆           #-7AFKU_iså   ┆
0x4c54…4c8d       }
0x4c8d…4ca0       0a 0d 0a b0 b0 2e 0d 0a 54 68 65 20 63 6f 6d 6d 61 6e 64                                          ┆     .  The command┆
0x4ca0…4cc0       20 6d 61 79 20 62 65 20 72 65 70 65 61 74 65 64 20 77 69 74 68 20 63 6f 6d 6d 61 2e 0d 0a 0d 0a   ┆ may be repeated with comma.    ┆
0x4cc0…4ce0       0d 0a a1 33 2e 36 20 20 47 6f 20 74 6f 20 28 45 78 69 74 20 74 6f 29 20 54 61 72 67 65 74 20 43   ┆   3.6  Go to (Exit to) Target C┆
0x4ce0…4d00       6f 64 65 20 43 6f 6d 6d 61 6e 64 2e 0d 0a 0d 0a 0d 0a 43 6f 6d 6d 61 6e 64 20 53 79 6e 74 61 78   ┆ode Command.      Command Syntax┆
0x4d00…4d20       20 3d 20 b0 47 20 28 43 29 20 28 73 65 6c 3a 6f 66 66 73 65 74 29 20 28 3b 73 65 6c 3a 6f 66 66   ┆ =  G (C) (sel:offset) (;sel:off┆
0x4d20…4d40       73 65 74 29 2e 0d 0a 0d 0a 0d 0a 54 68 69 73 20 63 6f 6d 6d 61 6e 64 20 65 78 69 74 73 20 74 6f   ┆set).      This command exits to┆
0x4d40…4d60       20 74 61 72 67 65 74 20 63 6f 64 65 2e 20 49 66 20 43 20 69 73 20 73 70 65 63 69 66 69 65 64 20   ┆ target code. If C is specified ┆
0x4d60…4d80       61 6c 6c 20 62 72 65 61 6b 70 6f 69 6e 74 73 20 0a 61 72 65 20 64 65 6c 65 74 65 64 2e 20 49 66   ┆all breakpoints  are deleted. If┆
0x4d80…4da0       20 6e 6f 20 73 74 61 72 74 20 61 64 64 72 65 73 73 20 69 73 20 67 69 76 65 6e 20 74 68 65 20 63   ┆ no start address is given the c┆
0x4da0…4dc0       75 72 72 65 6e 74 20 43 53 3a 49 50 20 69 73 20 75 73 65 64 2e 20 0a 49 66 20 61 6e 20 65 6e 64   ┆urrent CS:IP is used.  If an end┆
0x4dc0…4de0       20 61 64 64 72 65 73 73 20 69 73 20 67 69 76 65 6e 20 61 20 62 72 65 61 6b 70 6f 69 6e 74 20 28   ┆ address is given a breakpoint (┆
0x4de0…4e00       6e 6f 2e 20 30 29 20 69 73 20 73 65 74 20 61 74 20 74 68 61 74 20 0a 61 64 64 72 65 73 73 2e 20   ┆no. 0) is set at that  address. ┆
0x4e00…4e20 (39,) 4e 4f 54 45 20 74 68 61 74 20 79 6f 75 20 73 68 6f 75 6c 64 20 61 6c 77 61 79 73 20 72 65 73 65   ┆NOTE that you should always rese┆
0x4e20…4e40       72 76 65 20 62 72 65 61 6b 70 6f 69 6e 74 20 30 20 66 6f 72 20 74 68 65 20 47 20 0a 63 6f 6d 6d   ┆rve breakpoint 0 for the G  comm┆
0x4e40…4e60       61 6e 64 2e 0d 0a 0d 0a 0d 0a 8c 83 d4 0a 45 58 41 4d 50 4c 45 2e 0d 0a 0d 0a 0d 0a b0 2e 20 47   ┆and.          EXAMPLE.       . G┆
0x4e60…4e80       20 3b 36 36 35 45 f0 09 09 09 25 20 43 53 20 69 73 20 64 65 66 61 75 6c 74 0d 0a 0d 0a 0d 0a b0   ┆ ;665E    % CS is default       ┆
0x4e80…4ea0       42 72 65 61 6b 70 6f 69 6e 74 20 6e 6f 2e 20 30 20 61 74 20 30 31 36 38 3a 36 36 35 45 f0 0d 0a   ┆Breakpoint no. 0 at 0168:665E   ┆
0x4ea0…4ec0       b0 2e 20 0d 0a 0d 0a 0d 0a a1 33 2e 37 20 20 44 69 73 70 6c 61 79 20 54 61 72 67 65 74 20 52 65   ┆ .        3.7  Display Target Re┆
0x4ec0…4ee0       67 69 73 74 65 72 73 2e 0d 0a 0d 0a 0d 0a 43 6f 6d 6d 61 6e 64 20 53 79 6e 74 61 78 3a 20 b0 52   ┆gisters.      Command Syntax:  R┆
0x4ee0…4f00       20 28 72 65 67 2d 73 70 65 63 29 2e 0d 0a a1 0d 0a 0d 0a a1 e1 54 68 65 20 52 20 63 6f 6d 6d 61   ┆ (reg-spec).         The R comma┆
0x4f00…4f20       6e 64 20 69 73 20 75 73 65 64 20 74 6f 20 64 69 73 70 6c 61 79 20 61 6e 64 20 6d 6f 64 69 66 79   ┆nd is used to display and modify┆
0x4f20…4f40       20 74 68 65 20 76 61 6c 75 65 73 20 6f 66 20 74 68 65 20 72 65 67 69 73 74 65 72 20 0a 76 61 72   ┆ the values of the register  var┆
0x4f40…4f60       69 61 62 6c 65 73 20 69 6e 20 74 68 65 20 74 61 72 67 65 74 20 63 6f 6e 74 65 78 74 2e 20 49 66   ┆iables in the target context. If┆
0x4f60…4f80       20 74 68 65 20 72 65 67 69 73 74 65 72 20 73 70 65 63 69 66 69 63 61 74 69 6f 6e 20 69 73 20 6c   ┆ the register specification is l┆
0x4f80…4fa0       65 66 74 20 0a 6f 75 74 20 74 68 65 20 76 61 6c 75 65 73 20 6f 66 20 61 6c 6c 20 74 68 65 20 72   ┆eft  out the values of all the r┆
0x4fa0…4fc0       65 67 69 73 74 65 72 73 20 61 72 65 20 64 69 73 70 6c 61 79 65 64 2e 20 49 66 20 61 20 72 65 67   ┆egisters are displayed. If a reg┆
0x4fc0…4fe0       69 73 74 65 72 20 69 73 20 0a 73 70 65 63 69 66 69 65 64 20 74 68 65 20 76 61 6c 75 65 20 6f 66   ┆ister is  specified the value of┆
0x4fe0…5000       20 74 68 61 74 20 72 65 67 69 73 74 65 72 20 69 73 20 64 69 73 70 6c 61 79 65 64 20 66 6f 6c 6c   ┆ that register is displayed foll┆
0x5000…5020 (40,) 6f 77 65 64 20 62 79 20 27 2d 27 2e 20 41 20 0a 6e 65 77 20 76 61 6c 75 65 20 66 6f 72 20 74 68   ┆owed by '-'. A  new value for th┆
0x5020…5040       61 74 20 72 65 67 69 73 74 65 72 20 6d 61 79 20 6e 6f 77 20 62 65 20 65 6e 74 65 72 65 64 2c 20   ┆at register may now be entered, ┆
0x5040…5060       66 6f 6c 6c 6f 77 65 64 20 62 79 20 43 52 2e 20 49 66 20 6e 6f 20 0a 76 61 6c 75 65 20 69 73 20   ┆followed by CR. If no  value is ┆
0x5060…5080       73 70 65 63 69 66 69 65 64 20 74 68 65 20 6f 6c 64 20 76 61 6c 75 65 20 28 74 68 65 20 6f 6e 65   ┆specified the old value (the one┆
0x5080…50a0       20 64 69 73 70 6c 61 79 65 64 29 20 69 73 20 6b 65 70 74 2e 0d 0a 0d 0a 0d 0a 45 58 41 4d 50 4c   ┆ displayed) is kept.      EXAMPL┆
0x50a0…50c0       45 2e 0d 0a 0d 0a 0d 0a b0 2e 20 52 f0 09 09 09 09 25 20 64 69 73 70 6c 61 79 20 61 6c 6c 20 72   ┆E.       . R     % display all r┆
0x50c0…50ca       65 67 69 73 74 65 72 73 0d 0a                                                                     ┆egisters  ┆
0x50ca…5103       Params {
0x50ca…5103         04 00 2d 4e 0c 00 06 00 00 00 00 03 01 4e 31 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆  -N         N1                 ┆
0x50ca…5103         00 00 00 00 00 00 00 00 05 0f 19 23 2d 37 41 46 4b 55 5f 69 73 7d 87 ff 04                        ┆           #-7AFKU_iså   ┆
0x50ca…5103       }
0x5103…513c       Params {
0x5103…513c         04 00 2d 4e 0c 00 06 00 00 00 00 03 01 46 31 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆  -N         F1                 ┆
0x5103…513c         00 00 00 00 00 00 00 00 05 0f 19 23 2d 37 41 46 4b 55 5f 69 73 7d 87 ff 04                        ┆           #-7AFKU_iså   ┆
0x5103…513c       }
0x513c…5140       0a 0d 0a 20                                                                                       ┆    ┆
0x5140…5160       49 50 20 20 20 46 4c 20 20 20 41 58 20 20 20 43 58 20 20 20 44 58 20 20 20 42 58 20 20 20 53 50   ┆IP   FL   AX   CX   DX   BX   SP┆
0x5160…5180       20 20 20 42 50 20 20 20 53 49 20 20 20 44 49 20 20 20 45 53 20 20 20 43 53 20 20 20 53 53 20 20   ┆   BP   SI   DI   ES   CS   SS  ┆
0x5180…51a0       20 44 53 20 20 41 42 45 4c 47 53 49 0d 0a b0 36 36 35 45 20 30 32 38 36 20 30 30 30 30 20 30 31   ┆ DS  ABELGSI   665E 0286 0000 01┆
0x51a0…51c0       32 30 20 30 30 44 43 20 30 30 31 30 20 30 33 43 38 20 30 33 44 34 20 30 30 30 34 20 38 44 31 38   ┆20 00DC 0010 03C8 03D4 0004 8D18┆
0x51c0…51de       20 30 30 30 38 20 30 31 36 38 20 30 31 38 38 20 30 31 35 38 20 2b 2d 2d 2b 2d 2b 2b 0d 0a         ┆ 0008 0168 0188 0158 +--+-++  ┆
0x51de…5217       Params {
0x51de…5217         04 00 2d 4e 0c 00 06 00 00 00 00 03 01 46 31 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆  -N         F1                 ┆
0x51de…5217         00 00 00 00 00 00 00 00 05 0f 19 23 2d 37 41 46 4b 55 5f 69 73 7d 87 ff 04                        ┆           #-7AFKU_iså   ┆
0x51de…5217       }
0x5217…5250       Params {
0x5217…5250         04 00 2d 4e 0c 00 06 00 00 00 00 03 01 4e 31 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆  -N         N1                 ┆
0x5217…5250         00 00 00 00 00 00 00 00 05 0f 19 23 2d 37 41 46 4b 55 5f 69 73 7d 87 ff 04                        ┆           #-7AFKU_iså   ┆
0x5217…5250       }
0x5250…5260       0a 0d 0a 0d 0a b0 2e 20 52 41 58 f0 09 09 09 25                                                   ┆      . RAX    %┆
0x5260…5280       20 63 68 61 6e 67 65 20 72 65 67 69 73 74 65 72 20 41 58 0d 0a b0 41 58 3d 30 30 30 30 2d f0 b0   ┆ change register AX   AX=0000-  ┆
0x5280…52a0       31 32 33 34 f0 09 09 09 25 20 75 73 65 72 20 74 79 70 65 73 20 31 32 33 34 0d 0a b0 2e 20 52 41   ┆1234    % user types 1234   . RA┆
0x52a0…52c0       58 0d 0a b0 41 58 3d 31 32 33 34 2d f0 09 09 09 25 20 75 73 65 72 20 74 79 70 65 73 20 3c 63 72   ┆X   AX=1234-    % user types <cr┆
0x52c0…52c7       3e 0d 0a b0 2e 0d 0a                                                                              ┆>   .  ┆
0x52c7…52ca       FormFeed {
0x52c7…52ca         0c 83 c8                                                                                          ┆   ┆
0x52c7…52ca       }
0x52ca…52e0       0a a1 33 2e 38 20 20 44 69 73 70 6c 61 79 20 4d 61 63 68 69 6e 65                                 ┆  3.8  Display Machine┆
0x52e0…5300       20 53 74 61 74 75 73 20 57 6f 72 64 2e 0d 0a 0d 0a 0d 0a 43 6f 6d 6d 61 6e 64 20 53 79 6e 74 61   ┆ Status Word.      Command Synta┆
0x5300…5320       78 3a 20 b0 52 4d 53 57 2e 0d 0a 0d 0a 0d 0a 54 68 69 73 20 63 6f 6d 6d 61 6e 64 20 64 69 73 70   ┆x:  RMSW.      This command disp┆
0x5320…5340       6c 61 79 73 20 74 68 65 20 4d 61 63 68 69 6e 65 20 53 74 61 74 75 73 20 57 6f 72 64 2e 0d 0a 0d   ┆lays the Machine Status Word.   ┆
0x5340…5360       0a 0d 0a 45 58 41 4d 50 4c 45 2e 0d 0a 0d 0a 0d 0a b0 52 4d 53 57 0d 0a b0 4d 53 57 20 3d 20 46   ┆   EXAMPLE.       RMSW   MSW = F┆
0x5360…5380       46 46 44 0d 0a b0 2e 20 0d 0a 0d 0a 0d 0a a1 33 2e 39 20 20 44 69 73 70 6c 61 79 2f 43 68 61 6e   ┆FFD   .        3.9  Display/Chan┆
0x5380…53a0       67 65 2f 44 69 73 61 73 73 65 6d 62 6c 65 20 4d 65 6d 6f 72 79 2e 0d 0a 0d 0a 0d 0a 43 6f 6d 6d   ┆ge/Disassemble Memory.      Comm┆
0x53a0…53c0       61 6e 64 20 53 79 6e 74 61 78 3a 20 b0 28 63 6f 75 6e 74 29 20 4d 28 57 2f 58 2f 50 29 20 28 61   ┆and Syntax:  (count) M(W/X/P) (a┆
0x53c0…53e0       64 64 72 20 74 79 70 65 29 28 3d 76 61 6c 75 65 29 20 28 2c 29 20 28 5e 29 2e 0d 0a 0d 0a 0d 0a   ┆ddr type)(=value) (,) (^).      ┆
0x53e0…5400       54 68 65 20 4d 20 63 6f 6d 6d 61 6e 64 20 69 73 20 75 73 65 64 20 74 6f 20 69 6e 73 70 65 63 74   ┆The M command is used to inspect┆
0x5400…5420 (42,) 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 20 74 68 65 20 63 6f 6e 74 65 6e 74 73 20 6f 66 20 0a   ┆ and/or modify the contents of  ┆
0x5420…5440       73 70 65 63 69 66 69 65 64 20 6d 65 6d 6f 72 79 20 6c 6f 63 61 74 69 6f 6e 73 2e 20 49 74 20 6f   ┆specified memory locations. It o┆
0x5440…5460       70 65 72 61 74 65 73 20 69 6e 20 74 68 72 65 65 20 64 69 66 66 65 72 65 6e 74 20 77 61 79 73 2c   ┆perates in three different ways,┆
0x5460…5480       20 0a 64 65 70 65 6e 64 69 6e 67 20 6f 6e 20 74 68 65 20 70 72 65 73 65 6e 63 65 20 6f 66 20 74   ┆  depending on the presence of t┆
0x5480…54a0       68 65 20 63 6f 75 6e 74 20 61 6e 64 20 76 61 6c 75 65 20 73 70 65 63 69 66 69 63 61 74 69 6f 6e   ┆he count and value specification┆
0x54a0…54c0       73 2e 20 49 6e 20 61 6c 6c 20 0a 63 61 73 65 73 20 74 68 65 20 6f 70 65 72 80 61 74 69 6f 6e 20   ┆s. In all  cases the oper ation ┆
0x54c0…54e0       69 73 20 70 65 72 66 6f 72 6d 65 64 20 6f 6e 20 63 6f 6e 73 65 63 75 74 69 76 65 20 6c 6f 63 61   ┆is performed on consecutive loca┆
0x54e0…5500       74 69 6f 6e 73 2c 20 62 65 67 69 6e 6e 69 6e 67 20 61 74 20 0a 74 68 65 20 73 70 65 63 69 66 69   ┆tions, beginning at  the specifi┆
0x5500…5520       65 64 20 61 64 64 72 65 73 73 2e 20 49 66 20 58 20 69 73 20 73 70 65 63 69 66 69 65 64 20 6d 65   ┆ed address. If X is specified me┆
0x5520…5540       6d 6f 72 79 20 69 73 20 69 6e 73 70 65 63 74 65 64 20 69 6e 20 75 6e 69 74 73 20 0a 6f 66 20 28   ┆mory is inspected in units  of (┆
0x5540…5560       76 61 72 69 61 62 6c 65 20 6c 65 6e 67 74 68 29 20 70 72 6f 63 65 73 73 6f 72 20 69 6e 73 74 72   ┆variable length) processor instr┆
0x5560…5580       75 63 74 69 6f 6e 73 2c 20 69 2e 65 2e 20 61 20 64 69 73 61 73 73 65 6d 62 6c 65 72 20 69 73 20   ┆uctions, i.e. a disassembler is ┆
0x5580…55a0       0a 69 6e 76 6f 6b 65 64 2e 20 49 66 20 57 20 69 73 20 73 70 65 63 69 66 69 65 64 20 74 68 65 20   ┆ invoked. If W is specified the ┆
0x55a0…55c0       75 6e 69 74 20 74 6f 20 62 65 20 69 6e 73 70 65 63 74 65 64 2f 6d 6f 64 69 66 69 65 64 20 69 73   ┆unit to be inspected/modified is┆
0x55c0…55e0       20 61 20 77 6f 72 64 2c 20 0a 6f 74 68 65 72 77 69 73 65 20 61 20 62 79 74 65 2e 20 49 66 20 50   ┆ a word,  otherwise a byte. If P┆
0x55e0…5600       20 69 73 20 73 70 65 63 69 66 69 65 64 20 61 20 6d 61 78 69 6d 75 6d 20 36 20 64 69 67 69 74 20   ┆ is specified a maximum 6 digit ┆
0x5600…5620 (43,) 6c 6f 6e 67 20 68 65 78 61 64 65 63 69 6d 61 6c 20 0a 61 64 64 72 65 73 73 20 6d 75 73 74 20 62   ┆long hexadecimal  address must b┆
0x5620…5640       65 20 67 69 76 65 6e 2c 20 6f 74 68 65 72 77 69 73 65 20 61 20 6c 6f 67 69 63 61 6c 20 73 65 6c   ┆e given, otherwise a logical sel┆
0x5640…5660       65 63 74 6f 72 3a 6f 66 66 73 65 74 20 61 64 64 72 65 73 73 20 69 73 20 0a 65 78 70 65 63 74 65   ┆ector:offset address is  expecte┆
0x5660…5680       64 2e 0d 0a 0d 0a 0d 0a 49 66 20 61 20 76 61 6c 75 65 20 69 73 20 73 70 65 63 69 66 69 65 64 2c   ┆d.      If a value is specified,┆
0x5680…56a0       20 69 6e 20 77 68 69 63 68 20 63 61 73 65 20 74 68 65 20 27 3d 27 20 28 65 71 75 61 6c 20 73 69   ┆ in which case the '=' (equal si┆
0x56a0…56c0       67 6e 29 20 6d 75 73 74 20 62 65 20 0a 74 79 70 65 64 2c 20 69 74 20 69 73 20 61 73 73 69 67 6e   ┆gn) must be  typed, it is assign┆
0x56c0…56e0       65 64 20 74 6f 20 61 73 20 6d 61 6e 79 20 63 6f 6e 73 65 63 75 74 69 76 65 20 75 6e 69 74 73 20   ┆ed to as many consecutive units ┆
0x56e0…5700       28 62 79 74 65 73 20 6f 72 20 77 6f 72 64 73 29 20 6f 66 20 0a 6d 65 6d 6f 72 79 20 61 73 20 73   ┆(bytes or words) of  memory as s┆
0x5700…5720       70 65 63 69 66 69 65 64 20 62 79 20 74 68 65 20 63 6f 75 6e 74 2c 20 31 20 69 66 20 74 68 65 20   ┆pecified by the count, 1 if the ┆
0x5720…5740       63 6f 75 6e 74 20 69 73 20 6f 6d 69 74 74 65 64 2e 0d 0a 0d 0a 0d 0a 8c 83 e0 0a 49 66 20 6e 6f   ┆count is omitted.          If no┆
0x5740…5760       20 76 61 6c 75 65 20 69 73 20 73 70 65 63 69 66 69 65 64 2c 20 62 75 74 20 61 20 63 6f 75 6e 74   ┆ value is specified, but a count┆
0x5760…5780       20 69 73 2c 20 6f 72 20 69 66 20 58 20 69 73 20 73 70 65 63 69 66 69 65 64 2c 20 74 68 65 20 0a   ┆ is, or if X is specified, the  ┆
0x5780…57a0       63 6f 6d 6d 61 6e 64 20 69 73 20 61 20 70 75 72 65 20 64 69 73 70 6c 61 79 20 63 6f 6d 6d 61 6e   ┆command is a pure display comman┆
0x57a0…57c0       64 2e 20 31 36 20 62 79 74 65 73 2f 38 20 77 6f 72 64 73 2f 31 20 69 6e 73 74 72 75 63 74 69 6f   ┆d. 16 bytes/8 words/1 instructio┆
0x57c0…57e0       6e 20 61 72 65 20 0a 64 69 73 70 6c 61 79 65 64 20 70 65 72 20 6c 69 6e 65 20 69 6e 20 68 65 78   ┆n are  displayed per line in hex┆
0x57e0…5800       61 64 65 63 69 6d 61 6c 2f 6d 6e 65 6d 6f 6e 69 63 2e 20 54 68 65 20 6e 75 6d 62 65 72 20 6f 66   ┆adecimal/mnemonic. The number of┆
0x5800…5820 (44,) 20 75 6e 69 74 73 20 74 6f 20 62 65 20 0a 64 69 73 70 6c 61 79 65 64 20 69 73 20 73 70 65 63 69   ┆ units to be  displayed is speci┆
0x5820…5840       66 69 65 64 20 62 79 20 74 68 65 20 63 6f 75 6e 74 2e 20 49 66 2c 20 69 6e 20 74 68 69 73 20 63   ┆fied by the count. If, in this c┆
0x5840…5860       61 73 65 2c 20 61 20 27 2c 27 20 69 73 20 65 6e 74 65 72 65 64 20 0a 69 6e 20 72 65 73 70 6f 6e   ┆ase, a ',' is entered  in respon┆
0x5860…5880       73 65 20 74 6f 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 6f 6d 6d 61 6e 64 20 70 72 6f 6d   ┆se to the following command prom┆
0x5880…58a0       70 74 20 74 68 65 20 73 61 6d 65 20 6e 75 6d 62 65 72 20 6f 66 20 0a 62 79 74 65 73 2f 77 6f 72   ┆pt the same number of  bytes/wor┆
0x58a0…58c0       64 73 2f 69 6e 73 74 72 75 63 74 69 6f 6e 73 20 69 73 20 61 67 61 69 6e 20 64 69 73 70 6c 61 79   ┆ds/instructions is again display┆
0x58c0…58e0       65 64 20 66 72 6f 6d 20 73 75 62 73 65 71 75 65 6e 74 20 6d 65 6d 6f 72 79 20 0a 6c 6f 63 61 74   ┆ed from subsequent memory  locat┆
0x58e0…5900       69 6f 6e 73 2e 20 54 68 69 73 20 65 78 65 72 63 69 73 65 20 6d 61 79 20 62 65 20 72 65 70 65 61   ┆ions. This exercise may be repea┆
0x5900…5920       74 65 64 20 69 6e 64 65 66 69 6e 69 74 65 6c 79 2e 0d 0a 0d 0a 0d 0a 49 66 20 6e 6f 20 76 61 6c   ┆ted indefinitely.      If no val┆
0x5920…5940       75 65 2c 20 6e 6f 20 63 6f 75 6e 74 2c 20 61 6e 64 20 6e 6f 20 58 20 69 73 20 73 70 65 63 69 66   ┆ue, no count, and no X is specif┆
0x5940…5960       69 65 64 2c 20 74 68 65 20 63 6f 6d 6d 61 6e 64 20 77 6f 72 6b 73 20 61 73 20 0a 66 6f 6c 6c 6f   ┆ied, the command works as  follo┆
0x5960…5980       77 73 3a 20 54 68 65 20 73 70 65 63 69 66 69 65 64 20 61 64 64 72 65 73 73 20 61 6e 64 20 74 68   ┆ws: The specified address and th┆
0x5980…59a0       65 20 63 75 72 72 65 6e 74 20 63 6f 6e 74 65 6e 74 73 20 6f 66 20 74 68 65 20 6d 65 6d 6f 72 79   ┆e current contents of the memory┆
0x59a0…59c0       20 0a 75 6e 69 74 20 28 62 79 74 65 20 6f 72 20 77 6f 72 64 29 20 61 74 20 74 68 61 74 20 6c 6f   ┆  unit (byte or word) at that lo┆
0x59c0…59e0       63 61 74 69 6f 6e 20 61 72 65 20 64 69 73 70 6c 61 79 65 64 2c 20 66 6f 6c 6c 6f 77 65 64 20 62   ┆cation are displayed, followed b┆
0x59e0…5a00       79 20 27 2d 27 2e 20 41 20 0a 6e 65 77 20 76 61 6c 75 65 20 74 6f 20 62 65 20 65 6e 74 65 72 65   ┆y '-'. A  new value to be entere┆
0x5a00…5a20 (45,) 64 20 69 6e 74 6f 20 74 68 61 74 20 6c 6f 63 61 74 69 6f 6e 20 6d 61 79 20 6e 6f 77 20 62 65 20   ┆d into that location may now be ┆
0x5a20…5a40       65 6e 74 65 72 65 64 2c 20 66 6f 6c 6c 6f 77 65 64 20 0a 62 79 20 27 2c 27 2c 20 27 5e 27 2c 20   ┆entered, followed  by ',', '^', ┆
0x5a40…5a60       6f 72 20 43 52 2e 20 49 66 20 6e 6f 20 76 61 6c 75 65 20 69 73 20 73 70 65 63 69 66 69 65 64 20   ┆or CR. If no value is specified ┆
0x5a60…5a80       74 68 65 20 6f 6c 64 20 76 61 6c 75 65 20 28 74 68 65 20 6f 6e 65 20 0a 64 69 73 70 6c 61 79 65   ┆the old value (the one  displaye┆
0x5a80…5aa0       64 29 20 69 73 20 6b 65 70 74 2e 20 49 66 20 43 52 20 69 73 20 65 6e 74 65 72 65 64 20 74 68 65   ┆d) is kept. If CR is entered the┆
0x5aa0…5ac0       20 63 6f 6d 6d 61 6e 64 20 74 65 72 6d 69 6e 61 74 65 73 3b 20 69 66 20 27 2c 27 20 6f 72 20 0a   ┆ command terminates; if ',' or  ┆
0x5ac0…5ae0       27 5e 27 20 69 73 20 69 6e 70 75 74 20 74 68 65 20 61 64 64 72 65 73 73 20 69 73 20 69 6e 63 72   ┆'^' is input the address is incr┆
0x5ae0…5b00       65 6d 65 6e 74 65 64 2f 64 65 63 72 65 6d 65 6e 74 65 64 20 62 79 20 31 20 28 62 79 74 65 29 20   ┆emented/decremented by 1 (byte) ┆
0x5b00…5b20       6f 72 20 32 20 0a 28 77 6f 72 64 29 20 61 6e 64 20 74 68 65 20 6f 70 65 72 61 74 69 6f 6e 20 72   ┆or 2  (word) and the operation r┆
0x5b20…5b40       65 70 65 61 74 65 64 2e 0d 0a 0d 0a 0d 0a 49 66 20 61 20 6c 6f 67 69 63 61 6c 20 61 64 64 72 65   ┆epeated.      If a logical addre┆
0x5b40…5b60       73 73 20 69 73 20 67 69 76 65 6e 20 28 73 65 6c 65 63 74 6f 72 3a 6f 66 66 73 65 74 29 2c 20 61   ┆ss is given (selector:offset), a┆
0x5b60…5b80       6e 64 20 61 6e 20 61 74 74 65 6d 70 74 20 74 6f 20 0a 64 69 73 70 6c 61 79 2f 73 75 62 73 74 69   ┆nd an attempt to  display/substi┆
0x5b80…5ba0       74 75 74 65 2f 64 69 73 61 73 73 65 6d 62 6c 65 20 6d 65 6d 6f 72 79 20 6f 75 74 73 69 64 65 20   ┆tute/disassemble memory outside ┆
0x5ba0…5bc0       74 68 65 20 64 65 73 63 72 69 70 74 6f 72 20 6c 69 6d 69 74 20 69 73 20 0a 6d 61 64 65 20 74 68   ┆the descriptor limit is  made th┆
0x5bc0…5be0       65 6e 20 61 20 6d 65 73 73 61 67 65 20 69 73 20 77 72 69 74 74 65 6e 20 74 6f 20 74 68 65 20 63   ┆en a message is written to the c┆
0x5be0…5c00       6f 6e 73 6f 6c 65 2e 0d 0a 0d 0a 0d 0a b0 53 65 6c 65 63 74 6f 72 20 6c 69 6d 69 74 20 65 78 63   ┆onsole.       Selector limit exc┆
0x5c00…5c20 (46,) 65 65 64 65 64 0d 0a 0d 0a 0d 0a 4e 4f 54 45 20 74 68 61 74 20 69 66 20 61 20 70 68 79 73 69 63   ┆eeded      NOTE that if a physic┆
0x5c20…5c40       61 6c 20 61 64 64 72 65 73 73 20 69 73 20 73 75 70 70 6c 69 65 64 20 74 68 65 6e 20 74 68 65 72   ┆al address is supplied then ther┆
0x5c40…5c60       65 20 69 73 20 6e 6f 20 0a 72 65 73 74 72 69 63 74 69 6f 6e 73 20 74 6f 20 74 68 65 20 61 64 64   ┆e is no  restrictions to the add┆
0x5c60…5c80       72 65 73 73 20 65 78 63 65 70 74 20 69 74 20 6d 75 73 74 20 62 65 20 69 6e 20 74 68 65 20 31 36   ┆ress except it must be in the 16┆
0x5c80…5ca0       20 4d 20 62 79 74 65 20 6d 65 6d 6f 72 79 20 0a 73 70 61 63 65 2e 0d 0a 0d 0a 0d 0a 4e 4f 54 45   ┆ M byte memory  space.      NOTE┆
0x5ca0…5cc0       20 61 6c 73 6f 20 74 68 61 74 20 74 68 65 20 44 65 62 75 67 20 4d 6f 6e 69 74 6f 72 20 61 6c 77   ┆ also that the Debug Monitor alw┆
0x5cc0…5ce0       61 79 73 20 77 72 69 74 65 73 20 62 79 74 65 73 20 74 6f 20 6d 65 6d 6f 72 79 2c 20 65 76 65 6e   ┆ays writes bytes to memory, even┆
0x5ce0…5d00       20 0a 69 66 20 77 6f 72 64 20 69 73 20 73 70 65 63 69 66 69 65 64 2e 20 57 6f 72 64 20 63 6f 6d   ┆  if word is specified. Word com┆
0x5d00…5d20       6d 61 6e 64 73 20 69 73 20 64 69 76 69 64 65 64 20 69 6e 74 6f 20 74 77 6f 20 73 75 63 63 65 73   ┆mands is divided into two succes┆
0x5d20…5d40       73 69 76 65 20 0a 62 79 74 65 20 6f 70 65 72 61 74 69 6f 6e 73 2e 0d 0a 0d 0a 0d 0a 45 58 41 4d   ┆sive  byte operations.      EXAM┆
0x5d40…5d60       50 4c 45 2e 0d 0a 0d 0a 0d 0a 8c 83 e0 0a b0 2e 20 34 4d 58 f0 20 09 09 09 25 20 43 53 3a 49 50   ┆PLE.           . 4MX     % CS:IP┆
0x5d60…5d80       20 69 73 20 64 65 66 61 75 6c 74 0d 0a 0d 0a b0 30 31 36 38 3a 36 36 35 45 20 20 36 42 43 30 30   ┆ is default     0168:665E  6BC00┆
0x5d80…5da0       41 20 09 49 4d 55 4c 20 20 20 41 58 2c 41 58 2c 30 30 30 41 48 09 3b 20 49 3d 2b 31 30 0d 0a b0   ┆A  IMUL   AX,AX,000AH ; I=+10   ┆
0x5da0…5dc0       30 31 36 38 3a 36 36 36 31 20 20 38 42 46 30 09 4d 4f 56 20 20 20 20 53 49 2c 41 58 0d 0a b0 30   ┆0168:6661  8BF0 MOV    SI,AX   0┆
0x5dc0…5de0       31 36 38 3a 36 36 36 33 20 20 38 31 43 36 36 45 32 35 09 41 44 44 20 20 20 20 53 49 2c 32 35 36   ┆168:6663  81C66E25 ADD    SI,256┆
0x5de0…5e00       45 09 3b 20 49 3d 2b 39 35 38 32 0d 0a b0 30 31 36 38 3a 36 36 36 37 20 20 36 38 38 32 30 30 09   ┆E ; I=+9582   0168:6667  688200 ┆
0x5e00…5e20 (47,) 50 55 53 48 20 20 20 31 33 30 0d 0a 0d 0a b0 2e 20 32 30 20 4d 20 44 53 3a 30 f0 09 09 09 25 20   ┆PUSH   130     . 20 M DS:0    % ┆
0x5e20…5e40       64 69 73 70 6c 61 79 20 62 79 74 65 77 69 73 65 2c 20 28 2e 29 20 6d 65 61 6e 73 20 6e 6f 6e 0d   ┆display bytewise, (.) means non ┆
0x5e40…5e41       0a                                                                                                ┆ ┆
0x5e41…5e7a       Params {
0x5e41…5e7a         04 00 2d 4e 0c 00 06 00 00 00 00 03 01 4e 31 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆  -N         N1                 ┆
0x5e41…5e7a         00 00 00 00 00 00 00 00 05 0f 19 23 2d 37 41 46 4b 55 5f 69 73 7d 87 ff 04                        ┆           #-7AFKU_iså   ┆
0x5e41…5e7a       }
0x5e7a…5eb3       Params {
0x5e7a…5eb3         04 00 2d 4e 0c 00 06 00 00 00 00 03 01 46 31 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆  -N         F1                 ┆
0x5e7a…5eb3         00 00 00 00 00 00 00 00 05 0f 19 23 2d 37 41 46 4b 55 5f 69 73 7d 87 ff 04                        ┆           #-7AFKU_iså   ┆
0x5e7a…5eb3       }
0x5eb3…5ec0       0a 09 09 09 09 25 20 61 73 63 69 69 20                                                            ┆     % ascii ┆
0x5ec0…5ee0       63 68 61 72 61 63 74 65 72 0d 0a b0 30 31 35 38 3a 30 36 46 30 20 20 31 45 20 36 31 20 36 30 20   ┆character   0158:06F0  1E 61 60 ┆
0x5ee0…5f00       30 31 20 45 36 20 32 31 20 36 30 20 30 31 20 37 43 20 34 44 20 36 38 20 30 31 20 32 31 20 34 31   ┆01 E6 21 60 01 7C 4D 68 01 21 41┆
0x5f00…5f20       20 36 38 20 30 31 20 20 20 2e 61 27 2e 2e 21 27 2e 7c 4d 68 2e 21 41 68 2e 0d 0a b0 30 31 35 38   ┆ 68 01   .a'..!'.øMh.!Ah.   0158┆
0x5f20…5f40       3a 30 37 30 30 20 20 37 43 20 36 44 20 36 38 20 30 31 09 09 09 09 20 20 20 20 20 20 20 7c 6d 68   ┆:0700  7C 6D 68 01           ømh┆
0x5f40…5f43       2e 0d 0a                                                                                          ┆.  ┆
0x5f43…5f7c       Params {
0x5f43…5f7c         04 00 2d 4e 0c 00 06 00 00 00 00 03 01 46 31 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆  -N         F1                 ┆
0x5f43…5f7c         00 00 00 00 00 00 00 00 05 0f 19 23 2d 37 41 46 4b 55 5f 69 73 7d 87 ff 04                        ┆           #-7AFKU_iså   ┆
0x5f43…5f7c       }
0x5f7c…5fb5       Params {
0x5f7c…5fb5         04 00 2d 4e 0c 00 06 00 00 00 00 03 01 4e 31 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆  -N         N1                 ┆
0x5f7c…5fb5         00 00 00 00 00 00 00 00 05 0f 19 23 2d 37 41 46 4b 55 5f 69 73 7d 87 ff 04                        ┆           #-7AFKU_iså   ┆
0x5f7c…5fb5       }
0x5fb5…5fc0       0a 0d 0a b0 2e f0 0d 0a 0d 0a b0                                                                  ┆    .      ┆
0x5fc0…5fe0       2e 20 31 30 20 4d 57 20 44 53 3a 36 46 30 f0 09 09 25 20 64 69 73 70 6c 61 79 20 77 6f 72 64 77   ┆. 10 MW DS:6F0   % display wordw┆
0x5fe0…6000       69 73 65 0d 0a 0d 0a b0 30 31 35 38 3a 30 36 46 30 20 20 36 31 31 45 20 30 31 36 30 20 32 31 45   ┆ise     0158:06F0  611E 0160 21E┆
0x6000…6020 (48,) 36 20 30 31 36 30 20 34 44 37 43 20 30 31 36 38 20 34 31 32 31 20 30 31 36 38 0d 0a b0 30 31 35   ┆6 0160 4D7C 0168 4121 0168   015┆
0x6020…6040       38 3a 30 37 30 30 20 20 36 44 37 43 20 30 31 36 38 0d 0a 0d 0a b0 2e 20 31 30 20 4d 57 50 20 46   ┆8:0700  6D7C 0168     . 10 MWP F┆
0x6040…6060       46 46 35 f0 09 09 09 25 20 64 69 73 70 6c 61 79 20 70 68 79 73 69 63 61 6c 20 6d 65 6d 6f 72 79   ┆FF5    % display physical memory┆
0x6060…6080       0d 0a 0d 0a b0 30 30 46 46 46 35 20 20 30 30 30 30 20 30 30 30 30 20 30 30 30 30 20 30 30 30 30   ┆     00FFF5  0000 0000 0000 0000┆
0x6080…60a0       20 30 30 30 30 20 30 30 30 30 20 30 30 30 30 20 30 30 30 30 0d 0a b0 30 31 30 30 30 35 20 20 30   ┆ 0000 0000 0000 0000   010005  0┆
0x60a0…60c0       30 30 30 20 30 30 30 30 0d 0a 0d 0a b0 2e 20 4d 57 50 20 46 46 46 35 f0 09 09 09 25 20 73 75 62   ┆000 0000     . MWP FFF5    % sub┆
0x60c0…60e0       73 74 69 74 75 74 65 20 70 68 79 73 69 63 61 6c 20 6d 65 6d 6f 72 79 0d 0a 0d 0a b0 30 30 46 46   ┆stitute physical memory     00FF┆
0x60e0…6100       46 35 20 20 30 30 30 30 2d 31 32 33 34 2c f0 09 09 25 20 75 73 65 72 20 74 79 70 65 73 20 31 32   ┆F5  0000-1234,   % user types 12┆
0x6100…6120       33 34 20 61 6e 64 20 28 2c 29 0d 0a b0 30 30 46 46 46 37 20 20 30 30 30 30 2d 35 36 37 38 2c f0   ┆34 and (,)   00FFF7  0000-5678, ┆
0x6120…6140       09 09 25 20 75 73 65 72 20 74 79 70 65 73 20 35 36 37 38 20 61 6e 64 20 28 2c 29 0d 0a b0 30 30   ┆  % user types 5678 and (,)   00┆
0x6140…6160       46 46 46 39 20 20 30 30 30 30 2d 5e f0 09 09 25 20 75 73 65 72 20 74 79 70 65 73 20 5e 0d 0a b0   ┆FFF9  0000-^   % user types ^   ┆
0x6160…6180       30 30 46 46 46 37 20 20 35 36 37 38 2d 5e f0 09 09 25 20 75 73 65 72 20 74 79 70 65 73 20 5e 0d   ┆00FFF7  5678-^   % user types ^ ┆
0x6180…61a0       0a b0 30 30 46 46 46 35 20 20 31 32 33 34 2d 09 f0 09 09 25 20 75 73 65 72 20 74 79 70 65 73 20   ┆  00FFF5  1234-    % user types ┆
0x61a0…61c0       3c 63 72 3e 0d 0a 0d 0a b0 2e 20 0d 0a 0d 0a 0d 0a b0 31 30 30 20 4d 57 20 44 53 3a 31 30 30 30   ┆<cr>     .        100 MW DS:1000┆
0x61c0…61e0       20 3d 20 31 32 33 34 f0 09 09 25 20 62 6c 6f 63 6b 20 61 73 73 69 67 6e 6d 65 6e 74 0d 0a 0d 0a   ┆ = 1234   % block assignment    ┆
0x61e0…6200       0d 0a 8c 83 c8 0a a1 33 2e 31 30 20 49 6e 70 75 74 20 66 72 6f 6d 20 50 6f 72 74 2e 0d 0a 0d 0a   ┆       3.10 Input from Port.    ┆
0x6200…6220 (49,) 0d 0a 43 6f 6d 6d 61 6e 64 20 53 79 6e 74 61 78 3a 20 e1 b0 28 63 6f 75 6e 74 29 20 49 20 28 57   ┆  Command Syntax:   (count) I (W┆
0x6220…6240       29 20 70 6f 72 74 20 28 2c 29 2e 0d 0a 0d 0a 0d 0a 41 20 6e 75 6d 62 65 72 20 6f 66 20 62 79 74   ┆) port (,).      A number of byt┆
0x6240…6260       65 73 20 6f 72 2c 20 69 66 20 57 20 69 73 20 73 70 65 63 69 66 69 65 64 2c 20 77 6f 72 64 73 2c   ┆es or, if W is specified, words,┆
0x6260…6280       20 61 72 65 20 72 65 61 64 20 66 72 6f 6d 20 74 68 65 20 0a 73 70 65 63 69 66 69 65 64 20 69 6e   ┆ are read from the  specified in┆
0x6280…62a0       70 75 74 20 70 6f 72 74 20 61 6e 64 20 64 69 73 70 6c 61 79 65 64 2e 20 54 68 65 20 6e 75 6d 62   ┆put port and displayed. The numb┆
0x62a0…62c0       65 72 20 6f 66 20 69 6e 70 75 74 20 6f 70 65 72 61 74 69 6f 6e 73 20 69 73 20 0a 73 70 65 63 69   ┆er of input operations is  speci┆
0x62c0…62e0       66 69 65 64 20 62 79 20 63 6f 75 6e 74 2e 20 44 65 66 61 75 6c 74 20 69 73 20 31 2e 20 52 65 70   ┆fied by count. Default is 1. Rep┆
0x62e0…6300       65 74 69 74 69 6f 6e 20 63 61 6e 20 62 65 20 72 65 71 75 65 73 74 65 64 20 28 27 2c 27 29 2e 0d   ┆etition can be requested (','). ┆
0x6300…6320       0a 0d 0a 0d 0a 45 58 41 4d 50 4c 45 2e 0d 0a 0d 0a 0d 0a b0 2e 20 49 44 45 f0 09 09 09 25 20 69   ┆     EXAMPLE.       . IDE    % i┆
0x6320…6340       6e 70 75 74 20 66 72 6f 6d 20 62 79 74 65 20 70 6f 72 74 0d 0a b0 36 38 0d 0a b0 b0 2e 20 49 57   ┆nput from byte port   68    . IW┆
0x6340…6360       44 45 f0 09 09 09 25 20 69 6e 70 75 74 20 66 72 6f 6d 20 77 6f 72 64 20 70 6f 72 74 0d 0a b0 45   ┆DE    % input from word port   E┆
0x6360…6380       38 36 38 0d 0a b0 2e 20 2c f0 09 09 09 09 25 20 72 65 70 65 61 74 0d 0a b0 45 38 36 38 0d 0a 0d   ┆868   . ,     % repeat   E868   ┆
0x6380…63a0       0a 0d 0a a1 33 2e 31 31 20 4f 75 74 70 75 74 20 74 6f 20 50 6f 72 74 2e 0d 0a 0d 0a 0d 0a 43 6f   ┆    3.11 Output to Port.      Co┆
0x63a0…63c0       6d 6d 61 6e 64 e1 20 53 79 6e 74 61 78 3a 20 b0 4f 20 28 57 29 20 70 6f 72 74 20 3d 20 76 61 6c   ┆mmand  Syntax:  O (W) port = val┆
0x63c0…63e0       75 65 2e 0d 0a 0d 0a 0d 0a 54 68 65 20 73 70 65 63 69 66 69 65 64 20 76 61 6c 75 65 20 69 73 20   ┆ue.      The specified value is ┆
0x63e0…6400       77 72 69 74 74 65 6e 20 74 6f 20 74 68 65 20 73 70 65 63 69 66 69 65 64 20 6f 75 74 70 75 74 20   ┆written to the specified output ┆
0x6400…6420 (50,) 70 6f 72 74 20 61 73 20 61 20 62 79 74 65 20 0a 6f 72 2c 20 69 66 20 57 20 69 73 20 73 70 65 63   ┆port as a byte  or, if W is spec┆
0x6420…6440       69 66 69 65 64 2c 20 61 73 20 61 20 77 6f 72 64 2e 0d 0a 0d 0a 0d 0a 45 58 41 4d 50 4c 45 2e 0d   ┆ified, as a word.      EXAMPLE. ┆
0x6440…6460       0a 0d 0a 0d 0a b0 2e 20 4f 44 45 3d 31 32 f0 09 09 09 25 20 6f 75 74 70 75 74 20 74 6f 20 62 79   ┆      . ODE=12    % output to by┆
0x6460…6480       74 65 20 70 6f 72 74 0d 0a 0d 0a b0 2e 20 4f 57 44 45 3d 31 32 33 34 f0 09 09 09 25 20 6f 75 74   ┆te port     . OWDE=1234    % out┆
0x6480…64a0       70 75 74 20 74 6f 20 77 6f 72 64 20 70 6f 72 74 0d 0a 0d 0a 0d 0a 8c 83 e0 0a a1 33 2e 31 32 20   ┆put to word port           3.12 ┆
0x64a0…64c0       4c 6f 61 64 20 28 62 6f 6f 74 29 20 66 72 6f 6d 20 64 69 73 63 2e 0d 0a 0d 0a 0d 0a 43 6f 6d 6d   ┆Load (boot) from disc.      Comm┆
0x64c0…64e0       61 6e 64 20 53 79 6e 74 61 78 3a e1 20 b0 4c 20 28 57 2f 46 29 20 28 47 29 20 28 3a 20 73 74 72   ┆and Syntax:   L (W/F) (G) (: str┆
0x64e0…6500       69 6e 67 29 2e 0d 0a 0d 0a 0d 0a 54 68 65 20 4c 20 63 6f 6d 6d 61 6e 64 20 73 74 61 72 74 73 20   ┆ing).      The L command starts ┆
0x6500…6520       74 68 65 20 64 69 73 6b 20 62 6f 6f 74 6c 6f 61 64 65 72 2e 20 49 66 20 47 20 69 73 20 73 70 65   ┆the disk bootloader. If G is spe┆
0x6520…6540       63 69 80 66 69 65 64 20 61 6e 64 20 69 66 20 74 68 65 20 0a 6c 6f 61 64 69 6e 67 20 69 73 20 73   ┆ci fied and if the  loading is s┆
0x6540…6560       75 63 63 65 73 66 75 6c 6c 20 74 68 65 6e 20 74 68 65 20 44 65 62 75 67 20 4d 6f 6e 69 74 6f 72   ┆uccesfull then the Debug Monitor┆
0x6560…6580       20 6d 61 6b 65 73 20 61 20 54 61 73 6b 20 53 74 61 74 65 20 53 65 67 6d 65 6e 74 20 0a 66 6f 72   ┆ makes a Task State Segment  for┆
0x6580…65a0       20 74 68 65 20 74 61 72 67 65 74 20 63 6f 64 65 20 61 6e 64 20 73 74 61 72 74 73 20 65 78 65 63   ┆ the target code and starts exec┆
0x65a0…65c0       75 74 69 6f 6e 2e 0d 0a 0d 0a 0d 0a 49 66 20 74 68 65 20 47 20 69 73 20 6f 6d 69 74 74 65 64 2c   ┆ution.      If the G is omitted,┆
0x65c0…65e0       20 6f 72 20 69 66 20 61 6e 20 65 78 63 65 70 74 69 6f 6e 20 6f 63 63 75 72 20 74 68 65 20 44 65   ┆ or if an exception occur the De┆
0x65e0…6600       62 75 67 20 4d 6f 6e 69 74 6f 72 20 72 65 6d 61 69 6e 73 20 0a 69 6e 20 63 6f 6d 6d 61 6e 64 20   ┆bug Monitor remains  in command ┆
0x6600…6620 (51,) 6d 6f 64 65 2e 0d 0a 0d 0a 0d 0a 54 68 65 20 66 69 72 73 74 20 70 61 72 61 6d 65 74 65 72 20 73   ┆mode.      The first parameter s┆
0x6620…6640       70 65 63 69 66 69 65 73 20 74 68 65 20 74 79 70 65 20 6f 66 20 64 69 73 6b 3a 0d 0a 20 20 20 20   ┆pecifies the type of disk:      ┆
0x6640…6660       57 20 20 20 20 57 69 6e 63 68 65 73 74 65 72 20 64 69 73 6b 0d 0a 20 20 20 20 46 20 20 20 20 46   ┆W    Winchester disk      F    F┆
0x6660…6680       6c 6f 70 70 79 20 64 69 73 6b 0d 0a 0d 0a 0d 0a 49 66 20 61 20 73 74 72 69 6e 67 20 70 61 72 61   ┆loppy disk      If a string para┆
0x6680…66a0       6d 65 74 65 72 20 69 73 20 70 72 65 73 65 6e 74 20 69 74 20 69 73 20 66 6f 72 63 65 64 20 74 6f   ┆meter is present it is forced to┆
0x66a0…66c0       20 6c 6f 77 65 72 20 63 61 73 65 20 6c 65 74 74 65 72 73 20 61 6e 64 20 0a 73 74 6f 72 65 64 20   ┆ lower case letters and  stored ┆
0x66c0…66e0       69 6e 20 74 68 65 20 62 6f 6f 74 6e 61 6d 65 20 73 74 72 69 6e 67 20 61 72 65 61 20 74 65 72 6d   ┆in the bootname string area term┆
0x66e0…6700       69 6e 61 74 65 64 20 77 69 74 68 20 43 52 2e 0d 0a 0d 0a 0d 0a a1 45 58 41 4d 50 4c 45 2e 0d 0a   ┆inated with CR.       EXAMPLE.  ┆
0x6700…6720       0d 0a 0d 0a b0 2e 20 4c 47 f0 09 09 09 25 20 6c 6f 61 64 20 61 6e 64 20 47 6f 20 63 6f 6d 6d 61   ┆     . LG    % load and Go comma┆
0x6720…6740       6e 64 0d 0a b0 53 74 61 67 65 20 31 20 42 6f 6f 74 20 4f 4b 0d 0a 0d 0a b0 20 09 09 4d 69 63 72   ┆nd   Stage 1 Boot OK        Micr┆
0x6740…6760       6f 73 6f 66 74 20 58 45 4e 49 58 20 20 33 2e 32 20 20 f0 28 61 6e 64 20 73 6f 20 6f 6e 29 0d 0a   ┆osoft XENIX  3.2   (and so on)  ┆
0x6760…6780       0d 0a 0d 0a 53 65 65 20 63 68 61 70 74 65 72 20 34 20 66 6f 72 20 66 75 72 74 68 65 72 20 62 6f   ┆    See chapter 4 for further bo┆
0x6780…67a0       6f 74 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2e 0d 0a 0d 0a a1 0d 0a a1 33 2e 31 33 20 45 78 61 6d   ┆ot information.        3.13 Exam┆
0x67a0…67c0       69 6e 65 20 47 6c 6f 62 61 6c 20 44 65 73 63 72 69 70 74 6f 72 20 54 61 62 6c 65 20 28 47 44 54   ┆ine Global Descriptor Table (GDT┆
0x67c0…67e0       29 2e 0d 0a 0d 0a 0d 0a 8c 83 d4 0a 43 6f 6d 6d 61 6e 64 20 53 79 6e 74 61 78 3a 20 b0 28 63 6f   ┆).          Command Syntax:  (co┆
0x67e0…6800       75 6e 74 29 20 58 47 44 54 20 28 67 64 74 5f 69 6e 64 65 78 29 20 28 2c 29 2e 0d 0a 0d 0a 0d 0a   ┆unt) XGDT (gdt_index) (,).      ┆
0x6800…6820 (52,) 54 68 69 73 20 63 6f 6d 6d 61 6e 64 20 69 73 20 75 73 65 64 20 74 6f 20 64 69 73 70 6c 61 79 20   ┆This command is used to display ┆
0x6820…6840       74 68 65 20 63 6f 6e 74 65 6e 74 20 6f 66 20 74 68 65 20 47 6c 6f 62 61 6c 20 44 65 73 63 72 69   ┆the content of the Global Descri┆
0x6840…6860       70 74 6f 72 20 0a 54 61 62 6c 65 20 28 47 44 54 29 2e 20 54 68 65 20 63 6f 6e 74 65 6e 74 20 6f   ┆ptor  Table (GDT). The content o┆
0x6860…6880       66 20 74 68 65 20 47 44 54 20 74 61 62 6c 65 20 69 73 20 a1 53 65 67 6d 65 6e 74 20 44 65 73 63   ┆f the GDT table is  Segment Desc┆
0x6880…68a0       72 69 70 74 6f 72 73 e1 20 61 6e 64 20 0a a1 53 79 73 74 65 6d 20 44 65 73 63 72 69 70 74 6f 72   ┆riptors  and   System Descriptor┆
0x68a0…68c0       73 e1 2e 0a 0d 0a 0d 0a 41 6c 73 6f 20 69 66 20 74 68 65 20 47 44 54 20 69 6e 64 65 78 20 69 73   ┆s .     Also if the GDT index is┆
0x68c0…68e0       20 6f 75 74 73 69 64 65 20 74 68 65 20 47 44 54 20 6c 69 6d 69 74 20 61 6e 6f 74 68 65 72 20 65   ┆ outside the GDT limit another e┆
0x68e0…6900       72 72 6f 72 20 6d 65 73 73 61 67 65 20 69 73 20 0a 77 72 69 74 74 65 6e 2e 0d 0a 0d 0a 0d 0a b0   ┆rror message is  written.       ┆
0x6900…6920       65 78 63 65 70 74 69 6f 6e 20 2d 20 74 61 62 6c 65 20 6c 69 6d 69 74 20 65 78 63 65 65 64 65 64   ┆exception - table limit exceeded┆
0x6920…6940       0d 0a 0d 0a 0d 0a 45 58 41 4d 50 4c 45 2e 0d 0a 0d 0a 0d 0a b0 2e 20 34 20 58 47 44 54 f0 09 09   ┆      EXAMPLE.       . 4 XGDT   ┆
0x6940…6960       09 25 20 64 69 73 70 6c 61 79 20 66 69 72 73 74 20 34 20 47 44 54 20 65 6e 74 72 69 65 73 0d 0a   ┆ % display first 4 GDT entries  ┆
0x6960…6980       0d 0a b0 30 30 30 30 20 3a 20 4e 55 4c 4c 20 44 45 53 43 52 49 50 54 4f 52 0d 0a 09 09 09 09 25   ┆   0000 : NULL DESCRIPTOR      %┆
0x6980…69a0       20 4e 6f 74 65 20 74 68 61 74 20 65 6e 74 72 79 20 30 30 30 38 20 69 73 20 74 68 65 20 47 44 54   ┆ Note that entry 0008 is the GDT┆
0x69a0…69c0       0d 0a 09 09 09 09 25 20 61 6c 69 61 73 20 64 65 73 63 72 69 70 74 6f 72 0d 0a b0 30 30 30 38 20   ┆      % alias descriptor   0008 ┆
0x69c0…69e0       3a 20 4c 49 4d 49 54 20 3d 20 30 32 37 46 20 2d 20 20 42 41 53 45 20 3d 20 30 30 32 39 37 41 20   ┆: LIMIT = 027F -  BASE = 00297A ┆
0x69e0…6a00       2d 20 20 41 43 43 45 53 53 20 3d 20 39 33 0d 0a b0 09 20 20 20 44 53 45 47 2c 20 50 72 65 73 65   ┆-  ACCESS = 93       DSEG, Prese┆
0x6a00…6a20 (53,) 6e 74 2c 20 44 50 4c 3d 30 2c 20 45 78 70 61 6e 64 20 55 70 2c 20 52 65 61 64 2f 57 72 69 74 65   ┆nt, DPL=0, Expand Up, Read/Write┆
0x6a20…6a40       2c 20 41 63 63 65 73 73 65 64 0d 0a 0d 0a b0 09 09 09 09 b0 f0 25 20 4e 6f 74 65 20 74 68 61 74   ┆, Accessed           % Note that┆
0x6a40…6a60       20 65 6e 74 72 79 20 31 30 20 69 73 20 74 68 65 20 49 44 54 0d 0a 09 09 09 09 25 20 61 6c 69 61   ┆ entry 10 is the IDT      % alia┆
0x6a60…6a80       73 20 64 65 73 63 72 69 70 74 6f 72 0d 0a b0 30 30 31 30 20 3a 20 4c 49 4d 49 54 20 3d 20 30 37   ┆s descriptor   0010 : LIMIT = 07┆
0x6a80…6aa0       46 46 20 2d 20 20 42 41 53 45 20 3d 20 30 30 33 30 44 38 20 2d 20 20 41 43 43 45 53 53 20 3d 20   ┆FF -  BASE = 0030D8 -  ACCESS = ┆
0x6aa0…6ac0       39 33 0d 0a b0 09 20 20 20 44 53 45 47 2c 20 50 72 65 73 65 6e 74 2c 20 44 50 4c 3d 30 2c 20 45   ┆93       DSEG, Present, DPL=0, E┆
0x6ac0…6ae0       78 70 61 6e 64 20 55 70 2c 20 52 65 61 64 2f 57 72 69 74 65 2c 20 41 63 63 65 73 73 65 64 0d 0a   ┆xpand Up, Read/Write, Accessed  ┆
0x6ae0…6b00       0d 0a b0 30 30 31 38 20 3a 20 4c 49 4d 49 54 20 3d 20 30 32 30 30 20 2d 20 20 42 41 53 45 20 3d   ┆   0018 : LIMIT = 0200 -  BASE =┆
0x6b00…6b20       20 30 30 30 30 30 30 20 2d 20 20 41 43 43 45 53 53 20 3d 20 39 33 0d 0a b0 09 20 20 20 44 53 45   ┆ 000000 -  ACCESS = 93       DSE┆
0x6b20…6b40       47 2c 20 50 72 65 73 65 6e 74 2c 20 44 50 4c 3d 30 2c 20 45 78 70 61 6e 64 20 55 70 2c 20 52 65   ┆G, Present, DPL=0, Expand Up, Re┆
0x6b40…6b60       61 64 2f 57 72 69 74 65 2c 20 49 67 6e 6f 72 65 64 0d 0a 0d 0a 0d 0a b0 2e 20 58 47 44 54 20 32   ┆ad/Write, Ignored       . XGDT 2┆
0x6b60…6b80       38 09 09 09 f0 25 20 65 78 61 6d 70 6c 65 20 54 41 53 4b 20 47 41 54 45 0d 0a 0d 0a b0 30 30 32   ┆8    % example TASK GATE     002┆
0x6b80…6ba0       38 20 3a 20 53 53 45 4c 20 3d 20 30 30 34 30 0d 0a 8c 83 c8 0a b0 20 20 20 20 20 20 20 54 41 53   ┆8 : SSEL = 0040              TAS┆
0x6ba0…6bc0       4b 20 47 41 54 45 2c 20 50 72 65 73 65 6e 74 2c 20 44 50 4c 3d 30 0d 0a 0d 0a 0d 0a b0 2e 20 58   ┆K GATE, Present, DPL=0       . X┆
0x6bc0…6be0       47 44 54 20 33 30 f0 09 09 09 25 20 65 78 61 6d 70 6c 65 20 54 61 73 6b 20 53 74 61 74 65 20 53   ┆GDT 30    % example Task State S┆
0x6be0…6c00       65 67 6d 65 6e 74 0d 0a 0d 0a b0 30 30 33 30 20 3a 20 4c 49 4d 49 54 20 3d 20 30 30 32 43 20 2d   ┆egment     0030 : LIMIT = 002C -┆
0x6c00…6c20 (54,) 20 20 42 41 53 45 20 3d 20 30 30 31 30 30 38 20 2d 20 20 41 43 43 45 53 53 20 3d 20 38 31 0d 0a   ┆  BASE = 001008 -  ACCESS = 81  ┆
0x6c20…6c40       b0 20 20 20 20 20 20 20 41 56 41 49 4c 41 42 4c 45 20 54 53 53 2c 20 50 72 65 73 65 6e 74 2c 20   ┆        AVAILABLE TSS, Present, ┆
0x6c40…6c60       44 50 4c 3d 30 0d 0a 0d 0a 0d 0a b0 2e 20 58 47 44 54 20 31 30 38 f0 09 09 09 25 20 65 78 61 6d   ┆DPL=0       . XGDT 108    % exam┆
0x6c60…6c80       70 6c 65 20 4c 44 54 20 64 65 73 63 72 69 70 74 6f 72 0d 0a 0d 0a b0 30 31 30 38 20 3a 20 4c 49   ┆ple LDT descriptor     0108 : LI┆
0x6c80…6ca0       4d 49 54 20 3d 20 30 38 33 38 20 2d 20 20 42 41 53 45 20 3d 20 30 30 31 30 30 38 20 2d 20 20 41   ┆MIT = 0838 -  BASE = 001008 -  A┆
0x6ca0…6cc0       43 43 45 53 53 20 3d 20 38 32 0d 0a b0 20 20 20 20 20 20 20 4c 44 54 20 44 45 53 43 52 49 50 54   ┆CCESS = 82          LDT DESCRIPT┆
0x6cc0…6ce0       4f 52 2c 20 50 72 65 73 65 6e 74 2c 20 44 50 4c 3d 30 0d 0a 0d 0a 0d 0a b0 2e 20 58 47 44 54 20   ┆OR, Present, DPL=0       . XGDT ┆
0x6ce0…6d00       31 33 38 f0 09 09 09 25 20 65 78 61 6d 70 6c 65 20 43 4f 44 45 20 28 54 45 58 54 29 20 73 65 67   ┆138    % example CODE (TEXT) seg┆
0x6d00…6d20       6d 65 6e 74 20 64 65 73 63 2e 0d 0a 0d 0a b0 30 31 33 38 20 3a 20 4c 49 4d 49 54 20 3d 20 37 46   ┆ment desc.     0138 : LIMIT = 7F┆
0x6d20…6d40       46 46 20 2d 20 20 42 41 53 45 20 3d 20 46 46 38 30 30 30 20 2d 20 20 41 43 43 45 53 53 20 3d 20   ┆FF -  BASE = FF8000 -  ACCESS = ┆
0x6d40…6d60       39 42 0d 0a b0 20 20 20 20 20 20 20 45 53 45 47 2c 20 50 72 65 73 65 6e 74 2c 20 44 50 4c 3d 30   ┆9B          ESEG, Present, DPL=0┆
0x6d60…6d80       2c 20 45 78 65 63 75 74 65 2f 52 65 61 64 2c 20 4e 6f 74 20 43 6f 6e 66 6f 72 6d 69 6e 67 0d 0a   ┆, Execute/Read, Not Conforming  ┆
0x6d80…6da0       0d 0a 0d 0a b0 2e 20 58 47 44 54 20 31 44 30 f0 09 09 09 25 20 65 78 61 6d 70 6c 65 20 43 41 4c   ┆     . XGDT 1D0    % example CAL┆
0x6da0…6dc0       4c 20 47 41 54 45 0d 0a 0d 0a b0 30 31 44 30 20 3a 20 57 43 4e 54 20 3d 20 31 20 2d 20 20 53 53   ┆L GATE     01D0 : WCNT = 1 -  SS┆
0x6dc0…6de0       45 4c 20 3d 20 30 31 36 30 20 2d 20 20 53 4f 46 46 20 3d 20 34 35 35 39 0d 0a b0 20 20 20 20 20   ┆EL = 0160 -  SOFF = 4559        ┆
0x6de0…6e00       20 20 43 41 4c 4c 20 47 41 54 45 2c 20 50 72 65 73 65 6e 74 2c 20 44 50 4c 3d 33 0d 0a 0d 0a 0d   ┆  CALL GATE, Present, DPL=3     ┆
0x6e00…6e20 (55,) 0a a1 33 2e 31 34 20 45 78 61 6d 69 6e 65 20 54 61 72 67 65 74 20 4c 6f 63 61 6c 20 44 65 73 63   ┆  3.14 Examine Target Local Desc┆
0x6e20…6e40       72 69 70 74 6f 72 20 54 61 62 6c 65 20 28 4c 44 54 29 2e 0d 0a 0d 0a 0d 0a 43 6f 6d 6d 61 6e 64   ┆riptor Table (LDT).      Command┆
0x6e40…6e60       20 53 79 6e 74 61 78 3a 20 b0 28 63 6f 75 6e 74 29 20 58 4c 44 54 20 28 6c 64 74 5f 69 6e 64 65   ┆ Syntax:  (count) XLDT (ldt_inde┆
0x6e60…6e80       78 29 20 28 2c 29 2e 0d 0a 0d 0a 0d 0a 54 68 69 73 20 63 6f 6d 6d 61 6e 64 20 69 73 20 75 73 65   ┆x) (,).      This command is use┆
0x6e80…6ea0       64 20 74 6f 20 64 69 73 70 6c 61 79 20 74 68 65 20 63 6f 6e 74 65 6e 74 20 6f 66 20 74 68 65 20   ┆d to display the content of the ┆
0x6ea0…6ec0       70 72 65 73 65 6e 74 6c 79 20 61 63 74 69 76 65 20 4c 44 54 20 0a 64 65 73 63 72 69 70 74 6f 72   ┆presently active LDT  descriptor┆
0x6ec0…6ee0       20 74 61 62 6c 65 2e 20 54 68 65 20 63 6f 6e 74 65 6e 74 20 6f 66 20 74 68 65 20 4c 44 54 20 74   ┆ table. The content of the LDT t┆
0x6ee0…6f00       61 62 6c 65 20 69 73 20 a1 53 65 67 6d 65 6e 74 20 44 65 73 63 72 69 70 74 6f 72 73 e1 20 0a 61   ┆able is  Segment Descriptors   a┆
0x6f00…6f20       6e 64 20 a1 53 79 73 74 65 6d 20 44 65 73 63 72 69 70 74 6f 72 73 e1 2e 20 49 66 20 6e 65 69 74   ┆nd  System Descriptors . If neit┆
0x6f20…6f40       68 65 72 20 43 53 2c 20 44 53 2c 20 53 53 20 6f 72 20 45 53 20 72 65 66 65 72 65 6e 63 65 73 20   ┆her CS, DS, SS or ES references ┆
0x6f40…6f60       61 20 4c 44 54 20 0a 74 61 62 6c 65 20 61 20 6d 65 73 73 61 67 65 20 69 73 20 77 72 69 74 74 65   ┆a LDT  table a message is writte┆
0x6f60…6f80       6e 20 74 6f 20 74 68 65 20 63 6f 6e 73 6f 6c 65 2e 0d 0a 0d 0a 0d 0a 8c 83 d4 0a b0 65 78 63 65   ┆n to the console.           exce┆
0x6f80…6fa0       70 74 69 6f 6e 20 2d 20 55 53 45 52 20 68 61 73 20 6e 6f 20 4c 44 54 0d 0a 0d 0a 0d 0a 41 6c 73   ┆ption - USER has no LDT      Als┆
0x6fa0…6fc0       6f 20 69 66 20 74 68 65 20 4c 44 54 20 69 6e 64 65 78 20 69 73 20 6f 75 74 73 69 64 65 20 74 68   ┆o if the LDT index is outside th┆
0x6fc0…6fe0       65 20 4c 44 54 20 6c 69 6d 69 74 20 61 6e 6f 74 68 65 72 20 65 72 72 6f 72 20 6d 65 73 73 61 67   ┆e LDT limit another error messag┆
0x6fe0…7000       65 20 69 73 20 0a 77 72 69 74 74 65 6e 2e 0d 0a 0d 0a 0d 0a b0 65 78 63 65 70 74 69 6f 6e 20 2d   ┆e is  written.       exception -┆
0x7000…7020 (56,) 20 74 61 62 6c 65 20 6c 69 6d 69 74 20 65 78 63 65 65 64 65 64 0d 0a 0d 0a 0d 0a 45 58 41 4d 50   ┆ table limit exceeded      EXAMP┆
0x7020…7040       4c 45 2e 0a 0d 0a 0d 0a b0 2e 20 34 58 4c 44 54 f0 09 09 09 25 20 64 69 73 70 6c 61 79 20 34 20   ┆LE.      . 4XLDT    % display 4 ┆
0x7040…7060       4c 44 54 20 65 6e 74 72 69 65 73 0d 0a 0d 0a b0 30 30 30 34 20 3a 20 4e 55 4c 4c 20 44 45 53 43   ┆LDT entries     0004 : NULL DESC┆
0x7060…7080       52 49 50 54 4f 52 0d 0a 0d 0a b0 30 30 30 43 20 3a 20 4c 49 4d 49 54 20 3d 20 30 38 33 38 20 2d   ┆RIPTOR     000C : LIMIT = 0838 -┆
0x7080…70a0       20 20 42 41 53 45 20 3d 20 30 30 30 33 35 30 20 2d 20 20 41 43 43 45 53 53 20 3d 20 39 32 0d 0a   ┆  BASE = 000350 -  ACCESS = 92  ┆
0x70a0…70c0       b0 20 20 20 20 20 20 20 44 53 45 47 2c 20 50 72 65 73 65 6e 74 2c 20 44 50 4c 3d 30 2c 20 45 78   ┆        DSEG, Present, DPL=0, Ex┆
0x70c0…70e0       70 61 6e 64 20 55 70 2c 20 52 65 61 64 20 57 72 69 74 65 2c 20 49 67 6e 6f 72 65 64 0d 0a 0d 0a   ┆pand Up, Read Write, Ignored    ┆
0x70e0…7100       b0 30 30 31 34 20 3a 20 4c 49 4d 49 54 20 3d 20 37 46 46 46 20 2d 20 20 42 41 53 45 20 3d 20 46   ┆ 0014 : LIMIT = 7FFF -  BASE = F┆
0x7100…7120       46 38 30 30 30 20 2d 20 20 41 43 43 45 53 53 20 3d 20 39 42 0d 0a b0 20 20 20 20 20 20 20 45 53   ┆F8000 -  ACCESS = 9B          ES┆
0x7120…7140       45 47 2c 20 50 72 65 73 65 6e 74 2c 20 44 50 4c 3d 30 2c 20 45 78 65 63 75 74 65 2f 52 65 61 64   ┆EG, Present, DPL=0, Execute/Read┆
0x7140…7160       2c 20 4e 6f 74 20 43 6f 6e 66 6f 72 6d 69 6e 67 0d 0a 0d 0a b0 30 30 31 43 20 3a 20 4c 49 4d 49   ┆, Not Conforming     001C : LIMI┆
0x7160…7180       54 20 3d 20 46 46 46 46 20 2d 20 20 42 41 53 45 20 3d 20 30 30 30 30 30 30 20 2d 20 20 41 43 43   ┆T = FFFF -  BASE = 000000 -  ACC┆
0x7180…71a0       45 53 53 20 3d 20 39 33 0d 0a b0 20 20 20 20 20 20 20 44 53 45 47 2c 20 50 72 65 73 65 6e 74 2c   ┆ESS = 93          DSEG, Present,┆
0x71a0…71c0       20 44 50 4c 3d 30 2c 20 45 78 70 61 6e 64 20 55 70 2c 20 52 65 61 64 2f 57 72 69 74 65 2c 20 41   ┆ DPL=0, Expand Up, Read/Write, A┆
0x71c0…71e0       63 63 65 73 73 65 64 0d 0a 0d 0a 0d 0a a1 33 2e 31 35 20 45 78 61 6d 69 6e 65 20 49 6e 74 65 72   ┆ccessed       3.15 Examine Inter┆
0x71e0…7200       72 75 70 74 20 44 65 73 63 72 69 70 74 6f 72 20 54 61 62 6c 65 20 28 49 44 54 29 2e 0d 0a 0d 0a   ┆rupt Descriptor Table (IDT).    ┆
0x7200…7220 (57,) 82 0d 0a 43 6f 6d 6d 61 6e 64 20 53 79 6e 74 61 78 3a 20 b0 28 63 6f 75 6e 74 29 20 58 49 44 54   ┆   Command Syntax:  (count) XIDT┆
0x7220…7240       20 28 69 64 74 5f 69 6e 64 65 78 29 20 28 2c 29 2e 0d 0a 0d 0a 0d 0a 54 68 69 73 20 63 6f 6d 6d   ┆ (idt_index) (,).      This comm┆
0x7240…7260       61 6e 64 20 69 73 20 75 73 65 64 20 74 6f 20 64 69 73 70 6c 61 79 20 74 68 65 20 63 6f 6e 74 65   ┆and is used to display the conte┆
0x7260…7280       6e 74 20 6f 66 20 74 68 65 20 49 6e 74 65 72 72 75 70 74 20 44 65 73 63 72 69 70 74 6f 72 20 0a   ┆nt of the Interrupt Descriptor  ┆
0x7280…72a0       54 61 62 6c 65 2e 20 54 68 65 20 63 6f 6e 74 65 6e 74 20 6f 66 20 74 68 65 20 49 44 54 20 74 61   ┆Table. The content of the IDT ta┆
0x72a0…72c0       62 6c 65 20 6d 61 79 20 62 65 20 65 69 74 68 65 72 20 a1 54 41 53 4b 20 47 61 74 65 73 e1 2c 20   ┆ble may be either  TASK Gates , ┆
0x72c0…72e0       a1 49 6e 74 65 72 72 75 70 74 20 0a 19 80 80 84 47 61 74 65 73 e1 2c 20 a1 49 6e 74 65 72 72 75   ┆ Interrupt      Gates ,  Interru┆
0x72e0…7300       70 74 20 54 72 61 70 73 e1 20 6f 72 20 a1 4e 55 4c 4c 20 44 65 73 63 72 69 70 74 6f 72 73 2e 0d   ┆pt Traps  or  NULL Descriptors. ┆
0x7300…7320       0a 0d 0a 0d 0a 8c 83 c8 0a 49 66 20 49 44 54 20 69 6e 64 65 78 20 69 73 20 6f 75 74 73 69 64 65   ┆         If IDT index is outside┆
0x7320…7340       20 74 68 65 20 49 44 54 20 6c 69 6d 69 74 20 61 6e 6f 74 68 65 72 20 65 72 72 6f 72 20 6d 65 73   ┆ the IDT limit another error mes┆
0x7340…7360       73 61 67 65 20 69 73 20 77 72 69 74 74 65 6e 2e 0d 0a 0d 0a 0d 0a b0 65 78 63 65 70 74 69 6f 6e   ┆sage is written.       exception┆
0x7360…7380       20 2d 20 74 61 62 6c 65 20 6c 69 6d 69 74 20 65 78 63 65 65 64 65 64 0d 0a 0d 0a 0d 0a 45 58 41   ┆ - table limit exceeded      EXA┆
0x7380…73a0       4d 50 4c 45 2e 0d 0a 0d 0a 0d 0a b0 2e 20 34 20 58 49 44 54 f0 09 09 09 25 20 64 69 73 70 6c 61   ┆MPLE.       . 4 XIDT    % displa┆
0x73a0…73c0       79 20 34 20 49 44 54 20 65 6e 74 72 69 65 73 0d 0a 0d 0a b0 30 30 30 30 20 3a 20 53 53 45 4c 20   ┆y 4 IDT entries     0000 : SSEL ┆
0x73c0…73e0       3d 20 30 31 36 30 20 2d 20 20 53 4f 46 46 20 3d 20 34 34 41 45 0d 0a b0 20 20 20 20 20 20 20 54   ┆= 0160 -  SOFF = 44AE          T┆
0x73e0…7400       52 41 50 20 47 41 54 45 2c 20 50 72 65 73 65 6e 74 2c 20 44 50 4c 3d 30 0d 0a 0d 0a b0 30 30 30   ┆RAP GATE, Present, DPL=0     000┆
0x7400…7420 (58,) 38 20 3a 20 53 53 45 4c 20 3d 20 30 31 36 30 20 2d 20 20 53 4f 46 46 20 3d 20 34 34 42 32 0d 0a   ┆8 : SSEL = 0160 -  SOFF = 44B2  ┆
0x7420…7440       b0 20 20 20 20 20 20 20 54 52 41 50 20 47 41 54 45 2c 20 50 72 65 73 65 6e 74 2c 20 44 50 4c 3d   ┆        TRAP GATE, Present, DPL=┆
0x7440…7460       30 0d 0a 0d 0a b0 30 30 31 30 20 3a 20 53 53 45 4c 20 3d 20 30 31 36 30 20 2d 20 20 53 4f 46 46   ┆0     0010 : SSEL = 0160 -  SOFF┆
0x7460…7480       20 3d 20 34 34 42 46 0d 0a b0 20 20 20 20 20 20 20 54 52 41 50 20 47 41 54 45 2c 20 50 72 65 73   ┆ = 44BF          TRAP GATE, Pres┆
0x7480…74a0       65 6e 74 2c 20 44 50 4c 3d 30 0d 0a 0d 0a b0 30 30 31 38 20 3a 20 53 53 45 4c 20 3d 20 30 31 36   ┆ent, DPL=0     0018 : SSEL = 016┆
0x74a0…74c0       30 20 2d 20 20 53 4f 46 46 20 3d 20 34 34 43 38 0d 0a b0 20 20 20 20 20 20 20 54 52 41 50 20 47   ┆0 -  SOFF = 44C8          TRAP G┆
0x74c0…74e0       41 54 45 2c 20 50 72 65 73 65 6e 74 2c 20 44 50 4c 3d 30 0d 0a 0d 0a 0d 0a b0 2e 20 58 49 44 54   ┆ATE, Present, DPL=0       . XIDT┆
0x74e0…7500       20 32 30 30 f0 09 09 09 25 20 65 78 61 6d 70 6c 65 20 49 6e 74 65 72 72 75 70 74 20 47 61 74 65   ┆ 200    % example Interrupt Gate┆
0x7500…7520       0d 0a 0d 0a b0 30 32 30 30 20 3a 20 53 53 45 4c 20 3d 20 30 31 36 30 20 2d 20 20 53 4f 46 46 20   ┆     0200 : SSEL = 0160 -  SOFF ┆
0x7520…7540       3d 20 34 35 37 36 0d 0a b0 20 20 20 20 20 20 20 49 4e 54 45 52 52 55 50 54 20 47 41 54 45 2c 20   ┆= 4576          INTERRUPT GATE, ┆
0x7540…7560       50 72 65 73 65 6e 74 2c 20 44 50 4c 3d 30 0d 0a 0d 0a 0d 0a a1 33 2e 31 36 20 45 78 61 6d 69 6e   ┆Present, DPL=0       3.16 Examin┆
0x7560…7580       65 20 61 6e 79 20 4c 44 54 20 54 61 62 6c 65 2e 0d 0a 0d 0a 0d 0a 43 6f 6d 6d 61 6e 64 20 53 79   ┆e any LDT Table.      Command Sy┆
0x7580…75a0       6e 74 61 78 3a 20 b0 28 63 6f 75 6e 74 29 20 58 44 54 20 28 67 64 74 5f 69 6e 64 65 78 29 20 28   ┆ntax:  (count) XDT (gdt_index) (┆
0x75a0…75c0       2c 29 2e 0d 0a 0d 0a 0d 0a 54 68 69 73 20 63 6f 6d 6d 61 6e 64 20 69 73 20 75 73 65 64 20 74 6f   ┆,).      This command is used to┆
0x75c0…75e0       20 64 69 73 70 6c 61 79 20 74 68 65 20 63 6f 6e 74 65 6e 74 20 6f 66 20 61 6e 79 20 6d 65 6d 6f   ┆ display the content of any memo┆
0x75e0…7600       72 79 20 72 65 73 69 64 65 6e 74 20 4c 44 54 20 0a 74 61 62 6c 65 2e 20 54 68 69 73 20 63 6f 6d   ┆ry resident LDT  table. This com┆
0x7600…7620 (59,) 6d 61 6e 64 20 69 73 20 74 79 70 69 63 61 6c 6c 79 20 75 73 65 64 20 74 6f 20 64 69 73 70 6c 61   ┆mand is typically used to displa┆
0x7620…7640       79 20 74 68 65 20 63 6f 6e 74 65 6e 74 20 6f 66 20 0a 8c 83 c8 0a 69 6e 61 63 74 69 76 65 20 4c   ┆y the content of      inactive L┆
0x7640…7660       44 54 20 74 61 62 6c 65 73 20 77 68 65 72 65 61 73 20 74 68 65 20 58 4c 44 54 20 63 6f 6d 6d 61   ┆DT tables whereas the XLDT comma┆
0x7660…7680       6e 64 20 64 69 73 70 6c 61 79 73 20 74 68 65 20 63 6f 6e 74 65 6e 74 20 6f 66 20 0a 74 68 65 20   ┆nd displays the content of  the ┆
0x7680…76a0       63 75 72 72 65 6e 74 6c 79 20 61 63 74 69 76 65 20 4c 44 54 20 74 61 62 6c 65 2e 20 54 68 65 20   ┆currently active LDT table. The ┆
0x76a0…76c0       67 64 74 5f 69 6e 64 65 78 20 6d 75 73 74 20 62 65 20 61 6e 20 4c 44 54 20 64 65 73 63 72 69 70   ┆gdt_index must be an LDT descrip┆
0x76c0…76e0       74 6f 72 20 0a 69 6e 20 74 68 65 20 47 44 54 2e 0d 0a 0d 0a 0d 0a 49 66 20 74 68 65 20 4c 44 54   ┆tor  in the GDT.      If the LDT┆
0x76e0…7700       20 64 65 73 63 72 69 70 74 6f 72 20 69 6e 64 69 63 61 74 65 73 20 73 65 67 6d 65 6e 74 20 6e 6f   ┆ descriptor indicates segment no┆
0x7700…7720       74 20 70 72 65 73 65 6e 74 20 69 6e 20 70 68 79 73 69 63 61 6c 20 6d 65 6d 6f 72 79 20 0a 61 20   ┆t present in physical memory  a ┆
0x7720…7740       6d 65 73 73 61 67 65 20 69 73 20 77 72 69 74 74 65 6e 20 74 6f 20 74 68 65 20 63 6f 6e 73 6f 6c   ┆message is written to the consol┆
0x7740…7760       65 2e 0d 0a 0d 0a 0d 0a b0 65 78 63 65 70 74 69 6f 6e 20 2d 20 4c 44 54 20 73 65 67 6d 65 6e 74   ┆e.       exception - LDT segment┆
0x7760…7780       20 4e 4f 54 20 70 72 65 73 65 6e 74 0d 0a 0d 0a 0d 0a 41 6c 73 6f 20 69 66 20 74 68 65 20 47 44   ┆ NOT present      Also if the GD┆
0x7780…77a0       54 20 69 6e 64 65 78 20 64 6f 65 73 27 6e 74 20 70 6f 69 6e 74 20 74 6f 20 61 20 4c 44 54 20 64   ┆T index does'nt point to a LDT d┆
0x77a0…77c0       65 73 63 72 69 70 74 6f 72 20 61 6e 6f 74 68 65 72 20 20 0a 6d 65 73 73 61 67 65 20 69 73 20 67   ┆escriptor another   message is g┆
0x77c0…77e0       65 6e 65 72 61 74 65 64 2e 0d 0a 0d 0a 0d 0a b0 65 78 63 65 70 74 69 6f 6e 20 2d 20 65 6e 74 72   ┆enerated.       exception - entr┆
0x77e0…7800       79 20 69 73 20 4e 4f 54 20 61 6e 20 4c 44 54 20 64 65 73 63 72 69 70 74 6f 72 0d 0a 0d 0a 0d 0a   ┆y is NOT an LDT descriptor      ┆
0x7800…7820 (60,) 41 6c 73 6f 20 69 66 20 74 68 65 20 47 44 54 20 69 6e 64 65 78 20 69 73 20 6f 75 74 73 69 64 65   ┆Also if the GDT index is outside┆
0x7820…7840       20 74 68 65 20 47 44 54 20 6c 69 6d 69 74 20 61 6e 6f 74 68 65 72 20 65 72 72 6f 72 20 6d 65 73   ┆ the GDT limit another error mes┆
0x7840…7860       73 61 67 65 20 69 73 20 0a 77 72 69 74 74 65 6e 2e 0d 0a 0d 0a 0d 0a b0 65 78 63 65 70 74 69 6f   ┆sage is  written.       exceptio┆
0x7860…7880       6e 20 2d 20 74 61 62 6c 65 20 6c 69 6d 69 74 20 65 78 63 65 65 64 65 64 0d 0a 0d 0a 0d 0a 45 58   ┆n - table limit exceeded      EX┆
0x7880…78a0       41 4d 50 4c 45 2e 0d 0a 0d 0a 0d 0a 54 68 69 73 20 63 6f 6d 6d 61 6e 64 20 77 69 6c 6c 20 70 72   ┆AMPLE.      This command will pr┆
0x78a0…78c0       6f 64 75 63 65 20 61 20 6c 69 73 74 69 6e 67 20 73 69 6d 69 6c 61 72 20 74 6f 20 74 68 65 20 58   ┆oduce a listing similar to the X┆
0x78c0…78e0       4c 44 54 20 63 6f 6d 6d 61 6e 64 2e 20 54 68 65 72 65 20 0a 69 73 20 61 20 6b 6e 6f 77 6e 20 62   ┆LDT command. There  is a known b┆
0x78e0…7900       75 67 20 69 6e 20 74 68 69 73 20 63 6f 6d 6d 61 6e 64 20 69 6e 20 72 65 6c 65 61 73 65 20 33 2e   ┆ug in this command in release 3.┆
0x7900…7920       32 20 6f 66 20 74 68 65 20 44 65 62 75 67 20 4d 6f 6e 69 74 6f 72 2e 20 0a 54 68 69 73 20 62 75   ┆2 of the Debug Monitor.  This bu┆
0x7920…7940       67 20 77 69 6c 6c 20 62 65 20 63 6f 72 72 65 63 74 65 64 20 69 6e 20 66 75 72 74 68 65 72 20 72   ┆g will be corrected in further r┆
0x7940…7960       65 6c 65 61 73 65 73 2e 0d 0a 0d 0a 0d 0a a1 33 2e 31 37 20 45 78 61 6d 69 6e 65 20 54 41 53 4b   ┆eleases.       3.17 Examine TASK┆
0x7960…7980       20 53 74 61 74 65 20 53 65 67 6d 65 6e 74 20 28 54 53 53 29 2e 0d 0a 0d 0a 0d 0a 43 6f 6d 6d 61   ┆ State Segment (TSS).      Comma┆
0x7980…79a0       6e 64 20 53 79 6e 74 61 78 3a 20 b0 58 54 53 53 20 28 67 64 74 5f 69 6e 64 65 78 29 20 28 2c 29   ┆nd Syntax:  XTSS (gdt_index) (,)┆
0x79a0…79c0       2e 0d 0a 0d 0a 0d 0a 8c 83 e0 0a 54 68 69 73 20 63 6f 6d 6d 61 6e 64 20 69 73 20 75 73 65 64 20   ┆.          This command is used ┆
0x79c0…79e0       74 6f 20 64 69 73 70 6c 61 79 20 74 68 65 20 63 6f 6e 74 65 6e 74 20 6f 66 20 61 20 54 61 73 6b   ┆to display the content of a Task┆
0x79e0…7a00       20 53 74 61 74 65 20 53 65 67 6d 65 6e 74 20 0a 28 54 53 53 29 2e 20 41 20 54 53 53 20 69 73 20   ┆ State Segment  (TSS). A TSS is ┆
0x7a00…7a20 (61,) 61 20 73 70 65 63 69 61 6c 20 73 65 67 6d 65 6e 74 20 28 34 34 20 62 79 74 65 73 20 6c 6f 6e 67   ┆a special segment (44 bytes long┆
0x7a20…7a40       29 20 75 73 65 64 20 74 6f 20 68 6f 6c 64 20 61 6c 6c 20 74 68 65 20 0a 69 41 50 58 20 32 38 36   ┆) used to hold all the  iAPX 286┆
0x7a40…7a60       20 76 61 72 69 61 62 6c 65 73 20 74 68 61 74 20 63 68 61 6e 67 65 73 20 64 75 72 69 6e 67 20 61   ┆ variables that changes during a┆
0x7a60…7a80       20 54 41 53 4b 20 53 57 49 54 43 48 2e 20 54 68 65 20 67 64 74 5f 69 6e 64 65 78 20 0a 6d 75 73   ┆ TASK SWITCH. The gdt_index  mus┆
0x7a80…7aa0       74 20 62 65 20 54 53 53 20 64 65 73 63 72 69 70 74 6f 72 20 28 54 53 53 20 64 65 73 63 72 69 70   ┆t be TSS descriptor (TSS descrip┆
0x7aa0…7ac0       74 6f 72 73 20 6d 75 73 74 20 61 6c 77 61 79 73 20 62 65 20 61 76 61 69 6c 61 62 6c 65 20 61 6e   ┆tors must always be available an┆
0x7ac0…7ae0       64 20 0a 66 6f 72 20 74 68 61 74 20 72 65 61 73 6f 6e 20 74 68 65 79 20 6d 75 73 74 20 62 65 20   ┆d  for that reason they must be ┆
0x7ae0…7b00       69 6e 20 74 68 65 20 47 44 54 20 74 61 62 6c 65 29 2e 20 49 66 20 61 20 28 2c 29 20 69 73 20 65   ┆in the GDT table). If a (,) is e┆
0x7b00…7b20       6e 74 65 72 65 64 20 0a 74 68 65 20 63 6f 6d 6d 61 6e 64 20 69 73 20 72 65 70 65 61 74 65 64 20   ┆ntered  the command is repeated ┆
0x7b20…7b40       77 69 74 68 20 74 68 65 20 6e 65 78 74 20 47 44 54 20 73 65 6c 65 63 74 6f 72 2e 0d 0a 0d 0a 0d   ┆with the next GDT selector.     ┆
0x7b40…7b60       0a 49 66 20 74 68 65 20 47 44 54 20 69 6e 64 65 78 20 64 6f 65 73 27 6e 74 20 70 6f 69 6e 74 20   ┆ If the GDT index does'nt point ┆
0x7b60…7b80       74 6f 20 61 20 54 53 53 20 64 65 73 63 72 69 70 74 6f 72 20 61 6e 20 65 72 72 6f 72 20 6d 65 73   ┆to a TSS descriptor an error mes┆
0x7b80…7ba0       73 61 67 65 20 69 73 20 0a 77 72 69 74 74 65 6e 2e 0d 0a 0d 0a 0d 0a b0 65 78 63 65 70 74 69 6f   ┆sage is  written.       exceptio┆
0x7ba0…7bc0       6e 20 2d 20 65 6e 74 72 79 20 69 73 20 4e 4f 54 20 61 20 54 53 53 20 64 65 73 63 72 69 70 74 6f   ┆n - entry is NOT a TSS descripto┆
0x7bc0…7be0       72 0d 0a 0d 0a 0d 0a 41 6c 73 6f 20 69 66 20 74 68 65 20 47 44 54 20 69 6e 64 65 78 20 69 73 20   ┆r      Also if the GDT index is ┆
0x7be0…7c00       6f 75 74 73 69 64 65 20 74 68 65 20 47 44 54 20 6c 69 6d 69 74 20 61 6e 6f 74 68 65 72 20 65 72   ┆outside the GDT limit another er┆
0x7c00…7c20 (62,) 72 6f 72 20 6d 65 73 73 61 67 65 20 69 73 20 0a 77 72 69 74 74 65 6e 2e 0d 0a 0d 0a 0d 0a b0 65   ┆ror message is  written.       e┆
0x7c20…7c40       78 63 65 70 74 69 6f 6e 20 2d 20 74 61 62 6c 65 20 6c 69 6d 69 74 20 65 78 63 65 65 64 65 64 0d   ┆xception - table limit exceeded ┆
0x7c40…7c60       0a 0d 0a 0d 0a 45 58 41 4d 50 4c 45 2e 0d 0a 0d 0a 0d 0a b0 2e 20 58 54 53 53 20 31 39 30 f0 09   ┆     EXAMPLE.       . XTSS 190  ┆
0x7c60…7c80       09 09 25 20 65 78 61 6d 69 6e 65 20 58 45 4e 49 58 20 33 2e 32 20 54 53 53 20 28 4f 6e 6c 79 20   ┆  % examine XENIX 3.2 TSS (Only ┆
0x7c80…7ca0       4f 6e 65 29 0d 0a 0d 0a b0 20 20 20 20 20 20 20 4c 69 6e 6b 20 53 50 2d 30 20 53 53 2d 30 20 53   ┆One)            Link SP-0 SS-0 S┆
0x7ca0…7cc0       50 2d 31 20 53 53 2d 31 20 53 50 2d 32 20 53 53 2d 32 20 49 50 2d 72 20 46 4c 2d 72 20 41 58 2d   ┆P-1 SS-1 SP-2 SS-2 IP-r FL-r AX-┆
0x7cc0…7ce0       72 20 43 58 2d 72 0d 0a b0 30 31 39 30 20 3a 20 30 30 30 30 20 30 34 30 30 20 30 31 38 38 20 30   ┆r CX-r   0190 : 0000 0400 0188 0┆
0x7ce0…7d00       30 30 30 20 30 30 30 30 20 30 30 30 30 20 30 30 30 30 20 30 30 30 30 20 30 30 30 30 20 30 30 30   ┆000 0000 0000 0000 0000 0000 000┆
0x7d00…7d20       30 20 30 30 30 30 0d 0a b0 20 20 20 20 20 20 20 44 58 2d 72 20 42 58 2d 72 20 53 50 2d 72 20 42   ┆0 0000          DX-r BX-r SP-r B┆
0x7d20…7d40       50 2d 72 20 53 49 2d 72 20 44 49 2d 72 20 45 53 2d 73 20 43 53 2d 73 20 53 53 2d 73 20 44 53 2d   ┆P-r SI-r DI-r ES-s CS-s SS-s DS-┆
0x7d40…7d60       73 20 4c 44 54 2d 73 0d 0a b0 09 20 20 20 30 30 30 30 20 30 30 30 30 20 30 30 30 30 20 30 30 30   ┆s LDT-s       0000 0000 0000 000┆
0x7d60…7d80       30 20 30 30 30 30 20 30 30 30 30 20 30 30 30 30 20 30 30 30 30 20 30 30 30 30 20 30 30 30 30 20   ┆0 0000 0000 0000 0000 0000 0000 ┆
0x7d80…7da0       30 31 43 38 0d 0a 0d 0a 0d 0a 54 68 65 20 73 6e 61 70 73 68 6f 74 20 61 62 6f 76 65 20 77 61 73   ┆01C8      The snapshot above was┆
0x7da0…7dc0       20 74 61 6b 65 6e 20 62 65 66 6f 72 65 20 74 68 65 20 58 45 4e 49 58 20 54 41 53 4b 20 77 61 73   ┆ taken before the XENIX TASK was┆
0x7dc0…7de0       20 72 75 6e 6e 69 6e 67 2c 20 6a 75 73 74 20 0a 61 66 74 65 72 20 62 6f 6f 74 6c 6f 61 64 20 77   ┆ running, just  after bootload w┆
0x7de0…7dee       61 73 20 66 69 6e 69 73 68 65 64 2e 0d 0a                                                         ┆as finished.  ┆
0x7dee…7df1       FormFeed {
0x7dee…7df1         0c 83 a4                                                                                          ┆   ┆
0x7dee…7df1       }
0x7df1…7e00       0a a1 a1 34 2e 20 20 20 20 20 4c 4f 41 44 20                                                      ┆   4.     LOAD ┆
0x7e00…7e20 (63,) 28 42 4f 4f 54 29 20 46 52 4f 4d 20 44 49 53 43 2e 0d 0a 0d 0a 0d 0a 54 68 65 20 44 65 62 75 67   ┆(BOOT) FROM DISC.      The Debug┆
0x7e20…7e40       20 4d 6f 6e 69 74 6f 72 20 69 73 20 63 61 72 65 66 75 6c 6c 79 20 69 6e 74 65 67 72 61 74 65 64   ┆ Monitor is carefully integrated┆
0x7e40…7e60       20 77 69 74 68 20 74 68 65 20 62 75 69 6c 74 20 69 6e 20 73 65 6c 66 74 65 73 74 20 0a 69 6e 20   ┆ with the built in selftest  in ┆
0x7e60…7e80       74 68 65 20 70 72 6f 64 75 63 74 73 20 77 68 65 72 65 20 69 74 20 69 73 20 75 73 65 64 2e 20 54   ┆the products where it is used. T┆
0x7e80…7ea0       68 65 20 73 65 6c 66 74 65 73 74 20 69 73 20 66 6f 72 20 69 6e 73 74 61 6e 63 65 20 0a 72 65 73   ┆he selftest is for instance  res┆
0x7ea0…7ec0       70 6f 6e 73 69 62 6c 65 20 66 6f 72 20 74 68 65 20 69 6e 69 74 69 61 6c 69 7a 61 74 69 6f 6e 20   ┆ponsible for the initialization ┆
0x7ec0…7ee0       6f 66 20 61 6c 6c 20 70 65 72 69 70 68 65 72 61 6c 20 64 65 76 69 63 65 73 20 61 6e 64 20 61 6c   ┆of all peripheral devices and al┆
0x7ee0…7f00       73 6f 20 0a 66 6f 72 20 73 77 69 74 63 68 69 6e 67 20 74 68 65 20 69 41 50 58 20 32 38 36 20 43   ┆so  for switching the iAPX 286 C┆
0x7f00…7f20       50 55 20 61 6e 64 20 74 68 65 20 53 42 43 20 62 6f 61 72 64 20 69 74 73 65 6c 66 20 69 6e 74 6f   ┆PU and the SBC board itself into┆
0x7f20…7f40       20 74 68 65 20 0a 50 72 6f 74 65 63 74 65 64 20 56 69 72 74 75 65 6c 20 41 64 64 72 65 73 73 20   ┆ the  Protected Virtuel Address ┆
0x7f40…7f60       4d 6f 64 65 20 28 50 56 41 4d 29 20 6f 66 20 6f 70 65 72 61 74 69 6f 6e b0 2e 20 f0 42 65 66 6f   ┆Mode (PVAM) of operation .  Befo┆
0x7f60…7f80       72 65 20 74 68 65 20 0a 19 80 81 80 74 65 72 6d 69 6e 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 73   ┆re the      termination of the s┆
0x7f80…7fa0       65 6c 66 74 65 73 74 20 61 20 4d 75 6c 74 69 62 75 73 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e   ┆elftest a Multibus configuration┆
0x7fa0…7fc0       20 69 73 20 6d 61 64 65 20 61 6e 64 20 61 6c 6c 20 0a 19 80 81 80 22 74 65 73 74 2d 73 6c 61 76   ┆ is made and all      "test-slav┆
0x7fc0…7fe0       65 73 22 20 61 72 65 20 73 65 6e 74 20 74 6f 20 74 68 65 69 72 20 62 6f 6f 74 6c 6f 61 64 20 70   ┆es" are sent to their bootload p┆
0x7fe0…8000       68 61 73 65 2e 20 41 6c 6c 74 68 6f 75 67 68 20 69 74 20 69 73 20 0a 19 80 81 80 70 6f 73 73 69   ┆hase. Allthough it is      possi┆
0x8000…8020 (64,) 62 6c 65 20 74 6f 20 73 74 6f 70 20 74 68 65 20 73 65 6c 66 74 65 73 74 20 70 72 69 6f 72 20 74   ┆ble to stop the selftest prior t┆
0x8020…8040       6f 20 69 74 73 20 6e 61 74 75 72 61 6c 20 74 65 72 6d 69 6e 61 74 69 6f 6e 20 61 6e 64 20 0a 19   ┆o its natural termination and   ┆
0x8040…8060       80 81 80 74 68 65 6e 20 65 78 65 63 75 74 65 20 61 20 62 6f 6f 74 20 28 6c 6f 61 64 20 66 72 6f   ┆   then execute a boot (load fro┆
0x8060…8080       6d 20 64 69 73 63 29 20 63 6f 6d 6d 61 6e 64 2c 20 69 74 20 69 73 20 6e 6f 74 20 77 69 73 65 20   ┆m disc) command, it is not wise ┆
0x8080…80a0       74 6f 20 64 6f 20 73 6f 20 0a 19 80 81 80 62 65 63 61 75 73 65 20 74 68 65 20 58 45 4e 49 58 20   ┆to do so      because the XENIX ┆
0x80a0…80c0       6f 70 65 72 61 74 69 6e 67 20 73 79 73 74 65 6d 20 75 73 65 73 20 74 68 65 20 4d 75 6c 74 69 62   ┆operating system uses the Multib┆
0x80c0…80e0       75 73 20 43 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 0a 19 80 81 80 73 63 68 65 64 75 6c 65 20 74   ┆us Configuration      schedule t┆
0x80e0…8100       6f 20 64 65 74 65 72 6d 69 6e 65 20 77 68 69 63 68 20 62 6f 61 72 64 73 20 6e 65 65 64 20 62 6f   ┆o determine which boards need bo┆
0x8100…8120       6f 74 6c 6f 61 64 69 6e 67 20 61 6e 64 20 74 68 65 20 22 74 65 73 74 2d 0a 19 80 81 80 73 6c 61   ┆otloading and the "test-     sla┆
0x8120…8140       76 65 73 22 20 77 69 6c 6c 20 62 65 20 77 61 69 74 69 6e 67 20 66 6f 72 20 74 68 65 69 72 20 67   ┆ves" will be waiting for their g┆
0x8140…8160       6f 20 74 6f 20 62 6f 6f 74 20 63 6f 6d 6d 61 6e 64 20 61 73 20 77 65 6c 6c 2e 0d 0a 81 0d 0a 0d   ┆o to boot command as well.      ┆
0x8160…8180       0a 49 66 20 6e 6f 20 63 6f 6e 73 6f 6c 65 20 69 73 20 70 72 65 73 65 6e 74 20 6f 6e 20 74 68 65   ┆ If no console is present on the┆
0x8180…81a0       20 69 41 50 58 20 32 38 36 20 43 50 55 20 62 6f 61 72 64 20 74 68 65 6e 20 74 68 65 20 62 6f 6f   ┆ iAPX 286 CPU board then the boo┆
0x81a0…81c0       74 6c 6f 61 64 20 0a 66 72 6f 6d 20 77 69 6e 63 68 65 73 74 65 72 20 64 69 73 63 20 69 73 20 73   ┆tload  from winchester disc is s┆
0x81c0…81e0       74 61 72 74 65 64 20 62 79 20 64 65 66 61 75 6c 74 2c 20 6f 74 68 65 72 77 69 73 65 20 74 68 65   ┆tarted by default, otherwise the┆
0x81e0…8200       20 72 65 73 75 6c 74 20 6f 66 20 0a 74 68 65 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 69 73   ┆ result of  the configuration is┆
0x8200…8220 (65,) 20 77 72 69 74 74 65 6e 20 74 6f 20 74 68 65 20 73 63 72 65 65 6e 20 61 6e 64 20 74 68 65 20 44   ┆ written to the screen and the D┆
0x8220…8240       65 62 75 67 20 4d 6f 6e 69 74 6f 72 20 69 73 20 0a 65 6e 74 65 72 65 64 2e 20 54 68 65 20 63 6f   ┆ebug Monitor is  entered. The co┆
0x8240…8260       6e 73 6f 6c 65 20 6f 75 74 70 75 74 20 6d 69 67 68 74 20 6c 6f 6f 6b 20 6c 69 6b 65 20 74 68 69   ┆nsole output might look like thi┆
0x8260…8280       73 2e 0d 0a 0d 0a 0d 0a b0 4d 75 6c 74 69 62 75 73 20 43 6f 6e 66 69 67 75 72 61 74 69 6f 6e 3a   ┆s.       Multibus Configuration:┆
0x8280…82a0       0d 0a b0 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d   ┆   =============================┆
0x82a0…82c0       3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d   ┆================================┆
0x82c0…82e0       3d 3d 3d 3d 3d 3d 3d 3d 3d 0d 0a b0 b0 4d 42 20 65 6e 74 72 79 20 2d 20 4d 42 20 61 64 64 72 65   ┆=========    MB entry - MB addre┆
0x82e0…8300       73 73 20 2d 20 43 61 72 64 20 53 74 61 74 65 20 2d 20 43 61 72 64 20 49 44 20 2d 20 4d 42 20 52   ┆ss - Card State - Card ID - MB R┆
0x8300…8320       41 4d 20 73 69 7a 65 20 2d 20 65 72 72 6f 72 20 6e 6f 2e 0d 0a b0 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d   ┆AM size - error no.   ==========┆
0x8320…8340       3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d   ┆================================┆
0x8340…8360       3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0d 0a b0 30   ┆============================   0┆
0x8360…8380       30 30 30 30 20 20 20 20 20 20 20 30 30 30 30 30 30 09 20 20 6d 61 73 74 65 72 09 20 20 20 43 50   ┆0000       000000   master    CP┆
0x8380…83a0       55 20 36 31 30 20 20 20 30 32 30 34 38 20 20 20 20 20 20 20 20 20 20 30 30 30 30 30 0d 0a b0 b0   ┆U 610   02048          00000    ┆
0x83a0…83c0       30 30 30 30 31 20 20 20 20 20 20 20 39 45 30 30 30 30 09 20 20 72 65 61 64 79 09 20 20 20 49 54   ┆00001       9E0000   ready    IT┆
0x83c0…83e0       43 20 36 30 32 20 20 20 30 30 30 36 34 20 20 20 20 20 20 20 20 20 20 30 30 30 30 30 0d 0a b0 30   ┆C 602   00064          00000   0┆
0x83e0…8400       30 30 30 32 20 20 20 20 20 20 20 38 45 30 30 30 30 20 20 20 20 20 20 20 20 72 65 61 64 79 09 20   ┆0002       8E0000        ready  ┆
0x8400…8420 (66,) 20 20 43 4f 4d 20 36 30 31 20 20 20 30 30 30 36 34 20 20 20 20 20 20 20 20 20 20 30 30 30 30 30   ┆  COM 601   00064          00000┆
0x8420…8440       0d 0a b0 30 30 30 30 33 20 20 20 20 20 20 20 38 30 30 30 30 30 20 20 20 20 20 20 20 20 72 65 61   ┆   00003       800000        rea┆
0x8440…8460       64 79 20 20 20 20 20 20 45 54 43 20 36 31 31 20 20 20 30 30 35 31 32 20 20 20 20 20 20 20 20 20   ┆dy      ETC 611   00512         ┆
0x8460…8480       20 30 30 30 30 30 0d 0a 0d 0a b0 3c 30 30 30 30 31 3e 20 53 65 6e 74 20 74 6f 20 62 6f 6f 74 6c   ┆ 00000     <00001> Sent to bootl┆
0x8480…84a0       6f 61 64 0d 0a b0 3c 30 30 30 30 32 3e 20 53 65 6e 74 20 74 6f 20 62 6f 6f 74 6c 6f 61 64 0d 0a   ┆oad   <00002> Sent to bootload  ┆
0x84a0…84c0       b0 3c 30 30 30 30 33 3e 20 53 65 6e 74 20 74 6f 20 62 6f 6f 74 6c 6f 61 64 0d 0a 0d 0a b0 52 43   ┆ <00003> Sent to bootload     RC┆
0x84c0…84e0       20 33 39 20 4d 6f 6e 69 74 6f 72 20 72 65 6c 65 61 73 65 20 32 2e 30 0d 0a b0 2e 0d 0a 0d 0a 0d   ┆ 39 Monitor release 2.0   .     ┆
0x84e0…8500       0a 8c 83 e0 0a 49 74 20 69 73 20 6e 6f 77 20 6e 65 63 65 73 73 61 72 79 20 74 6f 20 65 6e 74 65   ┆     It is now necessary to ente┆
0x8500…8520       72 20 61 20 62 6f 6f 74 20 63 6f 6d 6d 61 6e 64 20 74 6f 20 67 65 74 20 58 45 4e 49 58 20 75 70   ┆r a boot command to get XENIX up┆
0x8520…8540       20 61 6e 64 20 0a 72 75 6e 6e 69 6e 67 2e 20 49 66 20 74 68 65 20 62 6f 6f 74 6c 6f 61 64 20 69   ┆ and  running. If the bootload i┆
0x8540…8560       73 20 6d 61 64 65 20 66 72 6f 6d 20 66 6c 6f 70 70 79 20 69 74 20 69 73 20 6e 6f 72 6d 61 6c 6c   ┆s made from floppy it is normall┆
0x8560…8580       79 20 6e 65 63 65 73 73 61 72 79 20 0a 74 6f 20 65 6e 74 65 72 20 74 68 65 20 66 69 6c 65 20 6e   ┆y necessary  to enter the file n┆
0x8580…85a0       61 6d 65 20 22 78 65 6e 69 78 2e 66 64 22 20 28 4c 46 47 3a 78 65 6e 69 78 2e 66 64 29 2e 20 49   ┆ame "xenix.fd" (LFG:xenix.fd). I┆
0x85a0…85c0       66 20 74 68 65 20 62 6f 6f 6c 6f 61 64 20 67 6f 65 73 20 0a 66 72 6f 6d 20 77 69 6e 63 68 65 73   ┆f the booload goes  from winches┆
0x85c0…85e0       74 65 72 20 69 74 20 69 73 20 65 6e 6f 75 67 68 20 74 6f 20 65 6e 74 65 72 20 28 4c 47 29 20 61   ┆ter it is enough to enter (LG) a┆
0x85e0…8600       6e 64 20 74 68 65 20 64 65 66 61 75 6c 74 20 6b 65 72 6e 65 6c 20 0a 22 2f 78 65 6e 69 78 22 20   ┆nd the default kernel  "/xenix" ┆
0x8600…8620 (67,) 69 73 20 6c 6f 61 64 65 64 2e 0d 0a 0d 0a 0d 0a 54 68 65 20 62 6f 6f 74 6c 6f 61 64 20 69 73 20   ┆is loaded.      The bootload is ┆
0x8620…8640       73 65 70 65 72 61 74 65 64 20 69 6e 74 6f 20 74 77 6f 20 73 74 61 67 65 73 2e 20 54 68 65 20 66   ┆seperated into two stages. The f┆
0x8640…8660       69 72 73 74 20 73 74 61 67 65 20 6c 6f 61 64 73 20 74 68 65 20 0a 62 6f 6f 74 73 74 72 61 70 20   ┆irst stage loads the  bootstrap ┆
0x8660…8680       74 72 61 63 6b 20 66 72 6f 6d 20 65 69 74 68 65 72 20 77 69 6e 63 68 65 73 74 65 72 20 6f 72 20   ┆track from either winchester or ┆
0x8680…86a0       66 6c 6f 70 70 79 20 69 6e 74 6f 20 6d 65 6d 6f 72 79 2c 20 62 75 69 6c 64 73 20 61 20 0a 54 61   ┆floppy into memory, builds a  Ta┆
0x86a0…86c0       73 6b 20 53 74 61 74 65 20 53 65 67 6d 65 6e 74 20 66 72 6f 6d 20 74 68 65 20 6c 6f 61 64 65 64   ┆sk State Segment from the loaded┆
0x86c0…86e0       20 69 6d 61 67 65 2c 20 61 6e 64 20 73 74 61 72 74 73 20 65 78 65 63 75 74 69 6f 6e 2e 20 54 68   ┆ image, and starts execution. Th┆
0x86e0…8700       65 20 0a 66 6f 72 6d 61 74 20 6f 66 20 62 6f 74 68 20 74 68 65 20 66 6c 6f 70 70 79 20 61 6e 64   ┆e  format of both the floppy and┆
0x8700…8720       20 74 68 65 20 77 69 6e 63 68 65 73 74 65 72 20 64 69 73 63 20 69 73 20 31 30 32 34 20 0a 62 79   ┆ the winchester disc is 1024  by┆
0x8720…8740       74 65 73 2f 73 65 63 74 6f 72 2e 20 54 68 65 20 66 6c 6f 70 70 79 20 64 69 73 63 20 68 61 73 20   ┆tes/sector. The floppy disc has ┆
0x8740…8760       38 20 73 65 63 74 6f 72 73 2f 74 72 61 63 6b 20 61 6e 64 20 74 68 65 20 77 69 6e 63 68 65 73 74   ┆8 sectors/track and the winchest┆
0x8760…8780       65 72 20 0a 68 61 73 20 39 20 73 65 63 74 6f 72 73 2f 74 72 61 63 6b 2e 0d 0a 0d 0a 0d 0a 49 66   ┆er  has 9 sectors/track.      If┆
0x8780…87a0       20 74 68 65 20 66 69 72 73 74 20 73 74 61 67 65 20 69 73 20 75 6e 61 62 6c 65 20 74 6f 20 72 65   ┆ the first stage is unable to re┆
0x87a0…87c0       61 64 20 66 72 6f 6d 20 66 6c 6f 70 70 79 20 6f 72 20 77 69 6e 63 68 65 73 74 65 72 20 64 69 73   ┆ad from floppy or winchester dis┆
0x87c0…87e0       63 20 61 6e 20 0a 65 72 72 6f 72 20 6d 65 73 73 61 67 65 20 69 73 20 77 72 69 74 74 65 6e 20 74   ┆c an  error message is written t┆
0x87e0…8800       6f 20 74 68 65 20 63 6f 6e 73 6f 6c 65 2e 0d 0a 0d 0a 0d 0a b0 53 43 53 49 20 64 69 73 63 20 72   ┆o the console.       SCSI disc r┆
0x8800…8820 (68,) 65 61 64 20 65 72 72 6f 72 0d 0a 0d 0a 0d 0a 49 66 20 74 68 65 20 72 65 61 64 69 6e 67 20 77 65   ┆ead error      If the reading we┆
0x8820…8840       6e 74 20 73 75 63 63 65 73 66 75 6c 6c 20 62 75 74 20 74 68 65 20 66 6f 72 6d 61 74 20 77 61 73   ┆nt succesfull but the format was┆
0x8840…8860       20 6e 6f 74 20 61 73 20 65 78 70 65 63 74 65 64 20 0a 61 6e 6f 74 68 65 72 20 6d 65 73 73 61 67   ┆ not as expected  another messag┆
0x8860…8880       65 20 69 73 20 77 72 69 74 74 65 6e 2e 20 54 68 65 20 6c 6f 61 64 65 64 20 63 6f 64 65 20 6d 75   ┆e is written. The loaded code mu┆
0x8880…88a0       73 74 20 62 65 20 69 6e 20 4d 49 43 52 4f 53 4f 46 54 20 78 2e 6f 75 74 20 0a 53 4d 41 4c 4c 20   ┆st be in MICROSOFT x.out  SMALL ┆
0x88a0…88c0       6d 6f 64 65 6c 20 66 6f 72 6d 61 74 2e 20 0d 0a 0d 0a 0d 0a b0 78 2e 6f 75 74 20 46 6f 72 6d 61   ┆model format.        x.out Forma┆
0x88c0…88e0       74 20 65 72 72 6f 72 0d 0a 0d 0a 0d 0a 49 66 20 6e 65 69 74 68 65 72 20 53 43 53 49 20 65 72 72   ┆t error      If neither SCSI err┆
0x88e0…8900       6f 72 20 6e 6f 72 20 66 6f 72 6d 61 74 20 65 72 72 6f 72 20 69 73 20 64 65 74 65 63 74 65 64 20   ┆or nor format error is detected ┆
0x8900…8920       61 6e 20 4f 4b 20 6d 65 73 73 61 67 65 20 69 73 20 0a 77 72 69 74 74 65 6e 20 74 6f 20 74 68 65   ┆an OK message is  written to the┆
0x8920…8940       20 63 6f 6e 73 6f 6c 65 2e 0d 0a 0d 0a 0d 0a b0 53 74 61 67 65 20 31 20 42 6f 6f 74 20 4f 4b 2e   ┆ console.       Stage 1 Boot OK.┆
0x8940…8960       0d 0a 0d 0a 0d 0a 8c 83 bc 0a 54 68 65 20 6c 6f 61 64 65 64 20 70 72 6f 67 72 61 6d 20 69 73 20   ┆          The loaded program is ┆
0x8960…8980       6e 6f 74 20 58 45 4e 49 58 2c 20 62 75 74 20 74 68 65 20 73 65 63 6f 6e 64 20 73 74 61 67 65 20   ┆not XENIX, but the second stage ┆
0x8980…89a0       62 6f 6f 74 20 77 68 69 63 68 20 0a 22 6b 6e 6f 77 73 22 20 61 62 6f 75 74 20 74 68 65 20 58 45   ┆boot which  "knows" about the XE┆
0x89a0…89c0       4e 49 58 20 66 69 6c 65 20 73 74 72 75 63 74 75 72 65 2c 20 61 6e 64 20 69 73 20 61 62 6c 65 20   ┆NIX file structure, and is able ┆
0x89c0…89e0       74 6f 20 6c 6f 61 64 20 61 6e 64 20 0a 73 74 61 72 74 20 74 68 65 20 65 78 65 63 75 74 69 6f 6e   ┆to load and  start the execution┆
0x89e0…8a00       20 6f 66 20 74 68 65 20 58 45 4e 49 58 20 4b 65 72 6e 65 6c 2c 20 77 68 69 63 68 20 6d 75 73 74   ┆ of the XENIX Kernel, which must┆
0x8a00…8a20 (69,) 20 62 65 20 69 6e 20 4d 49 43 52 4f 53 4f 46 54 20 0a 78 2e 6f 75 74 20 4d 49 44 44 4c 45 20 6d   ┆ be in MICROSOFT  x.out MIDDLE m┆
0x8a20…8a40       6f 64 65 6c 20 66 6f 72 6d 61 74 2e 20 57 68 65 6e 20 74 68 65 20 4b 65 72 6e 65 6c 20 69 73 20   ┆odel format. When the Kernel is ┆
0x8a40…8a60       6c 6f 61 64 65 64 20 73 75 63 63 65 73 66 75 6c 6c 79 20 61 6e 64 20 0a 73 74 61 72 74 65 64 20   ┆loaded succesfully and  started ┆
0x8a60…8a80       61 20 6d 65 73 73 61 67 65 20 69 73 20 77 72 69 74 74 65 6e 20 74 6f 20 74 68 65 20 63 6f 6e 73   ┆a message is written to the cons┆
0x8a80…8aa0       6f 6c 65 2e 0d 0a 0d 0a 0d 0a 09 09 f0 b0 4d 69 63 72 6f 73 6f 66 74 20 58 45 4e 49 58 20 33 2e   ┆ole.          Microsoft XENIX 3.┆
0x8aa0…8ac0       32 20 f0 28 61 6e 64 20 73 6f 20 6f 6e 29 0d 0a 0d 0a 0d 0a 41 20 6e 75 6d 62 65 72 20 6f 66 20   ┆2  (and so on)      A number of ┆
0x8ac0…8ae0       65 78 63 65 70 74 69 6f 6e 73 20 6d 61 79 20 61 72 69 73 65 20 64 75 72 69 6e 67 20 74 68 65 20   ┆exceptions may arise during the ┆
0x8ae0…8b00       73 65 63 6f 6e 64 20 73 74 61 67 65 20 62 6f 6f 74 2e 20 54 68 65 20 0a 65 78 63 65 70 74 69 6f   ┆second stage boot. The  exceptio┆
0x8b00…8b20       6e 73 20 61 72 65 20 6c 69 73 74 65 64 20 62 65 6c 6f 77 2e 20 41 66 74 65 72 20 61 6e 20 65 78   ┆ns are listed below. After an ex┆
0x8b20…8b40       63 65 70 74 69 6f 6e 20 74 68 65 20 6c 6f 61 64 65 72 20 72 65 74 75 72 6e 73 20 74 6f 20 0a 74   ┆ception the loader returns to  t┆
0x8b40…8b60       68 65 20 44 65 62 75 67 20 4d 6f 6e 69 74 6f 72 20 69 66 20 70 6f 73 73 69 62 6c 65 2e 20 45 78   ┆he Debug Monitor if possible. Ex┆
0x8b60…8b80       70 65 72 69 65 6e 63 65 20 68 61 73 20 73 68 6f 77 6e 20 74 68 61 74 20 6e 6f 74 20 61 6c 6c 20   ┆perience has shown that not all ┆
0x8b80…8ba0       0a 65 78 63 65 70 74 69 6f 6e 73 20 61 72 65 20 72 65 73 74 61 72 74 61 62 6c 65 2c 20 62 75 74   ┆ exceptions are restartable, but┆
0x8ba0…8bc0       20 61 20 68 61 72 64 77 61 72 65 20 72 65 73 65 74 20 6d 75 73 74 20 62 65 20 73 75 70 70 6c 69   ┆ a hardware reset must be suppli┆
0x8bc0…8be0       65 64 2e 0d 0a 0d 0a 0d 0a 41 6c 6c 20 65 78 63 65 70 74 69 6f 6e 73 20 61 72 65 20 6e 75 6d 62   ┆ed.      All exceptions are numb┆
0x8be0…8c00       65 72 65 64 20 61 6e 64 20 74 68 65 79 20 77 69 6c 6c 20 61 6c 6c 20 70 72 6f 64 75 63 65 20 74   ┆ered and they will all produce t┆
0x8c00…8c20 (70,) 68 65 20 73 61 6d 65 20 74 79 70 65 20 6f 66 20 0a 6f 75 74 70 75 74 2e 0d 0a 0d 0a 0d 0a b0 53   ┆he same type of  output.       S┆
0x8c20…8c40       74 61 67 65 20 32 20 42 6f 6f 74 20 45 58 43 45 50 54 49 4f 4e 20 6e 6f 3a 20 6e 6e 0d 0a 0d 0a   ┆tage 2 Boot EXCEPTION no: nn    ┆
0x8c40…8c60       0d 0a 6e 6e 0d 0a 0d 0a 0d 0a 32 2e 20 68 65 61 64 65 72 20 65 72 72 6f 72 20 28 78 2e 6f 75 74   ┆  nn      2. header error (x.out┆
0x8c60…8c80       20 66 6f 72 6d 61 74 20 65 72 72 6f 72 29 0d 0a 0d 0a 33 2e 20 62 61 64 20 6d 61 67 69 63 20 6e   ┆ format error)    3. bad magic n┆
0x8c80…8ca0       75 6d 62 65 72 20 28 78 2e 6f 75 74 20 66 6f 72 6d 61 74 20 65 72 72 6f 72 29 0d 0a 0d 0a 34 2e   ┆umber (x.out format error)    4.┆
0x8ca0…8cc0       20 62 61 64 20 77 6f 72 64 20 6f 72 64 65 72 69 6e 67 20 28 78 2e 6f 75 74 20 66 6f 72 6d 61 74   ┆ bad word ordering (x.out format┆
0x8cc0…8ce0       20 65 72 72 6f 72 29 20 0a 0d 0a 35 2e 20 62 61 64 20 74 61 72 67 65 74 20 63 70 75 20 28 78 2e   ┆ error)    5. bad target cpu (x.┆
0x8ce0…8d00       6f 75 74 20 66 6f 72 6d 61 74 20 65 72 72 6f 72 29 0d 0a 0d 0a 36 2e 20 62 61 64 20 72 75 6e 74   ┆out format error)    6. bad runt┆
0x8d00…8d20       69 6d 65 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 28 78 2e 6f 75 74 20 66 6f 72 6d 61 74 20 65 72   ┆ime environment (x.out format er┆
0x8d20…8d40       72 6f 72 29 0d 0a 0d 0a 37 2e 20 65 78 74 65 6e 64 65 64 20 68 65 61 64 65 72 20 72 65 61 64 20   ┆ror)    7. extended header read ┆
0x8d40…8d60       65 72 72 6f 72 20 28 78 2e 6f 75 74 20 66 6f 72 6d 61 74 20 65 72 72 6f 72 29 0d 0a 0d 0a 8c 83   ┆error (x.out format error)      ┆
0x8d60…8d80       c8 0a 38 2e 20 63 61 6e 27 74 20 62 6f 6f 74 20 75 6e 73 65 67 6d 65 6e 74 65 64 20 78 2e 6f 75   ┆  8. can't boot unsegmented x.ou┆
0x8d80…8da0       74 20 66 69 6c 65 73 20 28 78 2e 6f 75 74 20 66 6f 72 6d 61 74 20 65 72 72 6f 72 29 0d 0a 0d 0a   ┆t files (x.out format error)    ┆
0x8da0…8dc0       39 2e 20 7a 65 72 6f 20 73 65 67 6d 65 6e 74 73 20 28 78 2e 6f 75 74 20 66 6f 72 6d 61 74 20 65   ┆9. zero segments (x.out format e┆
0x8dc0…8de0       72 72 6f 72 29 0d 0a 0d 0a 33 32 2e 20 6d 65 61 6e 73 20 66 69 6c 65 20 6e 6f 74 20 66 6f 75 6e   ┆rror)    32. means file not foun┆
0x8de0…8e00       64 0d 0a 0d 0a 31 30 30 2e 20 35 20 72 65 74 72 69 65 73 20 77 61 73 20 6d 61 64 65 20 62 79 20   ┆d    100. 5 retries was made by ┆
0x8e00…8e20 (71,) 74 68 65 20 64 69 73 63 20 64 72 69 76 65 72 2c 20 62 75 74 20 73 74 69 6c 6c 20 6e 6f 20 64 61   ┆the disc driver, but still no da┆
0x8e20…8e25       74 61 2e 0d 0a                                                                                    ┆ta.  ┆
0x8e25…8e28       FormFeed {
0x8e25…8e28         0c 80 d4                                                                                          ┆   ┆
0x8e25…8e28       }
0x8e28…8e40       0a a1 35 2e 20 20 20 20 20 52 41 4d 20 52 45 53 45 52 56 41 54 49 4f 4e                           ┆  5.     RAM RESERVATION┆
0x8e40…8e60       2e 0d 0a 0d 0a 0d 0a a1 e1 54 68 69 73 20 76 65 72 73 69 6f 6e 20 6f 66 20 74 68 65 20 44 65 62   ┆.        This version of the Deb┆
0x8e60…8e80       75 67 20 4d 6f 6e 69 74 6f 72 20 69 73 20 63 75 72 72 65 6e 74 6c 79 20 72 75 6e 6e 69 6e 67 20   ┆ug Monitor is currently running ┆
0x8e80…8ea0       6f 6e 20 74 77 6f 20 69 41 50 58 20 32 38 36 20 0a 43 50 55 27 73 2c 20 74 68 65 20 43 50 55 20   ┆on two iAPX 286  CPU's, the CPU ┆
0x8ea0…8ec0       36 31 30 20 61 6e 64 20 74 68 65 20 43 50 55 20 36 39 31 2e 20 4f 6e 20 62 6f 74 68 20 43 50 55   ┆610 and the CPU 691. On both CPU┆
0x8ec0…8ee0       27 73 20 74 68 65 20 6c 6f 77 65 73 74 20 38 20 4b 20 62 79 74 65 20 0a 6f 66 20 52 41 4d 20 69   ┆'s the lowest 8 K byte  of RAM i┆
0x8ee0…8f00       73 20 72 65 73 65 72 76 65 64 20 66 6f 72 20 74 68 65 20 44 65 62 75 67 20 4d 6f 6e 69 74 6f 72   ┆s reserved for the Debug Monitor┆
0x8f00…8f03       2e 0d 0a                                                                                          ┆.  ┆
0x8f03…8f06       FormFeed {
0x8f03…8f06         0c 80 c8                                                                                          ┆   ┆
0x8f03…8f06       }
0x8f06…8f20       0a a1 36 2e 20 20 20 20 20 52 45 4c 41 54 45 44 20 44 4f 43 55 4d 45 4e 54 53                     ┆  6.     RELATED DOCUMENTS┆
0x8f20…8f40       2e 0d 0a 0d 0a 0d 0a 52 43 20 33 39 20 53 65 6c 66 74 65 73 74 20 43 6f 6e 63 65 70 74 2c 20 55   ┆.      RC 39 Selftest Concept, U┆
0x8f40…8f60       73 65 72 27 73 20 4d 61 6e 75 61 6c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 52 43 53 4c 2e 20   ┆ser's Manual              RCSL. ┆
0x8f60…8f80       39 39 31 31 30 30 39 32 0d 0a 0d 0a 49 54 43 20 36 30 32 20 68 61 72 64 77 61 72 65 20 73 65 6c   ┆99110092    ITC 602 hardware sel┆
0x8f80…8fa0       66 74 65 73 74 2c 20 55 73 65 72 27 73 20 4d 61 6e 75 61 6c 20 20 20 20 20 20 20 20 20 20 20 52   ┆ftest, User's Manual           R┆
0x8fa0…8fc0       43 53 4c 2e 20 39 39 31 31 30 30 39 35 0d 0a 0d 0a 46 36 34 31 20 43 4f 4d 20 36 30 31 20 68 61   ┆CSL. 99110095    F641 COM 601 ha┆
0x8fc0…8fe0       72 64 77 61 72 65 20 73 65 6c 66 74 65 73 74 2c 20 55 73 65 72 27 73 20 4d 61 6e 75 61 6c 20 20   ┆rdware selftest, User's Manual  ┆
0x8fe0…9000       20 20 20 20 52 43 53 4c 2e 20 39 39 31 31 30 30 39 37 0d 0a 0d 0a 52 43 20 33 39 30 32 20 28 43   ┆    RCSL. 99110097    RC 3902 (C┆
0x9000…9020 (72,) 50 55 20 36 39 31 29 20 68 61 72 64 77 61 72 65 20 73 65 6c 66 74 65 73 74 2c 20 55 73 65 72 27   ┆PU 691) hardware selftest, User'┆
0x9020…9040       73 20 4d 61 6e 75 61 6c 20 52 43 53 4c 2e 20 39 39 31 31 30 30 39 34 0d 0a 0d 0a 52 43 20 33 39   ┆s Manual RCSL. 99110094    RC 39┆
0x9040…9060       30 32 20 28 43 50 55 20 36 31 30 29 20 68 61 72 64 77 61 72 65 20 73 65 6c 66 74 65 73 74 2c 20   ┆02 (CPU 610) hardware selftest, ┆
0x9060…9080       55 73 65 72 27 73 20 4d 61 6e 75 61 6c 20 52 43 53 4c 2e 20 39 39 31 31 39 31 33 34 20 0d 0a 0d   ┆User's Manual RCSL. 99119134    ┆
0x9080…90a0       0a 0d 0a 52 43 20 33 39 20 4d 6f 6e 69 74 6f 72 20 38 30 38 36 20 76 65 72 73 69 6f 6e 2c 20 52   ┆   RC 39 Monitor 8086 version, R┆
0x90a0…90c0       65 66 65 72 65 6e 63 65 20 4d 61 6e 75 61 6c 20 20 20 20 20 20 20 52 43 53 4c 2e 20 39 39 31 31   ┆eference Manual       RCSL. 9911┆
0x90c0…90c6       30 31 33 34 0d 0a                                                                                 ┆0134  ┆
0x90c6…90c9       FormFeed {
0x90c6…90c9         0c 81 b4                                                                                          ┆   ┆
0x90c6…90c9       }
0x90c9…90e0       0a a1 41 70 70 65 6e 64 69 78 20 41 2e 0d 0a 0d 0a 0d 0a 49 6e 20 6f                              ┆  Appendix A.      In o┆
0x90e0…9100       72 64 65 72 20 74 6f 20 69 6e 74 65 67 72 61 74 65 20 74 68 65 20 44 65 62 75 67 20 4d 6f 6e 69   ┆rder to integrate the Debug Moni┆
0x9100…9120       74 6f 72 20 77 69 74 68 20 58 45 4e 49 58 20 33 2e 32 20 61 20 6e 75 6d 62 65 72 20 6f 66 20 47   ┆tor with XENIX 3.2 a number of G┆
0x9120…9140       44 54 20 0a 73 65 6c 65 63 74 6f 72 73 20 28 34 30 29 20 69 73 20 72 65 73 65 72 76 65 64 20 66   ┆DT  selectors (40) is reserved f┆
0x9140…9160       6f 72 20 74 68 65 20 44 65 62 75 67 20 4d 6f 6e 69 74 6f 72 2e 20 54 68 69 73 20 67 69 76 65 73   ┆or the Debug Monitor. This gives┆
0x9160…9180       20 74 68 65 20 0a 66 6f 6c 6c 6f 77 69 6e 67 20 47 44 54 20 74 61 62 6c 65 20 6c 61 79 6f 75 74   ┆ the  following GDT table layout┆
0x9180…91a0       2e 0d 0a 0d 0a 0d 0a 09 09 09 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 09 09 20   ┆.         -----------------     ┆
0x91a0…91c0       20 20 20 30 30 30 30 09 21 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 21 20 4e 55 4c 4c 20   ┆   0000 !                ! NULL ┆
0x91c0…91e0       44 45 53 43 52 49 50 54 4f 52 0d 0a 20 09 09 09 21 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆DESCRIPTOR      !---------------┆
0x91e0…9200       2d 21 0d 0a 09 20 20 09 20 20 20 20 30 30 30 38 09 21 20 20 20 47 44 54 20 41 4c 49 41 53 20 20   ┆-!          0008 !   GDT ALIAS  ┆
0x9200…9220 (73,) 20 20 21 0d 0a 09 09 09 21 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 21 0d 0a 09 20 20 20   ┆  !     !----------------!      ┆
0x9220…9240       20 20 20 20 20 20 20 20 20 20 20 30 30 31 30 09 21 20 20 20 49 44 54 20 41 4c 49 41 53 20 20 20   ┆           0010 !   IDT ALIAS   ┆
0x9240…9260       20 21 0d 0a 09 09 09 21 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 21 2d 2d 2d 2d 2d 2d 2d   ┆ !     !----------------!-------┆
0x9260…9280       2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 09 09 09 21 09 20 20 20 20 20 20 20 21 20   ┆----------------     !        ! ┆
0x9280…92a0       34 30 20 44 65 62 75 67 20 4d 6f 6e 69 74 6f 72 20 47 44 54 0d 0a 09 09 09 21 09 20 20 20 20 20   ┆40 Debug Monitor GDT     !      ┆
0x92a0…92c0       20 20 21 20 65 6e 74 72 69 65 73 0d 0a 09 09 09 21 09 20 20 20 20 20 20 20 21 0d 0a 09 09 09 20   ┆  ! entries     !        !      ┆
0x92c0…92e0       09 20 20 20 20 20 20 20 0d 0a 09 09 09 09 20 20 20 20 20 20 20 0d 0a 09 09 09 21 20 20 20 20 20   ┆                          !     ┆
0x92e0…9300       20 20 20 20 20 20 20 20 20 20 20 21 0d 0a 09 09 09 21 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆           !     !--------------┆
0x9300…9320       2d 2d 21 0d 0a 09 09 20 20 20 20 30 31 31 30 20 20 21 20 20 43 4f 4e 46 49 47 20 44 45 53 43 2e   ┆--!        0110  !  CONFIG DESC.┆
0x9320…9340       20 20 21 20 44 65 73 63 72 69 70 74 6f 72 20 66 6f 72 20 74 68 65 20 4d 75 6c 2d 0d 0a 09 09 09   ┆  ! Descriptor for the Mul-     ┆
0x9340…9360       21 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 21 20 74 69 62 75 73 20 43 6f 6e 66 69 67 75   ┆!----------------! tibus Configu┆
0x9360…9380       72 61 74 69 6f 6e 20 54 61 62 6c 65 0d 0a 09 09 20 20 20 20 30 31 31 38 20 20 21 20 49 4e 54 20   ┆ration Table        0118  ! INT ┆
0x9380…93a0       31 20 54 41 53 4b 20 47 41 54 45 21 20 54 61 73 6b 20 47 61 74 65 20 74 6f 20 73 69 6d 75 6c 61   ┆1 TASK GATE! Task Gate to simula┆
0x93a0…93c0       74 65 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 21 2d 2d 2d   ┆te                          !---┆
0x93c0…93e0       2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 21 20 53 69 6e 67 6c 65 20 53 74 65 70 20 69 6e 74 65 72   ┆-------------! Single Step inter┆
0x93e0…9400       72 75 70 74 0d 0a 09 09 20 20 20 20 30 31 32 30 20 20 21 20 49 4e 54 20 33 20 54 41 53 4b 20 47   ┆rupt        0120  ! INT 3 TASK G┆
0x9400…9420 (74,) 41 54 45 21 20 54 61 73 6b 20 47 61 74 65 20 74 6f 20 73 69 6d 75 6c 61 74 65 0d 0a 09 09 09 21   ┆ATE! Task Gate to simulate     !┆
0x9420…9440       2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 21 20 42 72 65 61 6b 70 6f 69 6e 74 20 4f 52 20   ┆----------------! Breakpoint OR ┆
0x9440…9460       49 4e 54 20 33 20 69 6e 74 2e 0d 0a 09 09 09 21 20 6e 6f 74 20 75 73 65 64 20 20 20 20 20 20 20   ┆INT 3 int.     ! not used       ┆
0x9460…9480       21 0d 0a 09 09 09 21 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 21 0d 0a 20 20 20 20 20 20   ┆!     !                !        ┆
0x9480…94a0       20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 21 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆                  !-------------┆
0x94a0…94c0       2d 2d 2d 21 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a   ┆---!------------------------    ┆
0x94c0…94dc       0d 0a 09 09 09 b0 f0 a1 f0 e2 e1 20 20 20 a1 47 44 54 20 4c 61 79 6f 75 74 2e 0d 0a               ┆               GDT Layout.  ┆
0x94dc…94df       FormFeed {
0x94dc…94df         0c 83 98                                                                                          ┆   ┆
0x94dc…94df       }
0x94df…94e0       0a                                                                                                ┆ ┆
0x94e0…9500       09 09 20 20 20 20 30 31 35 38 20 20 21 20 4b 45 52 4e 45 4c 20 44 41 54 41 20 20 20 20 21 20 58   ┆      0158  ! KERNEL DATA    ! X┆
0x9500…9520       45 4e 49 58 20 33 2e 32 20 73 65 6c 65 63 74 6f 72 73 0d 0a 09 09 09 21 2d 2d 2d 2d 2d 2d 2d 2d   ┆ENIX 3.2 selectors     !--------┆
0x9520…9540       2d 2d 2d 2d 2d 2d 2d 2d 21 0d 0a 09 09 20 20 20 20 30 31 36 30 09 21 20 4b 45 52 4e 45 4c 20 43   ┆--------!        0160 ! KERNEL C┆
0x9540…9560       4f 44 45 20 31 20 20 21 0d 0a 09 09 20 20 20 20 20 20 20 20 20 20 21 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆ODE 1  !              !---------┆
0x9560…9580       2d 2d 2d 2d 2d 2d 2d 21 0d 0a 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 31 36 38 09 21 20   ┆-------!                 0168 ! ┆
0x9580…95a0       4b 45 52 4e 45 4c 20 43 4f 44 45 20 32 20 20 21 0d 0a 09 09 09 21 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆KERNEL CODE 2  !     !----------┆
0x95a0…95c0       2d 2d 2d 2d 2d 2d 21 0d 0a 09 09 20 20 20 20 30 31 37 30 20 09 21 20 4b 45 52 4e 45 4c 20 43 4f   ┆------!        0170  ! KERNEL CO┆
0x95c0…95e0       44 45 20 33 20 20 21 20 6e 6f 74 20 75 73 65 64 20 69 6e 20 58 45 4e 49 58 20 33 2e 32 0d 0a 09   ┆DE 3  ! not used in XENIX 3.2   ┆
0x95e0…9600       09 09 21 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 21 0d 0a 09 20 20 20 20 20 20 20 20 20   ┆  !----------------!            ┆
0x9600…9620 (75,) 20 20 20 20 20 30 31 37 38 09 21 20 4b 45 52 4e 45 4c 20 43 4f 44 45 20 34 20 20 21 20 6e 6f 74   ┆     0178 ! KERNEL CODE 4  ! not┆
0x9620…9640       20 75 73 65 64 20 69 6e 20 58 45 4e 49 58 20 33 2e 32 0d 0a 09 09 09 21 2d 2d 2d 2d 2d 2d 2d 2d   ┆ used in XENIX 3.2     !--------┆
0x9640…9660       2d 2d 2d 2d 2d 2d 2d 2d 21 0d 0a 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 31 38 30 09 21   ┆--------!                 0180 !┆
0x9660…9680       20 4b 45 52 4e 45 4c 20 43 4f 44 45 20 35 20 20 21 20 6e 6f 74 20 75 73 65 64 20 69 6e 20 58 45   ┆ KERNEL CODE 5  ! not used in XE┆
0x9680…96a0       4e 49 58 20 33 2e 32 0d 0a 09 09 09 21 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 21 0d 0a   ┆NIX 3.2     !----------------!  ┆
0x96a0…96c0       09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 31 38 38 09 21 20 4b 45 52 4e 45 4c 20 53 54 41   ┆               0188 ! KERNEL STA┆
0x96c0…96e0       43 4b 20 20 20 21 0d 0a 09 09 09 21 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 21 0d 0a 09   ┆CK   !     !----------------!   ┆
0x96e0…9700       20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 31 39 30 09 21 20 20 20 58 45 4e 49 58 20 54 53 53   ┆              0190 !   XENIX TSS┆
0x9700…9720       20 20 20 20 21 20 58 45 4e 49 58 20 33 2e 32 20 69 73 20 6f 6e 6c 79 20 6f 6e 65 20 69 41 50 58   ┆    ! XENIX 3.2 is only one iAPX┆
0x9720…9740       0d 0a 09 09 09 21 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 21 20 32 38 36 20 54 61 73 6b   ┆     !----------------! 286 Task┆
0x9740…9760       2e 0d 0a 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 31 39 38 09 21 20 20 20 54 53 53 20 41   ┆.                 0198 !   TSS A┆
0x9760…9780       4c 49 41 53 20 20 20 20 21 0d 0a 09 09 09 21 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 21   ┆LIAS    !     !----------------!┆
0x9780…97a0       0d 0a 09 09 20 20 20 20 30 31 41 30 09 21 20 20 4b 45 52 4e 45 4c 20 57 4f 52 4b 20 20 20 21 0d   ┆        01A0 !  KERNEL WORK   ! ┆
0x97a0…97c0       0a 09 09 09 21 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 21 0d 0a 09 09 20 20 20 20 30 31   ┆    !----------------!        01┆
0x97c0…97e0       41 38 09 21 20 20 4b 45 52 4e 45 4c 20 57 4f 52 4b 20 20 20 21 0d 0a 09 09 09 21 2d 2d 2d 2d 2d   ┆A8 !  KERNEL WORK   !     !-----┆
0x97e0…9800       2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 21 0d 0a 09 09 20 20 20 20 30 31 42 30 09 21 20 20 4b 45 52 4e   ┆-----------!        01B0 !  KERN┆
0x9800…9820 (76,) 45 4c 20 57 4f 52 4b 20 20 20 21 0d 0a 09 09 09 21 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆EL WORK   !     !---------------┆
0x9820…9840       2d 21 0d 0a 09 09 20 20 20 20 30 31 42 38 09 21 20 20 4b 45 52 4e 45 4c 20 57 4f 52 4b 20 20 20   ┆-!        01B8 !  KERNEL WORK   ┆
0x9840…9860       21 0d 0a 09 09 09 21 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 21 0d 0a 09 09 20 20 20 20   ┆!     !----------------!        ┆
0x9860…9880       30 31 43 30 09 21 20 20 4b 45 52 4e 45 4c 20 57 4f 52 4b 20 20 20 21 0d 0a 09 09 09 21 2d 2d 2d   ┆01C0 !  KERNEL WORK   !     !---┆
0x9880…98a0       2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 21 0d 0a 09 09 20 20 20 20 30 31 43 38 09 21 20 20 55 53   ┆-------------!        01C8 !  US┆
0x98a0…98c0       45 52 20 4c 44 54 20 20 20 20 20 20 21 20 58 45 4e 49 58 20 33 2e 32 20 55 53 45 52 20 4c 44 54   ┆ER LDT      ! XENIX 3.2 USER LDT┆
0x98c0…98e0       0d 0a 09 09 09 21 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 21 0d 0a 09 09 20 20 20 20 30   ┆     !----------------!        0┆
0x98e0…9900       31 44 30 09 21 20 20 53 59 53 20 43 41 4c 4c 20 47 41 54 45 20 21 0d 0a 09 09 09 21 2d 2d 2d 2d   ┆1D0 !  SYS CALL GATE !     !----┆
0x9900…9920       2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 21 0d 0a 0d 0a 0d 0a 09 09 20 20 20 20 20 20 20 20 20 a1 47   ┆------------!                  G┆
0x9920…9936       44 54 20 4c 61 79 6f 75 74 20 43 6f 6e 74 69 6e 75 65 64 2e 0d 0a                                 ┆DT Layout Continued.  ┆
0x9936…9939       FormFeed {
0x9936…9939         0c 83 a4                                                                                          ┆   ┆
0x9936…9939       }
0x9939…9940       0a 09 09 20 20 20 20                                                                              ┆       ┆
0x9940…9960       30 31 44 38 09 21 20 20 4b 45 52 4e 45 4c 20 57 4f 52 4b 20 20 20 21 0d 0a 09 09 09 21 2d 2d 2d   ┆01D8 !  KERNEL WORK   !     !---┆
0x9960…9980       2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 21 0d 0a 09 20 20 09 20 20 20 20 30 31 45 30 09 21 20 20   ┆-------------!          01E0 !  ┆
0x9980…99a0       4b 45 52 4e 45 4c 20 57 4f 52 4b 20 20 20 21 0d 0a 09 09 09 21 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆KERNEL WORK   !     !-----------┆
0x99a0…99c0       2d 2d 2d 2d 2d 21 0d 0a 09 09 20 20 20 20 30 31 45 38 09 21 20 20 4b 45 52 4e 45 4c 20 57 4f 52   ┆-----!        01E8 !  KERNEL WOR┆
0x99c0…99e0       4b 20 20 20 21 0d 0a 09 09 09 21 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 21 0d 0a 09 09   ┆K   !     !----------------!    ┆
0x99e0…9a00       20 20 20 20 30 31 46 30 09 21 20 20 4b 45 52 4e 45 4c 20 57 4f 52 4b 20 20 20 21 0d 0a 09 09 09   ┆    01F0 !  KERNEL WORK   !     ┆
0x9a00…9a20 (77,) 21 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 21 0d 0a 09 09 20 20 20 20 30 31 46 38 09 21   ┆!----------------!        01F8 !┆
0x9a20…9a40       20 20 4b 45 52 4e 45 4c 20 57 4f 52 4b 20 20 20 21 0d 0a 09 09 09 21 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆  KERNEL WORK   !     !---------┆
0x9a40…9a60       2d 2d 2d 2d 2d 2d 2d 21 0d 0a 09 09 20 20 20 20 30 32 30 30 09 21 20 20 4d 41 50 20 57 4f 52 4b   ┆-------!        0200 !  MAP WORK┆
0x9a60…9a80       20 20 20 20 20 20 21 0d 0a 09 09 09 21 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 21 0d 0a   ┆      !     !----------------!  ┆
0x9a80…9aa0       09 09 09 21 20 31 30 20 44 79 6e 61 6d 69 63 61 6c 6c 79 20 21 0d 0a 09 09 09 21 20 20 41 6c 6c   ┆   ! 10 Dynamically !     !  All┆
0x9aa0…9ac0       6f 63 61 74 65 64 20 20 20 20 20 21 0d 0a 09 09 09 21 20 20 65 6e 74 72 69 65 73 20 20 20 20 20   ┆ocated     !     !  entries     ┆
0x9ac0…9ae0       20 20 21 0d 0a 09 09 09 21 09 20 20 20 20 20 20 20 21 0d 0a 09 09 20 20 20 20 30 32 37 46 09 21   ┆  !     !        !        027F !┆
0x9ae0…9b00       2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 21 0d 0a 0d 0a 0d 0a 09 09 20 a1 e1 20 20 20 20   ┆----------------!               ┆
0x9b00…9b20       20 20 20 20 a1 47 44 54 20 4c 61 79 6f 75 74 20 43 6f 6e 74 69 6e 75 65 64 2e 0d 0a 0d 0a 0d 0a   ┆     GDT Layout Continued.      ┆
0x9b20…9b40       54 68 65 20 44 65 62 75 67 20 4d 6f 6e 69 74 6f 72 20 69 73 20 69 6e 74 65 67 72 61 74 65 64 20   ┆The Debug Monitor is integrated ┆
0x9b40…9b60       77 69 74 68 20 58 45 4e 49 58 20 33 2e 32 20 69 6e 20 61 20 77 61 79 20 73 6f 20 74 68 61 74 20   ┆with XENIX 3.2 in a way so that ┆
0x9b60…9b80       69 74 20 0a 77 6f 72 6b 73 20 61 73 20 61 20 4b 45 52 4e 45 4c 20 44 65 62 75 67 67 65 72 2e 20   ┆it  works as a KERNEL Debugger. ┆
0x9b80…9ba0       54 68 69 73 20 6d 65 61 6e 73 20 74 68 61 74 20 61 6c 6c 20 69 6e 74 65 72 72 75 70 74 20 31 20   ┆This means that all interrupt 1 ┆
0x9ba0…9bc0       6f 72 20 0a 69 6e 74 65 72 72 75 70 74 20 33 20 74 68 61 74 20 6f 63 63 75 72 20 69 6e 20 53 59   ┆or  interrupt 3 that occur in SY┆
0x9bc0…9be0       53 54 45 4d 2d 6d 6f 64 65 20 28 70 72 69 76 69 6c 65 67 65 20 6c 65 76 65 6c 20 30 29 20 61 72   ┆STEM-mode (privilege level 0) ar┆
0x9be0…9c00       65 20 64 69 72 65 63 74 65 64 20 0a 74 6f 20 74 68 65 20 44 65 62 75 67 20 4d 6f 6e 69 74 6f 72   ┆e directed  to the Debug Monitor┆
0x9c00…9c20 (78,) 20 61 6e 64 20 61 6c 6c 20 55 53 45 52 2d 6d 6f 64 65 20 69 6e 74 65 72 72 75 70 74 20 6f 66 20   ┆ and all USER-mode interrupt of ┆
0x9c20…9c40       74 68 65 20 73 61 6d 65 20 74 79 70 65 20 61 72 65 20 0a 68 61 6e 64 6c 65 64 20 62 79 20 74 68   ┆the same type are  handled by th┆
0x9c40…9c60       65 20 58 45 4e 49 58 20 4b 65 72 6e 65 6c 20 69 74 73 65 6c 66 2e 20 54 68 69 73 20 73 74 72 61   ┆e XENIX Kernel itself. This stra┆
0x9c60…9c80       74 65 67 79 20 70 72 65 73 65 72 76 65 73 20 74 68 65 20 0a 66 75 6e 63 74 69 6f 6e 61 6c 69 74   ┆tegy preserves the  functionalit┆
0x9c80…9ca0       79 20 6f 66 20 74 68 65 20 58 45 4e 49 58 20 55 53 45 52 2d 6d 6f 64 65 20 64 65 62 75 67 67 65   ┆y of the XENIX USER-mode debugge┆
0x9ca0…9ca9       72 2c 20 41 44 42 2e 0d 0a                                                                        ┆r, ADB.  ┆
0x9ca9…9cac       FormFeed {
0x9ca9…9cac         0c 82 d0                                                                                          ┆   ┆
0x9ca9…9cac       }
0x9cac…9cc0       0a 20 20 20 20 20 20 20 20 20 21 0d 0a 09 20 20 20 20 20 21                                       ┆          !        !┆
0x9cc0…9ce0       0d 0a 20 20 20 49 4e 54 20 31 20 6f 72 20 49 4e 54 20 33 20 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆     INT 1 or INT 3  -----------┆
0x9ce0…9d00       2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 3e 20 6d 63 68 2e 73 0d 0a 20 20 20 20 20 20 20 20 20 21 20   ┆------------> mch.s           ! ┆
0x9d00…9d20       20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆                                ┆
0x9d20…9d40       20 20 20 21 0d 0a 20 20 20 20 20 20 20 20 20 21 2d 2d 2d 2d 21 20 20 09 20 20 20 20 20 20 20 20   ┆   !           !----!           ┆
0x9d40…9d60       20 20 20 20 20 20 20 20 20 20 20 6f 65 6d 73 75 70 2e 73 0d 0a 20 09 20 20 20 20 20 21 20 20 20   ┆           oemsup.s         !   ┆
0x9d60…9d80       20 21 09 09 09 20 20 21 0d 0a 20 20 20 20 20 20 20 20 20 21 09 21 20 20 20 20 20 20 20 53 59 53   ┆ !     !           ! !       SYS┆
0x9d80…9da0       54 45 4d 2d 6d 6f 64 65 20 20 2d 2d 2d 2d 2d 2d 2d 2d 20 55 53 45 52 2d 6d 6f 64 65 0d 0a 09 20   ┆TEM-mode  -------- USER-mode    ┆
0x9da0…9dc0       20 20 20 20 21 09 21 09 20 20 21 09 09 20 20 21 0d 0a 09 20 20 20 20 20 21 09 21 20 20 20 20 20   ┆    ! !   !    !        ! !     ┆
0x9dc0…9de0       44 45 42 55 47 20 4d 4f 4e 49 54 4f 52 09 09 6d 63 68 2e 73 0d 0a 09 20 20 20 20 20 21 09 21 09   ┆DEBUG MONITOR  mch.s        ! ! ┆
0x9de0…9e00       20 20 21 09 09 20 20 21 0d 0a 09 20 20 20 20 20 21 09 21 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 21 09   ┆  !    !        ! !-----------! ┆
0x9e00…9e20 (79,) 09 20 20 21 0d 0a 09 20 20 20 20 20 21 09 09 09 09 20 20 21 20 58 45 4e 49 58 20 48 61 6e 64 6c   ┆   !        !      ! XENIX Handl┆
0x9e20…9e40       65 73 20 54 52 41 50 0d 0a 20 20 20 20 20 20 20 20 20 21 0d 0a 0d 0a 0d 0a 20 20 20 20 20 20 20   ┆es TRAP           !             ┆
0x9e40…9e60       20 20 20 20 20 20 a1 58 45 4e 49 58 20 33 2e 32 20 49 6e 74 65 72 72 75 70 74 20 31 20 6f 72 20   ┆       XENIX 3.2 Interrupt 1 or ┆
0x9e60…9e80       33 20 48 61 6e 64 6c 69 6e 67 2e 0d 0a 0d 0a 0d 0a 54 68 65 20 66 69 67 75 72 65 20 61 62 6f 76   ┆3 Handling.      The figure abov┆
0x9e80…9ea0       65 20 65 78 70 6c 61 69 6e 73 20 77 68 61 74 20 68 61 70 70 65 6e 73 20 69 6e 20 74 68 65 20 58   ┆e explains what happens in the X┆
0x9ea0…9ec0       45 4e 49 58 20 33 2e 32 20 4b 65 72 6e 65 6c 20 77 68 65 6e 20 61 6e 20 0a 69 6e 74 65 72 72 75   ┆ENIX 3.2 Kernel when an  interru┆
0x9ec0…9ee0       70 74 20 31 20 6f 72 20 33 20 6f 63 63 75 72 2e 20 54 68 65 20 69 6e 74 65 72 72 75 70 74 20 67   ┆pt 1 or 3 occur. The interrupt g┆
0x9ee0…9f00       61 74 65 20 69 6e 20 74 68 65 20 49 44 54 20 70 6f 69 6e 74 73 20 74 6f 20 61 20 54 52 41 50 20   ┆ate in the IDT points to a TRAP ┆
0x9f00…9f20       0a 68 61 6e 64 6c 65 72 20 69 6e 20 61 20 66 69 6c 65 20 63 61 6c 6c 65 64 20 6d 63 68 2e 73 20   ┆ handler in a file called mch.s ┆
0x9f20…9f40       2e 20 54 68 69 73 20 54 52 41 50 20 68 61 6e 64 6c 65 72 20 70 61 73 73 65 73 20 63 6f 6e 74 72   ┆. This TRAP handler passes contr┆
0x9f40…9f60       6f 6c 20 74 6f 20 61 20 0a 70 72 6f 67 72 61 6d 20 69 6e 20 61 20 66 69 6c 65 20 63 61 6c 6c 65   ┆ol to a  program in a file calle┆
0x9f60…9f80       64 20 6f 65 6d 73 75 70 2e 73 20 2e 20 54 68 69 73 20 70 72 6f 67 72 61 6d 20 66 69 6e 64 73 20   ┆d oemsup.s . This program finds ┆
0x9f80…9fa0       6f 75 74 20 77 68 65 74 68 65 72 20 74 68 65 20 0a 69 6e 74 65 72 72 75 70 74 20 6f 63 63 75 72   ┆out whether the  interrupt occur┆
0x9fa0…9fc0       65 64 20 69 6e 20 53 59 53 54 45 4d 2d 6d 6f 64 65 20 6f 72 20 6e 6f 74 2e 20 49 66 20 74 72 75   ┆ed in SYSTEM-mode or not. If tru┆
0x9fc0…9fe0       65 20 61 20 63 61 6c 6c 20 74 6f 20 74 68 65 20 44 65 62 75 67 20 0a 4d 6f 6e 69 74 6f 72 20 74   ┆e a call to the Debug  Monitor t┆
0x9fe0…a000       68 72 6f 75 67 68 20 6f 6e 65 20 6f 66 20 74 68 65 20 47 44 54 20 67 61 74 65 73 20 69 6e 64 65   ┆hrough one of the GDT gates inde┆
0xa000…a020 (80,) 78 20 31 31 38 20 6f 72 20 31 32 30 20 68 65 78 2e 20 69 73 20 6d 61 64 65 2e 20 0a 54 68 65 20   ┆x 118 or 120 hex. is made.  The ┆
0xa020…a040       44 65 62 75 67 20 4d 6f 6e 69 74 6f 72 20 63 6f 6d 70 65 6e 73 61 74 65 73 20 66 6f 72 20 74 68   ┆Debug Monitor compensates for th┆
0xa040…a060       65 20 61 64 64 69 74 69 6f 6e 61 6c 20 70 72 6f 63 65 73 73 69 6e 67 20 73 69 6e 63 65 20 74 68   ┆e additional processing since th┆
0xa060…a080       65 20 0a 54 52 41 50 20 6f 63 63 75 72 65 64 20 61 6e 64 20 72 65 74 75 72 6e 73 20 64 69 72 65   ┆e  TRAP occured and returns dire┆
0xa080…a0a0       63 74 20 74 6f 20 74 68 65 20 70 6f 69 6e 74 20 77 68 65 72 65 20 74 68 65 20 65 78 63 65 70 74   ┆ct to the point where the except┆
0xa0a0…a0c0       69 6f 6e 20 63 61 6d 65 20 0a 66 72 6f 6d 2e 20 49 6e 20 55 53 45 52 2d 6d 6f 64 65 20 74 68 65   ┆ion came  from. In USER-mode the┆
0xa0c0…a0e0       20 70 72 6f 67 72 61 6d 20 69 6e 20 6f 65 6d 73 75 70 2e 73 20 72 65 74 75 72 6e 73 20 74 72 61   ┆ program in oemsup.s returns tra┆
0xa0e0…a100       6e 73 70 61 72 65 6e 74 6c 79 20 74 6f 20 0a 6d 63 68 2e 73 20 61 6e 64 20 74 68 65 20 6f 70 65   ┆nsparently to  mch.s and the ope┆
0xa100…a120       72 61 74 69 6e 67 20 73 79 73 74 65 6d 20 68 61 6e 64 6c 65 73 20 74 68 65 20 54 52 41 50 2e 0d   ┆rating system handles the TRAP. ┆
0xa120…a140       0a 0d 0a 0d 0a 54 6f 20 67 65 74 20 69 6e 74 6f 20 74 68 65 20 6d 6f 6e 69 74 6f 72 20 66 72 6f   ┆     To get into the monitor fro┆
0xa140…a160       6d 20 74 68 65 20 4b 65 72 6e 65 6c 20 61 20 72 6f 75 74 69 6e 65 20 63 61 6c 6c 65 64 20 22 72   ┆m the Kernel a routine called "r┆
0xa160…a180       63 6d 6f 6e 69 74 6f 72 22 20 0a 69 73 20 69 6e 63 6c 75 64 65 64 20 69 6e 20 74 68 65 20 6d 6f   ┆cmonitor"  is included in the mo┆
0xa180…a1a0       64 75 6c 65 20 63 61 6c 6c 65 64 20 22 6f 65 6d 73 75 70 2e 73 22 2e 20 54 68 69 73 20 72 6f 75   ┆dule called "oemsup.s". This rou┆
0xa1a0…a1c0       74 69 6e 65 20 73 69 6d 70 6c 79 20 0a 65 78 65 63 75 74 65 73 20 61 6e 20 49 4e 54 20 33 20 69   ┆tine simply  executes an INT 3 i┆
0xa1c0…a1e0       6e 73 74 72 75 63 74 69 6f 6e 20 69 6e 74 6f 20 74 68 65 20 44 65 62 75 67 20 4d 6f 6e 69 74 6f   ┆nstruction into the Debug Monito┆
0xa1e0…a200       72 2e 20 41 66 74 65 72 20 6f 6e 65 20 73 69 6e 67 6c 65 20 0a 73 74 65 70 20 28 4e 20 63 6f 6d   ┆r. After one single  step (N com┆
0xa200…a220 (81,) 6d 61 6e 64 29 20 79 6f 75 72 20 62 61 63 6b 20 69 6e 74 6f 20 74 68 65 20 73 75 73 70 65 6e 64   ┆mand) your back into the suspend┆
0xa220…a240       65 64 20 70 72 6f 67 72 61 6d 2e 0d 0a 0a 0a 0a 0a b0 0a 1a 1a 09 09 21 2d 2d 2d 2d 2d 2d 2d 2d   ┆ed program.            !--------┆
0xa240…a260       2d 2d 2d 2d 2d 2d 2d 2d 21 0d 0a 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 31 38 30 09 21   ┆--------!                 0180 !┆
0xa260…a280       20 4b 45 52 4e 45 4c 20 43 4f 44 45 20 35 20 20 21 20 6e 6f 74 20 75 73 65 64 20 69 6e 20 58 45   ┆ KERNEL CODE 5  ! not used in XE┆

Reduced view