; UPDATE TSTBO1.S01 5/29/73 .TITLE TSTBO1 ; ; TEST TASK FOR DEBUG ; ; ; ; EXTERNAL DEFINITIONS FOR TASK RELOCATION REGISTERS, ; CONSTANT REGISTER AND LOG. TTY DEV. NO. ; .DEF $R0,$R1,$R2,$R3,$R4,$C,$TTY ; ; EXTERNAL REFERENCES ; .REF DEBUG ; ; TASK EQUATES ; R0 = %0 R1 = %1 R2 = %2 R3 = %3 R4 = %4 R5 = %5 SP = %6 PC o:~XM bS A B@z@ r~xNn2r    rreP "e E wM2 E `wzM @7I~I I I7 7 7 7 7 7  p0 r0 7R" w *%~h  %wH%He && 2&& &; UPDATE TSTBO2.S01 5/29/73 .TITLE TSTBO2 ; ; TEST TASK FOR DEBUG ; ; ; ; EXTERNAL DEFINITIONS FOR TASK RELOCATION REGISTERS, ; CONSTANT REGISTER AND LOG. TTY DEV. NO. ; .DEF $R0,$R1,$R2,$R3,$R4,$C,$TTY ; ; EXTERNAL REFERENCES ; .REF DEBUG ; ; TASK EQUATES ; R0 = %0 R1 = %1 R2 = %2 R3 = %3 R4 = %4 R5 = %5 SP = %6 PC . X@@@.@H(@W (x8hdhhdhW (d|.!P d22 (W "&XW   d.d      I .VZCZ FB (Bm = %7 ; ; ; EMT NOS. FOR ROS PROGRAM CALLS ; TTYOUT = 11. TTYIN = 12. LPRNTR = 21. NOCKPT = 24. EXIT = 4 ; ; DEVICE CODES ; TTY = 0 LP = 3 .PAGE ; ; ; TASK HEADER ; TSTHDR: .WORD 1 ;THREAD .WORD 40 ;TASK NO. .BYTE 120 ;SYSTEM TASK WITH DEBUG .BYTE 12 ;PRIORITY .WORD TSTBUG-A  &"&P $&w   W ~ eUzp/)w'w;ݷ8ݷ2݀~PP50 =CDwwF4 <3* (*$50F  F UrJ~8 w 7 * w  ##e&t7X܀ EU6&|~t74܀ EU6&fWtEAWt E`v&f# & lWtE NOCKPT ;DISALLOW CHECKPOINTING SCC ;EXERCISE TRACE PRINTOUT BY CHANGING CCC ;COND CODES AND REGS CLR R0 CLR R1 CLR R2 CLR R3 CLR R4 CLR R5 MOV #111111,R0 MOV R0,R1 MOV R0,R2 MOV R0,R3 MOV R0,R4 MOV R0,R5 TST -(SP) TST (SP)+ NOP NOP ~( w 7  w  #$e&t7lۀ EU6&t~7Hۀ EU6&fWtEAWt E`v&f# &r lWtE@`~$Wtڀ E`v x&f& &r WtE@`7$tڀEt7`dڶE~U&f& &r WtE@`7$ڀEt7`ڶEU NOCKPT ;DISALLOW CHECKPOINTING SCC ;EXERCISE TRACE PRINTOUT BY CHANGING CCC ;COND CODES AND REGS CLR R0 CLR R1 CLR R2 CLR R3 CLR R4 CLR R5 MOV #111111,R0 MOV R0,R1 MOV R0,R2 MOV R0,R3 MOV R0,R4 MOV R0,R5 TST -(SP) TST (SP)+ NOP NOP ~(@`$Wtۀ E`v x&f& & WtE@`7$`ۀEt7`P۶@~EU&f& & WtE@`7$ۀEt7`ڶEU[~ v ~ NOP ; ; TYPE MSG TO OPERATOR ; MOVB #TTY,DEVICE ;TTY DEVICE NO. TO LIST MOV #MESG1H,BUFADR ;MSG BUF ADDR TO I/O LIST MOV #MESG1E-MESG1,MESG1H ;NO. CHARS TO BUF HDR MOV #IOLIST,-(SP) ;TTY OUTPUT REQUEST EMT TTYOUT TST IOERR ;ERROR? BNE . ;YES ; ; GET NAME FROM TTY KBD ; MOV #NAMBFH,BUFADR ;GET IMPUT BUF ADDR TO HDR MOV #W~ bb]~~n~p NOP ; ; TYPE MSG TO OPERATOR ; MOVB #TTY,DEVICE ;TTY DEVICE NO. TO LIST MOV #MESG1H,BUFADR ;MSG BUF ADDR TO I/O LIST MOV #MESG1E-MESG1,MESG1H ;NO. CHARS TO BUF HDR MOV #IOLIST,-(SP) ;TTY OUTPUT REQUEST EMT TTYOUT TST IOERR ;ERROR? BNE . ;YES ; ; GET NAME FROM TTY KBD ; MOV #NAMBFH,BUFADR ;GET IMPUT BUF ADDR TO HDR MOV #~^~~n~p50.,NAMBFH ;ACCEPT UP TO 50 CHARS TST020: MOV #IOLIST,-(SP) ;GET NAME FROM TTY EMT TTYIN TST IOERR ;ERROR? BEQ TST030 ;NO CMP IOERR,#28. ;YES, TIMEOUT? BEQ TST020 ;YES, TRY AGAIN BR . ;NO ; ; PRINT NAME ON LP ; TST030: MOVB #LP,DEVICE ;LP LOG. DEV. NO. TO I/O LIST MOV NAMBFH+2,NAMBFH ;GET NO. OF CHARS IN NAME TO PRINT MOV ~}~`~~P50.,NAMBFH ;ACCEPT UP TO 50 CHARS TST020: MOV #IOLIST,-(SP) ;GET NAME FROM TTY EMT TTYIN TST IOERR ;ERROR? BEQ TST030 ;NO CMP IOERR,#28. ;YES, TIMEOUT? BEQ TST020 ;YES, TRY AGAIN BR . ;NO ; ; PRINT NAME ON LP ; TST030: MOVB #LP,DEVICE ;LP LOG. DEV. NO. TO I/O LIST MOV NAMBFH+2,NAMBFH ;GET NO. OF CHARS IN NAME TO PRINT MOV ~}~`~w ,×& u6 7!p* *kg  [*ߐ W  !~PQ *r B f: 61:  #IOLIST,-(SP) ;PRINT NAME EMT LPRNTR ; TST IOERR ; BNE . ; EMT EXIT ;EXIT .PAGE ; ; DATA ; .BOUND IOLIST: .WORD 1 ;THREAD DEVICE: .BYTE 0,2 ;LOG. UNIT, EXIT TYPE .WORD 0 ; .BYTE 0,0 ;ERROR TASK, PRIORITY IOERR: .WORD 0,0 ;ERROR PARAMETER BUFADR: .WORD 0,0,0 ;BU~w ×& w6 7!r mi r ]ߐW  !SY~@ *r < f& 6r1r& 42 77 ߐTշNw  e7~e Lw  6 &&f B  n7 7 ~0 fv #IOLIST,-(SP) ;PRINT NAME EMT LPRNTR ; TST IOERR ; BNE . ; EMT EXIT ;EXIT .PAGE ; ; DATA ; .BOUND IOLIST: .WORD 1 ;THREAD DEVICE: .BYTE 0,2 ;LOG. UNIT, EXIT TYPE .WORD 0 ; .BYTE 0,0 ;ERROR TASK, PRIORITY IOERR: .WORD 0,0 ;ERROR PARAMETER BUFADR: .WORD 0,0,0 ;BU *42 7 7  ߐ@ַ:w h e ~e Hwv 6 &&f F-  l7 ի~@fv  & 6 6U×7 7  7 ~ *!H~!*ߐ$&& 2* J81:18ߐH& w4—!& "~0 R1*7 7 !FFER ADDRESS ; ; MESSAGE TO OPERATOR BUFFER ; MESG1H: .WORD 0 .WORD 0 MESG1: .ASCII /THIS IS TSTBUG O1/ .BYTE 015 .ASCII /TYPE YOUR NAME AND IT WILL BE PRINTED ON THE LP!/ .BYTE 015 MESG1E: .EVEN ; ; OPERATOR NAME INPUT BUFFER AND LP BUFFER ; NAMBFH: .WORD 0,0 NAMBFD: .BLKB 50. ; ; DEBUG INITIAL REGISTER ASSIGNMENTS ; $R0 = A $R1 = TSTBUG $R2 = IOLIST $C = " r  6 6U×7 7 | 7 v p~ !!ߐ0&& H" J$1r&1r$ߐH& w8—# ~ !& J17 7 7 7 7 0 W   f Dww P7 M y!""""~!"!"!!"""!& . 7R) && GR"W"1f(#FFER ADDRESS ; ; MESSAGE TO OPERATOR BUFFER ; MESG1H: .WORD 0 .WORD 0 MESG1: .ASCII /THIS IS TSTBUG O2/ .BYTE 015 .ASCII /TYPE YOUR NAME AND IT WILL BE PRINTED ON THE LP!/ .BYTE 015 MESG1E: .EVEN ; ; OPERATOR NAME INPUT BUFFER AND LP BUFFER ; NAMBFH: .WORD 0,0 NAMBFD: .BLKB 50. ; ; DEBUG INITIAL REGISTER ASSIGNMENTS ; $R0 = A $R1 = TSTBUG $R2 = IOLIST $C = $7 7 0 W   *f /w*w P7 M* y !!!!! ! ~ !!! & . 7^) **&& 2*Z!W"1f )~ !w ccc,!)/\%0$+1$0$z-$0$z- %0$z- %0$z-4%0$z-H%0$z-x\%0$z-cp%0$z-N$$%%%%%%%%0D%$Ѐ$ w N $" %~%  %%5%%$1$w EE %D$ %D% |<&1%wJX&'''''~~H&'''((,(:(L(%W%H@ %w%|D%w%tδ  -m=$  $ %wf$ $ =$=${~&$  w 0 && jw . @ %w% & ,  1$ R% e% %~8'$& @%5 %1$e%1 * ; * ; USAGE: THE LINKAGE TO THE EMT IS AS FOLLOWS * ; CALL * ; MOV #ADD,-CSP) ; ADD OF DEBUG 'BPT' ENTRY PT * ; EMT ROSBPT * ; * ; RETURN 2L)`)h)z)))&W&H@$&w(&dD,&w0&\ʹ  -m=% ~' % &wf% < =%=%&  w && w z @$&w(& & .B ~(( 1& 0& e0& 0&&& (&5$&1&e0&& b*&5&& w1&&0~(&f% R @&&w*&.B.&w2&&̦E5 , N%  w&1& %&!& %&~)1!&U%&3% % % %%%%%%%%,%G H I J w   ',B%. &$&Ϸw  ,h%, jϷdw ,%& 4& z%5% ^w1%$%f$ : %1% $M~'% % $%1 %U$%%^$%}%$%% $ %1%wJ $1% <~((% $ %1%@%w%wZ %w $ %ww |לEE D$ @%w%`B%w%X f$~( 0 D$+ŀ| n *-el.%BE,I  5@ =$C$ 5@@wĕ ~) %^$5 * ; MOV (SP)+,TASKNO ; TASK # OF CALLER. 0 IF ERROR * ; * ; THE LINKAGE TO BPT TRAP HANDLER IS VIA A JSR DURING IPL.* ; * ; JSR PC,BPTIPL * ; ALL OTHER LINKAGE IS VIA A 'BPT' INSTRUCTION. * ; 6&^%&}&%&& % &1&w %1& & % &1&@&&~)w*&Tw$"&w%"&ww D֜EE D% @&&w*&B.&w2& f%  D%-ŀwW~* z *-el.&BE,I  5@ =%C% 5@@wĕ &^%&l~*2    ށ & &ĕ\&&Ē1&  1&ĕ\&&&f% " E5 ,w7w$5 %D%$Ѐ$v,% w N $"   (%%%5%%$1$s*0w $  $w`$He *T$$ %$ $ x% %P %w ,,%w EE %D$ ',"&%D% |<&1%wJX&'''''$H&'''((,(:(L(%W%H@,f& %w%|D%w%tδ  -m=$,&  $ %wfF%2    ށ % %ĕ\%%Ē1%  1%ĕ\%%%f$ D V~)$=$ %f$ ( ĕ=$%  /w F/ W<..5.6A.p&" ~*! 0 C `0  5@.A8.& & 0 N & P~*&% "% ( 4% %a  %f `D` %% %YD$ 1%$H * ; METHOD: THE EMT INSURES THE CALL IS LEGAL AND, IF SO, SAVES * ; THE PASSED, TASK VIRTUAL ADDRESS. THE TASK NUMBER IS * ; RETURNED. IF THE CALL IS ILLEGAL THE RETURNED TASK * ; NUMBER IS ZERO. * ; THE IPL ENTRY SETS UP THE BPT TRAP. THEREAFTER, ANY * ; BPT TRAPS WILL FIRST COME TO IT. IF THEY ARE FROM * ; A TASK, CONTRO GOES TO THEE~* %=% &f% ĕ=%&  /w H/ Ww   f5eU@  [*   & * G &( 8L'4e Q$ BBB"   U@ U e  "U%Gef. U U Bb 0 * B.&0 M &0 & I$.&2&3 1"~,&1&&D%A5@ =%f%"& &%f%Ý& A%7&w0&@$&w(&@q~P-&&w*&^\7 Z 5@/w/ 5/|5/x5 /U/=%=%/pw Bte2&<~- @e0&e2& :J   &3&&&&&& E $&$&&&&&(&(&*&*&0&0&2&2&~@.,&,&.&.& &3&3& }%f% 3&J~*(1%@ %w%75%%4   %=$f$@$ J@%w%7%%3 1%#~p+1%%D$A5@ =$f$ % %$f$ÝB% A$72%w0$@ %w%@%P~+w%7  5@.w8. 5.|5.x5 .U.=$=$.pw` Bte% ~`, @e%e% :J   $3$$$$%% E  % %%%%%K%2    ށ % %ĕ\%%Ē1%  1%ĕ\%%%f$ D V~)$=$ %f$ ( ĕ=$%  /w F/ W<..5.6A.p&" ~*! 0 C `0  5@.A8.& & 0 N & P~*&% "% ( 4% %a  %f `D` %% %YD$ 1%$L TASK'S DEBUG. OTHERWISE * ; CONTROL GOES TO ROSODT. * ; TASK REQUESTING DEBUG WHICH DO NOT HAVE IT (BIT 6 OF * ; ACESS CODE) WILL GENERATE A 'BAD ENTRY' IN ROSODT. * ; ROSODT REQUESTS WHEN ODT (OR OTHER ROS BPT HANDLER) IS * ; NOT PRESENT WILL CAUSE AN ERROR MESSAGE AND THEN HALT * ; THE SYSTEM. * ; M & & -(% fE =%!&7~.V@&&w*&&^%&f&( "& w    & D ĥ+ ĥ-ĥ  ~0/ D0 Wq a   vw  w \& & J w @~/  y &r  U0 fffff~ 0fffF "eN%%%%%%%!~,%%% $3$3% }$f$ 3%%% -z$ E =$ %7m~P-@%w%^$%f&z % w z   & D ĥ+ ĥ-ĥ   ~- D0 Wq a   vw " w & & w| @@)~@.  y & 45O~*(1%@ %w%75%%4   %=$f$@$ J@%w%7%%3 1%#~p+1%%D$A5@ =$f$ % %$f$ÝB% A$72%w0$@ %w%@%P~+w%7  5@.w8. 5.|5.x5 .U.=$=$.pw` Bte% ~`, @e%e% :J   $3$$$$%% E  % %%%%%P * ; PROGRAMMER: 53 * ; DATE: 10 MAY 1973 * ; CATALOGUE NUMBER: * ; REVISION: * ; * ;*********************************************************************** .DEF ROSBPT,BPTQE f f $*~0f7f7f  \e = F2 1 1) E~1RROR XXXXX XXXXXX XXXXXX XXXXXX XXXXXX 1 1'1.151w 8æ w "zxÅf : ~1h 7^l 8÷2w  7 |(Bf w 07 7  81f& '~2C V  R U0 ffffff~.ffF "e**E f f $*f~0/77  e z 0//) ERROR~~/ XXXXX XXXXXX XXXXXX XXXXXX XXXXXX /////w &Ħ w ąf  p~ 0h 7^ ķS%%%%%%%!~,%%% $3$3% }$f$ 3%%% -z$ E =$ %7m~P-@%w%^$%f&z % w z   & D ĥ+ ĥ-ĥ   ~- D0 Wq a   vw " w & & w| @@)~@.  y & 45TIPL,BPTENT ; .REF $ACESS,ACTIVE,DBGENT,$CTASK,ODTILP,ROSODT,ROSEND ..IIF NZ SKT11C .REF PPASV5, .PAGE ; ; ; EQUATES DEBUG = 32.*$KT11C+24. DBGACS = 100 ; TASK ACESS CODE FOR DEBUG PRESENT CUSER = 140000 ; PSR CURRENT MODE = USER PUSER = 030000 ; PSR PREVIOUS MODE = USER TBIT = 20 ; PSR "T" BIT ; TPB = 177566 ; ADD. OF TTY BUFFER REG. UAf 80    0 E ~x2  &f&M'd w 2 Օ+  d 0B` e0  w %Օ~2- ҋ 0& ` UUU T̷N̷H,.0X̷R̷L̘&n~h3~ b\*@6L 333DVw  7 |( =w /7 7 /f& C V~0   Af 2#/ ^   0 E ~1&f&M 'd w ,1 Օ+  d 0B` e0  w %Օ- ҋ~1 0&  UUU ͷͷ,.0ͷͷ͘&Ÿ~2 ~xW U0 ffffff~.ffF "e**E f f $*f~0/77  e z 0//) ERROR~~/ XXXXX XXXXXX XXXXXX XXXXXX XXXXXX /////w &Ħ w ąf  p~ 0h 7^ ķXTPS = 177564 ; ADD. OF TTY STATUS REG. ; ; EMT HANDLER ; ROSBPT: MOV R1,-(SP) ; SAVE R1 .IF NS $KT11C MOV $KPAR5,-(SP) ; IF HAVE KT11C, SAVE KPAR 5 .ENDC ; CMP 2+2*$KT11C(SP),#TSK.PC ; CALLED BY A TASK? BNE ROSB00 ; NO BITB #DBGACS,$ACESS ; DEBUG IN THIS TASK? BEQ ROSB00 ; NO .IF Z $KT11C ; MOV ACTIVE,R1 Y~3@*~X4jko~4}~H5ZŒ*@6€ 4262b2q~x2@*~2jkoz~h3[w  7 |( =w /7 7 /f& C V~0   Af 2#/ ^   0 E ~1&f&M 'd w ,1 Օ+  d 0B` e0  w %Օ- ҋ~1 0&  UUU ͷͷ,.0ͷͷ͘&Ÿ~2 ~x\ ; GET ADDRESS OF TASK HEADER .IFF ; MOV ACTIVE,-(SP) ; JSR PC,PPASV5 ; MOV (SP)+,R1 ; .ENDC ; MOV 4+2*$KT11C(SP),DEBUG(R1); SET ADD. OF ENTRY IN HEADER MOV 4+2*$KT11C(SP),DBGENT ; SET ADD. IN SLOT TO SAVE MOV $CTASK,4+2*$KT11C(SP) ; SET TASK # UP FOR RETURN ROSA00: .IF NZ $KT11C ; MOV (SP)+,$KPAR5 ; RESTORE KPAR 5 IF KT]~5~86J46P~6D=d6&@&&  f&fɟ |1D7!ro /Ŋi {~(7Bd a B]3Z DwRE /L F^~3n~X4~42(5;~H5d85&@&& zxf&frʟ x1D7!_Œ*@6€ 4262b2q~x2@*~2jkoz~h3`11C IN USE .ENDC ; MOV (SP)+,R1 ; RESTORE R1 RTS PC ; RETURN TO CALLER ROSB00: CLR 4+2*$KT11C(SP) ; SET ERROR CODE BR ROSA00 ; GO RETURN .PAGE .CSECT .BPTPL ; THIS CODE IS PART OD IPL. ; ; BPT IPL ENTRY ; BPTIPL: MOV #ODTIPL,R0 ; GET ADDRESS OF ODT IPL ENTRY BEQ BPTI10 ; ODT NOT IN SYSTEM JSR PC,(R0) ; GO TO ROSODTaWB1 4 @ 3xȟ33 `f 0~7   -IWH  3536 D=   wtwxww3$f Z~8p3DwƼ0333 K*2 6+e  B6   e 1 lt3 <)~8@ -ww%6Ee 6 @  Հ E ``eJ4  3 3 =6= ~96&  vt3EPbvk .Ŋe B` ~5] BY42V DwNE /H BW>1 4 @ N2ɟ\2\2 `f  t~86  -G  P25]2P5 ; f Z wtwxwwL2$f pR2Dw>0~6T24V20X2 K*2 4+e  B5   e 1 lt`2 <@ -ww~(74Ee4 @  Հ E `c~3n~X4~42(5;~H5d85&@&& zxf&frʟ x1D7!d TO SETUP AT FIRST BPTI10: MOV #BPTENT,@#14 ; SETUP"BPT" TRANSFER VECTOR AT MOV #340,@#16 ; LEVEL 7. CLR DBGENT ; CLEAR ADD. OF TASK'S DEBUG 'BPT' ENTRY RTS PC ; DONE WITH SET UP. .CSECT ; BACK TO UNAMED CSECT .PAGE ; ; ; BPT HANDLER ; BPTENT: .IF NZ $KT11C ; BIT #CUSER,2(SP) ; BPT IN A TASK (USER MODE)? BEQ BPTA00 ; NO e6=66UAP3C6n Ɵ}36 3 w߉    ~9PJ 56*$& 6wzwŀ~9 Eş7 [@!t4e 41   +5%.~p: z2 lm l m 44 e  $&r ހe&f ބ ~:wfWtf`e2  ^2 _2 = 5= 5& 4 _~7vtZ2EP"5=$55UAPZ2CP5v "ȟ}Z25 ]2 w߉    ~8ȼ¼ 5R5& wwŀ En~87 [@!t4e 41   +5% z2 l~9m l m 44 egvk .Ŋe B` ~5] BY42V DwNE /H BW>1 4 @ N2ɟ\2\2 `f  t~86  -G  P25]2P5 ; f Z wtwxwwL2$f pR2Dw>0~6T24V20X2 K*2 4+e  B5   e 1 lt`2 <@ -ww~(74Ee4 @  Հ E `h .IFF ; CMP (SP),#ROSEND ; BPT IN AREA ABOVE ROS (ID. A TASK)? BLOS BPTA00 ; NO .IFTF ; NEED THIS ALWAYS TST DBGENT ; DEBUG READY FOR USE IN THIS TASK? BEQ BPTA00 ; NO .IFT ; ONLY IF HAVE KT11C MOV 2(SP),-(SP) ; GET PSR OF BPT ON TOP OF STACK SO CAN ; MOVE TO USER STACK MOV R0,(PCi5? @w E6w`3 C6 A3D3w3w356wZ@~`;swWf &  @3D3C `` K $  33B ~; t.W ffff  @ 366 3  3w\ܟ56 wPw@@BL~P<Ep Bm3 $ b@ u3wTww XVff HBw ?@ 5265j  $& P߀e&f d߄ w fWt5M~9? @w TER5w]2 CP5 AR2DT2wV2wX255wV@qwW~9f & @L2DN2C `` K $  42\2B  W~p:fff  @ P2P5N5 ]2  P2wܟ5R5 wTwD@BEp Bm`2 ~:$ b@ k`e2  ^2 _2 = 5= 5& 4 _~7vtZ2EP"5=$55UAPZ2CP5v "ȟ}Z25 ]2 w߉    ~8ȼ¼ 5R5& wwŀ En~87 [@!t4e 41   +5% z2 l~9m l m 44 el)+ ; SAVE R0 TEMP: .WORD 0 ; TEMPORARY STORAGE MFPI SP ; MOVE PS & PC FROM KERNAL MOV (SP)+,R0 ; STACK TO USER STACK MTPI -(R0) ; PUT PSR ON TO USER STACK MTPI -(R0) ; AND THE RETURN ADDRESS MOV R0,-(SP) ; AND, FINALLY, RESTORE USER MTPI SP ; STACK POINTER BIS #CUSER!PUSER,(SP) ; SET PRESENT & PREVIOUS MODES TO USER BIC m6~<3 6B3 E 6w B62r2r6 r6  Rt6t66w: T3 ~@=w  1eEMA~=w "  K D7!F /BEW<q B5 2 - Dw~0> A!1 f xۄL H7B -I  (G FE7vnu\2wXww Թҹff 0Ĺw ?@ 5255&5^2 5BZ2 E~`; 5w B652r2r5 r&5  bt5t&55w> T]2 w@B@ R5b~;]2AR2DT2wV2wX2_2 5J  1EMw ~P< K D7!F .BEW<q B5 2 - Dw< A!1 fo  $& P߀e&f d߄ w fWt5M~9? @w TER5w]2 CP5 AR2DT2wV2wX255wV@qwW~9f & @L2DN2C `` K $  42\2B  W~p:fff  @ P2P5N5 ]2  P2wܟ5R5 wTwD@BEp Bm`2 ~:$ b@ p #TBIT,(SP) ; GET RID OF ANY LOSE T BITS. MOV DBGENT,-(SP) ; GET ADDRESS OF DEBUG 'BPT' ENTRY TO RTI ; RTI TO. - AWAY TO DEBUG .IFF ; HERE IF NO MEMORY MANAGMENT. JMP @DBGENT ; INTO DEBUG - ON TASK'S STACK .ENDC ; ; BPTA00: MOV #ROSODT,-(SP) ; SETUP ADDRESS OF ROS ODT ENTRY FOR BPT BEQ BPTB00 ; NO ODT. JMP (SP)+ ; OFF TO Oq ځDwPwF ~> CPCܮ=77 7C7 wW ڵԵw f ~ ?µw N& ww ؞TLJ HI 52-z:56  ewX-[~?Nw-$ ك vtE0PEP Q Wf & ~@==K B ¿ *1 Wr ~<L 7B -G6  (G FE7 pہDw̷w·  CQ~@=PC2<77 7C7 jwW VPw ~>8w f& ~= fww ٞTLJ HI 52-:56  ewX-w-~0> ڃ vtE0PEPv lQ bWfsu\2wXww Թҹff 0Ĺw ?@ 5255&5^2 5BZ2 E~`; 5w B652r2r5 r&5  bt5t&55w> T]2 w@B@ R5b~;]2AR2DT2wV2wX2_2 5J  1EMw ~P< K D7!F .BEW<q B5 2 - Dw< A!1 ftDT ; BPTB00: MOV R0,(SP) ; NO ODT - SAVE R0 MOV #BPTMES,R0 ; GET ADDRESS OF ERROR MESSAGE BPTB10: MOVB (R0)+,@#TPB ; PUT OUT A CHARACTER BEQ BPTB30 ; BPTB20: TSTB @#TPS ;WAIT 'TIL DONE BPL BPTB20 ; BR BPTB10 ; NEXT BPTB30: TSTB @#TPS ; WAIT TILL BLANK DONE BPL BPTB30 ; MOV (SP)+,R0 ; RESTORE R0 MOV (SP),@#DSPREG uf f 8ww r5jdw~@ 058D>567 w= w614@@~A?~xAd|4|4!AC"F*F2FAA@~Av & <<K B~> B > .41 Wf v 8ww 5w 058/~ ?57 w4< w61j?~?d 3~@ 3!A BDDDR@w ~<L 7B -G6  (G FE7 pہDw̷w·  CQ~@=PC2<77 7C7 jwW VPw ~>8w f& ~= fww ٞTLJ HI 52-:56  ewX-w-~0> ڃ vtE0PEPv lQ bWf ; PUT ADDRESS IN LIGHTS (ON/45) BPTB40: HALT ; WHAT ELSE IS THERE TO DO? BR BPTB40 ; MAYBE SOMEDAY INTO PSTRAP? ; BPTMES: .ASCII <15><12><12> ; .ASCII /BPT ERROR/ ; .ASCII <15><12> ; .END ; yw . w &~hB w w f 2ׅ1 F %?%;  5 AE /* -I% ~B$س ^w w x& L$ vw f 2ցwtp  p X~XCA@ xA$&r ր &L 8wLwjwb |7@ C71~CA zR@@~@w , w $ w w ~Af ׅ1 F %?%;  5 @E .* -G%س L~xA0^w w & T# vw f ցwtp  | Հ@@ x@`~A$& ր &L HwLw{ & <<K B~> B > .41 Wf v 8ww 5w 058/~ ?57 w4< w61j?~?d 3~@ 3!A BDDDR@|.r;@W!@t^0:@.rt!@rt^@K"@LC @(.!hLrh `(:h.f-@"K"(;.& 86  "W!LC `&" L 7 : LW!L.L5 F  & U}    @ }@A` A@ o72`@ @@7 JDtA ~HD   Z @fD\ z  hD $ |A D1ŀA&& w" @7 7 S~D& z% 7 w>wH 7 7 ( E77 A  Axz `~8Er ŜE `Z-\RHr@e < b-^: , A@ 1 wj 8~fw^ t7@ ^B7@@    ~hB @ }@@` ?t? o72`t? X?j?7 Bt@@   |Z ~B8B\ r ~ ` ( @ T1ŀ@@&& vw" T?7 7 & 0~XC 7 w>wH 7 7 C77 @@  `@xz `r ŜE r~C`Z-R@@~@w , w $ w w ~Af ׅ1 F %?%;  5 @E .* -G%س L~xA0^w w & T# vw f ցwtp  | Հ@@ x@`~A$& ր &L HwLw^ W!.rEVvߋt W!rt^&ߋt BPT ERROR E~E A   mE   w$3 7wF~(FFxFp@ &fFzw\A p z B L . @ |A <F& D~F L 2Dw œE@Al3 Հŀ 1w   1 Dw 1i~GG  * EWq Ca 3 6 e  Ŝ%6Eq e 6 7 D \RHr@e < b-^: , ?t? 1 wj 8PD 6~HD@@   mvD   w$3 7w0ENExVEp@~D Dzw\@@ | r ~B H . @ @ H E& < H *w œE~8E@@l3 Հŀ 1w   1 w 1E  * fw^ t7@ ^B7@@    ~hB @ }@@` ?t? o72`t? X?j?7 Bt@@   |Z ~B8B\ r ~ ` ( @ T1ŀ@@&& vw" T?7 7 & 0~XC 7 w>wH 7 7 C77 @@  `@xz `r ŜE r~C`Z-; UPDATE ROSODT.S02 5/11/73 ; UPDATE ROSODT.S01 5/10/73 ; UPDATE ROSODT 5/8/73 .TITLE ROSODT ; 14 AUG 1972 . = .+144+26 ;RESERVES SPACE FOR STACK ; ODT-11R. --V004A ; COPYRIGHT 1969,1970,1971,1972 DIGITAL EQUIPMENT CORPORATION ; ; EXTERNAL DEFINITIONS ; .DEF ODTIPL,ROSODT,OLDODT R0 = %0 ; REGISTER R1 = %1 ; NAMING R2 = %2 ; CONVENTIONS R3 = %3 R4 = %4 R5 = %5 SP = %6 PC = %7 ST = r 8p eA.C 0 ~G/8 4Ks Հs @AlBETZ 5~Hf&F Ua  >EI0J7pJ 7pI}@WtEE ~~Hhf`&E\EatEEt`EU֋ tE Et`:~H EU &&77 0C~eE~EWq Ca 3 4 e  Ŝ4Eq e4 7 L r @p e`@6C 8 .@ <K s e~(FՀs @@lBEwNwT 5f&F U~Fa  ;pE\HH7H 7Gz@WtEE ~,hf`>~G\EatEEt`EU֋ tE Et`\RHr@e < b-^: , ?t? 1 wj 8PD 6~HD@@   mvD   w$3 7w0ENExVEp@~D Dzw\@@ | r ~B H . @ @ H E& < H *w œE~8E@@l3 Հŀ 1w   1 w 1E  * 177776  ;STATUS REGISTER O.BKP = 16  ;NUMBER OF BREAKPOINTS-1 MULT. BY 2 O.RLR = 16  ;NO. OF RELOC. REGISTERS-1, TIMES 2 O.TVEC = 14  ;TRT VECTOR LOCATION O.RELC = 20  ;NUMBER OF RELOC.REGISTERS(TIMES 2) O.STM = 340  ;PRIORITY MASK - STATUS REGISTER O.TBT = 20  ;T-BIT MASK - STATUS REGISTER TRT = 000003  ;TRT INSTRUCTION O.NEXT = '. ;CHAR TO BE USED FOR OPENING NEXT LOCATION O.RDB = 177562 ;R DATA BUFFER O.RCSR = 177560 ;R C/SR O.TDB E&U0   Ѧ ^~pI!#!^"p!D&&=2.h16,L*Rgh\]0]XNYZZZH\\\BdBnBxB26]]`Id37.C]]]~IJ6!0033~`J   L;@HYK3i N|Asq~JpA%leT4R8x6^ Q_Q EU ~G&&77 0C~eE&U0  . BҦ |^ " f!x ,%%D<61-|~H/h5XTQ\R@@@1`5G1`6A~H!0033  a~HE~EWq Ca 3 4 e  Ŝ4Eq e4 7 L r @p e`@6C 8 .@ <K s e~(FՀs @@lBEwNwT 5f&F U~Fa  ;pE\HH7H 7Gz@WtEE ~,hf`>~G\EatEEt`EU֋ tE Et`= 177566 ;T DATA BUFFER O.TCSR = 177564 ;T C/SR .CSECT .ODT ; ; IPL ENTRY FOR ODT ; ODTIPL: TSTB ODINIT ;HAS ODT BEEN PREVIOUSLY INITIALIZED? BEQ 2$ INCB IPLFLG ;SET IPL INITIALIZATION FLAG JMP OLDODT ;NO, GO DO IT! 2$: RTS PC ;YES, RETURN .CSECT .PAGE ; INITIALIZE ODT ; USE O.ODT FOR A NORMAL ENTRY ; USE O.ODT+2 TO RESTART ODT - WIPINp ;w 7\J4s3L 3&@4&`;Am'N.C'A's@'L @' @(` A2r4!;3~PK494:<}_MQ/Mp&TWMWZW0Xs3YYq3Y!TAYe/hfp2f42;}Gp ` s'Ph~KPVPKKprt CR 1 ERROR CR 1 SPUR INT f&f  ~@L6 @ *B L   1  f K ̞K ~L_~pIVIIII A~IVJJ>JJ S~`J~J EU ~G&&77 0C~eE&U0  . BҦ |^ " f!x ,%%D<61-|~H/h5XTQ\R@@@1`5G1`6A~H!0033  a~HG OUT ALL BREAKPOINTS ; USE O.ODT+4 TO RE-ENTER (I.E. - FAKE A BREAKPOINT) OLDODT: BR O.STRT ;NORMAL ENTRY BR O.RST  ;RESTART O.ENTR: MOV ST,O.UST ;RE-ENTER -- SAVE STATUS MOV O.TVEC+2,ST ;SET UP LOCAL STATUS MOV PC,-(SP) ;FAKE THE PC MOV (SP)+,O.UPC MOVB #-1,O.P  ;DISALLOW PROCEED CLRB O.S JMP O.BK1 O.STRT: MOV ST,O.UST ;SAVE STATUS MOV (SP),O.UPC ;SAVE PC ;RUN AT CURRENT STATUS JSR 5,O.SVTT ;SAVE TTY STATUS JSR %I<δ1 1 K.     o~0M& L$wҳ KsKK K8nK KKL KKOfd w <  KL r~MM K5@p5Mp Mw.5 55@53KKO&2 f E@pM3 K K K @3 K~ NMvtnp@&ff& < c~PKINIIJBJJJJ:K~KxK8N ~@L6   /wRBKw we  3~L~pIVIIII A~IVJJ>JJ S~`J~J 0,O.SVR  ;SAVE REGISTERS (MAINLY SP) MOV #O.UR0,SP ;SET UP STACK MOV #O.ID,R4 ;TYPE ID MOV #O.IDND,R3 JSR 5,O.TYPE MOVB #1,ODINIT ;SET ODT INITIALIZED FLAG BR O.RST1 O.RST: JSR 0,O.SVR  ;SAVE REGISTERS JSR 5,O.REM  ;REMOVE ALL BREAKPOINTS JSR 5,O.CLRR ; CLEAR RELOCATION REGISTERS MOVB O.PRI,R4 ;GET ODT PRIORITY RORB R4  ;SHIFT RORB R4  ; INTO RORB R4  ; POSITION MOVB R4,ST  ;STORE IN STATUS O.RST1: CLRB O.S  ;D&& W~N &  EAp3 KK  M ʁ@_ 3KKsK lM0 KM K,K~OL!  K-! '!  KLlKKK_AelK KKK KM8nK K B *~O   CLU3KL TKO; Lfd  CEAL5L Kk~PKKwwfK 5 5f օK  pw  m  fT/EK5K& ^˄T:~0MCK4HU  e0e  tH043e&ʋ   *  (~M1* e8f \ D w*BK2K+K ~U| z dB wʕ<~ N& \ʄwB wbew(/  / AK E Ec~PKINIIJBJJJJ:K~KxK8N ~@L6   /wRBKw we  3~LISABLE SINGLE INSTRUCTION FOR NOW MOVB #-1,O.P  ;DISALLOW PROCEED MOV #O.STM,O.TVEC+2 ;STATUS WORD TO TRT VECTOR+2 MOV #ROSODT,O.TVEC ;PC TO TRT VECTOR ; THIS NEXT INSTRUCTION RAISES THE "Z" FLAG BECAUSE ; ITS PURPOSE IN LIFE IS TO BEHAVE DIFFERENTLY ON THE /20 ; AND THE /45 SO WE CAN CHANGE THE RTI WHICH ALSO ; BEHAVES DIFFERENTLY ON THE /20 AND /45 BUT DOESNT RAISE ; THE Z FLAG. CONFUSED? WELL SO ARE WE. CMP PC,#.+4  ;CHECK WHETHER ON /45 OR /20 BEQ O.20 1 3 K3 Ks K K@_~xP3 K KKfd O KALK"Pp &K  և VPK K]~P3Kw$3 K Kw 7 GHI~hQNWTQ~Q L/P 1 PARITY ERROR L/P 1 NOT READYW~Ne  Cm E f ~EŠpKʋwEWE f f /* r~O*3PTe33e e   w. e wA `w& ~OL1* 1 /^7  K  KKBK/   Eeʋ  ~P wE 4B@ >  0 */΁wK  pw  m  fT/EK5K& ^˄T:~0MCK4HU  e0e  tH043e&ʋ   *  (~M1* e8f \ D w*BK2K+K ~U| z dB wʕ<~ N& \ʄwB wbew(/  / AK E E ;EQ MEANS 20, NE MEANS 45 MOV #RTT,O.RTIT ;RESET TO RTT IF ON 45 O.20: JMP O.RALL ;CLEAR BRK PT TABLES ; ;O.CTLC ; ^C PROCESSING. SIMULATE A TTY INTERRUPT ; ; O.CTLC: MOV O.USP,SP ;RESTORE CURRENT STACK CLR -(SP)  ;DUMMY STATUS JSR PC,O.CTL1 ;PUSH RETURN ADDR OF INTERR ON STACK BR .  ;MONITOR WILL RETURN TO THIS WAIT O.CTL1: MOV 62,-(SP) ;PUSH MONITOR STATUS MOV 60,-(SP) ;PUSH ADDR OF MONITOR ^C ROUTINE MOVB #100,O.RCSR ;ENABLE KYBD INTERRUPT RTI ; L/P 1 ABORTED6QQ&f&f  7~XR0     h :& ǦQ ƞQ %I:ȴ~R0 Q$  e& w>0  QsQ3 (Q3 *Q0Qs,Q3 .Q~HS m   w0w j  QM0QQ ŀQ  m  M0Q2Q eQ#~S  2Q(Q BK ( ~xP& Ȅ w%e 4  Ƿ U 22 wL 4 K3 0 K $~P  rfע׬* x RCe w P  *wD 5-1~hQ *T#& & F/ <ʕ* 8p:p8 :C/ <~Q BK  Ee  A ͕AW~Ne  Cm E f ~EŠpKʋwEWE f f /* r~O*3PTe33e e   w. e wA `w& ~OL1* 1 /^7  K  KKBK/   Eeʋ  ~P wE 4B@ >  0 */΁w O.ALF REXP;NA TYPE N CHARACTERS STARTING AT REXP; ; THEN-- ; ACCEPT A STRING OF ASCII TEXT. STORE IT IN ; SUCCESIVE BYTES STARTING AT THE INDICATED ; LOCATION. TEXT TERMINATED BY COUNT, N. ; OR CR OR LF. ODT PRINTS THE ADDR OF ; THE NEXT AVAILABLE LOCATION IN CORE ; O.ALF: TST R3  ;WAS REXP TYPED? BEQ O.ELF1  ;BR IF NOT TSTB O.SMFD ;WAS ; TYPED? BEQ O.ELF1 ;BR IF NOT, ERROR TST R2  ;IF N NOT TYPED, ASSUME 1 BNE O.ELF4 INC R4 O.ELF4: MOV R4,-(SP) ;SAVE & l (Q& f&(Q ۃ0Q  Qe(Q :ŀL~8T  wVsQ0Q3 (Q3 *Qms,Q3 .Q  M 3 QQ  M .Q%.Q X z M~TQ `wQ N V3 .QQ&Td | MC fQ0QQ rĀ  4Q  .Q,.Q~(Ud 2  wf&ff& &R*QAaes!,QB3 2Q D! ! 3 &R 2Q % !3 &R  ^ĕ  R  R~Us!wEAmECK  A d+~XR w W   \ʕw އ < ʕ/w Ke3   :~R* wʕ/6 @   /Ke   & D2  1~HS* & . : $3:  C & fKw"2 @  Z PE!~Sʕw/ʕ D& BK ( ~xP& Ȅ w%e 4  Ƿ U 22 wL 4 K3 0 K $~P  rfע׬* x RCe w P  *wD 5-1~hQ *T#& & F/ <ʕ* 8p:p8 :C/ <~Q BK  Ee  A ͕ACOUNT ;SET UP TO TYPE N CHAR. MOV R5,R4  ;ADDR OF 1ST BYTE IN R4 MOV R5,R3  ;ADDR OF 1ST BYTE IN R3 ADD (SP),R3  ;ADD N TO R3 DEC R3 ;SUB. 1 TO GET LAST ADDR MOV R3,O.XXX ;SAVE LAST ADDR. JSR 5,O.TYPE ;TYPE THE CHARACTERS JSR 5,O.CRLF ;TYPE CR/LF MOV (SP)+,R4 ;RECALL N TO R4 ;NOW ACCEPT INPUT STRING INCB O.SCRN ;ALLOW SPACES VIA O.GET JSR 5,O.GET  ;LOOK AT FIRST CH. CMPB R0,#015  ;IS IT A CARR.RET? BEQ O.ELF5  ;IF YES, RETURN TO COMM. D,Q5Еs*Q&R  3 &R 2Q 5  6 & `3 (R  ~V@& 5 55 Q 34Q    6QQT&d ~V f&RB eV00& zυ&Rw&R@aAa !B@Q0Qw f ~WCqBa fQ 5 f υ1 7 % f Zw/ Kw 저 * ڠԠw ݎ&W* T$~8T* 66 e8f D vb  e ewE4/~T K f&  -Ct # & Ä&: 0:ʕ* 1  DE@!p(aŠTw Վe ~\! ee   h :& W TW~`Y %G0 W$  e& tw0  WsW3 ~YW3 WWsW3 W @W   w0w ڼ  WMWW ^W  @W  M~PZW2W eW  2WW& l W& f&W ӃW  Wy~Ze(W   wVsW69:a|aa~Hba 7~b6   wBB4bw  we  I~8cIb rllw`ZX p m BTE4b5bb& ڵT:C4b4~ck  e0e  t404@ D A~h`  &DCc  w @w  w  ' 7  &w \w wXw w  fw  w ~`7 wtwhw j %jE eZ_ whjD qj =w TD = w H6 w @/ w 8 w 0w 8 }~Xa7 w *7 w "7 7 djqj Xw7  ww (b ww w A B` %~a w| 7wrxwhu E 7x_~wh^ EEjUPdEbU\ EPU@JEHUBw P7 7М   DH^   5qH^ W !5y~_  ^V NNEJ  5qH^w чU.hhhh~x_T.lFIkljjjjjjjjj 8B0 7 ww 7~_Z_ujjw  7xw w XĝZ77J F fڟ!6`0w & ڟ ; NOT TYPED BEQ O.TCL2 TST R2  ;SEE IF TURN ON OR TURN OFF BNE O.SI1  ;BRANCH IF TURNING IT ON CLRB O.S  ;CLEAR THE FLAG JMP O.DCD  ;CONTINUE THE SCAN O.SI1: MOVB #-1,O.S  ;SET THE FLAG O.SI2: JMP O.DCD ;COMMA PROCESSING. N IN R4 IS THE RELOCATION REGISTER NUMBER ; O.COMM: INCB O.CMFD ;SET "COMMA FOUND" SWITCH TO ON TST R2  ;WAS A NUMBER TYPED IN? BEQ O.COM1  ;NO,USE CURRENT BIAS; I.E.,EXIT BIC #177770,R4 ;MAKE SURE THAT N3e&ʋ     1 eK~(d8f H D wB4b2Ib+Ib ZUX V PB wʕ& شwBA~d wbew(   A4b E EWe  ,~eCYE fr lEŠpWbʋwEWE f / 3_~e1je3 tx_P x_Iw ,-%~Hb w  =w $7  x_=w e0w ,w %@w ke=w @~bw fwww=w  w  rw 8Ae0w ,w |VPTw D- <@7x_: (~8c6 4,*w  ?w "7 w 777    w %0 %7E `  1j W ֆ~c m7 ycdddld`f|daxddaFee@ D A~h`  &DCc  w @w  w  ' 7  &w \w wXw w  fw  w ~`7 wtwhw j %jE eZ_ whjD qj =w TD = w H6 w @/ w 8 w 0w 8 }~Xa7 w *7 w "7 7 djqj Xw7  ww (b ww w A B` %~a w| 7wrxwhu E 7x_~wh^ E IS LESS THAN 10(8) ASL R4  ;YES, LOCATE RELOC. REGISTER MOV O.RELT(R4),O.BIAS ;PUT BIAS IN O.BIAS O.COM1: JMP O.DCD1  ;GO BACK TO DECODER ;R PROCESSING. SEVERAL POSSIBILITIES- ; A. ;R WAS TYPED. ZERO OUT ALL RELOCATION REGISTERS ; B. ;NR WAS TYPED. ZERO OUT $NR ; C. REXP;NR WAS TYPED. SET $NR TO REXP ; D. NR WAS TYPED, WHILE A WORD WAS OPENED- ;  COMPUTE (O.CAD)-($NR) AND PRINT IT ; O.REL: TSTB O.SMFD  ;TEST IF A SEMICOLON WAS TYPED BEQ O.REL1  ;NO CASE 3e 2e   w0 e wA Nw <1 1 rV~f7 Ib GIbB4b   Eeʋ  wE-~f ,*( & ҁw B4b (&  w%e 8~f  fU 22 wܳ 4 Ib3 0 4b  rfע׬ xedpfaaabbb0cNcba^`B`h7cJD @ 7<7 ~(d6%.* "w %=w (w  w w ww   7mX~dw w %/w \  j~~j  L e_  !_B !_=L f~e!64_4 _ j!4__4 _ % w *  @w @ % % w  ww \~e D tx_P x_Iw ,-%~Hb w  =w $7  x_=w e0w ,w %@w ke=w @~bw fwww=w  w  rw 8Ae0w ,w |VPTw D- <@7x_: (~8c6 4,*w  ?w "7 w 777    w %0 %7E `  1j W ֆ~c m7 ycdddld`f|daxddaFeeD TST R2  ;NOTHING OPENED, WAS N TYPED? BEQ O.REL2  ;N NOT TYPED O.REL4: BIC #177770,R4 ;GUARANTEE THAT N<10 ASL R4  ;N TYPED, CASE B OR C. SET $NR. TST R3  ;IF REXP NOT TYPED,CLEAR TO -1 BEQ O.RELA MOV R5,O.RELT(R4) ;IF REXP NOT TYPED, R5=0. CASE B. O.REL5: BR O.H1  ;EXIT TO DECODER O.REL2: TST R3  ;IF REXP TYPED, CASE B OR C WITH N=0 BEQ O.REL3  ;REXP NOT TYPED, N NOT TYPED, CLEAR ALL. BR O.REL4  ;REXP TYPED- N NOT TYPED O.RELA: MOV #-1,O.R~pg RCe w Pj  wX X5-N1< 2L$& & ~g F <ʕ $pr&pr$ ޗC  B4b  Ee  ~`hA ͕AwEAYECWb  A d Pw BW   \ʕ~hw ɇ < ʕw 4be3  ܪ  wʕ  &C@AEPA&fw w /w w Hw   ` E~f ` V F w8șw 7-U&"Ew b7DE ~f p_nw V׭VU7w @ŝŝwvt,~f wjt!_ w w Jjjw @e>%ĕt_72 __w Bw .e` w ;w ĝedpfaaabbb0cNcba^`B`h7cJD @ 7<7 ~(d6%.* "w %=w (w  w w ww   7mX~dw w %/w \  j~~j  L e_  !_B !_=L f~e!64_4 _ j!4__4 _ % w *  @w @ % % w  ww \~e D ELT(R4) BR O.H1 ;CLEAR RELOCATION REGISTERS. O.REL3: JSR 5,O.CLRR ;CLEAR RELOC REG'S BR O.SI2  ;GO BACK TO SCAN O.REL1: CMP O.BW,#2  ;CASE D, PRINT @O.CAD IN RELATIVE FORM BNE O.TCL2  ;ERROR IF BYTE OPENED CMP #0,R2  ; CHECK IF R BNE O.REL6  ; IF R JSR R5,O.LOC  ; THEN FIND BEST N CMP R0,#-1 ;WAS A RELOC REG FOUND? BNE O.REL8 ;BR IF YES. ELSE-- MOV #'=,R0 ;TYPE "=" JSR 5,O.FTYP MOV @O.CAD,R0 ;TYPE ABS. VAL OF CONTENTS BR O.REL9  6 @~Pi  4be   & t Dr2   &  & 3&v~i  C & fIbwF2 @ Z PE!ʕwʕ Dr& Zw?~@j Ibw :  ~xw Ȏ&W T F6 e8f {~jD vb  e ewE~pg_w wf_f&f 4___ 77~gw r5vpghbfV  <__ !%& &e N @ e0w & ~`h x_ 7얅ܖE w   w ׭ ^M~hw Uw Z_wr nj  7,x_XRx_-P Dw@ 78 %(!  &C@AEPA&fw w /w w Hw   ` E~f ` V F w8șw 7-U&"Ew b7DE ~f p_nw V׭VU7w @ŝŝwvt,~f wjt!_ w w Jjjw @e>%ĕt_72 __w Bw .e` w ;w ĝ;OF OPENED LOC. O.REL8: MOV R0,R4  ; PUT NEW N INTO R4 O.REL6: MOV @O.CAD,R1 ;OPENED VALUE IS THE MINUEND MOV R4,O.TMP1 ; SAVE N ASL R4  ;GET BIAS FROM $NR SUB O.RELT(R4),R1 ;BIAS IS THE SUBTRAHEND MOV #'=,R0  ;TYPE "=" JSR 5,O.FTYP MOV O.TMP1,R0 ; PREPARE INPUTE FOR O.FTYP ADD #60,R0  ; CONVERT N TO ANSCII JSR 5,O.FTYP ; TYPE N MOV #',,R0  ;PREPARE INPUT FOR O.FTYP JSR 5,O.FTYP ; TYPE COMMA CMP #0,R2  ; CHECK IF R BNE O.REL7  ; I4 4b f&  -~0kCt # & f&& 0&ʕ 1r bt& wzʕ Ibi~ke8f @  Bl4b KG :ff ֭t `$ G r ʋ && T,~ l& 12 ʕw $&$b5f  Dw B buf ğ~lwTwV YWbCa  %~Pi??jjjw N%w 77w Z e0w ,w w pb~i Cå å$ נA   e` Xj  Ëנe e~@je e ѐ  @($k$k$@ ODT-11R V003ABEk$k$k *;/\ $G _<^,OWEBP@>SRC-FI!XASPMCFR~jB~pg_w wf_f&f 4___ 77~gw r5vpghbfV  <__ !%& &e N @ e0w & ~`h x_ 7얅ܖE w   w ׭ ^M~hw Uw Z_wr nj  7,x_XRx_-P Dw@ 78 %(!F R MOV O.XXY,R0 ; THEN PREPARE INPUT FOR O.CADV O.REL7: MOV R1,R0  ;TYPE THE VALUE (@O.CAD)-($NR) O.REL9: JSR 5,O.CADV BR O.DCD1 ; ;C PROCESSING. ; A. REXP;C WAS TYPED- PRINT THE VALUE OF REXP AND STORE IN $C ; B. ;C WAS TYPED- SAME AS C., BUT REXP=0 BY DEFAULT ; C. NO SEMICOLON HAS BEEN TYPED-REPLACE R4 WITH THE CONTENTS OF $C O.CNS: TSTB O.SMFD ;WAS A SEMICOLON TYPED? BNE O.CNS1  ;REXPfQr rIbC DEr rIbɕZ~mE fr n5 r fr Z  l4b  4b  r  e  < /~m`\VH  !"$'(+-.03569:@9 0/STUVWXY _,(%\"Z q~xn-JKLMNOPQ $*];^Pd2k~0k~k      I VZCZ FBB2 .-(lh~ l THIS IS TSTBUG C1 TYPE YOUR NAME AND IT WILL BE PRINTED ON THE LP! J~lP  %~Pi??jjjw N%w 77w Z e0w ,w w pb~i Cå å$ נA   e` Xj  Ëנe e~@je e ѐ  @(BmBm@ ODT-11R V003ABElBmBm *;/\ $G _<^,OWEBP@>SRC-FI!XASPMCFR~jB TYPED PRIOR TO ; CASE A MOV O.CNST,R4 ;CASE C. REPLACE R4 WITH ($C) MOV #1,R2 BR O.SCAN ;RETURN TO SCAN MORE O.CNS1: MOV #'=,R0 ;PRINT VALUE MOV #2,O.BW JSR 5,O.FTYP MOV R5,R0 JSR 5,O.CADV MOV R5,O.CNST  ;AND STORE IN $C O.H1: O.CNS2: JMP O.DCD ; ;MINUS PROCESSING ; O.MIN: INCB O.MINS  ;SET MINUS FOUND SWITCH ON JMP O.DCD1 .EOT   ;END OF TAPE #1 ; ;REPRINT LAST OPENED ADDRESS RELATIVELY. ; A. N! WASR ! +ABCDEFGH .)[<#I ? ~n xxxxxxx0~ho0p//\BGzzzzzzzzz DN< 7 w$w Y~o7Noizyzw  7xw w XĝZ77J F v!*p0w & @  D2~m~m AC:  ? ILL CMD! ILL PAR! NON-QUIE~nSCENT ENDSQUXXXTTMDTRECMAS.LD4ID@FLNTC:BRXBPTEX. 4(7 0 ~xnD P2?~0k~k      I VZCZ FBB2 .-(lh~ l THIS IS TSTBUG C1 TYPE YOUR NAME AND IT WILL BE PRINTED ON THE LP! J~l TYPED--PRINT N,((O.CAD)-($NR)) ; B. ! WAS TYPED. FIND THE CLOSEST BIAS LESS THAN ;  (O.CAD) AND USE ITS "N" -- THEN DO CASE A. ; O.RCMP: MOV #'=,R0  ;FIRST TYPE A "=" JSR 5,O.FTYP  ;WAS N TYPED IN? TST R2  ;WAS N TYPED IN? BNE O.RCM1  ;BRANCH IF YES JSR 5,O.LOC  ;ELSE, FIND BEST N CMP R0,#-1 ;IF REL.REG FOUND, BNE O.RCM2 ; BR; ELSE-- MOV O.CAD,R0 ;PRINT ADDR IN ABS. JSR 5,O.CADV BR O.DCD1 O.RCM2: ADD #060,R0  ;CONVERT N TO ANSCII JSR 5~Xp A  &DCc  w @w  w  ' 7  &w \w wXw w  fw  ~pw 7 wtwhw z %zE eNo whzD ez =w TD = w H6 w @/ w 8 w 0w 8+~Hq 7 w *7 w "7 7 Xzez Xw7  ww (b ww w A B` %~q w| 7wrxwhu E 7lo~wh^ E tloP S#      ! EW,  !   ~n  ! 7Hzvx* & &&  0*&W,WBWA h ~ho!  j x*7 7 7 ajc d  *Bv~o W,5 3!0 ,!)!& %! yߕ*4*ߕ** ~m7  , 0.~    |~mv pj d^ XR LF @:$ 4.. w N 7 7 w B ? ~n &DCc  w  w  w  % 7 ~ &w \w wlw  fw T B w R 7Q w<~xnwrw n O,O.FTYP ;TYPE N MOV #',,R0  ;TYPE COMMA JSR 5,O.FTYP MOV O.BW,-(SP) ;SAVE O.BW MOV #2,O.BW  ;ARTIFCIALLY SET MODE FOR WORDS MOV O.XXY,R0 ;TYPE RELATIVE AMOUNT O.RCM3: JSR 5,O.CADV MOV (SP)+,O.BW ;RESTORE MODE BR O.DCD1  ;EXIT TO SCAN ROUTINE O.RCM1: MOV R4,R0  ;GET N. THIS CODE SIMULATES O.LOC ASL R0  ;TIMES 2 FOR INDEXING MOV O.CAD,O.XXY SUB O.RELT(R0),O.XXY ;COMPUTE DIFFERENCE ASR R0  ;RESloIw ,-~8r% w  =w $7  lo=w e0w ,w %@w ke=w ~r@w fwww=w  w  rw 8Ae0w ,w |VPTw D- <@7lo: M~(s(6 4,*w  ?w "7 w 777    w %0 %7E `  1z W ֆ~s m7 ysst t`tp vptqlttq:uuutdvqqqrrr~Xp0  *&& & &  & HH:MM:SS MM/DD/YY  &e I~p W, ! 1 w(W, ! 0E7PdD~Hqԝԝ  6 ~q %aE e w~H  =w   w w  w  w w  7 w X~n7 w 7 7 t   w7   ww (b | ww w A B` < %R N w.~hoU  7D w: wz8 E wR7 wt  E tP Iw - %_~o w R =w   7d =w R e0w ,w % @w Dq k=Z w zuTORE N. BR O.RCM2  ;PRINT RESULTS ; ;FILL MEMORY WORDS. LIMITS ARE THE SEARCH LIMITS. ; O.FILL: MOV #2,O.BW ;SET MODE TO "OPEN WORD" O.FIL1: TSTB O.SMFD ;DONT REACT UNLESS ";" WAS TYPED BEQ O.ERR ;IF NOT TYPED, ERROR. MOV O.CNST, R0 ;ACTUAL VALUE MOV O.LOW,R4  ;USE SEARCH LIMITS FOR MOV O.HI,R3  ; FILL LIMITS. JSR 5,O.ST BR O.DCD  ;EXIT ; ;INITIALIZE MEMORY BYTES. ; O.INIT: MOV #1,O.BW BR O.FIL1  ;LET O.FILL DO THE WORK $sBsr qRp6ph7cJD @ 7~t<76%.* "w %=w (w  w w ww   7m~tw w %/w \  j~~z  L e|o  !oB !o=LU~u !64|o4 o z!4|oo4 o % w *  @w @ % % w  ww~u  D  P~8r~r_~(s~s~Xp@w ww w=w \ w  ( w Ge0w <,w 4   w 3 7 ~p w  ?w  w 7 w 777T 7    w %0 %7E `  12~Hq W І  dm 7 y.hv>z:FL*h&.hZ 7D y~q 77% w %=w w  w w zww; COMMAND DECODER - ODT11X ; ALL REGISTERS MAY BE USED (R0-R5), O.ERR: MOV #'?,R0  ; ? TO BE TYPED JSR 5,O.FTYP ; OUTPUT ? O.DCD: CLR O.BW  ;CLOSE ALL JSR 5,O.CRLS ;TYPE * O.DCD3: CLRB O.SMFD  ;SEMICOLON FOUND FLAG CLRB O.CMFD  ;COMMA FOUND FLAG CLRB O.MINS  ;MINUS SIGN FOUND FLAG O.DCD2: CLR R3  ;R3 IS A SAVE REGISTER FOR R2 CLR R5  ;R5 IS A SAVE REGISTER FOR R4 O.DCD1: CLR R4  ; R4 CONTAINS THE CONVERTED OCTAL CLR R2  ; R2 I&C@AEPA&fw w /w w Hw   ` E!~u ` V F w8ԉw 7-U&"Ew b7DEw~pv  pozw V׭bU7w @ŝŝwv~vt wjt!|o w w Jzz{zw @e>%ĕt|o72 oow Bw .e` w ;w ~`wĝ|ow n~t~t}~u~u  d z{~8rv7|mllhhw l\VTw dJ%/w `\ 0 &&  L e  !B ~r!=L !644  !44  % w   @w l@ % % w 1~(sR ww  hD  &C@AEPA&fw Dw H/w Nw   ` !~s E `   w7US THE NUMBER FOUND FLAG O.SCAN: JSR 5,O.GET  ;GET A CHAR, RETURN IN R0 O.SCN1: CMP #'0,R0  ;COMPARE WITH ASCII 0 BHI O.CLGL  ;CHECK LEGALITY IF NON-NUMERIC CMP #'7,R0  ;COMPARE WITH ASCII 7 BLO O.CLGL  ;CHECK LEGALITY IF NOT OCTAL BIC #177770,R0 ;CONVERT TO BCD ASL R4  ; MAKE ROOM ASL R4  ; IN ASL R4  ; R4 ADD R0,R4  ;PACK THREE BITS IN R4 INC R2  ;R2 HAS NUMERIC FLAG BR O.SCAN  ; AND TRY AGAIN O.CLGL: CLR R1  ;CLEAR INDEX O.wZof&f 4|oo|o 77~ww r5|gtbrV  <o|o !%& &e N @ e0w & ~Px lo 7E w   w ׭ ~x^w Uw Nowr nj  7,loXRlo-P Dw@ 78 %(!  %B~u~pv~v#~`wEw P72  ~tp׭Uw`@j5!<  e e!ED O~t!wf%wL=<-627*H<6 w7ww ^ ŝ~uw@ wt! w x$%w @e$ĕt7[ wBw V?~ue` w H;w @ĝ#w wXLGL1: CMPB R0,O.LGCH(R1) ;DO THE CODES MATCH? BEQ O.LGL2  ;JUMP IF YES INC R1  ; SET INDEX FOR NEXT SEARCH CMP R1,#O.CLGT ;IS THE SEARCH DONE? BHIS O.ERR  ; OOPS! BR O.LGL1  ;RE-LOOP O.LGL2: TSTB O.MINS  ;IF MINUS WAS NOT TYPED BEQ O.LGL4  ;DO NOT NEGATE K NEG R4  ;OTHERWISE, TAKE 2'S COMPLEMENT. O.LGL4: TSTB O.CMFD  ;IF A COMMA NOT TYPED, BEQ O.LGL3  ;SKIP NEXT INSTRUCTION. ADD O.BIAS,R4 ;OTHERWISE, ADD RELOC. BIAS TO (R4) O.LGL3: CLRB~@y??zzzw N%w 77w Z e0w ,w w p~y Cå å$ נA   e` Lz  Ëנe~0z ee e ѐ  @(LILI @ ODT-11R V003ABEG *;/\ $G _<^,OWEBP@>SRC-FI!XASPM~zCFRBT2~w2~Px~xA  e" w ҕKҕSҕU~  we0  w w~ue0  we0  we0~  .e!T P -rhwww`0 E~pv ~ { DP FV)׭T< Fd e. D d~v v d f&f r4 \&~`w W  < O.MINS  ;REINITIALIZE MINUS-TYPED SWITCH FOR NXT SCAN ASL R1  ;MULTIPLY BY TWO JMP @O.LGDR(R1) ;GO TO PROPER ROUTINE O.LGDR: O.SEMI ; ; SEMICOLON O.WRD ; / OPEN WORD O.BYT ; \ OPEN BYTE -BACK SLASH O.CRET ; CARRIAGE RETURN CLOSE O.REGT ; $ REGISTER OPS O.GO ; G GO TO ADDRESS K O.OP1 ; O.NEXT MODIFY, CLOSE, OPEN NEXT O.ORPC ; "BACKARROW" OPEN RELATED, INDEX - PC (BACK ARROW) O.OLD ; < RETURN TO OLD SEQUENCE AND OPEN O.B~ {~{ AC:  ? ILL CMD! ILL PAR! NON-QUIESCENT ENDSQU:~|"XX(XTTMDT>RECMAS4LD:IDFFLTITTC@BRXBPTEX. ."7 * D~| S#      !~@y~yP~0z~z !%$ &e N @ e0w &   ,T~w7d  d     އw  rn  7,~Px\V-T HwD 7< %,!  %? ?1.w v w %~x$w 77w V e0w ,w w rXTNH Cå å$ נAACK ; ^ OPEN PREVIOUS (UP ARROW) O.COMM ; , COMMA. SEPERATES REL.REG. FROM INCREMENT O.OFST ; O OFFSET O.WSCH ; W SEARCH WORD O.EFF ; E SEARCH EFFECTIVE ADDRESS O.BKPT ; B BREAKPOINTS O.PROC ; P PROCEED O.ORAB ; @ OPEN RELATED, ABSOLUTE O.ORRB ; > OPEN RELATED, REL. BRANCH O.SNGL ; S SINGLE INSTRUCTION MODE O.REL ; R RELOCATION PROCESSING O.CNS ; C CONSTANT REGISTER PROCESSING O.MIN ; - MINUS, NEGATES NUMBER TYPED IN O.FILL ; F EW,  !   $  !~} 74tpx*r & &&  0&W,WBWA h ! ~x} j x*"00r  pP>7 |7 z7 xG~}ajc d  `x W,5 3!0 ,!)!p& %r! yߕ~h~4ߕ _~ {~{n~|~|~@y   e` h  Ëנe ee e ѐ  @(~y DEBUG H PC CP R L T NZVC R0 R1 R2 R3 R4 R5 SP @ LOCN CON~0zTENTS BE*;/\ $G._<^,OWEBP@>SRC-FI!XADTSPMDTCFRB~zv FILL MEMORY WORDS FROM THE CONSTANT REGISTER O.INIT ; I INITIALIZE MEMORY BYTES FROM THE CONSTANT REGISTER O.RCMP ; ! PRINT CURRENT OPENED ADDRESS IN REL. FORM O.MOD ; X RETYPE OPENED CONTENTS, MOD40 O.ALF ; A ACCEPT ASCII INPUT O.CTLC ; ^C EXIT TO MONITOR O.LGL = .-O.LGDR ;LGL MUST EQUAL 2X CHLGT ALWAYS ; SEMI-COLON PROCESSOR O.SEMI: MOV R2,R3 ;A SEMI-COLON HAS BEEN RECEIVED MOV R4,R5 ;NUMERIC FLAG TO R3, CONTENTS TO R5 INCB O.SMFD   && & &  & HH:MM:SS MM/DD/YY M~~ &e I W, ! 1 w(W, ! 0'~XE7PdDԝԝ   f2~~H}~}~x}~}~h~~ {P26~{`~| AC:  ? ILL CMD! ILL PAR! NON-QUIESCENT EN ~|DSQUXXXTTMDTRECMAS.LD4ID@FLNTC:BRXBPT;SET SEMICOLON FOUND FLAG CLRB O.CMFD ;RESET COMMA FOUND FLAG BR O.DCD1  ;GO BACK FOR MORE ; PROCESS / AND \ - OPEN WORD OR BYTE ;INPUT - IF R2 IS NON-ZERO A NEW REXP HAS BEEN TYPED IN ;INPUT - -ADDRESS OF WORD TO BE OPENED IS IN R4 O.WRD: MOV #2,O.BW  ;OPEN WORD BR O.WB1 O.BYT1: ROL R4  ;GET THE ADDRESS BACK O.BYT: MOV #1,O.BW  ;OPEN BYTE O.WB1: TST R2  ;GET VALUE IF R2 IS NON-ZERO BEQ O.WRD1  ;SKIP OTHERWISE - REOPEN PREVIOUS LOCATION MOV R4,O.DOT ;PU2lL !& p @   <   @~   $   & & && # L   &   ~~7 ~~8 !  @~^~~#~X~2~HEX. 4(7 0 D~} S#      ! EW,  !    K~x}! 7Hzvx* & &&  0*&W,WBWA h ! e~} j x*7 7 7 ajc d  *Bv ~h~W,5 3!0 ,T VALUE IN DOT MOV R4,O.CAD ; ALSO IN CAD O.WRD1: CMP #1,O.BW  ;CHECK BYTE MODE BEQ O.WRD2  ;JUMP IF BYTE MOV O.CAD,R4 ASR R4  ;MOVE ONE BIT TO CARRY BCS O.BYT1  ;JUMP IF ODD ADDRESS MOV @O.CAD,R0 ;GET CONTENTS OF WORD BR O.WRD3 O.WRD2: MOVB @O.CAD,R0 ;GET CONTENTS OF BYTE O.WRD3: JSR 5,O.CADV ;GO GET AND TYPE OUT @CAD CMP #1,O.BW ;CHECK IF BYTE MODE. BNE O.DCD3  ;IF NOT WE'RE DONE. ELSE: MOVB #'=,R0 ;TYP "=" AND THEN THE ASCII BYTE JS ~(~_~~ ~A~8~ !)!& %! yߕ*4*ߕ** 0b~~  *&& & &  & HH:MM:SS MM/DD/YY  &e I J~XW, ! 1 w(W, ! 0E7PdDԝԝ~  6 ~H R 5,O.FTYP MOVB @O.CAD,R0 JSR 5,O.FTYP MOVB #' ,R0 JSR 5,O.FTYP JMP O.DCD3  ;GO BACK TO DECODER ; PROCESS CARRIAGE RETURN O.CRET: JSR PC,O.CLSE ;CLOSE LOCATION O.DCDA: JMP O.DCD  ;RETURN TO DECODER O.ERR3: JMP O.ERR  ; INTERMEDIATE HELP ; PROCESS , OPEN NEXT WORD O.OLD: INCB O.SEQ ;SET FLAG TO LATER RESTORE CAD O.OP1: TST O.BW ; RECEIVED O.ERR2: BEQ O.ERR3  ;ERROR IF NOTHI n~ ENTER FILE/ELE~MENT NAME:   FILE NOT FOUND, REENTER: FILE NOT CONTIGIOUS, REENTER:  FILE TRANSFERED, NEXT: ~+ ERROR - VALUE . TASK DID $EXIT.( F ```&  "&7B I~p77$7$7$|  6 $ e   P~(~_~~~A~8~NG IS OPEN JSR PC,O.CLSE ;CLOSE PRESENT CELL TST O.SEQ  ;SHOULD CAD BE RESTORED? BEQ O.OP5  ;BRANCH IF NOT MOV O.DOT,O.CAD ;RESTORE PREVIOUS SEQUENCE CLRB O.SEQ  ;RESET FLAG; NO LONGER NEEDED O.OP5: ADD O.BW,O.CAD ;GENERATE NEW ADDRESS O.OP2: MOV O.CAD,O.DOT ;INITIALIZE DOT O.OP2A: JSR 5,O.CRLF ; MOV O.BW,-(SP) ;SAVE BW MOV #2,O.BW  ;SET TO TYPE FULL WORD ADDRESS MOV O.CAD,R0 ;NUMBER TO TYPE JSR 5,O.RORA ; CHECK FORMAT MOV @SP,O.BW P 7 `) 2967 7 ~| wv D e-w! Z4 RBCDT DKBFx~`    d~؆&~Pn~~}~~pP~(~_~~;RESTORE BW CMP #1,(SP)+ ;IS IT BYTE MODE? BEQ O.OP3  ;JUMP IF YES MOV #'/,R0  ;TYPE A / O.OP4: JSR 5,O.FTYP BR O.WRD1  ;GO PROCESS IT O.OP3: MOV #'\,R0  ;TYPE A \ BR O.OP4 ; PROCESS ^, OPEN PREVIOUS WORD O.BACK: TST O.BW  ; ^ RECEIVED BEQ O.ERR2  ;ERROR IF NOTHING OPEN JSR PC,O.CLSE SUB O.BW,O.CAD ;GENERATE NEW ADDRESS BR O.OP2  ;GO DO THE REST ; B HANDLER - SET AND REMOVE BREAKPOINTS O.BKPT: MOV #O.TRTC,R~ȇ.   n&j!."  p  s^p   , o~@jf&CCTQ$ w<7 7 7 j    tt  6 ( 3 ?~  "  P)eD z:~ R  J  B w  ~0~~`~؆#~Pn~~}~~p0 ASL R4  ;MULTIPLY NUMBER BY TWO TST R3 BEQ O.REMB  ;IF R3 IS ZERO GO REMOVE BREAKPOINT ASR R5  ;GET ONE BIT TO CARRY BCS O.ERR1  ;BADNESS IF ODD ADDRESS ASL R5  ;RESTORE ONE BIT ADD #O.ADR1,R4 TST R2 BNE O.SET1  ;JUMP IF SPECIFIC CELL O.SET: CMP R0,@R4  ;IS THIS CELL FREE? BEQ O.SET1  ;JUMP IF YES CMP R4,#O.BKP+O.ADR1 ;ARE WE AT THE END OF OUR ROPE BHIS O.ERR1  ;YES, THERE IS NOTHING FREE TST (R4)+  ;INCREMENT BY TWO BR O.SE $  "  . Dd^  7L1-t    D,~ f  te e  v7<e 7!#"",eH~  H 7 j t7^ -R@7 J7e 7 H/W µ 0 0  em~E `7µ 0l0@@  nj a( j7 ~ȇ2~@~A~0~~`~؆#~PT O.SET1: CMP R4,#O.BKP+O.ADR1 BHI O.ERR1  ;ERROR IF TOO LARGE MOV R5,@R4  ;SET BREAKPOINT BR O.DCDA  ;RETURN O.REMB: TST R2 BEQ O.RALL  ;GO REMOVE ALL CMP R4,#O.BKP BHI O.ERR1  ;JUMP IF NUMBER TOO LARGE MOV R0,O.ADR1(R4) ;CLEAR BREAKPOINT CLR O.CT(R4) ;CLEAR COUNT ALSO O.DCDB: BR O.DCDA O.RALL: CLR R4 MOV #O.TRTC,R0 O.RM1: CMP R4,#O.BKP+2 ;ALL DONE? BHI O.DCDA  ;JUMP IF YES MOV R0,O.ADR1(R4) ;RESET BKPT MOV #TRT,O.UIN(R4) ;REj7 ~&  t7  -z@7 r7e 7 pN 'W P&'^  M B ~&' %&'4 D; |B A w`  B f ^ P7  j^D 6*~: &' $e 7 X  e E  e7\ 7Z 7( 7 V 7 *  ~x B  n&j .7`w w    ~P~ ~~ȇ2~@~A~0 SET CONTENTS OF TABLE CLR O.CT(R4) ;CLEAR COUNT TST (R4)+  ;INCREMENT BY TWO BR O.RM1 ; PROCESS O, COMPUTE OFFSET O.OFST: CMP #2,O.BW  ;CHECK WORD MODE BNE O.ERR1  ;ERROR IF NOT CORRECT MODE MOV #' ,R0  ;TYPE ONE BLANK JSR 5,O.FTYP ; AS A SEPARATOR TST R3  ;WAS SEMI-COLON TYPED? BEQ O.ERR1  ;NO, CALL IT AN ERROR O.OF2: SUB O.CAD,R5 ;COMPUTE DEC R5 DEC R5  ; 16 BIT OFFSET MOV R5,R0 JSR 5,O.CADV ;NUMBER !] >`p &  ~  z R J 9@BE ` V BEC\ mv ^ ! 2 ! ~h|l&8Xl8Xlw  ee  񆗢   7  R7 6~wJ  w ZDDm DQ$  tw  Dd ` DQ$ |D @ @~XD dQ$Dd , D JQ$DdD DQ$ "_~~n~~x#~P~ ~$IN R0 - WORD MODE MOV R5,R0 ASR R0  ;DIVIDE BY TWO BCS O.OF1  ;ERROR IF ODD CMP #-200,R0 ;COMPARE WITH -200 BGT O.OF1  ;DO NOT TYPE IF OUT OF RANGE CMP #177,R0  ;COMPARE WITH +177 BLT O.OF1  ;DO NOT TYPE IF OUT OF RANGE DEC O.BW  ;SET TEMPORARY BYTE MODE JSR 5,O.CADV ;NUMBER IN R0 - BYTE MODE INC O.BW  ;RESTORE WORD MODE O.OF1: JMP O.DCD3  ;ALL DONE O.ERR1: JMP O.ERR  ;INTERMEDIATE HELP .EOT  ;END OF TAPE %37 7 W- DDdm 7 7 ɥ~ЎɥDD]F  e   V N@|m v e= &<T7I j~H e@ r@L~! B,W p;W 8 2 + 5  E# W!~W! wEW!  n7x*Ýt% x)^w N R7W7Z~8J nwL>= ^7 V&}~~h~~X'_~~n~~x(#2 ; ; SEARCHES - $MSK HAS THE MASK ;  $MSK+2 HAS THE FWA ;  $MSK+4 HAS THE LWA O.EFF: INC R1  ;SET EFFECTIVE SEARCH BR O.WDS O.WSCH: CLR R1  ;SET WORD SEARCH O.WDS: TST R3  ;CHECK FOR OBJECT FOUND BEQ O.ERR1  ;ERROR IF NO OBJECT MOV #2,O.BW  ;SET WORD MODE MOV O.MSK+2,R2 ;SET ORIGIN MOV O.MSK,R4 ;SET MASK COM R4 O.WDS2: CMP R2,O.MSK+4 ; IS THE SEARCH ALL DONE? BHI O.DCDB  ; YES MOV @R2,R0  ; GET OBJECT )ww 11Y U141 r _ p_pP>j!m~7 wwQ$ w,((( ,,,&f&M  emm-:~( 0&t7 ee #0-&]t:7 P#0- E7~ee  e !&e  4w  R w  Jw ~*~Ў#~H~2~8+}~~h~~X,TST R1  ;NO BNE O.EFF1  ;BRANCH IF EFFECTIVE SEARCH MOV R0,-(SP) MOV R5,R3  ;EXCLUSIVE OR BIC R5,R0  ; IS DONE BIC (SP)+,R3  ; IN A VERY BIS R0,R3  ; FANCY MANNER HERE BIC R4,R3  ;AND RESULT WITH MASK O.WDS3: BNE O.WDS4  ;RE-LOOP IF NO MATCH MOV R4,-(SP) ;REGISTERS R2,R4, AND R5 ARE SAFE MOV R1,-(SP) ;SAVE R1 MOV R2,-(SP) ;SAVE R2 MOV R3,-(SP) JSR 5,O.CRLF MOV R2,R0  ;GET READY TO TYPE JSR 5,O.RORA ; CHECK FORMAT MO-e 7!  #2-7!ne f&fve  e Pe \!!!!!w h @` 7 <B~ w V & 7 77 e e O-   (> ~  7r? 5|Ћ#BwJ` 7<@5.0 @ e ~    D  m#e#! .~A~(~P~/~Ў#~H~2~80V #'/,R0  ;SLASH TO R0 JSR 5,O.FTYP ;TYPE IT MOV @R2,R0  ;GET CONTENTS JSR 5,O.CADV ; TYPE CONTENT MOV (SP)+,R3 MOV (SP)+,R2 ;RESTORE R2 MOV (SP)+,R1 ;RESTORE R1 MOV (SP)+,R4 ; RESTORE R4 ;HAS CTRL/U BEEN STRUCK? JSR R5,O.CU  ;CHECK FOR ^U O.WDS4: TST (R2)+  ;INCREMENT TO NEXT CELL AND BR O.WDS2  ; RETURN O.EFF1: CMP R0,R5  ; IS (X)=K? BEQ O.WDS3  ;TYPE IF EQUAL MOV R0,R3  ;(X) TO R3 1 E m~ mn7y 7e0#0 E w  r'~p w rwu~~`2~_~~3~A~(~P~4ADD R2,R3  ;(X)+X INC R3 INC R3  ;(X)+X+2 CMP R3,R5  ;IS (X)+X+2=K? BEQ O.WDS3  ;BRANCH IF EQUAL BIC #177400,R0 ;WIPE OUT EXTRANEOUS BITS MOVB R0,R0 CCC ASL R0  ;MULTIPLY BY TWO INC R0 INC R0 ADD R2,R0  ;ADD PC CMP R0,R5  ;IS THE RESULT A PROPER REL. BRANCH? BR O.WDS3 ; PROCESS G - GO O.GO: TSTB O.SMFD ;WAS ";" TYPED? BEQ O.ERR1 ;BR IF NOT TYPED TSTB IPLFLG ;IS IPL INIT IN PROGRE5~ؕ~P~Ȗ#~@6n~~p}~~`7~_~~8SS? BEQ 2$ ;NO CLRB IPLFLG ;YES, CLEAR IPL BR 4$ ;RETURN TO IPL 2$: TST R3  ;WAS K; TYPED? BEQ O.ERR1  ; TYPE ? IF NOT MOVB #O.BKP+3,O.P ;CLEAR PROCEED ASR R5  ;CHECK LOW ORDER BIT BCS O.ERR1  ;ERROR IF ODD NUMBER ASL R5  ;RESTORE WORD MOV R5,O.UPC ;SET UP NEW PC 4$: MOVB #O.STM,ST  ;SET HIGH PRIORITY JSR 5,O.RSTT ;RESTORE TELETYPE O.TBIT: CLRB O.T  ;CLEAR BIS9@a~$~0 ROSLOD IIA # ROSLOD PASS #1 END  ROSLOD PASS #2 BEGIN ERROR # P **** ROSLOD LOAD MAP **** **** ~LOAD ELEMENT [LODTMP] **** / / : C********** ELEMENT TITLE: [] SECTION ENTRY OFFSET SIZE TOTAL}~ <> :~ؕ~P~Ȗ#~@;n~~p}~~`< #O.TBT,O.UST ; BOTH T-BIT FLAGS TSTB O.S  ;SEE IF WE NEED A T BIT BNE O.GO2  ;IF NOT GO NOW BIC #O.TBT,O.UST ;SET TH T BIT O.GO1: JSR 5,O.RSB  ;RESTORE BREAKPOINTS O.GO2: JSR 0,O.RSR  ;RESTORE REGISTERS MOV O.UST,-(SP) ; AND STATUS MOV O.UPC,-(SP) ; AND PC NOP   ; CHANGE TO HALT FOR DEBUGGING MOV O.UST,-(SP) ; MOV IN STATUS FIRST W/O T BIT BIC #O.TBT,(SP) ; SO INTERRUPTS CAN HAPPEN BEFORE MOV (SP)+,ST ; RTT TURNS ON THE T BIT. O.RTIT=  "********** UNRESOLVED REFERENCES ~ `'~K~_~>~2~0~A~ ?~ؕ~P~Ȗ#~@@: RTI   ; CHANGED TO RTT WHEN RUNNING ON /45 ; PROCESS P - PROCEED ; ONLY ALLOWED AFTER A BREAKPOINT O.PROC: TSTB O.SMFD ;WAS ";" TYPED? BEQ 2$ ;BR IF NOT TYPED MOVB O.P,R0 TSTB R0  ;CHECK LEGALITY OF PROCEED BLT 2$ ;NOT LEGAL TST R2  ;CHECK FOR ILLEGAL COUNT BEQ 4$ ;LEGAL 2$: JMP O.ERR ;JUMP IF ILLEGAL 4$: TST R3  ;WAS COUNT SPECIFIED? BEQ A~xn~~hB~P~~_~C~2~0~A~ DO.PR1  ;NO MOV R5,O.CT(R0) ;YES, PUT AWAY COUNT O.PR1: MOVB #O.STM,ST ;FORCE HIGH PRIORITY JSR 5,O.RSTT ;RESTORE TTY O.C1: CMPB O.P,#O.BKP ;SEE IF A REAL ONE OR A FAKE BGT O.TBIT  ;BRANCH IF FAKE TSTB O.S  ;SEE IF SINGLE INSTRUCTION MODE BNE O.TBIT  ;IF SO EXIT NOW MOVB #O.STM,ST ;SET HIGH PRIORITY INCB O.T  ;SET T-BIT FLAG BIS #O.TBT,O.UST ;SET T-BIT BR O.GO2 ; BREAKPOINT HANDLER ROSODT: MOV (SP)+,O.UPC ;PRIORIE}~~X~Н~HF~xn~~hG~P~~_~HTY IS 7 UPON ENTRY MOV (SP)+,O.UST ;SAVE STATUS AND PC MOVB #O.BKP+3,O.P ;TELL ;P THAT WE CAN CONTINUE O.BK1: JSR 0,O.SVR  ;SAVE VARIOUS REGISTERS TSTB O.T  ;CHECK FOR T-BIT SET BNE O.TBIT  ;JUMP IF SET JSR 5,O.REM  ;REMOVE BREAKPOINTS TSTB O.PRI  ;CHECK IF PRIORITY BPL O.BK2  ; IS AS SAME AS USER PGM MOVB O.UST,R5 ;PICK UP USER UST IF SO BR O.BK3 O.BK2: MOVB O.PRI,R5 ;OTHERWISE PICK UP ACTUAL PRIORITY CCC   ;CLEAR CARRY RORB R5  ;SHII~#~8~2~(J}~~X~Н~HK~xn~~hLFT LOW ORDER BITS RORB R5  ; INTO RORB R5  ; HIGH ORDER RORB R5  ; POSITION O.BK3: BIC #O.TBT,R5 ;CLEAR POSSIBLE T BIT (S/I MODE) MOVB R5,ST  ;PUT THE STATUS AWAY WHERE IT BELONGS MOV O.UPC,R5 ;GET PC, IT POINTS TO THE TRT TSTB O.S  ;SEE IF IT WAS SINGLE INSTRUCTION FUN BMI O.B4  ;IF SO HANDLE THERE TST -(R5) MOV R5,O.UPC MOV #O.BKP,R4 ;GET A COUNTER O.B1: CMP R5,O.ADR1(R4) ;COMPARE WITH LIST BEQ O.B2  ;JUMP IF FOUND DEC R4 M~A~~P~N~#~8~2~(O}~~X~Н~HP DEC R4 BGE O.B1  ;RE-LOOP UNTIL FOUND JSR 5,O.SVTT ;SAVE TELETYPE STATUS JSR 5,O.CRLF MOV #O.BD,R4 ;ERROR, NOTHING FOUND MOV #O.BD+1,R3 JSR 5,O.TYPE ;OUTPUT "BE" FOR BAD ENTRY MOV R5,R0 ADD #2,O.UPC ;POP OVER THE ADJUSTMENT ABOVE BR O.B3  ; OR CONTINUE O.B4: MOVB #O.BKP+2,R4 ;SET BREAK POINT HIGH + 1 MOV R5,O.ADR1(R4) ;STORE NEXT PC VALUE FOR TYPE OUT BR O.B2 O.B2: MOVB R4,O.P ;ALLOW PROCEED Q~_~ 2!^~pv@~R~A~~P~S~#~8~2~(TDEC O.CT(R4) BGT O.C1  ;JUMP IF REPEAT MOV #1,O.CT(R4) ;RESET COUNT TO 1 JSR 5,O.SVTT ;SAVE TELETYPE STATUS, R4 IS SAFE MOV #'B,R0 JSR 5,O.FTYP ;TYPE "B" MOVB O.P,R0  ;CONVERT BREAKPOINT NUMBER TO ASCII ADD #140,R0 ASR R0 JSR 5,O.FTYP MOV #';,R0 JSR 5,O.FTYP ; TYPE MOV #2,O.BW  ; SET WORD MODE MOVB O.P,R4 MOV O.ADR1(R4),R0 ;GET ADDRESS OF BREAK O.B3: JSR 5,O.RORA ; CHECK FORMAT JMP O.DCD  ;GO TO DECODER UOBJECT LOAD ~` SYMBOLICASM SYM FOR SYM DATA JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDECFREE READ WRITE DELETED .~ؤHFILE ID START FILE LOGICAL FILE CKSAVE PROTECT CORE DIR. IFD > SECTOR TYPE DEVICE LENGTH~P 0=NONE Y/N Y/N I************************************************************************V~_~~pn~W~A~~P~X ; SAVE REGISTERS R0-R6 ; INTERNAL STACK O.SVR: MOV (SP)+,O.XXX ;PICK REGISTER FROM STACK AND SAVE MOV SP,O.USP ;SAVE USER STACK ADDRESS MOV #O.USP,SP ;SET TO INTERNAL STACK MOV R5,-(SP) ;SAVE MOV R4,-(SP) ; REGISTERS MOV R3,-(SP) ;1 MOV R2,-(SP) ; THRU MOV R1,-(SP) ; 5 MOV O.XXX,-(SP) ;PUT SAVED REGISTER ON STACK TST -(SP) RTS R0 ; RESTORE REGISTERS R0-R6 O.RSR: TST (SP)+  ;POP THE EXTRA CELL MOV (SP)+,O.XXX ;GET R0 FROM STACKY  FXXXXX B~ȥ XXXXXX XXX XXX XXXXXX XXXXXX X X XXXX  > ELEMENT CREATED<~@ START I NAME TYPE STATUS DATE TIME SECTOR LENGTH H .NAME. OBJECT ~FREE 02-JAN-72 23:17:59 005466 000100 -DISC ERROR-BATCH FILE ELEMENT DIRECTORY READ DISC DIRECTORY R\~0EAD ERROR 7.7 9 7 DJBE8wD7 JdZ~`}~ؤ~P[~_~~pn~\ MOV (SP)+,R1 ;RESTORE MOV (SP)+,R2 ; REGISTERS MOV (SP)+,R3 ; 1 MOV (SP)+,R4 ; THRU MOV (SP)+,R5 ; 5 MOV O.USP,SP ;RESTORE USER STACK MOV O.XXX,-(SP) ;PUT R0 ON USER STACK RTS R0 ; RESTORE BREAKPOINTS 0-7 O.RSB: MOV #O.BKP,R4 ;RESTORE ALL BREAKPOINTS O.RS1: MOV @O.ADR1(R4),O.UIN(R4) ;SAVE CONTENTS MOV O.TRTC,@O.ADR1(R4) ;REPLACE WITH TRAP DEC R4 DEC R4 BGE O.RS1  ;RE-LOOP UNTIL DONE RTS R5  ; THEN QUIT ]% * $(x` 3E ~-e  w ~e W" p Ew  D݊ 7wnNN r~   !f&f&E l Y~E ~dYNE H 8 ,~ w d X ( \ d0 E~ 8*   ^~ȥ~@~#~0_~`}~ؤ~P` ; SAVE TELETYPE STATUS O.SVTT: MOVB O.RCSR,O.CSR1 ;SAVE R C/SR MOVB O.TCSR,O.CSR2 ;SAVE T C/SR CLRB O.RCSR  ;CLEAR ENABLE AND MAINTENANCE CLRB O.TCSR  ; BITS IN BOTH C/SR O.SVT1: TSTB O.TCSR  ;LOOP UNTIL READY BIT COMES ON BPL O.SVT1  ;BR IF BIT NOT ON RTS R5 ; RESTORE TELETYPE STATUS O.RSTT: JSR 5,O.CRLF TSTB O.TCSR  ;WAIT READY BPL .-4  ; ON PRINTER BIT #4000,O.RCSR ;CHECK BUSY FLAG BEQ O.RSE1  ;SKIP READY LOOP IF NOT BUSY Ta( v 8t xj n` d(V ZvL'~ Pf ӝӝ  7 d  e   %  f'E~ A`w w w w A`wf| wfv wfp wfj  . C `w?Vыw?O>~xыw?H       > 2^ w *3  e  z~Ŝ%Eqe b~2~ ~A~c~ȥ~@~#~0dSTB O.RCSR  ;WAIT READY BPL .-4  ; ON READER O.RSE1: MOVB O.CSR1,O.RCSR ;RESTORE MOVB O.CSR2,O.TCSR ; THE STATUS REGISTERS RTS R5 ; REMOVE BREAKPOINTS 0-7 ; IN THE OPPOSITE ORDER OF SETTING O.REM: TSTB O.S  ;SEE IF SINGLE INSTRUCTION IS GOING BNE O.R2  ;EXIT IF SO CLR R4  ;REMOVE ALL BREAKPOINTS O.R1: MOV O.UIN(R4),@O.ADR1(R4) ;CLEAR BREAKPOINT INC R4 INC R4 CMP R4,#O.BKP BLE O.R1  ;RE-LOOP UNTIL DONE O.R2: RTS R5  ;THEN QUIT e~hJ2~D~Xv@,,, ,,,@f~P~~x_~g~2~ ~A~h ; TYPE OUT CONTENTS OF WORD OR BYTE WITH ONE TRAILING SPACE ; WORD IS IN R0 O.CADV: MOV #6,R3  ;# OF DIGITS MOV #-2,R4  ;# OF BITS FIRST-3 CMP #1,O.BW  ;SEE IF WORD MODE BNE O.SPC  ;BRANCH IF SO SUB #3,R3  ;ONLY DO 3 DIGITS INC R4  ;DO 2 BITS FIRST SWAB R0  ;AND TURN R0 AROUND O.SPC: MOV R0,-(SP) ;SAVE R0 O.V0: ADD #3,R4  ;COMPUTE THE NUMBER OF BITS TO DO CLR R0 O.V1: ROL (SP)  ;GET A BIT ROL R0  ;STORE IT AWAY i~Ь*ROS DISC SYSTEM INITIALIZEm~HD .  pp,lxelx>%  |>%|0 e B"EQ~ w w7 x/% %  _    ~8Pd2?j~hn~~X}k~P~~x_~l DEC R4  ;DECREMENT COUNTER BGT O.V1  ;LOOP IF MORE BITS NEEDED ADD #'0,R0  ;CONVERT TO ASCII JSR R5,O.FTYP ;TYPE IT DEC R3  ;SEE IF MORE DIGITS TO DO BGT O.V0  ;LOOP IF SO MOVB #' ,R0  ;SET UP FOR TRAILING SPACE TST (SP)+  ;GET RID OF JUNK BR O.FTYP ; ;O.CLRR  CLEAR RELOCATION REGS ;  I.E., SET THEM TO A HIGH MEM LOC. (-1) ;  R1,R0 CLOBBERED ; O.CLRR: MOV #O.RELT,R1 MOV #-1,R0 MOV R0,(R1)+ MOV R0,(R1)+ MOV R0,(R1)+ MOV Rm~      I VZCZ ~(FBB2 .-(lh THIS IS TSTBUG C1 TYPE YOUR NAME A~ND IT WILL BE PRINTED ON THE LP! ~n~Ь~H~~8o~hn~~X}p0,(R1)+ MOV R0,(R1)+ MOV R0,(R1)+ MOV R0,(R1)+ MOV R0,(R1) RTS R5 ; .EOT   ;END OF TAPE #3 ; TYPE ONLY ONE CHARACTER (CONTAINED IN R0) O.FTYP: TSTB O.TCSR BPL .-4 MOVB R0,O.TDB O.TYP1: RTS R5 ; GENERAL CHARACTER INPUT ROUTINE -- ODT11X ; CHARACTER INPUT GOES TO R0 O.GET: TSTB O.RCSR  ;WAIT FOR BPL .-4  ; INPUT FROM KBD MOVB O.RDB,R0 ;GET CHARACTER - STRIP OFF PARITY BIC #177600,R0 ;STRIP OFF PARITY FROM CHARq7  = H {~05~ @@ dd       dd$~ 6 w V 7 7 w B ?  &DCc  w " w  w  % 7  &0~w \w wlw  fw \ J w Z 7Y w~wrw v W %iE e w~P  =~w    w   w w   w w  r~#~(~2~s~Ь~H~~8tACTER CMPB #3,R0 ;IS IT ^C? BEQ O.GET1 ;IF SO, DO NOT ECHO TSTB O.SCRN ;SHOULD WE ECHO ? BNE O.GET2 ;BR IF YES CMPB R0,#012  ;SEE IF A BEQ O.GET1  ;IF SO SAVE THE PAPER O.GET2: JSR 5,O.FTYP ;ECHO CHARACTER BEQ O.GET  ;IGNORE NULLS TSTB O.SCRN  ;SHOULD WE PASS ON SPACES? BNE O.GET1  ;BR IF YES CMPB #40,R0  ;CHECK FOR SPACES BEQ O.GET  ;IGNORE SPACES O.GET1: RTS R5 ; GENERAL CHARACTER OUTPUT ROUTINE - ODT11X ; ADDRESS OF FIRu 7 w  7 w 7 7 |  w7   ww (b ~p ww w A B` D %Z V w]  7L w|B wr@ E wR7 wt~  E tP Iw - % w Z =w   7l =w Z e0w ~`,w % @w Lq k=b w @w &ww w=w d w  0 w Ge0w D~س,w < v~A~~P~w~#~(~2~xST BYTE IN R4, ; ADDRESS OF LAST BYTE IN R3, (R3)>(R4) O.TYPE: CMP R3,R4  ;CHECK FOR COMPLETION BLO O.TYP1  ; EXIT WHEN DONE MOVB (R4)+,R0 ;GET A CHARACTER JSR 5,O.FTYP ;TYPE ONE CHARACTER BR O.TYPE  ;LOOP UNTIL DONE ; ;CHECKS FOR ^U. IF PRESENT, ECHOS IT ;GOES TO COMMAND DECODER. STACK GETS INITIALIZED O.CU: CMPB O.RDB,#225 ;IS ^U IN TTY BUFFER BNE O.CU1  ;BR TO RETURN IF NOT MOVB #'^,R0  ;ELSE TYPE IT JSR R5,O.FTYP MOVB #'U,R0 JSR R5,O.FTYPy  w  3 7  w ?w  w 7 w 77~P7\ 7    w %0 %7E `  1: W І  lm 7 y.hv>z:F~ȴL*h&.hv 7D  77% w %=w ~@w  w w ww  l ~7mttppw td^\w lR%/w h\tz~p_~~`n~س{~A~~P~| MOV #O.UR0,SP ;INT STACK JMP O.DCD O.CU1: RTS 5 ; ;SUBROUTINE TO LOCATE RELOCATION REGISTER NEAREST BUT STILL ;BELOW THE ADDRESS IN O.CAD. RETURNS WITH THE REGISTER ;NUMBER IN R0, AND WITH THE DISTANCE BETWEEN THE REGISTER ;AND (O.CAD) IN O.XXY ;IF NO GOOD RELOC. REG. FOUND, R0 WILL = -1 O.LOC: CLR R0 MOV #-1,O.XXX  ;INITIALIZE RELOC. REG. INDEX MOV #177777,O.XXY ;INITIALIZE DISTANCE TO A HIGH VALUE O.LOC4: CMP R0,#O.RLR ;ARE WE DONE CO}~ 8 ..  L e  !B !=L !644  !44  %~0 w   @w t@ % % w Z ww  pD  &C@AEPA~&fw Lw P/w Vw   ` E `    ww 7Uz~ Ew T76  pw ׭U~~P}~ȴ~@~p_~~`n~سMPARING? BHI O.LOC1  ;BRANCH IF DONE CMP O.RELT(R0),O.CAD ;IS CURR. RELOC. BIAS > (O.CAD)? BHI O.LOC2  ;IF SO, BRANCH -- DON'T SUBTRACT, GET NEXT MOV O.CAD,R1 ;OTHERWISE TAKE THE DIFFERENCE SUB O.RELT(R0),R1 ; OF CURR. RELOC. REG. AND O.CAD CMP O.XXY,R1 ;IS THE RESULT THE SMALLEST SO FAR? BHI O.LOC3  ;BRANCH IF YES (UNSIGNED CONDITIONAL) O.LOC2: TST (R0)+  ;OTHERWISE, BUMP R0 FOR NEXT RELOC. REG. BR O.LOC4  ;LOOP BACK FOR NEXT COMPARISON O.LOC1: MOV O.XXw`@j~5!< , *e E WpB` e!ED !݃wBw0= -~7H<"w7ww J ŝwъG@ wD~t! w d,-w @ej$ĕt7G wBw B+e` w 4;w ,ĝw ~w4  e w ҕKҕSҕU~  we0~~0~#~ ~P}~ȴ~@X,R0 ;PUT REG.# IN R0 RTS 5  ;JOB OVER, RETURN O.LOC3: MOV R1,O.XXY ;REMEMBER SMALLEST DIFFERENCE IN O.XXY ASR R0  ;AND ASSOCIATED REGISTER NUMBER MOV R0,O.XXX ; IN O.XXX ASL R0  ;RESTORE R0 TO ORIGINAL VALUE BR O.LOC2  ;GO FO NEXT COMPARISON. ; ; ;SET A SEGMENT OF MEMORY TO A GIVIEN VALUE. (ENTERED VIA R5) ;FIRST WORD OR BYTE ADDRESS IS IN R4, =TO R3 AT EXIT ;LAST WORD OR BYTE ADDRESS IS IN R3 ;BYTE OR WORD VALUE IS IN R0 ;BYTE OR WORD M  w we0  we0  we~x0~  .e!T P -^rTwhwwx`0 E ~ ׭~) ׭N< Fl e. D l~  l f&0~hf r4 \ W  < !%$ &e~ N @ e0w &  ~2~~A~~~0~#~ ODE IS SPECIFIED BY O.BW ; O.ST: O.ST2: CMP #1,O.BW  ;IF NOT BYTE MODE, ASSUME WORD BEQ O.ST1  ;BRANCH IF BYTE MODE MOV R0,(R4)+ ;DEPOSIT WORD VALUE, BUMP R4 BY 2 O.ST3: CMP R4,R3  ;ARE WE DONE? BLOS O.ST2  ;BRANCH IF NOT DONE RTS 5  ;OTHERWISE EXIT O.ST1: MOVB R0,(R4)  ;DEPOSIT BYTE VALUE INC R4  ;BUMP R4 BY 1 BR O.ST3  ;GO TO TEST IF DONE ; CLOSE WORD OR BYTE AND EXIT, ; UPON ENTERING, R2 HAS NUMERIC FLAG, R4 HAS CONTENTS O.CLSE: TST R2   ,7l  l  ~X   އw  rn  7,\V-T HwD 7< %,!d~л  %? ?96w v w %w 77w V e0w ,w ~Hw rXTNH Cå å$ נA   e` p ~ Ëנ~xP~~h_~~2~~A~;IF NO NUMBER WAS TYPED THERE IS BEQ O.CLS1  ;NO CHANGE TO THE OPEN CELL CMP #1,O.BW BEQ O.CLS2  ;JUMP IF BYTE MODE BHI O.CLS1  ;JUMP IF ALREADY CLOSED O.CLS4: MOV R4,@O.CAD ;STORE WORD O.CLS3: BR O.CLS1 O.CLS2: MOVB R4,@O.CAD ;STORE BYTE O.CLS1: RTS PC O.CRLF: MOV #O.CR+1,R3 ;LWA BR O.CRS O.CRLS: MOV #O.CR+2,R3 ;LWA * O.CRS: MOV #O.CR,R4 ;FWA JSR 5,O.TYPE ;TYPE SOMETHING RTS R5 ;SUBROUTINE O.RORA ;FUNCTIe ee e ѐ  @( DEBUG H PC CP R L T NZVC Q~8R0 R1 R2 R3 R4 R5 SP @ LOCN CONTENTS BE~*;/\ $G._<^,OWEBP@>SRC-FI!XADTSPMDTCFRB~3j($~Xn~л~H}~~xP~~h_~ON: DECIDE IF AN ADDRESS IS ;TO BE PRINTED IN ABSOLUTE OR IN RELATIVE ;FORM. IF THE FLAG O.FORM=0 THEN PRINT ;IN RELATIVE FORM, OTHERWISE PRINT IN ;ABSOLUTE FORM. ;IF THE ADDRESS IS TO BE PRINTED IN RELATIVE ;FORM, ;THEN THE ADDRESS WILL BE PRINTED OUT ;RELATIVE TO A RELOCATION REGISTER NEAREST ;BUT STILL BELOW THE ADDRESS. IF NO SUCH ;RELOCATION REGISTER EXIST THEN THE ;ADDRESS WILL BE PRINTED IN ABSOLUTE FORM ;INPUT: THE ADDRESS TO BE PRINTED IS IN R0. ;DATA SAVED: R0 CONTAINING THE AD~8~~(~Xn~л~H}~DRESS TO BE ;PRINTED, AND LOCATION O.CAD CONTAINING ;THE CURRENT ADDRESS WERE SAVED AND RESTORED. ;CALLED: JSR 5,O.RORA O.RORA: CMP #0,O.FORM ;CHECK FORMAT BEQ O.NOTA  ; GO TO O.NOTA IF RELATIVE O.ABS: JSR 5,O.CADV ;PRINT ABSOLUTE ADDRESS RTS R5 O.NOTA: MOV O.CAD,O.TMP1 ;SAVE O.CAD MOV R0,O.TMP2 ;SAVE R0 MOV R0,O.CAD ;PREPARE INPUT FOR O.LOC JSR 5,O.LOC  ; FIND BEST N TST R0 ;IF = -1, PRINT IN ABS. BLT O.ABS1 ADD #60,R0  ; CONVERT N TO ANSCII ~}~`~w ,×& u6 7!p* *kg  [*ߐ W  !~PQ *r B f: 61: ~#~~2~~8~~(JSR 5,O.FTYP ; TYPE N MOV #',,R0  ; PREPARE INPUT FOR O.FTYP JSR 5,O.FTYP ; TYPE COMMA MOV O.BW,-(SP) ; SAVE O.BW MOV #2,O.BW  ;ARTIFICIALLY SET MODE FOR WORDS MOV O.XXY,R0 ;PREPARE INPUT FOR O.CADV JSR 5,O.CADV ;TYPE RELATIVE AMOUNT MOV (SP)+,O.BW ;RESTORE MODE MOV O.TMP1,O.CAD ; RESTORE O.CAD MOV O.TMP2,R0 ; RESTORE R0 RTS R5 O.ABS1: MOV O.TMP2,R0 ;RESTORE R0,CAD BEFORE MOV O.TMP1,O.CAD ;TYPING IN ABSOLUTE BR O.ABS ; ; MOD40 PACK - E*42 7 7  ߐ@ַ:w h e ~e Hwv 6 &&f F-  l7 ի~@fv  & 6 6U×7 7  7 ~ *!H~!*ߐ$&& 2* J81:18ߐH& w4—!& "~0 R1*7 7 ~A~~pP~~#~~2~NTERED WITH JSR PC, PACK00 ; ; INPUT: R0=ADR OF MOD40 WORD (1 WORD) ;  R1=ADR OF ASCII CHARACTERS (3 CHARS) ; ; OUTPUT: R1 POINTS ONE PAST END OF ASCII STRINT ;  THE MOD40 WORD IS FORMED AS ;  N=C1*40^2+C2*40+C3 ; ; R2,R3,R4 ARE CLOBBERED PACK00: PACK01: MOV #-3,R4  ;LOOP CT. CLR R2  ;0 SUM PACK05: MOVB (R1)+,R3  ;GET NEXT ASCII CHAR. CMPB #' ,R3 BEQ PACK02  ;"BLANK" CMPB #'$,R3 BEQ PACK04  ;"$" CMPB R3,#'A BLO PACK03  ;"." OR "0-9" 7 7 0 W   *f /w*w P7 M* y !!!!! ! ~ !!! & . 7^) **&& 2*Z!W"1f )~ !w ccc,! IS ECHOED O.I~*(1%@ %w%75%%4   %=$f$@$ J@%w%7%%3 1%#~p+1%%D$A5@ =$f$ % %$f$ÝB% A$72%w0$@ %w%@%P~+w%7  5@.w8. 5.|5.x5 .U.=$=$.pw` Bte% ~`, @e%e% :J   $3$$$$%% E  % %%%%%~(~~~~Hn~~8}~D: .BYTE 012 .BYTE 015 .BYTE 177 .ASCII /ODT-11R V004A/ O.IDND=.-1 .EVEN O.BD: .WORD "BE O.BIAS: .WORD 0 ;CURRENT RELOCATION BIAS O.MINS: .BYTE 0 ;MINUS SIGN TYPED (SWITCH)   ;0=NO MINUS TYPED; 1=MINUS SIGN TYPED .EVEN O.TMP1: .WORD 0 ;SAVE CELL O.TMP2: .WORD 0 ;SAVE CELL O.CR: .BYTE 015 ; .BYTE 012 ; .BYTE '* ; * O.LGCH: .BYTE '; ; .BYTE '/ ; / .BYTE '\ ; \  (BACK SLASH) .BYTE 015 ; CARRIAGE RETURN .%%%%%%%!~,%%% $3$3% }$f$ 3%%% -z$ E =$ %7m~P-@%w%^$%f&z % w z   & D ĥ+ ĥ-ĥ   ~- D0 Wq a   vw " w & & w| @@)~@.  y & 45#~~2~~(~~~BYTE '$ ; $ .BYTE 'G ; G .BYTE O.NEXT ; CHAR TO BE USED TO OPEN NEXT LOCN .BYTE '_ ; _ (BACK ARROW) .BYTE '< ; < .BYTE '^ ; ^ (UP ARROW) .BYTE ', ; , .BYTE 'O ; O .BYTE 'W ; W .BYTE 'E ; E .BYTE 'B ; B .BYTE 'P ; P .BYTE '@ ; @ .BYTE '> ; > .BYTE 'S ; S .BYTE 'R ; R .BYTE 'C ; C .BYTE '- ; - .BYTE 'F ; F .BYTE 'I ; I .BYTE '! ; ! .BYTE 'X ; X .BYTE 'A ; A .BYT U0 ffffff~.ffF "e**E f f $*f~0/77  e z 0//) ERROR~~/ XXXXX XXXXXX XXXXXX XXXXXX XXXXXX /////w &Ħ w ąf  p~ 0h 7^ ķ~pA~~`P~#~~2~E 003 ;CTRL C O.CLGT = .-O.LGCH  ;TABLE LENGTH O.TL: .BYTE 'S ;DO  1 .BYTE 'P ;NOT  2 .BYTE 'M ;CHANGE  3 .BYTE 0 ;THE  4 .BYTE 0 ;ORDER  5 .BYTE 'C ; 6 .BYTE 'F ;  7 .BYTE 'R ;  10 .BYTE 0 ; 11 .BYTE 0 ; 12 .BYTE 0 ; 13 .BYTE 0 ; 14 .BYTE 0 ;  15 .BYTE 0 ;  16 .BYTE 0 ;  17 .BYTE 'B ; 20 O.LG = .-O.TL .EVEN O.TRTC: TRT   ;TRw  7 |( =w /7 7 /f& C V~0   Af 2#/ ^   0 E ~1&f&M 'd w ,1 Օ+  d 0B` e0  w %Օ- ҋ~1 0&  UUU ͷͷ,.0ͷͷ͘&Ÿ~2 ~x~P_~~@n~~pA~~`P~ACE TRAP PROTOTYPE ;THE ORDER OF THE FOLLOWING ENTRIES IS CRITICAL . = OLDODT-144 ;ODT'S STACK IMMEDIATELY PRECEDES ODT O.UR0: 0 ;USER R0 0 ; R1 0 ; R2 0 ; R3 0 ; R4 0 ; R5 O.USP: 0 ;USER SP O.UPC: 0 ;USER PC O.UST: 0 ;USER ST O.PRI: 7 ;ODT PRIORITY O.MSK: 0 ;MASK O.LOW: 0 ;LOW LIMIT O.HI: 0 ;HIGH LIMIT O.CNST: 0 ;CONSTANT REGISTER O.FORM: 0 ; FORMAT REGISTER  ; IF $F=0 RELATIVE ADDRESSING  ; ABSOLUŒ*@6€ 4262b2q~x2@*~2jkoz~h3~0}~~ ~~P_~~@n~TE OTHERWISE ;RELOCATION REGISTERS O.RELT: -1,-1,-1,-1,-1,-1,-1,-1 ;INITIALLY SET TO A HIGH ADDR. ; BREAK POINT LISTS, ADR1 = ADDRESS OF BREAKPOINT,CT = COUNT, ; UIN = CONTENTS O.ADR1:  . = .+O.BKP+4 O.CT:  . = .+O.BKP+4 O.UIN:  . = .+O.BKP+4 . = O.TRTC+2 .END OLDODT ;END OF TAPE #4 ~3n~X4~42(5;~H5d85&@&& zxf&frʟ x1D7!~~#~~x~0}~~ ~(~2~8~#~vk .Ŋe B` ~5] BY42V DwNE /H BW>1 4 @ N2ɟ\2\2 `f  t~86  -G  P25]2P5 ; f Z wtwxwwL2$f pR2Dw>0~6T24V20X2 K*2 4+e  B5   e 1 lt`2 <@ -ww~(74Ee4 @  Հ E `2~~hA~~~#~~xH~Н~X~~}8`e2  ^2 _2 = 5= 5& 4 _~7vtZ2EP"5=$55UAPZ2CP5v "ȟ}Z25 ]2 w߉    ~8ȼ¼ 5R5& wwŀ En~87 [@!t4e 41   +5% z2 l~9m l m 44 e~XP~~H_~2~~hA~h~~nx~4  $& P߀e&f d߄ w fWt5M~9? @w TER5w]2 CP5 AR2DT2wV2wX255wV@qwW~9f & @L2DN2C `` K $  42\2B  W~p:fff  @ P2P5N5 ]2  P2wܟ5R5 wTwD@BEp Bm`2 ~:$ b@ ~8n~~(}~~XP~~H_~~_~~P~0u\2wXww Թҹff 0Ĺw ?@ 5255&5^2 5BZ2 E~`; 5w B652r2r5 r&5  bt5t&55w> T]2 w@B@ R5b~;]2AR2DT2wV2wX2_2 5J  1EMw ~P< K D7!F .BEW<q B5 2 - Dw< A!1 f~~~~~8n~~(}~ ~A~0~2~, ~<L 7B -G6  (G FE7 pہDw̷w·  CQ~@=PC2<77 7C7 jwW VPw ~>8w f& ~= fww ٞTLJ HI 52-:56  ewX-w-~0> ڃ vtE0PEPv lQ bWf#~t q>@q)eJ x   N Ê <~p%! ,c ѐjˋÜ`E &  P   cL|wZ ɋr߷ pT~~~~@~#Ȗ~P~ؕ~( & <<K B~> B > .41 Wf v 8ww 5w 058/~ ?57 w4< w61j?~?d 3~@ 3!A BDDDR@~A~~P~#~)eJ x   N Ê <~p%! ,c ѐjˋÜ`E &  P   cLwZ ɋr߷ hT`~~}p~~n$R@@~@w , w $ w w ~Af ׅ1 F %?%;  5 @E .* -G%س L~xA0^w w & T# vw f ցwtp  | Հ@@ x@`~A$& ր &L HwLw~_~~pn~ - ;NO ERRORS ; ; PROGRAMMER - 66 ; ; DATE - 11/3/72 ; ; REVISION - 0 ; ; ; CORDRC: ;ENTRY MOV (SP),-(SP) ;PUSH RETURN INTO STACK CLR 2(SP) ;INDICATE NO ERROR. TST R3 ;READ HEADER YET? BNE 15$ ;YES STPHDR MPL,LOGNUM,0,0 ;SET PRE-HANDLER LIST FOR READ STHAND MPHLST,EXIT2,MTBUF1,MPHRED,MPHDSZ,0 ;SET~~_~ fw^ t7@ ^B7@@    ~hB @ }@@` ?t? o72`t? X?j?7 Bt@@   |Z ~B8B\ r ~ ` ( @ T1ŀ@@&& vw" T?7 7 & 0~XC 7 w>wH 7 7 C77 @@  `@xz `r ŜE r~C`Z-~`}~ؤ~P HANDLER LIST FOR READ. MOV #MPL,-(SP) ;PRE-HANDLER LIST ADDRESS JSR PC,MTIO ;ISSUE READ INC R3 ;INDICATE RECORD READ. TST MPL+MPLERR ;ANY ERRORS? BEQ 15$ ;NO ; ; 5$: ;ERROR DETECTED. CMP #MPLMTE,MPL+MPLERR ;FATAL? BEQ 10$ ;YES CMP #MPLTIM,MPL+MPLERR ;NO. TIME-OUT? BEQ 10$ ;YES ~P~(~A~\RHr@e < b-^: , ?t? 1 wj 8PD 6~HD@@   mvD   w$3 7w0ENExVEp@~D Dzw\@@ | r ~B H . @ @ H E& < H *w œE~8E@@l3 Հŀ 1w   1 w 1E  * ~ȥ~@~#~0 DEBUG 1 ;NO. BR 15$ ; ; ; 10$: ;FATAL ERROR DEC 2(SP) ;FLAG ERROR FATAL RTS PC ;RETURN ; ; 15$: ;NO READ ERRORS CMPB MTBUF1+MTHTPN,R1 ;TAPE # MATCH? BEQ 25$ ;YES MOVB MTBUF1+MTHTPN,MS04TN ;TAPE # TO MSG BISB #60,MS04TN ;CONVERT TO ASCII MOV #4,-(SP) ;TAPE-#'8~2~H~#Ў~E~EWq Ca 3 4 e  Ŝ4Eq e4 7 L r @p e`@6C 8 .@ <K s e~(FՀs @@lBEwNwT 5f&F U~Fa  ;pE\HH7H 7Gz@WtEE ~,hf`>~G\EatEEt`EU֋ tE Et`~2~ ~A~S-DON'T-MATCH MSG. 20$: ; JSR PC,MTTYOT ;ISSUE MSG INC 2(SP) ;FLAG ERROR DATA RTS PC ;RETURN ; ; 25$: ;TAPE # OK. CMP MTBUF1+MTHJDT,JDATE ;DATES MATCH? BEQ 30$ ;YES ;JDATE WRONG CNVBA1 MTBUF1+MTHJDT,MS05JD,3 ;CONVERT TO ASCII & PUT IN MSG. MOV #5,-(SP) ;JDATES-DON'T-MATCH MSX~~h~~} EU ~G&&77 0C~eE&U0  . BҦ |^ " f!x ,%%D<61-|~H/h5XTQ\R@@@1`5G1`6A~H!0033  a~H~P~~x_~G BR 20$ ;TYPE IT & RETURN IN ERROR MODE. 30$: ;DATE & TAPE # OK MOV R1,R2 MTSLOG LOGNUM ;SET R1 TO BASE OF LOG TABLE TST (SP)+ MOV JDATE,MTLJDT(R1) ;SET JDATE MOVB R2,MTLTPN(R1) ; & TAPE #. RTS PC ;RETURN ; ; END CORDRC ; .PAGE .SBTTL COMONT ; ;* * * ; ; ; PROGRAM NAME - COMONT CORE ONLY MOUNT ; ; x~~n~~_~pIVIIII A~IVJJ>JJ S~`J~J~hn~~X} ; PURPOSE - TO MONITER AND CONTROL THE MOUNTING AND ; CONTROLLING OF THE LOAD TAPE AND ITS ; POSITIONING IN PREPARATION FOR MERGING. ; ; ; CALLING SEQUENCE - ; - ; MOV #MPLAUD,LOGNUM ;SET LOAD TAPE AS FUNCTION. ; JSR PC,COMONT ; ; TST (SP)+ ;ERRORS? ; ; ; ; ; ; PROGRAMMER - 66 ; ; DATE - 11/3/72 ; ; REVISION - 0 ; ; CO~ ~P~ c~PKINIIJBJJJJ:K~KxK8N ~@L6   /wRBKw we  3~L~Ь~H~~8MONT: ;ENTRY MOV (SP),-(SP) ;PUSH RETURN INTO STACK CLR 2(SP) ;INDICATE NO ERROR STPHDR MPL,LOGNUM,0,ASSIGN ;ASSIGN LOAD MOV #2,MPL+MPLARG ; TO PHYSICAL 2 MOV #MPL,-(SP) ;PRE-HANDLER LIST ADDR JSR PC,MTIO ;ISSUE ASSIGN TST MPL+MPLERR ;ERROR? BEQ COMA10 ;NO DEBUG 1 ;YES COMA10: 0~A~@~2ȇ~K  pw  m  fT/EK5K& ^˄T:~0MCK4HU  e0e  tH043e&ʋ   *  (~M1* e8f \ D w*BK2K+K ~U| z dB wʕ<~ N& \ʄwB wbew(/  / AK E E~#~(~2~ ; MOV #11,-(SP) ;MOUNT MSG JSR PC,MTTYOT ;TYPE IT MOV #15,-(SP) ;RESPOND OK MSG JSR PC,MTTYOT ;TYPE IT JSR PC,MTTYIN ;READ RESPONSE CMP #"OK,INTYBF+4 ;OK? BEQ 10$ ;YES MOV #2,-(SP) ;NO. FORMAT-ERROR MSG JSR PC,MTTYOT ;TYPE IT BR COMA10 ;TRY AGAIN ; ; 10$: ; STPHDRP~#؆~`~~W~Ne  Cm E f ~EŠpKʋwEWE f f /* r~O*3PTe33e e   w. e wA `w& ~OL1* 1 /^7  K  KKBK/   Eeʋ  ~P wE 4B@ >  0 */΁w~A~~P~ MPL,LOGNUM,0,0 ;PRE-HANDLER LIST FOR OPEN STHAND MPHLST,EXIT2,MTBUF1,MPHOPN,0,0 ;HANDLER LIST FOR OPEN MOV #MPL,-(SP) ;PRE-HANDLER LIST ADDR JSR PC,MTIO ;ISSUE OPEN TST MPL+MPLERR ;ERROR? BEQ 20$ ;NO DEBUG 1 ;YES 20$: ; BITB #MPHRDY,MPHLST+MPHSTA ;ON LINE? BNE 25$ ;YES MOV #14,-(SP) ;NO. NOT-ON-LIp~~}~~n  BK ( ~xP& Ȅ w%e 4  Ƿ U 22 wL 4 K3 0 K $~P  rfע׬* x RCe w P  *wD 5-1~hQ *T#& & F/ <ʕ* 8p:p8 :C/ <~Q BK  Ee  A ͕A ~p_~~`n~س NE MSG 22$: JSR PC,MTTYOT ;TYPE IT. BR COMA10 ;TRY AGAIN 25$: ; BITB #MPHWTR,MPHLST+MPHSTA ;WRITE RING INSTALLED? BNE 30$ ;NO MOV #12,-(SP) ;YES. WRITE-RING MSG BR 22$ ;TRY AGAIN 30$: ; BITB #MPHLDP,MPHLST+MPHSTA ;AT BOT? BNE 35$ ;YES MOV #13,-(SP) ;NOT-AT-BOT MSG ~~_~(~P wEAmECK  A d+~XR w W   \ʕw އ < ʕ/w Ke3   :~R* wʕ/6 @   /Ke   & D2  1~HS* & . : $3:  C & fKw"2 @  Z PE!~Sʕw/ʕ D&~P}~ȴ~@BR 22$ ;TYPE IT & TRY AGAIN ; ; ON-LINE, AT BOT & NO WRITE RING ; 35$: ; STPHDR MPL,LOGNUM,0,0 ;SET PRE-HANDLER FOR SPACE TO DISK IMAGE. STHAND MPHLST,EXIT2,MTBUF1,MPHSPC,0,CORRCS+1 ;HANDLER LIST FOR SPACE CLR R4 ;FLAG FOR ONE EOF. COMA12: ; MOV #MPL,-(SP) ;PRE-HANDLER LIST ADDRESS JSR PC,MTIO ;ISSUE SPACE. TST MPL+MPLERR~8~A~ Zw/ Kw 저 * ڠԠw ݎ&W* T$~8T* 66 e8f D vb  e ewE4/~T K f&  -Ct # & Ä&: 0:ʕ* 1 BPWE,O<^._$G\ ;/*BE S NTTE0z~ON C N OC L@ SP 5 R R4 3 R R2 1 R R0 VCNZT L R P C C PH UGEB Dy~(@  ѐ e ee eנË   h `e   @y~!W3 W3 W@WsW3 W  M 3 WxX  M W%~@[W X z MX `wX N V3 WxX&[d | MC fWWW ⼀  W0~[  W,Wd 2  wf&ff& XWAaes!WB3 W D! ! 3 X W % !3 X ~0\ ^ĕ  R  s!W5ЕsWX  3 X W 5  6 & `3 X ~\  "~8~~(~_H~~PX~Aנ $å åC HNTXrw w ,w 0e Vw 77w $x~%w vw .1? ?%   !,% <7 DwH T-V\Px~7,  nr w އ     d  d7w~T,    &w 0e @ N e& $%! %@& 5 55 X 3W    W~ ]xX[&d fXB ev]00& DžXwX@aAa !B@W~]Ww f CqBa fdX 5 f NDž1 7 %\~^ f 6 we*^6 EU0~E|UvR~^&~#~~2~~Ah~~2< W `w~&\ 4r f&f d v v~d D .e dF <T׭)VF PD {  ~ pv~E 0`wwwhr- P T!e.  ~0ew  0ew 0eu~w w 0ew ~UҕSҕKҕ w "e  )EjUPdEbU\ EPU@JEHUBw P7 7М   DH^   5qH^ W !5y~_  ^V NNEJ  5qH^w чU.hhhh~x_T.lFIkljjjjjjjjj 8B0 7 ww 7~_Z_ujjw  7xw w XĝZ77J F fڟ!6`0w & ڟ*~A~~pP~x~~#~~Xw w #ĝ@w ;Hw `eu~?Vw Bw [7tĕ$e@w %$xw  t!w @wu~ŝ ^w w7w 6<H*726-<=Lw%fw!t~U DE!e e  <!5j@`wU׭pt~  27Pw E-@ D A~h`  &DCc  w @w  w  ' 7  &w \w wXw w  fw  w ~`7 wtwhw j %jE eZ_ whjD qj =w TD = w H6 w @/ w 8 w 0w 8 }~Xa7 w *7 w "7 7 djqj Xw7  ww (b ww w A B` %~a w| 7wrxwhu E 7x_~wh^ E.~`_~~Pn~~ ~~}0~& :(. X@@@.@H(@W (x8hdhhdhW (d|.!P d22 (W "&XW   d.d      I .VZCZ FB (Bm.B2 .-(k .lh   .THIS IS TSTBUG O2 TYPE YOUR NAME ANDR'" IT WILL BE PRINTED ON THE LP!  B B. X@@@.@H(@W (x8hdhhdhW (d|. P d23 (W "&XW   d.d      I .VZCZ FB (Bm.B2 .-(k .lh   .THIS IS TSTBUG O1 TYPE YOUR NAME ANDS'" IT WILL BE PRINTED ON THE LP!  B B.X8@@@U.@@@@@.@@@(XXh~(~~h.~7 B= H 0 ~U B " $ .8    f.8$,   !* "%,  $ * 8"8.6  " w V 7 7 w@ @ " _.8 B ?  &DCc  w " w %.^  w  % 7  .&w \w wlw  f^.w \ J w Z 7Y w~wrw v  b & . % E e w~    . =w    w   w t  .w   w w   7 w  7 w .B7 7    w7    .h ww (b  ww w .A B` D %Z V w.]  7L w|B wr@ E. 8wR78 wt  E 88a. t8P 8Iw -  88Y.&% w Z =w   7T.Ll 8=w Z e0w ,w %  8.r @w Lq k=H.b w @w &ww w=w d5. w  0 w Ge0w D,w .<   w  3 7. 8  w  8.0?w  w 7 w 77.V7\ 7    w %0 %7E=.| `  1  W І  $  .lm 7 y\lnh.\ "$l&n(hQ6~NG.6  ~Nt.0:7W.  0:X.D  77% .(w %=w w -.N w w ww  .tl ~7mttppw td.^\w lR%/w h\. 8 ..V  L ed Vr.H  !VB !V=L !HVV. 64H4 Z V!4Hl4 ZH ZVH$l(Z1.2 % w   @w t-.X@ % % w Z ww.~  pD  .&C@AEPA&fw Lw P/w .Vw   ` E. `    . ww 7UE.<w T76  .bpZw ׭U5 Z.w`@j5!.< , *e E Wp.B` e!ED !݃.wBw0= -7. H<"ws.F7ww J ŝ.lw@ w .t!H w d  w @e H  .j$ĕtH7G ZwZBw HZ"Z.B+e` w 4;w ,ĝH (H. w w4  e w.* ҕKҕSҕU~  we0].P  w we0  we0 ).v  we0~  .e!"&"u. T P -^rTwhwwx=. `0 E ~R (Rh. ׭) ׭N< Fs  .   e. D $   $$ .4  p   k  p & .Z "f&f  ". r4HlH H l&H. \ W  <lH !lH. %$ &e N @ ". e0w &  8F 8.  ,7 ;  .>      .d    އw . rn  7,8\V8-8&8;. T HwD 7< %,. !  %? ?M.   w v w %w ,  B." 77w V e0w ,w d.H w rXTN6.n H Cå å$ נA .   e` .    Ëנe e  ' e e ѐ  @([  + DEBUG # $ .$ H PC CP R L T NZVC R0 R1 .J R2 R3 R4 R5 SP T.p @ LOCN CONTENTS + BE  ". *;/\ $G._<^,OWEBP@>SRC-FI!XADTS PMDTCFRB   R` R V V .<