From f87a70a552361d1d32f71b10902a1b801fbbd132 Mon Sep 17 00:00:00 2001 From: Lars Brinkhoff Date: Thu, 24 Feb 2022 09:32:13 +0100 Subject: [PATCH] Fix "Cruft" @ TECO and reconstruct source. --- tmp/cruft-@.teco | Bin 17243 -> 17251 bytes tmp/teco.x66 | 2834 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 2834 insertions(+) create mode 100644 tmp/teco.x66 diff --git a/tmp/cruft-@.teco b/tmp/cruft-@.teco index 4261498961d3398fcdb236d208fbe93b5745a6f3..785e462874d8e36c2b5cd98a11da2b28e14d6549 100644 GIT binary patch delta 1777 zcmYLJTTEP46y5j13|N`DGsA%?m*N3Qp)+>|C@E74v{Txo7)jBhf$|(Iv=~WCTB9Fr zok>g@AE~MG*Th6)^tWl|!zdqAO^shhV`?=0Yh#+G2~~3Mogy^2_QC4U&VHP;_S%ng zZeP;wUed1AJ{=|6cDA0#OcH&#Ghx0pwvf91Qd~3qpQw07>(vZLr{Xm|scE!$+c>KA zEGEp)4U4Gwv-xUeP3Z=OE|;5oz#| zg}SUG43I}73gOSZD+n_Jqms$2hrLfIa?rm=c5_3ILB!D&7W2%l3f!zc3^UJ%GaRtz zA=J5myR8rkBO0xR2tOy|M8<L1S2A3Y#L9 zS<6A#`(fG_ImtIUB+hyZ6dqHFWeZAlQLKu7$39K@WIwKfN32B+hqWdT;|(5Bv$~H$ zc!)U`Q|^!GYF^gP#deLwC3DtC2OJY7fih%bmme39CLD>5R9|mvXG!x#5 zpO7kL9mBBcg^kTMew4ZjC|_}<@p`cH4#t+)Cy`{bKou_NmwCSeFFnfXpe?aB?*>WS z8Z{T<{b}s;WbszQ4CDbLlKw{|wnMXyvFW&hf<3DOL!H5gudAVgzj3WKjRvDBVn>>_ z%m5yK;tdkkM(^93o9YW#$Lrdb$&yH+MyP3 zyg%Sf|93`Fn4S+V@T(L~?upjy8g-V6n@@&Z@=WLAe9QG++uauQfM6mN-4dS`Z1XbBCLFw3j+tDfK!}&wwg@b z#}5{wzqVv^*&ma|nPxG|vQ4ukCi|(|vV|oxaX+?Xk?WuY1?9% zMB0Q!$I+nV0qMDqu_;F7`Y7NzA%S_i&YM|Vfdn{smjb8ZEKJ-ibDuzxlTPFj#JmA% z=`jNqK>-ZpV~pmK0;I_-rkXMJsF#QNIGhy@&f2vOyp!fvSzBS6YTY;w3{XJdO<8RY z>P_59H2Usn(VJ%?a{2+tXeCCg(g~YA8iBJvDxt`!c!BiZ5#X^Uj_|Xe1ss&4(g-we zuFpoD2w0W#fVJC5ptcA$B7v>-)X3v4aqJO@#*rS*R(&g!66Dm5#a01T(`rjHEBc zVfjgcp?Oe~#kjwMs-}_l^_3Nfe~xj}D8blN{l~tEhyp|$8q3waJM9ma?%sHtn(@8a z(98t24wMQI8s%EB5NWn75`{x2=?WlAaM#7kNh)##?mgTN$q{YSLw6|k!}jLi>ud+V zr@q~Qy^n&GJNp$Va5#0Z$dphx#si0YsXlE3iU+H#aMutsq+Qi;2e|JzRol_%>jXU9 zjQS=4zpobX2CXQ5y}TANcwIKQcRR_MQPxQs2e!$?71*FIR>>zviJAiT<8lrvT{68b z&`8DSqMdLxQxS(#b^_gbbWtYRNDyB5RT4$VdD`JTYQf}Bhoi769hGiJscxTIDrm;~ zShP*`$!;1#&w;Joq!~TbLYQk3ak;B1N{E5;^Ru)Ie4JXpgl&?Sv^q-LCIy`&XuI8Q z<${)Rbu^Wnja%*~Rb(ArUV-J;{a0 zYC$oxj!|y*-I*<4*a-BsgFOxtb#_yO7n($7hOUG<(jU7SS{SXCX`zjZZm6MIpu-eN zE7`2**6-a`OfCI-MRzW(mBvY0`-wJoja% z!bnVA}4vy4w-qB8ZY#gw1+I3wM3N<539BuT@YWhcX%psyUeZ+R4l)-U6YexrW3M)toD|)c>cFwhLNI|8Od?=<7G+ bCNG+Aedi5_t9n2}T`{Y-?j(l&OQwGT4fvq7 diff --git a/tmp/teco.x66 b/tmp/teco.x66 new file mode 100644 index 00000000..b4994c6b --- /dev/null +++ b/tmp/teco.x66 @@ -0,0 +1,2834 @@ + +RELOCA + +TITLE TECO6 + +FF=0 +P"=1 +A"=2 +AA=3 +B=4 +E=5 +C=6 +D=7 +F=10 +T=11 +TT=12 +TT1=13 +IN=14 +OUT=15 +CH=16 +PF=17 +SYM=T + +;RIGHT HALF FLAGS + +ALTF==1 +ARG2==2 +ARG==4 +ITERF==10 +SLSL==20 +PCHFLG==40 +COLONF==100 +SYLF==200 +VIEWF==400 +FINF==1000 +FINDR==2000 +QMFLG==4000 +NOTF==10000 +TRACEF==20000 +LET=40000 + +;LEFT HALF FLAGS + +LPTF==20 +UREAD==200 ;READING FROM UTAPE +UWRITE==400 ;WRITING ON UTAPE +PNSTOP==1000 ;STOP PUNCH + +TYPR1==(30000) +MACDMP==37400 +MACCR==37777 +LPDL==75 + +GCTBL==100 +LPF==40 + + +INIT": +LOC 41 +JSR ETYPER + +LOC INIT + + + CONO 633550+APRCHN + MOVE P,[(,-LPDL)PDL-1] + CONO PTR,20 + CONO PTR,0 + CONO PI,12237 + SETOM CTLBF' + CLEARM SFINDF + MOVEI A,*5 + MOVEM A,BEG + MOVEM A,PT + MOVEM A,Z + MOVEM A,QRBUF + MOVEI A,CBUF"+77 + MOVEM A,CBUFH + MOVEI FF,0 +GOZ": SETOM .COAST" + MOVE P,[(,-LPDL)PDL-1] + CONO PI,2237 + SETOM .LSTP" + MOVE PF,[(,-LPF)PFL-1] + +GOX: SETOM FSHFLG + CLEARM STOPF + CONO TTY,10+TTYCHN + SKIPG TICC + JRST .+3 + PUSHJ P,TYI + JRST .-3 + CLEARM FSHFLG + PUSHJ P,CRR + +GO: MOVE P,[-LPDL,,PDL-1] + SKIPL FSHFLG + SKIPGE STOPF + JRST GOX + TRZN FF,VIEWF + JRST VIEW2 + CONO PI,4002 + CONO 433550+APRCHN +GO1: CLEARM,LEV + TRZ FF,777777#QMFLG + JRST LIS + +TYI: ILDB CH,MACCR + JUMPN CH,CPOPJ + SETZM MACCR + SKIPGE STOPF + JRST GOX + SKIPG TICC + JRST .-3 + MOVE A,TIOP + CAMN A,[(10700)TIBE-1] + MOVEI A,TIBO-1 + HRRM A,TIOP + ILDB A,TIOP + SOS TICC + MOVE CH,A + POPJ P, + +TYO: CAIN CH,11 + JRST TYO2 + CAIN CH,15 + SETOM TABCNR + CAIE CH,12 + AOS TABCNR + SKIPG TORM + JRST .-1 + IDPB CH,TOIP + SOS TORM + EXCH CH,TOIP + CAMN CH,[(10700)TOBE-1] + HRRI CH,TOBO-1 + EXCH CH,TOIP +STYO: CONSO TTY,30 + CONO TTY,10+TTYCHN + POPJ P, + +TYO2: MOVEI CH,40 + PUSHJ P,TYO + MOVE CH,TABCNR + TRNE CH,7 + JRST TYO2 + MOVEI CH,11 + POPJ P, + PITELE: CONSZ TTY,10 + JRST TYP1 + CONSO TTY,40 + JRST TTYRET + DATAI TTY,A + TRZ A,200 + FSC A,@ECHOCC + FSC A,@TICC + TLNE A,200000 + JRST DING + IDPB A,TIIP + ORCMI A,177 + AOJE A,PITEL1 + CLEARM STOPF +PITEL2: MOVE A,TIIP + CAMN A,[(10700)TIBE-1] + MOVEI A,TIBO-1 + HRRM A,TIIP + AOSA ECHOCC +DING: SETOM DINGF + PUSHJ P,STYO + JRST TTYRET + +PITEL1: MOVE A,TIME + SKIPN STOPF + MOVEM A,TSTPTM + AOS A,STOPF + CAIE A,3 + JRST PITEL2 + MOVE A,TIME + SUB A,TSTPTM + CAIL A,20. + JRST PITEL2-1 + HRROS STOPF + SETOM FSHFLG + JRST PITEL2 + TYP1: MOVEI A,12 + AOSN LIF + JRST TYP3 + MOVEI A,7 + AOSN DINGF + JRST TYP3 + MOVEI A,40 + AOSG SPCCC + JRST TYP3 + MOVE A,TORM + CAIL A,TOBS + JRST TYP4 + MOVE A,TOOP + CAMN A,[(10700)TOBE-1] + MOVEI A,TOBO-1 + HRRM A,TOOP + ILDB A,TOOP + AOS TORM + +TYP3: CAIN A,10 + JRST TYO1 + CAILE A,6 + CAIL A,16 + JRST TYO1 +TYP31A: CAIE A,11 + JRST TYP31 + MOVNI A,3 + MOVEM A,SPCCC + JRST TTYRET +TYP31: CAIN A,175 + MOVEI A,"$ + CAIN A,177 + JRST TTYRET + SKIPL FSHFLG + DATAO TTY,A + JRST TTYRET +TYP4: SKIPG ECHOCC + JRST TYP5 + MOVE A,ECHOP + CAMN A,[(10700)TIBE-1] + MOVEI A,TIBO-1 + HRRM A,ECHOP + MOVEI A,12 + HRRM A,TYP1 + ILDB A,ECHOP + SOS ECHOCC + AOS TICC + CAIN A,15 + SETOM LIF + JRST TYP3 +TYP5: CONO TTY,200+TTYCHN + JRST POPRET + +TYO1: CAIL A,40 + JRST TYP31A + ADDI A,100 + HRRM A,TYP1 + SETOM LIF + MOVEI A,"^ + JRST TYP31 + STOPF: 0 +FSHFLG: 0 +TOIP: (10700)TOBO-1 +TOOP: (10700)TOBO-1 +TORM: TOBS +TIIP: (10700)TIBO-1 +TIOP: (10700)TIBO-1 +TICC: 0 +ECHOP: (10700)TIBO-1 +ECHOCC: 0 +TIBO: BLOCK 26. +TIBE: +TOBO: BLOCK 40 +TOBE: +TOBS=*5 +LIF: 0 +DINGF: 0 +SPCCC: 0 +TSTPTM: 0 + +PPA: TLNE FF,LPTF + PUSHJ P,APILPT +PPA2: TLNE FF,UWRITE + PUSHJ P,UTYO + TLNE FF,PNSTOP + POPJ P, + IORI CH,200 + CAIN CH,214 + JRST PPA1 +PPA3: PUSH P,CH + PUSHJ P,PIPUN + POP P,CH + CAIE CH,211 + POPJ P, + MOVEI CH,377 + PUSHJ P,PPA2+2 + JRST PPA2+2 + +UTYO: EXCH A,CH + PUSHJ P,UWR" + TYPR1 [ASCII ?TAPE FULL!?] + EXCH A,CH + POPJ P, + + PPA1: PUSH P,B + MOVEI B,12 + PUSHJ P,FEED1 + MOVEI CH,214 + PUSHJ P,PIPUN + MOVEI CH,377 + MOVEI B,4 + PUSHJ P,FEED1+1 + MOVEI B,30 + PUSHJ P,FEED1 + POP P,B + POPJ P, + +CRR: MOVEI CH,TYO + HRRM CH,LISTF5 + +CRR1: MOVEI CH,15 + PUSHJ P,@LISTF5 + MOVEI CH,12 + JRST @LISTF5 + +SKRCH: SKIPN COMCNT + JSR ERR +RCH: SOSGE COMCNT + JRST RCH2 + ILDB CH,CPTR +TRACS: POPJ P, ;OR JRST TYO IN TRACE MODE + +RCH2: POP P,CH + POP P,MARG2 + POP P,MARG1 + POP P,COMCNT + POP P,CPTR + POP P,COMAX + PUSH P,CH + JRST RCH + +SKRCH1: SOSGE COMCNT + JSR ERR + ILDB CH,CPTR + POPJ P, + +CLIS: PUSHJ P,CRR +LIS: CLEARM COMCNT + CLEARM INTDPH + CLEARM SYMS + MOVE T,[SYMS,,SYMS+1] + BLT T,SYMEND-1 + MOVE AA,[(700)CBUF-1] + MOVE B,CBUFH +LI1: TRZ FF,ALTF +LI2: CAILE B,(AA) + JRST LI3 + CLEARM BARPNT + ADDI B,100 + MOVE C,Z + IDIVI C,5 + MOVE D,QRBUF + IDIVI D,5 + SUBM C,D + MOVE CH,(C) + MOVEM CH,100(C) + SOS C + SOJGE D,.-3 + MOVEI C,500 + ADDM C,BEG + ADDM C,PT + ADDM C,Z + ADDM C,QRBUF + +LI3: MOVEM B,CBUFH + MOVEI CH,TT + AOSE LIFF + PUSHJ P,TYI + CAIN CH,^M + SETOM LIFF + TRZE FF,QMFLG + CAIE CH,77 + AOSA COMCNT + JRST ERRTYP + IDPB CH,AA + CAIE CH,177 + JRST LI4 + IBP AA + IBP AA + IBP AA + SOS D,AA + CAMN AA,[100700,,CBUF-1] + JRST CLIS + ILDB CH,D + PUSHJ P,TYO + SOS COMCNT + SOS COMCNT + JRST LI1 +LI4: CAIE CH,175 + JRST LI1 + TRON FF,ALTF + JRST LI2 + MOVEI CH,141 + AOS A,COMCNT + IDPB CH,AA + MOVE AA,[(700)CBUF-1] + MOVEM AA,CPTR + PUSHJ P,CRR + MOVEM A,COMAX + CONO DIS,0 + JRST CD + +ERRTYP: MOVE AA,ERR2 + MOVEI B,12 + SUBI AA,2 + ILDB CH,AA + CAMG B,ERR1 + PUSHJ P,TYO + CAME AA,ERR2 + SOJA B,.-4 + + +INI: JSR ERR +CD: +RET: SKIPGE STOPF + JRST GOX + TRZ FF,ARG2+ARG+FINDR +CD1: CLEARM NUM +CD2: MOVSI A,(ADD B,) +CD3: HLLM A,DLIM +CD4: CLEARM SYL +CD5: PUSHJ P,RCH + TRZ FF,FINF + XCT DTB(CH) +CD6: MOVE B,NUM + TRZE FF,SYLF +DLIM: ADD B,SYL + MOVEM B,NUM + MOVE C,SARG + TRZ FF,VIEWF+NOTF+PCHFLG+FINDR + JUMPGE A,(A) + PUSHJ P,(A) + JRST RET + +CDNUM: MOVE A,SYL + IMULI A,12 + ADDI A,-60(CH) +VALRET: MOVEM A,SYL +CD7: TRO FF,ARG+SYLF + JRST CD5 + +COMMA: MOVEM B,SARG + TRZE FF,ARG + TROE FF,ARG2 + JSR ERR + JRST CD1 + +CAND: MOVSI A,(AND B,) + JRST CD3 +COR: MOVSI A,(IOR B,) + JRST CD3 +MINUS: MOVSI A,(SUB B,) + JRST CD3 +TIMES: MOVSI A,(IMUL B,) + JRST CD3 +SLASH: MOVSI A,(IDIV B,) + JRST CD3 + +HOLE: CLEARM SARG + TROA FF,ARG2 +PNT: SKIPA A,PT +END1: MOVE A,Z + SUB A,BEG + JRST VALRET + +OPEN: PUSH P,NUM + HLLZ A,DLIM + TRZE FF,ITERF + IORI A,1 + PUSH P,A + AOS LEV + JRST RET + +CLOSE: SOSGE LEV + JSR ERR + MOVEM B,SYL + POP P,CH + HLLM CH,DLIM + TRZ FF,ITERF + TRNE CH,1 + TRO FF,ITERF + POP P,NUM + JRST CD7 + +CHK: CAMG B,Z + CAMGE B,BEG + JSR ERR + POPJ P, + +CHK1: CAMG C,BEG + MOVE C,BEG + CAML B,Z + MOVE B,Z + CAMLE C,B + JSR ERR + POPJ P, + APPEND: TRNE FF,ARG + JRST APPND1 + MOVE OUT,Z + PUSHJ P,YANK2 + JRST RET +APPND1: MOVE IN,PT + PUSHJ P,GET + MOVE A,CH +APPND2: CLEARM NUM + JRST VALRET + +YANK:YANK1: MOVE OUT,BEG + MOVEM OUT,PT +YANK2: +YANK3: TLNN FF,UREAD + PUSHJ P,PIRPA + TLNE FF,UREAD +YANK4: PUSHJ P,UTYI + PUSHJ P,PUT + CAIE CH,14 + AOJA OUT,YANK3 + MOVEM OUT,Z + TLNN FF,UREAD + CAME OUT,BEG + POPJ P, + MOVN OUT,RCC + CAIN OUT,10 + TRO FF,FINF + POPJ P, + +UTYI: PUSHJ P,URED" + TRO FF,FINF + MOVE CH,A + POPJ P, + +DEFINE DBP7 A + ADD A,[70000,,] + SKIPGE A + SUB A,[430000,,1] +TERMIN + +REVERS: PUSHJ P,CHK2 + MOVNS B +CHARAC: PUSHJ P,CHK2 + ADD B,PT +JMP1: PUSHJ P,CHK + MOVEM B,PT + JRST RET +JMP: ADD B,BEG + JRST JMP1 +CHK2: TROE FF,ARG + POPJ P, + LDB B,[(340200)DLIM] + MOVNS B + AOJA B,CPOPJ + +KILL: PUSHJ P,GETARG + PUSHJ P,CHK1 + MOVEM C,PT + SUB B,C + JUMPE B,RET +DELETE: PUSHJ P,CHK2 + MOVM C,B + MOVNS C + ADD B,PT + PUSHJ P,CHK + CAMGE B,PT + MOVEM B,PT + PUSHJ P,NROOM +DEL2: +JRET: JRST RET + + +FEED: +FEED1: MOVEI CH,0 + PUSHJ P,PPA3 + SOJG B,.-1 + POPJ P, + + +TAB: PUSHJ P,TAB2 +INSERT: TRNE FF,ARG + JRST INS1A + MOVEI CH,175 + TRZE FF,SLSL + PUSHJ P,RCH + MOVEM CH,A + MOVE B,CPTR + MOVEI C,0 + PUSHJ P,SKRCH + CAME CH,A + AOJA C,.-2 + PUSHJ P,NROOM + ADD B,CRREL +INS1B: MOVE OUT,PT + ILDB CH,B + CAMN CH,A + POPJ P, + PUSHJ P,PUT + AOS CH,PT + JRST INS1B + + +INS1A: +TAB1: MOVE CH,NUM +TAB2: MOVEI C,1 + PUSHJ P,NROOM + AOS OUT,PT + SOJA OUT,PUT + +UAR: TROA FF,SLSL +COLON: TRO FF,COLONF + JRST RET + +TYOM: PUSH P,C + PUSH P,OUT + PUSH P,TT + PUSH P,TT1 + PUSHJ P,TAB2 + POP P,TT1 + POP P,TT + POP P,OUT + POP P,C + POPJ P, + + LARR: TROA FF,FINDR +SERCHP: TRO FF,PCHFLG +SERCH: SETOM V605' + TRZ FF,FINF + MOVE E,B + CLEARM SYL + CLEARM NUM + MOVEI CH,175 + TRZE FF,SLSL + PUSHJ P,RCH + MOVEM CH,SBRK' + MOVEI F,GCTAB ;SEARCH TABLE FORMAT +SRCH1: HRRZS TT,F ;.+4,,. +SRCH2: PUSHJ P,RCH ;CAIN CH,"F + CAMN CH,SBRK ;CAIE CH,"O + JRST SRLP1 ;CAIN CH,"O + CAIN CH,^O ;.+6,,. + JRST SRLP2 ;CAIN CH," ;SPACE + CAIN CH,^X ;CAIE CH,"S + JRST SRLP3 ;CAIN CH,"P + CAIN CH,^N ;PUSHJ P,CNTRB1 + JRST SRLP4 ;CAIA CH,^X + CAIN CH,^B ;CAIN CH,") + JRST SRLP5 ;MEANS SF^NOO^O ^NSP^N^B^X)$$ + CAIN CH,^Q + PUSHJ P,RCH + HRLI CH,(CAIN CH,) +SRCH3: TRZE FF,NOTF + TLC CH,(CAIE#CAIN) + MOVEM CH,(F) + AOJA F,SRCH2 + +SRLP1: SETOM SBRK +SRLP2: HRL F,TT + AOS A,V605 + CAIL A,40 + JSR ERR + MOVEM F,STAB(A) + SKIPL SBRK + JRST SRCH1 +SRLP6: PUSH P,PT +SRLP2A: CLEARM V607' + SETOM V610' +SRLP3A: MOVE A,V607 + MOVE F,STAB(A) + MOVE IN,(P) + MOVEM IN,PT + TRNE FF,ARG + JUMPLE E,SRLP7 +SRLP4A: CAML IN,Z + JRST SRLP8 + HLRZ D,F +SRLP5A: CAIN D,(F) + JRST SRLP6A + PUSHJ P,GETINC + XCT (D) +SRLP5B: AOJA D,SRLP5A +SRLP5C: AOS IN,PT + JRST SRLP4A + +SRLP6A: CAMLE IN,Z + JRST SRLP8 +SRLP7: SETOM SFINDF + SKIPL V610 + CAMGE IN,V610 + JRST SRLP9 +SRLP8: AOS A,V607 + CAMG A,V605 + JRST SRLP3A + SKIPGE IN,V610 + JRST SRLP10 + MOVEM IN,(P) + SOJG E,SRLP2A + POP P,PT + TRZN FF,COLONF + JRST RET + SETCM A,SYL + JRST VALRET + +SRLP9: MOVEM IN,V610 + MOVE A,V607 + MOVEM A,SYL + JRST SRLP8 +SRLP10: MOVE IN,BEG + MOVEM IN,PT + +LOSE: CLEARM SFINDF + SUB P,[1,,1] + TRNE FF,PCHFLG+FINDR + JRST LOSE1 +BEGIN1: TRZN FF,COLONF + JRST LOSE2 +BEGIN2: TRZ FF,PCHFLG+FINDR +BEGIN: MOVEI A,0 + JRST VALRET + +LOSE1: TRNE FF,FINF + JRST BEGIN1 + PUSH P,E + MOVEI B,1 + TRNE FF,PCHFLG + PUSHJ P,PUNCHA + TRNE FF,FINDR + PUSHJ P,YANK1 + POP P,E + JRST SRLP6 + +LOSE2: TRNE FF,ITERF + JRST BEGIN2 + JSR ERR + +SRLP5: SKIPA CH,[JSR P,CNTRB1] +SRLP3: MOVSI CH,(CAI) + JRST SRCH3 + +CNTRB1: JRST DQT3 + MOVE A,[JRST DQT3] + MOVEM A,CNTRB1 + PUSHJ P,DQT3 + JRST SRLP5C + JRST SRLP5B + +SRLP4: TRO FF,NOTF + JRST SRCH2 + TYPE: +TYPE4: MOVEI D,TYO + PUSHJ P,GETARG +TYPE1: PUSHJ P,CHK1 + MOVE IN,C +TYPE3: CAML IN,B + JRST TYPE5 + PUSHJ P,GETINC + PUSHJ P,(D) + JRST TYPE3 +TYPE5: MOVEI A,PPA + MOVEI CH,14 + CAIE A,(D) + POPJ P, +CPPA: JRST PPA +USE: TRNN FF,ARG + JSR ERR +USEA: PUSHJ P,QREGA + MOVEM B,QTAB-60(CH) + JRST RET +QREG: PUSH P,USE1 +QREGA: PUSHJ P,RCH + CAIL CH,"0 + CAILE CH,"Z + JSR ERR + CAIL CH,"9+1 + SUBI CH,"A-"9-1 + MOVE A,QTAB-"0(CH) +USE1: POPJ P,VALRET + + + +PUNCH: +PUNCHA: MOVEI D,CPPA + TRNE FF,ARG2 + JRST TYPE1-1 + MOVE E,B + MOVE B,CPTR + ILDB T,B + JUMPL E,CPOPJ +PUN1: PUSHJ P,PUNCHR + SKIPE COMCNT + CAIE T,"W + PUSHJ P,YANK1 + MOVE C,Z + CAMN C,BEG + TRNN FF,FINF + SOJG E,PUN1 +CPOPJ: POPJ P,VIEW1 +PUNCHR: SKIPGE STOPF + JRST GOX + MOVE C,BEG + MOVE B,Z + MOVEI D,PPA + JRST TYPE1 + +DPT: JUMPGE B,.+3 + MOVEI CH,"-+200 + PUSHJ P,@LISTF5 + IDIVI B,10. + MOVMS E + HRLM E,(P) + JUMPE B,SLDP1 + PUSHJ P,.-4 +SLDP1: HLRZ CH,(P) + ADDI CH,"0 + JRST @LISTF5 + +PRNT: TRNN FF,ARG + JSR ERR + MOVEI A,TYO + HRRM A,LISTF5 + PUSHJ P,DPT + JRST CRR + +DD: ANDI B,3 + ROT B,4 + MOVEM B,CHSIZ + JRST RET + +DQUOTE: TRNN FF,ARG + JSR ERR + PUSHJ P,RCH + MOVSI A,0 + IRPC Z,,[GLNE] + CAIN CH,"Z + MOVSI A,(JUMP!Z B,) + TERMIN + CAIN CH,"C + JRST DQT1 + JUMPE A,ERR+1 + HRRI A,RET + XCT A +NOGO: MOVEI A,0 + PUSHJ P,SKRCH1 + CAIN CH,42 + AOJA A,.-2 + CAIN CH,47 + SOJL A,RET + JRST .-5 +EXCLAM: PUSHJ P,SKRCH + CAIE CH,"! + JRST .-2 + JRST RET + DQT1: PUSHJ P,DQT2 + JRST RET + JRST NOGO + +DQT3: MOVE B,CH + + ;SKIP IF CH HAS A BREAK CHARACTER +DQT2: CAIE B,"$ + CAIN B,"% + POPJ P, + CAIN B,". + POPJ P, + CAIGE B,"0 + JRST POPJ1 + CAIG B,"9 + POPJ P, + CAIGE B,"A + JRST POPJ1 + CAIG B,"Z + POPJ P, + JRST POPJ1 + +OG: MOVE A,CPTR + MOVE AA,A + IDIVI AA,17 + CAMN A,SYMS(B) + JRST OGFND + SKIPN SYMS(B) + JRST OGNF + CAMN A,SYMS+1(B) +ES1: AOJA B,OGFND + SKIPN SYMS+1(B) +ES2: AOJA B,OGNF + CAMN A,SYMS+2(B) + AOJA B,ES1 + SKIPN SYMS+2(B) + ADDI B,2 + +OGNF: PUSH P,CPTR + PUSH P,B + MOVEI D,STAB+1 + MOVEI A,41 + MOVEM A,-1(D) + PUSHJ P,SKRCH + MOVEM CH,(D) + CAIE CH,175 + AOJA D,.-3 + MOVEM A,(D) + MOVE B,COMCNT + SUB B,COMAX + IDIVI B,5 + ADD B,CPTR + JUMPE E,OG2 + SOS B + MOVMS E + JRST .(E) + IBP B + IBP B + IBP B + IBP B +OG2: MOVE AA,COMAX +OG4: MOVEM B,CPTR + MOVEM AA,COMCNT + MOVEI E,STAB +OG5: CAIN E,1(D) + JRST OG3 + PUSHJ P,SKRCH1 + CAMN CH,(E) + AOJA E,OG5 + IBP B + SOJA AA,OG4 + +OG3: POP P,A + POP P,SYMS(A) + MOVEM AA,CNTS(A) + MOVEM B,VALS(A) + JRST RET + +PCNT: PUSHJ P,QREGA + AOS A,QTAB-60(CH) + JRST VALRET + +OGFND: MOVE A,VALS(B) + MOVEM A,CPTR + MOVE A,CNTS(B) + MOVEM A,COMCNT + JRST RET + CHSIZ: 20 + VIEW: TRO FF,VIEWF + PUSHJ P,DISINI + PUSH P,CPOPJ ;POPJ P,VIEW1 + MOVEI D,DISAD + TRNE FF,VIEWF + JRST TYPE4+1 + JRST TYPE1 + +VIEW1: PUSHJ P,DISCLG + MOVE T,CPTR + ILDB B,T + TRNN FF,VIEWF + JRST GO1 + SKIPE COMCNT + CAIE B,"W + JRST RET + PUSHJ P,TYI + CONO DIS,0 + PUSHJ P,RCH + JRST APPND2 + +VIEW2: CONO DIS,0 + MOVE B,NLINES + PUSHJ P,GETAG7 + PUSH P,B + MOVN B,NLINES + PUSHJ P,GETAG7 + POP P,B + JRST VIEW+1 + +NLINES: 20. + + +ERR: 0 + PUSHJ P,UWAIT" + MOVEI CH,277 + PUSHJ P,TYO + PUSHJ P,CRR + TRO FF,QMFLG + MOVE A,COMAX + SUB A,COMCNT + MOVEM A,ERR1 + MOVE A,CPTR + MOVEM A,ERR2 + JRST GO + +CNTRUP: PUSHJ P,RCH + MOVE A,CH + JRST VALRET +QUESTN: MOVE A,[JRST TYO] + TRCE FF,TRACEF + MOVSI A,(POPJ P,) + MOVEM A,TRACS + JRST RET + +BAKSL: TRZE FF,ARG + JRST BAKSL1 + SKIPA IN,PT +BAKSLM: TRO FF,ARG +BAKSLA: CAML IN,Z + JRST BAKSL3 + PUSHJ P,GETINC + CAIN CH,"- + JRST BAKSLM + CAIG CH,"9 + CAIGE CH,"0 + SOJA IN,BAKSL2 + SUBI CH,"0 + EXCH CH,SYL + IMULI CH,10. + ADDM CH,SYL + JRST BAKSLA +BAKSL3: MOVE IN,Z +BAKSL2: TRZE FF,ARG + MOVNS SYL + MOVEM IN,PT + JRST CD7 + +BAKSL1: MOVE T,[(700)BAKTAB] + MOVEI C,0 + MOVEI CH,BAKSL4 + HRRM CH,LISTF5 + PUSHJ P,dpt + MOVEI A,141 + IDPB A,T + MOVE B,[(700)BAKTAB] + PUSHJ P,NROOM + PUSHJ P,INS1B + JRST RET + +BAKSL4: IDPB CH,T + AOJA C,CPOPJ + +CLOSEB: SKIPA C,[POP PF,] +OPENB: MOVSI C,(PUSH PF,) + PUSHJ P,QREGA + HRRI C,QTAB-"0(CH) + XCT C + JRST CD5 + +SEMICL: TRNN FF,ITERF + JSR ERR + TRNN FF,ARG + MOVE B,SFINDF + +INCMA: JUMPL B,CD + MOVEI A,0 +INCMA1: PUSHJ P,SKRCH1 + CAIN CH,74 + AOJA A,INCMA1 + CAIE CH,76 + JRST INCMA1 + SOJGE A,INCMA1 +INCMA2: SOS INTDPH + SUB P,[3,,3] + POP P,ITERCT + JRST RET + +GRTH: SKIPG INTDPH + JSR ERR + TRZ FF,ITERF + SOSN ITERCT + JRST INCMA2 + MOVE A,-1(P) + MOVEM A,CPTR + MOVE A,(P) + MOVEM A,COMCNT + TRNE FF,TRACEF + PUSHJ P,CRR + + +LSSTH1: TROA FF,ITERF +FLDSZ: MOVEM B,NLINES + JRST RET + +LSSTH: AOS INTDPH + PUSH P,ITERCT + PUSH P,COMAX + PUSH P,CPTR + PUSH P,COMCNT + SETOM ITERCT + TRZE FF,ARG + MOVEM B,ITERCT + JRST LSSTH1 + +LINE: TRNE FF,ARG2 + JSR ERR + PUSHJ P,GETARG + XOR B,C + XORM B,PT + JRST RET + +GTIME: SKIPA A,TIME +LAT: DATAI A + JRST VALRET + +DECDMP: + PUSHJ P,LPTWAT" + PUSHJ P,UWAIT" + CONSZ PTP,7 + JRST .-3 + CONSO TTY,30 + CONSZ TTY,30 + JRST DECDMP + CONO 435550 + MOVE A,CPTR + ILDB CH,A + CAIN CH,175 + JRST MACDMP + MOVE T,[(700)37760-1 + MOVEM T,MACCR +DCDMP2: PUSHJ P,RCH + CAIN CH,"$ + MOVEI CH,375 + IDPB CH,T + CAIE CH,175 + JRST DCDMP2 + MOVEI CH,15 + DPB CH,T + MOVEI CH,0 + IDPB CH,T + JRST MACDMP+1 + +MAC: PUSHJ P,QREGA + TLNE A,400000 + TLNE A,377777 + JRST VALRET + ADD A,QRBUF + HRR IN,A + PUSHJ P,GETINC + CAIE CH,141 + JRST CD5 + PUSH P,COMAX + PUSH P,CPTR + PUSH P,COMCNT + PUSH P,MARG1' + PUSH P,MARG2' + MOVE B,NUM + TRNE FF,SYLF + XCT DLIM + TRNN FF,ARG + MOVEI B,0 + MOVEM B,MARG2 + MOVE B,SARG + TRNN FF,ARG2 + MOVEI B,0 + MOVEM B,MARG1 ;SIGH + PUSHJ P,GETINC + MOVE A,CH + PUSHJ P,GET + ROT CH,7 + IOR A,CH + SUBI A,3 + MOVEM A,COMCNT + MOVEM A,COMAX + IDIVI IN,5 + MOVE OUT,BTAB(OUT) + HRR OUT,IN + TLZ OUT,17 + MOVEM OUT,CPTR + JRST CD5 + +CNTRLX: SKIPA A,MARG1 +CNTRLY: MOVE A,MARG2 + JRST VALRET + TLNE A,577777 + JRST VALRET + JSR ERR + +X: PUSHJ P,GETARG + CAMLE C,B + JSR ERR + EXCH B,C + SUBI C,-3(B) ;C HAS NO. CHARS TO X AWAY + 3 + ADD B,C ;1ST THREE CHARS ARE GLITCH, REMAINDER, LENGTH STRING/7 + PUSH P,PT + ADDM C,(P) + MOVE D,BEG + MOVEM D,PT + PUSHJ P,NROOM + MOVE OUT,RREL + ADDM OUT,(P) + ADD B,OUT + MOVE OUT,BEG + ADDM C,BEG + MOVEI CH,141 + PUSHJ P,PUT + AOS OUT + MOVE CH,C + PUSHJ P,PUT + ROT CH,-7 + MOVE IN,B + AOS OUT +X1: PUSHJ P,PUT + AOS OUT + CAIN C,3 + JRST X2 + PUSHJ P,GETINC + SOJA C,X1 +X2: MOVE B,PT + SUB B,QRBUF + TLO B,400000 + POP P,PT + JRST USEA + +QGET: PUSHJ P,QREG+1 + MOVE B,A + TLZN B,377777 + TLZN B,400000 + JRST BAKSL1 + ADD B,QRBUF + MOVE IN,B + MOVE B,CH + PUSHJ P,GETINC + CAIE CH,141 + JRST RET + PUSHJ P,GETINC + MOVEM CH,C + PUSHJ P,GETINC + ROT CH,7 + IORM CH,C + SUBI C,3 + PUSHJ P,NROOM + MOVE OUT,PT + HRRZ IN,QTAB-"0(B) + ADD IN,QRBUF + ADDI IN,3 +QGET1: JUMPE C,RET + PUSHJ P,GETINC + PUSHJ P,PUT + AOS OUT,PT + SOJA C,QGET1 + +CLRBF: PUSHJ P,PIBUFC + CONO PTR,0 + JRST RET + +GETARG: TRNE FF,ARG2 + JRST GETAG6 + TRON FF,ARG + PUSHJ P,CHK2+2 +GETAG7: MOVE IN,PT +GETAG4: JUMPLE B,GETAG2 + CAMN IN,Z + JRST GETAG5 + PUSHJ P,GETINC + CAIE CH,12 + JRST GETAG4 + SOJG B,GETAG4 + + +GETAG1: MOVE B,IN + MOVE C,PT + POPJ P, + +GETAG5: MOVE B,IN + JRST GETAG1+1 +GETAG6: ADD B,BEG + ADD C,BEG + POPJ P, + + +GETAG2: SOS IN + CAMG IN,BEG + JRST GETAG3 + PUSHJ P,GETINC + CAIE CH,12 + SOJA IN,GETAG2 + AOJLE B,.-1 +GETAG3: CAMGE IN,BEG + MOVE IN,BEG + MOVE C,IN + MOVE B,PT + POPJ P, + + +ECMD: PUSHJ P,.OPNTP +ECMD1: PUSHJ P,RCH + CAIN CH,"L + JRST LISTF + CAIN CH,"R + JRST .OPNRD + CAIN CH,"C + JRST CLSTP + CAIN CH,"F + JRST .FILE + CAIN CH,"D + JRST DELE + CAIN CH,"N + JRST RENAM + CAIN CH,"I + JRST WINIT + CAIN CH,"K + JRST TAPKIL" + CAIN CH,"S + JRST MTNAM + CAIN CH,"T + POPJ P, + CAIN CH,"M + JRST LISTFM + JSR ERR + +.OPNTP: MOVE A,B + TRNN FF,ARG + MOVE A,UFPNTR+2 +.OPN1: PUSHJ P,FILEST" + JRST UTERR + POPJ P, + +UTERR: JRST .+3(A) + TYPR1 [ASCII /UNIT UNABLE +!/] + TYPR1 [ASCII /BAD DIRECTORY +!/] + TYPR1 [ASCII /TOO MANY DIRECTORIES +!/] + +XON: TLOA FF,UREAD +XOFF: TLZ FF,UREAD + JRST RET + +TAPE: TLZA FF,PNSTOP +NTAPE: TLO FF,PNSTOP + JRST RET + CNTRLB: + MOVEI CH,14 + AOSN CTLBF' + PUSHJ P,APILPT + TLO FF,PNSTOP + TLOA FF,LPTF +CNTRLE: TLZ FF,LPTF + JRST RET + +CNTRLW: TLOA FF,UWRITE +CNTRLV: TLZ FF,UWRITE + JRST RET + +PATCH: BLOCK 100 + +ZZ==. +RDCHN==3î +PCHCHN==UTCCHN" +FLGCHN==6 +DATCHN==7 +APRCHN==5 +TPCHN==2 +TPCHNA==40 +LPTCHN==PCHCHN +TTYCHN==PCHCHN + + +LOC 40+APRCHN+APRCHN +JSR IAPRBRK + +LOC 40+RDCHN+RDCHN +JSR RBRK + +LOC 40+FLGCHN+FLGCHN +JSR RECYC + +LOC 40+DATCHN+DATCHN +BLKO DIS,BLKOP +JRST 4,. + +LOC 40+PCHCHN+PCHCHN +JSR PBRK + +LOC ZZ + +RECYC: 0 + EXCH A,BLKOPR + MOVEM A,BLKOP + EXCH A,BLKOPR + CONO DIS,100+FLGCHN*10+DATCHN + JRST 12,@RECYC + DISINI: MOVE T,Z + IDIVI T,5 + ADDI T,A + MOVEM T,DISBUF + MOVEI TT,20115 + IOR TT,CHSIZ + PUSH T,TT + PUSH T,[221700060000 + HRLI T,600 + MOVEM T,DISPNR + LDB TT,[(40200)CHSIZ + MOVNS TT + MOVEI T,170. + LSH T,(TT) + TRZ T,7 + MOVEM T,CHCNTS + MOVNM T,CHCNT + MOVEI T,100. + MOVEM T,LINES + CLEARM BARPNT + POPJ P, + +DEFINE LC A +A,,DISLC +TERMIN + +DEFINE UC A +DISUC,,A +TERMIN + +DEFINE AC A +A,,A +TERMIN + + +DISAD: SKIPN LINES + POPJ P, + MOVE A,PT + CAIN IN,1(A) + JRST DISBAR +DISA1: CAIL CH," + CAILE CH,"Z + JRST DISA4 +DISA2: AOSG CHCNT +DISA3: IDPB CH,DISPNR + POPJ P, + +DISA4: CAIN CH,^M + JRST DISACR + CAIN CH,^J + JRST DISALF + CAIN CH,^G + JRST DISABL + CAIE CH,^I + JRST DISCHR +DSATB: MOVEI CH,40 + PUSHJ P,DISA2 + LDB CH,[300,,CHCNT] + JUMPN CH,DSATB + POPJ P, + +DISACR: MOVE CH,CHCNTS + MOVNM CH,CHCNT + MOVEI CH,34 + JRST DISA3 + +DISCHR: CAIL CH,40 + CAIL CH,140 + JRST DISCTL + MOVS CH,BLOBS-"[(CH) +DISCH2: HRRI CH,36 + IDPB CH,DISPNR + MOVSS CH + IDPB CH,DISPNR + MOVEI CH,35 + JRST DISA2 + +DISALF: SOS LINES + MOVEI CH,33 + JRST DISA3 + +DISABL: MOVSI CH,63 + JRST DISCH2 + +DISBAR: MOVEI A,36 + IDPB A,DISPNR + MOVEI A,62 + IDPB A,DISPNR + MOVE A,DISPNR + MOVEM A,BARPNT + MOVEI A,35 + IDPB A,DISPNR + JRST DISA1 + +BLOBS: 53 ? 52 ? 54 ? 46 ? 51 ? 50 +LINES: 0 + +DISCTL: PUSH P,CH + MOVEI CH,36 + IDPB CH,DISPNR + MOVEI CH,50 + IDPB CH,DISPNR + MOVEI CH,73 + IDPB 16,DISPNR + MOVEI CH,35 + IDPB 16,DISPNR + MOVE CH,(P) + CAIGE CH,100 + JRST DISCT1 + MOVEI 16,61 + PUSHJ P,DISA2 +DISCT1: MOVE CH,(P) + ANDI CH,70 + JUMPE CH,DISCT2 + LSH CH,-3 + ADDI CH,"0 + PUSHJ P,DISA2 +DISCT2: POP P,CH + ANDI CH,7 + ADDI CH,"0 + PUSHJ P,DISA2 + MOVSI CH,77 + JRST DISCH2 + + DISCLG: MOVE A,DISPNR + MOVEI CH,37 + IDPB CH,A + TLNE A,550000 + JRST .-2 + TLC A,2400 + MOVEI CH,3000 + IDPB CH,A + HRRZ B,DISBUF + MOVEM B,BLKOPR + MOVEI CH,6 + CAIL B,-20.(A) + XORM CH,1(B) + CONO PI,2237 + CONO PI,4002 + CONO APR,2000+APRCHN + POPJ P, + +GET: MOVE TT,IN + IDIVI TT,5 + LDB CH,BTAB(TT1) + POPJ P, + +PUT: MOVE TT,OUT + IDIVI TT,5 + DPB CH,BTAB(TT1) + POPJ P, + +GETINC: PUSHJ P,GET + AOJA IN,GETINC-1 + +BTAB: 350700+TT,, + 260700+TT,, + 170700+TT,, + 100700+TT,, + 10700+TT,, + + +NROOM: MOVEM 17,AC2+15 + MOVE 17,PT + CAMN 17,Z + JRST NROOM1 + MOVE 17,[(2)AC2] + BLT 17,AC2+14 + JUMPL C,NROOM6 + SETOM GCFLG + CLEARM CRREL + CLEARM RREL +NROOM9: MOVE 17,Z + ADD 17,C + CAML 17,MEMSIZ + JRST GC + MOVE 14,C + IDIVI 14,5 + IMULI 15,7 + MOVN 13,15 + MOVEI 15,-43(15) + MOVE 11,PT + IDIVI 11,5 + MOVNI 16,-5(12) + IMULI 16,7 + DPB 16,[(300600)NROOM2] + ADDI 14,1(11) + MOVE 16,Z + IDIVI 16,5 + MOVEI B,1(16) + SUB B,11 + HRLI 11,(MOVE A,(B)) + HRLOI 12,(ROT A,) + HRLI 13,(ROTC A,) + HRLI 14,(MOVEM AA,(B)) + HRLI 15,(ROTC A,) + MOVE 17,[JRST,.+3] + MOVE 16,.+1 + SOJGE B,11 + ROTC A,43(13) + DPB A,NROOM2 + ADDM C,Z +NROOM5: MOVS 17,[(2)AC2] + BLT 17,17 + POPJ P, + +NROOM2: (10000),-1(14) + +NROOM1: ADDM C,Z + MOVE 17,AC2+15 + POPJ P, + +NROOM6: MOVE 14,PT + IDIVI 14,5 + MOVEM 14,B + HRRM 14,NROOM4 + IMULI 15,7 + DPB 15,[(300600)NROOM4 + MOVNI 15,-44(15) + DPB 15,[(360600)NROOM4 + MOVE 11,Z + IDIVI 11,5 + ADDI 11,1 + MOVE 13,C + IDIVI 13,5 + ADDI 13,-1(11) + MOVNM 14,12 + IMULI 12,7 + MOVNI 15,-43(12) + SUBI B,1(13) + +NROOM8: HRLI 11,(MOVE AA,(B)) + HRLI 12,(ROTC A,) + HRLI 13,(MOVEM A,(B)) + MOVE 14,[ADDM A,@13 + HRLI 15,(ROTC A,) + MOVE 17,[JRST NROOM3 + ADDM C,Z + LDB C,NROOM4 + MOVE A,@11 + ROT A,-1 + MOVE 16,.+1 + AOJLE B,11 + +NROOM3: DPB C,NROOM4 + JRST NROOM5 + +NROOM4: 0 + +GC: AOSE GCFLG + TYPR1 [ASCII /STORAGE CAPACITY EXCEEDED +!/] + SETOM GCPTR + CLEARM SYMS + MOVE T,[SYMS,,SYMS+1 + BLT T,SYMEND-1 ;CLEAR O SYM TAB + MOVEI T,CPTR ;MARK CPTR + PUSHJ P,GCMA + HRRZ T,P + CAIL T,PDL + PUSHJ P,GCMA + CAILE T,PDL + SOJA T,.-2 ;MARK PDL + HRRZ T,AC2+PF-2 ;SAVED PF + CAIL T,PFL + PUSHJ P,GCM + CAILE T,PFL + SOJA T,.-2 + MOVE T,[(,-36.)QTAB] + PUSHJ P,GCM + AOBJN T,.-1 + SKIPGE GCPTR + JRST NROOM9 + +GCS: MOVE IN,QRBUF +GCS1A: MOVSI TT,1*5 + MOVE OUT,GCPTR +GCS1: HRRZ A,GCTAB(OUT) + ADD A,QRBUF + CAMGE A,IN + JRST GCS2 + CAMGE A,TT + MOVE TT,A +GCS2: SOJGE OUT,GCS1 + TRNN TT,-1 + JRST NROOM9 + MOVE F,TT + IDIVI IN,5 + IDIVI F,5 + AOS IN + MOVS OUT,F + MOVE T,F + SUB T,IN + JUMPLE T,GCS4A + HRR OUT,IN + MOVE B,Z + IDIVI B,5 + SUB B,T + BLT OUT,(B) + MOVNS OUT,T + IMULI OUT,5 + ADDM OUT,BEG + ADDM OUT,PT + ADDM OUT,Z + ADDM OUT,RREL + MOVE CH,GCPTR + GCS3: HRRZ A,GCTAB(CH) + ADD A,QRBUF + CAMGE A,TT + JRST GCS4 + ADDM OUT,GCTAB(CH) + HLRZ A,GCTAB(CH) + CAIN A,CPTR + ADDM OUT,CRREL + SKIPL (A) + ADDM T,(A) + SKIPGE (A) + ADDM OUT,(A) +GCS4: SOJGE CH,GCS3 + ADD TT,OUT +GCS4A: MOVE IN,TT + PUSHJ P,GETINC + CAIE CH,141 +GCERR: TYPR1 [ASCII /GC ERROR +!/] + PUSHJ P,GETINC + MOVE A,CH + PUSHJ P,GETINC + ROT CH,7 + IOR A,CH + ADDI IN,-3(A) + JRST GCS1A + +GCM: MOVE IN,(T) + TLZE IN,400000 + TLZE IN,377777 + POPJ P, + ADD IN,QRBUF +GCM2: CAML IN,BEG + POPJ P, + PUSHJ P,GET + CAIE CH,141 + POPJ P, + SUB IN,QRBUF + JUMPL IN,CPOPJ + AOS TT,GCPTR + CAIL TT,GCTBL + JRST GCERR + HRL IN,T + MOVEM IN,GCTAB(TT) + POPJ P, + +GCMA: LDB TT,[(221400+T)] ;PTR IN T + CAIE TT,700 + POPJ P, + MOVE IN,-1(T) ;GET COMAX + SUB IN,1(T) ;SUB COMCNT + LDB TT,[(360600+T)] + IDIVI TT,7 + MOVEI TT1,2 + SUB TT1,TT + HRRZ TT,(T) + IMULI TT,5 + ADD TT,TT1 + SUBM TT,IN + JRST GCM2 + +IAPRBRK: 0 + PUSH P,A + CONSO 1200 + JRST ILMEM + CONO 1440+APRCHN + JSR APRBRK" + SOSG BARFL1 + JRST BARFL2 +APRBK7: SKIPGE OFTAPE + CONSZ PTR,400 + JRST APRB69 + SETOM PWOWOT +APRB69: SKIPGE RBRK+1 + AOSG RDRUN + JRST APRBK3 + MOVEI A,(JSR) + HRLM A,RBRK+1 + SETOM OFTAPE + CONO PTR,400 +APRBK3: CONSO DIS,77 + JRST APRBA + MOVE A,BLKOP + HRRZS BLKOP + CAMN A,BLKOP + CONO PI,4002 +APRBA: AOS TIME + POP P,A + JRST 12,@IAPRBRK + +BARFL2: CONSO DIS,77 + JRST APRBK7 + MOVEI A,30. + MOVEM A,BARFL1 + LDB A,BARPNT + TRC A,22 + DPB A,BARPNT + JRST APRBK7 + + +ILMEM: MOVEI B,0 + CONSO 200000 + MOVEI B,10 + CONO 433550+APRCHN + MOVE P,[(,-LPDL)PDL] + MOVEI CH,7 + PUSHJ P,TYO + SOJG B,.-1 + JRST 10,ERR+1 + +APILPT: EXCH A,CH + PUSHJ P,PILPT" + EXCH A,CH + POPJ P, + +PIPUN: SKIPG PUNCC + JRST .-1 + IDPB CH,PUNIP + HRRZ CH,PUNIP + CAIN CH,PUNBE-1 + MOVEI CH,PUNBO + HRRM CH,PUNIP + SOS CH,PUNCC + CONSO PTP,7 + CONO PTP,10+PCHCHN + POPJ P, + +PBRK: 0 + JSR UTCBRK" + PUSH P,A +PBRK1: + JRST LPTBRK" +LPTRTN": + CONSO PTP,10 + JRST PITELE + MOVEI A,+*4-4 + CAMG A,PUNCC + JRST PUNSTP + ILDB A,PUNOP + DATAO PTP,A + HRRZ A,PUNOP + CAIN A,PUNBE-1 + MOVEI A,PUNBO + HRRM A,PUNOP + AOSA PUNCC +PUNSTP: CONO PTP,0 +POPRET": POP P,A + JRST 12,@PBRK + +PUNCC: +*4-4 +PUNIP: (1000)PUNBO-1 +PUNOP: (1000)PUNBO-1 +TTYRET=POPRET + RBRK: 0 + JSR RDTEM + EXCH B,RDTEM + PUSH P,A + MOVNI A,10 + MOVEM A,RDRUN + IDPB B,RDIP + HRRZ A,RDIP + CAIN A,RBEND-1 + MOVEI A,RBUF + HRRM A,RDIP + AOS A,RCC + CAILE A,RDCHAR/4 + CAIE B,214 + CAIL A,RBEND*5-RBUF*5-30 + JRST RBRK2 +RBRK3: POP P,A + MOVE B,RDTEM + JRST 12,@RBRK + +RBRK2: MOVEI A,(JSR) + HRLM A,RBRK+1 + JRST RBRK3 + +RDTEM: 0 + CONO PTR,RDCHN + JRST 12,@RBRK + PIRPA3: AOSN PWOWOT + PUSHJ P,PIBUF1 + AOSG OFTAPE + JRST PIBUFX + MOVEI CH,20 + SKIPL RBRK+1 + PUSHJ P,RDST+1 +PIRPA: SKIPG RCC + JRST PIRPA3 + HRRZ CH,RDOP + CAIN CH,RBEND-1 + MOVEI CH,RBUF + HRRM CH,RDOP + SOS CH,RCC + SKIPL OFTAPE + CAIL CH,RDCHAR*3/4 + JRST PIRPA4 + SKIPL RBRK+1 + PUSHJ P,RDST +PIRPA4: ILDB CH,RDOP + CAIN CH,177 + JRST PIRPA + JUMPE CH,PIRPA + POPJ P, + +PIBUFX: CONO PTR,400 + JRST PIBUFD + +PIBUF1: CLEARM OFTAPE +PIBUFC: CONO PTR,0 +PIBUFD: MOVNI CH,10 + MOVEM CH,RCC + MOVE CH,RDIP + MOVEM CH,RDOP + MOVEI CH,(JSR) + HRLM CH,RBRK+1 + MOVEI CH,14 + POPJ P, + +RDST: MOVEI CH,10 + MOVNM CH,RDRUN + CONSZ PTR,20 + JRST .-1 + HRLI CH,(DATAI PTR,) + HLLM CH,RBRK+1 + CONO PTR,RDCHN(CH) + POPJ P, + +RDOP: (700)RBUF +RDIP: (700)RBUF +RCC: 0 +OFTAPE: 0 +RDRUN: 0 + +LOOK: HRLZI A,-27 + SKIPA TT,UFPNTR" + ADDI TT,2 + CAMN B,(TT) + CAME C,1(TT) + AOBJN A,LOOK+2 + TLZN A,-1 + POPJ P, ;NOT FOUND + AOJA A,WR2 +POPJ1: +WR2: AOS (P) + POPJ P, + + + SKIPA A,AA +FRD: MOVSI A,(SIXBIT /@/) + MOVSI AA,(SIXBIT /@/) + MOVE T,[(600)A +FRD1: PUSHJ P,RCH + CAIN CH,175 + POPJ P, + TRC CH,40 + JUMPE CH,FRD-1 + CAIN CH,77 + MOVEI CH,0 + CAME T,[(600)AA + IDPB CH,T + JRST FRD1 + +RRED: MOVE A,LFRED1 + MOVE AA,LFRED2 + JRST .OPNR1 + + +.OPNRD: PUSHJ P,FRD + MOVEM A,LFRED1 + MOVEM AA,LFRED2 +.OPNR1: PUSHJ P,OPNRD" + TYPR1 [ASCII /FILE NOT FOUND +!/] + TLO FF,UREAD + POPJ 1, + +LFRED1: 0 +LFRED2: 0 + +DELE: PUSHJ P,FRD + JRST UDELE" + +.FILE: PUSHJ P,FRD + MOVEM A,LFRED1 + MOVEM AA,LFRED2 + PUSHJ P,FILE" +TPFUL: TYPR1 [ASCII /TAPE FULL!/] + POPJ P, + +CLSTP: TRNN FF,ARG2 + JRST UCLSTP" + PUSH P,UFPNTR+2 + PUSH P,UFPNTR + MOVE A,C + PUSHJ P,.OPN1 + POP P,UFPNTR + PUSHJ P,UCLSTP + POP P,A + JRST .OPN1 + +MTNAM: MOVE OUT,[220600+IN,,177] + MOVE IN,UFPNTR + HLLZS 177(IN) + +MTN1: PUSHJ P,RCH + SUBI CH,40 + JUMPE CH,MTN1 + CAIE CH,175-40 + TLNN OUT,770000 + POPJ P, + IDPB CH,OUT + JRST MTN1 + +LISTFM: SKIPA OUT,[TYOM] +LISTF: MOVEI OUT,TYO + CLEARM LISFLG + HRRM OUT,LISTF5 +CNTRU5: PUSHJ P,CRR1 + MOVE C,UFPNTR + MOVE C,177(C) + CAMN C,[-1] + JRST LSTF1A + LSH C,18. + PUSHJ P,TYPR + PUSHJ P,CRR1 +LSTF1A: SKIPN LISFLG + JRST LISTF9 + MOVE OUT,[(600)[SIXBIT /TAPE/]-1] + PUSHJ P,TYPR+1 + MOVE B,UFPNTR+2 + PUSHJ P,DPT + PUSHJ P,LISTF4 +LISTF9: MOVEI B,0 + MOVE A,UFPNTR + HRLI A,-23. + SKIPN (A) + SKIPE 1(A) + AOJA A,.+2 + AOJA B,.-1 + AOBJN A,.-4 + JUMPN B,.+4 + MOVE OUT,[(600)[SIXBIT /NO/]-1] + MOVEI IN,3 + PUSHJ P,TYPR+2 + MOVE OUT,[(600)[SIXBIT /FREE FILES/]-1] + PUSHJ P,LISTFA + JUMPE B,.+3 + PUSHJ P,DPT + PUSHJ P,LISTF4 + MOVE OUT,[(600) [SIXBIT /FREE BLOCKS/]-1] + PUSHJ P,LISTFA + HRLZI TT1,-30 + MOVEI A,0 + MOVE D,UFPNTR + SUBI D,2 + JRST LISTF1 + + + + ADDI D,2 + SKIPN C,(D) +LISTF3: AOBJN TT1,.-2 + TLNN TT1,-1 + POPJ P, + HRRZ B,TT1 + SKIPN LISFLG + JRST .+4 + PUSHJ P,DPT + MOVEI CH,40 + PUSHJ P,@LISTF5 + ADD TT1,UFPNTR + MOVE B,55(TT1) + LDB CH,[(100)104(TT1)] + DPB B,[(10100)CH] + SUB TT1,UFPNTR + ADDI CH,40 + PUSHJ P,@LISTF5 + PUSHJ P,LISTF4 + TLNN C,770000 + PUSHJ P,LISTF4 + TLNE C,770000 + PUSHJ P,TYPR-1 + MOVE C,1(D) + PUSHJ P,TYPR-1 + HRRZ A,TT1 +LISTF1: SETZB B,E + MOVE OUT,UFPNTR+1 + ILDB CH,OUT + CAIN CH,(A) + AOS E + CAIE CH,37 + JRST .-4 + SKIPE C,A + PUSHJ P,LOOK + SKIPA B,E + JRST LISTF1+1 + PUSHJ P,DPT + MOVNS LISFLG + SKIPGE LISFLG + PUSHJ P,LISTF4 + SKIPGE LISFLG + PUSHJ P,LISTF4 + SKIPL LISFLG + PUSHJ P,CRR1 + JRST LISTF3 + PUSH P,TYPR2 +TYPR: MOVE OUT,[(600)C-1] + MOVEI IN,6 + ILDB CH,OUT + ADDI CH,40 +LISTF5: PUSHJ P,. + SOJG IN,.-3 +TYPR2: POPJ P,LISTF4 +LISTFA: PUSHJ P,TYPR+1 + PUSHJ P,TYPR+1 +SLTAB: +LISTF4: MOVEI CH,11 + JRST @LISTF5 + +LISFLG: 0 + +RENAM: PUSH P,C + PUSHJ P,FRD + PUSHJ P,.LOOK" + TYPR1 [ASCII /NOT FOUND +!/] + PUSH P,A+2 ;FILE NO + PUSH P,A+3 ;PNTR TO FIRST WD OF NAME + PUSHJ P,FRD + PUSHJ P,.LOOK + JRST RNAM1 + CAME A+3,(P) + TYPR1 [ASCII /ALREADY EXISTS +!/] +RNAM1: POP P,TT + MOVEM A,(TT) + MOVEM A+1,1(TT) + POP P,A + POP P,C + TRNN FF,ARG2 + POPJ P, + ADD A,UFPNTR" + DPB C,[(100)104(A)] + LSH C,-1 + DPB C,[(100)55(A)] + POPJ P, + +WINIT: TLO FF,PNSTOP+UWRITE + PUSHJ P,OPNWR" + JSR ERR + POPJ P, + +ETYPER: 0 + HRLZI B,440700 + HRR 4,40 + ILDB CH,B + CAIN CH,"! + JRST ETYP1 + PUSHJ P,TYO + JRST .-4 + +ETYP1: MOVEI A,TOBS + CAME A,TORM + JRST ETYP1 + JRST GOZ + +CNTRLU: PUSHJ P,.OPNTP + SETOM LISFLG ;MAKE SURE DISAD TEST FOR DISBAR FAILS + + PUSH P,CHSIZ + MOVEI A,20 + MOVEM A,CHSIZ + MOVEI A,DISAD + HRRM A,LISTF5 + PUSHJ P,DISINI + MOVE OUT,UFPNTR"+1 +CNTRU4: MOVEI C,25. + MOVEI T,0 +CNTRU2: ILDB B,OUT + CAIN B,37 + JRST CNTRU3 + SKIPN B + AOJA T,.+2 + PUSHJ P,CNTRUA + SOJG C,CNTRU2 + PUSHJ P,CRR1 + JRST CNTRU4 + +CNTRU3: PUSHJ P,CNTRU5 + PUSHJ P,DISCLG + TRO FF,VIEWF + POP P,CHSIZ + JRST RET + +CNTRU6: MOVEI IN,3 + MOVEI CH,40 + PUSHJ P,DISAD + SOJG IN,.-2 + SOS T +CNTRUA: JUMPG T,CNTRU6 + MOVEI IN,3 + TRO FF,VIEWF + IDIVI B,10. + HRLM E,(P) + SOSLE IN + PUSHJ P,CNTRUA+2 + HLRZ CH,(P) + ADDI CH,40 + CAIG CH,40 + TRNN FF,VIEWF + ADDI CH,20 + CAIL CH,60 + TRZ FF,VIEWF + JRST DISAD + + +LIGHTS: TRNE FF,ARG + JRST LIGT1 + CONI 760,A + LSH A,-9. + JRST VALRET + +LIGT1: LSH B,9 + CONO 760,(B) + JRST RET + +SFINDF: 0 +TABCNT: 0 +BEG: 0 +PT: 0 +Z: 0 +QRBUF: 0 +LEV: 0 +COMAX: 0 +CPTR: 0 +COMCNT: 0 +NUM: 0 +SYL: 0 +SARG: 0 +LIFF: 0 +ERR1: 0 +ERR2: 0 +BLKOP: 0 +BLKOPR: 0 +DISPNR: 0 +CBUFH: 0 +BARFL1: 0 +TIME: 0 +TABCNR: 0 +BARPNT: 0 +PWOWOT: 0 +CHCNT: 0 +DISBUF: 0 +CHCNTS: 0 +ITERCT: 0 +MEMSIZ: 37000*5 +GCPTR: 0 +CRREL: 0 +GCFLG: 0 +RREL: 0 +INTDPH: 0 + +GETSYL: TRZ FF,LET + MOVE B,[440600,,T] + MOVEI T,0 +GETS1: PUSHJ P,PRCH1 + CAIE CH,"" + CAIN CH,"! + JRST GETS1 + CAIG CH,"Z + CAIGE CH,"A + JRST GETS3 +GETS4: TRO FF,LET +GETS2: TRC CH,40 + TLNE B,770000 + IDPB CH,B + JRST GETS1 +GETS3: CAIG CH,"9 + CAIGE CH,"0 + CAIN CH,". + JRST GETS2 + CAIE CH,"% + CAIN CH,"$ + JRST GETS4 + POPJ P, + +P1FF: MOVEI CH,1 + MOVEM CH,LNCNT + AOS PGCNT + JRST MNLP + +SYMLST: PUSHJ P,RRED + MOVE CH,Z + IDIVI CH,5 + ADDI CH,10 + MOVEM CH,STPNR + MOVEM CH,STB + MOVEI CH,1 + MOVEM CH,LNCNT + MOVEM CH,PGCNT + CLEARM PASS + CLEARM LBFCC + MOVEI CH,PPA + HRRM CH,LISTF5 +MNLP: PUSHJ P,GETSYL + CAIN CH,"; + JRST P1SC + TRNN FF,LET + JRST MNLP1 + CAIE CH,"= + CAIN CH,": + JRST DEFSM + +MNLP1: CAIN CH,14 + JRST P1FF + CAIN CH,12 + AOS LNCNT + JRST MNLP + +DEFSM: PUSHJ P,ES + JUMPN D,MNLP + MOVEM T,@STPNR + AOS STPNR + HRR CH,LNCNT + HRL CH,PGCNT + MOVNM CH,@STPNR + AOS STPNR + JRST MNLP + +P1SC: PUSHJ P,GETSYL + CAIE CH,^M + JRST P1SC + JRST MNLP + +PRCH1: SKIPE PASS + JRST P2RCH + PUSHJ P,UTYI + TRZN FF,FINF + POPJ P, + MOVEI CH,1 + MOVEM CH,LNCNT + MOVEM CH,PGCNT + MOVE CH,[440700,,LBF] + MOVEM CH,LBFIP + SETOM PASS + SETOM TPGF + PUSHJ P,RRED + PUSHJ P,.FNPNT + CLEARM LSYL +P2MLP: PUSHJ P,GETSYL + TRNN FF,LET + JRST P2A + CAIE CH,"= + CAIN CH,": + JRST P2A + CAIE CH,") + MOVEM T,LSYL +P2A: CAIN CH,"; + JRST P2SC + CAIN CH,^L + JRST P2FF + CAIE CH,^J + JRST P2MLP + PUSHJ P,P2LFA + JRST P2MLP +P2LFA: MOVE B,LNCNT + PUSHJ P,SLDPT +P2FFA: PUSHJ P,SLTAB + SKIPN T,LSYL + JRST P2LF1 + PUSHJ P,ES + JUMPE D,P2LF1 + MOVMS FF,1(D) + HLRZ B,1(D) + PUSHJ P,SLDPT + PUSHJ P,SPSP + HRRZ B,1(D) + PUSHJ P,SLDPT +P2LF1: PUSHJ P,SLTAB + CLEARM SYLCPS + MOVE B,[440700,,STAB] + MOVEM B,LBFIP +P2LF2: SOSGE LBFCC + JRST P2LF3 + ILDB CH,B + CAIN CH,SYM + JRST P2LFT + AOS SYLCPS +P2LFT1: PUSHJ P,PPA + JRST P2LF2 +P2LF3: CLEARM LSYL + SKIPL TPGF + JRST P2LF5 +P2LF6: MOVEI A,105 + SUB A,SYLCPS + PUSHJ P,SPSP + SOJG A,.-1 + MOVEI CH,"P + PUSHJ P,PPA + MOVEI CH,"A + PUSHJ P,PPA + MOVEI CH,"G + PUSHJ P,PPA + MOVEI CH,"E + PUSHJ P,PPA + MOVEI CH," + PUSHJ P,PPA + MOVE B,PGCNT + PUSHJ P,SLDPT + AOSN TPGF + JRST P2LF4 + MOVEI CH,". + PUSHJ P,PPA + MOVEI CH,"0(T) + PUSHJ P,PPA + JRST P2LF4 + +P2LF5A: IDIVI T,60. + JUMPN TT,P2LF4 + JRST P2LF6 +P2LF5: SKIPE T,LNCNT + SOJA T,P2LF5A +P2LF4: PUSHJ P,CRR1 + CLEARM LBFCC + AOS LNCNT + POPJ P, + +P2LFT: AOS A,SYLCPS + ANDI A,777770 + ADDI A,8. + MOVEM A,SYLCPS + JRST P2LFT1 + +P2SC: PUSHJ P,GETSYL + CAIN CH,^M + JRST P2MLP + JRST P2SC + +P2RCH: PUSHJ P,UTYI + TRZE FF,FINF + JRST SYME + CAIE A,^M + CAIN A,^J + POPJ P, + IDPB CH,LBFIP + AOS LBFCC + POPJ P, + +P2FF: CLEARM LNCNT + PUSHJ P,P2FFA + AOS PGCNT + SETOM TPGF + JRST P2MLP + +SPSP: MOVEI CH,40 + JRST PPA + +ES: MOVE D,STB +AES2: CAML D,STPNR + JRST AES1 + CAMN SYM,(D) + POPJ P, + AOS D + AOJA D,AES2 +AES1: MOVEI D,0 + POPJ P, + +SLDPT: IDIVI B,10. + HRLM E,(P) + PUSH P,[SLDP1] + IDIVI B,10. + HRLM E,(P) + PUSH P,[SLDP1] + IDIVI B,10. + HRLM E,(P) + JRST SLDP1 + +LBFCC: 0 +LBFIP: 0 +LNCNT: 0 +PGCNT: 0 +STB: 0 +STPNR: 0 +PASS: 0 +LSYL: 0 +TPGF: 0 +SYLCPS: 0 + +.FNPNT: MOVEI A,PPA + HRRM A,LISTF5 + PUSHJ P,.+1 + MOVE A,LFRED1 + PUSHJ P,.FNPT2 + MOVE A,LFRED2 + PUSHJ P,.FNPT2 + MOVEI CH,14 + JRST PPA + +.FNPT2: PUSH P,A + PUSHJ P,CRR1 + MOVE A,UFPNTR + MOVE A,177(A) + CAMN A,[-1] + JRST .FN69 + MOVEI IN,AA + MOVE OUT,[220600,,A] + PUSHJ P,TYPR+2 + +.FN69: PUSHJ P,CRR1 + MOVE A,(P) + MOVEI B,4 + PUSHJ P,CRR1 + SOJN B,.-1 + MOVEI TT1,7 +.FN239: MOVEI D,3 +.FN249: SETZM AA + ROTC A,6 + MOVEI T,3 +.FN259: XCT LDBT1-1(T) + IMULI AA,10101 + SETZM C + TRNE TT,2 + HRLM AA,C + CAIG T,1 + JRST .FN269 + TRNE TT,1 + HRRM AA,C +.FN269: PUSHJ P,TYPR + IDIVI AA,10101 + SOJN T,.FN259 + JUMPE A,.FN279 + MOVEI CH,40 + REPEAT 3,PUSHJ P,PPA + JRST .FN249 +.FN279: MOVE A,(P) + PUSHJ P,CRR1 + SOJN D,.FN249 + SOJN TT1,.FN239 + POP P,A + POPJ P, + +LDBT1: REPEAT 3,LDB TT,LDBT2-1+.RPCNT*7(TT1) + +LDBT2: REPEAT 21.,[%T1==.RPCNT/7 + %T2==.RPCNT-%T1*7 + CH5.7T(AA+200+<2*%T1+5*%T2>_12.) + ] + +CH5.7T: 0 ;SP +DEFINE .. A,B,C,D,E,F,G,H + IFSN H,,[PRINTX /CH5.7T LOSE! +/] + A_31.+B_26.+C_21.+D_16.+E_11.+F_6+G_1 +TERMIN + + .. 4,4,4,4,4,0,4,, ;! + .. 12,12,12,0,0,0,0,, ;" + .. 12,12,37,12,37,12,12,, ;# + .. 4,17,24,16,5,36,4,, ;$ + .. 36,31,2,4,10,23,3,, ;% + .. 4,12,4,10,25,22,15,, ;& + .. 4,4,4,0,0,0,0,, ;' + .. 2,4,10,10,10,4,2,, ;( + .. 10,4,2,2,2,4,10,, ;) + .. 0,25,16,33,16,25,0,, ;* + .. 0,0,4,33,4,0,0,, ;+ + .. 0,0,0,0,14,4,10,, ;, + .. 0,0,0,16,0,0,0,, ;- + .. 0,0,0,0,0,14,14,, ;. + .. 0,1,2,4,10,20,0,, ;/ + + .. 16,21,23,25,31,21,16,, ;0 + .. 4,14,4,4,4,4,16,, ;1 + .. 16,21,1,2,4,10,37,, ;2 + .. 16,21,1,6,1,21,16,, ;3 + .. 4,14,24,37,4,4,4,, ;4 + .. 37,20,36,1,1,21,16,, ;5 + .. 16,21,20,36,21,21,16,, ;6 + .. 37,1,2,4,10,20,20,, ;7 + .. 16,21,16,21,21,21,16,, ;8 + .. 16,21,21,17,1,21,16,, ;9 + .. 0,14,14,0,14,14,0,, ;: + .. 0,14,14,0,14,4,10,, ;; + .. 0,2,4,10,4,2,0,, ;< + .. 0,0,37,0,37,0,0,, ;= + .. 0,10,4,2,4,10,0,, ;> + .. 16,21,2,4,4,0,4,, ;? + .. 0,16,21,25,21,16,0,, ;@ + .. 16,21,21,37,21,21,21,, ;A + .. 36,21,21,36,21,21,36,, ;B + .. 16,21,20,20,20,21,16,, ;C + .. 36,21,21,21,21,21,36,, ;D + .. 37,20,20,36,20,20,37,, ;E + .. 37,20,20,36,20,20,20,, ;F + .. 16,21,20,20,23,21,16,, ;G + .. 21,21,21,37,21,21,21,, ;H + .. 16,4,4,4,4,4,16,, ;I + .. 7,1,1,1,1,21,16,, ;J + .. 21,22,24,34,22,21,21,, ;K + .. 20,20,20,20,20,20,37,, ;L + .. 21,33,25,21,21,21,21,, ;M + .. 21,21,31,25,23,21,21,, ;N + .. 16,21,21,21,21,21,16,, ;O + .. 36,21,21,36,20,20,20,, ;P + .. 16,21,21,21,25,23,17,, ;Q + .. 36,21,21,36,21,21,21,, ;R + .. 16,21,20,16,1,21,16,, ;S + .. 37,4,4,4,4,4,4,, ;T + .. 21,21,21,21,21,21,16,, ;U + .. 21,21,21,21,21,12,4,, ;V + .. 21,21,21,21,21,25,12,, ;W + .. 21,21,12,4,12,21,21,, ;X + .. 21,21,12,4,4,4,4,, ;Y + .. 37,2,4,16,4,10,37,, ;Z + .. 6,4,4,4,4,4,6,, ;[ + .. 0,20,10,4,2,1,0,, ;\ + .. 14,4,4,4,4,4,14,, ;] + .. 4,16,25,4,4,4,4,, ;^ + .. 0,4,10,37,10,4,0,, ;_ + + IFN .-CH5.7T-64.,.. ,,,,,,,69 + + SYME: MOVE A,STB + MOVE B,STPNR + CAMN A,B + JRST CSLR1 + PUSHJ P,SORT + MOVE A,STPNR + SUB A,STB + IDIVI A,1304 + MOVEM A,PGCNT + ASH AA,-2 + IDIVI AA,3 + MOVEM AA,LNCNT + JUMPE A,CSLSD + MOVE A,STB +CSPP: MOVEI B,73 + MOVEM B,LBFCC +CSPLN: MOVEI B,6 + MOVEM B,PASS +CSPLN1: PUSHJ P,CSPNE + SOSN PASS + JRST CSNLN + MOVEI C,0 + PUSHJ P,TYPR + ADDI A,166 + JRST CSPLN1 +CSNLN: SUBI A,1114 + PUSHJ P,CRR1 + SOSE LBFCC + JRST CSPLN + ADDI A,1116 + SOSE PGCNT + JRST CSPP +CSLSP: AOS B,LNCNT + IMULI B,2 + MOVEM B,LBFCC + MOVEM A,LSYL +CSLSN: PUSHJ P,CSPNE + ADD A,LBFCC + CAML A,STPNR + JRST CSLNN + MOVEI C,0 + PUSHJ P,TYPR + JRST CSLSN +CSLNN: PUSHJ P,CRR1 + MOVE A,LSYL + ADDI A,2 + MOVEM A,LSYL + SOSE LNCNT + JRST CSLSN + MOVEI CH,^L + PUSHJ P,PPA +CSLR1: SUB P,[2,,2] + JRST RET + +CSLSD: MOVE A,STB + JRST CSLSP + +CSPNE: CLEARM TPGF + MOVE C,(A) + PUSHJ P,TYPR + PUSHJ P,SPSP + SKIPG 1(A) + SETOM TPGF + MOVMS 1(A) + HLRZ B,1(A) + PUSHJ P,SLDPT + MOVEI CH," + SKIPE TPGF + MOVEI CH,"* + PUSHJ P,PPA + HRRZ B,1(A) + JRST SLDPT + +SORT: MOVSI C,400000 +SORT1: HRLM B,(P) + CAIL A,-2(B) + JRST SORT7 + PUSH P,A +SORT3: TDNN C,(A) + JRST SORT4 + SUBI B,2 + TDNE C,(B) + JRST SORT2 + EXCH C,(A) + EXCH C,(B) + EXCH C,(A) + EXCH C,1(A) + EXCH C,1(B) + EXCH C,1(A) +SORT4: ADDI A,2 +SORT2: CAME A,B + JRST SORT3 + ROT C,-1 + POP P,A + JUMPL C,SORT6 + PUSHJ P,SORT1 + HLRZ B,(P) + PUSHJ P,SORT1 +SORT6: ROT C,1 +SORT7: HLRZ A,(P) + POPJ P, + +DTB: + MOVEI A,GTIME ;^@ + JRST 34000 ;^A + MOVEI A,CNTRLB ;^B + MOVEI A,CLRBF ;^C + MOVEI A,DD ;^D + MOVEI A,CNTRLE ;^E + MOVEI A,LAT ;^F + MOVEI A,DECDMP ;^G + HRROI A,TAB ;^H + HRROI A,TAB ;^I - TAB + MOVEI A,RET ;^J - LINE FEED + HRROI A,TAB ;^K - VERT TAB + HRROI A,TAB ;^L - FORM FEED + MOVEI A,RET ;^M - CARR RET + MOVEI A,FLDSZ ;^N + MOVEI A,SYMLST ;^O + HRROI A,TAB ;^P + MOVEI A,XON ;^Q + MOVEI A,TAPE ;^R + MOVEI A,XOFF ;^S + MOVEI A,NTAPE ;^T + MOVEI A,CNTRLU ;^U + MOVEI A,CNTRLV ;^V + MOVEI A,CNTRLW ;^W + JRST CNTRLX ;^X + JRST CNTRLY ;^Y + HRROI A,TAB ;^Z + HRROI A,TAB ;^[ + MOVEI A,LIGHTS ;^\ + HRROI A,TAB ;^] + MOVEI A,CNTRUP ;^^ + HRROI A,TAB ;^_ + MOVEI A,CD2 ; + MOVEI A,EXCLAM ;! + MOVEI A,DQUOTE ;" + MOVEI A,COR ;# + HRROI A,TAB ;$ + MOVEI A,PCNT ;% + MOVEI A,CAND ;& + MOVEI A,RET ;' + MOVEI A,OPEN ;( + MOVEI A,CLOSE ;) + MOVEI A,TIMES ;* + MOVEI A,CD2 ;+ + MOVEI A,COMMA ;, + MOVEI A,MINUS ;- + MOVEI A,PNT ;. + MOVEI A,SLASH ;/ + + JRST CDNUM ;0 + JRST CDNUM ;1 + JRST CDNUM ;2 + JRST CDNUM ;3 + JRST CDNUM ;4 + JRST CDNUM ;5 + JRST CDNUM ;6 + JRST CDNUM ;7 + JRST CDNUM ;8 + JRST CDNUM ;9 + MOVEI A,COLON ;: + MOVEI A,SEMICL ;; + MOVEI A,LSSTH ;< + HRROI A,PRNT ;= + MOVEI A,GRTH ;> + MOVEI A,QUESTN ;? + HRROI A,TAB ;@ + MOVEI A,APPEND ;A + MOVEI A,BEGIN ;B + MOVEI A,CHARAC ;C + MOVEI A,DELETE ;D + HRROI A,ECMD ;E + HRROI A,FEED ;F + MOVEI A,QGET ;G + MOVEI A,HOLE ;H + HRROI A,INSERT ;I + MOVEI A,JMP ;J + MOVEI A,KILL ;K + MOVEI A,LINE ;L + JRST MAC ;M + MOVEI A,SERCHP ;N + MOVEI A,OG ;O + HRROI A,PUNCH ;P + MOVEI A,QREG ;Q + MOVEI A,REVERS ;R + MOVEI A,SERCH ;S + HRROI A,TYPE4 ;T + MOVEI A,USE ;U + MOVEI A,VIEW ;V + MOVEI A,RET ;W + MOVEI A,X ;X + HRROI A,YANK ;Y + MOVEI A,END1 ;Z + MOVEI A,OPENB ;[ + MOVEI A,BAKSL ;\ + MOVEI A,CLOSEB ;] + MOVEI A,UAR ;^ + MOVEI A,LARR ;_ +REPEAT 29.,[HRROI A,TAB +] + JRST GO ;ALTMODE + JRST GO ;ALTMODE + HRROI A,TAB ;^? +IFN .-DTB-200,[PRINTX \DTB LOSS +\] + +STAB: +LBF: +AC2: +CFIL1: 0 +CFIL2: BLOCK 14 +BAKTAB: BLOCK 3 + LOC STAB+40 +STABP: +SYMS: BLOCK 22 +VALS: BLOCK 22 +CNTS: BLOCK 22 +SYMEND: +PFL: BLOCK LPF +GCTAB: BLOCK GCTBL +QTAB: BLOCK 37. +PDL: BLOCK LPDL +PUNBO: BLOCK 500 +PUNBE: 0 +RBUF: BLOCK 250 +RBEND: 0 +RDCHAR=*5 +CONSTANTS +printx /=========================== TEMPORARY LOC +/ +loc 15567 +VARIABLES +CBUF: +END INIT + + +  \ No newline at end of file