You are on page 1of 37
IDENTIFICATION Prodvet Code: Product Name: Date Created: Maintainer: DEC-08-COcO-D opt-8 October, 10,1968, Software Service Group DEC~08-COCO-D 1 ABSTRACT ODT (Octal Debvaging Technique) is © debugging aid for the PDP-8, which facilitates ‘communication with, end alteration of, the program being run. Communication between operator and program occurs via the Teletype, using defined commands and octal numbers. This version of ODT hos been completely revised and replaces both versions of the former ODT-II program . 2 PRELIMINARY REQUIREMENTS 2a Equipment Standard PDP-8 or PDP-5 with basic 4k memory and Teletype . 2.2 Storage ODT requires £00 (octal) consecutive core locations end one location on poge O which will be used as an intercom register. It is page relocatable. 3 LOADING OR CALLING PROCEDURE NOTE: ODT cannot be celled as & subro 19. ODT is normally distributed in binary with the source available on request and is loaded with the Binery Loader. 1. Place the ODT tape in the reader. 2. Set 7777 in the SWITCH REGISTER and press LOAD ADDRESS. (If using the high-speed photoelectric reader, put switch 0 dovn). Press START. b, Load the binary tape of the program to be debugged in the some manner as ODT was loaded. Be sure that the two do not overlay 4 USING THE PROGRAM OR ROUTINE 4.1 Starting Procedure ‘The storting address of ODT is the address of the symbol START. For stondard library versions the high version sterts ot 7000 ond the tow at 1000. bb. Set the starting eddress in the SWITCH REGISTER. Press LOAD ADDRESS, and START on the console. ODT will ive o corriage retuen ond line feed to indicate that it is now cunning and awaiting commands from the keyboard. €. To restart ODT wihout clearing the checksum, set the address of START + 1 (vsvally. 7001 high version, or 1001 low version) into the SWITCH REGISTER and press LOAD ADDRESS ond START on the console. 42 DEC~08-COCO-D Control Choracters ‘a, Slosh (/) = Open register_preceding/ The register examination character / causes the register addressed by the octal number ‘preceding the slash to be opened and its contents typed out in octal. The open register ‘can then be modified by typing the desired octal number and closing the register. Any ‘octal number from 1 to 4 digits in length is @ legal input. Typing 6 filth digit is on error and will couse the entire modification to be ignored and a question mark to be typed back by ODT. Typing (/} with no preceding orgument causes the latest nomed register to be opened (again). Typing O/ is interpreted as / with no argument. Exemples 00/6046 1400/8048 2488 400/6085 123457 (ag b. Carriage Return ( Close register If the user has typed « valid octal number, efter the content of a register wos printed by ODT, typing) causes the binary value of that number to replace the original contents of the opened register and the register fo be closed. If nothing hes been typed by the user, the register is closed but the content of the register is not changed . Example: 400 /6046, Register 400 is unchanged. $00 /aePrs0s Register 400 is changed to contain 2345, (2365 Bas Replace 4046 ir register 400, Typing another command vill also close en opened register. Exomple: 40/6046 401/6031 2346 ) Register 400 is closed and unchonged and 400/0HE 401/26 401 is opened and changed to 2346. Line Feed (1) ~ Close register, open next sequential register The line feed has the same effect as the carriage return, but, in addition, the next sequential register is opened and itz contents typed « Example: 400/6046: Register 400 is closed unchanged and 401 040176031 12344 is opened. User types change, 401 is ‘HOLST, closed containing 1234 and 402 is opened. d. Up arrow (1) ~ Close register, take contents as memory reference ond open $31 Up arrow will close an open regi I inter ler just os willearriage retuen. Further, it pret the contents of the register as @ memory reference instruction, open the register referenced and type ils contents. EC~08-COCO-D Example: 404/32701 3270 symbolically is "OCA, this page, relative 047070772 0000) location 70, so ODT opens regiser 470. waa 047070000 es Back Arrow (— Close register, open indirect Bock arrow will also close the currently open register ond then interrupt its contents as the ddress of the register whose content Exomple: 365/760 036070276 «— Cea, 10 type end open for modi f. Any legal Character Any choracter that is neither @ valid control character nor an octal digit, or is the fifth octal digit in a series, couses the current line to be 1ored and a question mark typed. Example: 4:2 i Pe ODT opens no register. 40674671 67K ODT ignores modification and closes register 408. fey 9+ 20xG ~ Transfer control to user at location 2000. Clear the AC then go to the location specified before the G. All indicators and regise ters will be initialized and the break-trap, if ony, will be inserted. Typing G alone is bot will nevertheless cause a jump to location 0. hy 0008 = Set breckpoint at user location 0%. Conditions ODT to establish a breakpoint at the location specified before the B. If B is typed alone, ODT removes any previously established breakpoint ond restores the original contents of the break lecati + Abreakpoint may be changed fo another loca tion, whenever ODT is in control, by simply typing xxxx8 where xxx is the new location. Only one breakpoint may be in effect at one time; therefore, requesting @ new breakpoint removes any previously exi ing one. The previous restriction on placing a breakpoint on @ JMS followed by arguments has been removed as of the June 1967 revision. ‘This means ODT can now be more effectively used, especially in debugging programs Which utilize floating point. The only re in this regord is thet @ breakpoint may not be set on any of the Flocting point instructions which eppear as erguments of @ JMS. DEC~08-coco-p DCA JMS FADD) Breakpoint illegal here. The breakpoint (B) command does not make the ectval exchange of ODT instruction for Exemple: TAD Breakpoint legal here. ‘ser instetion, it only sets up the mechanism for doing 50. The actual exchange does ot occur until a 'g0 to" or a “proceed from breakpoint” command is executed. When, during execution, the user's program encounters the location containing the breakpoint, control passes immediately to ODT (via location 0004). The C(AC) and C{L) ot the point of interruption are saved in special registers accessible to ODT. The User instruction that the breakpoint was replacing is restored, before the address of the ‘rap ond the content of the AC ore typed. The restored instruction has not been executed ot this time. It will not be executed until the “proceed from breakpoint" command is given. Any user register, including those containing the stored AC and Link, con now be modified in the uwsal manner. The breakpoint can also be moved or removed ot this time. i. A= Open register containing AC. When the breakpoint is encountered the C{AC) ond Ci.) ore soved for later restoration. Typing A after having encountered a breakpoint, opens for modification the register in which the AC was saved and types its contents, This register may now be modified in the rrormal manner (see SLASH) and the modification will be restored to the AC when the "proceed from breakpoint” is given. | after A - Open register containing Link Ater opening the AC storage register, typing linefeed (1) closes the AC storage register, ink register may now be modified as uwal (see SLASH) and that modificetion will be restored then opens the Link storoge register for modification and types its contents. The to the Link when the "proceed from breakpoint" is given. i. C= Proceed (continue) from a breakpoint. ‘Typing C, after having encountered a breckpoint, causes ODT to insert the latest specified breakpoint (if any), restore the contents of the AC and Link. execute the instruction trapped by the previous breakpoint, and transfer control back to the user prom ‘gram at the appropriate location. The user program then runs until the breakpoint is again encountered. DEC-08-Coco-p NOTE: Ifa trap set by ODT is not encountered while ODT is eunning the ‘object (user's) program, the instruction which causes the break to occur will not be removed from the user's program. XC - Continue and iterate loop 200: times before breok . The programmer may with to establish the breakpoint at some location within a loop of lable 10 his program. Since leops often run to many iterations, some means must be av prevent « break from occuring each time the break location is encountered. This is the function of xxxC (where x00 is on octal number). After having encountered the breck= point for the first time, the user specifies, with this command, how many times the loop is to be iterated before another break is to occur. The breck operstions have been described previously is section h. k. M= Open search mask. Typing M causes ODT to open for modifi tation the register containing the current value of the search mask end type its contents. Initially the mask is set to 777. It may be changed by opening the mask register and typing the desired value after the volue typed by ODT, then closing the register. 4 = Open lows ‘The register immediately fotlov seorch limit the location at ing the mask storage register con! ‘which the search is to begin. Typing line feed (1) fo close the mask register couses this, the lower search limit register to be opened for modification and its contents typed. Initially the lower search Limit is et to 0001. It may be changed by typing the desi lower limit after that typed by ODT, then closing the register. 1 Open upper search Limit The next sequential register contains the location with which the search is to terminate. ‘Typing line feed (1) to close the lower searchlimi register couses this; the upper search it ei to be opened for modification and its contents typed. Initially, the upper search limit is the beginning of ODT itself, 7000 (1000 for low version). It may also be ‘changed by typing the desired upper search limit after the one typed by ODT, then closing the register with a corrioge return. 1, sex = Word search ‘The command xxxxW (where xx is on octal number) will cause ODT to conduct @ search of adi 1d wetion of core, using the mask and the lower and upper limits which the user + Word searching using ODT is similar to word DEC~08-COCO-D searching using DDT. The search 19 operations are used to determine if @ given quantity is present in any of the reg rs of @ particular seetion of memory ‘The search is conducted os follows: ODT masks the expression 20 which the user types preceding the W ond saves the result as the quantity for which it is wearching. (All ‘masking is done by performing @ Boolean AND between the contents of the mask ragister, C(M), and the register containing the thing to be masked.) ODT then masks eoch register within the user's specified limits and compores the result to the quantity for which it is searching. If the two quantities ore identical, the address and the actval unmasked contents of the matching register are typed and the search continues until the upper limit is reached. A search never alters the contents of any registers. Example: Search loc: 1s 3000 to 4000 for all 1SZ instructions, regordless of what register they refer to (i.e. search for all registers beginning with an octal 2), M7777 70001 Change the mask t0 7000, open lower search limit 7453/0001 30001 Change the lower limit 10 3000, openupper limit 7454/7000 40001 Change the upper limit to 4000, close register 20007 Initiate the search for ISZ instructions 2000/2467 057/750. ‘These are 4 ISZ instructions in this section sea of core. Kolcibed im. T= Punch leader ODT is copable of producing leader (code 200) on-line. This is done by typing T ond then turning ON the punch. Whien enough leader has been punched, turn off the punch dnd hit STOP on the console. It is imperative that the punch be turned OFF before typing again on the keyboard, since anything typed will be punched also, if the punch is left fon. To issue ony further commands, reload the starting address ond press START on the rn. 22005 yyyyP ~ Punch binary To punch a binary core image of @ particular section of core, the above command is used where x00n is the initial (octal) address and yyyy is the final (octal) address of the section of core to be punched. The computer will halt (with 7402 disployed) to allow the user to turn ON the punch, Pressing CONTINUE on the console initiates the actual pune 43 DEC~08-COCO-D the block. The punching terminates without having punched a checksum, to allow sub sequent blocks fo be punched and to allow an all inelusive checksum to be punched af the end by a separate comand. Th's orecedure is optional, however, and the user may punch indi ually checksummed blocks. It is imperative that the punch be turned OFF before typing another command, since the keyboard and punch ere linked . o. E~ Punch checksum and trailer Given the command E, ODT will halt to ollow the punch to be turned on. Pressing CONTINUE on the console preceding block(s) of bi cause it to punch the accumulated checksum for the (code 200). When a sfficient length of trailer has been output, tuen OFF the punch and press STOP on the console, To ry output followed by trail continue with ODT reload the starting address and press START on the console. ‘The binary tope produced in this manner by ODT can now be loaded into core and run. However, the changes should be made to the symbolic source tapes as soon as possible . a. TY VO-Fleg Sometimes the program being debugged may require that the TTY flag be up before it ean continue ovtput, 1.6.» the program output routine will be coded as follows: TSE Me Ts. Since ODT normally leaves the TTY flag in an off (lowered) state, the above coding will cause the program to loop at the JMP.-1, To avoid this, ODT may be modified to leave the TTY flag in the raised (on) state when transferring control through either a "go to" or ‘2 "continue" command. This modification is accomplished by changing location XCONT-3 (normally of 7341) to a NOP (7000). To meke the actual change, lood ODT as vsal. (Open register XCONT=3 ond modify it as follows: 7341/6042 7000 ) (1941/8042 7000 J for low version) b, Current Location 1 sddkess of the current register or las! register examined is remembered by ODT and remains the same, even after the commands G, C, B, T, E, and P. This location moy be ‘opened for inspection merely by typing /. DEC-08-COCO-D + Programs Written in ODT Commands (ODT will also correctly reed tapes prepared off-line (e.g, @ tope punched with 1021/11571 7775 will cause location 1021 to be opened ond changed to 1157; then the be opened and changed to 7775 (~3). This procedure will work with breakpoints, continues, punch commands, ete. Thus, debugging programs memory reference address 157 wil may be read into ODT to execute the program, list re sters of interest, modify locations, ete. Binary Tape from High Speed Punch Iv is possible to obtain @ binery tape from the high speed punch, instead of the Teletype, however, this requires switch manipulation. Proceed as follows: 11, Type the punch command xxx; yyyyP as explained in section 4.2 (n). The computer witl halt. 2. Set 7231 (1231 for low version) in the SWITCH REGISTER (SR) and press LOAD ADDRESS. 3. Set 6026 in the SR end press DEPOSIT. 4, Set 6021 in the SR and press DEPOSIT. 5. Set /229 (1225 tor low vers ) in the SR and press LOAD ADDRESS ond START fon the console, and leader (code 200) will be output. 6. When a sufficient length of leader hes been produced, press STOP on the console. 7. Set 7203 (1203 for low version) in the SR ond press LOAD ADDRESS and START on the console, and the section of core spec in the punch command will be ovlpur. 8. If another block of data is desired on the some tape, the original contents of the locations changed in steps 3, 4 and 5 must be reploced. (See step 11.) Steps 1, 2, 3, 4, ond 8 must then be repeated to output the date block via the high speed punch. 9. Set 7222 (1222 for low version) in the SR and press LOAD ADDRESS and START fon the console, end the oceumulated checksum will be punched followed by trailer (code 200). 10, When a sificient onount of trailer has been produced, press STOP on the console ‘and press the TAPE FEED bution, then remove the tope from the punch. DEC~08-COCO-D 11, Te continue using ODT, the locations chenged in steps 3 and 4 must be restored cs follows Set 7231 (1231 for low version) in the SRond press LOAD ADDRESS. Set 6046 in the SR ond press DEPOSIT. Set 6041 in the SR and press DEPOSIT. 12. Set the starting address (7000 or 1000) in the SR and press LOAD ADDRESS ond START on the console, and ODT is ready to go again. e+ Interrupt Program Debugging ODT executes en IOF when @ breakpoint is encountered. (I does not do this when more is done so that an rations remain in en x-continue commend.) Thi erupt will not ‘occur when ODT types out the breakpoint informal 29. It thus protects itself against However, the user must remember that there is no way in which ODT could know whether the interrupt was on when the breakpoint wat encountered, and hence it does not turn on the Interrupt when tronsferring control beck to the program after receiving @ "go" of a "continue" command . f. Octal Dump By setting the search mask to zero and typing W, ll locations between the search limits will be printed on the Teletype. G+ Indirect References When an indirect memory reference instruction is encountered, the actual address may be ‘opened by typing 1 ande—, 4A Errors The only legal inputs are control characters and octal digits. Any other character will couse the character or line to be ignored and © question mark to be typed out oy ODT. Typing G alone is an error, It must be preceded by an address to which control will be transferred. This will elicit no question mark also if not preceded by on address, but will couse control be transferred to locaticn 0. Typing ony punch command with the punch ON is an error ond will couse ASCII characters to be punched on the binary tape. This means the tape cannot be loaded and run properly. DEC-08-COCO-D 4.5 Miscellaneous If trop set by ODT is not encountered by the user's program, the breakirap instruction will rot be removed. ODT con now be used to debug programs using Floating point, since the intercom register is now register 0004, and since breaktraps may now be set on @ JMS with arguments following . This version of ODT will operate on @ Teletype with an ALT mode key or an ESCAPE key. To restart ODT without clearing the checksum, set the SWITCH REGISTER to the value of start + 1 (7001 or 1001 in library versions) and press LOAD ADDRESS ond START on the console. The high speed punch may be ‘ied by patching three locotions after typing the punch command. (See section 4.3 d.) 5 DETAILS OF OPERATION AND STORAGE Sul Featur ‘ODT features include register examination and modification; binary punchouts (to the Teletype ‘or high speed punch) of user designated blocks of memory; octal core dumps to the Teletype using the word search mechanism, as in DDT; and instruction breakpoints to return control to ODT (breakpoints). ODT makes no use of the program interrupt facility and will not operate outside of the core memory bank in which it is residing. The breakpoint is one of ODT's most useful features. When debugging @ program, it is often desirable to allow the program to run normally up to @ predetermined point, at which the programmer moy examine and possibly modify the contents of the accumulator (AC), the Link (L), oF various instruction for storage registers within his program, depending on the results he finds, To accomplish this, ODT facts a: a monitor to the vser program. The user decides how for he wishes the program to run and ODT inserts an instruction in the user's program which, when encountered, causes control to transfer bock to ODT. ODT immediately preserves in designated storage registers, the contents of the AC ond L at the boreal. It then prints out the location ot which the break occurred, os well as the contents of the AC of ‘hot point, ODT will then allow examination and modification of any register of the user's program (or those registers storing the AC ond L). The user may alto move the breakpoint, and request that ODT his program. This will cause ODT to restore the AC ond L, execute the trapped in struction and continue in the user's program until the breakpoint is again encountered or the program terminated normally 5.2 Storage ODT requires 600 (octal) locations and, as distributed by the Program Library, resides in ‘memory between 7000 and 7577 (or 1000 and 1577 for the low version). It is, however, page relocatable . DEC-08-COCO-D ‘The source tape can be re-origined to the start of any memory page except page 0 and ossembled to, reside in the three pages following thet location, assuming they are all in the same memory bank. ODT also uses location 4 on page 0 a8 an intercom register between itself and the user's program when executing a breakteop. If the user wishes to change the location of the intercom register, he may do s0 by changing the value of ZPAT in the source ond reassembling. The intercom register must remain on page 0. ‘ RESTRICTIONS (2. ODT will not operate outside of the memory bank in which it is located . bb. It must begin ot the start of a memory poge (other than page 0) and must be com= pletely contained in one memory bork « + twill not tur on the program interrupt, since it has no way of knowing if the user's program is using the interrupt. It does, however, tum off the interupt when a break= point is encountered, to prevent spurious interrupts. (See 4.3 (e).) The user's program must not use or reference ony core locations occupied or used by ODT, ond vice verse. fe. Register ZPAT is used os an intercom register by ODT when executing o breakpoint. hn tributed versions ZPAT = 0004, This register must be left free by the user since it is filled with an address within ODT which is used to transfer control between user program and ODT. . Breokpoints ore fully invisible to “open register” commands; however, breakpoints may rot be placed in locations which the user program will modify in the course of execution or the breakpoint will be destroyed. 7 REFERENCES ‘2. See DDT Programming Manual (Digital-8-4-S) for @ full explanation of the use of debugging progroms. b. Binary Loeder (Digital-8-2-U) 8 COMMAND SUMMARY. rnnn/ (Open register designated by the octal number nan. Reopen latest opened register. / Reopen latest opened register. Carriage Return (,)) Close previously opened register. n Line Feed (1) Up Arrow (1) Bock Arrow (<—) legal character DEC~-08-Coco-D Close register end open the next sequential one for modification. Close register, toke contents of that ler 0: @ memory reference fond open it. Close register open indirectly. Current line typed by user is ignored, ODT types "2 CR Li rpnenG Transfer program control to location nann . nnn, Establish @ breckpoint at location nnnn. 8 Remove the breokpaint. A ‘Open for modification the register in which the contents of AC were stored when the breakpoint wat encountered c Proceed from @ breakpoint pnt Continue from a breckpaint and iterate past the breakpoint nnn before interrupting the user's program at the breckpoint location. M Open the search mask . line feed) Open lower search limit. (line feed) Open upper search limit. nnn Search the portion of core as defined by the upper end lower limits for the ectal value naan. T Punch leader. fannnjmmmm? Punch a binary core image defined by the limits nnnn and mmm . é Punch checksum and trailer. 9 EXAMPLES AND/OR APPLICATIONS Symbols for representing "invisible" Teletype a (ca) Carriage Return ar) Line Feed (A Computer Halts (Cont) Key Continue on Console (PON) Punch On DEC~08-COCO-D (Por) 7 Punch Off (LEAD) Produetion of Leader (BIN) Punching of Binary Text (CKSMT) Punching of Checksum and Trailer ‘The following exemples are the actual result of using ODT to run the program listed after the examples. Brackets enclose comments local to the description. Underlinings designate that produced by ODT. 2777 7333 (LEXER) TATE faz) 493 TORICR) TET Tae S05 (CRT Lupper seorch is Soma (CRITE) Eqvontity for asd PSETPOTCRMLF) search begun] Fas) [search completed] wqaee 7777 (LEMCR), Lchonge mask] ATS sane 33 PTERNCR) Exchange lowe TATATESEMCRMLF) [upper limit is all right] am ) [search for all CLA instructions] S54" /TCSTTCRKLF) [there Ys only one. It is of location 364] Ce [seorch is Finished] 17777 saa(CRXLF) [set mosk for indirect ond pope bits] APT (CRILE [Using previous limits search for all references cart 7razatcny fo page zero which occu] sare 7TBO ) aT 7 TAS Tae Lthere are none, however, these microinstrctions 7 TAE look like indirect references to page zero since a5 77a they have @ 1 in bit 3 ond a fin bit 4] aSZ_7 Toa ase_7 TaD (CN) Gate 77521 CN) [search completed] 13 DEC-08-Coco-D meaise a(LENCR) 1478/2562 a9 1(LEXCR) 7474 7980 427 (CRLF) 712 1ACRYLE) (tase w(CRYLF) aa pala gall 77 a50(CRVLF) 752 53(CRYLF) 712 73(CRMLF) 7725e(CR)LF) 5 752Sa(Cry Lr AD TUCRMLF 7 7a5a(CRMLF) 7522 (CRV(LF) 2723 (CRM OEM 752 22(CRNLFY 712 aC CRNLFY Best Se 3StER)LP) Examples of Reyister Examination 8 Modification 408/6046 (CRYLF) 420 768% 24537 (CRYLF) 49278043 123.45 XCRNLF) 76786-2585 (CRLF — (25% 60a6 (CREF) 7REIS_ 401/503 1-23.46 (CRYLF) GBATEAAS FT 725.46 (CRLF) 72345-Sas (CRLF) 503i ans gaag (LFCR) Bani “78031 1254 (LFNCR) FRR PSEA (CR\LE) “WITIESE 8031 ean 75201 (CR)(LF) TI 03g (CRN) Fade732 70 (CRLF) [set mask to zero so thot everything will motch] [set search limits to encompass dump area] [since W is typed alone, the word searched for, i 8. _ The result after masking each register with 8 is, of course, fF s0 all compa ‘oppeer to the progrem equal ond hence ll ‘unmasked contents are typed, constituting 2 dump] {Examine Only) {Noncoctal number typed, modification ignored 1 ication ignored] ied again} Register closed by typing another command ] Celore ond exomine next 1 (modify 401, examine 402 [elose 402] DEC~08-COCO-D Examples of Register Examination & Modification (continued) 4047/3270 + (CRYLE) {contents of 404 refers to “this page, loc. 70") Bato 7az12 TEU ICRYLE) [ODT opens 470.” User modifies 470} ROUTSETO + (CRM 2a7a~7ampe (CR 7a0aH CAKE) — aoa7s270 52714 (CRILE) Contents of 404 modified to refer to "this Zan 7a56a(C RAT —— [ODT opens 471] toe. 71 WaT $2121 TCR\LE) 2a79 72000(CRXLF) — 365/5760 + (CRXLE) {contents of 365 refer to "this page, loc. 160") 25en- 70426 ACRRLF) [ODT opens 360.” Contents of $50 become Baes_73za1 CRUE] LODT opens 426) address) 4: ACRMLED av CRTT) Illegol character. ODT opens no register pecesittak aesraerr-y? (CAYLEY wesraen Eth illegal character. ODT i 496/aSTh 878227 (CRLF) fifth digit in series, ODT ignores modification “srt register 406 still contains original value of 4671 Exomples of setting Breakpoints and Executing User's Program 4759909 1 (LER) [viersprestem expects te find the numbers 5476 70B00 2 (CFNCR it is to use in 475 and 476 (eee listing) 2BaTT 7a00e (CR)(LE tereme will be stored in 477 EER) Breckpoint is set at location 432) 4826 (CRIT [user's progrom begins at 400, go thers) +9432 “CeaT3 (CRYLF) [user's program acepls input of "+". Breckpoint 4771/9083 (477 contains sum of 475 8 474 pncountered Registers can be changed ond the same breakpoint ODT types breok remains in effect. coddrets & C(ACD a75yoaa1 3 (LFYCR) 476-722 (CRLF Rm TERVLF) #0432 TOMEBTCRYLA) Wee 18 DEC-08-COCO-D Exomples of examining and modifying AC and L after encountering @ breckpoint 299 1 (CRUE Mart eal ER Beer! ate 2 (CRYLE) 70000 (CRXLF) 446 (CRYLF) 4086 (CRIT) 2.445 CHO (CRVLE) c Baas Coote (CAMLE) 2446 Coola (CRYLF) 4476/0003 7 70207 4ase 4096 eRaas (7994 2c ans (zo2e Baas (aaze LAC which contained J when breakpoint wos ‘encountered is modified] ink which contained 1 at break is modified to 6 8 sets one at 446] fGontinve until «.-) Breakpoint opain encountered) [Breokpoint encountered) Continue as before but poss Breakpoint twice before stopping again] rorseve a PAGE 1 i208 START#10a8 baws spares JHIS 18 A S=PAUE, 4K, 7PAGE mISE=RELOCATANLE, 7OCTAL JEBUGGING SYSTEM CALLED JeveopT-8eee aaee aSTART 1002 $975 DCA 1 CKSAL — /CLEAR THE CHECKSUM, 1001 0930 ew, ZARETTRARY CONSTANT 1082 4357 READ, JMS CRLF ZeNU LINE: SLT sHUT TO =1 1083 1673 TAD TIN. 77RAD 1084 3307 UCR WORD 7GET THE TRAP ADDRESS, aes 1474 TAD 1 INO 7KEEP. aes $767 ocak 1 MORO PRESTORE CONTENT, 1087 3367 READS, UCA woRD ZOLEAR THE INPUT,/7TH INST, Leia 1263 TAD FMS: ed hein 3374 ca ToTe 7SET THE LETTER COUNT, 1ai2 6931 Rea, ASF igi3. 5212 oP /MALT FOR COMMAND, 1414 6236 wae 1013 3357 Oca scHar 1016 1357 TAD SCHAR 760 TYPE THE CHARACTER, 4e17 4772 NS LIND 1eea 1375 TAD RETW INITIALIZE THE PATCH 1ee1 $308 UGA 2PAT ZEVERY TIME eee 1243 TAD BLIST JOOMPUTE ADDRESS OF COMMAND, 4423 $323 Gk SPATR aeea 1723 TAD 1 SPNTR —/SEARCH FOR LEGAL CHARACTER, ees 2323 Ise seNTR 1826 7519 Fae70, SPA /TEST FOR END OF LIST: MIMUS > 1227 5277 GUEST: JMB SEX ZNOT SATISFIED, aga 7241 cre ZOOMPARE THE CHARACTER, 1031 1357 TAD scHAR 1032 7440 Feeae, S#e CLA 7Founo 4083 5224 SNP 427 7NOy CONTINUE 1034 1323 TAD SPNTR 1035 1242 TAU LTABL 4056 $328 BCA SpuTe 1087 1728 TAD 1 SPNTR ——/LOUK UIP THE ADDRESS, 1042 3323 BCA SPNTR 1041 5728 URP 1 SPATR 760 PRICES, aes2 0514 LTAML, TAMLZeTARLL=t ods ase Huisty TaBLL JNT=o WILE ALSO CORRECTLY REAN Sy*aOLTC PTAPES PHEPAWED FOR IT? F.Gy LABt/119707775, ase 1085 eas 1047 Lara gest ese es ose yes Lae 1a>7 yee Leer 1202 1203 1004 1465 1266 1087 aaa aera iar aes3 aera 1475 here 1677 iia aie a1ez ais rive aie. ales aie? anid aun gine aus 1s ais iis aaa dxze bse 324 e212 vas 257 302 v3e7 e273 e303 o3a7 2338 e315 e3en 357 7778 1307 7442 3378 1778 477. 3375 bee7 1397 i302 3363 i302 7208 1397 hee F00 D3? i201 7520 bau $328 1307, Tiv4 7706 1ses 587 274 bane rwsaeroe 1 PAGE 2 soonmany LIST yas. sev seuNncH 302 Zend bea 7 TRAILER aie 7OPtN NEXT zip 7LOSE THIS ONE. 7 ZOPEN THIS ONE See 7oREAK 3e7 769 27s ses 7CONTINUE 327 7#ORD SEARCH 330 JUP=ARRON OPENS INDIRECT(I.E, MEM REF? 31> THASKAUBPERLOWER® 302 ZACLINK os7 JeACK ARROW = OPEN INDIRECTLY P TABLE MUST END WITH A NEG NUMBER Faby, 93 Exam, 1A0 WORD 7LOKD ADDRESS sen VIF PERO, USE LAST OCA cao exe, 140-1 CAD JMS 1 INS yeNUM {PRINT CONTENTS) dca snur ZSTONALS OPEN REG SHE READS Lax, TRAD rv) KEEP CASAL, CASA Ts, FROG /PRUCESS UCTAL DIGITS, sex, cha TAD ScHAR Tag PRa7e yeas cauuey Sma ane 0 JULLEGAL ChALe TAD Pay ne 3Pe ne va /ILLPGAL oHa dea saa Tay uRo JASSEMALL AN ADDRESS maAL CU ate TAs san ca auae ise tore 20740768 ope? PAGE s LYRE ERROR INDICATOR (29 4ia7 7200 Ny CLA hed 1227 TAU guest 7277 alen 4772 JMS TINS ive % ize 5202 SHE REAU /TO OPEN LOCATION ZERO, ZOPEN 7777 AND TYPE LINEFEED, /Vek ADDRESS OF THE LAST REGISTER ZEXAMINEO REMAINS THE SAME AND WAY BE OPENED BY "7 1123 SPATREy ales sabe, ROUTINE TO HANDLE REG, MODIFICATION AND INCREMENTAL EXAMINE 112s oaeo cl, ales 1374 TaD Tore 312d 7241 cra 1126 1203 TAD FAB ns 1127 7650 SNA CLA 11se 5723 MP 1 CAL NO MOD, INFO AVAILABLE i131 1367 TAD woRU hse 2375 Ise SHUT /VEST FOR OPEN AND THEN CLOSE IT, A183 $773 ota 1 cao MODIFY REGISTER iss 5728 HPL CR 1155 4328 ORLL, UMS CRE PCARRIAGE RETURN TO CLOSE 3156 4357 DHS OLE 3157 5207 DHP READS an4y 1252 ohL2, TAD Cw /SINGLE FEE DeC# ater 4772 JMS TING 1142. 4325 TAS ORL, i143) 4772 ons 1 ing /TINE FOR CAR TO RET, ies 2370 Ise can ZLINE FEED = EXAMINE NEXT 1145. 1372 upaa3, Tao CAD itee 4771 vas fT 1na yenum 4147 1251 TaD SLA Biba 4772 wns 1 1No sre a1di 5207 One Ex2 12 4323 OPIN, ums CRE /CLOSE FIRST aps 1779 Tao [can hind 3378 aca cay 3135. 4857 pana, JS CRLE Lids 5345 DHP Jeans aap? Liez ites iiee i163 iieg 1165 1106 aie7 ava ayn ave 4173 1176 4175 aus a7 1197 4252 e772 1247 4772 7288 $375 3757 e202 bawe 1446 3232 1243 aaee 717 1367 $676 sonane sTYPE A HUF /PAGE ON WORD, CAD, Ine, 199, REIN TOTE, SHUT, Pun. 10/28/68 138,15 PAGE 4 Gans RET, ABD LINE FEED é Tay ck yer> wus TU INe are TAD LF vere ans 11ND 7 Cha ZHUNIS ONE bce sHuT ZSIGNALS CLOSED REGISTER NPT CRLF L PARAMETERS, 2 J/OURRENT ADDRESS Paun TYPN BURP ry TAD WORD. yea t 1n7 ieee ier 1202 123 aes 1205 ees ieer 4219 dein s2n2 yeis rere] 3215 2218 1247 1222 1ze1 1222 aes heee 1225 1226 Lear 1282 1231 hese 1238 1236 1259 azee eu D707 7682 1302 4765 e180 i762 4705 22 1302 7243 1764 750 5707 2302 5208 5707 7902 1363 4709 waa azn 4233 9225 v2ea boas eat 52782 7see oase 19/10/68 9135.15 PAGE 5 709124 SECOND CORE PAGE aSTART#ZEe sea77, 477 UP LRST IN THIS PAGE uke 1 ints 7HEADS 7eUNCH DATA, Puna, CLaATALT TAD FROG. oes TINS ZPUNN (PUNCH ORIGIN) lew pune, TAD I FROG gS 1 INL 7PUNN (PUNCH CONTENTS) TaD FRAG cia TAU 1 Inte 2H0RO Sha CLA SMP Linas PREADS Ise FROG KP pune: One 1 INAS PUNCH END) Pung, CLA ALT TAO CKSA. ons 1 INat JPUNN (PUNCH CHECKSUM) 7OUNCH LEADER, Puna, TAD sp2en UNS TPN UMP 4-2 /1o USE THe HIGH SPEED PUNCH, Tiree maxi Tye" THEN TOGGLE IN ZIMe PATCHES INDICATED BELOW, 7THEN LOAD ADDRESS AND START! [Puna = FOX LEAUER@TRALLER. ypunael = Pow DATA Dpundei = +02 CHECKSUM ANU LFADER, PRE STURL PATCHES AEFORE RESTARTING, Fa STaWT AT START TG CLEAR CHECKUMy (ALSTART AT STARTeL TO RETAIN CHECKSUM, Z1YPE & CHARACTER TPN, Tes 70026) = FUR Hy 1S Whoa.) = FOR WIS AP gat severe, Toew'” rcyanwepure ane TYPW 19/10/68 - PAGE doa 1258 4237 1242 3241 1242 seas hese 1243 1245 1247 aeoe a2at 1e2 1253 1254 1255 1238 4237 tea 101 ieee 1203 L204 1265 1208 i207 3270 ier 1272 i275 274 43ers ae7s jen 1303 1301 2704 Fade 1366 3357 5320 3395 7204 3356 ager 3757 7ae1 1357 3301 1382 asre want 7508 5265 3322 7553 3267 i302 538 1357 e234 3302 10a waar 1302 She isee 2375 Japs > sez 1782 ‘S302 Lose yoe 6135.16 paGt © Jee ATUN2 AUQEUT INTLRUPT TURNED OFF UPON HITTING SREAXPDINTS GAS USE de] SPEED PUNCH: dREAKPOTNT CAN HE PUT O® A JME FOLLOWED BY ARGUMENT Do0T20 1S MELOGATAMLE; Ih BREAKPOINT PUT ON INSTR SEFERENCING AUTO-1NVEX DIwUTREGTLY, LY ATLL GE INCKEMENTEO ON CONTINUE: LINK & AC EXAMINE OW ZCOMMANGE 7" 9PEAS LATEST OPENED REGISTERS CLARITY: AUTO LEADER/TRAILERS TAPEN ME%, REF, CODE AND OPEN INDIRECT (BACK ARROW): ALSO XXX C JET A BREAK POINT, Teapy TAD LIND Z{HORDIADDRESS OF TRAP, Sua Tay Iniz soRLE vca TRAD 7TRAP SET (REAL OR DUNMY) aNP SPEXIT 700 To SECOND PAGE EXIT, 7 Tie TRAP 1S SPRUNG dure, OCA Sac sSAVE COAG) NAL, uca LINK /SAVE COLD TaD KEEP: ck 1 TRAD /REPLACE INSTRUCTION WHICH WAS TRAPPED TAC CLL TAD TRAV OCA GAME, /SAVE CONTINUATION AOURESS (RREAK AUDRex) TaD isis asi? as2a a3e1 sez ses i324 3825 ise6 1827 1352 1552 4532 1533 334 1535 1538 1337 3343 196 1542 1548 asse ss saa 107 493 isa 1892 19s 4322 yaoe smh $331 2705 Dae eave 157 8772 4278 4233 1355 4773 4708 2787 eres L302 b376 4375 bree ives 3301 1352 $352 $395 yax2 1766 234 S703 4708 1e/tesee Oe 17 PAGE 7 Lie) aNs tetas /SEE IF TRAPPED INSTR IS. SMS 1 in2a AYES) IT 1S 8 JMS CaMSERD Tad 1F 206 wo) CaS 1 FROG) JMS Lies, aca THe ZSTURE FOR EXECUTION aus anus RACK 40) SCII LFT PAREN) Se (TEST NeCONTINUE rr ZIGNORE THIS BREAN tot JSTOR INTERRUPTS Tho TRAD was rointa /PNUM (PRINT TRAP ADDRESS) Tap Lpaw JLEFT PAREN (8 B1TS= 2502) was Tren TaD sac NST tate (PNUM (PRINT CCACDD SPERIT, JMS 1 Inte 708 ome 1 1Nay 7READS TSTIMSs & TaD Keer. JGET TRAPPED INSTR, AND SP7e00 ZISOLATE OF CODE Tay spauaa ZOVERFLOM TO LINK WITH ACEP IF JMS (4000) SNP T TST UMS ASTART AYA LucATION Dune, aD TInt “worv) oA GAME TAD JPIGAy /JMPT GAMED Ck THE uGa sac LEAR THE AC, Ske cowtin, TAU 1 INae 74080) ace 1 ina Z(PUNND“EMP COUNTER SS 1 Inte TRLPD /PRTON THE NEAT LOCATION 1TH NOP( 7200) Z1b THE PROGRAY WIETNG DERUGGED EXPECTS, ive TY FLAG TO BE uP, rer POLEAW THE FLAG Tag t Tata DSAVE THER CONTENTS, WA guiP AEDNT, TAD AIT T thas JANSERT TAAP INsTaUCT ION Fue PHESTORE LINK sae PAN CCAD ee ace 7aNT EXECUTION OF T#APPEL Dpibas, 92 1 ate Tse save JIMLTATE SRIP CosuITION, INST, AFTER PROCEEM 10/20/66 9g35,18 Pauk 8 J VARIABLES MAY BE SCANNED VIA AN, isso uae? sac, 8 ae 139s e202 tisk, @ fue a1 4397 1157 TRAD, CRLF ADDRESS OF THAPy 3569 e7e2 Keep, é ZCONTENT OF TRAP ase1 o3ee e ZADDRESS FOR CONTINUE $02 8777 STAWTet /HENORY REFERENCE, 1363 mea ° 7THE CHECKSUM TO DATE, JINTER COM REGS, isea 1107 Ina, WORD 1$05 i4vt Iii, PUNN 1506 1157 1na2, CRLF 3$07 1207 Tst3, READS 1572 1440 Ina, PNUM 1571 1475 In2i, UNSER /PRUCESS INS. ZCONSTANTS 1372 2000 Speuaw, 2000 1373 vave save,’ sv 1574 7000 SP7eev, /2ve 1575 4700 sPavav, 4200 1576 5aus BAIT, | JNP I 2PAT 1577 4762 IFRUG, IRS 1 FROG Leet aon asee 2405 1404 i4e> 3405 yaar iana reat i412 yas 1eis 14is eres a7 asea year ase uses 1828 3405 ies 3827 ist 182 2453 1858 2433 345s has? tase ase 382 3463 ieee 3445 asee yohT=0, THIRD CORE Pact. sovawieace 16/18/68 8235419 PAGE ¥ PeoNGH ROUTINE, reayy, a7 ca vhs 15 ara NTH ano TAD aes Tao ang oHs ose ve iast enum PNUM 1P77 1 PUNN cxsn Pum 177 cKsM 1 PUNN Iv THIS PAGE. /HLMOWY MEFERENCE OPENER, Gara, Jes TAD vce TAD Te2eh, AND aca tag ana Sha one Tag AND tho oca ose TInse 1 1N27 Tex 1 TEM p17? meme 1 Tem Tp28e cua a5 i inay re 7880 Teme 1 INe7 Lovet uPAR ZchECR SUM ACCUMULATOR Casa e ay tay tay aca Tad car 1 tw2a owt 1 1wze Dinas 1 CRSs FCORLI=MCLOSER CALL", 7x0 JSAVE LOWER BITS, /TEST Fo! PAGE ZERO REF ES yeaa 70K ows vives 1972 aay 1474 1973 1476 aan ava 1 1302 133 ipwa e202 S201 15352 3288 heer Thea 7204 7386 S201 heer e351 1355 4745 1201 2256 b2b¢ 7500 1351 4745 5646 7777 bar 1200 1475 eave aay 5246 1758 3548 2787 3353 5675 7HOUTINE TO PNM Pee 1P 76005 ZSEARCH MASK, Limo, cian cars, SNSERY 10/10/68 9135419 Pave 10 6 ca PUN TAD THA ca cKsH TAU PUNN aL HAL are DCA puNN. TAU PUNN AND TP0u7 TAU TPod MS 1 Inte TAD PuNN 1s2 cKS™ SMP pz 7eee TAD Peay Jes 1 Intg JaP 1 pnum VARIABLES, m7 eoe1 START ‘ Tau 1 tnez aca ewun TAU 1 Ines va 1 BRUM 1S 1 1N2z Tay TPLede JnP 1 JMSER PRINT OCTAL CONTENTS OF AC JONLY 7=D1G17S GUARANTEED. ZIN-CASE BIT 6 CAME THROUGH, ae 0 A=GROUP? /UFROG)=ARS MEM REF, (FINAL JGAME ZSIMULATEO JS. ROG. 2203 1308 3307 aaa rests apie i213 ip14 ese) 1918 4517 bee set 1322 apes 2a 1325 1328 i327 38a 434 1382 1388 isa 1239 1358 1337 14a 4743 1273 $275 1575 bere 7243 i748 7542 D325 1275 4246 1357 4745 1875 4246 4743 1275 2275 724% 3274 7542 5318 4743 5754 1356 isee 3744 5708 LAA 7Aw 0835.28 PAGE a1 PoOKD SEARCH ROUTINE mSEWy oS Tao aca kotWa, TAD any cia tay sea ake TaD TaD Ms Tay Ms: BMS aSeR2, TAD ise cia TAD Te24e, sea aMP oss ine 1 1N26 Lise 1 cay ASK 1 nay cua uSeRe cxt Pum TP297 1 Into 1 cxr pwn 1 INt6 cat cnr cima cua wSeRt TINt6 Torney TURE 7a0R0 J USLASH) yes 708LF 7oRLE 7READSS ROUTINES TO TYPE MaSK AND LIMITS acx, Tad MASKER, TAD vce one conse. CONSéS, 1M? 1 IN26 swoRn Foam 10/10/68 8135.21 Pawn a4er 1436 apa 4172 142 1128 443) 1457 p44 i167 1349, 1280 1246 1303 4347 1362 19d 1363 3551 appt 1907 aod2 7774 1993 ee 19b4 D277 1355. vaoa 3256 7663 3207 9257 i762 1472 1501 i261 1202 p02 1221 3303, 1225 p64 1140 1765 1135 i>e6 idea 1307 1286 3378 1327 4271 1176 33/2 1385 4373 1505 12/4 1446 13/5 1386 176 1385 39/7 1152 ene Tereseuny TEN=CKSH 127, Cau, TH $2, RL JISTER COM REG Tya6, CRLF IM, «ona ini, TYPN 1x28, CRSA 1x22, FROG. Eyes, GAME, rece? Ty2b, | ReADSS ZOONS TANTS. Thay na Tie, 1098 P77, IT TP6e, oo CONsie, SAC=HASK 1P257, 257 CuNsMS, MASK TAsU2=, Puna. Puns Puna ore. cREL 126, ExaH TRAP. JUMP, Pune CONTIN std Upawa ASKER ac. OPIN /aPEN INDIRECTLY. ae aux part beisy sure cau Cau Unsa. ERSAL Ensim Unt Contin congac Conses: cH Cae Gace ones, one CURPAG tian ex rnaza ras pp2ee Foe came, tr Rus In Ine Inte tnaa inte ints Inte inte ina? Nay 120 Iw22 1Nze IN2s 1N2> 1n26 1927 Inge 7 bv Lye sasha or iuan vowe mere Tae 153 1576 Loas aes tive aie 1588 17> 1436 1475 1335 150 1b6e 1058 ines 4137 1135 aaa 1255 1e5s 1087 1026 1063 1032 1382 1561 4377 te73 yore ise 155 1356 1567 1576 ab4s 1544 1945 1346 4371 aber Lboe 1531, bse baz 3542 te/e 17a 1172 1675 132 1837 1360 1e47 10/12/68 0135, 22 PAGE 13 10718760 ge?” PAGE 14 SyMuOL ale Liwnt 1476 cima 1473 wi 1356 cp 1522 tira 1526 Craw 1276 Liaw, 1baz ask 1472 MASKER 1936 Ng a7 oP 1ip2 pxum 1440 ena 1434 unc 1176 PUNN taza Puna ieee Pune 1296 puns: i221 Puna i225 Pap war uuest 127, Hea iwi wea soe meas 1027 HeTW 4173 sac 1535 SAD 1123 SUHAR 115 Sex 1877 SHUT 1175 SLR 1201 SPexIT 1320 SPNTH L423. bay? 228 seena 1e74 Sravoy 1972 Srqua 1873, spauae 1375 SP7vqo 1874 Sh7eae 1284 StaRT eae Tape: 1064 FaBL2 195 few 1486 rr) yaaa THe 1991 the 152 rote, ays Teer 1932, Ieiwoe 158. Wary 1aee ipoea tae wean a3 StHe0L lvan7 tree irroee 1877 Fotans Hea upaWa Grane vans muRD w3ER mSEnd wSER2 KeonT erat TagLe 4987 3395 1456 ip34 4557 1230 1528 1230 rrrrs 1155 14> 3187 125 adie 1525 1346 3024 Le/18/60 135,88 PAGE 15 10/10/68 6135,35 PAGE 16 senor OMe a erat 2oa4 plant eae mae ta wean iwae neavs 18a? mek here rma7a 1826 uEST 1827, roan ese. Linde Lee. BLIST = was, TABLE 1044 ue ie? Cn iese Sta 1051 bas 1063 exam 1064 x2 167 Ie 1973 ina era cesar 1075 IN 1076 sex 4077 cawu nag w ann? Senta 1123 3ap 4125 Smt 4123 Crea, 1135 Gree 1140 vars 114s, OPIN hive vrana 1135 Cru 4137 Denag 1157 w0RD 1157 Cao aie ing. a7 Ing a7 nT 4173 tore 1178 ont 1175 Pune ile Se177 dea. SUM iene mone ree0 runs 1222 move 1225 nen 1280 sPrece 1288 Tnap hese oun 128s 3646 Les. Seagal TABLE, ant aT axe Sastis sant Tne vr toan bac taags seer ease PROG onsa iste Isat bua Ieas. rere bya sPeeau sr7ece seaeae salt 1r8us lena? rena SPAR zee vase sors s3t=> nagace ae i276 182é 1526 i328 isze 1827 1835 1844 10/48/68 135,48 PAGE 17 12/20/68 01g, 40 Pack 18 ormwak TpeL ina ap4s wns 1364 isa9 4545 ne 1546 tmz iba? ines 1550 1N2> 1591 Teper 1554, ra 4552 Ipiweo 1538 1e77 i594 iro 1955 CUNsAL 1556 1p257 1357 cuNges 1250 Tarez 1384 1926 1586

You might also like