>7$J_>: `Q$ȋ @ B C  ` YSjL4dBa (vLIBa $(Nk  aʋaՀ$ & * P$ ΋Ί   ΋   d Ί  ( 1'u  Q$f $5@ U C΋ Cb M΋U@ U &  B" .&0 M &0 & M 0 &I FORMS A 16 BIT CRC ; ; POLYNOMIAL = X16+X15+X2+U ; CRCRM = BCCZ1 ;EQUATE FOR THIS PGRM CRC16 = . ; ENTRY MOV R4,R3 ;CHAR TO WORKING REG MOV #-8.,R5 ; SET COUNTER FOR EIGHT BITS MOV POLY16,R1 ; GET POLYNOMIAL (16 BITS ONLY) MOV CRCRM,R2 ; GET PREVIOUS REMAINDER ; ; BIT INTO THE REMAINDER CRCA10: ROR R3 ;SHIFT LEAST SJ ; AND PRINT IT BR PRNA10 ;CONT ; PRNB10: RTS R5 ;EXIT ; ; ; READ IN BCC FROM HDW ; RDBCC = . ;ENTRY MOVB BCCLO,BCCZ3 ;GET TWO MOVB BCCHI,BCCZ4 ; BYTES TO CORE SWAB BCCZ4 ;FORMAT CLRB BCCZ3+1 ; TO CLRB BCCZ4 ; 16 BIT WORD ADD BCCZ3,BCCZ4 ; FOR SOFTWARE RTS PC ;EXIT ; ; ; K6 ; BCC RTS PC ;CONT ; ; CONVERT OCTAL NUMBER FOR PRINTOUT ; BCCCNV = . ;ENTRY MOV (R5)+,R0 ;OCTAL WORD ADDR MOV (R5)+,R1 ;ASCII OUTPUT ARE A ADDR MOV (R0),R0 ;GET WORD MOV #-5,BCCZ6 ;SET MOVE COUNTER BCCC10: MOV R0,R2 ;CONVERT BIC #177770,R2 ; THREE BITS ADD #060,R2 ; TO ASCII MOVB R2,-(RLERATION. TELETYPE MOTORS ARE * ; TURNED OFF WHEN THEIR RESPECTIVE QUEUES BECOME EMPTY. SHOULD * ; A DETECTABLE TELETYPE MALFUNCTION OCCUR AND AN ALTERNATE * ; TELETYPE DEVICE IS DEFINED, OUTPUT IS ROUTED TO THE ALTERNATE * ; DEVICE. * ; * ; USAGE. THE ASSEMBLER LINKAGE TO SUBROUTINE * ; TTYOUT IS: MIGNIFICANT ROL R2 ; BIT OF CHAR INTO THE REMAINDER BCC CRCA20 ; IS THE REMAINDER DIVISABLE JSR PC,EOR ; YES - FORM SUM MODULO 2 CRCA20: INC R5 ; INCREMENT CYCLE COUNTER ; ; ALL BITS OF DATA SHIFTED INTO REMAIN BNE CRCA10 ; NO - CONTINUE MOV R2,CRCRM ; SAVE REMAINDER FOR NEXT BYTE MOV BCCZ5,R4 ;RESTORE CHAR RTS N FORMS A 16 BIT CRC ; ; POLYNOMIAL = X16+X15+X2+U ; CRCRM = BCCZ1 ;EQUATE FOR THIS PGRM CRC16 = . ; ENTRY MOV R4,R3 ;CHAR TO WORKING REG MOV #-8.,R5 ; SET COUNTER FOR EIGHT BITS MOV POLY16,R1 ; GET POLYNOMIAL (16 BITS ONLY) MOV CRCRM,R2 ; GET PREVIOUS REMAINDER ; ; BIT INTO THE REMAINDER BR CRCA10 ;SKIP ON ENTRAO1) ;PLACE CHAR IN DAT+ +RE+ ROR R0 ;GET ROR R0 ; NEXT ROR R0 ; THREE BITS (OCTAL DIGIT) INC BCCZ6 ;IS COUNT OF 3 BITS UP BNE BCCC10 ; NO - BIC #177776,R0 ;MASK IT TO ONE BIT ADD #060,R0 ;CONVERT TO ASCII MOVB R0,-(R1) ;STORE CH+R ; RTS R5 ;EXIT ; ; ; KEYBOARD INPUT ; TLINP * ; * ; MOV #LIST,-(SP) ;PUSH LIST ADDR ONTO STACK * ; EMT TTYOUT ;CALL TTYOUT * ; * ; THE FORTRAN EQUIVALENT CALL IS: * ; * ; CALL TTYOUT Q PC ; EXIT POLY16: 100005 ;POLYNOMIAL ; ; LOGICAL EXCLUSIVE OR ; PROGRAM ID. EOR ; PURPOSE. PERFORMS A LOGICAL EOR FOR WHICH THERE IS NO ; DEC INSTR ; PROGRAM USAGE. THE CALLING SEQUENCE IS: ; MOV [DAT1],R1 FIRST OPERAND, RETURN = R1 ; MOV [DAT2],R2 SECOND OPERAND, RETURN = ANS ; JSR PC,EOR TRANSFER INSTR RNCE CRCA05: ROR R3 ;GET NEXT BIT MOV R3,R4 ; OF CHAR TO REG CRCA10: ADD R2,R4 ;ADD REMAINDER TO ; CHAR FOR BIT TEST CLC ;CLEAR CARRY ROR R2 ;SHIFT REMAINDER BIT R4,#1 ;DO BITS MATCH BEQ CRCA20 ; FOR CHAR AND REMAINDER JSR PC,EOR ; YES - ADD IN POLYNOMIAL (EOR) ; CRCA20: INC R5 S1 = . ;ENTRY TSTB TKS ; BPL TLIN1 ; MOVB TKB,R4 ; BIC #177600,R4 ; RTS PC ; ; ; KEYBOARD OUTPUT ; TLOT1 = . ;ENTRY TSTB TPS ; BPL TLOT1 ; MOV R4,TPB ; RTS PC ; ; ; PRINT A MESSAGE ; ; CALLING SEQUENCE ; ; JSR T(LIST) * ; * ; LIST IS THE ADDRESS OF A TABLE OF I/O INFORMATION * ; ASSOCIATED WITH THE REQUEST * ; * ; * ; PROGRAMMER 51&54 * ; DATEU; . RETURN ; NOTE: REGISTER R4 IS USED FOR WORKING STORAGE AND IS NOT ; CONSIDERED SACRED ; EOR = . ; ENTRY MOV R1,R4 ; TEMP WORING STORAGE BIC R2,R4 ; FORM BIC R1,R2 ; THE SUM (MODULO 2) BIS R4,R2 ; R1 EOR R2 RTS PC ; EXIT ; ; ; CONSTANTS AND LOCAL STORAGE ; BCCZ1: 0 V ; INCREMENT CYCLE COUNTER ; ; ALL BITS OF DATA SHIFTED INTO REMAIN BNE CRCA05 ;CONT - SHIFT TO NEXT BIT MOV R2,CRCRM ; SAVE REMAINDER FOR NEXT BYTE MOV BCCZ5,R4 ;RESTORE CHAR RTS PC ; EXIT POLY16: 120001 ;POLYNOMIAL ; ; LOGICAL EXCLUSIVE OR ; PROGRAM ID. EOR ; PURPOSE. PERFORMS A LOGICAL EOR FOR WHICH THERE IS W R5,PRNTMS ; ADDR1 ;START OF PRINT AREA ; ADDR2 ;END OF PRINT AREA + 1 ; ; ; PRNTMS = . ;ENTRY MOV (R5)+,R0 ;SET MOV (R5)+,R1 ; POINTERS PRNA10: CMP R0,R1 ;IS THIS END OF DATA BEQ PRNB10 ; YES - TO EXIT MOVB (R0)+,R4 ;GET A BYTE JSR PC,TLOT1 ; AND PRINT IT BR PRNA10 ;CONT ; PRNB10: X: * ; REVISION: * ; * ; G U L F E L E C T R O N I C S Y S T E M S * ; * ;*********************************************************************** ; * ; Y ;BCC ACCUMULATION BCCZ2: 0 ;STX RECVD FLAG BCCZ3: 0 ;HARDWR LO BCCZ4: 0 ; BCC HI MERGED BCCZ5: 0 ;CHAR SAVE BCCZ6: 0 ;CH+R COUNT .EVEN ; BCCY1: .BYTE CR,LF ; .ASCII @START @ ; .BYTE CR,LF,LF,0 ; ; .EVEN ; BCCY2: .BYTE CR,LF,LF,CR ; .ASCZNO ; DEC INSTR ; PROGRAM USAGE. THE CALLING SEQUENCE IS: ; MOV [DAT1],R1 FIRST OPERAND, RETURN = R1 ; MOV [DAT2],R2 SECOND OPERAND, RETURN = ANS ; JSR PC,EOR TRANSFER INSTR ; . RETURN ; NOTE: REGISTER R4 IS USED FOR WORKING STORAGE AND IS NOT ; CONSIDERED SACRED ; EOR = . ; ENTRY MOV R1,R[RTS R5 ;EXIT ; ; ; READ IN BCC FROM HDW ; RDBCC = . ;ENTRY MOVB BCCLO,BCCZ3 ;GET TWO MOVB BCCHI,BCCZ4 ; BYTES TO CORE SWAB BCCZ4 ;FORMAT CLRB BCCZ3+1 ; TO CLRB BCCZ4 ; 16 BIT WORD ADD BCCZ3,BCCZ4 ; FOR SOFTWARE RTS PC ;EXIT ; ; ; FORMS A 16 BIT CRC ; ; POLYNOMIAL = X16+X15+X2+U ; CRCRM \ T T Y I N * ; * ; PROGRAM IDENTIFICATION. TTYIN - TELETYPE INPUT SUBROUTINE: * ; CATALOG NUMBER * ; * ; PURPOSE. SUBROUTINE TTYIN PROCESSES TELETYPE INPUT REQUESTS. * ; IT PROVIDES FOR CONCURRENT INPUT FROM MULTIPLE TELETYPE UNITS.]II @VERY GOOD @ ; .BYTE CR,LF,LF,0 ; ; .EVEN ; BCCY3: .BYTE CR,LF ; .ASCII @SOFT BCC = @ ; BCCY4: .WORD 0,0,0 ; ; .EVEN ; BCCY5: .BYTE CR,LF ; .ASCII @HARD BCC = @ ; BCCY6: .WORD 0,0,0 ; ; .EVEN BCCY7 = . ; .BYTE CR,LF,LF,CR ; .ASCII @VERY BAD@ ; BCCY8 = . ^4 ; TEMP WORING STORAGE BIC R2,R4 ; FORM BIC R1,R2 ; THE SUM (MODULO 2) BIS R4,R2 ; R1 EOR R2 RTS PC ; EXIT ; ; ; CONSTANTS AND LOCAL STORAGE ; BCCZ1: 0 ;BCC ACCUMULATION BCCZ2: 0 ;STX RECVD FLAG BCCZ3: 0 ;HARDWR LO BCCZ4: 0 ; BCC HI MERGED BCCZ5: 0 _ = BCCZ1 ;EQUATE FOR THIS PGRM CRC16 = . ; ENTRY MOV R4,R3 ;CHAR TO WORKING REG MOV #-8.,R5 ; SET COUNTER FOR EIGHT BITS MOV POLY16,R1 ; GET POLYNOMIAL (16 BITS ONLY) MOV CRCRM,R2 ; GET PREVIOUS REMAINDER ; ; BIT INTO THE REMAINDER BR CRCA10 ;SKIP ON ENTRANCE CRCA05: ROR R3 ;GET NEXT BIT MOV R3` * ; THE INPUT STREAM FROM A UNIT IS TERMINATED WHEN THE END OF * ; MESSAGE CHARACTER (EOMCH) IS DEPRESSED. THE TELETYPE WILL * ; CARRIAGE RETURN AND LINE FEED WHEN THE END OF LINE CHARACTER * ; (EOLCH) IS DEPRESSED. NEITHER OF THESE CHARACTERS IS INCLUDED * ; IN THE DATA BUFFER CHARACTER COUNT. THE NUMBER OF TELETYPE * ; UNITS AND THE CHARACTERS USED FOR EOMCH AND EOLCH ARE SPECIFIED* ; DURING SYSTEM GENERATION. THE ROUTINE ALLOWS THE OPER ; .END ; b;CHAR SAVE BCCZ6: 0 ;CH+R COUNT .EVEN ; BCCY1: .BYTE CR,LF ; .ASCII @START @ ; .BYTE CR,LF,LF,0 ; ; .EVEN ; BCCY2: .BYTE CR,LF,LF,CR ; .ASCII @VERY GOOD @ ; .BYTE CR,LF,LF,0 ; ; .EVEN ; BCCY3: .BYTE CR,LF ; .ASCII @SOFT BCC = @ ; BCCY4: .WORD 0,0,0 ; ; c,R4 ; OF CHAR TO REG CRCA10: ADD R2,R4 ;ADD REMAINDER TO ; CHAR FOR BIT TEST CLC ;CLEAR CARRY ROR R2 ;SHIFT REMAINDER BIT R4,#1 ;DO BITS MATCH BEQ CRCA20 ; FOR CHAR AND REMAINDER JSR PC,EOR ; YES - ADD IN POLYNOMIAL (EOR) ; CRCA20: INC R5 ; INCREMENT CYCLE COUNTER ; ; ALL dATOR TO * ; DELETE THE LAST CHARACTER INPUT BY DEPRESSING THE RUBOUT KEY; * ; ALSO, HE MAY RESTART INPUT BY DEPRESSING THE MESSAGE RESTART * ; KEY (CONTROL U). * ; * ; USAGE. THE ASSEMBLER LINKAGE TO SUBROUTINE * ; TTYIN IS: * ; e .TITLE TESTDC .ASECT . = 20000 START: MOV #B1,177464 MOV #-4096.,177462 MOV #0,177466 MOV #5,177460 BR A START2: MOV #B2,165304 MOV #-4096.,165302 MOV #0,165306 MOV #5,165300 A: TSTB 177460 BPL B TST 177460 BPL START HALT B: TSTB 165300 BPL A TST 165300 .EVEN ; BCCY5: .BYTE CR,LF ; .ASCII @HARD BCC = @ ; BCCY6: .WORD 0,0,0 ; ; .EVEN BCCY7 = . ; .BYTE CR,LF,LF,CR ; .ASCII @VERY BAD@ ; BCCY8 = . ; .END ; gBITS OF DATA SHIFTED INTO REMAIN BNE CRCA05 ;CONT - SHIFT TO NEXT BIT MOV R2,CRCRM ; SAVE REMAINDER FOR NEXT BYTE MOV BCCZ5,R4 ;RESTORE CHAR RTS PC ; EXIT POLY16: 120001 ;POLYNOMIAL ; ; LOGICAL EXCLUSIVE OR ; PROGRAM ID. EOR ; PURPOSE. PERFORMS A LOGICAL EOR FOR WHICH THERE IS NO ; DEC INSTR ; PROGRAM USAGE. THE CALLh * ; MOV #LIST,-(SP) :PUSH I/O LIST ADDRESS ON STACK * ; EMT TTYIN ;CALL TTYIN * ; * ; THE FORTRAN EQUIVALENT CALL IS: * ; * ; CALL TTYIN (LIST) * ; BPL START2 HALT B1: .BLKW 4096. B2: .BLKW 4096. .END START &}}( ] s. N .&$ N@ʘ.&  | v瀵 L kING SEQUENCE IS: ; MOV [DAT1],R1 FIRST OPERAND, RETURN = R1 ; MOV [DAT2],R2 SECOND OPERAND, RETURN = ANS ; JSR PC,EOR TRANSFER INSTR ; . RETURN ; NOTE: REGISTER R4 IS USED FOR WORKING STORAGE AND IS NOT ; CONSIDERED SACRED ; EOR = . ; ENTRY MOV R1,R4 ; TEMP WORING STORAGE BIC R2,R4 ; FOl * ; LIST IS THE ADDRESS OF A TABLE OF I/O INFORMATION * ; ASSOCIATED WITH THE REQUEST. * ; * ; * ; PROGRAMMER 51&54 * ; DATE: * ; REVISION: $ }}i, N .&$ N@ʝ,&  | v瀺L  oRM BIC R1,R2 ; THE SUM (MODULO 2) BIS R4,R2 ; R1 EOR R2 RTS PC ; EXIT ; ; ; CONSTANTS AND LOCAL STORAGE ; BCCZ1: 0 ;BCC ACCUMULATION BCCZ2: 0 ;STX RECVD FLAG BCCZ3: 0 ;HARDWR LO BCCZ4: 0 ; BCC HI MERGED BCCZ5: 0 ;CHAR SAVE BCCZ6: 0 ;CH+R COUNT .EVEN p * ; * ; G U L F E L E C T R O N I C S Y S T E M S * ; * ;*********************************************************************** ; ; ; EXTERNAL REFERENCES AND PROGRAM ENTRY POINTS ; .REF QUEUE,QSAVEI,UNSPND,RESTOR,QTIME,DQTIME,DSPTCH .REF ACTIVE,IOSTAT,PUSHR,POPR,ERRTYP s ; BCCY1: .BYTE CR,LF ; .ASCII @START @ ; .BYTE CR,LF,LF,0 ; ; .EVEN ; BCCY2: .BYTE CR,LF,LF,CR ; .ASCII @VERY GOOD @ ; .BYTE CR,LF,LF,0 ; ; .EVEN ; BCCY3: .BYTE CR,LF ; .ASCII @SOFT BCC = @ ; BCCY4: .WORD 0,0,0 ; ; .EVEN ; BCCY5: .BYTE CR,LF ; t .REF LOGMAX,PHYDEV,ALTDEV .REF $CTASK,SAVE,IOCOMX .IFG NDISCS .REF DISCIO,PFRITE .ENDC .IFNZ OVRLAY .REF RELTSK .ENDC .DEF TTYOUT,TTYIN,TTINIT .DEF PRTINT,KBDINT .DEF TTICSR,TTIDBR ;USED BY POWER FAIL ROUTINE .IFNZ $KT11C .REF PPASV5,PPASV6,SVPPA,TSK.PC .ENDC ; .CSECT ; ; ; TTYIO PARAMETERS AND SYMBOLS ; .IFG NTTY.ASCII @HARD BCC = @ ; BCCY6: .WORD 0,0,0 ; ; .EVEN BCCY7 = . ; .BYTE CR,LF,LF,CR ; .ASCII @VERY BAD@ ; BCCY8 = . ; .END ; xS-8. XXXXXX ;CREATE ASSY ERROR IF NTTYS GT 8. .ENDC .IFZ NDISCS ;IF THERE ARE ZERO DISCS IN SYSTEM, ;DISALLOW MESSAGE BUFFERING MSGBUF = 0 .ENDC .IFL 1-MSGBUF XXXXXX ;CREATE ASSY ERROR IF MSGBUF NOT 0 OR 1 .ENDC TFOPTN = 40 ;TIMER MODULE FLAG OPTION TJOPTN = 20 ;TIMER MODULE JSR TO TIMEOUT COMPLETE | ;ROUTINE OPTION .IFG MSGBUF ;ASSEM FOLLOWING FOR MSG BUF SYSTEM ; ; ; DEFINITION OF FILE ID'S FOR DISC BUFFERED MESSAGES ; FIDN0 = 20. ;FILE FOR NORMAL MESSAGES, UNIT 0 FIDP0 = 21. ;FILE FOR PRIORITY MESSAGES, UNIT 0 FIDN1 = 22. ;FILE FOR NORMAL MESSAGES, UNIT 1 FIDP1 = 23. ;FILE FOR PRIORITY MESSAGES, UNIT 1 FIDN2 = 24. ;FILE FOR NORMAL MESSAGES, UNIT 2 FIDP2 = 25. ;FILE FOR PRIORITY MESSAGES, UNIT 2 FIDN3 = 26. ;FILE FOR NORMAL MESSAGES, UNIT 3 FIDP3 = 27. ;FILE FOR PRIORITY MESSAGES, UNIT 3 FIDN4 = 28. ;FILE FOR NORMAL MESSAGES, UNIT 4 FIDP4 = 29. ;FILE FOR PRIORITY MESSAGES, UNIT 4 FIDN5 = 30. ;FILE FOR NORMAL MESSAGES, UNIT 5 FIDP5 = 31. ;FILE FOR PRIORITY MESSAGES, UNIT 5 FIDN6 = 32. ;FILE FOR NORMAL MESSAGES, UNIT 6 FIDP6 = 33. ;FILE FOR PRIORITY MESSAGES, UNIT 6 FIDN7 = 34. ;FILE FOR NORMAL MESSAGES, UNIT 7 FIDP7 = 35. ;FILE FOR PRIORITY MESSAGES, UNIT 7 ; ; ; OUTPUT BUFFER SIZE DEFINITION FOR MESSAGE BUFFERED DISC SYSTEM ; OBUFSZ = 128. ;MINIMUM SIZE OUTPUT BUFFER(1 SECT/MSG) DNWRDS = 64. ;NO. OF WORDS IN DISK TRANSFERS .IFGE DBUFSZ-2 ;IS SECTOR COUNT jLpK  %4dK I 'K ^8}K m8}K {L}Y  ąe ӎ. *c cUN~U~ENHrEHrRE|ydR|yDEbpPRxPxALiA ,s d*hH`qfp &&&*h.T 0wf&/ F  *h 7 $7 d,nj7 }fL~~~T`njn*jn`nnjnk!w,jw pptjLwuQp_":#Jp:qLE((dBR`jFRjjDItjfFAfFBfCOf?*JdMTfMfZEwZwndH&/ ; &/ 4r*ir6 &/ #׬/r*&ifCaDDa`e" @ ne )7 w . n}`n`nJ,j-}.I ѕ?ѕ ѕ }*kw}jnjn7 6*qJ*4q NH XqHd # od PIP-11 V004A,dc*e2? OBUFSZ = OBUFSZ+128. ;YES, ADD 64 WORDS DNWRDS = DNWRDS+64. .ENDC .IFGE DBUFSZ-3 ;IS SECTOR COUNT 3? OBUFSZ = OBUFSZ+128. ;YES, ADD 64 WORDS DNWRDS = DNWRDS+64. .ENDC .IFG DBUFSZ-3 ;IS SECTOR COUNT GT 3? XXXXXX ;YES, CREATE ASSY ERROR, DBUFSZ GT 3!! .ENDC OMSGSZ = OBUFSZ-16. ;OUTPUT MSG SIZE -- MAXIMUM NO OF CHAR ; 7 jcccccc.,e  w dc4de  bdd*Te  eb7 Z7 B@Hm@H.[qj@Hz4f@H4f@HLC @HR:@Hl.( h*}hM:himRh%J e T&&"*ie UeK#K,*iD!  %K,7  }4nvn~k,k/  3&  Ln.kn~k/%&  Q*r . r Hqs 7 H7 T7 Rw $.xedrdcc-5'dd.e. ЋЕ?Е xd7rdcch.[q*}h}sh^u~hu~"h~yh~$"2gh2b;h4N }*if"q& ֋  " g *"j"f&C!"s&s# W# w*Fj !Bn*kn~k/ V3 & h*l Vndn`~k/%" . Z s*t ^S N*tp:w!7 #*ewn"w ddcc7 e*e/3w 7w %*fJ$,&-"\ e?H \d,$ U 6   ALLOWED IN OUTPUT ; MESSAGE (MSG BUFFER ; SYSTEM ONLY) .ENDC ; ; ; MISCELLANEOUS SYMBOLS ; CR = 15 ;CARRIAGE RETURN LF = 12 ;LINE FEED RO = 177 ;RUBOUT NUL = 0 ;NUL CHAR DC1 = 021 ;CHAR TO TURN ON ASR37 PT READER DC3 = 023 ;CHAR TO TURN OF)e>  ,HLC  z4f6.l**jADe% B *jC"q%%%&EU X*je Me+-$--*l- - -J*l- --,rrrqqqS*DuVqqq'Vqw*hu|qq׭ ׭ -bdh.f k p n ׭L׭E w n*f PNK DLde  Xd Y*f..QI& w $([g4,%%E Cw&/>q%%%% p?T*kw ; DU%  M e w p#*Bk0fw T w 0*l-Xn-- - *mBn ~4n  -*&mB& 1Hq.*u Օ?Օ Օ \qwVq*ur7 rr p*uq2 w w^ k w _*f *@ ec w   ,gwp @ a3,   e^BA  J~Z^"~,6 w 0 "$4+*fkD c5 c W#$ Nw *k"q ֋ہwl Nf,ke F ASR37 READER PLOCK = 340 ; MASK FOR CPU LEVEL 7 NTTYS2 = NTTYS*2 NTTY16 = NTTYS*16. ; ; ; ERROR CODES ; ERRQL = 21. ;LIST NOT QUEUEABLE, THREAD WORD .NE. 1 ERRLDN = 22. ;INVALID LOGICAL DEVICE NUMBER IN LIST ERRPDT = 23. ;INVALID PHYSICAL DEVICE TYPE IN LIST ERRET = 24. ;INVALID EXIT TYPE IN LIST ERRLEV = 25. ;INVALID PRIORITY LEVEL IN LIST ERRMSZ = 9 dp!pe7 &sI*k @"%%%%%&e%>%*k %r %X\  _U:n*mBnnBn vn4n ,mLnnLn VnnVnj*m7 -;r/s*@v5 wh     >*dv  w 6w  *vw<ew jbZN 8,g , cc 50cc*g  cc = 7  `^ ~~*^X,J`7lBA<WCE>*l ew7%7% %.*@l7#  W!0{W!07)*dlw Le?^ gw 7 B!e@,n|z!7j7h7h^Rzd-**n w p:a@w b w\ wy*v w8vs & &*0q~*v"qq>qqt vA 5m,gccw4wc *hcd" W 2d B U*:hB  ,nqJ~7œ~>,& ‹ & CfeW#0{0w&,l !Zr W  o*l&q&p & &xD*Nn:'a9E E*rn*n 26. ;MESSAGE SIZE TOO LARGE ERROTO = 27. ;OUTPUT/ECHO TIMEOUT; ALTERNATE DEVICE ;SELECTED IF AVAILABLE ERRITO = 28. ;INPUT/OPERATOR RESPONSE TIMEOUT; ;ALTERNATE OPERATOR SHOULD BE SELECTED, ;REQUEST IS DEQUEUED ; ; ; SYSGEN TTY INTERRUPT VECTOR ADDRESSES, CONTROL STATUS REGISTER ; ADDRESSES AND DATA BUFFER ADDRESSES ; TT0IIV = In # i*nEDIT-11 V004A LSP OFF?Jp 5 pqpe*`wp 8"qp 5 p:*wp d0qp 5 KRw7 w!*h7 w7 e/5*h )-*-* L^`BAW,J~m ^"~2 ^   EbMp&>q&&%p,Bmpp D  q p]0hmf s p 0qwwN n in * Bo(XRopppx wurwttfou@uw`txssTvOp4*wp P>qq 5 q,w>qqq rws*w    P&i w c  w 8 . iw dw w w csw ,w Z w*HiQ^,5(w4t [qj4^q(^Rqm*m&s0{  Fz& n-!*m wb4$4" 7X!*m7SrpslzoxspFv@tRtjx`qxpr*oWHPMXROF0BEMRIFVUHGTNSPCDWLAKXJ01234%o56789/+@- T \ p Da&ei*x%D w J " *:xq Lgc7]wr 60 ;PHYSICAL UNIT 0 INTPUT INTERRUPT VECTOR TT0ICS = 177560 ;PHYSICAL UNIT 0 INPUT CNTRL STATUS REG TT0IDB = 177562 ;PHYSICAL UNIT 0 INPUT DATA BUFFER REG TT0OIV = 64 ;PHYSICAL UNIT 0 OUTPUT INTERRUPT VECTOR TT0OCS = 177564 ;PHYSICAL UNIT 0 OUTPUT CNTRL STATUS REG TT0ODB = 177566 ;PHYSICAL UNIT 0 OUTPUT DATA BUFFER ; TT1IIV = 340 ;UNIT 1 ADDRESSES TT1ICS = 160200 TT1IDB Y *^x *  w h9 *x  h@%jwr j T*xwZ*ie(eB>ee0, *iw$wee- di [ 9d ( / \7p**Fn@! Tr q *jn7ZpTr  p7*n]7 *p LnnLn&  w P*p    @ k^s(  4*x~ H   p w*x* %R%I9  %I0_*iw  w c "A @`$AL (*"jw | &cc #  c Fjw >`# ,a7  3 w|,n& &   n}*n$ b (b*p7 ~@` -tnm*q   7 LF *@q  c*y&"  r @s*6y%w  aw *Zyr/ dw 0_`jw Ojjw Z*tj7 7 w w 7 7 w 6P7mj= 160202 TT1OIV = 344 TT1OCS = 160204 TT1ODB = 160206 ; TT2IIV = 350 ;UNIT 2 ADDRESSES TT2ICS = 160210 TT2IDB = 160212 TT2OIV = 354 TT2OCS = 160214 TT2ODB = 160216 ; TT3IIV = 360 ;UNIT 3 ADDRESSES TT3ICS = 160220 TT3IDB = 160222 TT3OIV = 364 TT3OCS = 160224 TT3ODB = 160226 ; TT4IIV = 370 ;UNIT 4 ADDRESSES TT4ICS = 16023iw ccw 4c($jcE 4w 8jw ccw cIjcc cjk  & e.hoew V%"L&eW &u*oW &w &s s l*qw 7 >4nBnw `Bn *q4njnjn`n`nw.q0& m*y 77 q*y>qq>qr Rr L,z:&rn$j  %  w  kcc w I"k7`w ccw co.t!s@&yp s,o %%6  e!~yx*o & fU%DDm UD!&*oq w  4nBnq*r rw  d1 \vn4n!D*@r2h.d `&\n4n r"r"r .4z"r  h c t*\z rI %LOs4kcc  w *Fkw >w 8c7 " c.jkw V7cct@;K}@.hfp@f@[g4@m@[qj@.LC @R:@(eh\t!hv0 TT4IDB = 160232 TT4OIV = 374 TT4OCS = 160234 TT4ODB = 160236 ; TT5IIV = 400 ;UNIT 5 ADDRESSES TT5ICS = 160240 TT5IDB = 160242 TT5OIV = 404 TT5OCS = 160244 TT5ODB = 160246 ; TT6IIV = 410 ;UNIT 6 ADDRESSES TT6ICS = 160250 TT6IDB = 160252 TT6OIV = 414 TT6OCS = 160254 TT6ODB = 160256 ; TT7IIV = 420 ;UNIT 7 ADDRESSES TT7ICS =y.xh-ZhZD~h^A*}hEh{.J&) hm4ph>) h!?}hQ@hx.Rez`*jpN>` >A% B *pE͋  ͕͋ W=r*p{- w 7 .rf7 J~ 7! w#X ӕ F~`*rjnjnF~jnjn|p p "qp"q%*zqp "qp7pq*{pwTsqT$ T$}^ Twt pp o*kp  4Е Е[  r@. l Е,  Z( zЕ~hS@~hU; hCmhw_h .|xhy2ghjYzb;hlD~*}h`k~[h phF ݆   Ea*pE *pSw *s 7 77 7*Bsw-  & zr*fslԔ  w .<{   bs V q*d{w$Pw$L ntrs ] pt*HlC! , w 5 ~~xllzzvvw &`*|l%p b , X$P J Dff R:$f%"jLzv*qz\MzSjLSjL*Bq! MODS-11 V003A G*fq#  160260 TT7IDB = 160262 TT7OIV = 424 TT7OCS = 160264 TT7ODB = 160266 ; ; ; SYMBOLIC TABLE AND BUFFER OFFSETS ; ; ; OFFSETS IN I/O REQUEST LIST ; DEVICE = 2 ;LOGICAL DEVICE NO. TYPE = 3 ;EXIT TYPE EXIT = 4 ;I/O COMPLETE ROUTINE (EXIT 3 ONLY) ERRTSK = 6 ; USED TO SAVE UNIT NO. LEVEL = 7 ;PRIORITY LEVEL OF I/O REQUEST ERROR = 10 ?SYNTAX FAULTY  ?T*qOO MANY SWITCHES  ?DECTAPE O[*qUTPUT ONLY  ?DECTAPE U#*sw B! B #@*sD #K` -#ztn*t#dw qq  %*{%  % n*|@qq ~% .l    7 7 7 |e1$m7 e7 o n.2mpp 7&fsLC s&,bЕ<<9z<2-F,NITS a*q ?ILLEGAL INPUT  ?NO *qPR: SWITCH  ?INVALID OUTPUT #rSWITCHmZT m7J.>t 7Ln} .Lnv4nn*ftb &w^fw w *<|u%7 dsR*`| %@, jr ts%*|%  Е. !p/*Zm < D ЕC(p,~mEz7 t-rh b "PPPmȵH0  @p ɕ`  ?READ ERROR "8r ?TAPE FORMAT ERROR s`&wR *t 2.pw J&zQQAA wC*4nL^YؙcxD m 6e  ,X"eq 7&,>B1f e7*>u N Jwfv7 .Bn*bu7w \w w 7*u B-%Dwb Up@*b}"qpq <%HwX ,*}%8p }nqg*Xn0ЋЕ:9pЕ<E *|n 0Е>&"8 *n&"eee%<,b< % Ý0Ü  C <,   UDLnw 6w >5@-*u Bnn  w > w 8*u8&  wBnD  pG*}t 7 X 7 NKjL;*}Dwu@<p0qpr*} @ 12 ;RELATIVE SECTOR ADDRESS NWORD = 14 ;NO. OF WORDS TO TRANSFER TTRLST = 16 ;1ST WORD OF TTY REQUEST LIST .ENDC ; ; ; OFFSETS IN USER BUFFERS ; CHCNT = 2 ;CHAR COUNT MSGDAT = 4 ;BEGINNING OF DATA ; ; ; OFFSETS IN TIMER MODULES ; TCNTR = 10. ; TIMER COUNTER ; ; ; TABLE OF CONTROL STATUS REGISTER ADDRESSES ORDERED BY UNIT NO. ; TTICSR: .WORD%wpp*~7 ,p0qr/5 wz*:~   Hq.  , oR ɋPp7pcc1*2o  Z ,Vo P " w E[qj2 E Evf,a,a4l4dzA*,a qn)~Foձ%>oѱo*Pa,doo*a:*v~.7 0-rVnVnVnn*vVnVn&  wEs,vwpp'h*~wpp'wC.~pp' w J*oI DIRECTORY TOTL BLKS: T*oOTL FILES: FREE BLKS: FREE FILEj pS: TT0ICS,TT1ICS ;INPUT CSR'S .WORD TT2ICS,TT3ICS .WORD TT4ICS,TT5ICS .WORD TT6ICS,TT7ICS ; .=TTICSR+NTTYS+NTTYS ;DELETE UNUSED WORDS ; TTOCSR: .WORD TT0OCS,TT1OCS ;OUTPUT CSR'S .WORD TT2OCS,TT3OCS .WORD TT4OCS,TT5OCS .WORD TT6OCS,TT7OCS .=TTOCSR+NTTYS+NTTYS ;DELETE UNUSED WORDS ; ; ; TABLE OF DATA BUFFER REGISTER ADDRESSES ORDERED BY UNIT NO. ; TTIDBR: .WORD TT0IDB,TT1IDB ;INPUT DBR'S po`p'bpw .zww Lzp7jw *ccc{(pcxxx~,x{{C!| q$| *x  w`Yz=*(b  z www*Lbw;ww s0s*pb~*^ww (7 mh - -*w<mNw *wZ!R Zw %w B-L* p-H*70w cc pccc = pV {,x7 $ 7 ^|& Ν[}*y"& ΝW}",; 1z**yr r@ [q`"Y*bOX S!AP@@:*bs: 42}\!`#!67.*wД "Ԕ - 7w*w-+w rnp CONFIRM: .ppcpccf` p{.$qɥLɥHu ɥ * X} T7 8`|*Ny e jpY}l .ryj}"R} .WORD TT2IDB,TT3IDB .WORD TT4IDB,TT5IDB .WORD TT6IDB,TT7IDB .=TTIDBR+NTTYS+NTTYS ; TTODBR: .WORD TT0ODB,TT1ODB ;OUTPUT DBR'S .WORD TT2ODB,TT3ODB .WORD TT4ODB,TT5ODB .WORD TT6ODB,TT7ODB .=TTODBR+NTTYS+NTTYS .IFG MSGBUF ;ASSEM FOLLOWING FOR MSG BUF SYSTEM ; ; ; TABLE OF FILE ID'S FOR MESSAGE BUFFERING ; FILEID: .WORD FIDN0,FIDP0 .WORD FIDN1,FIDP1 .WORD FIDN2,FIDP2 @vv vxąe */." +%$#('&0|vUPDATE V004C *(v@@P@ @r*Hc@@t@ov@oG*lc@e@ 0! P! @!w& \& פ *~x HoԔע ԕ (,*x%w"& & &  `eB*zLC *$tie*zCE $ *{*qeQ QQf Q  L*q    h <   *q QOv END 0vS200 &Lv>v # ZZ00000*  vR]"wRlv *cv@ @ @ @Y *c@ @ @J D c` *xw z:Ln  3 w*x4n  w 5@*y$נ  ˕ e˕ w*4{x ˕ Fh  b*X{ hNidhW ՋM u ` %` `*rѕ   & <*$ru W w&ccJ |wR*wwyy*wMM@ *gBa 4dBacf* h 6 &*.h  .WORD FIDN3,FIDP3 .WORD FIDN4,FIDP4 .WORD FIDN5,FIDP5 .WORD FIDN6,FIDP6 .WORD FIDN7,FIDP7 . = FILEID+NTTYS+NTTYS+NTTYS+NTTYS ;DELETE UNUSED WORDS ; ; ; TABLE OF OUTPUT BUFFER ADDRESSES ORDERED BY UNIT NO. ; TTOBUF: .WORD TTOBF0,TTOBF1 .WORD TTOBF2,TTOBF3 .WORD TTOBF4,TTOBF5 .WORD TTOBF6,TTOBF7 . = TTOBUF+NTTYS+NTTYS ; ; ; TABLE OF DISC READ I/O LIST ADDRESSES ORDERED BY UNIT N h`wgg*RhEU*g5 E]*vhw*eLPQARDMBI.zyF77 :-^X V }w*y`n`n}* :ß" *y    Kw i .*{w i<w iw iC! * |  }} }xe e& 5 r!r ->R6J .rN5@ B   wrw vxx,xlxx^xx(vx*xx7 87 &7 >7 d7 b7 N*hTU,EEGx>*hHx\M3*hM~~ß *yz`n`n-N*z  ׯ ׯ ~*0| c| |e%m|H*T|  1e:7*1!e07*x| |w 1rw w cc p"sw ~w |w  "sw w \w tcc`7 N#.x7 N7 L-BTvxx,w*xxx%0w. ",y8f*ixM&W4d**i&W4d&W *2z~7    *Vz87 2whoj7 h b" ZׯV*zz ׯN O. ; DRLIST: .WORD DRLST0,DRLST1 .WORD DRLST2,DRLST3 .WORD DRLST4,DRLST5 .WORD DRLST6,DRLST7 . = DRLIST+NTTYS+NTTYS ; ; ; DISC WRITE I/O LISTS ; .BOUND DWLIST: .WORD 1 ;THREAD WORD .BYTE DISCUN ;LOGICAL DEVICE NO FOR DISC .BYTE 3 ;EXIT TYPE -- 3 .WORD TTYDW1 ;ADDRESS OF I/O COMPLETE ROUTINE .BYTE 0 ;NO ERROR TASK TO BE QUEUED ON ERRFH7 P <8:ׯE*z0 $ׯ( ҟ  ,7 87$w *zנ R׭ I wj& *|131415161718192021222324252627282930@*}317071727374757677787980818283848586*,}87888990uxl -*s@*-8 -4-.*-& *s l  w eXwH*y&xDw/w| -n f.yw (Z~& w7 N(w:SS:XX *i P*ic,aj*k+*i*z& & I7 7@* {p7 n 7 lX7Z*.{7 ~|ih77 H*P}L^eJ72`&tif*t} n ".@΋*s E! e.t u$.e   *5>6*"tE$ wtu*z)JVCO7 ~z*zv-(4+,l-Zf,z(f lwkkk*le bw7 .>l% o $  S* |  o 77} ~ow0& *.| & & & w<*L~`@IBw&b0,p~JRPbՀHD`kr*~hhwp,ww 5@-~( -v w X*8w c P`Tw c- 4xBx4*z $8& >www , {w-   7 p7 7 7 7 7 H7 7 J,l0*fl!l& !y*gff *l% tg& f  .R|Ґ&  7 |7`jo  o%o_*z|%o$%o52%o%o%o)*| 8%rikkk \*~Fk5%*~P KKceba9*\wT 7 H8JwFB< *wm,m(m$n w - *weYTE 3 ;EXIT TYPE -- 3 .WORD TTYDW1 ;ADDRESS OF I/O COMPLETE ROUTINE .BYTE 0 ;NO ERROR TASK TO BE QUEUED ON ERROR .BYTE NDPRT1 ;PRIORITY OF REQUEST .WORD 0 ;ERROR CODE WORD .WORD 0 ;"SYSTEM" WORD .WORD DSCBF2 ;DATA BUFFER ADDRESS ; ; ; DISC WRITE BUFFERS ; DSCBUF: .WORD 0 ;FILE ID .BYTE 0 ;SECTOR FLAG wwwwww.wwwwwxxx tx ||x*w fx V  w4xw74x*{w &=  f8R0׭=]*{Bw< ^-46   4) Lbwbw7 \7*m77i7o77m7W7fy*>m&P @ o-*}W!W!    w)*2}   7 7wn 7*V}} Po  4*xx buw  *8xv lluR bu*\x R E*{n w-    wo* |  T w X /*D| $w bwE*bmĕ vQ$BB`@ K^*m wHʥ e<N222*mkoh7_w ^0Y*z}-P* J HׯB  :ׯ4 ,}ׯ, w  7 v ADD*xB C$D4w *x*w w w w xAww/*h|4xw dvwww5*| \lr 0 & .BYTE 1 ;READ/WRITE FLAG .WORD 0 ;RESERVED FOR DISCIO USE .WORD 0 ;RESERVED FOR DISCIO USE .WORD 0 ;RESERVED FOR DISCIO USE .WORD 0 ;RELATIVE SECTOR ADDRESS .WORD DNWRDS ;NO. OF WORDS TO TRANSFER . = .+OBUFSZ ;ALLOCATE SPACE FOR LIST & DATA ; DSCBF2: .WORD 0 ;FILE ID .BYTE 0 ;SECTOR FLAG .BYTE .|f"^vxxZxw*| ww6vxx(*| *w7*nk-U8 *:n׭4A/  *^n~J;&ji ~ ~ z v r7 r7 pwn7l^7 Zf eeDDw v "7\c$"yjyccDcjy$@yccw2$^yxw ww* }w   " 1,1,1,*D}Dv"LvxxV׭ ɵ*nɵ-Dt*nwVe *3<!&  7 2w,7o&" $~j w xw7w "w(w&|y׭dlw׭SZyww w & w c@yc#|*h}vwwAz& *}Ν1 0vww,}B  r$*n ".bw ?*n-o-o b>*owy 1 ;READ/WRITE FLAG .WORD 0 ;RESERVED FOR DISCIO USE .WORD 0 ;RESERVED FOR DISCIO USE .WORD 0 ;RESERVED FOR DISCIO USE .WORD 0 ;RELATIVE SECTOR ADDRESS .WORD DNWRDS ;NO. OF WORDS TO TRANSFER . = .+OBUFSZ ;ALLOCATE SPACE FOR LIST & DATA ; ; ; DISC READ I/O LISTS ORDERED BY UNIT NO. ; .BOUND DRLST0: .WORD 1 ;THREAD WOR) Lwbw*6obwbwbwbw*Zobwe<!*&f $2 eW0W7!~j,E0W0 W9WAWF+>;G~J.?(`.- .     Օ^e@Օ ĕ  -fTN]~: NJ f@L{w @ w x7w Nc\`{cw 7w lc&p{ccw .D`cf&c*{A,0 -0&f&f 8 7 <<<0 ~:<<  @ ! B*p 7 ffqfJ, qf3 f&iw  y*0q7j CPd-e-P~.D >| Rt H x >.n-.x- n-0000  ˕/DDe d 9~ sBOUND DRLST1: .WORD 1 .BYTE DISCUN,3 .WORD TTYDR1 .BYTE 0,NDPRT1-1 .WORD 0,0,TTOBF1 .ENDC .IFG NTTYS-2 .BOUND DRLST2: .WORD 1 .BYTE DISCUN,3 .WORD TTYDR1 .BYTE 0,NDPRT1-1 .WORD 0,0,TTOBF2 .ENDC .IFG NTTYS-3 .BOUND DRLST3: .WORD 1 .BYTE DISCUN,3 .WORD TTYDR1 .BYTE 0,NDPRT1-1 .WORD 0,0,TTOBF3 .I  x-,@ @ > ?& 7 ! .x-fՋ D w 7J | B}*}& H F c 5 %c*~ 5 %lKՕ 7x7u  LeB5 82  a << <p~; e@ Lh*q-& y 7 .:y7h*qE   +&ib*qi ɋM~:/N~*!0! 7w @!ww @! 00   CaCa` 7!wp O7{ *8~ fc ,5&55@<4*\~- (< elP-W!<.Օ Օ B le-xLJ-0-aB A @ v!$N    /#   cw& 23   w j*s!ׂ &i 7(i & ע*s. W._ 0*twwk @1"~ 242.$$$$.lUw0v$e  *$I~# "  U0 "e "n *  0?h ne. v~>v    w(EDN " v!$DE+- v!$DE ou2i<  M*(t@0w2ODGW!*LtW µ % ]pZ2B6:<===@A$BJ)& !Q~2@!>-Z-*-65 5$5 qDe$ыW', 2TN 5ԕ u a~r$7& / BU w" * W'r>>@>8}.>?  7[5Q? R? *>??7H$??s0090 ` av!$~*?  ` "w   4 4f& ( " mB A t*ptz ts,7b0. *t 2. *t&W" ;RESERVED FOR DISCIO USE .WORD 0 ;RESERVED FOR DISCIO USE .WORD 0 ;RELATIVE SECTOR ADDRESS .WORD DNWRDS ;NO. OF WORDS TO TRANSFER . = .+OBUFSZ ;ALLOCATE SPACE FOR LIST AND DATA TTOBF1: .WORD 0,0,0,0,0,0,DNWRDS . = .+OBUFSZ TTOBF2: .WORD 0,0,0,0,0,0,DNWRDS . = .+OBUFSZ TTOBF3: .WORD 0,0,0,0,0,0,DNWRDS . = .+OBUFSZ TTOBF4: .WORD 0,0,0,0,0,0,DNWRDS . = yµ@6µwµ*twµi ͵&5*uy# 7P-zrW 7 4F-/ D<W 7 R-/ ~r3 d4W Z->-{hWHc w(W.a Sl - & v$e P $I~b% B "UUU" E0Q|}"B A @ C6v "$e~@΋V w  J &f 8 2~*$u׭3 /074*Hu7 7%V*lu$oad- n-n4-n-7 x-~4-x-7 -d-~30  1 w4  w$2( e "e2e(w, ~%wF6 0wf&f  eB A @ eA @ e@ e B A @    ~@01   01 !1 eVJHD*u-Z-7 • !~4•S. 5Da* & - EE 2** &e(e(v$e -DE Z$R~& "UU>>@>8}.>?  7[5Q? 7\$?y*>??>?? < ~ 0 rCF 5 5       $ENDD ~A p > xɥ0  fעע *Dv& עע Š Հ 3*hv ݮp p 7 X   55 w.Z-# 0000 ERRORS 4d N(f     `A  w 0& \2~R5 8U E0Q e "$2w .... &e(E FT ~B'd ?e*>e 5 58} ]"?.? .? A>  D z%ɋ3 .TITLE .CSECT .GLOBL : JSR %4,$POL~ASH .GLOBL $POLSH,$NAM,$SEQ $*v  &7[7l*v hhi7, 74 7 *v.(4'FA P X5@ z E m C 6 6 @ @ @ EC n ,&  f q~5 $D V "U UE 555    Eǯ & `~'UND ERRMOD: .WORD 1 ; THREAD WORD .WORD 0 .WORD 0 ; ERROR NO. .WORD 0,0,0,0 ; ARG 1-4 ; ; ; TABLE OF INPUT TIMER MODULE ADDRESSES ORDERED BY UNIT NO. ; ITIMER: .WORD ITIME0,ITIME1 .WORD ITIME2,ITIME3 .WORD ITIME4,ITIME5 .WORD ITIME6,ITIME7 . = ITIMER+NTTYS+NTTYS ; ; ; TABLE OF OUTPUT TIMER MODULE ADDRESSES ORDERED BY UNIT NO. ; OTIMER: .WORD OTIME0,OTIME1  1f B1e `) `)  E Em    5 E 5  W(Jz CHC f&  efCfDCd` ~BP *@w 7 *6 5*dw5 6 &p $*w]~B67  ~ &P w :  NL$ w5  bw :w %:  5~2(5 Uf 5E fE`m4 w!. $*  E ~  1wwp0C&./  FTN000.OVL C:CzC.C8CBCLCVC`C~bCj.8V*icZ**w JBU*w-U@  @ M~6Ee  R     & w 7t w7n~(U w>ff&ff&& 7 m  E%  Bzz:|{L}*/." +%$#(!'&0zLIST V001A *{  z .WORD OTIME2,OTIME3 .WORD OTIME4,OTIME5 .WORD OTIME6,OTIME7 . = OTIMER+NTTYS+NTTYS ; ; ; TABLE OF WAIT TIMER MODULE ADDRESSES ORDERED BY UNIT NO. ; WTIMER: .WORD WTIME0,WTIME1 .WORD WTIME2,WTIME3 .WORD WTIME4,WTIME5 .WORD WTIME6,WTIME7 . =WTIMER+NTTYS+NTTYS ; ; ; INPUT TIMER MODULES (OPERATOR RESPONSE TIMER) ; .BOUND ITIME0: .WORD 1 ;THREAD WORD .WORD 0,0,0 . END S200 ({  #  >{~T{00000* S{+=^VN:L*`x  4@. c$*x@# gNHT3:5~7 w ng: 3:  w XE:CF Zw Hd: w b#  CF 8 .wB09~)AZ!ĕ:ĕ,ĕ f1f wfJN*0|{NENE*y*T|{LM*x|*x7  SL  *Aw4*xL C*w_ *x _  @: ~"8l"w 9w 9I *w , w 9O  w  w17 w *~* .GLOBL** v*J*K*L*N*O*P*T*Y*^*b*f*j*n*r*v*+-***/.OR..AND..NOT..LT.*|z|!B|8|x|B|*|j|8|{B|B| BYTE SECR ; RESOLUTION .BYTE TJOPTN!TFOPTN ; OPTION BYTE-J AND F .BYTE 0 ;TIMER COUNTER .BYTE 0 ;RESET COUNT .WORD ITIMFB ;FLAG BYTE ADDRESS .WORD 0 ;FLAG MASK(UNIT NO.) .WORD TTYITO ;TIMEOUT ROUTINE ADDRESS .BOUND ITIME1: .WORD 1 .WORD 0,0,0 .BYTE SECR,TJOPTN!TFOPTN .BYTE 0,0 .WORD ITI*\y7& EEEE  `*y` e ` E&EUs*yp̵ 7 7 w L:w L:w %:~9 @ 7a& *7 $w y:F r7  נA   e`  ~+B¥ ɥ ɋ  D &f V||0|/N*R}Na w| -  *v} -   V|7 L|8|40|/,~"w wL||L|e*.~  >{L|L|w4V/,8 נ0*yנ98 å$ å.נ`*yAנZ נaנz EG2w @E bw _:11Jw 9 ~9Jw ,w 9 J w ,w r9 ~JJ DW R  &&f~z++  Ëנe ee e ѐ -c*} tV| z|V|,} ֵ5@PL w|V|*}| @*R~% w &f"F{U*v~V|V| ,~\wR.z *7&&iißzi*8z#0 E &dw*\z0U%f MFB,1,TTYITO .BOUND ITIME2: .WORD 1 .WORD 0,0,0 .BYTE SECR,TJOPTN!TFOPTN .BYTE 0,0 .WORD ITIMFB,2,TTYITO .BOUND ITIME3: .WORD 1 .WORD 0,0,0 .BYTE SECR,TJOPTN!TFOPTN .BYTE 0,0 .WORD ITIMFB,3,TTYITO .BOUND ITIME4: .WORD 1 .WORD 0,0,0 .BYTE SECR,TJOPTN!TFOPTN .BYTE 0,0 .WORD ITIMFB,4,TTYITO .BOUND ITIME5: .WORD 1 .WORD vx uu~#"^D `:^A =sL"^@0:`^ED ^@5N}^@S u~@^@{ E *{  ;i*{ ;[{{*{"{B|* B|DEM515255707172s|N fi}s*y"fl}"fp}"L*y CfEv} f}".- ee &(,-E ee\~{|~{{;{,|{ 7~{{;S,B|{{ d7k n*yf}" wbwbf}n.z"ע0ӕ f}" tf}*.z" 0,0,0 .BYTE SECR,TJOPTN!TFOPTN .BYTE 0,0 .WORD ITIMFB,5,TTYITO .BOUND ITIME6: .WORD 1 .WORD 0,0,0 .BYTE SECR,TJOPTN!TFOPTN .BYTE 0,0 .WORD ITIMFB,6,TTYITO .BOUND ITIME7: .WORD 1 .WORD 0,0,0 .BYTE SECR,TJOPTN!TFOPTN .BYTE 0,0 .WORD ITIMFB,7,TTYITO ITIMSZ = ITIME1-ITIME0 ;DELETE UNUSED MODULES . = ITIMSZ*NTTYS+ITIME0 .IFG NTT j c \Ha}*Rz < |}x *x}"n*vz^}Z  C!} %%fBA  J fq,>6 w h U`fw(ξ0 e~{*|{{{{{*|7 w {{zo0zx 7r w (,w 7t % w FM*z0p (76  ~ɕ0 @*z  5ѕ 5 5 *z hfph$`&fbhfl@hf lG{ `,}w  Nw7 N{4*D}{{{7 &w {{W*h}.:X@Hv} 7^w w ` % J.>ĝ\770 , T i} f~"Rk,{~ e@5}*,{"  }" YS-8. ;IF NTTYS .GT. 8? XXXXXX ;CREATE ASSY ERROR, NTTYS GT 8!! .ENDC ; ; ; OUTPUT TIMER MODULES ; .BOUND OTIME0: .WORD 1 ;THREAD WORD .WORD 0,0,0 .BYTE MSECR ; RESOLUTION .BYTE TJOPTN!TFOPTN ; OPTION BYTE-J AND F .BYTE 0 ;TIMER COUNTER .BYTE 0 ;RESET COUNT .WORD OTIMFB ;FLAG BYTE ADDRESS ~{7 *}{{{{{{H*}{{{w b ^*~.kK@HimR@H=sL"@Hv@@Hu~"@H`.@H ` @H)X@H(4h +.: w 2w p,4 w  ' 7  ',X&w \w wXw w  /E)E {MM{@'| DISK DIRECTORY . gps@;e0XT~{w: $*B~ 4w~{wv Df~ECTAPE COPY V001A jh_MQhYehyhc0@@0|fw |t w 7 wtwhw O  *O l, %_ E e whH *} UIC T FILNAM.EXT DATE *,} MODE START DLONG LAST P} PRO@}@d.K@LC @( g:h$h%&CvhS}he^h*|~ORIGINAL ON UNIT COPY To*~O UNIT ????  *** I/O *~ERROR, UNIT .WORD 0 ;FLAG MASK (DEV. NO.) .WORD TTYOTO ;TIMEOUT ROUTINE ADDRESS .BOUND OTIME1: .WORD 1 .WORD 0,0,0 .BYTE MSECR,TJOPTN!TFOPTN .BYTE 0,0 .WORD OTIMFB,1,TTYOTO .BOUND OTIME2: .WORD 1 .WORD 0,0,0 .BYTE MSECR,TJOPTN!TFOPTN .BYTE 0,0 .WORD OTIMFB,2,TTYOTO .BOUND OTIME3: .WORD 1 .WORD 0,0,0 .BYTE MSECR,TJOPTN  *** UNRECOVERA~BLE COPY ERROR ~ COPY COMPLETED '#VERIFY COPY 6 v@ \!p $u~"&@.LB0w24w6 ,2! w * w "w * 7 w ,7w 77  J }  } w} TOTAL BLOCKS #} ******* DISK MAP >hb \ @(;0J "" & (Y OR N)? {6BE:02f:4 6&E:("rww 2  ,4w7  ww (b ww ,Xw A B` r%D,|} }} BLOCKS USED ~ BLOCKS FREE 2 ~ *b~|~#vtLC s(LC ,r2*&  wZK} f: )XkK8C " .X e: g:!TFOPTN .BYTE 0,0 .WORD OTIMFB,3,TTYOTO .BOUND OTIME4: .WORD 1 .WORD 0,0,0 .BYTE MSECR,TJOPTN!TFOPTN .BYTE 0,0 .WORD OTIMFB,4,TTYOTO .BOUND OTIME5: .WORD 1 .WORD 0,0,0 .BYTE MSECR,TJOPTN!TFOPTN .BYTE 0,0 .WORD OTIMFB,5,TTYOTO .BOUND OTIME6: .WORD 1 .WORD 0,0,0 .BYTE MSECR,TJOPTN!TFOPTN .BYTE 0,0 .WORD OTIMFB,6,T Z E t4P 4Iw Y4 4Q,-% w  =w H *~ >J&B*~zQQAA wL^Y  OfhOfhOhhOhhOihO(ih OPihOxih .Czh(Ϋ , 7 4=w e0 4,0w ,w %@w ~k&% 4) 0/ =x D EN . C ND.E N URET;R PC S RT R1+,P)(S V MO RSTEISEG RRETOES;R R4+,P)(S V MO F OFO TUSATSTT NI UET;S ) R1N(YOTT CBIN R1 R AS ESBLTAD OR WTOX DEINT NI UET;G R1 L AS E YT BAGFLR METIM RO FNOT NI UET;G 1 ,RFBIMWT VBMO P)(S,-R4 V MO TYOTO .BOUND OTIME7: .WORD 1 .WORD 0,0,0 .BYTE MSECR,TJOPTN!TFOPTN .BYTE 0,0 .WORD OTIMFB,7,TTYOTO OTIMSZ = OTIME1-OTIME0 ;DELETE UNUSED MODULES . = OTIMSZ*NTTYS+OTIME0 .IFG NTTYS-8. ;IF NTTYS GT 8 XXXXXX ;CREATE ASSY ERROR, NTTYS GT 8!! .ENDC ; ; ; WAIT TIMER MODULES ; .BOUND WTIME0: .WORD 1 ;THREAD WORD .WORD 0,0,0 e0w v,w nHBF),w 6- .274,  4,VݩЁ(ݩhݩ؁h ݩh ݩ(hݩPhݩxh{VUЁ.ep""@H:( B:8w ?j,w 7 w 777     w y,,%0 %7 (Uh U؁hUhU(hUPhUxhA.df6( S ERSTGIREE AV;S P)(S,-R1 V MO . = ONYOTT ; ; EDEUQUDES IERIM TITWA ; FF OTOT SES IG)LA FFF/OONT NI(UN YOTT ; ; - -ITEXN PO UNSIOITNDCO ; ; E YT BAGFLR METIT AI WIND NEAINTCOS IO. NITUN ; ; --Y TRENN PO UNSIOITNDCO ; ; N OOTY,TPC R JS ; ; - -CEENQUSEG INLLCA ; ; NETIOU RUTEOIM TERIM TITWAY TT- -ONYOTT ; ; ; E AG.P RNTURE ;  .BYTE SECR ; RESOLUTION .BYTE TJOPTN!TFOPTN ; OPTION BYTE-J AND F .BYTE 0 ;TIMER COUNTER .BYTE 0 ;RESET COUNT .WORD WTIMFB ;FLAG BYTE ADDRESS .WORD 0 ;FLAG MASK (UNIT NO.) .WORD TTYOON ;TIMEOUT ROUTINE ADDRESS .BOUND WTIME1: .WORD 1 .WORD 0,0,0 .BYTE SECR,TJOPTN!TFOPTN .BYTE 0,0 ).:`; @HD *.S6(S2hI.=(@8h+ & & w6m[qjt, N"[g4))b",L@f: (. *&-V^}.@ < V^l,Nz Z7U<.@<@@H0.e@Hq!e@H #}@H_MQ@Ye@].amxx@Hw]@H*}`@Hu~@@H9p:@HR/.E=(E@8h.=(@8h0 C P TS R CKLO . S ESDRADN URET RVEBO APST ERNS I ; ) SP2(S,#P @ OV M D OR WNE OWNDOS ESDRADN URET RSHPU ; ) SP-(),SP ( OV M . = UTCOLO ;T OUOC,LPC R JS ; ;- -CEENQUSEG INLLCA ; ;K ACSTN OSR PNTREUR CESAV S ;) 7TOI PRU CPS ET(SS PTRUERNT IUTKOOC LTOE INUTROUB S--T OUOC L ;; ;E AG.P DCEN . 7 A4RT P MP J E AV S P)(S,-56DRTT # OV M E INUTRO ; .WORD WTIMFB,1,TTYOON .BOUND WTIME2: .WORD 1 .WORD 0,0,0 .BYTE SECR,TJOPTN!TFOPTN .BYTE 0,0 .WORD WTIMFB,2,TTYOON .BOUND WTIME3: .WORD 1 .WORD 0,0,0 .BYTE SECR,TJOPTN!TFOPTN .BYTE 0,0 .WORD WTIMFB,3,TTYOON .BOUND WTIME4: .WORD 1 .WORD 0,0,0 .BYTE SECR,TJOPTN!TFOPTN .BYTE 0,0 .WORD WTIMFB,4,TTYOON .BOUND WTIME5: .WORD 1 9( h@h hp@.X(h*:;<w ,Rw %/w ,v\ z \pp` = J,$,H>.( 쨀>h.ρ( h?.D ; @H PTRUERNT IERNTRI PTOE NCRANT EKEMA ; ) SP-(S, P B OV M S LEAB TRDWOO TEXND IITUNS AEDUS ; 5 R SL A T NI*U 2 =EXND IET;G 5 ,RR1 V MO O. NITUNT GE ; 1 R SR A E BLLAAIAVUNE IL FET;S 1)(RILVADA RBCL ELEV L +ITUN2* =EXND IET;G R1 R AS EDRRCUOCH TCMAE ERWHX DEINE BLTAT GE, ES;Y R12,D+EIIL#F B SU NO ; 0 R7TD T NE B ? LEAB TIDE IL FINY TRENH  .WORD 0,0,0 .BYTE SECR,TJOPTN!TFOPTN .BYTE 0,0 .WORD WTIMFB,5,TTYOON .BOUND WTIME6: .WORD 1 .WORD 0,0,0 .BYTE SECR,TJOPTN!TFOPTN .BYTE 0,0 .WORD WTIMFB,6,TTYOON .BOUND WTIME7: .WORD 1 .WORD 0,0,0 .BYTE SECR,TJOPTN!TFOPTN .BYTE 0,0 .WORD WTIMFB,7,TTYOON WTIMSZ = WTIME1-WTIME0 ;DELETE UNUSED MODULES . = WTIMSZ*NTTYS+WTIME0 Ic <&$   ; J.8C 2@2;}GKh V,  @w @ % % w ,. ww  *L: BBPB ? < JJ ILL CMD!  M(Ϋ@h6t!b(4hh 5NO@2@2|. ` @2(z8C h;}I(;}I(.;}J(;}8J(;}`J(;}J(;}J(P,RD  &C@AEPA&f,vw w /w w :w j, TCMAE AM NESDO ; + 1)(R3, R MP C . = 70DRTT ERNTOI PLEAB TIDLEFIT NI;I R1D,EIIL#F V MO ERFFBUD EA ROMFRD ILEFIT GE ; 3 ,R1)(RTADA @ OV M . = 60DRTT ;Y ITORRI/PITUNR FOQ E OR CTOT ERNVCO, ORRR EADREC IS D ;; RNTURE ; C P TS R . =6 R5TD TT PUUT OORT PUINE IZALTINI;I T NIOI,TPC R JS . = 50DRTT UTKOOC LSEEAEL;R PS+,P)(S VBMO D OR WADRETHO ER;Z 0)(R C .IFG NTTYS-8. ;IF NTTYS .GT. 8? XXXXXX ;CREATE ASSY ERROR, NTTY GT 8!! .ENDC ; ; TIMER MODULE FLAG WORDS ; ; ITIMFB: .WORD 0 ; INPUT TIMER FLAG(UNIT NO.) OTIMFB: .WORD 0 ; OUTPUT TIMER FLAG(UNIT NO.) WTIMFB: .WORD 0 ; WARMUP TIMER FLAG(UNIT NO.) ; ; ; PROGRAM VARIABLES ; TTYPRT: .BYTE -1,-1,-1,-1,-1,-1,-1,-1 ;UNIT STATUS ; <0 = UNIT NOT BUSY Yq<*;}G;}G"<$2(2&&V0m0  MZ7U4E(w T760  pV$V*H[.q!e eamxx*}`u~@$DTREdEX8  2<@ \ݩhhhhhwF0(h@8hph].q!es@HD ^.V m  ` ;}I ;}IbD. ;}J ;}8J ;}`J ;}_,0w V׭U ,T7w @`d [q8[q [q9a,  s.[q [q[q [q9p:DE SCDIN OUT PSTJUT IS LUEUEEQ;D T ISQL,DPC R JS S PTRUERNT IUTKOOC;L T OUOC,LPC R JS STLIDQT PUUT OOR FEG RET;S R4 R CL . = 40DRTT O ;N 50DRTT E BN ? NGNIAR WZESIG MSA R ROERS ;I SZRMER,#R4 P CM O ;N 40DRTT Q BE R?ROERT ESQUREC IS D AREHE TAS;W R4),R0R(ROER V MO NETIOU RTERI WSCDIL AL;C T CWIS,DPC R JS SSREDD ASTLIO I/C IS DET;G R42, ; 0 = INPUT HAS PRIORITY ; >0 = OUTPUT HAS PRIORITY . = TTYPRT+NTTYS TTO1ST: .BYTE 0,0,0,0,0,0,0,0 ;FIRST OUTPUT REQUEST FLAG ; 0 = FIRST REQUEST ; 1 = SUBSEQUENT REQUEST . = TTO1ST+NTTYS TTI1ST: .BYTE 0,0,0,0,0,0,0,0 ;FIRST INPUT REQUEST FLAG ; 0 = FIRST REQUEST ; 1 = Si' w  D & $' .@eZ%ĕtD72 VVD V(Vl T$ w* * T #} [q* 9a&[q   7  _k]hFcb(c]h ]h"]h۩]hpW,2Jb  .$ 0!- )!&7!#yD m;}Iv ;}IvenX;}I%2n,w Bw .e` w ;w <, ĝDw w"f&offhvLI~fz.=(>@8h6+=(+@8h@8hSTWL#D V MO 3 ,RR2 D AD S LEAB TLEFIC IS DTOX DEINE AK;M 3 ,RR5 V MO ES;Y 50DRTT E BN ? SYBUT IS LTERI WSCDIS ;I 1 ,#T2LSDW P CM C ND.E T. ISE UAN CWEW NO; R0+,P)(S V MO VA S ; 5 SVPA,PPC R JS TO A PP; P)(S,-R0 V MO 1CT1$K Z FN.I . = 30DRTT ALRMNOO TELEV LET;S R2 R CL O ;N 50DRTT Q BE ? Q UBSEQUEST REQUEST . = TTI1ST+NTTYS TTORPT: .BYTE 0,0,0,0,0,0,0,0 ;REPEAT COUNT FOR OUTPUT TRYS . = TTORPT+NTTYS TTCURS: .BYTE 0,0,0,0,0,0,0,0 ;CURSOR FOR CURRENT PRINT POSN OF DEVICE . = TTCURS+NTTYS FRSTRO: .BYTE 0,0,0,0,0,0,0,0 ;FIRST RUBOUT SWITCH ; SET TO 1 WHEN 1ST RO IS INPUT ; RESET TO 0 WHEN 1ST NON-RO CHAR ; IS INPUT . = FRSTRO+NTTYSy~ g'; ^@ ; ^@v@^@[qj^@{QD^@}C ^@""^@  9a [qX[q _,j ! 7! E ^D _MQ"Ye |$v& & &  ;}J2},gpbtV  <hD ! pth D,%& &~~g` * ` 1&t   c2 1"?T<9 N9a ` (UTTPOUL MAOR NING INTHNY;A 0 ,R4)(RSTIRQF V MO T PUUT OALRMNOO TERNTOI P QET;S ) R4-( T TS ES;Y 30DRTT E BN ? UEUE QRI PING INITWAS STUEEQ RNY;A 0 ,R4)(RSTIRQF V MO R4O TERNTOI PLEAB T QET;G QXET,GPC R JS TYRIIOPRO TELEV LET;S 2 ,R#1 V MO S UEUE QUTTPOUR FOG LA FET;S R4 R CL AGFLL UL FLEFIR FEUF BSCDIR EACL ; ) R3L(ULBF D B LR C . = 20DRTT LEFIF OORCT$ SLSHCH: .BYTE 0,0,0,0,0,0,0,0 ;CHAR TO BE ECHOED AFTER "\" . = SLSHCH+NTTYS MAXCH: .BYTE 0,0,0,0,0,0,0,0 ;SET TO 1 WHEN MAX CHARS EXCEEDED ; ON INPUT . = MAXCH+NTTYS .IF NE,ASR37 PADCH: .BYTE 0,0,0,0,0,0,0,0 ;PAD CHAR OUTPUT FLAG . = PADCH+NTTYS .ENDC CHTYPE: .BYTE 0,0,0,0,0,0,0,0 ;CHARACTER TYPE: USED IN TTY PRINTER ; INTERRUPT ROUTINE TO IDENTIFY @H<@H.a,}@H.R@Haw}@HyR@H9 N@H.9a@H(<@hu~@hRTASK # 5 v $v& & &  ];}`Jru,T   w ׭r ^] r_,x w Uw w njUh5 Ewe7 B7 \7 N7 7<79@7 2~h q& . HH:MM:SS MM/DD/YY 2v,v TASK # 6 v $vSET 1SO TERNTOI PET;S 3)(RSGTMNX RBCL . =0 R1TD T0 R2TD T R B ) R3G(MSXT,NR4 VBMO R4Z,FSBU#D D AD ZESIG MSE ONY BERNTOI PMPBU, NO ; R4),R3G(MSXT N B OV M S YE ; 0 R1TD T S HI B ? EDUS ; N EE BLEFIF OORCTSEP TOS HA ; 1 Z-ESIL#F),R3G(MSXT N B MP C T SEB LS ; 5)(RADSTOL0, R OV M H IT WSSREDD ASTLIT PUUT ONTREUR CVESA ; 0 R NC I 3 ,RR2 D AD ( ; TYPE OF CHAR LAST OUTPUT ; ; 0 = CHAR FROM OUTPUT MSG ; 1 = ECHO OF INPUT CHAR ; 2 = ECHO OF LF ; 3 = ECHO OF CR ; 4 = ECHO OF "U" ; 5 = ECHO OF "^" ; 6 = ECHO OF 1ST "^"  W, ! &yR,n $w*xW, !  TASK # 7 v $v ;}J40 w N%w 77 0 ,. w Z e0w ,w ,/2f7,,yB!ReL|,y %2d -XN7 eN~Rj@H(h; h, w  ў .R$. * "aw}a,}*2v,v TASK # 8 v $vR w p ,v  Cå å$ נA 0 ITUN2* =R5 ; S LEAB TITUND OR WTOX DEINE AK;M 5 ,RR3 V MO L)VELE+ T NI*U(2= 3 R; R3 L AS LEAB TLEFIC IS DTOX DEINE AK;M 3 ,RR1 V MO ELEV LET;G R2),R0L(VELE VBMO O. NITUNT GE; 1 ,R0)(RSKRTER V MO . NOT NI UET;G1 ,R0)(R+1EMSTSY VBMO S ESDRADT IS LET;G R0T,LSTR#T D AD SSREDD AERFFBUA AT DUTTPOUT GE ; R0),R1A(AT D OV M S YE ; , ; 7 = ECHO OF "\" ; 8. = ECHO OF EOM CHAR ; 9. = INTERRUPT FROM OUTPUT OF ; LF IN OUTPUT MODE ; 10. = INTERRUPT FROM OUTPUT OF ; CR IN OUTPUT MODE ; 11. = INTERRUPT FROM ECHO OF ; CR AFTER EOM ; TASK # 9 v $v ;}I/  @(  , ODT-11R V00q$ 2ABE~Bk@`   F`w`zw`xw`xw`rw`vw`d  %>7 .7 4,|,y2 v,v TASK # 10 v  , ,, *;/\ $G _<^,OWEBP@>SRC-FI!XAS<P PMCFRB t k v~kt^ ^  y,y7 7<B!ded^,V& X@Fw 0 R6TD T NE B ? ORRR ESCDIA E ERTHS WA ; 1)(RORRR E ST T . = R1YDTT ;; --T XI EONUPS ONTIDION C ;; STLIT ESQUREO I/C IS DOFS ESDRADS INTAON CR1 ; ;- -RYNT EONUPS ONTIDION C ;; R1YDTTC, P SR J ;; --E NCUEEQ SNGLIAL C ;; NETIOU RONTILEMPCOO I/D EA RSCDI- -R1YDTT ; ;; GEPA . M TEYS SUF BSG MOR FNGWILOOL FEMSS;A UFGBMS FG.I DCEN . 7 A4RT P MP J 0 12. = INTERRUPT FROM ECHO OF ; LF AFTER EOM ; 13. = INTERRUPT FROM OUTPUT OF ; A RUBOUT TO TURN ON TTY ; FOR INPUT .IF NE,ASR37 ; 14. = INTERRUPT FROM OUTPUT ; OF DC3 AFTER RECIEPT OF CR ; 15. = INTERRUPT FROM OUTPUT  V h zo y/  V 9~l7  \T  w%Z7+ 7 ( %fT   4y |m` .v@;@Hyxh z4fhS.;}G@HX}@HB.#wq@Hy@H(<[qjhC׭ $w f N`  Z 7T L{~ L{,y,yj $n %L{~o,yL{N ,yD e( {QDh8.7 ,e$$Xdp|*Xdp | (1,(3p3p  ", <&80808&ߐ & 888&a,&TY TET G ; R1),R0K(TSRR E B OV M DCEN . T IS L'SERUSR FOR ASP UET S ; R6PA$K),R12(A+AT D OV M C 11KT $ NZIF . R0),R0 ( OV M SSREDD ASTLIT ESQUREY TTT GE ; 0 ,RSTRLTT # DD A SSREDD AERADHER FEUF BSCDIT GE ; R0),R1A(AT D OV M CKTA STOONR DD ASTLIO I/C IS DSHPU ; ) SP-(1, R OV M . = W1YDTT ;; 5 ARKPG INUSA SVN AISS ESDRADN HE TC,11KT $IF: TENO ; STLIT ESQUREE ITWRC IS DOFS ESDRADS INTAON CL DATA BUFFER . = ODPAR6+NTTYS2 IDPAR6: .WORD 0,0,0,0,0,0,0,0 ; USED TO SAVE PAR6 OF CURRENT INPUT ; ; DATA BUFFER . = IDPAR6+NTTYS2 .ENDC ; ; TELETYPE I/O QUEUES ; QUEUE ORDER: ; ; NORMAL OUTPUT ; PRIORITY OUTPUT ; NORMAL INPUT ; PRIORITY INPUT ; .QUE QFIRST,QLAST,4*NTTYS .PAGE ;) pp"p&Y p3p3p pp@Y,@*0(&f L7Iߕ yP$*PG,Pbx& -ߕ+rzE^X 9:^ED gp^E [g4^@+hfp^@#;\!^@0 ^t!^De-################################.0q*0q*0q* q*q*"q&*a,d0q*0q*0q/*b x P,t1 7 7 7 m tfR1 ; ;- -RYNT EONUPS ONTIDION C ;; W1YDTTC, P SR J ;; --E NCUEEQ SNGLIAL C ;; TERI WSCDIR FOE INUTRON IOETPLOM C/O I--1 DWTY T ;; ;E AG.P UFGBMS FG.I DCEN . N URET;R PC S RT RSTEISEG RRETOES;R R OP,PR5 R JS O ;N 15VLMO O BL D?VEMOL AL ; R24, R MP C R FEUF BTOG MSF OARCH2 V MO ; )+R4,()+R0 ( OV M . = 15VLMOP ; ; TELETYPE OUTPUT REQUEST PROCESSOR ; ; CALLING SEQUENCE -- ; ; MOV #LIST,-(SP) ;PUSH I/O LIST ADDRESS ON STACK ; EMT TTYOUT ;CALL TTYOUT ; TTYOUT = . JSR R5,PUSHR ;SAVE R0-R5 ON CURRENT STACK .IFNZ $KT11C MOV $KPAR5,-(SP) ; SAVE THESE MOV $KPAR6,-(SP) ; ASR'S TOO. .ENDC JSR PC,REQPP ;CALL REQUEST LIST PREPROCESSOR B9f cK<,cc&6:.\!ps@H; ;<  V##*$5##1#w ,#  4#C*$w~T#He  ## ##5=3r rr"r& 3r3rG > "$,f&f M7J 8 &8,( ߕ ?@H ; @H.E@HM:@H""@H #}@HU(@H.{QD@HQ\!HCm@HimR@Hm@H ERFFBUO TVEMOG MSR FOT MILIT SE ; R24, R DD A R FEUF BTOD OR WEXND IVEMO ; )+R4,()+R0 ( OV M D OR WEXND ITOR TEINPOT SE ; )+R0 ( ST T ERFFBUO TT)UNCOR HA(CE IZ SSG MVEMO ; + 4)(R2, R OV M . =2 L1OV MX DEINO TZESIG MST GE ; R2),R0 ( OV M . = 10VLMO 12VLMO BR 0)(R-4Z,MSRR#E V MO T IS LOFD OR WR"ROER "INE OD CORRR EET;S 4)(R-4Z,MSRR#E V MO D WELOALX MAO TSG MTECATNE TTOR20 ;BRANCH ON LIST ERROR .IFZ MSGBUF ;ASSEM FOLLOWING FOR CORE VERSION CLR R4 ;SET QLIST FOR OUTPUT QUEUING JSR PC,QLIST ;Q LIST TO PROPER UNIT/LEVEL QUEUE .ENDC JSR PC,LOCOUT ;LOCKOUT INTERRUPTS TSTB TTO1ST(R1) ;IS THIS 1ST OUTPUT REQUEST FOR UNIT? BEQ TTOR45 ;YES, GO INITIATE OUTPUT .IFG MSGBUF TTOR02 = . TSTB DAVI, &6  &6.K $.$ ,J  8& & zU&  MU A#UU T15 ERROR,U @` K*%m=8# h 8# #*%afL#  =,#=0# && a*%& 2 L}o jm hkM f .&×&  172.ߕ# &,Nl2,mz4f4f #}U(:.simO Bf%U*V V B#jVxV T16 ERROR,V @`Q# z*% &  &  w N w P,& C4  j1# # %#UNTR, ES;Y R2Z,GSMS#O V MO O ;N 10VLMO OSBL IZ SSG MAX MT..GG MSN IARCHF OO. NRE;A SZSGOM,#0)(R P CM C ND.E R0+,P)(S V MO A SV; 6 SVPA,PPC R JS L CASIHY PEDCKPA; PAVP,TPC R JS VA TTADA; P)(S,-0)(R V MO O. NSKTA; P)(S,-0)(R-2 V MO 1CT1$K Z FN.I C ND.E SSREDD ATADAT GE ; R0),R0 ( OV M C 11KT $ Z IF . NO ; 5 L0XAIL(R3) ;IS DISC FILE FOR THIS DEV/LEVEL AVAIL BEQ TTOR30 ;NO, GO QUEUE REQUEST TSTB DBFULL(R3) ;IS THIS DISC BUFFER FULL? BGT TTOR30 ;YES, GO Q LIST TSTB DWLIU ;IS DISC WRITE I/O LIST IN USE? BGT TTOR30 ;YES, GO Q LIST INCB DWLIU ;NO, SET DISC WRITE I/O LIST IN USE FLAG MOVB (SP)+,PS ;YES,RELEASE LOCKOUT MOV #DWLIST,R4 ;GET DISC I/O WRIY}C ""Z2-7!<e 4$e  !!!!! @` 7 B & ~vT LINK-11 [#1# 8##(.&# 8##1#U8##E,&#^8##}#8##\` &!!&&ym0vߕ &wr&&] [V WR ^_ V005A PASS 1 PASS 2 # ~~~Xlw~~rwly!`#.& 8# #1#wj 8#1# #*"' 8# #1#@#wr#wm*F'&OV M LO B ? EDOV MSTLIF OLL;A 2 ,RR4 P CM ERFFBUO TSTLIF ORDWOA V MO ; )+R4,()+R0 ( OV M . = 05VLMO RDWOT EX NTOR TEINPOT SE T.IS LOFD OR;W + 0)(R T TS ADRETHN ISSREDD ASTLIL NAGIRI OVESA ; + 4)(R0, R OV M 2 ,R2.#1 D AD VEMOT IS LOR FITIM LET;S 2 ,RR4 V MO RSTEISEG RVESA ; R SHPU5, R SR J . = STVLMO ;R FEUF BTADAS STLIS ERUSR FOA SVO TET S 6SR A \TE LIST ADDRESS JSR PC,DISCWT ;CALL DISC WRITE ROUTINE MOV ERROR(R0),R4 ;WAS THERE A DISK REQUEST ERROR? BEQ TTOR10 ;NO CMP R4,#ERRMSZ ;YES, IS ERROR A MSG SIZE WARNING BEQ TTOR10 ;YES JSR PC,LOCOUT ;LOCKOUT INTERRUPTS BR TTOR30 .ENDC .IFZ MSGBUF ;ASSEM FOLLOWING FOR CORE VERSION TTOR05 = . MOVB (SP)+,@#PS ; RELEASE LOCi&ZNlwlBlw`6lwT*lwlwlw&Ew7~bxjel*'.#BE,I  *'5@ =8#CH#5@@w ĕ%*' k-Z, 7 7 7 7  0 & &&..&0`d1 80el.  CL. mL[B[T[V lW V[aF[aY@_ l"W `[_B[ l <[F[V_)4WaY,_p[i<[a3BWY@_ l <[anwlwvlwjlw^lwRlwFEw2lw&l&yyo#^8##2   *( ށ # #ĕ\##Ē,B(1#  1#ĕ\##p& 8$(ee$T0  a ;D TECAUNTRS IIT ; ),SZSGOM (ZESIG MSX MAN HA TERNGLOS WAG MSF I ;; --T XI EONUPS ONTIDION C ;; EDOV MBEO TRE ATADAE AGSSMED ANT IS L ; CHHI WTOINR FEUF BOFS ESDRADE THS INTAON CR4 ; STLIT ESQUREY TTF OSSREDD AHE TNSAINTCO0 R ;; --Y TRENN PO UNSIOITNDCO ; ;T LSOV,MPC R JS ; ;- -CEENQUSEG INLLCA ; ;T IS LOF ; D OR WM"TEYS"SS OWLLFOA AT DSG M`KOUT .ENDC ; ; EXIT PROCESSING FOR REQUEST ; TTOR10 = . CMPB TYPE(R0),#3 ;IS EXIT TYPE 3? BNE TTOR35 ;NO, MUST BE TYPE 1 OR 2 TTOR15 = . .IFNZ $KT11C MOV (SP)+,$KPAR6 MOV (SP)+,$KPAR5 .ENDC JSR R5,POPR ;POP REGISTERS OFF STACK MOV (SP)+,(SP) ;SWAP PC & LIST ADDR; POP STACK RTS PC ;RETURN ; ; PROCESSING FOR INVALyw 5 W <#4#X,h)&6c=(c@8h@8hqN:= *9mQ }us s$,F2w "  VwwREHE WERFFBU ; ATOA AT DND ASTLIY TTE OV MTOE INUTROUB S--T LSOV M ;; ;E AG.P UFGBMS FG.I DCEN . N URET RGO ; 5 W0SC D R B L VELEV/DES HI;T OR FAGFLL AIAVE IL FSCDIT SERE ; ) R3L(AIAV D B LR C RDWOR ROERO TDECOR ROERC IS DVEMO ; ) R0R(ROER4, R OV M . = 10CWDS RNTURE ; C P TS R . = 05CWDS ES;Y 10CWDS E BN R?ROERT ESQUdID REQUEST ; TTOR20 = . TTOR25 = . CMP ERROR(R0),#ERRQL ;WAS THERE A QUEUEING ERROR? BEQ TTOR27 ;YES, THREAD WORD WAS ALLREADY RESTORED INC (R0) ;INCR LIST THREAD WORD TO ORIGINAL STATE TTOR27 = . BR TTOR15 ;GO RETURN .IFG MSGBUF ;ASSEM FOLLOWING FOR MSG BUF SYSTEM ; ; CORE QUEUING WHEN REQUIRED IN A MESSAGE BUFFERRED SYSTEM ; TTOR30 = . CLR R4@]@@8@]@@8@7-!@+]@+@8@۩]@]@p@]@c]@c@8@,w~(He  ps s  (ps &s:, u yP[(cXi^[v_L[B[n[XX lZ[e_XXXw e7 r_^[X lXw f LOW LIMIT: HIGH LIMIT: ~2{  LINK11.OVR A5@ =,#fH## #*F*8#fP#w Ý?# A8#:*j*7/#~#@#@#^7O*(7""hV7%h7@)h@7@7 q@`;@p@  uy &,P W w EE [[7 X lXXw V[[L[7 @ lYYw 07 0 l$Yw (Y8[7  l6Yw 7 ?REC IS D AREHE TAS;W R4),R4R(ROER V MO STUEEQ RTERI WSCDIE AK;M E ITFR,PPC R JS SSREDD ASTLIO I/E ITWRC IS DET;G 4 ,RP)(S V MO ERFFBUO TTADAE AGSSMED ANT IS LOV MGO ; STVLMOC, P SR J T IS LSTUEEQ RTY TTOR TEINPOT SE ; 4 ,RSTRLTT # DD A R ADHER FEUF BINR DD ACTSEL RET PU ;4)(RCTSERL),R3C(SEXT N B OV M E BLTAR TOEC SXTNEO TEXND IET;S R3 R AS R DEEA HERFFBUN IIDE IL FUT;P) R4,(3)(RIDLEFI V MOh JSR PC,QLIST ;Q LIST TO PROPER UNIT/LEVEL Q BR TTOR70 ;GO RELEASE LOCKOUT .ENDC TTOR35 = . CMPB TYPE(R0),#1 ;IS EXIT TYPE 1? BEQ TTOR15 ;YES, RETURN TO CALLER .IFG MSGBUF TSTB ERRTSK(R0) ;TYPE 2, IS THIS 1ST OUTPUT REQUEST? BMI TTOR15 ;YES, TASK NEED NOT BE SUSPENDED .ENDC .IFNZ $KT11C MOV (SP)+,$KPAR6 MOV (SP)w*DXht. DXht,:{W{H@Z [g[P'*,[\\\\>*P[ \ `[<\~| E ##,H+## N#3#3# .n+}8#fL#  3#w ##  - &  {{,^m=  h \~[e,t[-@[&[![{*[B\\\SM\*[SM~} LEAB TIDE IL FTOX DEINT SE ; 3 R SL A S ESDRADR FEUF BTADAT GE ; R4),R4A(AT D OV M DCEN . 6 AR PINE USR FOP UET S ; ) R42(A+AT,D000014 # IS B ) R42(A+AT,D000016 # IC B AR PSTLIO I/E AV S ; 4)(R+2TADA5,ARKP $ OV M C 11KT $ NZIF . STLIO I/E ITWRC IS DSHPU ; ) SP-(4, R OV M . = WTSCDI ; EDORSTRET NOD AND SE UIS4 R ; ; --T XI EONUPS ONTIDION C ; ; SSl+,$KPAR5 .ENDC JSR R5,POPR ;RESTORE REGISTERS MOV @#PS,2(SP) ; REPLACE LIST ADDRESS WITH PS CLR -(SP) ;PUSH ZERO ON STACK TO INDICATE JSR PC,QSAVEI ; SUSPEND CALLING TASK JMP DSPTCH ;EXIT TO DISPATCHER ; ; PROCESS 1ST OUTPUT REQUEST FOR A UNIT ; TTOR45 = . INCB TTO1ST(R1) ; SET 1ST REQUEST FLAG FOR THIS UNIT .IFG MSGBUF ;ASSEM FOLLOWING* \ f BA   D*D\&&&&VX|h\d@ ,~~ ********** H.D~*}@Hk~[@H p@H(a,}h>&.Rhaw}h:yRh67B,7 CCHH,L,#v$4,0T01 X,1F2\,&f&Mh, 4f[g4$hfpU.   j1s  %o :<}s UNDEFINED REFE~z~RENCES ,& <- &,$76REDD ASTLIO I/E ITWRC IS DNSAINTCO4 R ;) EV L +ITUN* 2 (LEAB TTOX DEINL VELET/NI UNSAINTCO3 R ; RYNT EONT IS L'SERUSF OSSREDD ANSAINTCO0 R ;; --Y TRENN PO UNSIOITNDCO ; ;T CWIS,DPC R JS ; ;- -CEENQUSEG INLLCA ; ;T ESQUREE ITWRK IS DKEMA ; N,HE TR;FEUF BTERI WSCDIO TTADAG MS ; ND ASTLIT ESQUREY TTE OV MTOE INUTROUB S--T CWIS D ;; ;E AG.P EMSTSYF BUG MSR FOG INOWp FOR A MSG BUF SYSTEM MOVB (SP)+,PS ;RELEASE LOCKOUT MOV TTOBUF(R5),R4 ;GET ADDR OF WORKING OUTBUF FOR UNIT ADD #TTRLST,R4 ;MOVE INDEX TO WHERE TTY LIST WILL GO JSR PC,MOVLST ;MOVE LIST AND MSG DATA TO OUTPUT BUFFER INC R4 ;SAVE CURRENT LIST ADDRESS, SET MOV R4,OLSTAD(R5) ;LSB TO INDICATE WORKING BUFFER .ENDC .IFZ MSGBUF MOV R0,OLSTAD(R5) ;SAVE CURRENT OUTP  :. =))eL x  N N Ê ~j"J&) U; (J&) .n œ Da`.U*.o&@.kF.^.@H-Z@H.*}@HD~@H2@HRe@HS@~@H.[q*}@H|x@Hy2g@HYzb;@H;}G@H"  M:{ &A0 1U i <%! ,c ѐhˋÜ`E $  P   Lw;  A*}A*}>) (!?}0ӵeK6 w *D~*} AC:  ^. ? f. ILL CMD! Lt. ILL PAR! /.NON-QUIESCENT SLLFOM SEAS ; F BUSG M G IF . N URET;R PC S RT RSHA C^" "WO TOFT 1SR FOE YP TARCHT SE ;) R1E(YPHT,C6. # B OV M " "^A T PUUT;O) R5R(DBTO@T^,#' VBMO T OUMETIT PUINR FOE OD CORRR EET;S) R0R(ROERO,ITRR#E V MO C ND.E SSREDD ASTLIE USN CAE WSO; 5 ARKP,$5)(RR5PAIL V MO 1CT1$K Z FN.I SSREDD ASTLIT PUINT ENRRCUT GE ; R0),R5D(TALS I OV M .)NOT NI UINS ORR METI (TEBYG LA FROZE ; B MFTI I tUT LIST ADDRESS .IFNZ $KT11C MOV $KPAR5,OLPAR5(R5) ; SAVE CURRENT PAR5 FOR LIST .ENDC .ENDC .IFG MSGBUF ;ASSEM FOLLOWING FOR A MSG BUF SYSTEM JSR PC,LOCOUT ;LOCKOUT INTERRUPTS .ENDC TSTB TTYPRT(R1) ;IS UNIT BUSY .IFG MSGBUF ;ASSEM FOLLOWING FOR MSG BUF SYSTEM BPL TTOR02 ;YES, GO PUT MSG IN DISC Q INC (R0) ;INCR USER LIS& H H H)w_-EXT.. :-*.. (Z,N- %7 zvr, %*t- ,7% 1 M&b; "2g~y ~yrwC {"I,& wEE DY.u~t!@Hu~"P ,$ wH F. P&-*.7 . ^.- v,.D  -S#  f.V*$1 7}.[q*}*}u~ |x$ F7 B LR C AGFLT OUMETIT SE ; ) R1G(FLOI T B NC I T UPRRTEIND KBE BLSADI ; 5)(RSRICTT @ B LR C 5 R SL A G INEXND ILEAB TRDWOR FO2 T*NI;U 5 ,RR1 V MO TEBYG LA FERIM TOMFR. NOT NI UET;G 1 ,RFBIMIT VBMO . =O ITTY T ; STUEEQ RHE T ; OFT ORABN ACTFEAFO TET SISE YP TERCTRAHA C ; --T XI EONUPS ONTIDION C ; ;E YT BAGFLR METIT PUINN IEDINTAON CIS. NOT NI U ; ;- -RYxT THREAD WORD TO ONE COMB EXIT+1(R4) ; SET FLAG TO NOT SUSPEND TASK ;BY COMP BYTE 1 OF SYSTEM WORD ; NOTE: BECAUSE R4 INCREMENTED ABOVE .ENDC .IFZ MSGBUF ;ASSEM FOLLOWING FOR CORE VERSION BPL TTOR05 ;YES, GO EXIT .ENDC MOVB #1,TTYPRT(R1) ;SET UNIT PRIORITY TO OUTPUT TTOR60 = . MOVB (SP)+,@#PS ; RELEASE LOCKOUT JSR PC,TOINIT ;I*.7 7 7 a.c ..   *./*/`/r/ W2-Z k~[ReS@~2<,r  -&&= C5@@wĕ $[qj, ^ 2   bk_J]^ l^a^r_]]]w 7 L_^^w A$ ^^e7 4 l ^w 47 $j,2,. 0!- )!&7!#y.`0/343Ї33h$b(t]h7-!@p@a6:("7.gTu(S4h S4h &,8w 5 W<45<Ap3& _MQYeYe$Ye//w*xW, !, 0 >J// |/(20 DԝDԝA  . O6TY,TPC R JS NO; 3)(RTOSTFR CBIN S YE; 40YOTT E BN D?PETYY SLOUVIRE PENBEG MSR ROERS HA; 3)(RTOSTFR TBTS . = 50YOTT RNTURE; PC S RT 3)(RAGFLTO RBCL . = 45YOTT CKTA SFF ODECOR ROERP PO; + P)(S T TS METI,QPC R JS ) SP-(M,TITO#T V MO R METIT PUUT OUEUE Q ;P)(S,-5)(RERIMOT V MO N AIAGR HA CUTTPOU; 5)(RBRODTT,@R1 VBMO  . JSR R5,PUSHR ;SAVE R0-R5 ON CURRENT STACK .IFNZ $KT11C MOV $KPAR5,-(SP) ; SAVE THESE MOV $KPAR6,-(SP) ; ASR'S TOO. .ENDC JSR PC,REQPP ;CALL REQUEST LIST PREPROCESSOR BNE TTOR20 ;BRANCH ON LIST ERROR MOV #2,R4 ;SET ARG FOR QUEUING OF INPUT LIST JSR PC,QLIST ;NO, QUEUE REQUEST LIST JSR PC,LOCOUT ;LOCKOUT INTERRUPTS :<}&,.5@A > v6 w 6`*0'd w 0 Օ+*0  d 0B` e0  v\   Jb"_\ @a _& \\ _&"w 6Ps@>b(h]h7-!@p@`6:hݩ؁h &&&&\&\f<4" Ye4 $(.<& & n4e4E1w ^%Օ- ҋ &1.1  @*B1 *_fD 1 C*  F#*_e&&&&\);@7 F(cBaB `e`\eh . =0 O4TY T5 O3TY T R B UTKOOC LSEEAEL R ; S #P,@)+SP ( B OV M . =8 O3TY T5 O4TY T R B ) R3T(1STI T B LR C ) R3T(1STO T B LR C Y US BOT NTOT NI ULD OET S ;) R3T(PRTY,T-1 # B OV M . =5 O3TY TR TEISEG RRETOES R ; 3 ,R)+SP ( OV M NGSIESOCPRT PUINR OUTTPOUT NI I ; ITINTOC, P SR J ERSTGIREE AV S ; ) SP-(3, R OV M UTKOOC LSEEAEL R ; S #P,@)+SP ( B OV M DCEN .  TSTB TTI1ST(R1) ;IS THIS 1ST INPUT REQUEST FOR UNIT? .IFG MSGBUF ;ASSEM FOLLOWING FOR MSG BUF SYSTEM BGT TTOR70 ;NO, GO EXIT .ENDC .IFZ MSGBUF ;ASSEM FOLLOWING FOR CORE VERSION BGT TTOR05 ;NO, GO EXIT .ENDC ; ; PROCESS 1ST INPUT REQUEST FOR A UNIT ; INCB TTI1ST(R1) ;RESET 1ST REQUEST FLAG MOV R0,ILSTAD(R5) ;SAVE CURRENT INPUT LIST ADDRESS 1v h w^d1: 67 wJ1O*112 e*` l>f&"yB7 `ia(ci(cTa&`i0ahe`a ffff  h7h"7h7-!h7@8h 7>h7phԪ@8@n#h(G   \.h(dhOfhl   &. J@ 3 11}D "imR1) ERROR XXXXX#2 SXXXXX SXXXXX SXXXXX SXXXXX ;* 212 222w 7 G*`(c`  aq*`  \e\ \*a\&h@(p!@7w@7@@`;@p@D`@^tO*( 5)(RADBFID),R2D(FADB I OV M 5)(RADBFOD),R2D(FADB O OV M 5)(RR6PAID),R26(ARDP I OV M 5)(RR6PAOD),R26(ARDP O OV M 5)(RR5PAIL),R25(ARLP I OV M 5)(RR5PAOL),R25(ARLP O OV M C 11KT $ NZIF . 5)(RADSTIL),R2D(TALS I OV M 5)(RADSTOL),R2D(TALS O OV M 5 R SL A R51, R OV M 2 R SL A R23, R OV M 1)(RSTI1TT),R3T(1STI T B OV M 1)(RSTO1TT),R3T(1STO T B OV M .IFNZ $KT11C MOV $KPAR5,ILPAR5(R5); SAVE CURRENT INPUT LIST PAR .ENDC TSTB TTYPRT(R1) ;IS UNIT BUSY? .IFG MSGBUF ;ASSEM FOLLOWING FOR MSG BUF SYSTEM BPL TTOR70 ;YES, GO EXIT .ENDC .IFZ MSGBUF ;ASSEM FOLLOWING FOR CORE VERSION BPL TTOR05 ;YES, GO EXIT .ENDC CLRB TTYPRT(R1) ;SET INPUT/OUTPUT PRIORITY TO INPUT BR TTOR60 *a    $ `h*a  `œ  b\PaA@`;@p@6E`O\("(p!h-X@.=(@8h  ys,b7  5@s 5NYe4&Ye233 3 3333333+3333 3"3$3(3a6 6 \F"a    \:"a&\w  \6%&O(he@T6@I(@Dh e\.E=(E@8h T NI UEW NTOT ENNMROVIENE OV MO, N ;1)(RRTYPTT),R3T(PRTY T B OV M ES Y ; 8 O3TY T GE B Y?US BITUNW NES I ; ) R1T(PRTY T B ST T UTCOLOC, P SR J UTKOOC LSEEAEL R ; S #P,@)+SP ( B OV M 0 O3TY T GT B 4 R EC D )+R0 ( LR C ESEUQUT NI ULD OARLE C ; + 5)(R0, R OV M )+R2 ( ST T . =2 O3TY T 2)(R),R5 ( OV M 2 O3TY T EQ B T NI UEW NTOS STUEEQ REDEUQUE OV} ;GO INITIALIZE INPUT FOR UNIT .PAGE .CSECT .TTYIN ; ; ; TTINIT -- TTYIO INITIALIZATION ROUTINE ; ; CALLING SEQUENCE -- ; ; JSR PC,TTINIT ; TTINIT = . JSR R5,PUSHR ;SAVE REGISTERS MOV #TTICSR,R0 ;CLEAR TTY CONTROL STATUS REGISTERS TTIN10 = . CLR @(R0)+ CMP R0,#TTIDBR BLO TTIN10 MOV #1,R1 .IFG MSGBUF MO)( IqKh.LϚ(Nh.* \!.Ϛp@($h +$0s!ssuuww E *sssuuww(,*5ee **5w4 6 D* 6ߕ-*bA @ %  w*bA @ 6v %\%%   Xc w .0(&?hV{(vhԪp@,@v/,  w  `\ `\0*. Ns3u3w " su"w(0B} f M ; ) R2@(),R0 ( OV M . =0 O3TY T UTCOLOC, P SR J R44, # OV M ITUND OLR FOT ASQLO TEXND IET S ; R5T,ASQL # DD A T NI ULD OOR FSTIRQFO TEXND IET S ; 0 ,RSTIRQF # DD A R05, R OV M 5 R SL A 5 R SL A ITUND OL* 6 1ET G ; 5 R SL A ITUNW NER FOT ASQLO TEXND IET S ; R2T,ASQL # DD A DCEN . R24, # SH A 4511 $ NZIF . DCEN . 2 R yV #DRLIST,R0 ;INIT THREAD WORD OF DISC REQUESTS TTIN15 = . MOV R1,@(R0)+ CMP R0,#DWLIST BLO TTIN15 MOV R1,DWLIST .ENDC MOV R1,ERRMOD ;INIT THREAD WORD OF ERROR MODULE MOV #ITIME0,R0 ;INIT THREAD WORD OF TIMERS TTIN20 = . MOV R1,(R0) ADD #ITIMSZ,R0 CMP R0,#ITIMFB BLO TTIN20 MOV #TTYPRT,R0 ;CLEAR BLOCK OF VARI9(\ \w \\2p.X(E =""[g4*,7@^ w ; 4wLߕ K*6137 7 :7 0 w.7&f L7Iߕ3 y<eB u*cA  w ,eA eB A w :*deA eB A B w eA eB a*$dA  =h6xhp@Ԫp@6@vp@쨀p@^O\(zvhW>h* \}.( ?88RG8Ht:~8@@28BjGLB*&qF@.7*.777@7V777777& -ߕl*R71 7 7 7 jmtf *v7fffffSL A 2 R SL A 2 R SL A 2 R SL A 4511 $ Z IF . ITUNW NE6* 1ET G ; R21, R OV M Y TTM TEYS SONG MSR ROERE YP T ; 60YOTTC, P SR J E ULOD MORRR EIN. NOT NI UEW NUT P ; . +8ODRMER1, R OV M T IS LNTREUR CTOIN. NOT NI UEW NUT P ; 0)(RSKRTER1, R B OV M . NOT NI UEW NET G ; R1),R2V(DEHY P B OV M 5)(RSRICTT @ B LR C T NI UCTUNEF DOFS PTRUERNT ILEABIS D ; 5)(RSROCTT @ B LR C IT BILuABLES TTIN25 = . CLRB (R0)+ CMP R0,#QLAST BLO TTIN25 MOV #TTYPRT,R0 ;SET UNIT STATUS FLAGS TO NOT BUSY MOV #-1,R2 TTIN30 = . MOVB R2,(R0)+ CMP R0,#TTO1ST BLO TTIN30 TTIN35 = . CLRB (R0)+ ;SET FIRST REQUEST FLAGS CMP R0,#TTORPT BLO TTIN35 MOV #TTYON,R0 ;SET TTY ON/OFF FLAG TO OFF TTIN40 = . MOVBIwptrv9999993~99A39A09@09@396B39J*7f&f M7J 3*8 ߕ3 *93.*8B 3.K ve\ T*d  w "      * e em  eeemLԪp@p@vp@~VgOu(vWPshԪp@,@p@#M.gh(S4h(Z6B~::: : :::::w v  b 9.OC (ߕW"" 3A*R8 r3 32`2L421 *v803v PDe 6i M6 M)\e6 6 w*le&  f 6 c VA AOT NCEVIDE; D ANT BIE USN ICEVIDEE ATRNTEALT SE; ) R4V(DEHY,P000012 # IS B . =6 O2TY T2 O2TY T R B O. NITUNL CAGILOE ATRNTEALT GE, ES Y ; R42, R OV M O N ; 6 O2TY T EQ B E?USN IDYEALR AEV DTENAERLT AIS; ) R4V(DEHY,P000002 # IT B O N ; 0 O5TY T NE B ? IDAL VPETYE ICEV DIS, ES Y);R2V(DEHY,P0074 # IT B O N ; 0 O5TY T NE B ? LEABILVA AEV DLT Aq R1,(R0)+ .IFZ MSGBUF CMP R0,#OLSTAD .ENDC .IFG MSGBUF CMP R0,#NXTSEC .ENDC BLO TTIN40 .IFG MSGBUF MOV #DAVAIL,R0 ;SET DISC FILE AVAIL FLAGS TO AVAIL TTIN50 = . MOVB R1,(R0)+ CMP R0,#DBFULL BLO TTIN50 .ENDC JSR R5,POPR ;RESTORE REGISTERS RTS PC ;RETURN .PAGE .CSECT ; Y [.9 w 6 7 a *09^   ` 3!( *e  *f8v  6   *&f [>g=(W9hԪ@8@p@VR(xIؚ\@a\.Ϋ$(Ϋ@h]@;}G@_.@ ` @( :KhthhhZ .ph@hh4 h hV ^!j">.T9ߕ 3wr332*|9e32 EW3wD3 n*9_w \&& &&  ,  Jw ~:n& w9599ˀ9J 2w `hQX\hQhRh@Ep@>SX("ShԪ@8@IS; ) R2V(DEHY,P000010 # IT B E ICEV*D 2 =EXND I ; 2 R SL A R BEUM NCEVIDEL CAGILO. LT AET G ; R2),R4V(DELT A OV M4:O2TY TO N ; 0 O5TY T MP J 4 O2TY T NE B ? STXI ECEVIDEE ATRNTEALS OE D ;4)(REVYDPH0,0040#0 T BI ESBLTAD OR WNGXIDEINR FO2 .*NOG LO; R4 L AS . = 22YOTT O. NCEVIDEL CAGILOT GE; 4 ,R0)(RCEVIDE VBMO +6ODRMER R CL LEDUMOR ROERN IO. NITUNT NCFUDET PU; 4 D+MOm; ; PRTINT -- TTY PRINTER INTERRUPT ROUTINE ; ; CONDITIONS UPON ENTRY -- ; ; TTY UNIT NO. IS CONTAINED IN BITS 0-3 OF PS ; AS PROVIDED BY INTERRUPT VECTOR FOR ; INTERRUPTING UNIT ; ; ROUTINE IS ENTERED AT PRIORITY LEVEL OF UNIT VECTOR ; ; PRTINT = . JSR R5,SAVE ; SAVE ENVIRONMENT MOV @#PS,R1 ; GET PS PROVIDED BY INT. VECTOR BIC #177760,R1 ;UNIT NO. IS IN BITSi 99P 9::P W :w TEE 9D9<~~;~9D9 |;19w*;ABZ&"j&Z& ""$&j.Hf@4 V m -dq:33$$t::0:403  :d;,:<>:Z?@@2A>;hn<<< ==,=:=N=V=h=v==9W9H@9  -m=|9 h |9 9af"~;9  =p9=t9 ocN(Hh@Ԫ@v@iZ@FpN v UN \w.*=(*RR,ER3 V MO LEDUMOR ROERO TDECOR ROER; +2ODRMERO,OTRR#E V MO STLIN IAGFLR ROERT OUMETIT SE; ) R0R(ROERO,OTRR#E V MO . =0 O2TY T DCEN . S ESDRADT IS LSE UAN CWEO S ; R5PA$K),R55(ARLP I OV M C 11KT $ NZIF . S ESDRADT IS LUTNP INTREUR CET G ; R0),R5D(TALS I OV M . = 10YOTT 20YOTT BR C ND.E B LSF OFP RIST; R01,0000#0 C BI UFGBMS FG.I C ND.E SSREDD ASTLIi 0-3 OF PS MOV R1,R5 ;USE UNIT NO. AS INDEX TO ASL R5 ;WORD TABLES MOV #200,-(SP) ; RELEASE TO LEVEL 4 TSTB TOFLAG(R1) ;HAS TIMEOUT ALREADY OCCURRED? BNE PRTA05 ;YES, IGNORE THIS INTERRUPT MOV OTIMER(R5),R4 ;GET ADDRESS OF TIMER FOR THIS UNIT MOVB #TTOTIM,TCNTR(R4) ;PUT COUNT INTO TIMER MOVB (SP)+,@#PS ; RELEASE LOCKOUT MOVB #NTRYS,TTORPT(R1) ;Syp@v@@I^ρ(sh,@p@vp@쨀p@z(@8hY N \<{;}G;}G9.&  <<*   (*A,V0L| ;& & &  -<<2*<< TASK # 4 < }99 |9919U|999^|99}9|999 |9 919wj |91~zy}@v@ Fzyρ(bzy}hp@vp@쨀p@.$(hݩh"  "  0""1.E USN CAE WSO; 5 ARKP,$5)(RR5PAOL V MO 1CT1$K Z FN.I SSREDD ASTLIT PUUT ONTREUR CET G ; R0),R5D(TALS O OV M T PUIN; 10YOTT Q BE ? UTNP IHOECR OUTTPOUR FOT OUE IM TIS; 3)(RRTYPTT TBTS . = 05YOTT O ER ZOT NIST ;I 40YOTT P JM O ER ZIST ;I 05YOTT E BL T UNCOT EAEP RCRDE; 3)(RPTORTT CBDE .)NOT NI UINS ORR METI (TEBYG LA FROZE; FBIMOT RBCL UTeET REPEAT COUNT TO NO. OF TRYS MOVB CHTYPE(R1),R4 ;GET CHARACTER TYPE ASL R4 ;MAKE INDEX FOR BRANCH TABLE = 2*CHTYPE JMP @PRTA10(R4) ;BRANCH ON CHAR TYPE PRTA05 = . CLRB TOFLAG(R1) ;CLEAR TIMEOUT FLAG JMP PRTA93 ;GO RETURN ; ; ; BRANCH ON CONTENTS OF CHTYPE ; PRTA10 = . .WORD PRTA15 ;INTERRUPT FROM CHAR OF OUTPUT MSG .WORD PRTB10 ;ECHO OF INPUT   \ e\w \ p.dhh,^ . -@R . R#. :& &  >>2p*>> TASK # 7 >  > 9^|9~N>92    ށ 9 9ĕ\99Ē19  19ĕ\999f Va O\(a Whza \hp@Ԫp@vp@쨀p@p@7@@7%@,fΊ @Ί*AΊ 4(& n( (n4 B,B>H?21**?8? TASK # 8 *? N?&  Z??TPOUT AS LARCHT GE; R1),R5R(DBTO@T VBMO R5 L AS NGXIDEINE BLTAD OR WOR F*2ITUN; 5 ,RR3 V MO E INUTRO. NT IOR FAGFLT OUMETIT SE; 3)(RAGFLTO CBIN E YT BAGFLR METIM RO FO. NITUNT GE; 3 ,RFBIMOT VBMO . =O OTTY T ;T NI UTY T ;M TEYS SHE TOND UEUE QIST OUNTRI PDECOR ROERN A ; D.TEECEL SIS, LEABILVA AIF, CEVIDEY TTE ATRNTEALN A ;S PTEMTT AYSTR NERFT AEDRRCUOCT NOS HAT UPaCHAR .WORD PRTB30 ;ECHO OF LF .WORD PRTB40 ;ECHO OF CR .WORD PRTB50 ;ECHO OF "U" .WORD PRTB60 ;ECHO OF "^" .WORD PRTB80 ;ECHO OF 1ST "^" .WORD PRTB90 ;ECHO OF "\" .WORD PRTC10 ;ECHO OF EOM CHAR .WORD PRTC20 ;INT FROM OUTPUT OF LF .WORD PRTC30 ;INT FROM OUTPUT OF CR .WORD PRTC40 ;ECHO OF CR AFTER EOM  eB e$B5K,*x@@ TASK # 10 x@ @ @A2 [A7 8A8 > <:4:R& & ~?n::4:e:4:(f `D` 99CD9(dh@Ԫ@,@p@v@i@@fh&p 8I8)(4G15.7)(3D22.14) I  \  TASK 3 ACTIVE  , XXXXXX    L2AA2 D$A7     *AA19919@9 4   9=~.@|9f9@t9  J@: 3 19199Dx9A5@RRTEINF I ; ; --T XI EONUPS ONTIDION C ; ; TEBYG LA FERIM TUTTPOUN IEDINTAON CIS. NOT NI U ; ;- -RYNT EONUPS ONTIDION C ;; TOYOTTC, P SR J ;; --E NCUEEQ SNGLIAL C ;; NETIOU RUTEOIM THOECT PUINR OUTTPOUY TT- -TOYOTT ; ;; GEPA . 5 O4OI T R B P)(S,-IMWTTT # OV M ERIM TITWA UEUE;Q) SP-(),R5R(METI W OV M T OUUB RST 1UTTPOU ;5)(RBRODTT,@RO # B OV M E YP TARCH].WORD PRTC50 ;ECHO OF LF AFTER EOM,CR .WORD PRTC60 ;INT FROM OUTPUT OF RUBOUT TO TURNON TTY .IF NE,ASR37 .WORD PRTC70 ;INT FROM DC3 AFTER RECIEVING CR .WORD PRTC80 ;INT FROM DC3 AFTER RECEIVING EOMCH .ENDC ; ; ; PROCESS INTERRUPT FROM CHAR OF OUTPUT MSG ; PRTA15 = . INCB TTCURS(R1) ;INCREMENT CURSOR CMPB TTCURS(R1),#LINELN ;END OF LINE? BHIS PRTA30 *8B2*&  wZ\BZ.pBB~B 5@8s8 58l58h5 8U8=t9=p98~Ap w` B e: @e:e: :(+h0h@Ԫ@,@p@v@@N0(+]h]h,vl&:D,v   4v,!n!VP[*Bw Z,#& 4#NBo*B@f:4# ,#(. *C *BJ   9!999999 E 99::h~A N93939 L}|9f9(L+h,@v@a \@/+@>{(J{h{hT SE ;1)(RPETYCH.,13 # B OV M S ARCHP MUAR WO. NET;G) R1N(YOTTH,UCNW # B OV M DCEN . . =0 T2OI TB LSF OFP RIST ; 0 ,R010000 # IC B SSREDD ASTLIT GE ; R0),R5D(TALS O OV M NO ; 0 T2OI T EQ B D?TEIAITINE BTOT PUUT OIS ; ) R1T(PRTY T B ST T F BUSG M G IF . . =0 T1OI T5 O4OI T R B ) SP-(M,TITI#T V MO ERIM TSEONSPRER TORAPE OUEUE;QP)(S,-5)(RERIMIT V MO USATSTD ARBOEY KY ;YES PRTA17 = . MOV OLSTAD(R5),R0 ;NO, GET CURRENT LIST ADDRESS .IFNZ $KT11C MOV OLPAR5(R5),$KPAR5 ; GET ASR .ENDC .IFG MSGBUF BIT #000001,R0 ;IS DATA IN WORKING OUTPUT BUFFER? BEQ PRTA20 ;NO, DATA IS IN USERS BUFFER DEC R0 ;STRIP OFF LSB MOV R0,R4 ;TO GET LIST ADDRESS ADD #DATA,R4 ;SET POINTER TO MSG DATA IN OUTPUT BUFʽf& 9 &6  &6zB xBPKMNM$N~BJMPYY^_&::xB GFHH( Xh.rV(`-Xh.ρ.cb(c]h ]h"# <,ED  ex,dw M*C%%E Cw*C   ejEBA  JEr*C6 H&f&M & &  wpC~B(je;h.Iq(h,E D&6 ,$E& & f& & )m|,HЕ 6 TY TET;S 5)(RSRICTT,@R4 VBMO . = 20IITO T BIE BLNA EERADRET PARLE CO,;N R4 C DE . = 15IITO ES;Y 20IITO E BN C ND.E R DEEA RPT7 R3AST ARST, ES;Y5)(RBRODTT,@C1#D VBMO O ;N 15IITO Q BE 37SR,ANE F .I ? ERADRET PTY TOMFRT PUINS ;I 3)(R0,0040#0 T BI S IT BLEABENR RDT P &NT IRDOAYBKED OA;L 4 ,R01#1 V MO EDARLE CSR COF" IT BNEDO "ATTHE URNS;I R4),U BR PRTA25 .ENDC PRTA20 = . .IFZ $KT11C MOV DATA(R0),R4 ;SET POINTER TO MSG DATA IN USERS BUF .ENDC .IFNZ $KT11C MOV ODBFAD(R5),R4 ; SET SVA TO MSG DATA IN MOV ODPAR6(R5),$KPAR6 ; USER'S BUFFER .ENDC PRTA25 = . INC CHCNT(R4) ;INCR CHAR COUNT CMP CHCNT(R4),(R4) ;HAVE ALL CHAR BEEN OUTPUT? BHIS PRTA40 ;YES ADD &.r(ZpHh>=(A W,  W - 1,P e   4  ,| uN PuN 9 ,& ‹ & 5@& L *DŒ Œ$Œ A *DjE`BAW,J vpDD NCS#  DV`D   D:W, ! 7!^ E8 h@8hph )./xO\(/xWh6  6 L I-E62,  6 mm ,D m2 7-GO X9 2,1  2WR5R(DBTI@T VBMO HOECL MAOR NOR FPETYR HA CET;S ) R1E(YPHT,C#1 VBMO CHITSWT OUUB RST 1ARLE;C 1)(RROSTFR RBCL G LA FEDEDCEEXR HA CAX MARLE;C ) R1H(XCMA RBCL ERNTOU CARCHE IZALTINI;I ) R3T(CNCH R CL C ND.E E USE URUT FOR FVESA; ) R56(ARDP,IR6PA$K V MO R FEUF BTADAF OVA SVESA; ) R5D(FADB,IR3 V MO E OVABR FOR AS; R6PA$K),R02(TADA V MO R FEUF BTADAF OSSREDD AALTUIR VEMSTSY; Q CHCNT(R4),R4 ;ADD CHAR COUNT TO POINTER MOVB MSGDAT(R4),@TTODBR(R5) ;OUTPUT NEXT CHAR CMPB MSGDAT(R4),#CR ;IS CHAR A CR? BEQ PRTA35 ;YES BR PRTA37 ;NO, GO RETURN PRTA30 = . MOVB #CR,@TTODBR(R5) ;OUTPUT A CR PRTA35 = . MOVB #10.,CHTYPE(R1) ;SET CHAR TYPE TO OUTPUT MODE CR PRTA37 = . JMP PRTA85 ; ; DO POST PROCESSING FOR A REQUEST ; PRTA40 = . ,  " xv,m   ӕ-:,ӕ  &  XP  Xqt:: )d EE*E X$P J Df2] E B32239 2N&7!#yE~VE#J4#J#J#J xD`D  #J\&& & &  p@%6ԪOu(Ԫphp@6Ԫ˕0 e:3ec,%V f& h dD C B [,@A eC B A @ eB A @ eA @ e0,0> INPUT LONG MESSA > TGE *F P7&ftI*4FЕ<<9z<2-3*XF " R3),R01(TADA V MO STLIR FOR AST GE; 5 ARKP,$5)(RR5PAIL V MO 1CT1$K Z FN.I C ND.E SSREDD AERFFBUA AT DRSSE UET;G 3 ,R0)(RTADA V MO 1CT1$K FZ.I S ESDRADT IS LUTNP INTREUR CET;G 0 ,R5)(RADSTIL V MO . =0 I1OI TN URET;R 2)(R P JM . =0 O5OI T CKTA SFF ODECOR ROERP PO ; )+SP ( ST T E IMQTC, P SR J T UPRRTEINR TEINPRY TTE BLNA;E) R5R(CSTO@T0,10 # B IS B M MOV OTIMER(R5),-(SP) ;DEQUEUE TIMER MODULE FOR THIS UNIT JSR PC,DQTIME TST (SP)+ CLRB @TTICSR(R5) ;DISABLE KBD INTERRUPT CLRB @TTOCSR(R5) ;DISABLE PRT INTERRUPT PRTA41 = . MOVB LEVEL(R0),R2 ;GET LEVEL MOV #2,R4 ;SET REGISTER FOR INPUT DEQUEUING TSTB TTYPRT(R1) ;DID UNIT JUST FINISH INPUT? BEQ PRTA42 ;YES .IFG MSGBUF ;ASSEM FOLLOW THIS MESSAGE DOEe ,S NOT CONTAIN AN IMBEDDED CARRIAGE R,ETURN; HOWEVER, *Fm7.& b ]*FX"eq 7d*GB1f w  ы Dĥ  ~FD0 C ``a - v6 w 6'd(8@Qhp@6j8{(j8vhp@i  R , eC B A eB A eA e@ e% ,< ev!6 ͕- 6 IT SHOULD AUTOMATICA,"LLY JUMP TO A NEW LINE O$2F  eeee%<*4G< % Ý0ÜgI  *XG   UU &  ‹ w G Օ+  d 08~6GB` e0  w ^%Օ- ҋ . =5 O4OI T) SP-(M,TITO#T V MO ITUNR FOR METIT PUUT OUEUE Q ;P)(S,-5)(RERIMOT V MO G MSF OARCHT 1ST PUUT;O 5)(RBRODTT,@R4 VBMO . = 42IOTO ES;Y) R1E(YPHT,C0.#1 VBMO O ;N 42IOTO E BN R C AITS ;I CR,#R4 PBCM SG MOFR HA CST 1ET;G 4 ,R4)(RATGDMS VBMO ERNTOU CARCHE IZALTINI;I ) R4T(CNCH R CL . =0 O4OI T DCEN . SE URETUFUR FOE AV S ; 5)(RR6PAODIING FOR MSG BUF SYSTEM BIT #000001,OLSTAD(R5) ;WAS DATA IN WORKING BUFFER? BNE PRTA43 ;YES, DEQUEUING NOT REQUIRED .ENDC CLR R4 ;NO, SET REGISTER FOR OUTPUT DEQUEUING PRTA42 = . JSR PC,DQLIST ;DEQUEUE LIST JUST PROCESSED PRTA43 = . CMPB TYPE(R0),#2 ;BRANCH ON EXIT TYPE BHI PRTA44 ; TYPE 3 .IFG MSGBUF BLO PRTA47 ; TYPE 1  Ev*GJB57& *H Νa-Q-? rv h w^ 67 wJ"H ~&HI6H) ERROR XXXXX SXXXXX SXXXXX Svh.\$(\@h6rX, @`& 6 CŀנT נ"$Fנ @ N V v .+=V8}4dGA  8}^GL o 8}KGt ~ * Ps *  *  * D m B*6H=  /$ B\*ZHe J- -,~H- XXXXX SXXXXX @HGHNHUH\Hw  w hb f~H w| zLw  7 \((rhp@6iX( ih@6,ARKP $ OV M ERFFBUA AT DOFA SVE AV S ; 5)(RADBFOD4, R OV M VEBO AOR FSR A ; 6 ARKP,$0)(RA2AT D OV M SSREDD AALTUIR VEMSTSYA AT D ; 4 ,R0)(RA1AT D OV M T IS LOR FSR AET G ; R5PA$K),R55(ARLP O OV M C 11KT $ NZIF . DCEN . S ESDRADR FEUF BTADAS ERUST GE ; R4),R0A(AT D OV M C 11KT $ Z IF . . = 30IOTO DCEN . 0 O4OI T R B T IS LSTPAR TEINPOE OV;M R4A,AT#D D AD E TSTB TTYPRT(R1) ;TYPE 2, DID UNIT JUST FINISH INPUT? BEQ PRTA4A ;YES, GO UNSUSPEND TASK BIT #000001,OLSTAD(R5) ;WAS DATA IN WORKING BUFFER? BNE PRTA47 ;YES, TASK ALREADY UNSUSPENDED .ENDC .IFZ MSGBUF BLO PRTA46 ;TYPE 1 .ENDC .IFG MSGBUF PRTA4A = . .ENDC JSR PC,TUNSPN ; TYPE 2, UNSUSPEND CALLING TASK .IFG MSGBUF JILINIPIRITIVIXIM~I p@6v(vhp@Vv ,l  v   "V 6 v P.c=   E* O MINUTES  , ?2 ,  '  >IhIG|*~I&v <-\*I76 ~J(vhp@Ԫp@p@vp@쨀p@.EOu(.Ep(c@8h@8h,& & &fSTLIF ONGNIINEG BTOR TEINPOT GE ; R40, R OV M B LSF OFP RIST ; 0 R EC D R FEUF BRSSE UINS ITADA, NO ; 0 O3OI T EQ B R?FEUF BNGKIOR WINT IS LIS ; 0 ,R010000 # IT B F BUSG M G IF . S ESDRADT IS LUTTPOUT ENRRCUT GE ; R0),R5D(TALS O OV M T PUUT OOR FPETYR HA CET;S 1)(RPETYCH RBCL . =0 O2OI TS YE ; 0 I1OI T EQ B ? EDATTINI IBEO TUTNP IIS ; ) R1T(PRTY T B ST T CHITA BR PRTA47 .ENDC .IFZ MSGBUF BR PRTA46 .ENDC PRTA44 = . JSR R5,PUSHR ;SAVE REGISTERS .IFG MSGBUF MOV R1,R4 ;MOVE UNIT NO. TO TEMP REG TSTB TTYPRT(R4) ;IS INPUT BEING PROCESSED? BEQ PRTA45 ;YES ASL R4 ;SET INDEX TO 2*UNIT BIT #000001,OLSTAD(R4) ;NO, OUTPUT. IS LIST IN WORKING BUF? BEQ PRTA45 (X쨀phphp@.X(h,l00L    9Q v, 0 $ FaB A @ v!$9,N ~TT TASK # 7 T U2uI& H H H)@*J@E7% E1E (JE1E 7f&×&  6  c76ρ(R}h6h6>(h   /# ,  cw& 23   ,w e.  ~FU|U TASK SWT OUMETIT 1SR EACL ; ) R1O(TTRS F B LR C 4)(RTRCN,TIMWTTT # B OV M ERIM TITWAT SERE ; R4),R5R(METI W OV M NO ; 0 T1OI T NE B N? OEDRNTUT NI UIS ; 1)(RONTY T B ST T T NI UOR FNTOU CATPERET SE ;1)(RPTORTTS,RYNT # B OV M K ACSTP POD ANS ESDRADN URET RET;G R2+,P)(S V MO . =T NIOI T; 1CT1$KF IAR PSSREDD ASTLIS INTAON CR5PA$K ; EDORSTRET NOD AND SE URE AR43,,RR2 ; O. NITUN2*= ;NO MOV (R0),R1 ;YES, ORIG LIST ADDRESS IS IN THREAD WRD .ENDC PRTA45 = . MOV R0,-(SP) ; LIST ADDRESS TO STACK MOV SYSTEM(R0),-(SP); TASK NUMBER TOO JSR PC,IOCOMX ; CALL I/O COMPLETE SUBROUTINE ;WITH LIST ADDR IN R1 JSR R5,POPR .IFNZ $KT11C MOV OLSTAD(R5),R0 ; RESTORE LIST MOV OLPAR5(R5),$KPAR5 ; ADDRESS .ENDC)hDE 0090 `, av!$  ` "w ,  4 4*"V TASK # 9 VF~6V  V2 +BLMMRNNO*PPQ,tKRlSS`TT`\UVlU4*K 343efe3e3dKK,ߕ|~^L L7 fv ZI 6 6 ×ߕ~& 7 -2.vρ(NiZhF6wO(w.f& ( ", mB A @ mA @ m@ c,  e   e/~VV TASK # 0*K -BB 3& & ,K& ,K2K8K<<VK*LV\KS INTAON CR5 ; O. NITUNS INTAON CR1 ; ;- -ITEXN PO UNSIOITNDCO ; ; LYULTFECSPRET PUUT OORT PUINR FO1 R O 0NSAINTCOT PRTY T ;S ESDRADT IS LUTNP INTREUR CNSAINTCOD TALS I ; SSREDD ASTLIT PUUT ONTREUR CNSAINTCOD TALS O ;T NI*U 2NSAINTCO5 R ;. NOT NI UHE TNSAINTCO1 R ;; --Y TRENN PO UNSIOITNDCO ; ITINTOC, P SR J ;; --E NCUEEQ SNGLIAL C ;; 9 PRTA46 = . MOV SYSTEM(R0),R4 ; WAS REQUEST MADE BY TASK? BEQ PRTA47 ;NO, BY SYSTEM DECB IOSTAT(R4) ;YES, DECR TASK I/O STATUS IN TASK TABLE .IFNZ OVRLAY BNE PRTA47 MOV R4,-(SP) ;TASK NO. TO STACK JSR PC,RELTSK ;RELEASE TASK .ENDC ; ; SEARCH QUEUES FOR NEXT REQUEST TO BE PROCESSED ; PRTA47 = . CLR R4 ;SET Q POINTER FOR PRIO97   W2 @~W:3LK3W*L^.L ZL -@~L,L : 4TL&.L M;1 7 7 7 je tffffff:~M#JNW"1f cc<@jhj@6b(]hp@{>=f , eB A @ eA @ e@ e B A @ 1    .:=>7     8X~X$?"M4*nM|M TASK 2 MESSAGE X MXXXXX]*M8& & @cMNN&f&f M ~>N7J ZI ߕ#J *9#JB HI.C UTTPOUR OUTNP IZELIIAITINO TNETIOUBRSU- -ITINTO ; ;; GEPA . 4 RINX DEINH IT WRNTURE ; C P TS R R TEISEG RRETOES;R R1+,P)(S V MO 4 D AD; + 4)(R+,4)(R P CM R4 L AS R4 L AS R41, R DD A 1 ,RR2 D AD X)+ L VELE+ T NI*U(42* ; R1 L AS EXND ICTRUSTON;C R1 L AS ERSTGIREE AV;S P)(S,-R1 V MO . = QXET G; ESEUQUT PUIN5RITY OUTPUT MOV #1,R2 JSR PC,GETQX CLRB TTYPRT(R1) ;SET UNIT STATUS FLAG TO INPUT JSR PC,LOCOUT ;LOCKOUT INTERRUPTS .IFG MSGBUF ;ASSEM FOLLOWING FOR MSG BUF SYSTEM PRTA49 = . MOV R5,R3 ;SET UNIT LEVEL INDEX TO PRIORITY INC R3 TSTB DAVAIL(R3) ;IS PRIORITY DISC FILE FOR UNIT AVAIL? BEQ PRTA50 ;NO, GO CHECK PRIORITY OUTPUT CORE Q CI4NN  OVN(6#NN PRIORITY (NNJ172.ߕ#J)#J ZI 6I6I#Jߐ~.O   w 6 K6=(@8hp@>=(L%\#.bc@8@c]@]@VM:x9 p9(. *DY b'xww t[&-"[ e? U@f bN)NN TASK 4 COMPLETEQ*NN N N ]* O!N O7 a ^   ` HI!!8ߕ~O HIwrHIHI6IeHI6I EWPc@8h@8hp@~Su(phphvh~@R FO2 = ;S UEUE QUTTPOUR FO0 = X E ERWH ; +4X)L+VELET+NI*U(44*S LEABQTO TEXND INSAINTCO4 R ;; --T XI EONUPS ONTIDION C ;; LYVETIECSPRET PUINR OUTTPOUR FO2 R O 0NSAINTCO4 R ;L VELES INTAON CR2 ; O. NITUNS INTAON CR1 ; ;- -RYNT EONUPS ONTIDION C ;; QXET,GPC R JS ; ;- -CEENQUSEG INLLCA ; ;S LEAB TSTLA QND ASTIRQF ;1MPB NXTMSG(R3),NXTSEC(R3) ;ANY MESSAGES IN PRIORITY FILE? BNE PRTA95 ;YES, GO READ DISC TSTB DBFULL(R3) ;MAYBE, IS DISC FILE FULL? BGT PRTA95 ;YES, GO READ DISC BR PRTA55 ;NO, GO CHECK FOR PRIORITY INPUT .ENDC PRTA50 = . MOV QFIRST(R4),R0 ;ANYTHING IN PRIORITY OUTPUT Q? BNE PRTA65 ;YES PRTA55 = . ADD #8.,R4 ; NO-SET Q POINTER FOR PRY7 7  0 HIHI6I0`6Id1 ZI#J0J0J N  ~P e -dZj@Q@f`O(&#th Xzh Qh,0zhjh7@p[/TD%' w,ww`N,wwxw, ) A (',/'Aށ% \E~nZW  9[1[ 7x [ `[`\7lBA<WCEqJ[]&P PP8O*zPP TASK 6 MESSAGE NPO. XXXXXXU*P ^qPZIZIP0PJ0#J   QQRRSSZTTUFVVvWQRRzS$TTnUVVVV?~QQ2_@e@ >""(:phv@`;@> #@2 3 "2,`wwwwwwwwwX, ww4wHwG INEXND IOR FERNTOI PCTRUSTON CTOE INUTROUB S--X TQGE ; ;; GEPA . N URET;R PC S RT ERSTGIREE ORSTRE; R3+,P)(S V MO T OUCKLOE ASLERE; PS@#+,P)(S VBMO E"BLEAEUQU "STLID UEUE-QDET SE; ) R0,(#1 V MO: 10LIDQ E EUQUY PTEMR FOY RLPERO PTEDAUP; 4)(RSTLA,QR3 V MO C ND.E SSREDD AALICYSPH ; R3 R RO C CL EDCKPAE ATULLCCA; R3 R RO C CL -IORITY INPUT MOV QFIRST(R4),R0 ;ANYTHING IN PRIORITY INPUT Q? BNE PRTA75 ;YES .IFG MSGBUF ;ASSEM FOLLOWING FOR MSG BUF SYSTEM DEC R3 ;SET UNIT/LEVEL INDEX TO NORMAL TSTB DAVAIL(R3) ;IS NORMAL DISC FILE FOR UNIT AVAIL? BEQ PRTA60 ;NO, GO CHECK NORMAL OUTPUT CORE Q CMPB NXTMSG(R3),NXTSEC(R3) ;ANY MESSAGES IN NORMAL FILE? BNE PRTA95 ;YES, GO READ DISih,0zhjh7@p@e@ .=;с(d7wh_j- ee  &-_E eet?p6  T~_ޠw zk{~[dd X$l Q:QQd*\RjR INPUT LONG MESSA RGE xm,R TASK # 3 R & & &  R2}n.T(6eh.:O*(7hoΠ%%|_BA  J6 w P~_ Uv_|_~_|__~_pP J D"I JM& bOBHI6I6I~N\HI9 6I P7&f_Е<<9z 1CT1$K Z FN.I T ASQLR FOT RSFI QOFS ESDRAD; 3 ,RR4 D AD R3T,RSFI#Q V MO EDTIMP E'TSNWAE EUQU; 10LIDQ E BN E EUQUN IADHEW NET SE; ) R4T(RSFI,Q0)(R V MO TSUPRRTEINT OUCKLO ; UTCOLOC, P SR J 4 RTOR TEINPOE BLTAQ T GE ; X TQGEC, P SR J ERSTGIREE AV S ; ) SP-(3, R OV M . = STLIDQ ;T PUINR FO2 = ;T PUUT OOR F 0 = XREHE W ; )C TSTB DBFULL(R3) ;MAYBE, IS DISC FILE FULL? BGT PRTA95 ;YES, GO READ DISC SUB #12.,R4 ; ADJUST Q POINTER BR PRTA70 ;GO CHECK FOR NORMAL INPUT .ENDC PRTA60 = . SUB #12.,R4 ; SET Q POINTER FOR NORMAL OUTPUT MOV QFIRST(R4),R0 ;ANYTHING IN NORMAL OUTPUT Q? BEQ PRTA70 ;NO, GO CHECK FOR NORMAL INPUT PRTA65 = . MOV (SP)+,@#PS y  0m|5} n_œ__ Da`_v_ӵeK6 w . Az!jm7& b ]X¢"~>]eq 7B1f eee{rS <.SS TUESDAY 1400 XEQS^S XT =*8T|~fSS TASK # 5 zS & & &  BT2},\\ \Ca$Cab.Cz~~`rl V $_5_& H H H)[7% [1[ [1e%<< % Ý0Ü_    UU ~]&  ‹ & & N & x @FT 5-TH AT 08308T^\T T >*TT TASK 12 EVERY TW^ 4 )++XELEV+LITUN4**( 4 =R4 ; ;- -ITEXN PO UNSIOITNDCO ; ;A SVT IS LOR FUEAL VNSAINTCO5 ARKP $ ;Y ELIVCTPEES R ; S,STLIT ESQURET PUINR OUTTPOUR FO2 R O 0NSAINTCO4 R ;L VELES INTAON CR2 ; O. NITUNS INTAON CR1 ; E EUQUS ITN ISTIR FBET US-MSSREDD ASTLIS INTAON CR0 ; ;- -RYNT EONUPS ONTIDION C ;; STLIDQC, P SR J ;; --E NCUEEQ SNGLIAL C % ; RELEASE LOCKOUT INCB TTYPRT(R1) ;SET UNIT PRIORITY TO OUTPUT .IFNZ $KT11C MOV R0,-(SP) JSR PC,PPASV5 ; GET SYSTEM VIRTUAL ADDRESS MOV (SP)+,R0 MOV $KPAR5,OLPAR5(R5) ; SAVE .ENDC MOV R0,OLSTAD(R5) ;SAVE CURRENT OUTPUT LIST ADDRESS BR PRTA80 ;GO INIT OUTPUT PRTA70 = . CLRB TTO1ST(R1) ;CLEAR 1ST OUTPUT REQUEST FLAG ADD #8.,R4 88RG8Ht:~8@@28BjG LB*&qF  H. @`  Bf%  (  \ BA @E+=QL ; STANDARD REGISTER DEFINITIONS R0 = %0 R1 = %1 R2 = %2 R3 = %3 R4 k ZIJ#J~aefe3e3aa -BB 3& & & pava|a<<B=&w$Z; wǁ =w~&9Z;w   X ' r  (J1#J BZI       \ > *%> L T16 ERRORL \ .\ @`  Bf ;; UEUE QELEV/LCEVIDE ; TEIAPRROPP AHE TOFP TON OLYNTREUR C ;T IS LSTUEEQ RTY THE TUEUEEQ DTOE INUTROUB S--T ISQL D ;; ;E AG.P RNTURE ; C P TS R UTKOOC LSEEAEL R ; S #P,@)+SP ( B OV M DCEN . ERNTOI PSTLAE ATPD U ;4)(RSTLA,Q)+SP ( OV M A PPD EAHR T ; )+SP@(),SP.( 2 OV M ALTUIR VEMSTSYO T ; V6ASPPC, P SR J R TEINPOT AS LRTVEON C ;P)(S,-4)(RSTLA Q OV M ! ; SET Q POINTER TO NORMAL INPUT MOV QFIRST(R4),R0 ;ANYTHING IN NORMAL INPUT Q? BEQ PRTA90 ;NO PRTA75 = . MOVB (SP)+,@#PS ; RELEASE LOCKOUT .IFNZ $KT11C MOV R0,-(SP) JSR PC,PPASV5 ; GET SYSTEM VIRTUAL ADDRESS MOV (SP)+,R0 MOV $KPAR5,ILPAR5(R5) ; SAVE .ENDC MOV R0,ILSTAD(R5) ;SAVE CURRENT INPUT LIST ADDRESS PRTA80 = . 88RG8Ht:~8@@28BjG LB*&qF5m5-5t4-,,w5 5 w w   ',tm4-w : ; XXXXXXXX ;NPRIOR MUST BE GREATER THAN ZERO .ENDC MXTASK =100. ; MA b -@b : 4b"~Vc&rb c4w \&& &&  ,  Jw ~:n& w9599ˀ9J 2w B=&w$Z; wǁ =w~&9Z;w   X ' r  (J1#J BZI      w wt,A"B`4-w ", P u" w w5-AX. NUMBER OF CORE TASKS IN SYSTEM QUEU NLTASK = 1 ; LARGEST TASK # OF TASKS LOADED WITH SYSTEM A PPO T ; A PPSVC, P SR J S ESDRADT IS LRTVEON C ; ) SP-(0, R OV M C 11KT $ NZIF . DCEN . ) R4T(ASQL0, R OV M 0 RBYO TEDNTOI PSTLIE EUQU ; 4)(RSTLA@Q0, R OV M C 11KT $ Z IF . S PTRUERNT IUTKOOC;L T OUOC,LPC R JS R4O TERNTOI PLEAB T QET;G QXET,GPC R JS . = STLI Q; UTNP IOR F 2 ; UTTPOUR FO0 = X E ERWH ; +4X)L+VELET+NI*U(44*= 4  JSR PC,TOINIT ;INIT NEXT INPUT OR OUTPUT FOR UNIT PRTA85 = . JMP RESTOR ;RESTORE REGS. & RETURN FROM INTERRUPT PRTA90 = . CLRB TTI1ST(R1) ;CLEAR 1ST INPUT REQUEST FLAG DECB TTYPRT(R1) ;SET UNIT TO NOT BUSY PRTA93 = . MOVB (SP)+,@#PS ; RELEASE LOCKOUT BR PRTA85 ;GO RETURN .IFG MSGBUF PRTA95 = . MOVB (SP)+,PS ;RELEASE LOCKOUT ' " 1u"4, tw w   o,% wu"uS MXTASK+1 OVTMIN = MXTASK+1 ;FIRST OVERLAY TASK NUMBER OVRLAY = 0 ;SYSTEM OVERLAY OPTION XXXXXXxdRd  He(6~d<<< ==,=:=N=V=h=v==9W9H@9  -m=|9 h |9 9af"~;9  =p9=t9 w \&& &&  ,  Jw ~:n& w9599ˀ9J 2w  ,u $wu"u K,w%  u" w, ;0 = NO OVERLAY, 1 = OVERLAY .IFNZ OVRLAY ; MAXOVR = 20 d PRIORITY e*e TASK 4~6e COMPLETEd e  R ;; --T XI EONUPS ONTIDION C ;; TSIS LSTUEEQ RUTNP IOR F 2T,PUUT OOR F 0NSAINTCO4 R ;L VELES INTAON CR2 ; O. NITUNS INTAON CR1 ; EDEUQUE BTOT IS LOFS ESDRADS INTAON CR0 ; ;- -RYNT EONUPS ONTIDION C ;; STLI,QPC R JS ; ;- -CEENQUSEG INLLCA ; ;E EUQUL VELEE/ICEV DTEIAPRROPP AHE T ;O TSTLIT ESQUREY TTE EUQUO TNETIOUBRSU- -STLI Q ;; ;  INCB TTYPRT(R1) ;SET UNIT STATUS FLAG TO OUTPUT MOV TTOBUF(R5),R4 ;GET OUTPUT BUFFER ADDRESS FOR UNIT MOV DRLIST(R5),R0 ;GET DISC READ I/0 LIST ADDR FOR UNIT ASL R3 ;ADJUST INDEX FOR WORD TABLE USAGE MOV FILEID(R3),(R4) ;PUT FILE ID INTO BUFFER HEADER ASR R3 ;RESTORE INDEX TO BYTE TABLE USAGE MOVB NXTMSG(R3),RLSECT(R4) ;PUT REL SECT ADDR IN BUFFER HDR MOV R0,-(SP) ;MAK ; MAXOVR = 0 ;SET TO ZERO ONLY IF NO OVERLAYS .ENDC TASMAX = MXTASK+MAXOVR ;Mef I/O LIST CHANGED p~&f e6fx99 |9919U|999^|99}9|999 |9 919wj |91<<< ==,=:=N=V=h=v==9W9H@9  -m=|9 h |9 9af"~;9  =p9=t9 7-!, m",m"5d wAXIMUM NUMBER OF TASKS (INCL OVERLAYS .IFLE MXTASK ; XXXXXXXX ;MXTASK MUST BE GRE>fDfJf^f@e f E7  @` fP8~f~^=9 9 |9 919@:wr9w&|99w^EE D9@: f9  DGEPA . RNTURE ; C P TS R CKTA SFF ODECOR ROERP PO ; )+SP ( ST T NDPEUSNS ULLCA ; NDSPUNC, P SR J R)LLCAO TRNET(RK ACSTO NT ORNRT ISHPU ; P)(S - LR C NDPEUSNS UOF# K AS T);SP-(),R0M(TEYS S OV M . =N SPUN T ; STLIF OSSREDD ANSAINTCO0 R ; ;- -RYNT EONUPS ONTIDION C ; ; PNNSTUC, P SR J ; ; --E NCUEEQ SNGLIAL C ; ;K AS TNGLIAL CNDPEUSNSE DISC READ REQUEST JSR PC,DISCIO TST ERROR(R0) ;ANY REQUEST ERRORS? BEQ PRTA85 ;NO CLRB DAVAIL(R3) ;YES, CONVERT TO CORE Q FOR UNIT/LEVEL BR PRTA47 ;GO EXAMINE Q'S .ENDC ; ; ; PROCESS INTERRUPT FROM ECHO OF INPUT CHAR ; PRTB10 = . INCB TTCURS(R1) ;INCR CURSOR FOR THIS TTY UNIT PRTB20 = . MOV OTIMER(R5),-(SP) ;DEQUEUE ECHO TIMER JSR g`g 7-GO X9 1Rg lg -  $hfp,f& "#  9^|9~N>92    ށ 9 9ĕ\99Ē19  19ĕ\999f@8+], w&fc4-l.+@8]@8 ] @8 QTAB XXXXXXXX ;NTASK MUST BE <= MXTASK .ENDC ; ; THE FOLLOWING IS A LIST OF PRI~g2Rg 9&  3Rg :& & & ;& & &  hP:9  p9=|9 ~>9f9  ĕ=|99 : 6 8w 5 W<8458<A8p  UTOE INUTROUB S--N SPUN T ; ;E AG.P CEVIDEE ATRNTEALT AOKLOO ;G 02QARE BR . NOE ICEV DTENAERLT AET;G 1 ,R1)(REVTDAL V MO O ;N 25QARE Q BE T?ISEXE ICEV DTENAERLT AESDO ;1)(REVYDPH0,0040#0 T BI . = 50QARE N URET;R PC S RT L VELED LIVAINR FOE OD CORRR EET;S) R0R(ROERV,LERR#E V MO . =0 A4EQ R RNTURE ; C P TS R E YP TITEXD LIVAINR FOE OD CORRR EET;SPC,DQTIME TST (SP)+ MOV ILSTAD(R5),R0 ; GET ADDR OF CURRENT INPUT LIST .IFNZ $KT11C MOV ILPAR5(R5),$KPAR5 ; SET UP ASR5 .ENDC .IFZ $KT11C MOV DATA(R0),R2 ; GET DATA BUF ADDRESS .ENDC .IFNZ $KT11C MOV IDBFAD(R5),R2 ; DATA BUFFER SVA MOV IDPAR6(R5),$KPAR6 ; SET UP ASR6 .ENDC MOV (R2),-(SP) ; STRIP OFF BITS 13,14,15 OF 1ST WORD OF ,fD 1 C*  F#,$e&&&&\);@7 F8A8 > <:4:R& & ~?n::4:e:4:(f `D` 99CD9w0@ p,Z `P  w ^,~ ``VEL 1 PRIP02 = 0 ; PRIORITY PROPERTY LEVEL 2 PRIP03 = 1 ; PRIORITY PROPERTY LEVE;~h2ip THIS MESSAGE DOES NOT j7$Ԫ&jH"0j*i",  0jdT19919@9 4   9=~.@|9f9@t9  J@: 3 19199Dx9A5@   f.7O*p@`;@7 q@) R0R(ROERT,REER # OV M . = 35QARE N URET;R PC S RT ORRR EPETYE ICEV;D ALICYSPHR FOE OD CORRR EET;S) R0R(ROERT,PDRR#E V MO . =0 A3EQ R RNTURE ; C P TS R R BEUM NCEVIDEL CAGILO ; IDALNV IOR FDECOR ROERT SE ;0)(RORRR,EDNRLER # OV M . = 25QARE N URET;R PC S RT DECOR ROERE BLEAEUQUT NOT SE ;0)(RORRR,EQLRR#E V MO  BIC #160000,(SP) ; BUFFER TO GET NO. CHARS TO BE INPUT BIT #020000,(R2) ; STOP INPUT AFTER NO. CHARS SPECIFIED ; IN BUFFER ARE RECEIVED? BEQ PRTB22 ; NO CMP CHCNT(R2),(SP) ; YES, HAVE NO. OF CHARS REQUESTED ; BEEN INPUT BHIS PRTB24 ; YES, GO TERMINATE INPUT PRTB22 = . TST (SP)+ ; REALIGN STACK BR PRTA85  5@8s8 58l58h5 8U8=t9=p98~Ap w` B e: @e:e: :77 q,He(\ w % pl,l  PRIP08 = 1 ; PRIORITY PROPERTY LEVEL 8 PRIP09 = 1 ; PRIORITY PROPERTY LEVEL 9  =~^jj 5-TH AT 0830zjyB7 F|.F Ԫ Ԫ|)(XJ   9!999999 E 99::h~A N93939 L}|9f96 w ( 8e(l`;,\ "e(\ Pw PRIP10 = 0 ; PRIORITY PROPERTY LEVEL 10 PRIP11 = 0 ; PRIORITY PROPERTY LEVEL 11 PR T OUCKLOE ASLERE; PS@#+,P)(S VBMO RDWOD EAHR TRETOES;R 0)(R C IN . =5 A1EQ R2 T*NI U =R5 ; ELEV L +*2ITUN= 3 R ; T ESQUREF OELEV LTYRIIOPR= 2 R ; . NOT NI UTY T =R1 ; SSREDD ASTLI= 0 R ; H IT WRNTURE ; C P TS R S ORRR ENOR FOE OD;C  ; GO EXIT PRTB24 = . MOV ITIMER(R5),(SP) ; DEQUEUE OPERATOR RESPONSE TIMER JSR PC,DQTIME TST (SP)+ JMP PRTA40 ; GO DO REQUEST POST PROCESSING ; ; ; PROCESS INTERRUPT FROM ECHO OF FORMATTING LF ; PRTB30 = . .IF NE,ASR37 TSTB PADCH ;HAS PAD CHAR BEEN OUTPUT BNE PRTB35 ;YES MOVB #NUL,@TTODBR(R5);NO INCB PADCH ;SET PAD OUTPU,&  w x > 7""14 = -1 ; PRIORITY PROPERTY LEVEL 14 PRIP15 = -1 ; PRIORITY PROPERTY LEVEL 15 PRIP16k TRAP XXXXXXkxk  8& & &  M~k2l A,h\\ \ *\@3eޘ@7Q@׋@êg{HH&f&M & &  wpC~B7Q,$   ew 7w (p!7"",H w = 0 ; PRIORITY PROPERTY LEVEL 16 .PAGE ; ; QUEUE SYSGEN EQUATE CARDS ; DPRTY = 1 "l T15 ERROR @` \~>l Bf%l  TOD OR WORRR EITINO SS,ORRR ESTLIO ;N ) R0R(ROER R CL L VELE+ T NI*U 2 =R3 ; 3 ,RR2 D AD T NI*U 2 =R5 ; 5 ,RR3 V MO ELEV L +.)NOT NI U *(2= X DEIN; R3 L AS E.I.; ESBLTAO TEXND IELEV/LITUNA E AK;M 3 ,RR1 V MO . =0 A1EQ RE BLTAK AS TINS TUTA S/O ISKTAT ENEMCRIN ; ) R4T(TAOS I B NC I ERLLCAE THS IOS R ; 0 A1EQ R EQ B . NOK AS TVETIACE AV S ; 0)(REMSTSY4,T FLAG BR PRTA85 ;RETURN PRTB35 = . CLRB PADCH ;CLEAR PAD OUTPUT FLAG .ENDC MOVB #1,CHTYPE(R1) ;SET CHAR TYPE FOR NORMAL ECHO CLRB TTCURS(R1) ;SET CURSOR TO BEGINNING OF LINE BR PRTB20 ;GO DEQUEUE ECHO TIMER ; ; ; PROCESS INTERRUPT FROM ECHO OF FORMATTING CR ; PRTB40 = . MOVB #LF,@TTODBR(R5) ;OUTPUT A FORMATTING LF MOVB #2,CHTYPE(R1) ;SET CHAR T R OV M 7:A0EQ R ERMBNUK AS TET G ; R4K,ASCT $ OV M NO ; 7 A0EQ R NE B K?AS TBYD LEAL;CPCK.TS,#P)(S1CT1$K4*6+ 1 MP C O. NSKTAR EACL ; 4 R LR C . = 05QARE ELEV LIDALNV IO,;N 40QARE I BH L?VELED LIVAA T IIS; 1 ,#R2 P CM ESBLTAD ANS UEUE QNGXIDEIN ; R FOL VELEY ITORRI PSTUEEQ RET;G R2),R0L(VELE VBMO O ;N 35QARE I BH YPE FOR FORMATTING LF BR PRTA85 ;GO RETURN ; ; ; PROCESS INTERRUPT FROM ECHO OF "U" ; PRTB50 = . TSTB TOIFLG(R1) ;DOES TIMEOUT FLAG INDICATE AN BNE PRTB55 ;ABORT OF INPUT REQUEST PROCESSING MOVB #CR,@TTODBR(R5) ;NO, OUTPUT A FORMATTING CR MOVB #3,CHTYPE(R1) ;SET CHAR TYPE FOR FORMATTING CR BR PRTA85 PRTB55 = . CLRB TOIFLG(R1) ;RESET INPUT TIMEOUT FLAG BEAY;M 3 ,#0)(RPETY PBCM O ;N 35QARE O BL D?LIVAE YP TITEXS ;I 1 ,#0)(RPETY PBCM RDWOM TEYS SOFE YT BIN. NOT NI UVESA; ) R0K(TSRR,ER1 VBMO S LEAB TNGXIDEINR FO. NOT NI UTY TET;G 1 ,R1)(REVYDPH VBMO O ;N 50QARE E BN E?BLLAAIAVE ICEV DIS ;1)(REVYDPH0,0000#1 T BI NO ; 0 A3EQ R NE B D?LIVAE YP TCEVIDES ;I0 40#7),R1V(DEHY P IT B ESBLTAD OR WOR FEXND IKEMA ;  BR PRTC15 ;GO CR, LF, AND DO END PROCESSING ; ; PROCESS INTERRUPT FROM ECHO OF "^" ; PRTB60 = . MOVB #'U,@TTODBR(R5) ;OUTPUT A "U" MOVB #4,CHTYPE(R1) ;SET CHAR TYPE FOR ECHO OF "U" PRTB70 = . INCB TTCURS(R1) ;INCR CURSOR BR PRTA85 ;GO RETURN ; ; ; PROCESS INTERRUPT FOR ECHO OF "^" ; PRTB80 = . MOVB #'^,@TTODBR(R5) ;OUTPUT A 2ND "^" MOVB #5,CHTYPE(R1) ;SET C 1 R SL A S YE ; 5 A2EQ R HI B ? GEAR LOO TITS ;I X MAOG,LR1 P CM . = 02QARE . NOE ICEV DALICOG LET;G 1 ,R0)(RCEVIDE VBMO T OUCKLOE ASLERES-YE; PS@#+,P)(S VBMO 1E..ND OR WADRETH, NO ; 5 A1EQ R NE B E BLEAEUQUT IS LIS ; ) R0 ( EC D D OR WADRETH ; G INSTTEE ILWHS PTRUERNT IUTKOOC;L T OUOC,LPC R JS K ACSTM RO FDD ASTLIT GE; R0),SPHAR TYPE FOR ECHO OF 2ND "^" BR PRTB70 ; ; PROCESS INTERRUPT FOR ECHO OF "\" ; PRTB90 = . MOVB SLSHCH(R1),@TTODBR(R5) ;OUTPUT NEW OR DELETED ;CHAR AFTER BACKWARD SLASH MOVB #1,CHTYPE(R1) ;SET CHAR TYPE FOR NORMAL ECHO BR PRTB70 ; ; PROCESS INTERRUPT FOR ECHO OF EOM CHARACTER ; PRTC10 = . .IFZ EOMOPT INCB TTCURS(R1) ;INCR CURSOR BR PRTC55C(11KT*$+420 V MO . = P QPRE ; S.ESDRADL UARTVIM TEYS SSTLI ; R FOD SE UBEL IL WR5AS, ONTIOPC 11KTF I ; ITUN2*S INTAON CR5 ; L)VELE+ T NI*U(2S INTAON CR3 ; ELEV LTYRIIOPRS INTAON CR2 ; O. NITUNY TTL CASIHY PNSAINTCO1 R ;S ESDRADT IS LNSAINTCOO R ;; ROZE ; NSAINTCOT ISEWIERTH OE;OD CORRR EANS INTAON CSTLI ; OFD OR WORRR EHE T ;CR, LF NOT OUTPUT AFTER EOM .ENDC PRTC15 = . MOVB #CR,@TTODBR(R5) ;OUTPUT A CR MOVB #11.,CHTYPE(R1) ;SET CHAR TYPE FOR ECHO OF A ;CR FOLLOWING AN EOM BR PRTB70 ; ; INTERRUPT FROM OUTPUT OF LF IN OUTPUT MODE ; PRTC20 = . .IF NE,ASR37 TSTB PADCH ;HAS PAD CHAR BEEN OUTPUT BNE PRTC25 ;YES MOVB #NUL,@TTODBR(R5);NO IR,ROERR TEMERAPAD HAT IS LIF ; ; O. NITUN ; L CASIHY PTY TNSAINTCOT IS LOFD OR WEMSTSYF O 1TEBY ; ; R LEAL CAS WEMSTSYF IROZES ICHHI WO. NSKTA ; NGLIAL CNSAINTCOT IS LOFD OR WEMSTSYF O 0TEBY ; ; Y TRENN O 1E..NN HE WPTCEEX ; 1,Y BEDNTMEREEC DIST IS LOFD OR WADRETH ; ;- -ITEXN PO UNSIOITNDCO ; ;S ERSTGIRED VESAE OVABK ACSTN OISS ESDRADT IS LSTUEEQ R NCB PADCH ;SET PAD OUTPUT FLAG BR PRTA85 ;RETURN PRTC25 = . CLRB PADCH ;CLEAR PAD OUTPUT FLAG .ENDC CLRB CHTYPE(R1) ;SET CHAR TYPE TO OUTPUT MODE JMP PRTA17 ;GO CONTINUE OUTPUT OF MSG ; ; PROCESS INTERRUPT FOR OUTPUT MODE CR ; PRTC30 = . MOVB #LF,@TTODBR(R5) ;OUTPUT A LF CLRB TTCURS(R1) ;RESET CURSOR TO BEGINNING OF LINE MOVB #9.,CHT ;; --RYNT EONUPS ONTIDION C ;; PPEQ,RPC R JS ; ;- -CEENQUSEG INLLCA ; ;S STLIT ESQURES ESOCPRRE PTOE INUTROUB-S -PPEQ R ;; GEPA . ; 60DBKB BR OM EOFO CH EOR FPETYR HA CET;S 1)(RPETYCH.,#8 VBMO O CH EOR FARCHM EOT PUUT;O 5)(RBRODTT,@R4 VBMO C ND.E D OECH EOT NOM EIFT OUUB RSE;U R4O,#R VBMO RTMPEO FZ.I C ND.E 60DBKB BR ) R1E(YPHT,C5.#1 VBMOYPE(R1) ;SET CHAR TYPE FOR OUTPUT MODE LF BR PRTC67 ;GO RETURN ; ; PROCESS INTERRUPT FOR ECHO OF CR FOLLOWING AN EOM ; PRTC40 = . MOVB #LF,@TTODBR(R5) ;OUTPUT A LF MOVB #12.,CHTYPE(R1) ;SET CHAR TYPE FOR ECHO OF LF ;FOLLOWING AN EOM BR PRTC67 ;GO RETURN ; ; PROCESS INTERRUPT FOR ECHO OF LF FOLLOWING AN EOM ; PRTC50 = . .IF NE,ASR37 TSTB PADCH R DEEA RPT7 R3ASF OFN UR;T5)(RBRODTT,@C3#D VBMO 37SR,ANE F .I . =0 B7BD KN URET RGO ; 0 A3BD K R B )+SP ( ST T METIDQC, P SR J ERIM TSEONSPRER TORAPE OUEUEEQ;D) SP-(),R5R(METI I OV M . = 60DBKB CRF OHOECR FOE YP TARCHT SE ;1)(RPETYCH.,11 # B OV M HOECR FOR CUTTPOU ;) R5R(DBTO@T4, R B OV M DCEN . 0 B6BD K R B C3 DOFT INR FOE YP TARCHT SE ;1)(RPETYCH.,14 # B OV M  ;HAS PAD CHAR BEEN OUTPUT BNE PRTC52 ;YES MOVB #NUL,@TTODBR(R5);NO INCB PADCH ;SET PAD OUTPUT FLAG BR PRTC67 ;RETURN PRTC52 = . CLRB PADCH ;CLEAR PAD OUTPUT FLAG .ENDC CLRB TTCURS(R1) ;RESET CURSOR TO BEGINNING OF LINE PRTC55 = . MOV ILSTAD(R5),R0 ;GET CURRENT INPUT LIST ADDRESS .IFNZ $KT11C MOV ILPAR5(R5),$KPAR5 ERADRET P37SR AFF ORNTU);R5R(DBTO@T3,DC # B OV M 7 R3ASE, N IF . . = 50DBKB ; ERCTRAHA CM)EO (GESAES MOFD ENS ESOCPR ; ; 30DAKB BR E AP TEDCHUN POFE AMFRA D EA;R ) R5R(CSTI@T CBIN K ACSTN IGALRE; + P)(S T TS . = 42DBKB T PUINE ATINRMTEO GS,YE; 24TBPR P JM NO; 42DBKB O BL UTNP IENBE; EDSTUEEQ RRSHA COF. NOE AV HS,YE; P)$ ; SET UP ASR TO USE FOR LIST .ENDC JMP PRTA40 ;GO DEQUEUE ECHO TIMER ; ; ; PROCESS INTERRUPT FOR ECHO OF RUBOUT FOR TTY TURNON ; PRTC60 = . TSTB TTYON(R1) ;IS TTY UNIT WARMUP COMPLETE BNE PRTC65 ;NO JMP PRTA80 ;YES PRTC65 = . MOVB #RO,@TTODBR(R5) ;OUTPUT ANOTHER RUBOUT DECB TTYON(R1) ;DECR COUNT PRTC67 = . JMP PRTA85 (S),R2T(CNCH P CM NO; 42DBKB Q BE ? EDIVCEREE ARR FEUF BIN; EDFICIPE SRSHA CO. NERFT AUTNP IOPST; 2)(R0,0020#0 T BI UTNP IBEO TRSHA COF. NOT GEO TERFFBU; P)(S0,0060#1 C BI OFD OR WST 1OF5 ,1143, 1TSBIF OFP RIST; P)(S,-2)(R V MO . =0 B4BD K ;T PUINE AP TEDCHUN P ; ;R METIT PUINT SEO ;G 20DAKB BR + P)(S T TS E IMQT,DPC R JS ER(;RETURN .IF NE,ASR37 ; ; ; PROCESS INTERRUPT FROM OUTPUT OF DC3 AFTER RECEIPT OF CR ; PRTC70 = . MOVB #CR,@TTODBR(R5) ;OUTPUT ECHO OF CR INPUT MOVB #11.,CHTYPE(R1) ;SET CHAR TYPE FOR ECHO OF CR BR PRTC67 ;GO RETURN ; ; ; PROCESS INTERRUPT FROM OUTPUT OF DC3 AFTER RECEIPT OF EOMCH ; PRTC80 = . .IFZ EOMPRT MOVB #RO,@TTODBR(R5) ;ECHO RUBOUT FOR EOMCH BR PRTC85 IM THOECE EUQUDE ;P)(S,-5)(RERIMOT V MO AGFLD DEEEXC EARCHX MAT SE, NO ; 1)(RCHAX M B NC I S YE ; 0 A2BD K NE B ? EDEDCEEXY SLOUVIRE PARCHX MAS WA ; 1)(RCHAX M B ST T . = 30DBKB ; EDEDCEEXT UNCOR TEACARCHM MUXIMA ; ; \" "UTTPOUO ;G 15DAKB BR \" "OFO CH EOR FPETYR HA CET;S ) R1E(YPHT,C#7 VBMO T PUUT OOR F\" " AET;G R4\,#' VBMO R HA CUTBORUN-NOT 1SE AV;S ) R1H(HCLS,SR4 VBMO, .ENDC MOVB #EOMCH,@TTODBR(R5);ECHO EOMCH CHAR PRTC85 = . MOVB 8.,CHTYPE(R1) ;SET CHAR TYPE FOR INT OF EOMCH ECHO BR PRTC67 .ENDC .PAGE ; ; KBDINT -- TELETYPE KEYBOARD/PT READER INTERRUPT ROUTINE ; ; CONDITIONS UPON ENTRY -- ; ; TTY UNIT NO. IS CONTAINED IN BITS 0-3 OF PS ; AS PROVIDED BY INTERRUPT VECTOR FOR ; INTERRUPTING UNIT ; ; ROUTINE IS ENTERED AT P R FEUF B'SERUSO TARCHE OV;M ) R3,(R4 VBMO NTOU CARCHR NC;I ) R2T(CNCH C IN 1)(RROSTFR RBCL . =0 B2BD K ARCHT PUUT OGO ; 5 A1BD K R B EDETEL DNGEI BARCHT GE ; R4),R3 ( B OV M . =0 B1BD K" "\T PUUT OGO ; 5 A1BD K R B D TELEDER HA CST 1VESA ;1)(RCHSHSL),R3 ( B OV M " "\F OHOECR FOE YP TARCHT SE ; 1)(RPETYCH7, # B OV M UTTPOUR FO" "\A T GE ; 4 ,R'\ # B OV0RIORITY LEVEL OF UNIT VECTOR ; ; KBDINT = . JSR R5,SAVE ; SAVE ENVIRONMENT MOVB PS,R1 ;GET UNIT NO FROM BITS 0-3 OF PS .IFZ $1145 MOV #200,PS ; SET LEVEL 4 .ENDC .IFNZ $1145 SPL 4 ; SET LEVEL 4 .ENDC BIC #177760,R1 MOV R1,R5 ASL R5 ;UNIT * 2 USED AS INDEX TO WORD TABLES MOV ITIMER(R5),R4 ;GET M H TCWI SUTBORUT 1ST SE, ES;Y 1)(RROSTFR CBIN NO ; 0 B1BD K NE B ? UTBORUT 1SS HI TIS ; ) R1O(TRRS F B ST T ERFFBUO TUTNP IARCHT AS LTOT INPO ; 3 R EC D NO ; 5 A1BD K MI B D IEIFECSPO CH EIS ; ) R2 ( ST T T UNCOR HA CCRDE ; 2)(RNTHC C EC D T OUUB RRENOIG, ES;Y 20DAKB Q BE O?ER ZNTOU CARCHS ;I ) R2T(CNCH T TS . =0 A8BD K ; N)IOET4ADDRESS OF OPERATOR RESPONSE TIMER MOVB #TTITIM,TCNTR(R4) ;PUT COUNT INTO TIMER MOV ILSTAD(R5),R0 ;GET ADDRESS OF LIST CURRENTLY ;BEING PROCESSED .IFNZ $KT11C MOV ILPAR5(R5),$KPAR5 ; SET UP ASR5 .ENDC .IFZ $KT11C MOV DATA(R0),R2 ;GET DATA BUFFER ADDRESS .ENDC .IFNZ $KT11C MOV IDBFAD(R5),R2 ; DATA BUFFER SVA MOV IDPAR6(R5),$KPAR6EL DERCTRAHA(CR TEACARCHT OUUB RSSCERO P ; ;N URET RGO ; 0 A3BD K R B UTNP IOFT ARSTRER FOT UNCOR HA CROZE ; 2)(RNTHC C LR C " "^F OHOECR FOE YP TARCHT SE ; 1)(RPETYCH5, # B OV M " "^A T PUUT;O) R5R(DBTO@T^,#' VBMO . =0 A7BD K ; ERCTRAHA CRTTAES RGESAES MSSCERO P ; ; CRT PUUT OGO ; 5 A1BD K R B R COFO CH EOR FPETYR HA CET;S ) R1E(YPHT,C#3 VBMO UTTPOUR FOR CET;G R4R,#C VBMO 8 ; SET UP ASR 6 .ENDC TST (R2) ;IS ECHO SPECIFIED BY USER BUFFER BPL KBDA10 ;NO MOV OTIMER(R5),-(SP);YES, QUEUE ECHO TIMER MOV #TTOTIM,-(SP) JSR PC,QTIME TST (SP)+ ;POP ERROR CODE OFF STACK KBDA10 = . MOVB @TTIDBR(R5),R4 ;GET CHAR WHICH WAS INPUT BEQ KBDA20 ;PUNCHED TAPE LEADER OR "HERE IS" KEY? BICB #200,R4 ;STRIP OFF CHAN . =0 A5BD K ; ERCTRAHA CNELIF OND ESSCERO P ; ;N URET;R ORSTRE P JM . =0 A3BD KS YE ; 0 B4BD K NE B PETAD HENCPUN OUTNP IIS ; ) R2,(000004 # IT B R METIT SE ;3)(RTRCN,TIMITTT # B OV M ERIM TSEONSPRER TORAPE OOFS ESDRADT GE ; R3),R5R(METI I OV M . = 20DAKB HOECR FOR HA CUTTPOU, ES;Y 5)(RBRODTT,@R4 VBMO . = 15DAKB R HA CHOECG INNTRI-PON NET GO,;N R4H,OCCH#E V MO <NEL 8 OF TTY INPUT CHAR CMPB R4,#EOMCH ;NO, IS IT THE EOM CHAR? BNE KBDA11 ; NO 5/20/73 JMP KBDB70 ;YES KBDA11 = . ; 5/20/73 CMPB R4,#CR ;IS IT AN EOM CR? BEQ KBDB50 ;YES CMPB R4,#EOLCH ;IS IT THE END OF LINE CHAR? BEQ KBDA50 ;YES CMPB R4,#MRCH ;NO ES;Y 20DAKB E BN E?AP TEDCHUN PONT PUINS ;I 2)(R0,0040#0 T BI . = 14DAKB ES;Y 15DAKB L BP ? EDFICIPE SHOECS IO,;N 2)(R T TS R FEUF B'SERUSO TARCHE OV;M ) R3,(R4 VBMO T UNCOR HA CNTMERENC;I ) R2T(CNCH C IN ES;Y 30DBKB ISBH ? UTNP IENBER HA CNYMAO TOE AV;H+ P)(S),R2T(CNCH P CM UTNP IBEO TRSHA COF. NOT GEO TERFFBU; P)(S0,0060#1 C BI , IS IT THE MSG RESTART CHAR? BEQ KBDA70 ;YES MOV R2,R3 ;GET POINTER TO CHAR SLOT IN DATA BUFFER ADD #MSGDAT,R3 ADD CHCNT(R2),R3 CMPB R4,#RO ;IS CHAR A RUBOUT (DELETE A CHAR)? BEQ KBDA80 ;YES TSTB FRSTRO(R1) ;IS IT 1ST CHAR AFTER SOME RUBOUTS? BNE KBDB20 ;YES KBDA13 = . MOV (R2),-(SP) ; STRIP OFF BITS 13,14,15 OF 1ST WORD OF