/ddt: original pdp-1 debugger (20 august 1966) Page 1 1 /ddt: original pdp-1 debugger (20 august 1966) 2 3 /This document is best viewed with a fixed-width font, 10-space tabs. 4 / 5 /Issues: 6 / * The eix symbol is undefined. Since, on the other hand, the ex symbol is 7 / defined but not used anywhere, I have assumed that ex was actually meant to 8 / be eix. 9 / * Symbol/macro swp is not defined anywhere. Since it is used in a macro 10 / named 'swap', which is called only once, appearently to save the accumulator 11 / prior to calling jsp, I guessed that it was meant to swap the A and R 12 / registers, which is usually done with two 'rcl 9s'. 13 / * What does 'char l+char ma' mean? I suspect that there was a character in 14 / the source code that the printer was unable to print. 15 / * There are some conflicts caused by the fact that the original macro1 16 / assembler used 4-char-long symbols, whereas macro1.c uses 7-char-long 17 / symbols. 18 19 20 /Page 01: 21 22 /ddt 20 august 1966 23 24 006000 6000/ 25 000000 xx=0 26 000113 nsy=113 27 005551 low=.-nsy-nsy-1 28 005776 tst=.-2 29 005777 est=.-1 30 005551 low/ char l?+char ma ac 05551 216100 05552 007724 31 05553 217100 char l?+char mi io 05554 007725 32 05555 214400 char l?+char mm msk 05556 007726 33 05557 710000 char li 10000 05560 010000 34 35 05561 614564 flex and 020000 05562 020000 36 05563 714651 flex ior 040000 05564 040000 37 05565 274651 flex xor 060000 05566 060000 38 05567 276323 flex xct 100000 05570 100000 39 05571 416664 flex jfd 120000 05572 120000 40 05573 636143 flex cal 160000 05574 160000 41 05575 416461 flex jda 170000 05576 170000 42 05577 436163 flex lac 200000 05600 200000 43 05601 437146 flex lio 220000 05602 220000 /ddt: original pdp-1 debugger (20 august 1966) Page 2 44 05603 646163 flex dac 240000 05604 240000 45 05605 646147 flex dap 260000 05606 260000 46 05607 647147 flex dip 300000 05610 300000 47 05611 647146 flex dio 320000 05612 320000 48 05613 643144 flex dzm 340000 05614 340000 49 05615 616464 flex add 400000 05616 400000 50 05617 222462 flex sub 420000 05620 420000 51 05621 716427 flex idx 440000 05622 440000 52 05623 712247 flex isp 460000 05624 460000 53 05625 226164 flex sad 500000 05626 500000 54 05627 226122 flex sas 520000 05630 520000 55 05631 442422 flex mus 540000 05632 540000 56 05633 647122 flex dis 560000 05634 560000 57 05635 414447 flex jmp 600000 05636 600000 58 05637 412247 flex jsp 620000 05640 620000 59 60 05641 224247 flex skp 640000 05642 640000 61 05643 223122 flex szs 640000 05644 640000 62 05645 223166 flex szf 640000 05646 640000 63 64 05647 223161 flex sza 640100 05650 640100 65 05651 224761 flex spa 640200 05652 640200 66 05653 224461 flex sma 640400 05654 640400 67 05655 223146 flex szo 641000 05656 641000 68 05657 224771 flex spi 642000 05660 642000 69 70 71 /page 02: 72 73 05661 516143 flex ral 661000 05662 661000 74 05663 517143 flex ril 662000 05664 662000 75 05665 516343 flex rcl 663000 /ddt: original pdp-1 debugger (20 august 1966) Page 3 05666 663000 76 05667 226143 flex sal 665000 05670 665000 77 05671 227143 flex sil 666000 05672 666000 78 05673 226343 flex scl 667000 05674 667000 79 05675 516151 flex rar 671000 05676 671000 80 05677 517151 flex rir 672000 05700 672000 81 05701 516351 flex rcr 673000 05702 673000 82 05703 226151 flex sar 675000 05704 675000 83 05705 227151 flex sir 676000 05706 676000 84 05707 226351 flex scr 677000 05710 677000 85 86 05711 436126 flex law 700000 05712 700000 87 05713 714623 flex iot 720000 05714 720000 88 05715 233071 flex tyi 720004 05716 720004 89 05717 515162 flex rrb 720030 05720 720030 90 05721 634222 flex cks 720033 05722 720033 91 05723 712244 flex Ism 720054 05724 720054 92 05725 652244 flex esm 720055 05726 720055 93 94 05727 636222 flex cbs 720056 05730 720056 95 05731 656544 flex eem 724074 05732 724074 96 05733 436544 flex lem 720074 05734 720074 97 05735 514761 flex rpa 730001 05736 730001 98 05737 514762 flex rpb 730002 05740 730002 99 05741 233046 flex tyo 730003 05742 730003 100 05743 474761 flex ppa 730005 05744 730005 101 05745 474762 flex ppb 730006 05746 730006 102 05747 644730 flex dpy 730007 05750 730007 103 104 05751 634366 flex clf 760000 05752 760000 105 05753 454647 flex nop 760000 /ddt: original pdp-1 debugger (20 august 1966) Page 4 05754 760000 106 05755 464751 flex opr 760000 05756 760000 107 108 05757 436147 flex lap 760500 05760 760500 109 05761 222366 flex stf 760010 05762 760010 110 05763 634361 flex cla 760200 05764 760200 111 112 05765 707123 flex hIt 760400 05766 760400 113 05767 634461 flex cma 761000 05770 761000 114 05771 634363 flex clc 761200 05772 761200 115 05773 436123 flex lat 762200 05774 762200 116 05775 634371 flex cli 764000 05776 764000 117 05777 005551 est, low 118 119 120 /page 03: 121 122 760300 lap=cla 100 123 730000 ioh=iot i 124 651600 clo=651600 125 650500 spq=650500 126 640500 szm=640500 127 128 define 129 senseswitch a 130 szs 10^a 131 termin 132 133 define 134 init a,b // was initialize a,b 135 law b 136 dap a 137 termin 138 139 define 140 index a,b,c 141 idx a 142 sas b 143 jmp c 144 termin 145 146 define 147 listen 148 cla+cli+clf 1-opr-opr 149 szf i 1 150 jmp .-1 151 tyi 152 termin /ddt: original pdp-1 debugger (20 august 1966) Page 5 153 154 define 155 swap 156 / swp / See note at top of file 157 rcl 9s 158 rcl 9s 159 termin 160 161 define 162 load a,b 163 lio (b 164 dio a 165 termin 166 167 define 168 setup a,b 169 law i b 170 dac a 171 termin 172 173 define 174 count a,b 175 isp a 176 jmp b 177 termin 178 179 180 /page 04: 181 182 define 183 move a,b 184 lio a 185 dio b 186 termin 187 188 define 189 clear a,b 190 init . 2, a 191 dzm 192 index .-1, (dzm b 1, .-1 193 termin 194 195 196 /page 05: 197 198 define 199 disp lc,uc // was dispatch lc,uc 200 [1000^uc]+lc-[1001^lse] 201 termin 202 203 06000 227403 lis, lio bki 204 06001 327347 bk1, dio ch /or break addr 205 06002 626746 jsp sbc 206 207 06003 627124 lse, jsp lcc 208 06004 761200 lss, clc 209 06005 247345 dac chi /ddt: original pdp-1 debugger (20 august 1966) Page 6 210 211 06006 347343 lsp, dzm wrd 212 06007 206103 lac cun 213 06010 306071 ssn, dip sgn 214 06011 347467 dzm dnm 215 06012 347363 dzm syl 216 06013 347344 n2, dzm sym 217 06014 761200 clc 218 06015 247346 dac let 219 220 06016 226164 lsr, lio sk1 221 06017 326471 dio wea 222 init bax, lwt 06020 706563 06021 266267 223 listen 06022 764201 06023 650001 06024 606023 06025 720004 224 06026 327347 ps1, dio ch 225 06027 707331 law dtb 226 06030 407347 add ch 227 06031 266032 dap .+1 228 06032 206032 lac . 229 06033 000000 cas, xx /rar 9s or cli 230 06034 027731 and (777 231 06035 406240 cad, add tls 232 06036 266076 dap lsx 233 06037 426221 sub ar1 /last no-eval routine 234 06040 650500 spq 235 06041 616076 jmp i lsx 236 06042 707363 law syl 237 06043 227346 lio let 238 06044 652000 spi i 239 06045 626052 jsp evl 240 06046 606067 jmp ev4 241 06047 207732 lac (flex U 242 06050 177065 jda tys 243 06051 606006 jmp lsp 244 245 06052 266066 evl, dap evx 246 06053 205777 evc, lac est 247 06054 266055 dap ev2 248 249 250 /page 06: 251 252 06055 206055 ev2, lac . 253 06056 507344 sad sym 254 06057 606065 jmp ev3 /match found 255 06060 446055 idx ev2 256 index ev2, evc, ev2 06061 446055 06062 526053 06063 606055 257 06064 446066 idx evx /ddt: original pdp-1 debugger (20 august 1966) Page 7 258 06065 446055 ev3, idx ev2 259 06066 606066 evx, jmp . 260 261 06067 266071 ev4, dap sgn 262 06070 207343 lac wrd 263 06071 000000 sgn, xx /operator and syllable addr. 264 06072 247343 dac wrd 265 06073 227345 lio chi 266 06074 642000 spi 267 06075 206563 lac lwt 268 06076 606076 lsx, jmp . 269 270 06077 672037 n, rir 5s /number routine 271 06100 207363 lac syl 272 06101 661007 ral 3s 273 06102 652000 spi i 274 06103 047347 cun, ior ch 275 06104 247363 dac syl 276 06105 207467 lac dnm 277 06106 661003 ral 2s 278 06107 407467 add dnm 279 06110 661001 ral 1s 280 06111 652000 spi i 281 06112 407347 add ch 282 06113 247467 dac dnm 283 06114 606116 jmp l1 284 285 06115 347346 l, dzm let /letter routine 286 06116 207344 l1, lac sym 287 06117 661077 ral 6s 288 06120 407347 add ch 289 06121 247344 dac sym 290 06122 347345 dzm chi 291 06123 606016 jmp lsr 292 293 294 /page 07: 295 296 06124 226636 uc, lio rc /upper case 297 06125 606127 jmp .+2 298 06126 226026 lc, lio ps1 /lower case 299 06127 326033 dio cas 300 06130 606016 jmp lsr 301 302 06131 207467 sqo, lac dnm /' means take decimal number 303 06132 606147 jmp n1+1 304 305 06133 207344 quo, lac sym /" means take as flexo codes 306 06134 606146 jmp n1 307 308 06135 707724 a, law ac /A means accumulator 309 06136 606146 jmp n1 310 311 06137 707725 ir, law io /I means i-o 312 06140 606146 jmp n1 313 314 06141 707726 m, law msk /M means mask register /ddt: original pdp-1 debugger (20 august 1966) Page 8 315 06142 606146 jmp n1 316 317 06143 206563 q, lac lwt /Q means last quantity 318 06144 606146 jmp n1 319 320 06145 705777 f, law est /F means lowest register 321 06146 347345 n1, dzm chi 322 06147 247363 dac syl 323 06150 606013 jmp n2 324 325 06151 207733 err, lac (743521 /? 326 06152 177065 er1, jda tys 327 06153 707234 law 7234 /lc, blk 328 06154 177065 jda tys 329 06155 606016 jmp lsr 330 331 06156 707777 daq, law 7777 /\supset defines sym as address of Q 332 06157 026563 and lwt 333 06160 606162 jmp .+2 334 335 06161 207350 com, lac loc /comma defines sym as loc 336 06162 247427 dac df1 337 338 339 /page 08: 340 341 06163 207346 def, lac let /define symbol 342 06164 640100 sk1, sza 343 06165 606151 jmp err 344 06166 706214 law pn2 345 346 06167 266205 de, dap dex 347 06170 227427 lio df1 348 06171 626052 jsp evl 349 06172 606204 jmp df2 350 06173 710001 law i 1 351 06174 405777 add est 352 06175 265777 dap est 353 06176 335777 dio i est 354 06177 427330 sub one 355 06200 265777 dap est 356 06201 227344 lio sym 357 06202 335777 dio i est 358 06203 606205 jmp dex 359 360 06204 336055 df2, dio i ev2 361 06205 606205 dex, jmp . 362 06206 606214 del, jmp pn2 /end of no-eval routines, delete 363 364 06207 247427 val, dac df1 /open paren, sets up value for define 365 06210 606004 jmp lss 366 367 06211 246563 eql, dac lwt /print octal integer 368 06212 627127 jsp lct 369 06213 177260 jda opt 370 06214 627127 pn2, jsp lct 371 06215 606004 jmp lss /ddt: original pdp-1 debugger (20 august 1966) Page 9 372 373 06216 246563 arw, dac lwt /print as instruction 374 06217 627127 jsp lct 375 06220 176756 jda pi 376 06221 606206 ar1, jmp del 377 378 06222 707323 oct, law odv /octal-decimal switch setup 379 06223 606225 jmp .+2 380 06224 707315 dec, law ddv 381 06225 267262 dap ops 382 06226 606003 jmp lse 383 384 06227 706756 smb, law pi 385 06230 606232 jmp .+2 386 06231 707260 cns, law opt /symbolic-constant switch setup 387 06232 266566 dap pns 388 06233 606003 jmp lse 389 390 06234 707005 oad, law pvl 391 06235 606237 jmp .+2 392 06236 707010 rad, law pev /octal-relative switch setup 393 06237 267061 dap pa1 394 06240 606003 tls, jmp lse 395 396 397 /page 09: 398 399 06241 206035 pls, lac cad 400 06242 606010 jmp ssn 401 402 06243 207002 min, lac csu 403 06244 606010 jmp ssn 404 405 06245 606007 uni, jmp ssn-1 406 407 06246 206470 isc, lac can 408 06247 606010 jmp ssn 409 410 06250 207350 dot, lac loc 411 06251 606146 jmp n1 412 413 06252 652000 tab, spi i /tab 414 06253 247347 tas, dac ch 415 416 06254 246563 ta3, dac lwt 417 06255 627124 jsp lcc 418 06256 177054 jda pad 419 06257 707221 law 7221 420 06260 177065 jda tys 421 422 06261 347350 ta5, dzm loc 423 06262 267350 dap loc 424 06263 266253 ta6, dap tas 425 06264 627127 jsp lct 426 06265 216253 lac i tas 427 06266 246563 dac lwt 428 06267 176267 bax, jda . /pi, opt or lwt /ddt: original pdp-1 debugger (20 august 1966) Page 10 429 06270 606214 jmp pn2 430 431 06271 652000 bs, spi i /backspace 432 06272 256253 bs1, dac i tas /used as dac i 433 06273 447350 idx loc 434 06274 606254 jmp ta3 435 436 06275 652000 fs, spi i /arrow up (forward space) 437 06276 256253 dac i tas 438 06277 710001 law i 1 439 06300 407350 add loc 440 06301 267350 dap loc 441 06302 606254 jmp ta3 442 443 06303 707260 bac, law opt /open bracket (bar-constant) 444 06304 606306 jmp .+2 445 06305 706756 bas, law pi /closed bracket (bar-symbolic) 446 06306 266267 dap bax 447 06307 206563 bar, lac lwt 448 06310 642000 spi 449 06311 606263 jmp ta6 450 06312 207343 lac wrd 451 06313 606261 jmp ta5 452 453 06314 652000 uc8, spi i /> means make corr. and open register 454 06315 246254 dac 1 tas 455 06316 606263 jmp ta6 456 457 458 /page 10: 459 460 06317 652000 cr, spi i 461 06320 256253 dac i tas 462 06321 246563 dac lwt 463 06322 700072 law 72 464 06323 177065 jda tys 465 init tas, ch 06324 707347 06325 266253 466 06326 606004 jmp lss 467 468 06327 642000 bk, spi /break 469 init bk1, ch 06330 707347 06331 266001 470 06332 606003 jmp lse 471 472 06333 000000 tr, 0 473 06334 266430 dap prc 474 06335 266431 dap prd 475 06336 446431 idx prd 476 06337 206333 lac tr 477 06340 247724 dac ac 478 06341 467347 isp ch 479 06342 606426 jmp pr2 480 06343 626354 jsp tr1 481 /ddt: original pdp-1 debugger (20 august 1966) Page 11 482 06344 266373 tr2, dap pra 483 06345 710001 law i 1 484 06346 406430 add prc 485 06347 177054 jda pad //print trap addr 486 06350 700055 law 55 487 06351 177065 jda tys 488 06352 707724 law ac 489 06353 606261 jmp ta5 490 491 06354 247723 tr1, dac ovf 492 06355 327725 dio io 493 06356 626746 jsp sbc 494 06357 347411 dzm fl1 495 06360 640001 szf 1 496 06361 247411 dac fl1 497 move bki, i bk1 06362 227403 06363 336001 498 06364 206001 lac bk1 499 06365 617723 jmp i ovf 500 501 06366 000000 xe1, xx 502 06367 760000 nop 503 06370 247724 dac ac 504 06371 626354 jsp tr1 505 06372 606004 jmp lss 506 507 508 /page 11: 509 510 06373 226373 pra, lio . 511 06374 326427 dio bix 512 06375 227345 lio chi 513 06376 642000 spi 514 06377 700000 pr1, law 0 515 06400 761000 cma 516 06401 247347 dac ch 517 06402 627124 jsp lcc 518 06403 720033 cks 519 06404 662003 ril 2s 520 06405 652000 spi i 521 06406 606403 jmp .-3 522 06407 207404 lac sbi 523 06410 720056 iot 56 524 06411 640100 sza 525 06412 720055 esm 526 06413 207411 pr3, lac fl1 527 06414 650100 sza i 528 06415 760001 clf 1 529 06416 651600 clo 530 06417 207723 lac ovf 531 06420 407723 add ovf 532 06421 226002 lio 1 bk1 /get instr. at new brk addr. 533 06422 327403 dio bki 534 06423 227734 lio (jda tr 535 06424 336001 dio i bk1 536 06425 227725 lio io /ddt: original pdp-1 debugger (20 august 1966) Page 12 537 538 06426 207724 pr2, lac ac 539 06427 000000 bix, xx 540 06430 606430 prc, jmp . 541 06431 606431 prd, jmp . 542 543 06432 246366 xec, dac xe1 /execute 544 06433 706366 law xe1 545 546 06434 642000 bgn, spi /begin 547 06435 606151 jmp err 548 06436 266427 dap bix 549 06437 206430 lac prc 550 06440 306427 dip bix 551 06441 606377 jmp pr1 552 553 06442 706462 eas, law ea1 /effective address search 554 06443 606447 jmp ws 555 556 06444 207051 nws, lac sk2 /not word search 557 06445 246471 dac wea 558 559 06446 706467 wds, law ws1 /word search 560 06447 642000 ws, spi 561 06450 606151 jmp err 562 06451 266461 dap ws2 563 06452 627124 jsp lcc 564 06453 346737 dzm t2 565 06454 207727 lac ll 566 06455 247365 dac t 567 568 569 /page 12: 570 571 06456 347344 ws4, dzm sym 572 06457 266737 dap t2 573 06460 216737 lac i t2 574 06461 606461 ws2, jmp . /ea1 or ws1 575 576 06462 027324 ea1, and ci 577 06463 640100 sza 578 06464 606516 jmp ea2 579 06465 707777 law 7777 580 06466 036737 and i t2 581 582 06467 067343 ws1, xor wrd 583 06470 027726 can, and msk /used as and 584 06471 000000 wea, xx /sza or sza i 585 06472 606504 jmp ws3 586 587 06473 707124 ws6, law lcc 588 589 06474 266503 pac, dap pax 590 06475 207365 lac t 591 06476 177054 jda pad 592 06477 702136 law 2136 593 06500 177065 jda tys /ddt: original pdp-1 debugger (20 august 1966) Page 13 594 06501 217365 lac i t 595 06502 176563 jda lwt 596 06503 626503 pax, jsp . 597 598 06504 447365 ws3, idx t /index and skip over pgm 599 06505 427730 sub ul 600 06506 640500 szm 601 06507 606003 jmp lse 602 06510 407730 add ul 603 06511 425777 sub est 604 06512 640400 sma 605 06513 606003 jmp lse 606 06514 207365 lac t 607 06515 606456 jmp ws4 608 609 06516 447344 ea2, idx sym 610 06517 507473 sad c77 611 06520 606504 jmp ws3 612 06521 216737 lac i t2 613 06522 606457 jmp ws4+1 614 615 06523 246563 pbx, dac lwt 616 06524 627127 jsp lct /print as bcd 617 06525 177065 jda tys 618 06526 606214 jmp pn2 619 620 621 /page 13: 622 623 06527 627124 vfy, jsp lcc 624 06530 207170 lac rb2 625 06531 606533 jmp .+2 626 06532 206272 rd, lac bs1 627 06533 306547 dip vf4 628 06534 627134 jsp soi 629 630 06535 207365 vf1, lac t 631 06536 427727 sub ll 632 06537 427735 sub (dio 633 06540 640200 spa 634 06541 606556 jmp vf2 635 06542 407727 add ll 636 06543 427730 sub ul 637 06544 640500 szm 638 06545 606556 jmp vf2 639 06546 217366 lac i la 640 06547 007365 vf4, t /dac i or sad i 641 06550 606556 jmp vf2 642 643 06551 626474 vf3, jsp pac 644 06552 627127 jsp lct 645 06553 217366 lac i la 646 06554 176563 jda lwt 647 06555 627124 jsp lcc 648 649 06556 447365 vf2, idx t 650 06557 447366 idx la /ddt: original pdp-1 debugger (20 august 1966) Page 14 651 06560 507154 sad rb1 652 06561 627137 jsp rbk 653 06562 606535 jmp vf1 654 655 06563 000000 lwt, 0 656 06564 266567 dap pnx 657 06565 206563 lac lwt 658 06566 176756 pns, jda pi /pi or opt 659 06567 606567 pnx, jmp . 660 661 06570 705551 kil, law low 662 06571 245777 dac est 663 06572 606003 jmp lse 664 665 666 /page 14: 667 668 06573 627134 tbl, jsp soi /symbol table reader 669 670 06574 217366 tb1, lac i la 671 06575 027736 and (202020 /permute zones 672 06576 661001 ral 1s 673 06577 077366 xor i la 674 06600 067434 xor c4 675 06601 764000 cli 676 06602 663077 rcl 6s 677 06603 640100 sza 678 06604 606602 jmp .-2 679 06605 447366 idx la 680 06606 507154 sad rb1 681 06607 606623 jmp tbn 682 06610 217366 lac i la 683 06611 247427 dac df1 684 06612 327344 dio sym 685 06613 711700 law i 1700 686 06614 027344 and sym /delete symbols of form 1s, 2s,...9s 687 06615 527737 sas (char rs 688 06616 626167 jsp de 689 06617 447366 idx la 690 06620 507154 sad rb1 691 06621 627137 jsp rbk 692 06622 606574 jmp tb1 693 694 06623 627127 tbn, jsp lct 695 06624 205777 lac est 696 06625 177260 jda opt 697 698 06626 627137 tbm, jsp rbk /skips rest of tape 699 06627 606626 jmp tbm 700 701 define 702 feed n 703 law i n 704 jda fee 705 termin 706 707 06630 627124 ttl, jsp lcc /title punch and punch format setup /ddt: original pdp-1 debugger (20 august 1966) Page 15 708 listen 06631 764201 06632 650001 06633 606632 06634 720004 709 06635 673777 rcr 9s 710 06636 671777 rc, rar 9s 711 06637 507473 sad c77 712 06640 607242 jmp pir 713 06641 507740 sad (36 714 06642 607571 jmp pri 715 06643 507741 sad (75 716 06644 607251 jmp pi2 717 06645 661001 ral 1s 718 06646 407742 add (ftp 719 06647 177174 jda tt1 720 06650 447174 idx tt1 721 06651 706631 law ttl+1 722 06652 607175 jmp tt1+1 723 724 725 /page 15: 726 727 06653 642000 jbk, spi /jump block 728 06654 606151 jmp err 729 06655 407620 add cj 730 06656 246563 dac lwt 731 feed 40 06657 710040 06660 176737 732 06661 226563 lio lwt 733 06662 627521 jsp pbw 734 feed 240 06663 710240 06664 176737 735 06665 606003 jmp lse 736 737 06666 267370 pul, dap fa /punch lower limit setup 738 06667 606004 jmp lss 739 740 06670 652000 pwd, spi i /punch word 741 06671 256253 dac i tas 742 06672 246563 dac lwt 743 06673 206253 lac tas 744 06674 267370 dap fa 745 746 06675 267366 pun, dap la /punch any length block 747 748 06676 207370 pb5, lac fa 749 06677 047473 ior c77 750 06700 247365 dac t 751 06701 427366 sub la 752 06702 640400 sma 753 06703 606711 jmp pb6 /next hundred too high 754 06704 447365 idx t 755 756 06705 627222 pb4, jsp pbb /pbb or pur /ddt: original pdp-1 debugger (20 august 1966) Page 16 757 06706 207365 lac t 758 06707 267370 dap fa 759 06710 606676 jmp pb5 760 761 06711 207366 pb6, lac la 762 06712 247365 dac t 763 06713 447365 idx t 764 06714 106705 xct pb4 765 06715 606214 jmp pn2 766 767 768 /page 16: 769 770 06716 707777 zro, law 7777 771 06717 642000 spi /zero registers below ddt 772 06720 247343 dac wrd 773 06721 027370 and fa 774 06722 642000 spi 775 06723 760200 cla 776 06724 247365 dac t 777 778 06725 425777 zr1, sub est 779 06726 640400 sma 780 06727 606003 jmp lse 781 06730 405777 add est 782 06731 427343 sub wrd 783 06732 640500 szm 784 06733 606003 jmp lse 785 06734 357365 dzm i t 786 06735 447365 idx t 787 06736 606725 jmp zr1 788 789 06737 000000 fee,t2, 0 /feed subroutine and temp storage. 790 06740 266745 dap fex 791 06741 764000 cli 792 06742 730005 ppa 793 06743 466737 isp fee 794 06744 606742 jmp .-2 795 06745 606745 fex, jmp . 796 797 06746 266755 sbc, dap sbx /sequence break status check 798 06747 247404 dac sbi 799 06750 720033 cks 800 06751 662077 ril 6s 801 06752 652000 spi i 802 06753 347404 dzm sbi 803 06754 720054 lsm 804 06755 606755 sbx, jmp . 805 806 807 /page 17: 808 809 06756 000000 pi, xx /print instruction 810 06757 267007 dap px 811 06760 627010 jsp pev 812 06761 427324 sub ci 813 06762 640200 spa /ddt: original pdp-1 debugger (20 august 1966) Page 17 814 06763 606772 jmp ppk 815 06764 246756 dac pi 816 06765 700072 law 72 817 06766 177065 jda tys 818 06767 627455 jsp tou 819 06770 700071 law 71 820 06771 177065 jda tys 821 822 06772 627455 ppk, jsp tou 823 06773 700072 law 72 824 06774 177065 jda tys 825 06775 027743 and (760000 826 06776 506377 sad pr1 /law 827 06777 607515 jmp plo 828 07000 671001 rar 1s 829 07001 640100 sza 830 07002 427735 csu, sub (320000 /used as sub 831 07003 640200 spa 832 07004 607515 jmp plo 833 834 07005 206756 pvl, lac pi 835 07006 177260 jda opt 836 07007 607007 px, jmp . /exit 837 838 07010 267053 pev, dap pex /symbol lookup subr 839 07011 205777 lac est 840 07012 267015 dap ea 841 07013 760001 clf 1 842 843 07014 447015 eal, idx ea 844 07015 207015 ea, lac . 845 07016 066756 xor pi 846 07017 640200 spa 847 07020 607033 jmp eix 848 07021 206756 lac pi 849 07022 437015 sub i ea 850 07023 640200 spa 851 07024 607033 jmp eix 852 07025 650001 szf i 1 853 07026 607555 jmp psw 854 07027 217015 lac i ea 855 07030 437347 sub i ch 856 07031 640500 szm 857 07032 607555 jmp psw 858 859 860 /page 18: 861 862 eix, / See note at top of file 863 ex, index ea, evc, eal 07033 447015 07034 526053 07035 607014 864 07036 650001 szf i 1 865 07037 607005 jmp pvl 866 07040 206756 lac pi 867 07041 437347 sub i ch /ddt: original pdp-1 debugger (20 august 1966) Page 18 868 07042 246756 dac pi 869 07043 710001 law i 1 870 07044 407347 add ch 871 07045 267347 dap ch 872 07046 217347 lac i ch 873 07047 177065 jda tys 874 07050 206756 lac pi 875 07051 650100 sk2, sza i 876 07052 607007 jmp px 877 07053 607053 pex, jmp . 878 879 07054 000000 pad, 0 /print address 880 07055 267007 dap px 881 07056 707777 law 7777 882 07057 027054 and pad 883 07060 246756 dac pi 884 07061 627010 pa1, jsp pev /pev or pvl 885 07062 207744 lac (flex + 886 07063 177065 jda tys 887 07064 607005 jmp pvl 888 889 07065 000000 tys, 0 /type symbol, etc. 890 07066 267112 dap tyx 891 setup opt,3 07067 710003 07070 247260 892 893 07071 207065 tyl, lac tys 894 07072 661077 ral 6s 895 07073 247065 dac tys 896 07074 027473 and c77 897 07075 650100 sza i 898 07076 607106 jmp tyc 899 07077 507745 sad (72 900 07100 607113 jmp dns 901 07101 507746 sad (74 902 07102 607121 jmp ups 903 swap 07103 663777 07104 663777 904 07105 627455 tyb, jsp tou 905 tyc, count opt, tyl 07106 467260 07107 607071 906 07110 206563 lac lwt 907 07111 764000 cli 908 07112 607112 tyx, jmp . 909 910 911 /page 19: 912 913 07113 206026 dns, lac ps1 /redundant case shift filter 914 07114 227745 lio (72 915 07115 506033 dn1, sad cas 916 07116 607106 jmp tyc 917 07117 246033 dac cas 918 07120 607105 jmp tyb /ddt: original pdp-1 debugger (20 august 1966) Page 19 919 920 07121 206636 ups, lac rc 921 07122 227746 lio (74 922 07123 607115 jmp dn1 923 924 07124 267132 lcc, dap lcx 925 07125 707277 law 7277 926 07126 607131 jmp lc1 927 928 07127 267132 lct, dap lcx 929 07130 707236 law 7236 930 07131 177065 lc1, jda tys 931 07132 607132 lcx, jmp . 932 933 07133 730002 so1, rpb /skip over input routine 934 07134 730002 soi, rpb /enter here 935 07135 652000 spi i 936 07136 607133 jmp so1 937 938 07137 267171 rbk, dap rbx /read a block into buffer 939 init rb1, buf 07140 707623 07141 267154 940 07142 267366 dap la 941 07143 347345 dzm chi 942 07144 730002 rpb 943 07145 326737 dio t2 944 07146 327365 dio t 945 07147 642000 spi 946 07150 606003 jmp lse /start block read 947 07151 730002 rpb 948 07152 327347 dio ch 949 950 07153 730002 rb0, rpb 951 07154 327154 rb1, dio . 952 07155 217154 lac i rb1 953 07156 407345 add chi 954 07157 247345 dac chi 955 07160 447154 idx rb1 956 index t2, ch, rb0 07161 446737 07162 527347 07163 607153 957 07164 407345 add chi 958 07165 407365 add t 959 07166 730002 rpb 960 07167 327345 dio chi 961 07170 517167 rb2, sad i .-1 /used as sad i 962 963 07171 607171 rbx, jmp . 964 07172 761600 hlt+clc-opr /checksum error stop 965 07173 607140 jmp rbk+1 966 967 968 /page 20: 969 970 07174 000000 tt1, 0 /title punch subroutine /ddt: original pdp-1 debugger (20 august 1966) Page 20 971 07175 267210 dap tt2 972 07176 217174 lac i tt1 973 07177 764000 repeat 3 cli rcl 6s ppa 07200 663077 07201 730005 07202 764000 07203 663077 07204 730005 07205 764000 07206 663077 07207 730005 974 07210 607210 tt2, jmp . 975 976 07211 267241 pur, dap pb2 /punch read-in mode blocks 977 978 07212 227370 pu1, lio fa 979 07213 627521 jsp pbw 980 07214 237370 lio i fa 981 07215 627521 jsp pbw 982 index fa, t, pu1 07216 447370 07217 527365 07220 607212 983 07221 607237 jmp pux 984 985 07222 267241 pbb, dap pb2 /punch binary block format 986 07223 346737 dzm t2 987 07224 227370 lio fa 988 07225 627521 jsp pbw 989 07226 227365 lio t 990 07227 627521 jsp pbw 991 992 07230 237370 pb1, lio i fa 993 07231 627521 jsp pbw 994 index fa, t, pb1 07232 447370 07233 527365 07234 607230 995 07235 226737 lio t2 996 07236 627521 jsp pbw 997 pux, feed 5 07237 710005 07240 176737 998 07241 607241 pb2, jmp . 999 1000 pir, feed 40 07242 710040 07243 176737 1001 move 7754, t 07244 227754 07245 327365 1002 init fa, 7751 07246 707751 07247 267370 1003 07250 627211 jsp pur 1004 07251 227775 pi2, lio 7775 /jmp 7751 1005 07252 627521 jsp pbw /ddt: original pdp-1 debugger (20 august 1966) Page 21 1006 07253 707222 law pbb 1007 07254 266705 pi1, dap pb4 1008 feed 30 07255 710030 07256 176737 1009 07257 606003 jmp lse 1010 1011 1012 /page 21: 1013 1014 /combined octal-decimal print subroutine 1015 1016 07260 000000 opt, 0 1017 07261 267314 dap opx 1018 ops, init op1, odv /odv or ddv 07262 707323 07263 267300 1019 setup op2, 6 07264 710006 07265 247466 1020 07266 760011 stf 1 1021 1022 07267 347467 opa, dzm opd 1023 07270 650001 szf i 1 1024 07271 627455 jsp tou 1025 07272 607276 jmp opc 1026 1027 07273 760001 opb, clf 1 1028 07274 247260 dac opt 1029 07275 447467 idx opd 1030 07276 207260 opc, lac opt 1031 07277 227260 lio opt 1032 07300 427300 op1, sub . 1033 07301 652000 spi i 1034 07302 640400 sma 1035 07303 607273 jmp opb 1036 1037 07304 207467 lac opd 1038 07305 227467 lio opd 1039 07306 650100 sza i 1040 07307 227316 lio ddv+1 1041 07310 447300 idx op1 1042 count op2, opa 07311 467466 07312 607267 1043 07313 627455 jsp tou 1044 07314 607314 opx, jmp . 1045 1046 07315 303240 ddv, decimal 100000 10000 1000 07316 023420 07317 001750 1047 07320 000144 100 10 1 octal 07321 000012 07322 000001 1048 1049 07323 100000 odv, 100000 ci, 10000 1000 07324 010000 /ddt: original pdp-1 debugger (20 august 1966) Page 22 07325 001000 1050 07326 000100 100 10 one, 1 07327 000010 07330 000001 1051 1052 1053 /page 22: 1054 1055 /dispatch table 1056 1057 dtb, disp pls, pls /0 07331 236236 1058 disp n, quo 07332 130074 1059 disp n, sqo 07333 126074 1060 disp n, pbx 07334 520074 1061 disp n, daq 07335 153074 1062 disp n, uni 07336 242074 1063 disp n, isc 07337 243074 1064 disp n, pul 07340 663074 1065 disp n, uc8 07341 311074 1066 disp n, fs 07342 272074 1067 07343 000000 wrd, 0 1068 07344 000000 sym, 0 1069 07345 000000 chi, 0 1070 07346 000000 let, 0 1071 07347 000000 ch, 0 1072 07350 000000 loc, 0 1073 disp n, arw 07351 213074 1074 disp bar, err 07352 146304 1075 disp l, smb 07353 224112 1076 disp l, tbl 07354 570112 1077 disp l, dec 07355 221112 1078 disp l, vfy 07356 524112 1079 disp l, wds 07357 443112 1080 disp l, xec 07360 427112 1081 disp l, rd 07361 527112 1082 disp l, zro 07362 713112 1083 07363 000000 syl, 0 /ddt: original pdp-1 debugger (20 august 1966) Page 23 1084 disp com, eql 07364 206156 1085 07365 000000 t, 0 1086 07366 320000 la, dio 1087 disp tab, tab 07367 247247 1088 07370 320000 fa, dio 1089 1090 1091 /page 23: 1092 1093 disp pwd, err /40 07371 146665 1094 disp l, jbk 07372 650112 1095 disp l, kil 07373 565112 1096 disp l, ttl 07374 625112 1097 disp l, m 07375 136112 1098 disp l, nws 07376 441112 1099 disp l, oad 07377 231112 1100 disp l, pra 07400 370112 1101 disp l, q 07401 140112 1102 disp l, rad 07402 233112 1103 07403 760000 bki, opr 1104 07404 777777 sbi, -0 1105 disp min, pls 07405 236240 1106 disp def, bas 07406 302160 1107 disp err, err 07407 146146 1108 disp val, bac 07410 300204 1109 07411 000000 fl1, 0 1110 disp l, a 07412 132112 1111 disp l, bk 07413 324112 1112 disp l, cns 07414 226112 1113 disp l, pun 07415 672112 1114 disp l, eas 07416 437112 1115 disp l, f 07417 142112 1116 disp l, bgn 07420 431112 1117 disp l, oct /ddt: original pdp-1 debugger (20 august 1966) Page 24 07421 217112 1118 disp l, ir 07422 134112 1119 disp lc, lc 07423 123123 1120 disp dot, del 07424 203245 1121 disp uc, uc 07425 121121 1122 disp bs, bs 07426 266266 1123 07427 000000 df1, 0 1124 disp cr, cr 07430 314314 1125 1126 /title punch table 1127 1128 07431 000000 ftp, 0 0 /space 07432 000000 1129 07433 004277 004277 c4,400000 /1 07434 400000 1130 07435 625151 625151 514600 /2 07436 514600 1131 07437 224145 224145 453200 /3 07440 453200 1132 07441 141211 141211 771000 /4 07442 771000 1133 07443 274545 274545 453100 /5 07444 453100 1134 07445 364545 364545 453000 /6 07446 453000 1135 07447 010171 010171 050300 /7 07450 050300 1136 07451 324545 324545 453200 /8 07452 453200 1137 07453 065151 065151 513600 /9 07454 513600 1138 07455 267465 tou, dap tox dio tot /typeout subroutine 07456 327470 1139 07457 720033 cks ril 2s 07460 662003 1140 07461 652000 spi i jmp .-3 07462 607457 1141 07463 227470 lio tot tyo-i 07464 720003 1142 07465 607465 tox, jmp . op2, 0 07466 000000 1143 07467 000000 opd,dnm, 0 tot, 0 07470 000000 1144 1145 1146 /page 24: 1147 1148 07471 364141 364141 413600 /zero 07472 413600 1149 07473 000077 c77, 000077 000000 // 07474 000000 /ddt: original pdp-1 debugger (20 august 1966) Page 25 1150 07475 224545 224545 453000 /s 07476 453000 1151 07477 010177 010177 010100 /t 07500 010100 1152 07501 374040 374040 403700 /u 07502 403700 1153 07503 073060 073060 300700 /v 07504 300700 1154 07505 376014 376014 602700 /w 07506 602700 1155 07507 412214 412214 224100 /x 07510 224100 1156 07511 010274 010274 020100 /y 07512 020100 1157 07513 615141 615141 454300 /z 07514 454300 1158 07515 627010 plo, jsp pev jmp pa1+1 07516 607062 1159 07517 141414 141414 141400 /= 07520 141400 1160 07521 267532 pbw, dap pby ppb /punch 1 word 07522 730006 1161 07523 663077 rcl 6s ppb 07524 730006 1162 07525 663077 rcl 6s ppb 07526 730006 1163 07527 663077 rcl 6s add t2 07530 406737 1164 07531 246737 dac t2 pby, jmp . 07532 607532 1165 07533 204040 204040 403700 /j 07534 403700 1166 07535 771014 771014 224100 /k 07536 224100 1167 07537 774040 774040 404000 /l 07540 404000 1168 07541 770214 770214 027700 /m 07542 027700 1169 07543 770214 770214 207700 /n 07544 207700 1170 07545 364141 364141 413600 /o 07546 413600 1171 07547 771111 771111 110600 /p 07550 110600 1172 07551 364151 364151 215600 /q 07552 215600 1173 07553 771111 771111 314600 /r 07554 314600 1174 07555 227015 psw, lio ea dio ch 07556 327347 1175 07557 760011 stf 1 jmp eix 07560 607033 1176 07561 101010 101010 101000 /- 07562 101000 1177 07563 000041 000041 221400 /) 07564 221400 1178 07565 101074 101074 101000 /+ /ddt: original pdp-1 debugger (20 august 1966) Page 26 07566 101000 1179 07567 001422 001422 410000 /( 07570 410000 1180 07571 707211 pri, law pur jmp pi1 07572 607254 1181 07573 761111 761111 117600 /a 07574 117600 1182 07575 774545 774545 453200 /b 07576 453200 1183 07577 364141 364141 412200 /c 07600 412200 1184 07601 774141 774141 413600 /d 07602 413600 1185 07603 774545 774545 414100 /e 07604 414100 1186 07605 770505 770505 010100 /f 07606 010100 1187 07607 364151 364151 513000 /g 07610 513000 1188 07611 771010 771010 107700 /h 07612 107700 1189 07613 004177 004177 410000 /i 07614 410000 1190 07615 000001 000001 030000 /close quote 07616 030000 1191 07617 000060 000060 cj,600000 /. 07620 600000 1192 07621 000003 000003 020000 /open quote 07622 020000 1193 1194 007723 buf, buf+100/ 1195 07723 000000 ovf, 0 1196 07724 000000 ac, 0 1197 07725 000000 io, 0 1198 07726 777777 msk, -0 1199 07727 000000 ll, 0 1200 07730 007777 ul, 7777 1201 1202 007731 constants 1203 1204 006000 start lis 07731 000777 07732 240000 07733 743521 07734 176333 07735 320000 07736 202020 07737 000022 07740 000036 07741 000075 07742 007431 07743 760000 07744 540000 07745 000072 07746 000074 No detected errors