From a7399d0f9a3418ddf92f193222363352f08d55f2 Mon Sep 17 00:00:00 2001 From: Adam Sampson Date: Tue, 25 Aug 2020 01:46:29 +0100 Subject: [PATCH] Revert MUDSYS to match Muddle 106 source files. Looking at the backup dates for files in , mdl106.exe is from 20th January 1981, whereas some of the source files are from a couple of years later. Revert to the last version prior to 20th January 1981 -- in every case, this was the earliest revision that was kept in . This undoes the changes that we'd previously made to these files, many of which are no longer necessary now that we're using MIDAS 73. --- src/mudsys/{agc.142 => agc.131} | 71 ++----- src/mudsys/{amsgc.111 => amsgc.107} | 28 +-- src/mudsys/{atomhk.151 => atomhk.144} | 24 +-- src/mudsys/{const.6 => const.5} | 4 +- src/mudsys/{decl.103 => decl.102} | 29 +-- src/mudsys/{eval.126 => eval.122} | 50 +---- src/mudsys/{fopen.63 => fopen.35} | 290 +++++--------------------- src/mudsys/{gchack.46 => gchack.45} | 6 +- src/mudsys/{initm.374 => initm.371} | 22 +- src/mudsys/{interr.426 => interr.419} | 29 +-- src/mudsys/{ldgc.101 => ldgc.100} | 2 - src/mudsys/{main.353 => main.350} | 16 +- src/mudsys/{mappur.163 => mappur.146} | 120 +++-------- src/mudsys/{muddle.347 => muddle.346} | 6 +- src/mudsys/{mudex.183 => mudex.177} | 34 +-- src/mudsys/{mudsqu.29 => mudsqu.28} | 1 - src/mudsys/{nfree.54 => nfree.53} | 3 +- src/mudsys/{primit.316 => primit.315} | 10 +- src/mudsys/{print.346 => print.340} | 33 +-- src/mudsys/{pure.16 => pure.15} | 2 +- src/mudsys/{readch.215 => readch.206} | 123 +++++++---- src/mudsys/{reader.357 => reader.353} | 12 +- src/mudsys/{save.176 => save.169} | 65 ++---- src/mudsys/{secagc.82 => secagc.80} | 7 +- src/mudsys/{specs.112 => specs.110} | 10 +- src/mudsys/{stbuil.20 => stbuil.15} | 23 +- src/mudsys/{utilit.106 => utilit.103} | 9 +- src/mudsys/{uuoh.184 => uuoh.179} | 61 ++---- 28 files changed, 299 insertions(+), 791 deletions(-) rename src/mudsys/{agc.142 => agc.131} (98%) rename src/mudsys/{amsgc.111 => amsgc.107} (97%) rename src/mudsys/{atomhk.151 => atomhk.144} (98%) rename src/mudsys/{const.6 => const.5} (94%) rename src/mudsys/{decl.103 => decl.102} (97%) rename src/mudsys/{eval.126 => eval.122} (98%) rename src/mudsys/{fopen.63 => fopen.35} (95%) rename src/mudsys/{gchack.46 => gchack.45} (99%) rename src/mudsys/{initm.374 => initm.371} (98%) rename src/mudsys/{interr.426 => interr.419} (99%) rename src/mudsys/{ldgc.101 => ldgc.100} (99%) rename src/mudsys/{main.353 => main.350} (99%) rename src/mudsys/{mappur.163 => mappur.146} (96%) rename src/mudsys/{muddle.347 => muddle.346} (99%) rename src/mudsys/{mudex.183 => mudex.177} (96%) rename src/mudsys/{mudsqu.29 => mudsqu.28} (99%) rename src/mudsys/{nfree.54 => nfree.53} (99%) rename src/mudsys/{primit.316 => primit.315} (99%) rename src/mudsys/{print.346 => print.340} (99%) rename src/mudsys/{pure.16 => pure.15} (92%) rename src/mudsys/{readch.215 => readch.206} (95%) rename src/mudsys/{reader.357 => reader.353} (99%) rename src/mudsys/{save.176 => save.169} (95%) rename src/mudsys/{secagc.82 => secagc.80} (99%) rename src/mudsys/{specs.112 => specs.110} (94%) rename src/mudsys/{stbuil.20 => stbuil.15} (99%) rename src/mudsys/{utilit.106 => utilit.103} (99%) rename src/mudsys/{uuoh.184 => uuoh.179} (97%) diff --git a/src/mudsys/agc.142 b/src/mudsys/agc.131 similarity index 98% rename from src/mudsys/agc.142 rename to src/mudsys/agc.131 index e0d8cdfe..e44c5e7f 100644 --- a/src/mudsys/agc.142 +++ b/src/mudsys/agc.131 @@ -24,7 +24,7 @@ GCST==$. .GLOBAL P.TOP,P.CORE,PMAPB,IGET,CIGTPR,ROOT,STBL,CAFREE,%MPIN1,%PURIF,%MPINX,GCHK10 .GLOBAL %SAVRP,%RSTRP,LENGC,AGCLD,PAGEGC,REALGC,MARK -.GLOBAL %MPINT,%GBINT,%CLSMP,%CLSM1,PINIT,PGFIND,NPRFLG,%PURMD +.GLOBAL %MPINT,%GBINT,%CLSMP,%CLSM1,PINIT,PGFIND,NPRFLG .GLOBAL GCKNUM,CORTOP,GCHPN,INTAGC,WNDP,WNDBOT,BUFGC,WIND,GCDFLG,SAVM,AGC,GCSET .GLOBAL GCRET,PAIRMK,DEFMK,VECTMK,TBMK,TPMK,ARGMK,VECTMK,FRMK,BYTMK,ATOMK,GATOMK @@ -344,7 +344,7 @@ PURIT1: MOVE PVP,PVSTOR+1 MOVE P,A ; GET NEW PDL PTR PUSHJ P,%SAVRP ; SAVE RPMAP TABLE FOR TENEX MOVE C,SAVRS1 ; SET UP FOR MARKING - MOVE A,(C) ; GET TYPE WORD + MOVE A,(C) ; GET TYPE WORD MOVEM A,SAVRE2 PURIT3: PUSH P,C PUSHJ P,MARK2 @@ -489,7 +489,6 @@ PURCLS: MOVE P,[-2000,,MRKPDL] MOVE A,INF3 ; GET PTR TO PURIFIED STRUCTURE SKIPN NPRFLG PUSHJ P,%PURIF ; PURIFY -IFE ITS, PUSHJ P,%PURMD SETZM GPURFL JRST EPURIF ; FINISH UP @@ -503,14 +502,12 @@ NPRFIX: PUSH P,A SUBI C,FPAG ; ADJUST FOR START ON FIRST PAGE CAIE A,SLOCR ; DONT HACK TLOCRS CAIN A,S1WORD ; SKIP IF NOT OF PRIMTYPE WORD - JRST LSTFXP - CAIN A,SCHSTR - JRST STRFXP + JRST LSTFXP CAIN A,SATOM - JRST ATMFXP + JRST ATMFXP CAIN A,SOFFS JRST OFFFXP ; FIXUP OFFSETS -STRFXQ: HRRZ D,1(B) + HRRZ D,1(B) JUMPE D,LSTFXP ; SKIP IF NIL CAMG D,PURTOP ; SEE IF ALREADY PURE ADDM C,1(B) @@ -535,20 +532,10 @@ OFFFXP: HLRZ 0,D ; POINT TO LIST HRLM 0,1(B) ; STUFF IT OUT JRST LSTFXP ; DONE -STRFXP: TLZN D,STATM ; SKIP IF REALLY ATOM - JRST STRFXQ - MOVEM D,1(B) - PUSH P,C - MOVE C,B ; GET ARG FOR BYTDOP - PUSHJ P,BYTDOP - POP P,C - MOVEI D,-1(A) - JRST ATMFXQ - ATMFXP: HLRE 0,D ; GET LENGTH SUB D,0 ; POINT TO FIRST DOPE WORD HRRZS D -ATMFXQ: CAML D,OGCSTP + CAML D,OGCSTP CAIL D,HIBOT ; SKIP IF IMPURE JRST LSTFXP HRRZ 0,1(D) ; GET RELOCATION @@ -559,36 +546,25 @@ ATMFXQ: CAML D,OGCSTP ; FIXUP OF PURE ATOM POINTERS PURTFX: CAIE C,TATOM ; SKIP IF ATOM POINTER - JRST PURSFX + POPJ P, HLRE E,D ; GET TO DOPE WORD SUBM D,E -PURSF1: SKIPL 1(E) ; SKIP IF MARKED - POPJ P, + SKIPL 1(E) ; SKIP IF MARKED + POPJ P, HRRZ 0,1(E) ; RELATAVIZE PTR SUBI 0,1(E) ADD D,0 ; FIX UP PASSED POINTER SKIPE B ; AND IF APPROPRIATE MUNG POINTER ADDM 0,1(B) ; FIX UP POINTER POPJ P, - -PURSFX: CAIE C,TCHSTR - POPJ P, - MOVE C,B ; GET ARG FOR BYTDOP - PUSHJ P,BYTDOP - GETYP 0,-1(A) - MOVEI E,-1(A) - MOVE A,[PUSHJ P,PURTFX] - CAIE 0,SATOM - POPJ P, - JRST PURSF1 - + PURFIX: PUSH P,D PUSH P,A PUSH P,B PUSH P,C ; SAVE AC'S FOR GCHACK EXCH A,C ; GET TYPE IN A CAIN A,TATOM ; CHECK FOR ATOM - JRST ATPFX + JRST ATPFX PUSHJ P,SAT CAILE A,NUMSAT ; SKIP IF TEMPLATE @@ -640,12 +616,7 @@ LVPUR: POP P,C STRFX: MOVE C,B ; GET ARG FOR BYTDOP PUSHJ P,BYTDOP SKIPL (A) ; SKIP IF MARKED - JRST TLFX - GETYP 0,-1(A) - MOVE D,1(B) - MOVEI C,-1(A) - CAIN 0,SATOM ; REALLY ATOM? - JRST ATPFX1 + JRST TLFX HRRZ 0,(A) ; GET PTR IN NEW STRUCTURE SUBI 0,(A) ; RELATAVIZE ADD 0,MAPUP ; ADJUST @@ -657,7 +628,7 @@ ATPFX: HLRE C,D SUBM D,C SKIPL 1(C) ; SKIP IF MARKED JRST TLFX -ATPFX1: HRRZS C ; SEE IF PURE + HRRZS C ; SEE IF PURE CAIL C,HIBOT ; SKIP IF NOT PURE JRST TLFX HRRZ 0,1(C) ; GET PTR TO NEW ATOM @@ -1399,9 +1370,7 @@ NOMONO: MOVE PVP,PVSTOR+1 PUSHJ P,CTIME FSBR B,GCTIM ; GET TIME ELAPSED - SKIPN INBLOT ; STORE TIME ONLY IF NO RETRY - SKIPN GCDANG - MOVEM B,GCTIM ; SAVE ELAPSED TIME FOR INT-HANDLER + MOVEM B,GCTIM ; SAVE ELAPSED TIME FOR INT-HANDLER SKIPN GCMONF ; SEE IF MONITORING JRST GCCONT PUSHJ P,FIXSEN ; OUTPUT TIME @@ -1446,9 +1415,9 @@ AGCWIN: SETZM PARNEW ;CLEAR FOR NEXT AGC CALL SETOM INTFLG ; AND REQUEST AN INTERRUPT SETZM GCDOWN PUSHJ P,RBLDM -; JUMPE R,FINAGC -; JUMPN M,FINAGC ; IF M 0, RUNNING RSUBR SWAPPED OUT -; SKIPE PLODR ; LOADING ONE, M = 0 IS OK + JUMPE R,FINAGC + JUMPN M,FINAGC ; IF M 0, RUNNING RSUBR SWAPPED OUT + SKIPE PLODR ; LOADING ONE, M = 0 IS OK JRST FINAGC FATAL AGC--RUNNING RSUBR WENT AWAY @@ -2417,13 +2386,11 @@ ATMSET: PUSH P,A ; SAVE A MOVEI B,TATOM ; TYPE PUSHJ P,MARK POP P,A ; RESTORE A - SKIPN GCDFLG + SKIPN DUMFLG JRST BYTREL + HRRM A,(P) MOVSI E,STATM ; GET "STRING IS ATOM BIT" IORM E,(P) - SKIPN DUMFLG - JRST GCRET - HRRM A,(P) JRST BYTREL ; TO BYTREL diff --git a/src/mudsys/amsgc.111 b/src/mudsys/amsgc.107 similarity index 97% rename from src/mudsys/amsgc.111 rename to src/mudsys/amsgc.107 index 301e8250..2d66f201 100644 --- a/src/mudsys/amsgc.111 +++ b/src/mudsys/amsgc.107 @@ -113,7 +113,6 @@ CHNCLR: SKIPE 1(A) ; IS IT A CHANNEL MOVE A,MAINPR PUSHJ P,MARK ; MARK PUSHJ P,CHNFLS ; DO CHANNEL FLUSHING - PUSHJ P,CHFIX PUSHJ P,STOGC ; FIX UP FROZEN WORLD PUSHJ P,SWEEP ; SWEEP WORLD @@ -204,7 +203,7 @@ IRP XX,,[[TLOSE,GCRET],[TFIX,GCRET],[TFLOAT,GCRET],[TCHRS,GCRET] [TTVP,VECMK],[TBVL,VECMK],[TTAG,VECMK],[TPVP,VECMK],[TLOCI,TPMK],[TTP,TPMK] [TSP,TPMK],[TMACRO,PAIRMK],[TPDL,PMK],[TARGS,ARGMK],[TAB,ABMK] [TTB,TBMK],[TFRAME,FRMK],[TCHSTR,BYTMK],[TATOM,ATOMK],[TLOCD,LOCMK],[TBYTE,BYTMK] -[TENV,FRMK],[TACT,FRMK],[TASOC,ASMK],[TLOCU,UVMK],[TLOCS,BYTMK],[TLOCA,ARGMK] +[TENV,FRMK],[TACT,FRMK],[TASOC,ASMK],[TLOCU,UVMK],[TLOCS,BYTMK],[TLOCA,ASMK] [TCBLK,GCRET],[TTMPLT,TD.MK],[TLOCT,TD.MK],[TLOCR,GCRET],[TINFO,GCRET] [TRDTB,GCRDMK],[TWORD,GCRET],[TRSUBR,VECMK],[TCODE,UVMK],[TSATC,GCRET] [TBITS,GCRET],[TSTORA,UVMK],[TPICTU,UVMK],[TSKIP,TPMK],[TLINK,ATOMK] @@ -641,7 +640,6 @@ GCRDMK: MOVEI C,(A) ; SAVE POINTER TO GCREAD TABLE SUB A,B SKIPGE 1(A) ; SKIP IF NOT MARKED JRST GCRET - IORM D,1(A) ; MARK THE CHOMPER!!! SUBI A,2 MOVE B,ABOTN ; GET TOP OF ATOM TABLE ADD B,0 ; GET BOTTOM OF ATOM TABLE @@ -668,13 +666,12 @@ GCRD3: SUBI A,(C) ; TO NEXT ATOM ; ROUTINE TO FIX UP CHANNELS CHNFLS: MOVEI 0,N.CHNS-1 - MOVEI A,CHNL1 ; SET UP POINTER + MOVE A,[TCHAN,,CHNL1] ; SET UP POINTER CHFL1: SKIPN B,1(A) ; GET POINTER TO CHANNEL JRST CHFL2 ; NO CHANNEL LOOP TO NEXT HLRE C,B ; POINT TO DOPE WORD OF CHANNEL SUBI B,(C) - MOVEI F,TCHAN - HRLM F,(A) ; PUT TYPE BACK + HLLM A,(A) ; PUT TYPE BACK SKIPL 1(B) ; SKIP IF MARKED JRST FLSCH ; FLUSH THE CHANNEL MOVEI F,1 ; MARK THE CHANNEL AS GOOD @@ -686,25 +683,6 @@ FLSCH: HLLOS F,(A) ; -1 INTO SLOT INDICATES LOSSAGE JRST CHFL2 -; THIS ROUTINE MARKS ALL THE CHANNELS - -CHFIX: MOVEI 0,N.CHNS-1 - MOVEI A,CHNL1 ; SLOTS - -DHNFL2: SKIPN 1(A) - JRST DHNFL1 - PUSH P,0 ; SAVE 0 - PUSH P,A ; SAVE A - MOVEI C,(A) - MOVE A,1(A) - MOVEI B,TCHAN - PUSHJ P,MARK - POP P,A ; RESTORE A - POP P,0 ; RESTORE -DHNFL1: ADDI A,2 - SOJG 0,DHNFL2 - POPJ P, - ; CONVERSION FROM FLOAT TO DECIMAL. X 100 AND SEND OUT WITH APPROPRIATELY PLACED DECIMAL diff --git a/src/mudsys/atomhk.151 b/src/mudsys/atomhk.144 similarity index 98% rename from src/mudsys/atomhk.151 rename to src/mudsys/atomhk.144 index 069ad4a2..1d1855cf 100644 --- a/src/mudsys/atomhk.151 +++ b/src/mudsys/atomhk.144 @@ -8,7 +8,6 @@ RELOCATABLE .GLOBAL .BLOCK,IDVAL,NXTDCL,CHRWRD,CSTACK,CSTAK,ILOOKC,IGVAL,BYTDOP,HASHTB .GLOBAL ICONS,INCONS,IBLOCK,INSRTX,GCHACK,IMPURIFY,BSETG,TYPVEC,IGET,IPUT .GLOBAL CINSER,CIRMV,CLOOKU,CATOM,CIPNAM,MPOPJ,CSETG,CSPNAM,GPURFL,IMPURX -.GLOBAL NOATMS LPVP==SP TYPNT==AB @@ -296,12 +295,7 @@ CHECK5: HRRZ A,-1(TP) ; SEE IF FIRST SHOT AT THIS GUY? JRST NEXT CHECK2: MOVE B,E ; RETURN ATOM - HLRE A,B - SUBM B,A - MOVE A,(A) - TRNE A,LNKBIT - SKIPA A,$TLINK - MOVSI A,TATOM + MOVSI A,TATOM JRST CPOPJT CHECK1: MOVE D,-2(TP) ; ANY LEFT? @@ -683,9 +677,7 @@ RLOOK1: MOVE B,(TP) SKIPN D,-2(TP) ; RESTORE FOR INSERT JRST BADDEF ; NO DEFAULT, USER LOST ON SPECIFICATION SUB TP,[6,,6] ; FLUSH CRAP - SKIPN NOATMS - JRST INSRT1 - JRST INSRT1 + JRST INSRT1 DEFFLG==1 ;SPECIAL FLAG USED TO INDICATE THAT A DEFAULT HAS ALREADY BEEN ; SPECIFIED @@ -1008,8 +1000,8 @@ IMPURIFY: ; ROUTINE PASSED TO GCHACK ATFIX: CAME D,(TP) - CAMN D,-2(TP) - JRST .+2 + CAMN D,-2(TP) + JRST .+2 POPJ P, ASH C,1 @@ -1097,9 +1089,7 @@ IMPUR0: MOVE C,(TP) ; GET ATOM ADD C,[3,,3] ; POINT TO PNAME HLRE A,C ; GET LNTH IN WORDS OF PNAME MOVNS A -; PUSH P,[SETZ IMPUR2] ; FAKE OUT ILOOKC - XMOVEI 0,IMPUR2 - PUSH P,0 + PUSH P,[IMPUR2] ; FAKE OUT ILOOKC PUSH P,(C) ; PUSH UP THE PNAME AOBJN C,.-1 PUSH P,A ; NOW THE COUNT @@ -1114,10 +1104,6 @@ IMPUR2: JUMPE B,IMPUR1 MOVE B,0 PUSH P,GPURFL ; PRERTEND OUT OF PURIFY - HLRE C,B - SUBM B,C - HRRZ C,(C) ; ARE WE ON PURIFY LIST - CAIG C,HIBOT ; IF SO, WE ARE STILL PURIFY SETZM GPURFL PUSHJ P,IMPURIF ; RECURSE POP P,GPURFL diff --git a/src/mudsys/const.6 b/src/mudsys/const.5 similarity index 94% rename from src/mudsys/const.6 rename to src/mudsys/const.5 index 3776d609..32a0ea41 100644 --- a/src/mudsys/const.6 +++ b/src/mudsys/const.5 @@ -8,7 +8,8 @@ DEFINE C%MAKE A,B IRP LH,RH,[B] A==[LH,,RH] .ISTOP - TERMIN + TERMIM +TERMIN TERMIN IRP X,,[[C%11,1,1],[C%22,2,2],[C%33,3,3],[C%44,4,4],[C%55,5,5],[C%66,6,6] @@ -20,5 +21,6 @@ IRP X,,[[C%11,1,1],[C%22,2,2],[C%33,3,3],[C%44,4,4],[C%55,5,5],[C%66,6,6] .ISTOP TERMIN +TERMIN TERMIN END diff --git a/src/mudsys/decl.103 b/src/mudsys/decl.102 similarity index 97% rename from src/mudsys/decl.103 rename to src/mudsys/decl.102 index 1fce52b1..0cede3c9 100644 --- a/src/mudsys/decl.103 +++ b/src/mudsys/decl.102 @@ -8,7 +8,7 @@ RELOCA .GLOBAL STBL,TYPFND,TYPSGR,CHKDCL,TESTR,VALG,INCR1,TYPG,ISTRUC,TMATCH,SAT .GLOBAL TYPMIS,CHKAB,CHKARG,IGDECL,LOCQQ,APLQ,CALER,IEQUAL,IIGLOC,IGLOC .GLOBAL CHLOCI,INCONS,SPCCHK,OUTRNG,WTYP1,FLGSET,IGET,PVSTOR,SPSTOR,DSTORE -.GLOBAL NOATMS,NOSET,NOSETG + ; Subr to allow user to access the DECL checking code MFUNCTION CHECKD,SUBR,[DECL?] @@ -40,33 +40,6 @@ MFUNCTION %DECL,SUBR,[DECL-CHECK] HRROI E,IGDECL JRST FLGSET -; Subr to turn on and off allowing new atoms - -MFUNCTION %NEWAT,SUBR,[ALLOW-NEW-ATOMS] - - ENTRY - - MOVEI E,NOATMS - JRST FLGSET - -; Subr to turn on and off allowing new GVALS - -MFUNCTION %NEWGV,SUBR,[ALLOW-NEW-GVALS] - - ENTRY - - MOVEI E,NOSETG - JRST FLGSET - -; Subr to turn on and off allowing new LVALs - -MFUNCTION %NEWLV,SUBR,[ALLOW-NEW-LVALS] - - ENTRY - - MOVEI E,NOSET - JRST FLGSET - ; Change special unspecial normal mode MFUNCTION SPECM%,SUBR,[SPECIAL-MODE] diff --git a/src/mudsys/eval.126 b/src/mudsys/eval.122 similarity index 98% rename from src/mudsys/eval.126 rename to src/mudsys/eval.122 index e7983b2b..bf171810 100644 --- a/src/mudsys/eval.126 +++ b/src/mudsys/eval.122 @@ -2,8 +2,6 @@ TITLE EVAL -- MUDDLE EVALUATOR RELOCATABLE -.SYMTAB 3337. - ; GERALD JAY SUSSMAN, 1971. REWRITTEN MANY TIMES SINCE C. REEVE (1972--1974) @@ -19,7 +17,6 @@ RELOCATABLE .GLOBAL IIGLOC,CHUNW,IUNWIN,UNWIN2,SPCCHK,CURFCN,TMPLNT,TD.LNT,TBINIT .GLOBAL SPECBE,BSETG,GLOTOP,CANDP,CORP,TFA,TMA,DSTORE,PVSTOR,SPSTOR .GLOBAL AGC,GVLINC,LVLINC,CGBOUN,IEVECT,MAKTU2,STOSTR,HIBOT,POPUNW,ISTRUC -.GLOBAL NOSET,NOSETG .INSRT MUDDLE > @@ -1125,9 +1122,9 @@ AUXB1: HRRZ C,RE.ARG+1(TB) ; POINT TO ARGLIST SKIPN (P) ; SKIP IF QUOTED OK JRST MPD.11 AUXB2: PUSHJ P,PSHBND ; SET UP BINDING - PUSH TP,$TATOM ; SAVE HEWITT ATOM + PUSH TP,$TDECL ; SAVE HEWITT ATOM PUSH TP,-1(P) - PUSH TP,$TDECL ; AND DECLS + PUSH TP,$TATOM ; AND DECLS PUSH TP,-2(P) TRNN A,2 ; SKIP IF INIT VAL EXISTS JRST AUXB3 ; NO, USE UNBOUND @@ -2202,8 +2199,6 @@ CHSKIP: CAIN C,TSKIP ; ENTRY FOR FUNNY COMPILER UNBIND (1) SSPECS: PUSH P,E - PUSH P,PVP - PUSH P,SP MOVEI E,(TP) PUSHJ P,STLOOP SSPEC2: SUBI E,(SP) ; MAKE SP BE AOBJN @@ -2211,16 +2206,12 @@ SSPEC2: SUBI E,(SP) ; MAKE SP BE AOBJN HLL SP,TP SUB SP,E MOVEM SP,SPSTOR+1 - POP P,SP - POP P,PVP POP P,E POPJ P, ; ENTRY FOR FUNNY COMPILER UNBIND (2) SSPEC1: PUSH P,E - PUSH P,PVP - PUSH P,SP SUBI E,1 ; MAKE SURE GET CURRENT BINDING PUSHJ P,STLOOP ; UNBIND MOVEI E,(TP) ; NOW RESET SP @@ -3628,22 +3619,9 @@ IMFUNCTION SETG,SUBR CAIL 0,HIBOT ; PURE ATOM? PUSHJ P,IMPURIFY ; YES IMPURIFY PUSHJ P,IGLOC ;GET LOCATIVE TO VALUE - CAME A,$TUNBOUND ;IF BOUND - JRST GOOST1 - SKIPN NOSETG ; ALLOWED? - JRST GOOSTG ; YES - PUSH TP,$TATOM - PUSH TP,EQUOTE CREATING-NEW-GVAL - PUSH TP,$TATOM - PUSH TP,1(AB) - PUSH TP,$TATOM - PUSH TP,EQUOTE NON-FALSE-TO-ALLOW - MCALL 3,ERROR - GETYP 0,A - CAIN 0,TFALSE - JRST FINIS -GOOSTG: PUSHJ P,BSETG ;IF NOT -- BIND IT -GOOST1: MOVE C,2(AB) ; GET PROPOSED VVAL + CAMN A,$TUNBOUND ;IF BOUND + PUSHJ P,BSETG ;IF NOT -- BIND IT + MOVE C,2(AB) ; GET PROPOSED VVAL MOVE D,3(AB) MOVSI A,TLOCD ; MAKE SURE MONCH WINS PUSHJ P,MONCH0 ; WOULD YOU BELIEVE MONITORS!!!! @@ -3891,22 +3869,8 @@ SET1: PUSH TP,$TPVP ; SAVE PROCESS PUSHJ P,IMPURIFY MOVE C,(TP) PUSHJ P,AILOC ;GET LOCATIVE TO VALUE -GOTLOC: CAME A,$TUNBOUND ;IF BOUND - JRST GOOSE1 - SKIPN NOSET ; ALLOWED? - JRST GOOSET ; YES - PUSH TP,$TATOM - PUSH TP,EQUOTE CREATING-NEW-LVAL - PUSH TP,$TATOM - PUSH TP,1(AB) - PUSH TP,$TATOM - PUSH TP,EQUOTE NON-FALSE-TO-ALLOW - MCALL 3,ERROR - GETYP 0,A - CAIN 0,TFALSE - JRST FINIS -GOOSET: PUSHJ P,BSET ;IF NOT -- BIND IT -GOOSE1: MOVE C,2(AB) ; GET PROPOSED VVAL +GOTLOC: CAMN A,$TUNBOUND ;BOUND? + PUSHJ P, BSET ;BIND IT MOVE C,2(AB) ; GET NEW VAL MOVE D,3(AB) MOVSI A,TLOCD ; FOR MONCH diff --git a/src/mudsys/fopen.63 b/src/mudsys/fopen.35 similarity index 95% rename from src/mudsys/fopen.63 rename to src/mudsys/fopen.35 index 48fa1692..5c9c32a2 100644 --- a/src/mudsys/fopen.63 +++ b/src/mudsys/fopen.35 @@ -312,7 +312,6 @@ IFN ITS,[ PMOVEM (AB),T.DIR(TB) ; SAVE MODE NAME IN TEMPS ADD AB,[2,,2] ; BUMP PAST DIRECTION - MOVEM AB,ABSAV(TB) MOVEI A,0 JUMPGE AB,MAKCH0 ; CHECK NAME1 BASED ON JUST MODE @@ -359,7 +358,7 @@ ARGSOK: MOVEI A,CHANLNT ; GET LENGTH HRRI C,(B) ; AND NEW ONE BLT C,CHANLN-5(B) ; CLOBBER MOVSI C,TLIST ; TO GIVE HIM A CLEAN LIST OF SCRIPT CHANS - HLLM C,SCRPTO-1(B) + MOVEM C,SCRPTO-1(B) ; NOW BLT IN STUFF FROM THE STACK @@ -369,20 +368,6 @@ ARGSOK: MOVEI A,CHANLNT ; GET LENGTH MOVEI C,RNAME1-1(B) ; NOW "REAL" SLOTS HRLI C,T.NM1(TB) BLT C,RSNAME(B) - MOVE B,IMQUOTE MODE - PUSHJ P,IDVAL1 - GETYP 0,A - CAIN 0,TFIX - JRST .+3 - MOVE B,(TP) - POPJ P, - - MOVE C,(TP) -IFE ITS,[ - ANDI B,403776 ; ONLY ALLOW NON-CRITICAL BITSS -] - HRRM B,-4(C) ; HIDE BITS - MOVE B,C POPJ P, ; HERE TO VALIDIFY ARGUMENTS FOR A NET OPEN @@ -559,7 +544,6 @@ CPOPJ: POPJ P, ; RETURN, ALL DONE SUB TP,[2,,2] ; FLUSH OLD STRING ADD E,[1,,1] ADD AB,[2,,2] ; BUMP ARG - MOVEM AB,ABSAV(TB) JUMPL AB,RPARGL ; AND GO ON CPOPJ1: AOS A,(P) ; PREPARE TO WIN HLRZS A @@ -601,7 +585,6 @@ ARGCLB: SKIPGE (P) ; IF NOT STORING, CONSIDER THIS THE END JRST NAPT ; NO, LOSE PMOVEM (AB),T.XT(TB) ADD AB,[2,,2] ; MUST BE LAST ARG - MOVEM AB,ABSAV(TB) JUMPL AB,TMA JRST CPOPJ1 ; ELSE SUCCESSFUL RETURN TRYNET: CAIE 0,TFIX ; FOR NET DEV, ARGS MUST BE FIX @@ -657,10 +640,9 @@ IFE ITS,[ ; TENEX VERSION OF FILE NAME PARSER (ONLY ACCEPT ARGS IN SINGLE STRING) +RGPRS: MOVSI 0,NOSTOR -RGPRS: MOVEI 0,NOSTOR - -RGPARS: HRLM 0,(P) ; SAVE FOR STORE CHECKING +RGPARS: IORM 0,(P) ; SAVE FOR STORE CHECKING CAMGE AB,[-2,,] ; MULTI-STRING CASE POSSIBLE? JRST TN.MLT ; YES, GO PROCESS RGPRSS: GETYP 0,(AB) ; CHECK ARG TYPE @@ -671,13 +653,11 @@ RGPRSS: GETYP 0,(AB) ; CHECK ARG TYPE PUSHJ P,FLSSP ; FLUSH LEADING SPACES PUSHJ P,RGPRS1 ADD AB,[2,,2] - MOVEM AB,ABSAV(TB) CHKLST: JUMPGE AB,CPOPJ1 SKIPGE (P) ; IF FROM OPEN, ALLOW ONE MORE POPJ P, PMOVEM (AB),T.XT(TB) ADD AB,[2,,2] - MOVEM AB,ABSAV(TB) JUMPL AB,TMA CPOPJ1: AOS (P) POPJ P, @@ -712,7 +692,6 @@ TN.SN2: HRRZ B,-3(TP) TN.SN3: CAIE A,"> ; SKIP IF WINS JRST ILLNAM PUSHJ P,TN.CPS ; COPY TO NEW STRING - HLLOS T.SPDL(TB) MOVEM A,T.SNM(TB) MOVEM B,T.SNM+1(TB) @@ -822,7 +801,6 @@ TN.ML1: GETYP 0,(A) ; IS THIS ARG OF RIGHT TYPE HRLI 0,(AB) BLT 0,(A) ; BLT 'EM IN ADD AB,[10,,10] ; SKIP THESE GUYS - MOVEM AB,ABSAV(TB) JRST CHKLST ] @@ -948,14 +926,12 @@ ODSK: MOVE B,T.CHAN+1(TB) ; GET CHANNEL JUMPE 0,GTJLOS ; FIND OUT WHAT HAPPENED MOVE B,T.CHAN+1(TB) ; GET CHANNEL - HRRZ 0,-4(B) ; FUNNY MODE BITS HRRZM A,CHANNO(B) ; SAVE IT ANDI A,-1 ; READ Y TO DO OPEN MOVSI B,440000 ; USE 36. BIT BYES HRRI B,200000 ; ASSUME READ -; CAMN C,[SIXBIT /READB/] -; TRO B,2000 ; TURN ON THAWED IF READB - IOR B,0 + CAMN C,[SIXBIT /READB/] + TRO B,2000 ; TURN ON THAWED IF READB TRNE D,1 ; SKIP IF READ HRRI B,300000 ; WRITE BIT HRRZ 0,FSAV(TB) ; SEE IF REF DATE HACK @@ -1042,9 +1018,6 @@ STSTK: PUSH TP,$TCHAN MOVE D,[440700,,1(E)] ; BYTE POINTER TO IT MOVEI A,RDEVIC-1(B) PUSHJ P,MOVSTR ; FLUSH IT ON - HRRZ A,T.SPDL(TB) - JUMPN A,NLNMS ; USER GAVE NAME, USE IT (CAREFUL, RELIES ON - ; A BEING NON ZERO) PUSH P,B PUSH P,C MOVEI A,0 ; HERE TO SEE IF THIS IS REALLY L.N. @@ -1054,7 +1027,7 @@ STSTK: PUSH TP,$TCHAN MOVNI A,1 ; NOT A LOGICAL NAME POP P,C POP P,B -NLNMS: MOVEI 0,": + MOVEI 0,": IDPB 0,D JUMPE A,ST.NM1 ; LOGICAL NAME, FLUSH SNAME HRRZ A,RSNAME-1(B) ; ANY SNAME AT ALL? @@ -1479,20 +1452,7 @@ ONET2: MOVEI A,". CAIE 0,TFIX JRST WRONGT MOVE 0,RSNAME(B) - CAIG 0,377 ;NEW STYLE 32 BIT HOST NUMBER? - JRST ONET2A -;CONVERT HOSTS2 HOST NUMBERS TO INTERNET (TOPS-20) HOST NUMBERS - MOVEI A,0 - LDB B,[001100,,0] ;HOST NUMBER: 1.1-1.9 -> - DPB B,[201000,,A] ; 2.8-3.6 - LDB B,[111100,,0] ;IMP LOW BITS: 2.1-2.9 -> - DPB B,[001000,,A] ; 1.1-1.8 - LDB B,[221100,,0] ;IMP HIGH BITS: 3.1-3.9 -> - DPB B,[101000,,A] ; 1.9-2.7 - LDB B,[331100,,0] ;NETWORK: 4.1-4.9 -> - DPB B,[301000,,A] ; 3.7-4.5 - MOVE 0,A -ONET2A: PUSHJ P,FIXSTK + PUSHJ P,FIXSTK JRST ONET4 MOVE B,T.CHAN+1(TB) MOVEI A,"- @@ -1590,17 +1550,8 @@ ONET6: MOVSI A,1 MOVEM C,BUFRIN(B) MOVSI 0,TUVEC HLLM 0,BUFRIN-1(B) - MOVE B,CHANNO(B) ; GET JFN - MOVEI A,4 ; CODE FOR GTNCP - MOVEI C,1(P) - ADJSP P,4 ; ROOM FOR DATA - MOVE D,[-4,,1] ; GET FHOST, LOC SOC, F SOC - GTNCP - FATAL NET LOSSAGE ; GET STATE - MOVE B,(P) - MOVE D,-1(P) - MOVE C,-3(P) - ADJSP P,-4 + MOVE A,CHANNO(B) ; GET JFN + GDSTS ; GET STATE MOVE E,T.CHAN+1(TB) MOVEM D,RNAME2(E) MOVEM C,RSNAME(E) @@ -1676,17 +1627,9 @@ ONETCH: IDPB A,C JRST (D) INSTAT: MOVE E,B - MOVE B,CHANNO(B) ; GET JFN - MOVEI A,4 ; CODE FOR GTNCP - MOVEI C,1(P) - ADJSP P,4 ; ROOM FOR DATA - MOVE D,[-4,,1] ; GET FHOST, LOC SOC, F SOC - GTNCP - FATAL NET LOSSAGE ; GET STATE - MOVE B,(P) - MOVE D,-1(P) - MOVE C,-3(P) - ADJSP P,-4 + MOVE A,CHANNO(E) + GDSTS + LSH B,-32. MOVEM D,RNAME2(E) ; UPDATE FOREIGN SOCHKET MOVEM C,RSNAME(E) ; AND HOST MOVE C,BUFRIN(E) @@ -1933,13 +1876,7 @@ IFE ITS,[ HLLM A,BUFRIN-1(D) MOVEI A,177 ;SET ERASER TO RUBOUT MOVEM A,ERASCH(B) -IFE ITS,[ - MOVEI A,25 - MOVEM A,KILLCH(B) -] -IFN ITS,[ SETZM KILLCH(B) ;NO KILL CHARACTER NEEDED -] MOVEI A,33 ;BREAKCHR TO C.R. MOVEM A,BRKCH(B) MOVEI A,"\ ;ESCAPER TO \ @@ -2281,9 +2218,9 @@ IFE ITS, MOVE B,@FETBL(E) IFN ITS, PUSHJ P,STRTO6 ; CONVERT TO SIXBIT IFE ITS,[ -; PUSH P,E -; PUSHJ P,ADDNUL ; NOT NEEDED, SINCE CONSED INTO ONE STRING-TAA -; POP P,E + PUSH P,E + PUSHJ P,ADDNUL + POP P,E PUSH TP,A ; DEFAULT TYPE AND VALUE GIVEN BY USER PUSH TP,B ; IN VALUE OF DEV, SNM, NM1, NM2 ] @@ -2416,7 +2353,6 @@ IFE ITS,[ GTJFN ; GET A JFN JRST TDLLOS ; LOST ADD AB,[2,,2] ; PAST ARG - MOVEM AB,ABSAV(TB) JUMPL AB,RNM1 ; GO TRY FOR RENAME MOVE P,(TP) ; RESTORE P STACK MOVEI C,(A) ; FOR RELEASE @@ -2474,7 +2410,6 @@ RNM1: JUMPGE AB,TMA ; IF ARGS EXHAUSTED, MUST BE TOO MUCH STRING CAME C,IMQUOTE TO JRST WRONGT ; NO, LOSE ADD AB,[2,,2] ; BUMP PAST "TO" - MOVEM AB,ABSAV(TB) JUMPGE AB,TFA IFN ITS,[ MOVEM P,T.SPDL+1(TB) ; SAVE NEW P-BASE @@ -2504,7 +2439,6 @@ IFN ITS,[ ; HERE FOR RENAME WHILE OPEN FOR WRITING CHNRNM: ADD AB,[2,,2] ; NEXT ARG - MOVEM AB,ABSAV(TB) JUMPGE AB,TFA MOVE B,-1(AB) ; GET CHANNEL SKIPN CHANNO(B) ; SKIP IF OPEN @@ -2517,7 +2451,7 @@ CHNRNM: ADD AB,[2,,2] ; NEXT ARG CAMN A,[SIXBIT /PRINTB/] JRST CHNRN1 CAMN A,[SIXBIT /PRINAO/] - JRST CHNRN1 + JRST CHNRM1 CAME A,[SIXBIT /PRINTO/] JRST WRONGD @@ -3280,10 +3214,9 @@ WRDEV: ERRUUO EQUOTE NON-DSK-DEVICE MFUNCTION PRINTB,SUBR - ENTRY + ENTRY 2 PBFL: PUSH P,. ; PUSH NON-ZERONESS - MOVEI A,-7 JRST BINI1 MFUNCTION READB,SUBR @@ -3291,31 +3224,26 @@ MFUNCTION READB,SUBR ENTRY PUSH P,[0] - MOVEI A,-11 -BINI1: HLRZ 0,AB - CAILE 0,-3 - JRST TFA - CAIG 0,(A) - JRST TMA + HLRZ 0,AB + CAIG 0,-3 + CAIG 0,-7 + JRST WNA - GETYP 0,(AB) ; SHOULD BE UVEC OR STORE +BINI1: GETYP 0,(AB) ; SHOULD BE UVEC OR STORE + CAIN 0,TUVEC + JRST BINI2 CAIE 0,TSTORAGE - CAIN 0,TUVEC - JRST BINI2 - CAIE 0,TCHSTR - CAIN 0,TBYTE - JRST BYTOK - JRST WTYP1 ; ELSE LOSE + JRST WTYP1 ; ELSE LOSE BINI2: MOVE B,1(AB) ; GET IT HLRE C,B SUBI B,(C) ; POINT TO DOPE GETYP A,(B) PUSHJ P,SAT" ; GET ITS ST.ALOC.TYPE CAIE A,S1WORD - JRST WTYP1 -BYTOK: GETYP 0,2(AB) + JRST WTYP1 + GETYP 0,2(AB) CAIE 0,TCHAN ; BETTER BE A CHANNEL - JRST WTYP2 + JRST WTYP2 MOVE B,3(AB) ; GET IT ; MOVEI B,DIRECT-1(B) ; GET DIRECTION OF ; PUSHJ P,CHRWRD ; INTO 1 WORD @@ -3332,36 +3260,25 @@ BYTOK: GETYP 0,2(AB) MOVE E,PBFL ; JUMPL E,WRONGD ; LOSER CAME E,(P) ; CHECK WINNGE - JRST WRONGD + JRST WRONGD MOVE B,3(AB) ; GET CHANNEL BACK SKIPN A,IOINS(B) ; OPEN? - PUSHJ P,OPENIT ; LOSE + PUSHJ P,OPENIT ; LOSE CAMN A,[JRST CHNCLS] - JRST CHNCLS ; LOSE, CLOSED + JRST CHNCLS ; LOSE, CLOSED JUMPN E,BUFOU1 ; JUMP FOR OUTPUT - MOVEI C,0 CAML AB,[-5,,] ; SKIP IF EOF GIVEN - JRST BINI5 + JRST BINI5 MOVE 0,4(AB) MOVEM 0,EOFCND-1(B) MOVE 0,5(AB) MOVEM 0,EOFCND(B) - CAML AB,[-7,,] - JRST BINI5 - GETYP 0,6(AB) - CAIE 0,TFIX - JRST WTYP - MOVE C,7(AB) BINI5: SKIPE LSTCH(B) ; INDICATES IF EOF HIT - JRST BINEOF - GETYP 0,(AB) ; BRANCH BASED ON BYTE SIZE - CAIE 0,TCHSTR - CAIN 0,TBYTE - JRST BYTI + JRST BINEOF MOVE A,1(AB) ; GET VECTOR PUSHJ P,PGBIOI ; READ IT HLRE C,A ; GET COUNT DONE - HLRE D,1(AB) ; AND FULL COUNT + HLRE D,1(AB) ; AND FULL COUNT SUB C,D ; C=> TOTAL READ ADDM C,ACCESS(B) JUMPGE A,BINIOK ; NOT EOF YET @@ -3370,99 +3287,17 @@ BINIOK: MOVE B,C MOVSI A,TFIX ; RETURN AMOUNT ACTUALLY READ JRST FINIS -BYTI: -IFE ITS,[ - MOVE A,1(B) - RFBSZ - FATAL RFBSZ-LOST - PUSH P,B - LDB B,[300600,,1(AB)] - SFBSZ - FATAL SFBSZ-LOST - MOVE B,3(AB) - HRRZ A,(AB) ; GET BYTE STRING LENGTH - MOVNS A - MOVSS A ; MAKE FUNNY BYTE POINTER - HRR A,1(AB) - ADDI A,1 - PUSH P,C - HLL C,1(AB) ; GET START OF BPTR - MOVE D,[SIN] - PUSHJ P,PGBIOT - HLRE C,A ; GET COUNT DONE - POP P,D - SKIPN D - HRRZ D,(AB) ; AND FULL COUNT - ADD D,C ; C=> TOTAL READ - LDB E,[300600,,1(AB)] - MOVEI A,36. - IDIVM A,E - IDIVM D,E - ADDM E,ACCESS(B) - SKIPGE C ; NOT EOF YET - SETOM LSTCH(B) - MOVE A,1(B) - POP P,B - SFBSZ - FATAL SFBSZ-LOST - MOVE C,D - JRST BINIOK -] BUFOU1: SKIPE BUFSTR(B) ; ANY BUFFERS AROUND? - PUSHJ P,BFCLS1 ; GET RID OF SAME - MOVEI C,0 - CAML AB,[-5,,] - JRST BINO5 - GETYP 0,4(AB) - CAIE 0,TFIX - JRST WTYP - MOVE C,5(AB) -BINO5: MOVE A,1(AB) - GETYP 0,(AB) ; BRANCH BASED ON BYTE SIZE - CAIE 0,TCHSTR - CAIN 0,TBYTE - JRST BYTO - PUSH P,C + PUSHJ P,BFCLS1 ; GET RID OF SAME + MOVE A,1(AB) PUSHJ P,PGBIOO - POP P,C - JUMPE C,.+3 HLRE C,1(AB) MOVNS C - ADDM C,ACCESS(B) -BYTO1: MOVE A,(AB) ; RET VECTOR ETC. + addm c,ACCESS(B) + MOVE A,(AB) ; RET VECTOR ETC. MOVE B,1(AB) JRST FINIS -BYTO: -IFE ITS,[ - MOVE A,1(B) - RFBSZ - FATAL RFBSZ-FAILURE - PUSH P,B - LDB B,[300600,,1(AB)] - SFBSZ - FATAL SFBSZ-FAILURE - MOVE B,3(AB) - HRRZ A,(AB) ; GET BYTE SIZE - MOVNS A - MOVSS A ; MAKE FUNNY BYTE POINTER - HRR A,1(AB) - ADDI A,1 ; COMPENSATE FOR PGBIOT DOING THE WRONG THING - HLL C,1(AB) ; GET START OF BPTR - MOVE D,[SOUT] - PUSHJ P,PGBIOT - LDB D,[300600,,1(AB)] - MOVEI C,36. - IDIVM C,D - HRRZ C,(AB) - IDIVI C,(D) - ADDM C,ACCESS(B) - MOVE A,1(B) - POP P,B - SFBSZ - FATAL SFBSZ-FAILURE - JRST BYTO1 -] BINEOF: PUSH TP,EOFCND-1(B) PUSH TP,EOFCND(B) @@ -4010,10 +3845,8 @@ IFE ITS,[ IFE ITS, MOVEI C,-1 JUMPGE A,BUFGOO ;SKIPS IF IOT COMPLETED...FIX UP CHANNEL -IFN ITS,[ MOVEI C,1 ; MAKE SURE LAST EOF REALLY ENDS IT ANDCAM C,-1(A) -] MOVSI C,014000 ; GET A ^C MOVEM C,(A) ;FAKE AN EOF @@ -4021,11 +3854,6 @@ IFE ITS,[ HLRE C,A ; HOW MUCH LEFT ADDI C,BUFLNT ; # OF WORDS TO C IMULI C,5 ; TO CHARS - PUSH P,0 - MOVEI 0,1 - SKIPE C - ANDCAM 0,-1(1) - POP P,0 MOVE A,-2(B) ; GET BITS TRNE A,C.BIN ; CAN'T HELP A BINARY CHANNEL JRST BUFGOO @@ -4108,7 +3936,6 @@ PGBUFI: MOVE D,[SIN] SUBI A,1 ; FOR 440700 AND 010700 START SUBI A,BUFLNT-1 ; CALCULATE PNTR TO BEG OF BUFFER HRLI A,-BUFLNT ; IOT (AOBJN) PNTR IN A - MOVSI C,004400 IFN ITS,[ PGBIOO: PGBIOI: MOVE D,A ; COPY FOR LATER @@ -4139,9 +3966,8 @@ IFE ITS,[ PGBIOT: PUSH P,D PUSH TP,$TCHAN PUSH TP,B - PUSH P,C - HRRZS (P) - HRRI C,-1(A) ; POINT TO BUFFER + MOVEI C,-1(A) ; POINT TO BUFFER + HRLI C,004400 HLRE D,A ; XTRA POINTER MOVNS D HRLI D,TCHSTR @@ -4155,9 +3981,6 @@ PGBIOT: PUSH P,D MOVE A,CHANNO(B) ; FILE JFN MOVE B,C HLRE C,D ; - COUNT TO C - SKIPE (P) - MOVN C,(P) ; REAL DESIRED COUNT - SUB P,[1,,1] ENABLE XCT (P) ; DO IT TO IT DISABLE @@ -4183,24 +4006,17 @@ FIXACS: PUSH P,PVP PGBIOO: SKIPA D,[SOUT] PGBIOI: MOVE D,[SIN] - HRLI C,004400 JRST PGBIOT -DOIOTO: PUSH P,[SOUT] -DOIOTC: PUSH P,B +DOIOTO: PUSH P,D PUSH P,C - EXCH A,B - MOVE A,CHANNO(A) - HLRE C,B - HRLI B,444400 - XCT -2(P) - HRL B,C - MOVE A,B + PUSHJ P,PGBIOO DOIOTE: POP P,C - POP P,B - SUB P,[1,,1] + POP P,D POPJ P, -DOIOTI: PUSH P,[SIN] - JRST DOIOTC +DOIOTI: PUSH P,D + PUSH P,C + PUSHJ P,PGBIOI + JRST DOIOTE ] ; OUTPUT BUFFERING ROUTINES SIMILAR TO INPUT BUFFERING ROUTINES OF PREV PAGE @@ -4473,9 +4289,9 @@ GTINTC: PUSH TP,$TCHAN ;SAVE THE CHANNEL...WE'LL CLOBBER B PUSH P,D PUSH P,E PUSH P,0 - PUSH TP,$TCHAN - PUSH TP,B - .MCALL 1,INTFCN-1(B) + PUSH TP,INTFCN-1(B) + PUSH TP,INTFCN(B) + MCALL 1,APPLY GETYP A,A CAIE A,TCHRS JRST BADRET @@ -4502,11 +4318,11 @@ PTINTC: PUSH TP,$TCHAN ;SAVE THE CHANNEL...WE'LL CLOBBER B PUSH P,D PUSH P,E PUSH P,0 + PUSH TP,INTFCN-1(B) ;PUSH TYPE OF GIVEN OBJ + PUSH TP,INTFCN(B) ;PUSH THE SUPPLIED FUNCTION (OR SUBR ETC.) PUSH TP,$TCHRS ;PUSH THE TYPE "CHARACTER" PUSH TP,A ;PUSH THE CHAR - PUSH TP,$TCHAN ;PUSH THE CHANNEL - PUSH TP,B - .MCALL 2,INTFCN-1(B) ;APPLY THE FUNCTION TO THE CHAR + MCALL 2,APPLY ;APPLY THE FUNCTION TO THE CHAR JRST INTRET diff --git a/src/mudsys/gchack.46 b/src/mudsys/gchack.45 similarity index 99% rename from src/mudsys/gchack.46 rename to src/mudsys/gchack.45 index b2b86f63..804b8657 100644 --- a/src/mudsys/gchack.46 +++ b/src/mudsys/gchack.45 @@ -113,10 +113,8 @@ UHACK: CAMN A,[PUSHJ P,SBSTIS] ADD C,TYPVEC+1 HRRZ C,(C) ANDI C,SATMSK ; GOT ITS SAT - CAIE C,SCHSTR ; COULD BE SPNAME - JRST .+3 CAIE C,SATOM ; DON'T BOTHER IF NOT ALL ATOMS - JRST VHACK1 + JRST VHACK1 MOVEI C,(D) UHACKX: PUSH P,C ; ATFIX CLOBBERS C SUBI B,1 ; BACK OFF @@ -537,4 +535,4 @@ PURE END - \ No newline at end of file +  \ No newline at end of file diff --git a/src/mudsys/initm.374 b/src/mudsys/initm.371 similarity index 98% rename from src/mudsys/initm.374 rename to src/mudsys/initm.371 index 6eb9c86b..1134e595 100644 --- a/src/mudsys/initm.374 +++ b/src/mudsys/initm.371 @@ -12,7 +12,6 @@ SYSQ XBLT==123000,, GCHN==0 IFE ITS,[ -EXPUNGE .FATAL FATINS==.FATAL" SEVEC==104000,,204 .INSRT STENEX > @@ -22,7 +21,7 @@ IMPURE OBSIZE==151. ;DEFAULT OBLIST SIZE -.LIFL +.LIFG .LOP .VALUE .ELDC @@ -462,14 +461,7 @@ PURIMP: MOVE A,FRETOP HRL B,A DOTCAL CORBLK,[[1000,,0],[1000,,-1],B] FATAL INITM -- CAN'T FLUSH MIDDLE CORE - MOVE B,RHITOP - SUBI B,1 - ASH B,-10. - MOVEI A,PHIBOT - SUB A,B - SUBI A,1 - HRLS A - HRRI A,PHIBOT + MOVE A,[-<400-PHIBOT>,,PHIBOT] DOTCAL CORBLK,[[1000,,210000],[1000,,-1],A] FATAL INITM -- CAN'T PURIFY HIGH CORE ] @@ -873,7 +865,7 @@ PVALM: HLRZ 0,(B) VECTGO DUMMY1 IRP A,,[FINIS,SPECBIND,WNA,WRONGT,$TLOSE,CALER1,POPUNW -ILOC,IGLOC,IDVAL,IDVAL1,ILVAL,IGVAL,INTFLG,LCKINT,ONINT,TYPLOO,TDEFER +ILOC,IGLOC,IDVAL,ILVAL,IGVAL,INTFLG,LCKINT,ONINT,TYPLOO,TDEFER IFALSE,UNAS,UNBOU,RCALL,SEGMNT,SEGLST,NUMPRI,OPSYS,SSPEC1,COMPERR MAKACT,MAKENV,BFRAME,TTP,TTB,$TTP,$TTB,MAKTUP,TPALOC,IBIND,SSPECS CILVAL,CISET,CIGVAL,CSETG,IBLOK1,IBLOCK,CLLOC,CGLOC,CASSQ,CGASSQ @@ -891,16 +883,10 @@ CGBOUN,IIGLOC,MAKTU2,CIFLTZ,CIUPRS,SAT,TFA,WTYP,NAPT,PTYPE,APLQ,PURBOT,GCSBOT GLOTOP,TYPVEC,1STEPR,LSTRES,NODES,MAINPR,CVTYPE,CSPNAM,CSBSTR,INTBCK,CICRLF CERR1,CERR2,CERR3,CANDP,CORP,CSQUTA,CIMAGE,ATOSQ,CFILLE,CPRTYC,FMPOPJ TD.PUT,TD.GET,TD.LNT,CBYTES,MARK,MARK2G,TD.AGC,DSTORE,RCLV,NUMSAT,RMCALL,NPRFLG -NSPOPJ,NFPOPJ,PURCLN,FRETOP,PURVEC,SWAPGC,VECBOT] +NSPOPJ,NFPOPJ,PURCLN,FRETOP,PURVEC,SWAPGC,NTTYPE,CLRSTR] .GLOBAL A ADDSQU A TERMIN -IFE ITS,[ -IRP A,,[NTTYPE,CLRSTR] - .GLOBAL A - ADDSQU A -TERMIN -] VECRET diff --git a/src/mudsys/interr.426 b/src/mudsys/interr.419 similarity index 99% rename from src/mudsys/interr.426 rename to src/mudsys/interr.419 index 32f1bc2c..5473cabf 100644 --- a/src/mudsys/interr.426 +++ b/src/mudsys/interr.419 @@ -3,8 +3,6 @@ TITLE INTERRUPT HANDLER FOR MUDDLE RELOCATABLE -.SYMTAB 3337. - ;C. REEVE APRIL 1971 .INSRT MUDDLE > @@ -77,7 +75,7 @@ MONITOR .GLOBAL MSGTYP,MTYI,UPLO,IFLUSH,OCLOS,ERRET,MASK1,MASK2 ;SUBROUTINES USED .GLOBAL ERROR,LISTEN,ECHO,RRESET,MTYO,GCHAPN,P.CORE,P.TOP,QUEUES,NOTTY,TTYOP2,TTICHN -.GLOBAL INTHLD,BNDV,SPECBE,DEMFLG,PLODR +.GLOBAL INTHLD,BNDV,SPECBE,DEMFLG ; GLOBALS FOR PRE-AGC INTERRUPT @@ -192,7 +190,7 @@ REPEAT NCHRS,SETZ HCHAR BLOCK NINT-NNETS-NCHRS-UINTS-36.-1 REPEAT NNETS,SETZ HNET REPEAT UINTS,SETZ USRINT -LOC EXTINT+NINT-11. +LOC EXTINT+NINT-12. REPEAT 3,SETZ HIOC LOC EXTINT+NINT-RLCHN-1 SETZ HREAL @@ -402,12 +400,7 @@ TNXIOC: MOVEM A,TSAVA JRST TNXCHN TNXFUL: MOVEM A,TSAVA - SKIPN PLODR - JRST TNXFU1 - FATAL DISK FULL IN PURE FIXUP, CONTINUE TO RETRY - JRST INTDON - -TNXFU1: MOVSI A,(1_<35.-12.>) + MOVSI A,(1_<35.-12.>) TNXCHN: IORM A,PIRQ2 MOVEM B,TSAVB @@ -424,8 +417,6 @@ DOINT: SKIPE INTHLD ; GLOBAL LOCK ON INTS PUSH P,INTFLG DOINTE: SKIPE ONINT ; ANY FUDGE? XCT ONINT ; YEAH, TRY ONE - PUSH P,ONINT - SETZM ONINT EXCH 0,LCKINT ; RELATIVIZE PC IF FROM RSUBR IFE ITS, TLZ 0,777740 ; KILL EXCESS BITS PUSH P,0 ; AND SAVE @@ -445,14 +436,14 @@ IFE ITS,[ EXCH 0,(P) ; AND RESTORE TO STACK DONREL: EXCH 0,LCKINT ; GET BACK SAVED 0 SETZM INTFLG ;DISABLE - AOS -2(P) ;INCR SAVED FLAG + AOS -1(P) ;INCR SAVED FLAG ;NOW SAVE WORKING ACS PUSHJ P,SAVACS - HLRZ A,-2(P) ; HACK FUNNYNESS FOR MPV/ILOPR + HLRZ A,-1(P) ; HACK FUNNYNESS FOR MPV/ILOPR SKIPE A - SETZM -2(P) ; REALLY DISABLED + SETZM -1(P) ; REALLY DISABLED DIRQ: MOVE A,PIRQ ;NOW SATRT PROCESSING JFFO A,FIRQ ;COUNT BITS AND GO @@ -470,7 +461,6 @@ IFN ITS,[ .SUSET [.SPICLR,,[0]] ; DISABLE INTS ] POP P,LCKINT - POP P,ONINT POP P,INTFLG SETZM INTHLD ; RE-ENABLE THE WORLD IFN ITS,[ @@ -1030,7 +1020,6 @@ RETRLT: MOVE A,(AB) TIMERR: MOVNI A,1 PUSHJ P,TGFALS JRST FINIS -] RLTPER: SKIPGE B,RLTSAV JRST IFALSE @@ -1586,7 +1575,7 @@ IFE ITS, PUSHJ P,TGFALS DIRQ1: SUB TP,[6,,6] JRST DIRQ - +] ; HANDLE INFERIOR KNOCKING AT THE DOOR HINF: @@ -1708,7 +1697,7 @@ HCHAR: HRRZ A,CHRS-36.(B) MCALL 3,INTERRUPT JRST DIRQ -HNET: SKIPLE A,NETJFN-NINT+NNETS+UINTS+1(B) +HNET: SKIPLE A,NETJFN-NINT+NNETS+UINTS(B) JRST HNET1 SUBI B,36.-NNETS-UINTS-NCHRS JUMPE A,DIRQ @@ -2742,7 +2731,7 @@ ITTIL1: LSH 0,-1 DOSIR: MOVE B,[-36.,,CHNTAB] - MOVSI 0,<1_12.>+FSEG + MOVSI 0,1_12. HLLM 0,(B) AOBJN B,.-1 diff --git a/src/mudsys/ldgc.101 b/src/mudsys/ldgc.100 similarity index 99% rename from src/mudsys/ldgc.101 rename to src/mudsys/ldgc.100 index a0cc596a..d2f1c6a5 100644 --- a/src/mudsys/ldgc.101 +++ b/src/mudsys/ldgc.100 @@ -481,7 +481,6 @@ ILDBLK: SIXBIT / &DSK/ ] -IFE ITS,[ NDEBUG: SETZM GCDEBU CAIA DEBUGC: SETOM GCDEBU @@ -490,7 +489,6 @@ DEBUGC: SETOM GCDEBU CLOSF JFCL POPJ P, -] IMPURE GCDEBU: 0 diff --git a/src/mudsys/main.353 b/src/mudsys/main.350 similarity index 99% rename from src/mudsys/main.353 rename to src/mudsys/main.350 index 3c529250..16369e5d 100644 --- a/src/mudsys/main.353 +++ b/src/mudsys/main.350 @@ -2,8 +2,6 @@ TITLE MAIN LOOP AND GLOBALLY REFERENCED SUBROUTINES RELOCA -.SYMTAB 3337. - .GLOBAL TBINIT,PIDSTO,PROCID,PTIME,GCPDL,PBASE,TYPTOP,RERR,FRMSTK,EMERGE .GLOBAL PDLBUF,INTINT,START,SWAP,ICR,SPBASE,TPBASE,TPBAS,CURPRI,CHFINI,MKTBS .GLOBAL TOPLEVEL,INTOBL,INITIA,ERROBL,MAINPR,RESFUN,STATUS,TYPVEC,ROOT,TTICHN,TTOCHN @@ -64,10 +62,10 @@ STP: MOVEI C,0 MOVE PVP,PVSTOR+1 MOVE B,TBINIT+1(PVP) ;POINT INTO STACK AT START PUSHJ P,CHUNW ; LEAVE WHILE DOING UNWIND CHECK - XMOVEI E,TOPLEV + MOVEI E,TOPLEV MOVEI A,TFALSE ; IN CASE FALLS OFF PROCESS MOVEI B,0 - MOVEM E,-1(TB) + HRRM E,-1(TB) JRST CONTIN IMQUOTE TOPLEVEL @@ -696,11 +694,10 @@ MFUNCTION HANG,SUBR JUMPGE AB,HANG1 ; NO PREDICATE CAMGE AB,[-3,,] JRST TMA - PUSH TP,(AB) - PUSH TP,1(AB) - PUSHJ P,CHKPRD REHANG: MOVE A,[PUSHJ P,CHKPRH] MOVEM A,ONINT ; CHECK PREDICATE AFTER ANY INTERRUPT + PUSH TP,(AB) + PUSH TP,1(AB) HANG1: ENABLE ;LET OURSELVES BE INTERRUPTED OUT PUSHJ P,%HANG DISABLE ;PREVENT INTERRUPTS AT RANDOM TIMES @@ -724,7 +721,6 @@ MFUNCTION SLEEP,SUBR JRST TMA PUSH TP,2(AB) PUSH TP,3(AB) - PUSHJ P,CHKPRD SLEEP1: GETYP 0,(AB) CAIE 0,TFIX JRST .+5 @@ -767,7 +763,7 @@ CHKPRS: PUSH P,B HANGP: SKIPA B,[REHANG] SLEEPP: MOVEI B,RESLEE PUSH P,B -CHKPRD: PUSH P,A + PUSH P,A DISABLE PUSH TP,(TB) PUSH TP,1(TB) @@ -2027,7 +2023,7 @@ GCPDL: -GCPLNT,,GCPDL PURE -MUDSTR: ASCII /MUDDLE ‡¯ +MUDSTR: ASCII /MUDDLE / STRNG: -1 -1 -1 diff --git a/src/mudsys/mappur.163 b/src/mudsys/mappur.146 similarity index 96% rename from src/mudsys/mappur.163 rename to src/mudsys/mappur.146 index 28ccc9c0..3d0015ed 100644 --- a/src/mudsys/mappur.163 +++ b/src/mudsys/mappur.146 @@ -12,7 +12,6 @@ XJRST==JRST 5, .GLOBAL OPSYS,SJFNS,MULTSG,PURBTB,SFIX,NSEGS .GLOBAL C%11,C%22,C%33,C%44,C%55,C%66,C%0,C%1,C%2,C%3,C%M1,C%M2,C%M10 .GLOBAL C%M20,C%M30,C%M40,C%M60 -.GLOBAL MAPJFN,DIRCHN .INSRT MUDDLE > SPCFXU==1 @@ -246,7 +245,6 @@ SLFOUN: MOVE 0,OFF(P) ; get offset into vector of this guy PLOADD: AOS -NSLOTS(P) ; skip return - MOVE B,FB.PTR(C) MAPLOS: SUB P,[NSLOTS,,NSLOTS] ; flush stack crap SUB TP,C%22 @@ -337,7 +335,6 @@ FXUPGO: MOVE A,(TP) ; pointer to them IFE ITS,[ SKIPN MULTSG JRST FIXMLT -] HRRZ D,B ; this codes gets us running in the correct ; segment ASH D,PGSHFT @@ -560,11 +557,8 @@ IFE ITS,[ MOVEM 0,P.TOP POPJ P, -EPOPJ: -IFE ITS,[ - SKIPE MULTSG +EPOPJ: SKIPE MULTSG POP P,E -] POPJ P, IFE ITS,[ GETPAX: TDZA B,B ; here if other segs ok @@ -587,7 +581,7 @@ IFE ITS,[ MOVN A,NSEGS ; aobjn pntr to table HRLZS A MOVE B,P.TOP -GETPA8: CAMLE B,PURBTB(A) ; if this one is larger (or the same) +GETPA8: CAML B,PURBTB(A) ; if this one is larger JRST GETPA7 MOVE B,PURBTB(A) ; use it MOVEI E,FSEG(A) ; and the segment # @@ -634,8 +628,7 @@ IFE ITS,[ JRST GETPAX -LPGL1: PUSH P,A - PUSH P,[FSEG-1] +LPGL1: PUSH P,[FSEG-1] LPGL2: AOS E,(P) ; count segments MOVE B,NSEGS @@ -666,7 +659,6 @@ LPGL4: POP P,C JRST LPGL2 LPGL3: SUB P,C%11 - POP P,A SKIPE MULTSG PUSHJ P,PURTBU ; update PURBOT in multi case @@ -859,7 +851,7 @@ PURTBU: PUSH P,A HRLZS B MOVE A,PURTOP -PURTB2: CAMGE A,PURBTB(B) +PURTB2: CAMG A,PURBTB(B) JRST PURTB1 MOVE A,PURBTB(B) MOVEM A,PURBOT @@ -961,12 +953,7 @@ IFN ITS,.IOPUSH MAPCH, ; gc uses same channel POP P,C IFN ITS,.IOPOP MAPCH, EXCH C,A -IFE ITS,[ - JUMPL C,.+3 - JUMPL E,GETPAG - JRST GETPAX -] -IFN ITS, JUMPGE C,GETPAG + JUMPGE C,GETPAG ERRUUO EQUOTE NO-MORE-PAGES ; Here to clean up pure space by flushing all shared stuff @@ -975,23 +962,12 @@ PURCLN: SKIPE NOSHUF POPJ P, MOVEI B,EOC HRRM B,PURVEC ; flush chain pointer - MOVE D,PURVEC+1 ; get pointer to table -CLN1: -IFE ITS,[ - SKIPN A,FB.PTR(D) - JRST NOCL - ASH A,-PGSHFT - HRLI A,.FHSLF - RMAP - HLRZS A - CLOSF - JFCL -] -NOCL: SETZM FB.PTR(D) ; zero pointer entry - SETZM FB.AGE(D) ; zero link and age slots - SETZM FB.PGS(D) - ADD D,[ELN,,ELN] ; go to next slot - JUMPL D,CLN1 ; do til exhausted + MOVE B,PURVEC+1 ; get pointer to table +CLN1: SETZM FB.PTR(B) ; zero pointer entry + SETZM FB.AGE(B) ; zero link and age slots + SETZM FB.PGS(B) + ADD B,[ELN,,ELN] ; go to next slot + JUMPL B,CLN1 ; do til exhausted MOVE B,PURBOT ; now return pages SUB B,PURTOP ; compute page AOBJN pointer IFE ITS, SETZM MAPJFN ; make sure zero mapjfn @@ -1101,7 +1077,7 @@ IFE ITS,[ MOVEI F,0 ; seg info SKIPN MULTSG JRST XPLS3 - MOVEI F,FSEG-1 + MOVEI F,FSEG ADD F,NSEGS ASH F,9. XPLS3: MOVE G,E @@ -1793,39 +1769,32 @@ SFIX5: AOBJP C,SFIX4 IORM B,(C) ; fix it JRST SFIX5 -OBLFIX: PUSH P,[-TLN,,TPTR] +OBLFIX: MOVSI B,-OLN ; for checking more ins PUSH P,C - MOVE B,-1(P) - -OBLFXY: PUSH P,1(B) - PUSH P,(B) OBLFI1: AOBJP C,OBLFXX MOVE A,(C) - AOS B,(P) - AND A,(B) - MOVE B,-1(P) - CAME A,(B) + AND A,OMSK(B) + CAME A,OINS(B) JRST OBLFXX - AOBJP B,DOOBFX - MOVEM B,-1(P) - JRST OBLFI1 + AOBJN B,OBLFI1 + JRST DOOBFX -OBLFXX: SUB P,C%22 ; for checking more ins - MOVE B,-1(P) - ADD B,C%22 - JUMPGE B,OBLFX1 - MOVEM B,-1(P) +OBLFXX: MOVSI B,-OLN2 ; for checking more ins MOVE C,(P) - JRST OBLFXY +OBLFX1: AOBJP C,OBLFI2 + MOVE A,(C) + AND A,OMSK2(B) + CAME A,OINS2(B) + JRST OBLFI2 + AOBJN B,OBLFX1 INSBP==331100 ; byte pointer for ins field ACBP==270400 ; also for ac INDXBP==220400 -DOOBFX: MOVE C,-2(P) - SUB P,C%44 +DOOBFX: POP P,C MOVEI B,<<(HRRZ)>_<-9>> ; change em DPB B,[INSBP,,(C)] ; SKIPN==>HRRZ LDB A,[ACBP,,(C)] ; get AC field @@ -1844,25 +1813,14 @@ DOOBFX: MOVE C,-2(P) MOVEM A,3(C) ADD C,C%11 NOATVP: TLC B,(CAMG#HRLI) ; change CAMG to HRLI (preserving AC) - HRRZ A,4(C) ; see if moves in type - CAIE A,$TOBLS - SUB C,[1,,1] ; fudge it HLLOM B,5(C) ; in goes HRLI -1 - CAIE A,$TOBLS ; do we need a skip? - JRST NOOB$ MOVSI B,(CAIA) ; skipper EXCH B,6(C) MOVEM B,7(C) ADD C,[7,,7] JRST SFIX3 -NOOB$: MOVSI B,(JFCL) - MOVEM B,6(C) - ADD C,C%66 - JRST SFIX3 - -OBLFX1: MOVE C,(P) - SUB P,C%22 +OBLFI2: POP P,C JRST SFIX3 ; Here to fixup compiled LENGTH @@ -1870,11 +1828,11 @@ OBLFX1: MOVE C,(P) LFIX: MOVSI B,-LLN ; for checking other LENGTH ins PUSH P,C -LFIX1: AOBJP C,LFIXY +LFIX1: AOBJP C,OBLFI2 MOVE A,(C) AND A,LMSK(B) CAME A,LINS(B) - JRST LFIXY + JRST OBLFI2 AOBJN B,LFIX1 POP P,C ; restore code pointer @@ -1897,9 +1855,6 @@ LFIX1: AOBJP C,LFIXY ADD C,C%44 JRST SFIX3 -LFIXY: POP P,C - JRST SFIX3 - ; Fixup a CASE dispatch CFIX: LDB A,[ACBP,,(C)] @@ -1918,8 +1873,7 @@ LFIXY: POP P,C ADD B,(P) ; point to code to change CFIXLP: HLRZ A,(B) ; check one out - TRZ A,400000 ; kill bit - CAIE A,M ; check for just index (or index with SETZ) + CAIE A,M ; check for just index JRST SFIX3 MOVEI A,(JRST (M)) HRLM A,(B) @@ -1950,26 +1904,10 @@ FOO OINS,OLN,OMSK,[[,IMSK],[,IMSK],[MOVE,AIMSK] [,AIMSK],[,IMSK] [,AIMSK],[MOVEI,AIMSK]] -FOO OINS3,OLN3,OMSK3,[[,IMSK],[,IMSK],[MOVE,AIMSK] - [,IMSK],[MOVEI,AIMSK]] - FOO OINS2,OLN2,OMSK2,[[,IMSK],[,IMSK],[,AIMSK] [MOVE,AIMSK],[,AIMSK],[,IMSK] [,AIMSK],[MOVEI,AIMSK]] -FOO OINS4,OLN4,OMSK4,[[,IMSK],[,IMSK],[,AIMSK] - [MOVE,AIMSK],[,IMSK],[MOVEI,AIMSK]] - -TPTR: -OLN,,OINS - OMSK-1 - -OLN2,,OINS2 - OMSK2-1 - -OLN3,,OINS3 - OMSK3-1 - -OLN4,,OINS4 - OMSK4-1 -TLN==.-TPTR - FOO LINS,LLN,LMSK,[[,AIMSK],[,AIMSK],[,IMSK] [,<-1,,777760>]] diff --git a/src/mudsys/muddle.347 b/src/mudsys/muddle.346 similarity index 99% rename from src/mudsys/muddle.347 rename to src/mudsys/muddle.346 index a7504a55..b52d7f62 100644 --- a/src/mudsys/muddle.347 +++ b/src/mudsys/muddle.346 @@ -335,7 +335,7 @@ NIL"=0 ;END OF LIST MARKER IF1 [ DEFINE SYSQ - ITS==1 + ITS==0 ; IFE <<<.AFNM1>_-24.>->,ITS==0 IFN ITS,[PRINTC /ITS VERSION /] @@ -460,7 +460,7 @@ TERMIN ] -RMT [EXPUNGE GENERAL,NUMSAT +RMT [EXPUNGE GENERAL,NUMSTA ] DEFINE XPUNGR A @@ -578,7 +578,7 @@ TYPMAK SOFFS,[[OFFS,OFFSET]] IFN MAIN,[RMT [LOC SAVE ] ] -IF2,EXPUNGE TYPMAK +IF2,EXPUNGE TYPMAK,DOTYPS RMT [EQUALS XP EXPUNGE IF2,XP STMPLT diff --git a/src/mudsys/mudex.183 b/src/mudsys/mudex.177 similarity index 96% rename from src/mudsys/mudex.183 rename to src/mudsys/mudex.177 index e763624c..0284d992 100644 --- a/src/mudsys/mudex.183 +++ b/src/mudsys/mudex.177 @@ -19,7 +19,7 @@ XJRST==JRST 5, .GLOBAL CERR1,CERR2,CERR3,COMPERR,CALER1,%LDRDO,%MPRDO,SQBLK,SQLOD,SQKIL,GETSQU .GLOBAL SQUPNT,SFRK,IJFNS,GETJS,OPBLK,SJFNS,OPSYS,GCLDBK,ILDBLK,IJFNS1,TILDBL .GLOBAL TBINIT,PVSTOR,SECBLK,PURCLN,NSEGS,INTINT,PURBTB,%CLNCO,OUTRNG -.GLOBAL MULTI,NOMULT,THIBOT,%PURMD +.GLOBAL MULTI,NOMULT,THIBOT .GLOBAL C%11,C%22,C%33,C%44,C%55,C%66,C%0,C%1,C%2,C%3,C%M1,C%M2,C%M10 .GLOBAL C%M20,C%M30,C%M40,C%M60 @@ -99,18 +99,6 @@ CPOPJ: %PURIF: %GETIP: POPJ P, -%PURMD: MOVE A,[MFORK,,THIBOT] - MOVEI 0,777-THIBOT -%PURMX: RPACS - TLNN B,CTWRIT+CTCW ; SKIP IF NOT READ ONLY - TLNN B,CTEXST ; SKIP IF EXISTS (OTHERWISE WE'LL CREATE IT) - JRST .+3 ; SKIP IF NOT READ ONLY - MOVSI B,CTREAD+CTEXEC - SPACS - ADDI A,1 - SOJGE 0,%PURMX - POPJ P, - GETSQU: HRRZ 0,SQUPNT JUMPN 0,CPOPJ JRST SQLOD @@ -699,16 +687,6 @@ MPIN: PUSH P,C ; SAVE B MOVEM A,GCFK1 ; SAVE FORK HANDLE POP P,B ; RESTORE AOBJN PUSHJ P,PROTCT ; PROTECT IMAGE - MOVE A,[MFORK,,THIBOT] - MOVEI 0,777-THIBOT -%SAVLP: RPACS - TLNN B,CTWRIT+CTCW ; SKIP IF NOT READ ONLY - TLNN B,CTEXST ; SKIP IF EXISTS (OTHERWISE WE'LL CREATE IT) - JRST .+3 ; SKIP IF NOT READ ONLY - MOVSI B,CTREAD+CTCW+CTEXEC - SPACS - ADDI A,1 - SOJGE 0,%SAVLP POP P,B ; RESTORE AC POPJ P, @@ -819,7 +797,7 @@ MPINT1: MOVSI A,MFORK ; SET UP ARGS TO RMAP GBINT1: MOVE A,RMPTAB(E) ; GET FILE HANDLE MOVSI B,MFORK ; SET UP INTERPRETER ARG HRRI B,(D) - MOVSI C,CTREAD+CTEXEC + MOVSI C,CTREAD+CTEXEC+CTCW PMAP ; IN IT COMES ADDI E,1 ; INC INDEX AOBJN D,GBINT1 @@ -871,8 +849,6 @@ TWENTY: HRROI A,C ; RESULTS KEPT HERE ADDI C,777 ASH C,-9. ASH E,-9. - SKIPE MULSEC - JRST @[.+1] ; RUN IN SECT 0 CAIG E,1(C) JRST %CLN1 PUSH P,A @@ -892,12 +868,8 @@ TWENTY: HRROI A,C ; RESULTS KEPT HERE %CLN1: POP P,E POP P,C - SKIPN MULSEC - POPJ P, + POPJ P, - XJRST .+1 ; BACK TO SECT 1 - 0 - FSEG,,CPOPJ ; MULTI -- ENTER MULTI SEGMENT MODE ; THIS ROUTINE MAPS EVERYTHING UP AND THEN GOES UP THERE diff --git a/src/mudsys/mudsqu.29 b/src/mudsys/mudsqu.28 similarity index 99% rename from src/mudsys/mudsqu.29 rename to src/mudsys/mudsqu.28 index 92e15ad1..17253f61 100644 --- a/src/mudsys/mudsqu.29 +++ b/src/mudsys/mudsqu.28 @@ -78,7 +78,6 @@ ATOSQ: PUSH P,B IFE ITS,[ SKIPE MULTSG PUSHJ P,@[.+1] ; RUN IN 0 -] MOVE A,SQUPNT ; GET TABLE POINTER MOVE B,[2,,2] CAMN E,1(A) diff --git a/src/mudsys/nfree.54 b/src/mudsys/nfree.53 similarity index 99% rename from src/mudsys/nfree.54 rename to src/mudsys/nfree.53 index dc754685..be431d4f 100644 --- a/src/mudsys/nfree.54 +++ b/src/mudsys/nfree.53 @@ -4,7 +4,6 @@ TITLE MODIFIED AFREE FOR MUDDLE RELOCATABLE .INSRT MUDDLE > -SYSQ .GLOBAL CAFREE,CAFRET,PARNEW,AGC,PARBOT,CODTOP,CAFRE1 .GLOBAL STOGC,STOSTR,CAFRE,ISTOST,STOLST,SAT,ICONS,BYTDOP @@ -140,7 +139,7 @@ CLOOP: CAMG A,(C) ; skip if not big enough CHAVIT: MOVE C,CODTOP MOVE E,PARBOT -IFE ITS, PUSHJ P,%CLNCO ; flush extra pages + PUSHJ P,%CLNCO ; flush extra pages MOVE E,PARBOT ; find amount obtained SUBI E,1 ; dont use a real pair MOVEI C,(E) ; for reset of CODTOP diff --git a/src/mudsys/primit.316 b/src/mudsys/primit.315 similarity index 99% rename from src/mudsys/primit.316 rename to src/mudsys/primit.315 index 4147a23d..5e79bdeb 100644 --- a/src/mudsys/primit.316 +++ b/src/mudsys/primit.315 @@ -1783,15 +1783,7 @@ LSTUF: PUSHJ P,MONCH0 ; CHECK OUT MONITOR BITS MOVEM D,1(B) ; AND VAL POPJ P, -DEFRCY: MOVE E,1(B) ; RECYCLE THIS HANDY DEFER - MOVEM C,(E) - MOVEM D,1(E) - POPJ P, - -DEFSTU: GETYP A,(B) - CAIN A,TDEFER - JRST DEFRCY - PUSH TP,$TLIST +DEFSTU: PUSH TP,$TLIST PUSH TP,B PUSH TP,C PUSH TP,D diff --git a/src/mudsys/print.346 b/src/mudsys/print.340 similarity index 99% rename from src/mudsys/print.346 rename to src/mudsys/print.340 index 4e295bd8..770b48f7 100644 --- a/src/mudsys/print.346 +++ b/src/mudsys/print.340 @@ -421,27 +421,13 @@ CPATOM: PUSH TP,A ; COPY ARGS FOR INTERNAL SAKE PUSH TP,B PUSH P,0 ; ATOM CALLER ROUTINE PUSH P,C - SKIPN C,PRNTYP+1 - JRST PATOM - ADDI C,TATOM+TATOM - SKIPE (C) ; SKIP IF UNCHANGED PRINT TYPE OR DISPATCH - JRST PRDIS1 - SKIPN C,1(C) - JRST PATOM - JRST (C) + JRST PATOM CPCHST: PUSH TP,A ; COPY ARGS FOR INTERNAL SAKE PUSH TP,B - PUSH P,C ; STRING CALLER ROUTINE - PUSH P,FLAGS - SKIPN C,PRNTYP+1 - JRST PATOM - ADDI C,TCHSTR+TCHSTR - SKIPE (C) ; SKIP IF UNCHANGED PRINT TYPE OR DISPATCH - JRST PRDIS1 - SKIPN C,1(C) - JRST PCHSTR - JRST (C) + PUSH P,0 ; STRING CALLER ROUTINE + PUSH P,C + JRST PCHSTR @@ -868,8 +854,7 @@ PENT4: PUSHJ P,SPACEQ MOVE A,2(B) ; THE NAME OF THE ENTRY MOVE B,3(B) PUSHJ P,IPRINT ; OUT IT GOES - HLRZ B,-2(TP) - CAIL B,-4 ; SEE IF DONE + CAMLE B,[-4,,-1] ; SEE IF DONE JRST EXPEN MOVE B,-4(TP) ; PRINT SPACE PUSHJ P,SPACEQ @@ -877,8 +862,8 @@ PENT4: PUSHJ P,SPACEQ MOVE A,4(B) ; DECL MOVE B,5(B) PUSHJ P,IPRINT -EXPEN: MOVE B,-4(TP) ; GET CHANNEL INTO B - MOVEI A,"] ; CLOSE SQUARE BRAKET + MOVE B,-4(TP) ; GET CHANNEL INTO B +EXPEN: MOVEI A,"] ; CLOSE SQUARE BRAKET PUSHJ P,PRETIF MOVE B,-4(TP) ; GET CHANNEL INTO B PUSHJ P,SPACEQ @@ -1112,12 +1097,10 @@ PADS: ASCII /#####/ PFIXU4: HRRZ E,(C) ; GET CURRENT VAL MOVE E,1(E) - MOVEM C,-2(TP) PUSHJ P,ATOSQ ; GET SQUOZE JRST BADFXU TLO E,400000 ; USE TO DIFFERENTIATE BETWEEN STRING PUSHJ P,EOUT - MOVE C,-2(TP) ; HERE TO WRITE OUT LISTS @@ -1125,7 +1108,6 @@ PFIXU5: HRRZ C,(C) ; POINT TO CURRENT VALUE HRLZ E,1(C) HRRZ C,(C) ; POINT TO USES LIST HRRZ D,1(C) ; GET IT - MOVEM C,-2(TP) PFIXU6: TLCE D,400000 ; SKIP FOR RH HRLZ E,1(D) ; SETUP LH @@ -1139,7 +1121,6 @@ PFIXU6: TLCE D,400000 ; SKIP FOR RH TRNE E,-1 ; SKIP IF ZERO BYTE EXISTS MOVEI E,0 PUSHJ P,EOUT - MOVE C,-2(TP) JRST PFIXU2 ; DO NEXT PFIXU3: HLRE C,(TP) ; -AMNT LEFT IN BUFFER diff --git a/src/mudsys/pure.16 b/src/mudsys/pure.15 similarity index 92% rename from src/mudsys/pure.16 rename to src/mudsys/pure.15 index c57b1f2b..0a263b51 100644 --- a/src/mudsys/pure.16 +++ b/src/mudsys/pure.15 @@ -3,7 +3,7 @@ TITLE SETPUR 1PASS -BOT==600000 +BOT==700000 .GLOBAL .LPUR,.LIMPU,HIBOT,PHIBOT,REALGC,THIBOT REALGC==200000 diff --git a/src/mudsys/readch.215 b/src/mudsys/readch.206 similarity index 95% rename from src/mudsys/readch.215 rename to src/mudsys/readch.206 index 615a6a8c..cbbaef52 100644 --- a/src/mudsys/readch.215 +++ b/src/mudsys/readch.206 @@ -29,7 +29,6 @@ N.CNTL==2 ; NO RUBOUT ^L ^D ECHO N.IMED==4 ; ALL CHARS WAKE UP N.IME1==10 ; SOON WILL BE N.IMED CNTLPC==20 ; USE ^P CODE MODE IOT -N.ESC==40 ; OPEN BLOCK MODE BITS OUT==1 @@ -71,9 +70,10 @@ INCHAR: IRP A,,[0,C,D,E] ;SAVE ACS INCHR1: TRNE C,N.IMED+N.CNTL ; SKIP IF NOT IMMEDIATE JRST DONE - LDB C,D ; GET PREV CHAR - CAMN C,ESCAP(E) ; SKIP IF NOT ESCAPED + TLZE D,40 ; SKIP IF NOT ESCAPED JRST INCHR2 ; ESCAPED + CAMN A,ESCAP(E) ; IF ESCAPE + TLO D,40 ; REMEMBER CAMN A,BRFCH2(E) JRST BRF CAMN A,BRFCHR(E) ;BUFFER PRINT CHAR @@ -856,26 +856,26 @@ MFUNCTION ECHOPAIR,SUBR MOVE A,1(AB) ;GET CHANNEL PUSHJ P,TCHANC ; VERIFY TTY IN MOVE D,3(AB) ;GET OTHER CHANNEL - HRRZ 0,-2(D) ; GET BITS - TRC 0,C.OPN+C.PRIN - TRNE 0,C.OPN+C.PRIN + MOVEI B,DIRECT-1(D) ;AND ITS DIRECTION + PUSHJ P,CHRWRD + JFCL + CAME B,[ASCII /PRINT/] JRST WRONGD MOVE B,BUFRIN(A) ;GET A'S AUX BUFFER -IFN ITS,[ - HRLZ C,CHANNO(D) ; GET CHANNEL + HRLZ C,CHANNO(D) ; GET CHANNEL LSH C,5 IOR C,[.IOT A] ; BUILD AN IOT MOVEM C,ECHO(B) ;CLOBBER -] CHANRT: MOVE A,(AB) MOVE B,1(AB) ;RETURN 1ST ARG JRST FINIS -TCHANC: HRRZ 0,-2(A) ; GET BITS - TRC 0,C.OPN+C.READ - TRNE 0,C.OPN+C.READ - JRST BADCHN +TCHANC: MOVEI B,DIRECT-1(A) ;GET DIRECTION + PUSHJ P,CHRWRD ; CONVERT + JFCL + CAME B,[ASCII /READ/] + JRST WRONGD IFN ITS,[ LDB C,[600,,STATUS(A)] ;GET A CODE CAILE C,2 ;MAKE SURE A TTY FLAVOR DEVICE @@ -903,6 +903,7 @@ TTYOP2: SKIPE DEMFLG POPJ P, MOVE C,TTOCHN+1 HLLZS IOINS-1(C) + SETZM IMAGFL ; UNFORTUNATELY SFMOD CLOBBERS IMAGENESS MOVEI A,-1 ; TERMINAL; STAYS HERE THROUGHOUT ROUTINE MOVEI 2,175100 ; MAGIC BITS (SEE TENEX MANUAL) SFMOD ; ZAP @@ -945,7 +946,7 @@ TTYOP2: .SUSET [.RTTY,,C] TTYOPEN: SKIPE NOTTY POPJ P, - DOTCAL OPEN,[[1000,,TTYIN],[[SIXBIT /TTY /]],[5000,,0]] + DOTCAL OPEN,[[1000,,TTYIN],[[SIXBIT /TTY /]]] JRST TTYNO DOTCAL OPEN,[[1000,,TTYOUT],[[SIXBIT /TTY /]],[5000,,1]] FATAL CANT OPEN TTY @@ -1009,7 +1010,11 @@ IFN ITS,[ JFCL ] IFE ITS,[ - + SKIPN IMAGFL + JRST MTYI1 + PUSH P,B + PUSHJ P,MTYO1 + POP P,B MTYI1: PBIN ] POPJ P, @@ -1023,7 +1028,10 @@ MTYO: ENABLE ; NON-INTERRUPTABLE VERSION, FOR ECHO INSTRUCTION AND SUCHLIKE IMTYO: SKIPE NOTTY POPJ P, ; IGNORE, DONT HAVE TTY - +IFE ITS,[ + SKIPE IMAGFL ;SKIP RE-OPENING IF ALREADY IN ASCII + PUSHJ P,MTYO1 ;WAS IN IMAGE...RE-OPEN +] IFN ITS,[ CAIN A,177 ;DONT OUTPUT A DELETE POPJ P, @@ -1038,8 +1046,14 @@ IFN ITS,[ IFE ITS, PBOUT POPJ P, +MTYO1: MOVE B,TTOCHN+1 + PUSH P,0 + PUSHJ P,REASCI + POP P,0 + POPJ P, + ; HERE FOR TYO TO ANY TTY FLAVOR DEVICE -IFN ITS,[ + GMTYO: PUSH P,0 IFE ITS,[ HRRZ 0,IOINS-1(B) ; GET FLAG @@ -1071,10 +1085,10 @@ IFE ITS,[ CAMN B,TTOCHN+1 SETZM IMAGFL POPJ P, -] -WRONGC: FATAL TTYECHO--NOT ON A TTY-TYPE CHANNEL + +WRONGC: ERRUUO EQUOTE NOT-A-TTY-TYPE-CHANNEL @@ -1132,7 +1146,7 @@ REBLK1: DISABLE ; FALL THROUG=> UNBLOCKED MOVE B,(TP) SUB TP,[2,,2] POPJ P, -IFN ITS,[ + CHRSNR: SKIPN DEMFLG ; SKIP IF DEMON SKIPE NOTTY ; TTY? JRST REBLK ; NO, JUST RESET AND BLOCK @@ -1144,7 +1158,7 @@ TTYIOT: SETZ 1000,,TTYIN 0 405000,,20000 -] + ; HERE TO UNBLOCK TTY TTYUNB: MOVE A,WAITNS(B) ; GET INS @@ -1167,9 +1181,7 @@ IFE ITS,[ ; TENEX BASIC TTY I/O ROUTINE TNXIN: PUSHJ P,MTYI - DISABLE PUSHJ P,INCHAR - ENABLE POPJ P, ] MFUNCTION TTYECHO,SUBR @@ -1341,24 +1353,21 @@ IFN ITS,[ MOVE B,A ] IFE ITS,[ - SKIPE IMAGFL - JRST IMGOK - - PUSH P,A - PUSH P,B - MOVSI A,1 - HRROI B,[ASCIZ /TTY:/] - GTJFN - HALTF - MOVE B,[074000,,102000] - OPENF - HALTF - HRRZM A,IMAGFL - POP P,B - POP P,A -IMGOK: MOVE B,IMAGFL + MOVE B,CHANNO(B) EXCH A,B + MOVE 0,B + RFMOD + PUSH P,B + TRZ B,300 + SFMOD + STPAR +IMGIOT: + MOVE B,0 BOUT + POP P,B + SFMOD + STPAR + MOVE B,0 ] IMGEXT: MOVSI A,TFIX @@ -1391,11 +1400,43 @@ USEOTC: MOVSI A,TATOM MOVE A,1(B) JRST IMAGE1 -IFN ITS,[ + +IFE ITS,[ +OPNIMG: MOVE E,A ; SAVE CHAR + MOVE D,B + MOVE A,1(B) ;GET JFN OUT OF CHANNEL + RFMOD ;GET THE MAGIC BITS + TRZ B,302 + SFMOD ; MAKE IMAGE AND PUT BITS IN CHANNEL + STPAR + MOVE B,E + HLLOS IOINS-1(D) + CAMN D,TTOCHN+1 + SETOM IMAGFL + JRST IMGIOT ] + +DEVTOC: PUSH P,D + PUSH P,E + PUSH P,0 + PUSH P,A + MOVE D,RDEVIC(B) + MOVE E,[220600,,C] + MOVEI A,3 + MOVEI C,0 + ILDB 0,D + SUBI 0,40 + IDPB 0,E + SOJG A,.-3 + POP P,A + POP P,0 + POP P,E + POP P,D + POPJ P, + IMGBLK: OUT+IMAGEM+UNIT,,(SIXBIT /TTY/) 0 0 -] + IMPURE diff --git a/src/mudsys/reader.357 b/src/mudsys/reader.353 similarity index 99% rename from src/mudsys/reader.357 rename to src/mudsys/reader.353 index b813edbf..2e9afa59 100644 --- a/src/mudsys/reader.357 +++ b/src/mudsys/reader.353 @@ -139,7 +139,7 @@ MFUNCTION FLOAD,SUBR PUSH TP,$TAB ;SLOT FOR SAVED AB PUSH TP,C%0 ; [0] ;EMPTY FOR NOW PUSH TP,$TCHSTR ;PUT IN FIRST ARG - PUSH TP,CHQUOTE READ + PUSH TP,CHQUOTE READB MOVE A,AB ;COPY OF ARGUMENT POINTER FARGS: JUMPGE A,CALOPN ;DONE? IF SO CALL OPEN @@ -805,9 +805,8 @@ NUMCH7: MOVE E,ENUM(TP) TRO FF,EPOS ; FLUSH IF SIGN COMES NOW JRST ATLP1 -NUMC10: TRNN FF,EFLG ; IF NOT IN EXPONENT, LOSE - TRNE FF,ENEG+EPOS ; SIGN FOR EXPONENT SEEN? - JRST NUMCH3 ; NOT A NUMBER +NUMC10: TRNE FF,ENEG+EPOS ; SIGN FOR EXPONENT SEEN? + JRST NUMCH3 ; NOT A NUMBER CAIN B,PLUCOD TRO FF,EPOS CAIN B,NEGCOD @@ -947,7 +946,7 @@ MACCAL: PUSHJ P,NXTCH1 ;READ ONE MORE CHARACTER PUSHJ P,MACAL1 ;OTHERWISE, USE SIDE EFFECCT, BUT NOT VALUE JRST IREAD2 -MACAL2: PUSH P,[RET12] +MACAL2: PUSH P,CRET MACAL1: PUSHJ P,IREAD1 ;READ FUNCTION NAME PUSHJ P,RETERR PUSH TP,C @@ -1889,13 +1888,12 @@ COMNT2: SKIPL A,5(TB) ; RESTORE CHANNEL ;HERE TO SET UP FOR .FOO ..FOO OR. DOTSTR: PUSHJ P,NXTCH1 ; GOBBLE A NEW CHARACTER - MOVEI FF,FRSDOT+DOTSEN+NUMWIN ; SET FLAG IN CASE + MOVEI FF,FRSDOT+DOTSEN ; SET FLAG IN CASE CAIN B,NUMCOD ; SKIP IF NOT NUMERIC JRST DOTST1 ; NUMERIC, COULD BE FLONUM ; CODE TO HANDLE ALL IMPLICIT CALLS I.E. QUOTE, LVAL, GVAL - TRZ FF,NUMWIN ; WE ARE NOT A NUMBER MOVSI B,TFORM ; LVAL MOVE A,IMQUOTE LVAL JRST IMPCA1 diff --git a/src/mudsys/save.176 b/src/mudsys/save.169 similarity index 95% rename from src/mudsys/save.176 rename to src/mudsys/save.169 index 7a70df5c..57ddaa6f 100644 --- a/src/mudsys/save.176 +++ b/src/mudsys/save.169 @@ -6,7 +6,6 @@ RELOCATABLE SYSQ - UNTAST==0 IFE ITS,[ IF1,[ @@ -18,8 +17,7 @@ EXPUNGE SAVE .GLOBAL CHNL0,CHNL1,REOPN,AGC,SWAPIN,MASK1,MASK2,IPCBLS,DEMFLG,FSTART,CKVRS .GLOBAL P.CORE,P.TOP,SGSNAM,%RUNAM,%RSNAM,%RJNAM,INTINT,CLOSAL,TTYOPE,PURBOT,CHKPGI .GLOBAL NOTTY,PURCLN,6TOCHS,DISXTR,IDVAL1,N.CHNS,PMAPB,PURTOP,HITOP,FRETOP,FREMIN -.GLOBAL SQKIL,SFRK,GETJS,IJFNS,IJFNS1,MULTSG,MULTI,NOMULT,THIBOT -.GLOBAL MAPJFN,DIRCHN +.GLOBAL SQKIL,SFRK,GETJS,IJFNS,IJFNS1,MULTSG,MULTI,NOMULT FME==1000,,-1 FLS==1000,, @@ -248,33 +246,27 @@ IFE ITS,[ MOVEI A,400000 ; DISABLE INTS DIR ; INTS OFF -; LOOP TO CLOSE ALL RANDOM JFNS + HLRZ A,IJFNS ; CLOSE AGC + CLOSF + JFCL + HRRZ A,IJFNS ; CLOSE INTERPRETER + CLOSF + JFCL + HLRZ A,IJFNS1 ; CLOSE SGC + CLOSF + JFCL - MOVE E,[-JFNLNT,,JFNTBL] - -JFNLP: HRRZ A,@(E) - SKIPE A - CLOSF - JFCL - HLRZ A,@(E) - SKIPE A - CLOSF - JFCL - SETZM @(E) - AOBJN E,JFNLP + HRRZ A,IJFNS1 + CLOSF + JFCL + SETZM IJFNS + SETZM IJFNS1 ] PUSHJ P,PURCLN ; DONT KEEP PURE SHAREDNESS POP P,E IFE ITS,[ - MOVEI C,0 - MOVNI A,1 - MOVE B,[MFORK,,1] - MOVEI D,THIBOT-1 - PMAP - ADDI B,1 - SOJG D,.-2 SKIPLE A,SFRK ; IF WE HAVE AN INFERIOR, KILL IT KFORK ] @@ -324,8 +316,8 @@ IFN ITS,[ PUSH TP,C PUSH P,[N.CHNS] -CHNLP: HRRE A,(C) ; SEE IF NEW VALUE - JUMPL A,NXTCHN +CHNLP: HRRZ A,(C) ; SEE IF NEW VALUE + JUMPN A,NXTCHN SKIPN B,1(C) ; GET CHANNEL JRST NXTCHN PUSHJ P,REOPN @@ -377,13 +369,6 @@ IFE ITS,[ ] PUSHJ P,%RUNAM PUSHJ P,%RJNAM - -IFE ITS,[ - MOVEI A,400000 - MOVE B,[1,,ILLUUO] - MOVE C,[40,,UUOH] - SCVEC -] MOVE A,$TCHSTR MOVE B,CHQUOTE RESTORED JRST FINIS @@ -578,15 +563,13 @@ CHNLO1: MOVE C,(TP) JRST CHNLO2 CHNLOS: MOVE C,(TP) - MOVE B,1(C) - SETZM 1(B) ; CLOBBER CHANNEL # - SETZM 1(C) + SETZM (C)-1 CHNLO2: MOVEI B,[ASCIZ / CHANNEL-NOT-RESTORED /] JRST MSGTYP" -IFN ITS,[ + NOCORE: PUSH P,A PUSH P,B MOVEI B,[ASCIZ / @@ -605,7 +588,7 @@ CORE ARRIVED POP P,B POP P,A POPJ P, -] + IFN UNTAST,[ PUCHK: MOVEI E,HIBOT ; COMPUTE REAL START OF INTERPRETER ASH E,-10. ; TO PAGES @@ -786,14 +769,6 @@ CKVRS: PUSH P,-1(P) SUB P,[1,,1] ; POP OFF CHANNEL # POPJ P, -IFE ITS,[ -JFNTBL: SETZ IJFNS - SETZ IJFNS1 - SETZ MAPJFN - SETZ DIRCHN -JFNLNT==.-JFNTBL -] END - \ No newline at end of file diff --git a/src/mudsys/secagc.82 b/src/mudsys/secagc.80 similarity index 99% rename from src/mudsys/secagc.82 rename to src/mudsys/secagc.80 index 092cf9f1..cc0d98b5 100644 --- a/src/mudsys/secagc.82 +++ b/src/mudsys/secagc.80 @@ -4,9 +4,6 @@ TITLE SECAGC MUDDLE GARBAGE COLLECTOR FOR MULTI SECTIONS ;SYSTEM WIDE DEFINITIONS GO HERE RELOCATABLE - -.SYMTAB 3337. - GCST==$. TOPGRO==111100 BOTGRO==001100 @@ -338,9 +335,7 @@ NOMONO: MOVE PVP,PVSTOR+1 PUSHJ P,CTIME FSBR B,GCTIM ; GET TIME ELAPSED - SKIPN INBLOT ; STORE TIME ONLY IF NO RETRY - SKIPN GCDANG - MOVEM B,GCTIM ; SAVE ELAPSED TIME FOR INT-HANDLER + MOVEM B,GCTIM ; SAVE ELAPSED TIME FOR INT-HANDLER SKIPN GCMONF ; SEE IF MONITORING JRST GCCONT PUSHJ P,FIXSEN ; OUTPUT TIME diff --git a/src/mudsys/specs.112 b/src/mudsys/specs.110 similarity index 94% rename from src/mudsys/specs.112 rename to src/mudsys/specs.110 index 000c161c..9e0d177b 100644 --- a/src/mudsys/specs.112 +++ b/src/mudsys/specs.110 @@ -4,9 +4,9 @@ RELOCA MAIN==1 .GLOBAL TYPVLC,PBASE,TYPBOT,MAINPR,PTIME,IDPROC,ROOT,TTICHN,TTOCHN,TYPVEC -.GLOBAL %UNAM,%JNAM,%XUNA,%XJNA,NOTTY,GCHAPN,INTHLD,PURBOT,PURTOP,N.CHNS,SPCCHK,CURFCN +.GLOBAL %UNAM,%JNAM,NOTTY,GCHAPN,INTHLD,PURBOT,PURTOP,N.CHNS,SPCCHK,CURFCN .GLOBAL TD.GET,TD.PUT,TD.LNT,NOSHUF,GLOTOP,RSTACK,RCYCHN,START,TVSTRT,REALTV -.GLOBAL IJFNS,IJFNS1,SJFNS,OPSYS,HASHTB,MULTSG,PURBTB,NSEGS,NOATMS,NOSETG,NOSET +.GLOBAL IJFNS,IJFNS1,SJFNS,OPSYS,HASHTB,MULTSG,PURBTB,NSEGS .INSRT MUDDLE > @@ -27,9 +27,7 @@ IMPURE LOC100: JRST START IFN ITS,[ %UNAM: 0 ; HOLDS UNAME -%XUNA: 0 ; HOLDS XUNAME %JNAM: 0 ; HOLDS JNAME -%XJNA: 0 ; HOLDS XJNAME OPSYS: -1 ; MINUS ONE (-1) IF ITS RLTSAV: -1 ; SAVED ARG TO REALTIMER ] @@ -67,9 +65,7 @@ PURBOT: HIBOT ; BOTTOM OF DYNAMICALLY ALLOCATED PURE PURTOP: HIBOT ; TOP OF DYNAMICALLY ALLOCATED PURE SPCCHK: SETZ ; SPECIAL/UNSPECIAL CHECKING? NOSHUF: 0 ; FLAG TO BUILD A NON MOVING HI SEG -NOATMS: 0 ; FLAG DISALLOWING CREATION OF NEW ATOMS -NOSETG: 0 ; FLAG DISALLOWING AUTO-CREATE OF GBINDS -NOSET: 0 ; FLAG DISALLOWING AUTO-CREATE OF BINDINGS + ;PAGE MAP USAGE TABLE FOR MUDDLE ;EACH PAGE IS REPRESENTED BY ONE BIT IN THE TABLE ;IF BIT = 0 THEN PAGE IS FREE OTHERWISE BUSY diff --git a/src/mudsys/stbuil.20 b/src/mudsys/stbuil.15 similarity index 99% rename from src/mudsys/stbuil.20 rename to src/mudsys/stbuil.15 index 6381714c..0579fbbf 100644 --- a/src/mudsys/stbuil.20 +++ b/src/mudsys/stbuil.15 @@ -136,10 +136,9 @@ IFE ITS,[ ADD A,GCSTOP CAMG A,FRETOP ; SEE IF GC IS NESESSARY JRST RDGC1 - MOVE C,(P) ADDM C,GETNUM ; MOVE IN REQUEST MOVE C,[0,,1] ; ARGS TO GC - PUSHJ P,AGC ; GC + PUSHJ P,INQAGC ; GC RDGC1: MOVE C,GCSTOP ; GET CURRENT TOP OF THE WORLD MOVEM C,OGCSTP ; SAVE IT ADD C,(P) ; CALCULATE NEW GCSTOP @@ -443,13 +442,11 @@ RDFIX: PUSH P,C ; SAVE C JRST TYPCFX CAIN B,TTYPEW JRST TYPWFX - CAMLE B,NNPRI - JRST TYPGFX + CAML B,NNPRI + JRST TYPGFX ELEFX: EXCH B,A ; EXCHANGE FOR SAT PUSHJ P,SAT EXCH B,A ; REFIX - CAIE B,SOFFS - JRST OFSFIX CAIE B,SLOCR ; REL GLOC'S ARE STORED AS ATOMS CAIN B,SATOM JRST ATFX @@ -476,16 +473,6 @@ RDL1: POP P,B ; RESTORE B POP P,C POPJ P, -; FIXUP OFSSETS - -OFSFIX: HLRZ B,1(C) ; SEE IF PNTR TO FIXUP - JUMPE B,RDL1 - MOVE 0,GCSBOT ; GET UPDATE AMOUNT - SUBI 0,FPAG+5 - HRLZS 0 - ADDM 0,1(C) ; FIX POINTER - JRST RDL1 - ; ROUTINE TO FIX UP PNAMES STFX: TLZN D,STATM @@ -1566,8 +1553,8 @@ NORCL: MOVE B,GCSTOP ; POINT TO BOTTOM OF SPACE HRRZS USEFRE HRLZM A,-1(B) ; STORE LENGTH IN DOPE WORD HLLZM A,-2(B) ; AND BIT - HRRM B,-1(B) ; SMASH IN RELOCATION - SOS -1(B) + HRLI A,-1(B) ; SMASH IN RELOCATION + HLRM A,-1(B) POP P,B ; RESTORE PTR TO BOTTOM OF VECTOR HRROS B ; POINT TO START OF VECTOR TLC B,-3(A) ; SETUP COUNT diff --git a/src/mudsys/utilit.106 b/src/mudsys/utilit.103 similarity index 99% rename from src/mudsys/utilit.106 rename to src/mudsys/utilit.103 index 8a1e94ef..43c3e0bf 100644 --- a/src/mudsys/utilit.106 +++ b/src/mudsys/utilit.103 @@ -372,7 +372,6 @@ IFE ITS, ANDCMI D,1777 ; MAKE LIKE AN ITS PAGE ADDI 0,1 HRRZ A,FRETOP BLT 0,-1(A) - PUSHJ P,RBLDM POP P,A DONE1: POP P,E POP P,D @@ -416,11 +415,9 @@ AGC1: SKIPE NPWRIT EXCH P,GCPDL SKIPE SWAPGC JRST IAMSGC -IFE ITS,[ - SKIPE MULTSG - JRST ISECGC -] + SKIPN MULTSG JRST IAGC + JRST ISECGC AAGC: SETZM SWAPGC EXCH P,GCPDL @@ -676,7 +673,7 @@ NRSB2: HLRZ B,1(A) ; GET SLOT INDICATION ADD B,PURVEC+1 ; POINT TO SLOT HRROS 2(B) ; MUNG AGE HLRE A,1(B) ; - LENGTH TO A - TRZ A,1777 + TRZ A,777 MOVNM A,CURPLN ; AND STORE JRST (E) NPRSUB: SKIPGE B,1(R) ; SEE IF PURE RSUBR diff --git a/src/mudsys/uuoh.184 b/src/mudsys/uuoh.179 similarity index 97% rename from src/mudsys/uuoh.184 rename to src/mudsys/uuoh.179 index 5d0c08d0..93617034 100644 --- a/src/mudsys/uuoh.184 +++ b/src/mudsys/uuoh.179 @@ -26,11 +26,9 @@ G==F+1 UUOTBL: ILLUUO -EXPUNG .FATAL - IRP UUOS,,[[DP,DODP],[.MCALL,DMCALL],[.ACALL,DACALL],[.ECALL,DECALL],[.SAVAC,DSAVAC] [.FATAL,DFATAL],[.ERRUU,DOERR],[.POPUN,DPOPUN],[.LSAVA,DLSAVA] -[SHRRM,DHRRM],[SHRLM,DHRLM],[SXBLT,DXBLT],[SMOVEM,DMOVMX],[SHLRZ,DHLRZ],[SSETZM,DSETZM],[SMOVE,DMOVEX]] +[SHRRM,DHRRM],[SHRLM,DHRLM],[SXBLT,DXBLT],[SMOVEM,DMOVEM],[SHLRZ,DHLRZ],[SSETZM,DSETZM],[SMOVE,DMOVE]] UUFOO==.IRPCNT+1 IRP UUO,DISP,[UUOS] .GLOBAL UUO @@ -194,21 +192,18 @@ STUPM1: MOVEI D,(M) ; GET OFFSET INTO CODE SKIPN M,1(M) ; POINT TO CORE IF LOADED AOJA TB,STUPM2 ; GO LOAD IT STUPM3: ADDI M,(D) ; POINT TO REAL THING -IFN ITS,[ - HRLI C,M - AOBJP TB,MCHK7 - INTGO -MCHK7: JRST @C -] +IFN ITS, HRLI C,M IFE ITS,[ - AOBJP TB,MCHK7 -MCHK8: INTGO ADD C,M ; POINT TO START PC SKIPE MULTSG TLZ C,777400 ; KILL COUNT - - SKIPN MULTSG - JRST (C) +] + AOBJP TB,MCHK7 + INTGO +IFN ITS, JRST @C ; GO TO IT +IFE ITS,[ +MCHK8: SKIPN MULTSG + JRST (C) MOVEI B,0 ; AVOID FLAG MUNG XJRST B ; EXTENDED JRST HACK @@ -614,9 +609,6 @@ IFE ITS,[ HRRO A,UUOLOC ESOUT HALTF - MOVE A,20 - MOVE C,SAVEC - JRST @UUOH ] REPEAT 0,[ ; QUICK CALL HANDLER @@ -929,7 +921,6 @@ IFE ITS,[ MOVE 0,UUOH SKIPE MULTSG MOVE 0,MLTPC -] PUSH P,0 ANDI 0,-1 PUSH P,UUOLOC ; SAVE UUO @@ -939,7 +930,9 @@ IFE ITS,[ SUBI 0,(M) ; M IS BASE REG IFN ITS, TLO 0,M ; INDEX IT OFF M IFE ITS,[ - HRLI 0,400000+M + HRLI 0,M + SKIPE MULTSG + HRLI 0,<_12.> ; MAKE GLOBAL INDEX ] MOVEM 0,-1(P) ; AND RESTORE TO STACK ; MOVE 0,UUOLOC ; GET REL POINTER TO TBL - REDUNDANT @@ -954,9 +947,9 @@ IFN ITS,[ HRLI A,440640 ; OR IN THE BYTE POINTER ] IFE ITS,[ - MOVSI A,440600+B ; OR IN THE BYTE POINTER + MOVSI A,440640 ; OR IN THE BYTE POINTER SKIPN MULTSG - HRRZ B,UUOLOC + HRR A,UUOLOC SKIPE MULTSG MOVE B,MLTEA ] @@ -989,25 +982,17 @@ LPSVDN: ADDI C,1 MOVE 0,[ACSAV,,A] BLT 0,NOACS JSR LCKINT ; GO INTERRUPT +; MOVE 0,[A,,ACSAV] +; BLT 0,ACSAV+NOACS-1 ; UNNECESSARY SINCE WILL BE MUNGED ANYWAY HRRZ B,-3(P) ; NUMBER OF ACS +; MOVE B,0 LOPPOP: POP TP,ACSAV-1(B) LOPBAR: SUB TP,C%11 +; SUBI B,1 LOPFOO: SOJG B,LOPPOP - JUMPE R,LOPBLT ; OK, NOT RSUBR -IFE ITS,[ - SKIPL 1(R) ; NOT PURE RSUBR - SKIPN MULTSG -] -IFN ITS, SKIPN 1(R) ; NOT PURE RSUBR - JRST LOPBLT - - MOVE B,M - TLZ B,77740 - MOVEI A,0 - HRRI B,LOPBLT - XJRST A - -LOPBLT: MOVE 0,[ACSAV,,A] +; MOVEI 0,ACSAV-1 ; THIS CAUSES BLT TO GO TOO FAR +; ADDM 0,-3(P) + MOVE 0,[ACSAV,,A] BLT 0,@-3(P) ; RESTORE AC'S MOVE 0,-1(P) SUB P,C%44 ; RETURN ADDRESS, (M) @@ -1057,13 +1042,13 @@ DPOPUN: PUSHJ P,POPUNW ; HERE FOR MULTI SEG SIMULATION STUFF -DMOVEX: MOVSI C,(MOVE) +DMOVE: MOVSI C,(MOVE) JRST MEX DHRRM: MOVSI C,(HRRM) JRST MEX DHRLM: MOVSI C,(HRLM) JRST MEX -DMOVMX: MOVSI C,(MOVEM) +DMOVEM: MOVSI C,(MOVEM) JRST MEX DHLRZ: MOVSI C,(HLRZ) JRST MEX