Digital PDFs
Documents
Guest
Register
Log In
DIGITAL-8-12-S
December 1966
8 pages
Original
0.3MB
view
download
Document:
digital-8-12-s-d
Order Number:
DIGITAL-8-12-S
Revision:
Pages:
8
Original Filename:
https://svn.so-much-stuff.com/svn/trunk/pdp8/src/dec/digital-8-12-s/digital-8-12-s-d.pdf
OCR Text
IDENTIFICATION Product Code: Digital 8-12-S Product Name: ODT - II Revised Date Created: December 7 , Maintainer: Software Service Group 1 966 PDP-B LIBRARY Digital-8-1 2-S Page 2 2 ABSTRACT . ODT-I (octal debugging tape) is an aid used in debugging a PDP-8 program by faci litating communication with the program being run The communication between operator and program is via the I . ASR-33 Teletypewriter ODT-I features include register examination and modification, binary punchouts, control word search ing, octal dumping and instruction trapouts to ODT-I contro break-traps) ODT-I makes no use of the program interrupt facility and is restricted to one memory module. I transfer, ( I I 3. REQUIREMENTS 3.1 Storage . I ODT-li requires 600 (octal) registers and resides in memory between 7000 and 7577 (or 1000 577) 1 . in 3.3 ODT-1 addition, 1 uses register 0005 Equipment Standard PDP-8 4. USAGE 4.1 Loading ODT-ll is loaded by means of the Binary Loader (see Digital-8-2-U) 4.1.1 Place proper ODT-ll tape in reader (either high or low version). 4.1.2 Set the 4.1 .3 if SWITCH REGISTER to 7777 and press LOAD ADDRESS. using the 750 Reader, put switch 0 down and press START. If using put switch 0 up and press START. the 33-ASR Reader,' 4.1.4 Read the binary tape of the program to be debugged into core as above. program to be debugged does not overlap ODT-I and vice versa) (Make sure that the I 4.4 Start-Up The starting address of ODT-ll 4-4. Set 1 4.4,2 is 7000 (1000 is low version). ODT-ll starting address in the SWITCH REGISTER (1000 or 7000) Press LOAD ADDRESS, and press START . ODT-ll is now running and is awaiting commands from the 33-ASR Keyboard 5. RESTRICTIONS 5.1 Status Active Registers Register 0005 (page 0) is used by ODT-I when executing a break -trap This register is fi led with an address within ODT-I When the operator requests a break-trap, ODT-ll saves the instruction at the location of the trap and replaces it with the instruction, JMP 5, thus returning control I . by ODT-I I I I I Digital-8-1 2-S Page 3 ODT-II to version). ODT-II also uses 600 (octal) locations from 1000 - 1577 (low version) or 7000 7577 (high The programmer must be certain that his program to be debugged does not overlap ODT-II . . 5.2 Status Core ODT-II will not operate outside of the core memory modu le in which it resides DESCRIPTION 6. octal debugging program for the PDP-8 A number is a string of digits taken as octal Teletype (33-ASR). I characters or are i I . . Operator communication occurs on the Other characters are either control legal ODT-II 's most useful features is the "break-trap". When debugging a program, it is o ten desirable to allow control to flow up to a certain point, at which time the programmer would like to examine the contents of the accumulator, the link, and various other registers of his program To facilitate this ODT-II will insert in the user's program a jump instruction into ODT-II, which will cause the C(AC) and C(L) to be preserved. ODT-II will then print out the break location and the contents of the possible to move the break-trap and continue the program, restoring the C(AC), C(L), and the trapped instruction. The trapped instruction is executed and control is returned to the user s program. • I . 6.1 Discussion 6.1 .1 Commands 6.1 .1 .1 Slash (/) The register examination character / causes the contents of the register addressed by the preceding expression to be typed out in octal. The register is then opened for modification and the location sequence reset to the address. Example: 1/ 0027 (In all examples, everything underlined is typed by ODT-II; everything typed by the user.) 6.1 .1 .2 return w, closed. Carriage Return not underlined is (^ ) The value of any expression that has been typed by the user immediately preceding the carriage ' rep oce the contents of the open register, if any register was open, and registef wiU be If nothing has been typed by the user, the contents will not be changed. L Example: 1/ Q027 1/ 0027 14 Register 0001 p ^ is unchanged Register 0001 will contain 001 4 DigIfal-8-1 2-S Page 4 6. . 1 . 3 Line-Feed ) ( | The line-feed has the same effect as the carriage-return, but, register is opened and its contents typed in addition, the next sequential Example: 0027 i 1/ 6.1 0002/ 0077 Register 0002 is opened; C(OOOl) 0002/ 0077 .4 unchanged. is 0014. 0027 14| 1/ .1 is Any I i Register 0002 is opened; C(OOOl) legal Character Any character that is neither an octal digit nor a valid control character line to be ignored causes the current Example: 19 6. 1 . 1 .5 ? Single Quote (') location specified before the ('). the break-trap, 6. 1 . 1 .6 if any, will be inserted. All indicators and registers will be restored and Typing (') alone is an error. Double Quote (") Conditions ODT-II to insert a break-trap at the location specified before the ("). If no such ocation was specified, ODT-II removes the previous breakpoint. A breakpoint is actually inserted only when a goto ( ) or proceed ('.) is executed. ODT-II will remove the instruction at the break location and will save It for future restoration. The instruction at the break location is only executed after the " proceed s n vpn I I 6. . 1 .7 Exclamation ( I) Proceed from a break-trap. The C(AC) and C(L) are restored, the trapped instruction is ex ecu ted , and control transfers to the user's program NOTE; If a trap set by ODT is not encountered by the ob|ect (user's) program the breakpoi nt nstruction will not be removed i 7000), however, will restore the original The breakpoint will be reinserted when goto (') or proceed (.') is executed. When a breaktrap IS encountered in the user's program, ODT-II will type out the location of the trap, a right parenthesis, and the contents of the accumulator. The accumulator and link are saved in registers 7350 and 351, respectively, (1350 and 1351 for low version). These registers may be examined (and modified) ^ m the normal manner by use of the slash (/) control character. • r rinstruction. ^ DigItal-8-12-S Page 5 6 1.1 .8 . 6.1 M Typing the letter opened for modification . M causes the contents of the mask register (see 6 Initial ly, this value is set to . 1 . 1 . 1 1 ) to be printed and 7777, 6.1 .1 .9 < (Left Angle Bracket) Typing this character causes the contents of the lower search limit register (see 6.1.1.11) to be printed and opened for examination, initially, this value is set to 0001 . .1 .10 > (Right Angle Bracket) Typing this character causes the contents of the upper search limit register (see 6 be printed and opened for examination. Initially, this value is set to 6777. 6.1 . 1 . 1 . 1 1 ) to NOTE: The registers named M, <, and > are within ODT-II and have addresses 7550, 7551, and 7552, respectively. .1 .11 Word Searches Word searching using ODT-II is similar to word searching using DDT (see Digital-8-4-S) The searching operations are used to determine If a given quantity is present In any of the registers of a particular section of memory. The search is Initiated by the command: . KW Where K is an octal expression. ODT-II will perform a word search and print the address and contents of every register in the desired section of memory whose contents, when masked by C(M) are equal to the value of the expression K. The search continues between the limits specified by C(<) and 6.1 Example: Search locations 2000 to 4000 for M 7777 < > 0001 6777 7000 2000 4000 2000 AlUZ, 1 Set the mask Set the lower limit Set the upper limit Initiate the search / AAr(j7 etc .1 .12 Punch Commands LU Q < Digifal-8-12-S Page 6 Where K is the Initial address (octal) and Is the final address (octal) of the register to be The computer will halt, al lowing the operator to turn the Teletype off ne and to punch leader 1 punched codes. . I i Putting the Teletype back on line and depressing CONTI NUE initiates the actual punching of the block The punching terminates without punching a checksum to a low subsequent blocks to be punched and an all inclusive checksum to be punched at the end This procedure is optional however, and the . I . , user may punch individual ly checksummed blocks See 6.1.1,13 for a descri ption of the checksum mand If subsequent blocks are desired, turn off the punch before typing the pertinent commands . com- . 6.1 .1 .13 (Checksum Command) * Typing an asterisk (which does not print) causes the program to punch out the accumu lated checksum The program wi then halt to al low the operator to turn the Teletype off ine, produce trailer code (200), and remove the tape The operator shou Id then turn the punch off, turn the Teletype on line and depress CONTI NUE to resume ODT-I operation . 1 1 1 , . I 6 1.2 . Command Summary Slash (/) Register examination Carriage Return Register Line-Feed Closes register and opens the next one 1 1 legal Character Is closed Current line is ignored . ODT-I types ? Goto Double Quote (") Exclamation (1) Set a break-trap. Proceed from trap. M Examine (and modify) mask Examine (and modify) lower search limit Examine (and modify) upper search limit Word search command Separate punch arguments Punch in binary Punch checksum < > W Semicolon (;) Alt Mode Asterisk (*) 6.2 Examples and/or Applications 6 2.1 Symbols for representing "invisible" Teletype actions: . 1 Single Quote (') (CR) (LF) (ALT) (*) (H) (C) (PON) (POF) (TON) (TOF) (LEAD) (TEXT) (CKSM) = = = = = = Carriage Return Line Feed Alt Mode Nonprinting Asterisk Halt Continue Punch On Punch Off = Teletype On = Teletype Off = Production of Leader = = = Punching of Text = Punching of Checksum Digital-8" 2-S 1 Page 7 6.2.2 Underlined functions and expressions are those produced by ODT-li. 6.2.3 Brackets enclose comments local to this description 6.2.4 Examples of Register Examination and Modification 100/ 1234 7777 (CR) 100/ 7777 (CR) (LF) {CFT 010i/T564 (m [Examine and modify.] Examine only Examine next Examine next. [ (LF) . (LF) (CR) [ 0102/ 4567 2222X? (CR) (LF) 102/ 45 67 22222? (CR)(LF) 102/ 4567 2222 (CR) (LF) 102/ 6.2.5 [ | ] ] i I legal character, ] 1 More than four integers typed 1 Correct modification 1 Success at last 2^ (CR) (LF) I . , ] ] ] Word Searching Example M 7777 (CR) (LF) [Examination of parameters.] < 0001 (CR) (iFy > 6777 (CR) (Uy 7200W (CR) (LTT [Search 0150/7200 (CR) (LF) 1216/7200 (CR) (LF) M 7777 600 (CR) (LF) [Set mask for indirect and page bits.] < 0001 200 (CR) (LF/ 400W (CR) (LF) [Search 1426/3403 (CR) (LF) other pages 1627’/5400 . references to page 0 from ] [ HLT looks like an indirect ref. to page 0. ] [Searching completed .] M 0600 7777 (CR) (LF) [ < [ [ for all Indirect (CR) (LF) itf) 6777 (CR) {Wy Octal CLA instructions .] for all [Set limits to exclude page 0.] 1705/7402 (CR) (LF) 6.2.6 . [ Reset mask] and lower limit. ] Dump Example V/e wish to dump core between 1000 - ’005] M 7777 0 (CR) (LF) [ 0001 1000 (ClT(LF) 6777 1005 (CR) (Ir Set I . ] imi ts to encompass dump area . ] 1001/0002 (CR) (LF) 1002/0003 (CR) (LF) 1003/0004 (CR) (LF) T004/0005 (CR) (LF) 1006/0006 (CR) (LF) M 0000 7777 (CR) (LF) (CR) (TFT (CR) (TfT W Since is typed alone, the word searched for Is 0 The result after masking each register with 0 is, of [ 100S70OT“ (CR) (LF) 1000 0001 1005 6777 Set mask to 0 j W (W(LF) < > [ course, 0 so all comparisons appear to the program equal and hence all unmasked contents are typed, constituting a dump [ Reset parameters. ] . ] Digital-8~12-5 Page 8 6.2.7 Example of Paper Tape Punchout (Binary Format-) [ [ The punchout of page 1 and the first 5 O 3 registers of page 3.] The TTY is assumed to be on line and the punch turned off. ] 200;377(ALT) {_H) (TOF) (PON) (LEAD) (TON) (C) (TEXT) (POF) (CR) (LF) 600;647(ALT) (_H) (PON) (C) (TEXT) (*) (CKSM) (H ) (TOF) (LEAD) (POTT(TON) (C) (CR) (LF) [ [ 6.2.8 ODT-1 now running in input mode waiting further commands Remove tape from punch 1 . . 1 ] Examples of Using Break-Trap Mode 241" (CR) (LF) [Set break to occur at user's loc. 241 .] 241/7200 (CR) (LF) [ 200' [Enter user's program at location 200.] (CR) (LF) 0241 )0324 (CR) (LF) 7351/0001 (CR) (LF) 241/7200 (CR) (_LFr [ [ Examination shows that trap inst . not yet inserted Break-trap occurs, and C(AC) typed.] Examination of state of link at break . . ] ] [Any amount of DDT functions may be indulged] [in at this point before continuing.] 253" ‘ (CR) (LF) (CR) (LF) 0253)0000 (CR) (jJF) " (CR) (LF) (CRj (LF) [Break-trap reset at loc. 253.] [User's program continued from point of last break (241 ). [Second break occurs.] [ Break-trap mode deactivated.] [User's program continued without any traps set.] [To reenter ODT-II, user would have to start at 7000. 7. METHODS (Not Applicable) 8 FORMAT (Not Applicable) . EXECUTION TIME (Not Applicable) 9. 10 . PROGRAM ] ]
Home
Privacy and Data
Site structure and layout ©2025 Majenko Technologies