|
DataMuseum.dkPresents historical artifacts from the history of: CP/M |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about CP/M Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 41600 (0xa280) Types: RcTekst Names: »99110093.WP«
└─⟦7fab0c8ae⟧ Bits:30005866/disk3.imd Dokumenter i RcTekst format (RCSL 99-1-*) └─⟦this⟧ »99110093.WP«
╱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
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┆