diff --git a/doc/wp/11sim.240a38 b/doc/wp/11sim.240a38 new file mode 100644 index 00000000..e32ae600 --- /dev/null +++ b/doc/wp/11sim.240a38 @@ -0,0 +1,1384 @@ +.he 11SIM Reference Manual Page +.l 62 +.paperw 62 +.bspdir +.ds +.center +11SIM Reference Manual +.sp +.sect +I. Introduction +.sect + + 11SIM is a program that simulates a Digital Equipment +Corporation PDP-11 computer [Ref 1]. This simulator is designed +to run on the Artificial Intelligence Laboratory PDP-10 [Ref 3] +system under the ITS monitor [Ref 4]. A DDT-like [Ref 5] command +facility is included which makes available functions equivalent +to those provided by the PDP-11 console, the normal range of DDT +facilities, and the use of several special debugging features built into +the simulator. + 11SIM is available under ITS as a system program of name +PDP11. + The PDP-11 processor simulator was +written by the author of this memo. The DDT command language +was designed and implemented by Richard M. Stallman. + +.page +.sect +II. Processor Simulation +.sect + + The PDP-11/20 processor is simulated by 11SIM under ITS [Ref 4] +with an increase in execution time of about a factor of 30. The actual +simulated versus real speed ratio varied from 25. to 37. for the PDP-11/20 +processor maintenance programs. Things that would tend to increase this +ratio (i.e. slow down simulation) include activation of "direct to memory" +input-output devices that operate in parallel with the processor +on a real PDP-11 or frequent program reference to such things +as the program counter as a register other than as an addressing +index (i.e., BIC %7,-(3)), non-existant memory locations, +or the other special register locations. + 11SIM keeps track of simulated time to one tenth of a microsecond +based on the nominal timing of the PDP-11/20. Delays caused by the EAE +(Extended Arithmetic Unit KE11-A) are not simulated. For information +on the timing treatment of other peripherals see the +Appendix. + As a convience, some PDP-11/45 [Ref 2] features are +also simulated but can be disabled by detaching the "I45" device +[Sec VIII]. With these PDP-11/45 features off, the +only known imperfection in the PDP-11/20 processor simulation is +that instructions that specify a register as a source and then modify +the register in the calculation of the destination address will fetch the +unmodified register as data. Thus MOV %3,(3)+ does not store +the incremented register 3 as on a real PDP-11. This is because it +is convenient for the simulator to fetch the source data before +calculating the destination address. Digital Equipment Corporation has +said it will not guarentee the compatability of this type of instruction +on future models of the PDP-11 [Ref 1]. + +.page +.ds +.sect +III. Command Level and Interrupt Commands +.sect + + 11SIM has a DDT-like command level [Ref 5] which the user +is initially typing at. Whenever command level is entered, +after the first time, it +prints out the location and symbolic representation of the next instruction +to be executed if the simulator were proceeded. (This location is not +"open" however [Sec V].) This is usually preceded by an indication +of why command level was entered. For example QUIT, BREAK, and +COUNT indicate command level was entered due to a ^G_, a +breakpoint [Sec IX], or a proceed count exhaustion [Sec VII]. + When first started, 11SIM prints +out its version number (this should be included in the report of any bug) +and initializes the PDP-11 configuration [Sec VIII]. If the +user has no disk file named .PDP11 (INIT), zeroed PDP-11 +core is attached to 8K from zero as with an attach command, causing +a print out. Command level is then entered with zero as the location +of the next instruction for the simulator to execute. The +resulting initial print out is as follows: +.ss + 11SIM.nnn + CORE = 8.K +.sp +.ds + If the user does have a disk file named .PDP11 (INIT), +no core is initially attached by the simulator. Instead, "INIT" +is typed out and after command level is first entered, the user's file will +be executed as with a :XFILE [Sec X]. The user's INIT file +should attach the desired amount of core. + Command level is entered if the user quits (see ^G_ below +this section) or the simulator halts due to a HALT instruction, +a buss error during a trap, or some reason related to the debugging features +of the simulator. Command level types out an exclamation point as +a prompt character at the beginning of each new line of input to it. +Single character rub out is allowed between activation characters. +Simulated time does not pass in command mode. + The following characters have effect at the interrupt level regardless +of whether the simulator or command level is active. They are +invisible to simulated programs and ignored by command level +(but see ^Q_). Some help +in getting back to command level rapidly while most control the +destination of normal "console" or simulated teletype +output. +.ss + A. ^B_ (B_egin) Turns on output to line printer (but see +:WALLP [Sec X]). If not available, output will be buffered on the +disk for later printing by ITS. +.sp + B. ^E_ (E_nd) Turns off output to line printer. +.sp + C. ^G_ (bell) This is the "quit" character. + C.1 If typed while at command level it causes an immediate +error and return to the main command loop. + C.2 If typed while simulating, it sets up a transfer to command +level to occur at the end of the current instruction or simulated input-output +cycle. It is possible that due to a bug in the simulator the current +instruction or I-O cycle will not end soon. (This is very much more likely +for a complex newly introduced I-O device than for a basic PDP-11 +instruction.) In this case more ^G_'s may be typed with the following +effects: + C.2.a ^G_^G_ This has the same effect as ^G_^S_ and will +allow the user to immediately see if he has quit or not despite much +buffered type out. + C.2.b ^G_^G_^G_ This causes command level to be entered +immediately, probably from within an I-O cycle. Proceding the +simulation will return to whatever was happening while a ;G [Sec VII] +will start simulation at the beginning of an instruction. +.sp + D. ^Q_ (Q_uote) This character causes the immediately following +character to be treated as an ordinary letter at interrupt level and also +at the main program level of command level. A ^Q_ will be invisible +to a program being simulated but the following character will always be +visible. It is useful for inputing any of the special characters listed +in this section. It may also be used to put +space, comma, colon, and semicolon into filenames. Rubbing +out a character quoted by a ^Q_ also automatically rubs out the ^Q_. +.sp + E. ^S_ (S_ilence) This character deletes all typeout +until the time it is invisibly read at the main program level. +.sp + F. ^V_ (V_oice) Turns on typeout. Typeout is also +switched on by some serious errors. +.sp + G. ^W_ (W_isper) Turns off typeout, except for most +error messages which bypass this switch. + +.ds +.page +.sect +IV. Expressions in 11SIM DDT +.sect + + Expressions in 11SIM DDT are composed of syllables +and operators. Syllables are composed as follows: +.ss + ::= 0[ 1[ 2[ 3[ 4[ 5[ 6[ 7[ 8[ 9 + ::= A[ B[ C . . . X[ Y[ Z[ .[ $[ % + ::= [ + ::= .[ + ::= '[ " + ::= [ [ +.sp + ::= [ [ +[ +.sp +.ds + In the above, means either any ASCII +character not mentioned in section III and not rub-out, +or a ^Q_ followed by any mentioned in section III or rub-out. +Rub-out is used to implement a character at a time input +backup feature. + The value of a syllable (assuming no undefined symbols) is a +16. bit number and a flag that says if it is a register +number. A register value can come only from a register type symbol. The only +initial register symbols are %0, %1, . . . %6, %7. An expression +is register valued if and only if it contains a term which is a register +valued syllable. + Expressions are composed of syllables and certain operators, +with the indicated precedence, as follows: +.ss + ::= [ + ::= [ -[ + + ::= [ *[ ! + ::= [ +[ - + ::= [ &[ \[ +# +.sp + ::= [ +.sp +.ds + In the above "!" signifies division, "&" means logical and, +"\" (back slash) means inclusive-or, and "#" means exclusive-or. A + in an expression performs the operation of addition. + Since the PDP-11 has multi-word instructions, the command level +DDT can handle multi-word values. These may be composed by an +op-code or with angle-brackets as shown below: +.ss + ::= [ , +.sp + ::= [ [ +"<"">" +.sp +.ds + For an expr-sequence at the top level, each expression is +assembled as a successive word. In an embedded expr-sequence, +only the first expression is used. Surrounding register +value expressions with angle brackets strips off their registerness. + Op-codes may variously have zero, one, or two operands and +the operands may be of various sorts. The usual PDP-11 conventions +are followed [Ref 1] except for the set and clear +flag instructions where SFL or CFL followed by a space, +an atsign, and the appropriate flag letters is used (i.e. SFL @C +for SEC or CFL @Z for CLZ). In genral, +expressions of the right registerness may +be used in operands. Where a register is expected and an ordinary +value is supplied, it is treated as a register value +(i.e. RTS 7 is equivalent to RTS %7). + The following are some special symbols whose values are +automatically set. +.ss + . Current location [Ref 4]. + %. Location actually open [Sec V]. + % Set at entry to simulated program counter. + %OPC Address of last or current instruction. + %Q Has value of last quantity typed in or out. + %B Address of last breakpoint taken [Sec IX]. + %GO Starting address for ;G with no argument. + %CORE Number of bytes attached (first non-existant +address). + %D Last explicit destination address typed in or out. + %JPC Sometimes set to address of last jump or trap [Sec IX]. + %L Length of last quantity typed in or out. + %S Last explicit source address typed in or out. + %P Last subexpression in a multiword expression, else %Q. + %CSX Address used by ;X [Sec VII]. + %PATR Location after instruction patched [Sec VII]. + PATCH Patch space pointer [Sec VII]. + %PMODE Permanent type out mode [Sec V]. + %TMODE Temporary type out mode [Sec V]. +.sp +.ds + Symbols are also defined for various device registers +(including the processor "device"). They are listed +in the Appendix. + +.page +.sect +V. Examining and Depositing +.sect + + In examining and modifying locations, 11SIM command level +follows the same general conventions as DDT [Ref 5]. "/" +when preceeded by an expression types out the corresponding location +in the current mode (see below this section for mode commands). This +command changes the values of the symbols %. and ".". If given +no argument, the value of %Q is used and only %. is changed. Open +square bracket is the same as "/" in all respects except that type out +is in non-instruction mode. + The "=" command retypes %Q or its argument, +if supplied, in numeric form. Close square bracket +is the same as "=" except that it types out in current mode. + The left arrow (or underbar) command reopens %. in the current +mode. + The :REGS command is available to examine all of the +eight procesor general registers. + Carriage return closes the currently open location and +deposits its argument, if any, there. Horizontal-tab, +line-feed, and up-arrow (or circumflex) +do the same but then type out the address of and open +a new location. For horizontal-tab, this is the location addressed +by the previously open location. For line feed, this is .+1 if +a byte is open or .+%L, if a word is open, where %L is +the length of %Q in bytes. For up-arrow, it is .-1 if a +byte is open and .-2 if a word is open. + There are three sets of type out modes. The one-shot set +are refered to during printing and are reset from the temporary set +at the end of every non-type-out-mode command. The temporary set are +modified to the permanent whenever the simulator types out +a prompting "!". This happens when DDT is entered and +after a carriage return, a colon command, and some +other commands. Thus the one-shot mode affects +only the next command. + Each set of +type out modes is a group of bits that can be cleared (with +a minus sign immediately before the mode character) or turned +on for either just the one-shot set (one semicolon), or +both the one-shot and temporary +sets (two semicolons), or all three (three semicolons). For example, +;-D;;;N will set numeric mode for all sets but clear decimal mode +in the one shot set. The following is a complete list of mode +characters: +.ss + B Byte mode, when opening an even location, +examine even addressed byte only. (Examining an +odd location always fetches byte only.) + D Decimal mode, when printing a quantity + numerically, use base 10. (Normal base is 8.) + I Instruction mode, when opening a location, print as an instruction. + N Numeric mode, overrides symbolic and ASCII modes. + R "Register" mode, stops register values form being +printed symbolicly. + S Symbolic mode. + ! Non-printing mode, when opening a location, don't print its +contents, overrides all others. + " ASCII mode, overrides symbolic. + ' Both ASCII and byte modes. +.sp +.ds + These different modes are relevant at different points +in type out. Decimal mode only has effect when +it has been decided to output a number. When a location is opened, +"!" mode is check first. If it is off, then "I" mode +is checked to see if instruction print out should be used. If +"I" is off then ASCII and "N" mode are successively +tested. (In examining an odd location or a register or when byte +mode is on, instruction mode is supressed.) When a quantity +is output, the same thing happens except the "!" and "I" modes +are not examined. When a quantity is printed symbolicly, it +is normally printed as the nearest symbol less than the +quantity plus the difference printed numerically. Special things +happen for register quantities. These are printed as a symbol +only if the symbol matches exactly, "R" and "N" mode are off, +and "S" mode is on. If +printed numericly a % is printed in front only if the context +(in an instruction) does not make it clear that the number is a +register. + Numeric and ASCII mode do not affect the output of +addresses printed by command level +because it is about to open them (i.e., +those generated by line-feed, breakpoints, etc.). Expressions +typed before a mode setting command are treated as if +typed afterward. + +.page +.sect +VI. Zeroing, Loading and Dumping +.sect + + Although the simulated core and disk du֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠tes a RESET +instruction, zeros the cumulative virtual time and zeros the processor status +register. +.sp + :BUSS The simulator remembers various information about the last +up to three buss errors. This information, which includes the simulated +time of the error, is printed along with the current time by :BUSS. +.sp + :PAT exp This command can be given only when a location +is open [Sec V]. It gives the location special properties and stores +exp, which must be a one word quantity, in it. Attempts to read or write +the locaction by a simulated program will be treated +as stopping breakpoints [Sec IX]. Fetching the location as an instruction +will cause a transfer to exp. Examining the location at command +level will type out ":PAT" before exp and force exp to be typed +as an address. Depositing with DDT will erase +the special features. The :PAT command also sets the symbol %PATR to the +location of the next instruction (the location line +feed would have opened). The properties of :PAT locations are correctly +dumped and loaded [Sec VI]. +.sp + ^\_ This command (control backslash) +can be given only when a location +is open and the symbol +PATCH has been defined to point to an even non-register location. +It has the effects of :PAT PATCH but also opens location PATCH. +.sp + ^]_ This command (control close bracket) +is normally used to return to +an instruction sequence that was was patched with ^\. It +has the same effect as :PAT %PATR except that if given +an argument it first stores it and then patches +after it and it also redefines the symbol PATCH +instead of %PATR to point +just after the patch it stores. + +.ds +.page +.sect +VIII. Configuration Control +.sect + + The configuration of the simulated PDP-11 is controlled +by the $A and $D commands which attach and detach devices. +These commands may be preceded by an optional numeric argument and +are followed by a device name. If no device name is given, +either command will type a list of legal device names. For +some devices, an optional file name can follow the device name. +The exact effect and conventions in attaching and detaching all +devices are listed in the Appendix except for the CORE "device", +which is explained below. + Simulated PDP-11 core is allocated in units of 1024. words. +Giving a numeric argument to an attach or detach command on the CORE +device will attach or detach that number of 1024. word units. The +maximum that may be attached is 28. units. After any attach or +detach command on the core device the total amount of core then +attached is printed out. + As it is sometimes convenient to have a way of +setting the amount of core to a particular value regardless of +the current amount attached, there also exists the exp:CORE +command. It tries to set the number +of attached blocks of core to the value of the expression exp. It +then prints the amount of core attached, as it does if given no argument. + +.page +.sect +IX. Debugging Aids +.sect + + The two basic bebugging features are the breakpoint feature, described +immediately below, and the trap message feature described further below, this +section. They have been designed to allow the user to enter command level +at a point in the simulated program likely to be that at which it is going +astray. + The breakpoint feature is implemented by associating a seven bit +qunatity with each simulated PDP-11 word. Any reference to memory +by a simulated program or direct to memory input-output device can activate +a breakpoint if the appropriate bits are on in the quantity associated with +the word it is referencing. These bits are as follows: +.ss + 1 Breaks on processor instruction fetches. + 2 Breaks on processor write references. + 4 Breaks on processor read references except instruction fetches. + 10 Upon breaking, if this bit is set, continue simulation, else +enter command level. + 20 Breaks on direct to memory device write. + 40 Breaks on direct to memory device read. + 100 Breaks on processor instruction fetch, always enters command +level, and clears itself. +.sp +.ds + When a break occurs, a message is typed showing various +information normally including the instruction which "caused" the break. +In the case of instruction fetch breakpoints that enter command level, +this is the instruction fetch of which caused the break. +Autoflush breakpoints, indicated by the +100 bit, always enter command mode and delete themselves. Otherwise, +if the 10 bit is off command level is entered. + The break +message will also contain the code R, W, or I as the break was caused by +a read, write, or instruction fetch. RW will appear if the referencing +instruction was performing a read-pause-write cycle. For direct to memory +references, the codes NGDIS RW for the display, +DSK R and DSK W for the disk, and DM R, DM RW, and DM W for the teletype +multiplexer will appear. + The commands to insert and remove breakpoints are $B, +$F, $R, $W, and $U. +These commands can take two expressions as arguments, one just before and one +just after the "$". If no first argument is given, the command will affect +all locations where breakpoints can be set. If a single word value first +argument is given, the command will affect only the location with that address. +If a multi-word value first argument is given, the locations from the first +sub-value through the second sub-value will be affected. + With no second argument, just after the "$", $B will put in +a break of type 7 (print message and enter command level on any +processor reference) +while $U will remove a breakpoint by making it type 0 (never break). +$F, $R, and $W insert breakpoints of type 1, 4, and 2 +repsectively to trap just instruction fetches, just other reads, or just +write references. +This is, in fact, the only difference between these commands as, with +a second argument, all use the bottom seven bits of the second argument as +the break type to set. + The trap message feature allows the +user to be notified and, if he desires, +to enter command level on any PDP-11 trap or transfer of control. There is an +array with an entry for each even word address from 0 thru 374. These are the +type of locations used for "trap vectors" in the PDP-11. Each entry +in this array contains one of the following trap action codes: +.ss + 0 Do nothing (continue simulation). + 1 Set %JPC from %OPC and continue. + 2 Print message and continue. + 3 Print message and enter command level. +.sp +.ds + The $T command is used for setting these codes. It can be +given the location it is desired to +influence traps through as a first argument (just before the "$"). +If this argument is omitted, traps through all +locations will be affected. A second argument (just after the "$") may be +supplied which is the trap action code to be set. If this argument +is omitted, 0 is assumed. + Since the PDP-11 does not trap through location 0, +this slot in the trap action array +is free and is used to allow any of the above trap actions on all +transfer of control instructions. The +inital trap vector state is 0$1T. + +.page +.sect +X. Miscellaneous +.sect + + A. Symbols + At any particular time, there is symbol table in +the simulator used by the command level DDT [Ref 4]. It +contains op-codes, special symbols, and user defined symbols. +The user defined symbols are usually initialized +by a load command and are saved by some dump +commands [Sec VI]. The following commands are +useful in manipulating user symbols: +.ss + :LSYMS Lists all user symbols and some special +symbols with their values. +.sp + :FLSYMS Flushes all user symbols. +.sp + exp>sym Defines sym with value exp (should +be a one word quantity). + >SYM Defines sym with value %Q. + exp>sym^K_ Defines sym with the value exp +but does not allow it to be used in symbolic +typeout (half-kills the symbol). +.sp + ^K_sym Complements half killed status of sym. +.sp + :LOOKUP Should be followed by a symbol. +Valrets a string to HACTRN [Ref 5] +which causes it to type out the symbol table entry for the symbol. +.sp +.ds + B. Time + A cumulative simulated run time is kept by the +simulator. Simulated run time does not pass in +command level. +.ss + :TIME Prints cumulative simulated run time. This +is also printed by the :BUSS command [Sec VII]. +.sp + :ZTIME Zeros the cumulative simulated run time. This +is also done by $I [Sec VII] and $L [Sec VI]. +.sp +.ds + C. Other +.ss + ;ALTSEM This command switches the effect of +; and $ in indicating types of commands. It prints out NORMAL +or SWITCHED as the state is the same or different from that +indicated in this manaul. +.sp + :DEBUG This command complements a switch and +prints out ON or OFF depending on the switch's new +state. This switch is initially off. When on it enables the +print out of the simulation program's program counter at +certain critical points. +.sp + :LCOMS This command lists all ":" commands [Sec XI]. +.sp + :WALLP This command has the effect of ^B_ but takes an +optional file specification which controls +future output to the "line printer". This file is +also used by future ^B_'s. ^E_ terminates "console" output +started by a :WALLP. +.sp + :XFILE This command takes a file specification +like that used for dump and load commands [Sec VI]. +It treats the file as text commands to be +executed by the simulator command level. Characters +in the file are echoed on the users terminal as they are read. +^B_, ^E_, ^V_, and ^W_ are effective [Sec III] from the file +as well as from the terminal. Any errors cause input to be taken +from the termianl again (this includes ^G_ typed on the terminal). +$G, $N, and $P termiate usage of the command file. +.ds + +.page +.sect +XI. Index to Commands +.sect + +.ss + ^B Section III. + ^E Section III. + ^G Section III. + ^I(tab) Section V. + ^J(line-feed) Section V. + ^K Section X. + ^L Clear screen. + ^M(carriage-return) Terminates file specifications and some commands +Section VI, Section V. + ^N Same as $N, Section VII. + ^P Same as $P, Section VII. + ^Q Section III. + ^V Section III. + ^W Section III. + ^Z Reference 3. + ^\(control backslash) Section VII. + ^](control close bracket) Section VII. + $(alt-mode) Starts a class of commands indicated by the +following character. +See commands in this list ASCII ordered by character. + ! Section IV. + ;!, ;;!, ;;;! Section V. + " Section IV. + ;", ;;", ;;;" Section V. + # Section IV. + % Section IV. + & Section IV. + ' Section IV. + ;', ;;', ;;;' Section V. + * Section IV. + + Section IV. + - Section IV. + / Section V. + : Starts a class of commands indicated by the +following symbol. See +commands in this list ASCII ordered by symbol. + ; Starts a class of commands indicated by the next following +non-semicolon character. See commands in this list ASCII ordered by character. + < Section IV. + = Section V. + > Section IV, Section X. + $A Section VIII. + :ALTSEM Section X. + ;B, ;;B, ;;;B Section V. + $B Section IX. + :BUSS Section VII. + :CDMP Section VI. + :CORE Section VIII. + ;D, ;;D, ;;;D Section V. + $D Section VIII. + :DEBUG Section X. + :DMP Section VI. + :DMPCOR Section VI. + :DMPDF Section VI. + :DMPSYM Section VI. + :DMPTPV Section VI. + $F Section IX. + :FLSYMS Section X. + $G Section VII. + ;I, ;;I, ;;;I Section V. + $L Section VI. + :LOAD Section VI. + :LODCOR Section VI. + :LODPTR Section VI. + :LOOKUP Section X. + :LSYMS Section X. + ;N, ;;N, ;;;N Section V. + $N Section VII. + :ODMP Section VI. + $P Section VII. + :PAT Section VII. + $R Section IX. + ;R, ;;R, ;;;R Section V. + :REGS Section V. + ;S, ;;S, ;;;S Section V. + :S%CSX Section VII. + $T Section IX. + :TIME Section X. + $U Section IX. + $W Section IX. + :WALLP Section X. + $X Section VII. + :XFILE Section X. + $Y Section VI. + :ZERDF Section VI. + :ZTIME Section X. + [(open bracket) Section V. + \(back slash) Section IV. + ](close bracket) Section V. + ^(up arrow) Section V. + _ Section V. + +.ds +.page +.sect +References +.sect + +.sp + 1. 1969 "pdp-11 handbook" Digital Equipment Corp. [DEC-112X 01269 AJO F 11 50] +.ss +.sp +.ds + 2. 1971 "PDP-11/45 Handbook" Digital Equipment Corp. [Preliminary Edition] +.ss +.sp +.ds + 3. 1968 "PDP-10 System Reference Manual" Digital Equipment Corp. [DEC-HGAA-D] +.ss +.sp +.ds + 4. 1969 "ITS 1.5 Reference Manual" Donald E. Eastlake et al. [AI Memo 161A] +.ss +.sp +.ds + 5. 1970 "DDT Reference Manual" Eric Osman [AI Memo 147A] + +.he 11SIM Reference Manual -- Appendix Page +.page +.sect +Appendix of Device Registers + This appendix lists all device registers (pseudo-memory locations +with magic properties) simulated by 11SIM. They appear in order of +increasing address and are grouped by "device". + Each lettered section represents a device whose symbolic name +or names, if +any, appear in all capital letters after the section letter. Such +names are the legal device names to use with the $A attach and $D detach +commands [Sec VIII]. After the section heading line, a +list of interrupt vectors and priorities, if any, for that device appear. +Then there is an explanation of the details of the device's simulation, +attachment, and detachment. In all cases except the Knight display, +it is assumed that the user is familiar with the device's +normal operation from manufacturer literature. For the Knight +display (section A) a fuller explanation is given. + Finally, each section has a list of register locations +and bits in each register. Just after the register's +octal address and just after each subfield or bit will appear one of the +following codes: +.ss + RO R_ead O_nly. This register or field is unaffected by writting +into it. The data in it can only be read. +.sp + R/W R_ead W_rite. These bits can be read or written by the +user's program. +.sp + WO W_rite O_nly. This register or field is always read as +zero but has some effect on being written into. +.sp + NS N_ot S_imulated. These bits are not simulated. For a register, +this means that the location will be non-existant. For a bit or field, +the bits are always read as zero and writting them has no effect. +.sp +.ds + The symbolic name of each register appears in all capital letters +after the above code after the octal address of the register. This +name, with a % prefixed, is a defined symbol in 11SIM's DDT whose +value is the address of the register. A general description of the +register is given after its symbolc name and a descrition of each +used bit or field in the register is given below the main register line. +All bit numbers are decimal and the notation n:m means bits n through m +inclusive of bits n and m. + Unless otherwise stated, all the register locations associated with +a device will be non-existant when the device is not attached and attaching +a device already attached is identical to detaching it and then +attaching it. + The simulation routines for these devices were written by the +author of this memo except for the ET device which was implemented +by Richard M. Stallman. + +.page +.ss +.sect + A. NGDIS, The Knight Display + 270=interrupt vector 5=priority + The Knight display controller allows up to eight consoles to be attached +to a PDP-11. In the simulator, this device is not initially attached. +When attached, it uses the DEC 340 display to simulate three +consoles (number 0, 1, and 2) in three quadrants of its screen. +The fourth, lower right hand quandrant displays +simulator information including the output from a :REGS and +:BUSS command. Each word fetched for a particular display console as a display command +is decoded as follows: + bit___ 15__ 14__ + 0 0 No-op, rest ignored. + 0 1 Increment command. 13:11=direction. 10:8=count. 7:0=bits. + 1 0 Pushj. 13:0=destination word address. + bit___ 13__ 12__ 11__ + 1 1 0 0 0 10=reset X. 9=reset Y. 8=stop. 7=pop. 6=popj. + 1 1 0 0 1 10=intensify. 9:0=delta Y. + 1 1 0 1 0 10=intensify. 9:0=delta X. + 1 1 0 1 1 10=intensify. 9:0=delta X and Y. + 1 1 1 - - No-op, rest ignored. + The reset X and reset Y functions set the appropriate +coordinate registers to +zero. The point (0,0) is at the center of the screen and the upper +right quadrant is +X, +Y. Each coordinate +register is eight bits. + In increment mode, the count field (in which zero implies +eight) is the number of bits starting from bit 7 down that +are used as follows: + dir bit X Y dir bit X Y + 0 0 0 +1 4 0 0 -1 + 0 1 +1 +1 4 1 -1 -1 + 1 0 +1 0 5 0 -1 0 + 1 1 +1 +1 5 1 -1 -1 + 2 0 +1 0 6 0 -1 0 + 2 1 +1 -1 6 1 -1 +1 + 3 0 0 -1 7 0 0 +1 + 3 1 +1 -1 7 1 -1 +1 + The direction can be considered to be one of the eight +compass points clockwise numbered +with zero north. These points are then rotated clockwise 22 and a +half degrees. Then a zero bit means the nearest of N, E, S, or W +and a one bit means the nearest of NE, SE, SW, or NW. A point +is displayed at the end of each increment. + In the delta X and Y commands, bit 9 and 8 +have no effect currently but are reserved for future expansion of the coordinate +registers. Bits 7 through 0 are 2's complement added to the appropriate +coordinate register(s). A point is displayed at the +new coordinates if the intensify bit is on. + The lower 14. bits of a pushj type display command +are shifted left one to give the (unrelocated) byte address that is transfered +to. A simple transfer is accomplished by pushjing to a pop command. The +stack pointer (unrelocated) used by the display processor for each console +is found in location 16. plus twice the console number. +.sp + 164040 R/W NGCSR, Control and status register + 0:7 R/W Run bits for each console (0 for console 0). Setting bit starts +console and sets console PC (unrelocated) to the console number times +two as a byte address. Clearing bit aborts output on console. Bit +cleared by controller when console hits a stop command. + 8 R/W Interrupt enable. Allows interrupt on run bit going +to zero for any console. + 9:11 RO Number of last console to get a non-existant memory +error. + 12 R/W NXM interrupt enable. If set, bit 15 +on will interrupt and suspend all displaying even though some +of bits 0:7 remain on. + 13:14 R/W Relocation extension bits. See NGREL. + 15 R/W Non-existant memory error. Can be +set for checking purposes. +.sp + 164042 R/W NGREL, Relocation pointer. + 1:15 R/W Relocation for display addresses, extended +by NGCSR bits 13:14. All memory locations fetched from +or stored into by the Knight display have their +address relocated by the addition of the relocation pointer. + +.page +.sect + B. PK, The KW11-P Programmable Clock + 104=interrupt vector 6=priority + This device is not initially attached. It does not +take any file name after it in an attach command but a +non-zero prefix numeric argument will be taken as the "line +frequency" for rate 2 operation. This is initially 60. The +cumulative simulated time is used to drive the PK device +so its actions correspond to simulated real time. +.sp + 172540 R/W PKCSR, Control and Status Register + 0 R/W Run, allows clock to run, cleared by underflow in Mode 0. + 1:2 R/W Rate select as follows: + 1_ 2_ rate + 0 0 100,000 Hz + 0 1 10,000 Hz + 1 0 Line frequency. + 1 1 External. + 3 R/W Mode, if zero underflow stops clock by clearing bit 0, +if one clock continues counting after underflow. + 4 R/W When zero, clock counts down, if one, clock counts up. + 5 R/W Setting this bit causes clock to count by one. + 6 R/W Interrupt enable, allows bit 7 to interrupt. + 7 R/W Turned on by underflow. + 15 RO Turned on by underflow with bit 7 set, cleared by clearing +bit 7. +.sp + 172542 WO PKCSB, Counter Set Buffer + 0:15 WO Sets counter, cleared by underflow in mode 0, used to +restore counter on underflow in mode 1. +.sp + 172544 RO PKC, Counter + 0:15 RO Current state of counter. + +.page +.sect + C. DC, DCR, DCT, Asyncronous Line Interface + 304=interrupt vector 5=priority (receive) + 310=interrupt vector 5=priority (transmit) + This device is not initally attached. It may be +given a file specification argument when attahced. Using +the DC device attaches the same file for both receive and +transmit. The DCR and DCT devices allow file specifications +for just receive or transmit. All registers exist if either +DCR or DCT is attached. + If a teletype is attached for input, characters will be available +as 11SIM gets teletype interrupts. Characters will not be lost +due to not reading them fast enough. Non-teletype input and any output +is allowed every ten simulated microseconds. Characters output +when ready is not on will be lost. + The DC device uses dynamically allocated input-output +channels as discused under the DM device below. +.sp + 174000 R/W RCSR, Receiver Status Register + 0 NS Data terminal ready. + 1 R/W Break. In simulator, sends a zero character when set. + 2 RO Carrier detect. In simulator indicates DCR attached. + 3:4 R/W Receiver speed. No effect in simulator. + 5 RO Parity. In simulator always zero indicating even parity. + 6 R/W Interrupt enable, allows interrupt on bit 7. + 7 RO Done, indicates character available in RBUF. + 8 NS Supervisory transmit data. + 9:10 R/W Character length. No effect in simulator. + 9_ 1_0_ bits____ + 0 0 8 + 0 1 7 + 1 0 6 + 1 1 5 + 12 NS Receiver overrun. + 13 NS Ring indicator. + 14 RO Carrier transition. Cleared by reading RCSR. In +simulator set when DCR attached or detached. + 15 RO Error. OR of bits 12:14. +.sp + 174002 RO RBUF, Receiver Buffer + 0:7 RO Input character. Reading clears RCSR bit 7. +.sp + 174004 R/W TSCR, Transmitter Status Register + 0 R/W Request to send. No effect in simulator. + 1 RO Clear to send. In simulator indicates that DCT attached. + 2 NS Maintenance. + 3:4 R/W Transmitter speed select. In simulator no efffect. + 6 R/W Transmitter interrupt enable. + 7 RO Ready. Indicates ready to accept character in TBUF. + 8 R/W Stop code. 0=2 bits. 1=1 bit. No effect in simulator. + 15 NS Supervisory receive data. +.sp + 174006 WO TBUF, Transmitter Buffer + 0:7 WO Transmitted character. Loading clears TSCR bit 7. + +.page +.sect + D. DM, DMR, DMT, Asyncronous 16-line Single Speed Multiplexer + 314=interrupt vector 5=priority (receive) + 320=interrupt vector 5=priority (transmit) + This device is not initially attached. A line number +from zero to fifteen should be supplied as a prefix argument +to any attach command and a file specification +may be supplied after each attach +command. An attach on the DM device tries to attach the same +file for both receive and transmit on the specified line. +The DMR and DMT devices may be used to attach receive and transmit +sperarately. A line number from zero to fifteen is also +usually given with a detach command. DMR and DMT may be used to +detach just receive or just transmit. If no line number is supplied +on an attach or detach, nothing is attached ordetached. +Instead, a print out +of the status of the DM lines is made. + If a teletype is attached for input, characters will be +stored into memory as 11SIM gets teletype interrupts. Characters +may be lost due to tumble table wrap around. Non-teletype input and +any output is activated every three simulated milliseconds. + The DC and DM devices use dynamically allocated input-output +channels. Each receive or transmit attachment on each line uses up +one channel unless the device attached is TTY or LPT [Ref 4]. +Currently there are a total of six channels available. +.sp + 175000 R/W CSR, Control and Status Register + 0 R/W Receiver enable. When clear disables all 16 receivers. + 1 R/W Full-half duplex select. Ignored in simulator. + 2 NS Maintenance. + 4:5 R/W TBR extension bits. These bits also extend all other +address produced by the DM. If on in the simulator they +cause a timeout error. + 6 R/W Receiver interrupt enable. Allows bit 7 to interrupt. + 7 R/W Done. Set as each character is received. + 12 R/W Transmit interrupt enable. Allows bits 13:15 to interrupt. + 13 R/W System overrun. DM unable to get unibus in time. May +be set for checking purposes. + 14 R/W Timeout. DM non-existant memory. May be set for +checking purposes. + 15 R/W Transmit done. Set as any bit of BAR goes to zero. +.sp + 175002 R/W BAR, Buffer Active Register + 0:15 R/W One bit per line. Setting starts transmission. Clearing +aborts transmission. Bit set to zero when character count decremented to zero +(see TBR). +.sp + 175004 R/W BCR, Break Control Register + 0:15 R/W One bit per line. Setting causes continuous break +tranmission on line until bit cleared by program or reset. +.sp + 175006 R/W TBR, Table Base Register + 8:15 R/W This is the relocation pointer for the tables in +memory used by the DM device. It is extended by CSR bits 4:5. +Since the bottom eight bits are always zero, the TBR is a multiple +of 400. The first sixteen locations it points to are the current +byte address of characters being transmitted to each line. The +next sixteen locations are the tranmission byte counts. The third set +of sixteen are not used in the simulator but are normally the bit +assembly words. The fourth set of sixteen words is never used but the following +sixty four are the receiver tumble table. A internal pointer in the DM +circles through these words and is incremented once as each +character received is stored into a word. The word will have +bit 15 on and will have the line number in bits 9:12. In the +simulator, bit 13 will always be on and bit 14 always off. On a +real DM these bits indicate parity and break respectively. + +.page +.sect + E. EAE, Extended Arithmetic Unit KE11-A + This device is initially attached. Delays caused by EAE operations +are not simulated. Byte mode references can write in the simulated +status register. +.sp + 177300 WO DIV, Divide + 0:15 WO When the divisor is moved to this address, the 32. bit +dividend in the AC & MQ is divided by this number. +.sp + 177302 R/W AC, Accumulator + 0:15 R/W High order word of arithmetic unit. Contains +low order product on multiply, remainder or high order dividend on divide. +.sp + 177304 R/W MQ, Multiplier Quotient + 0:15 R/W Low order word of arithmetic unit. Contains +low order product or quotient on divide. When written into, its +sign is extended into the AC. +.sp + 177306 WO MUL, Multiply + 0:15 WO When the multiplicand is loaded into this address, the EAE +multiplies this number by the number in the MQ. +.sp + 177310 R/W SCSR, Step Count and Status Register + 0:5 R/W The step count which contains the count for long shifts and the +step count following normalize. + 8 R/W On shifts, set to last bit shifted out of AC & MQ. + 9 RO Indicates that result is a single word in the MQ. (Or of bits +12 and 13, this word.) + 10 RO Indicates that result is zero. (And of bits 11 +and 12, this word.) + 11 RO MQ is zero. + 12 RO AC is zero. + 13 RO AC is all 1's. + 14 R/W Indicates result negative. + 15 R/W XOR of operation causing overflow and bit 14. +.sp + 177312 R/W NOR, Normalize + 0:15 R/W Writing into this address results in the 32. bit +number in the AC & MQ being normalized. This usually means shifting +left until the top two bits are different but certain special +numbers are checked for and handled differently. +Reading this address fetches the shift count. +.sp + 177314 WO LGS, Logical Shift + 0:5 WO Output to this address results in a logical shift of the AC & +MQ (filling with zeros) the specified number of bits. +.sp + 177316 WO ARS, Arithmetic Shift + 0:5 WO Output to this address causes an arithmetic shift of the +AC & MQ (sign extension) with the shift count being the value +moved to this address. + +.page +.sect + F. ET, DECtape + 214=interrupt vector 6=priority + The simuator command structure for attaching +this device is not yet settled. +.sp + 177340 RO TCST, Control and Status Register + 0:1 NS Extended Data. + 2:4 NS Data Tracks. + 5:6 NS Maintenance. + 7 RO Tape up to speed. Cleared when unit select or +reverse bit changed. + 8 RO Non-existant memory. Cleared in the same manner as +bit 15. + 9 NS Data missed. + 10 RO Block missed. + 11 RO Selection error. + 12 RO Illegal operation. + 13 NS Mark track error. + 14 NS Parity error. + 15 RO End zone. Cleared when a zero is loaded into +bit 15 or TCCM. +.sp + 177342 R/W TCCM, Command Register + 0 WO Starts action, clears ready. + 1:3 R/W Command as indicated below: + #_ F_u_n_c_t_i_o_n_ + 0 Stop all motion. + 1 Read block number. + 2 Read data. + 3 Read all. + 4 Stop motion in selected transport. + 5 Write timing and mark track. + 6 Write data. + 7 Write all. + 4:5 R/W Extend bits of buss address. + 6 R/W Interrupt enable. + 7 RO Ready. + 8:10 R/W Unit select. + 11 R/W Tape direction. + 12 R/W Delay inhibit. + 13 NS Maintenance. + 15 R/W Error. +.sp + 177344 R/W TCWC, Word Count + 0:15 R/W Two's complement word count. +.sp + 177346 R/W TCBA, Buss Address + 0:15 R/W Buss address for memory transfers. +.sp + 177350 NS -, Data Register + + +.page +.sect + G. DF, The RF11/RS11 Disk + 204=interrupt vector 5=priority + This device is not initally attached. It is the only device that may be +given a file argument on attaching but acts differently if not given +a file argument. All other devices that take file specifications +simply use some initial file as changed by previous type-in if no +file specification is supplied. This device is simulated by storing the disk +contents in the simulator's core image. Two PDP-11 words +are stored per PDP-10 word. + The DF device may be attached by a load command [Sec VI] which loads +disk contents information. A message is printed and the information is +loaded into the simulated disk. If an attach command on the DF device +is given a file argument, the disk is attached and disk information only +is loaded from the specified file into the simulated disk. An attach +command with no file specification attaches a zeroed disk. The +:ZERDF command is also available to zero the disk [Sec VI]. + Detaching the DF with a file name simulates a :DMPDF [Sec VI] +and then expunges the disk contents information in core. If no file is +specified and the user has not done a :DMPDF then the disk contents +is lost by detaching the DF device. + Although in the simulator a disk transfer happens instantaneously in terms +of cumulative simulated time, the ready flag will not normally come on (possibly +causing an interrupt) until the right amount of simulated time has past. The +user can activate another transfer by setting go even when ready is off. +.sp + 177460 R/W DCS, Disk Control and Status + 0 WO Setting causes the disk to execute the function selected +by bits 1:2, clears bits 8:13, and clears bit 15 unless bit 14 +is set. + 1:2 R/W Select one of three functions as shown in this table: + 2_ 1_ Function + 0 0 no operation + 0 1 write + 1 0 read + 1 1 write check + 3 NS Maintenance. + 4:5 R/W Extended memory bits. Cause disk non-existent +memory error unless both on when addressing an I-O register. + 6 R/W Interrupt enable. Allows bits 7 and 15 to interrupt. + 7 RO Ready. + 8 WO Setting causes "power clear" of disk. + 9 NS Missed transfer. + 10 NS Write lock out. + 11 RO Non-existent disk. On if DAE bits 2:4 are non-zero. + 12 NS Data parity error. + 13 RO Write check error. On if word read from memory and +word read from disk differ during a write check operation. + 14 RO Freeze. Or of DAE bits 10:15. + 15 RO Error. Or of DCS bits 9:14. +.sp + 177462 R/W CMA, Current Memory Address + 1:15 R/W Current memory address, initially loaded with +the starting address minus two, incremented after each word is transfered +unless DAE bit 8 is on. +.sp + 177464 R/W WC, Word Count + 0:15 R/W Word count, loaded with 2's complement +of block length and incremented by 1 before each transfer. Overflow +ends a function. Limits block size to 65,536 words. +.sp + 177466 R/W DAR, Disk Address Register + 0:10 R/W Selects word of disk track for next transfer. Incremented +after each transfer. Overflow carries into track address. + 11:15 R/W Selects track for next word to be transfered. Carries into +and is extended by DAE bits 0:1. +.sp + 177470 R/W DAE, Disk Address Extension and Error + 0:1 R/W Track address extension, carries into bit 2. + 2:4 R/W Disk address, in the simulator +causes non-existant disk error if non-zero, +carries into bit 5. + 5 RO Disk address overflow, causes non-existant disk error. + 7 NS Data request late. + 8 R/W CMA increment inhibit. + 10 RO Non-existant memory on disk reference. + 12 NS C timing track error. + 13 NS B timing track error. + 14 NS A timing track error. + 15 NS Address parity error. +.sp + 177472 NS -, Data Buffer Register +.sp + 177474 NS -, Maintenance Register +.sp + 177476 RO ADS, Address of Disk-Segment + 0:10 RO Real time disk position. + +.page +.sect + H. LP, Line Printer + 200=interrupt vector 4=priority + The device is not initially attached. It allows +output to the "line printer" through the same path +as that enabled by ^B_ [Sec III]. It may be given a file +specification to output to which will effect future ^B_ or :WALLP +output [Sec X]. Detaching the LP does not terminated +^B_ or :WALLP output. Characters may be output every 6 simulated +microseconds. Characters output when done is not on will be lost. +.sp + 177524 R/W LPS, Line Printer Status + 6 R/W Interrupt enable, allows bit 7 or 15 to interrupt. + 7 R/W Done. Indicates ready to accept character in LPB. + 15 RO Error on output. +.sp + 177526 WO LPB, Line Printer Buffer + 0:6 WO Character to be printed. Loading clears +LPS bit 7. +.sp 3 +.sect + I. LK, The KW11-L Line-Frequency Clock + 100=interrupt vector 6=priority + This device is initially attached. It takes no +file name after an attach command on it but a non-zero prefix +numeric argument will set the "line frequency" used it its +operation. This is initally 60. The cumulative simulated time is used +to drive the LK so its actions correspond to simulate real time. + +.sp + 177546 RO LKS, Line Clock Status + 6 R/W Interrupt enable, aloows bit 7 to request interupt. + 7 RO Set to one every cycle of line current, cleared by reading. + +.page +.sect + J. PR, High Speed Paper Tape Reader + 70=interrupt vector 4=priority + This device is not initially attached. It takes a file +specification to read from. A nonzero numeric argument +will set the PR to rad in image or ASCII mode as the +argument is one or greater than one. Image mode is the +initial setting and must be used to read properly from the PTR +[Ref 4] which is the initial file specification. A character +may be read from the PR device every 6 simulated microseconds but no data is +lost if characters are not read fast enough. +.sp + 177550 R/W PRS, Paper Tape Reader Status + 0 WO Reader enable, requests read of next character, can be +set only if bit 15 clear, setting clears PRB and sets bit 11. + 6 R/W Interrupt enable, allows bits 7 and 15 to interrupt. + 7 RO Done, set by character available, cleared by reading PRB. + 11 RO Busy, set by setting bit 0, cleared by bit 7 coming on. + 15 RO Error, set by end of input. +.sp + 177552 RO PRB, Paper Tape Reader Buffer + 0:7 RO Reader character buffer. +.sp 3 +.sect + K. PP, High Speed Paper Tape Punch + 74=interrupt vector 4=priority + This device is not initially attached. It takes +a file specifcation to write on. A non-zero prefix numeric +argument will set the PP to read in image or ASCII mode as the +argument is one or greater than one. Image mode is the initial +setting and must be used to write properly +on the PTP device [Ref 4] which is the initial file specification. +Characters may be output to the PP device every 30. simulated +microseconds. Data output when ready is not on is lost. +.sp + 177554 R/W PPS, Paper Tape Punch Status + 6 R/W Interrupt enable, allows bits 7 and 15 to interupt. + 7 RO Ready, cleared by loading PPB, set when ready for more data. + 15 RO Error on output. +.sp + 177556 WO PPB, Paper Tape Punch Buffer + 0:7 WO Punch character buffer. + +.page +.sect + L. TK, Teletype Keyboard + 60=interrupt vector 4=priority + This device is initially attached and allows input from +the user's teletype to the simulated PDP-11 program. No +file specification is taken by this device but a non-zero prefix +numeric argument will set the ratio between simulated real teletype speed +and real teletype speed. (This is initially set to 1000.) +Thus an argument of one would alllow one input +character per one tenth second of simulated +time or 4 seconds of real time. In the simulator, as opposed +to the real PDP-11, data is not lost due to not reading it in +time. However, characters buffered by the time-sharing system will be +lost on transition to command level. +.sp + 177560 R/W TKS, Teletype Keyboad Status + 0 NS Reader enable. + 6 R/W Interrupt enable. + 7 RO Done, character available. Clears bit 11 when set. + 11 RO Busy, character being read. +.sp + 177562 RO TKB, Teletype Keyboard Buffer + 0:7 RO Character buffer, reading clears bit 7 in TKS. +.sp 3 +.sect + M. TP, Teletype Printer + 64=interrupt vector 4=priority + This device is initially attached and allows output to the "console" +through the same path as command level type out [Sec III]. No +file specification is taken by this device but a non-zero prefix numeric +argument will set the ratio between simulated real +teletype speed and real teletype speed. This is initially +500. (See description of TK device.) Writting in TPB when +ready is off will casuse output to be lost. +.sp + 177564 R/W TPS, Teletype Printer Status + 2 NS Maintenance control. + 6 R/W Interrupt enable. + 7 RO Ready. +.sp + 177566 WO TPB, Teletype Printer Buffer + 0:7 WO Character buffer, clears bit 7 in TPS when loaded. + +.page +.sect + N. Console Data Switches Register + See references 1 and 2. +.sp + 177570 RO SWR, Switch Register + 0:15 RO This location represents the console data switches. +Although read-only for a simulated program, it can be deposited into +by command level. +.sp 3 +.sect + O. Processor General Registers + 4=interrupt vector + 10=interrupt vector + 20=interrupt vector + 30=interrupt vector + 34=interrupt vector + See references 1 and 2. The processor registers are printed by :REGS. +.sp + 177700 R/W through 177716, %0 through %7 + 0:15 R/W %0 through %5 are the PDP-11's general purpose +registers. %6 is used as the stack pointer for interrupts. %7 is the +program counter. + +.page +.sect + P. I45, PDP-11/45 Features + 240=interrupt vector priority variable + With this device attached, as it is initially, the following +PDP-11/45 op-codes become available: XOR, MUL, DIV, ASH, +ASHC, SXT, SPL, RTT, SOB, and MARK. (Estimated times +are used for these operations in advancing the cumulative +simulated time.) The PDP-11/45 segmentation option and floating point +processor option and their associated instructions +are not simulated. See reference 2. +.sp + 177772 R/W PIR, Programmed Interrupt Request + 1:3 RO Priority level of highest request (bits 9:15). + 5:7 RO Same as 1:3. + 9:15 R/W Program set requests for interrupts. Bit n +is priority n minus 8. +.sp + 177774 NS -, 11/45 Stack Limit +.sp 3 +.sect + Q. Processor Status Register + 14=interrupt vector + The trace trap enable bit causes a trap through 14 +at the end of most instructions. See references 1 and 2. +.sp + 177776 R/W PS, Processor Status + 0 R/W Carry flag (C). + 1 R/W Overflow flag (V). + 2 R/W Zero flag (Z). + 3 R/W Negative flag (N). + 4 R/W Trace trap enable (T). + 5:7 R/W Processor priority. Interrupts of equal or lower +priority are inhibited. +.ds + .pgn +.page +.ce +Info for title page +.sp +Title: 11SIM Reference Manual +.sp +Author: Donald E. Eastlake +.sp +Artificial Intelligence Memo Num. 240A + (revised 240, December 1971) +.sp +Date: January 1972 +.sp +Abstract: A program that simulates a Digital Equipment +Corporation PDP-11 computer and many of it peripherals on the A. +I. Laboratory Time Sharing System (ITS) is described from a user's +reference point of view. This simulator has a built in DDT-like +command level which provides the user with the normal range of DDT +facilities but also with several special debugging features built +into the simulator. The DDT command language was implemented by +Richard M. Stallman while the simulator was +written by the author of this memo. +  \ No newline at end of file