START=1000 ZPAT=4 /THIS IS A 3-PAGE, 4K, /PAGEWISE-RELOCATABLE, /OCTAL DEBUGGING SYSTEM CALLED /***ODT-8*** *START DCA I CKSAI /CLEAR THE CHECKSUM, P10, 10 /ARBITRARY CONSTANT READ, JMS CRLF /END LINE; SET SHUT TO -1 TAD I INX /TRAD DCA WORD /GET THE TRAP ADDRESS. TAD I IN0 /KEEP DCA I WORD /RESTORE CONTENT. READ5, DCA WORD /CLEAR THE INPUT./7TH INST. TAD FM5 /-5 DCA TOTE /SET THE LETTER COUNT. REA, KSF JMP .-1 /WAIT FOR COMMAND. KRB D01015, DCA SCHAR TAD SCHAR /GO TYPE THE CHARARACTER. JMS I IN9 TAD RETN /INITIALIZE THE PATCH DCA ZPAT /EVERY TIME. TAD BLIST /COMPUTE ADDRESS OF COMMAND. DCA SPNTR TAD I SPNTR /SEARCH FOR LEGAL CHARACTER. ISZ SPNTR FM270, SPA /TEST FOR END OF LIST; MINUS 5 QUEST, JMP SEX /NOT SATISFIED. CIA /COMPARE THE CHARACTER TAD SCHAR FP240, SZA CLA /FOUND JMP .-7 /NO, CONTINUE TAD SPNTR TAD LTABL DCA SPNTR TAD I SPNTR /LOOK UP THE ADDRESS. DCA SPNTR JMP I SPNTR /GO PROCESS. LTABL, TABL2-TABL1-1 BLIST, TABL1 /DDT-8 WILL ALSO CORRECTLY READ SYMBOLIC /TAPES PREPARED FOR IT: 1021/1157^7775 /COMMAND LIST TABL1=. 320 305 324 LF, 212 CR, 215 SLA, 257 302 307 273 303 327 336 315 301 337 /TABLE MUST END WITH A NEG NUMBER FM5, -5 EXAM, TAD WORD /LOAD ADDRESS SZA /IF ZERO, USE LAST DCA CAD EX2, TAD I CAD JMS I IN8 /PNUM (PRINT CONTENTS) DCA SHUT /SIGNALS OPEN REG JMP READ5 INX, TRAD IN0, KEEP CKSAI, CKSA IN7, FROG /PROCESS OCTAL DIGITS SEX, CLA TAD SCHAR TAD FM270 /(-8) CKNUM, SMA JMP NO /ILLEGAL CHAR TAD P10 /10 D01105, SPA JMP NO /ILLEGAL CHAR D01107, DCA SAD TAD WORD /ASSEMBLE AN ADDRESS CLL RAL RTL TAD SAD DCA WORD D01115, ISZ TOTE JMP REA /TYPE ERROR INDICATOR (?) NO, CLA D01120, TAD QUEST /277 JMS I IN9 /TYPN JMP READ /TO OPEN ZERO, /OPEN 7777 AND TYPE LINEFEED. /THE ADDRESS OF THE LAST REGISTER /EXAMINED REMAINS THE SAME AND MAY BE OPENED BY "/" SPNTR=. SAD=. /ROUTINE TO HANDLE REG. MODIFICATION AND INCREMENTAL EXAMINE CRL, 0 TAD TOTE CIA TAD FM5 /-5 SNA CLA JMP I CRL /NO MOD. INFO AVAILABLE TAD WORD ISZ SHUT /TEST FOR OPEN AND THEN CLOSE IT. DCA I CAD /MODIFY REGISTER JMP I CRL CRL1, JMS CRL /CARRIAGE RETURN TO CLOSE JMS CRLF JMP READ5 CRL2, TAD CR /SINGLE FEED+CR JMS I IN9 JMS CRL JMS I IN9 /TIME FOR CAR TO RET. ISZ CAD /LINE FEED - EXAMINE NEXT. UPAR3, TAD CAD JMS I IN8 /PNUM TAD SLA JMS I IN9 /TYPN JMP EX2 OPIN, JMS CRL /CLOSE FIRST TAD I CAD DCA CAD UPAR2, JMS CRLF JMP UPAR3 SCHAR=. /TYPE A CAR. RET, AND LINE FEED CRLF, 0 TAD CR /215 JMS I IN9 /TYPN TAD LF /212 JMS I IN9 /TYPN CMA /MINUS 1 DCA SHUT /SIGNALS CLOSED REGISTER JMP I CRLF /PAGE ONE PARAMETERS. WORD, 0 CAD, 0 /CURRENT ADDRESS IN8, PNUM IN9, TYPN RETN, BURP TOTE, 0 SHUT, 7777 PUNC, TAD WORD DCA I IN7 *START+200 SP177, 177 /FIRST IN THIS PAGE JMP I IN13 /READ5 /PUNCH DATA. PUN1, CLA HLT TAD FROG JMS I IN11 /PUNN (PUNCH ORIGIN) 100 PUN2, TAD I FROG JMS I IN11 /PUNN (PUNCH CONTENTS) 0 TAD FROG CIA TAD I IN10 /WORD SNA CLA JMP I IN13 /READ5 ISZ FROG JMP PUN2 JMP I IN13 /PUNCH END. PUN3, CLA HLT TAD CKSA JMS I IN11 /PUNN (PUNCH CHECKSUM) 0 /PUNCH LEADER PUN4, TAD SP200 JMS TYPN JMP .-2 /TO USE THE HIGH SPEED PUNCH, /TYPE "XX;YYP" THEN TOGGLE IN /THE PATCHES INDICATED BELOW. /THEN LOAD ADDRESS AND START: /PUN4 - FOR LEADER-TRAILER. /PUN1+1 - FOR DATA /PUN3+1 - FOR CHECKSUM AND LEADER. /RESTORE PATCHES BEFORE RESTARTING. /RESTART AT START TO CLEAR CHECKSUM. /RESTART AT START+1 TO RETAIN CHECKSUM. /TYPE A CHARACTER TYPN, 0 TLS /(6026) - FOR H.S. TSF /(6021) - FOR H.S. JMP .-1 SP7600, 7600 /CLA-GROUP2 JMP I TYPN /FEATURES ADDED: INTERUPT TURNED OFF UPON HITTING BREAKPOINT; CAN USE /HI SPEED PUNCH; BREAKPOINT CAN BE PUT ON A JMS FOLLOWED BY ARGUMENTS; /ODT-8 IS RELOCATABLE; IF BREAKPOINT PUT ON INSTR REFERENCING AUTO-INDEX /IN DIRECTLY, IT WILL BE INCREMENTED ON CONTINUE; LINK & AC EXAMINE ON /COMMAND; / OPENS LATEST OPENED REGISTER; CLARITY; AUTO LEADER/TRAILER; /OPEN MEM. REF.(^); AND OPEN INDIRECT(BACK ARROW); ALSO XXX C. /SET A BREAK POINT. TRAP, TAD I IN10 /(WORD)-ADDRESS OF TRAP. SNA TAD IN12 /CRLF DCA TRAD /TRAP SET (REAL OR DUMMY) JMP SPEXIT /GO TO SECOND PAGE EXIT. /THE TRAP IS SPRUNG BURP, DCA SAC /SAVE C(AC) RAL DCA LINK /SAVE C(L) TAD KEEP DCA I TRAD /REPLACE INSTRUCTION WHICH WAS TRAPPED CLL IAC TAD TRAD DCA GAME /SAVE CONTINUATION ADDRESS (BREAK ADDR+1) TAD KEEP /PICK UP TRAPPED INSTRUCTION TAD SP2000 /OVERFLOW TO LINK IF IOT OR OPERATE INSTR. AND SP200 /AC=0 IF PAGE 0 REFERENCE SZA SNL CLA /WAS TRAPPED INSTR IOT,OPER,PAGE 0 REFERENCE? JMP CURPAG /NO JMS TSTJMS /YES, SEE IF IT WAS A JMS SNA CLA JMP CURPAG+2 /YES, TREAT AS IF NON-PAGE-ZERO REFERENCE TAD KEEP /NO, PUT ACTUAL INSTR IN "THE" FOR EXECUTION JMP LIP4 CURPAG, TAD TRAD AND SP7600 DCA FROG /SAVE INITIAL ADDR OF PAGE REFERENCED BY TRAPPED INSTR. TAD KEEP SP200, 0200 /GET RELATIVE ADDR REFERENCED BY TRAPPED INSTR. TAD FROG /ADD ON TOP OF PAGE DCA FROG /SAVE ABSOLUTE ADDRESS OF MEMORY REFERENCE TAD KEEP AND SP400 LPAR, SNA CLA /IS IT AN INDIRECT REFERENCE? JMP LIP /NO TAD I FROG /YES, GET ACTUAL REFERENCE DCA FROG LIP, JMS TSTJMS /SEE IF TRAPPED INSTR IS A JMS SNA JMS I IN21 /YES, IT IS A JMS (JMSER) TAD IFROG /NO (JMS I FROG) JMS ADDS BACK 4000 LIP4, DCA THE /STORE FOR EXECUTION ISZ I IN11 /TEST N-CONTINUE JMP XCONT /IGNORE THIS BREAK IOF /STOP INTERRUPTS TAD TRAD JMS I IN14 /PNUM (PRINT TRAP ADDRESS) TAD LPAR /LEFT PAREN (8 BItS=250=ASCII LFT PAREN) JMS TYPN TAD SAC JMS I IN14 /PNUM (PRINT C(AC)) SPEXIT, JMS I IN12 /CRLF JMP I IN13 /READ5 TSTJMS, 0 TAD KEEP /GET TRAPPED INSTR. AND SP7000 /ISOLATE OP CODE TAD SP4000 /OVERFLOW TO LINK WITH AC=0 IF JMS (4000) JMP I TSTJMS /START AT A LOCATION JUMP, TAD I IN10 /(WORD) DCA GAME TAD JPIGAM /(JMP I GAME) DCA THE DCA SAC /CLEAR THE AC. SKP CONTIN, TAD I IN10 /(WORD) CMA DCA I IN11 /(PUNN)-EMP COUNTER. JMS I IN12 /(CRLF) TCF /CLEAR THE FLAG TAD I TRAD /SAVE TRAP CONTENTS. DCA KEEP XCONT, TAD BAIT DCA I TRAD /INSERT TRAP INSTRUCTION TAD LINK CLL RAR /RESTORE LINK TAD SAC /AND C(AC) THE, HLT /ODT EXECUTION OF TRAPPED INST. AFTER PROCEED JPIGAM, JMP I GAME ISZ GAME /IMITATE SKIP CONDITION JMP JPIGAM /VARIABLES MAY BE SCANNED VIA "A". SAC, 0 /AC LINK, 0 /LINK BIT TRAD, CRLF /ADDRESS OF THE TRAP. KEEP, 0 /CONTENT OF THE TRAP GAME, 0 /ADDRESS FOR CONTINUE FROG, START-1 /MEMORY REFERENCE. CKSA, 0 /THE CHECKSUM TO DATE. /INTER COM REGS. IN10, WORD IN11, TEM2 IN12, SCHAR IN13, READ5 IN14, PNUM IN21, JMSER /PROCESS JMS. /CONSTANTS SP2000, 2000 SP400, 400 SP7000, 7000 SP4000, 4000 BAIT, JMP I ZPAT IFROG, JMS I FROG /ODT-8, THIRD CORE PAGE *START+400 /PUNCH ROUTINE TP177, 177 /FIRST IN THIS PAGE. PUNN, 0 DCA PNUM TAD PNUM RTR RTR RTR AND TP77 TAD I PUNN JMS CKSM TAD PNUM AND TP77 JMS CKSM JMP I PUNN /MEMORY REFERENCE OPENER. UPAR1, JMS I IN30 /(CRL)-"CLOSER CALL". TAD I IN27 /CAD DCA TEM TAD I TEM TP200, AND TP177 DCA TEM2 /SAVE LOWER BITS. TAD I TEM AND TP200 SNA CLA /TEST FOR PAGE ZERO REF JMP .+3 /YES TAD I IN27 AND TP7600 TAD TEM2 DCA I IN27 /CAD JMP I .+1 UPAR2 /CHECK SUM ACCUMULATOR CKSM, 0 DCA CKT TAD I IN20 /CKSA TAD CKT DCA I IN20 /CKSA TAD CKT JMS I IN19 /TYPN JMP I CKSM /ROUTINE TO PRINT OCTAL CONTENTS OF AC PNUM, 0 DCA PUNN TAD TM4 DCA CKSM TAD PUNN RAL PN2, RAL RTL DCA PUNN TAD PUNN AND TP007 /ONLY 7-DIGITS GUARANTEED. TAD TP60 /IN CASE BIT 8 CAME THROUGH. JMS I IN19 /TYPN TAD PUNN ISZ CKSM JMP PN2 TP7600, 7600 /CLA-GROUP2 TAD TP240 JMS I IN19 JMP I PNUM /SEARCH VARIABLES MASK, 7777 LIMLO, 0001 LIMHI, START CKT=. JMSER, 0 TAD I IN22 /(FROG)=ABS MEM REF. (FINAL) DCA PNUM TAD I IN23 /GAME DCA I PNUM /SIMULATED JMS ISZ I IN22 /FROG TAD TP1000 JMP I JMSER /WORD SEARCH ROUTINE WSER, JMS I IN16 /CRLF TAD LIMLO DCA JMSER WSER1, TAD I CKT AND MASK CIA TAD I IN17 /WORD SZA CLA JMP WSER2 TAD CKT JMS PNUM TAD TP257 /(SLASH) JMS I IN19 /TYPN TAD I CKT JMS PNUM JMS I IN16 /CRLF WSER2, TAD CKT ISZ CKT D01527, CIA TAD LIMHI TP240, SZA CLA JMP WSER1 JMS I IN16 /CRLF JMP I IN25 /READ+5 /ROUTINES TO TYPE MASK AND LIMITS ACX, TAD CON3AC MASKER, TAD CON3MS DCA I IN17 /WORD JMP I IN26 /EXAM TEM2=PUNN TEM=CKSM IN27, CAD IN30, CRL /INTER COM REG IN16, CRLF IN17, WORD IN19, TYPN IN20, CKSA IN22, FROG IN23, GAME TP007=. IN25, READ+5 /CONSTANTS TM4, -4 TP1000, 1000 TP77, 77 TP60, 60 CON3AC, SAC-MASK TP257, 257 CON3MS, MASK TABL2=. PUN1 PUN3 PUN4 CRL2 CRL1 IN26, EXAM TRAP JUMP PUNC CONTIN WSER UPAR1 MASKER ACX OPIN /OPEN INDIRECTLY. $