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,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: MOVE E,B CLEARM NUM MOVEI CH,175 TRZE FF,SLSL PUSHJ P,RCH MOVEM CH,B ; MOVEI F,GCTAB ;SEARCH TABLE FORMAT ;SRCH1: HRRZS TT,F ;.+4,,. HRLZI F,-40 SERCH2: 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,(b) JRST SERCH1 CAIN CH,^X ;CAIE CH,"S JRST CNTRX ;CAIN CH,"P CAIN CH,^N ;PUSHJ P,CNTRB1 JRST CNTRN ;CAIA CH,^X CAIN CH,^B ;CAIN CH,") JRST CNTRB ;MEANS SF^NOO^O ^NSP^N^B^X)$$ CAIN CH,^Q PUSHJ P,RCH HRLI CH,(CAIN CH,) SERCH4: TRZE FF,NOTF TLC CH,(CAIE#CAIN) MOVEM CH,STAB(F) AOBJN F,SERCH2 JSR ERR SERCH1: MOVE IN,PT TRNE FF,ARG JUMPLE E,FND CAML IN,Z JRST NOFND MOVEI D,STAB SERCH3: CAIN D,STAB(F) JRST FND PUSHJ P,GETINC XCT (D) SERCH5: AOJA D,SERCH3 SRCH5A: AOS PT JRST SERCH1 FND: CAMLE IN,Z JRST NOFND SETOM SFINDF MOVEM IN,PT SOJG E,SERCH1 TRZN FF,COLONF JRST RET MOVNI A,1 JRST VALRET NOFND: MOVE IN,BEG MOVEM IN,PT CLEARM SFINDF TRNE FF,PCHFLG+FINDR JRST NOFND1 BEGIN1: TRZN FF,COLONF JRST NOFND2 BEGIN2: TRZ FF,PCHFLG+FINDR BEGIN: MOVEI A,0 JRST VALRET NOFND1: 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 SERCH1 FND1: SOJG E,SERCH1 JRST RET NOFND2: TRNE FF,ITERF JRST BEGIN2 JSR ERR CNTRB: SKIPA CH,[JSR P,CNTRB1] CNTRX: MOVSI CH,(CAI) JRST serch4 CNTRB1: JRST DQT2 MOVE A,[JRST DQT2] MOVEM A,CNTRB1 PUSHJ P,DQT2 JRST SRCH5A JRST SERCH5 CNTRN: TRO FF,NOTF JRST SERCH2 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,DQT3 JRST RET JRST NOGO DQT2: MOVE B,CH ;SKIP IF CH HAS A BREAK CHARACTER DQT3: 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 .-2 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 PUSH P,COMAX PUSH P,CPTR PUSH P,COMCNT TLZE A,400000 TLZE A,377777 JSR ERR ADD A,QRBUF MOVE IN,A PUSHJ P,GETINC CAIE CH,141 JSR ERR 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 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 JSR ERR ADD B,QRBUF MOVE IN,B MOVE B,CH PUSHJ P,GETINC CAIE CH,141 JSR ERR 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 DISAD7: CAIL CH," CAILE CH,"Z JRST DISAD1 DISAD5: AOSG CHCNT DISAD6: IDPB CH,DISPNR POPJ P, DISAD1: CAIN CH,^M JRST DISAD2 CAIN CH,^J JRST DISAD3 CAIN CH,^G JRST DISAD8 CAIE CH,^I JRST DISAD4 MOVEI CH,40 PUSHJ P,DISAD5 LDB CH,[300,,CHCNT] JUMPN CH,.-3 POPJ P, DISAD2: MOVE CH,CHCNTS MOVNM CH,CHCNT MOVEI CH,34 JRST DISAD6 DISAD4: CAIL CH,40 CAIL CH,140 JRST DISBLB MOVS CH,BLOBS-"[(CH) DISAD9: HRRI CH,36 IDPB CH,DISPNR MOVSS CH IDPB CH,DISPNR MOVEI CH,35 JRST DISAD5 DISAD3: SOS LINES MOVEI CH,33 JRST DISAD6 DISAD8: MOVSI CH,63 JRST DISAD9 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 DISAD7 BLOBS: 53 ? 52 ? 54 ? 46 ? 51 ? 50 LINES: 0 DISBLB: 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 DISBB1 MOVEI 16,61 PUSHJ P,DISAD5 DISBB1: MOVE CH,(P) ANDI CH,70 JUMPE CH,DISBB2 LSH CH,-3 ADDI CH,"0 PUSHJ P,DISAD5 DISBB2: POP P,CH ANDI CH,7 ADDI CH,"0 PUSHJ P,DISAD5 MOVSI CH,77 JRST DISAD9 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, FRD2: 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,37,24,37,5,37,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,37,16,25,0,, ;* .. 0,4,4,37,4,4,0,, ;+ .. 0,0,0,0,14,4,10,, ;, .. 0,0,0,37,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 .. 6,11,1,6,1,11,6,, ;3 .. 24,24,24,37,4,4,4,, ;4 .. 37,20,36,1,1,21,16,, ;5 .. 16,20,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,1,16,, ;9 .. 0,14,14,0,14,14,0,, ;: .. 0,14,14,0,14,4,10,, ;; .. 2,4,10,20,10,4,2,, ;< .. 0,0,37,0,37,0,0,, ;= .. 10,4,2,1,2,4,10,, ;> .. 16,21,2,4,4,0,4,, ;? .. 16,21,26,26,20,21,16,, ;@ .. 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,27,25,21,16,, ;G .. 21,21,21,37,21,21,21,, ;H .. 16,4,4,4,4,4,16,, ;I .. 17,2,2,2,2,22,14,, ;J .. 21,22,24,30,24,22,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 .. 34,22,22,34,24,22,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,12,12,4,4,, ;V .. 21,21,21,25,25,33,21,, ;W .. 21,12,4,4,4,12,21,, ;X .. 21,21,12,4,4,4,4,, ;Y .. 37,2,4,16,4,10,37,, ;Z .. 16,10,10,10,10,10,16,, ;[ .. 0,20,10,4,2,1,0,, ;\ .. 16,2,2,2,2,2,16,, ;] .. 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 ;^@ HRROI A,TAB ;^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 HRROI A,TAB ;^X HRROI A,TAB ;^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 6677 VARIABLES CBUF: END INIT