From 0000ed8f3efcdbf411f6c91517909089e5d7ef5d Mon Sep 17 00:00:00 2001 From: Richard Cornwell Date: Sun, 25 Feb 2018 23:31:47 -0500 Subject: [PATCH 1/1] Cleaned up more typos and fixed paging issues. --- src/clkcss.mac | 3 + src/clock1.mac | 18 ++++--- src/comcon.mac | 151 +++++++++++++++++++++++++++++++++++--------------------- src/common.mac | 35 +++++++------ src/con50n.mac | 2 +- src/core1.mac | 11 ++-- src/dcsint.mac | 3 +- src/disser.mac | 29 +++------- src/dist30.mac | 1 + src/dlsint.mac | 11 ++-- src/dpdint.mac | Bin 5615 -> 5665 bytes src/errcon.mac | 29 +++++++---- src/macro.v46 | 14 +++--- src/s.mac | 16 +++--- 14 files changed, 183 insertions(+), 140 deletions(-) diff --git a/src/clkcss.mac b/src/clkcss.mac index 2ccc5ac..f5b3b2e 100644 --- a/src/clkcss.mac +++ b/src/clkcss.mac @@ -3,6 +3,7 @@ SUBTTL T. HASTINGS/TH TS3.17 6 SEP 67 V001 XP VOLKCS,001 ;PUT VERSION NUMBER IN GLOB LISTING AND LOADER STORAGE MAP + ;SCHEDULING ALGORITHM IS: ;CALLED EVERY 60TH OF A SECOND WHEN CURRENT JOB IS USER MODE ;CALLED WHEN CURRENT JOB IS IN EXEC MODE AND: @@ -119,12 +120,14 @@ DEFINE X(A,B) QUEUES LOC=ZZ > + IFE FTCHECK+FTMONP,< ;APPROPRIATE ENTRY IS NON-ZERO WHEN SCHEDULER SHOULD LOOK ;AT THAT QUEUE TO FIND A JOB TO RUN ;WSAVAL CONTAINS THE NO. OF JOBS WITH IO WAIT SATISFIED(0=NONE) ;SIMILARLY FOR TSAVAL + DEFINE X(A,B) < INTERNAL A'AVAL,A'Q A'Q=.-AVALTB diff --git a/src/clock1.mac b/src/clock1.mac index 997a4a6..d337313 100644 --- a/src/clock1.mac +++ b/src/clock1.mac @@ -35,7 +35,6 @@ APRCON: 231000 ;MONITOR ENABLED CPU FLAGS APRIN1: 0 ;USER ENABLED CPU FLAGS CLKS17: 0 ;PLACE TO SAVE AC17 ON CLOCK INTERRUPT DAMESS: ASCIZ /-JAN-/ - CLOCK: POINT 36,CIPWTM,35 ;BYTE POINTER TO CLOCK REQ QUEUE > INTERN APRINT @@ -184,8 +183,10 @@ WSCHED: POP PDP,USRPC ;SAVE PC IN PROTECTED PART OF SYSTEM DATA MOVEI PDP,NULPDL ;NULL JOB PD LIST HRLI PDP,MJOBP1 ;USED TO CALL SCHEDULER AND COMMAND DECODE ; OTHERWISE GET PD OUF + JRST RSCHED ;GO RESCHEDULE + ;HERE AT UUO LEVEL WHEN CURRENT JOB RETURNS TO USER MODE ;FROM A UUO CALL AND EITHER: ; 1. CURRENT JOB TYPED CONTROL C WHILE IN EXEC MODE @@ -262,7 +263,6 @@ IFN FTKCT,< ADDI TAC,1 ;MAKE IT NO. OF 1K BLOCKS ADDM TAC,JBTKCT(ITEM) ;ADD IN ACCUMULATED CORE RUNNING TIME PRODUCT ; (KILO-CORE TICKS) - IFN FT2REL,< EXTERN CHGHGH PUSHJ PDP,CHGHGH ;CHARGE USER FOR HIGH SEGMENT IF HE HAS ONE @@ -292,7 +292,7 @@ CIP4: CAIN STOR,CIPWTM1 ;END YET? MOVE TAC, @CLOCK SOS CLOCK MOVEM TAC, (STOR) - CONI PI,PION + CONO PI,PION LDB TAC, [POINT 6, TAC1, 23] ;GET 6 BIT DATA ITEM MOVSS TAC1 ;SETUP DISPATCH ADDRESS PUSH PDP, STOR ;SAVE ONLY VALUABLE AC @@ -411,7 +411,6 @@ IFN FTCHECK, POPJ PDP, -;ROUTINE TO PUT JONB IN NO CORE QUEUE +;ROUTINE TO PUT JOB IN NO CORE QUEUE + INTERNAL FTSWAP IFN FTSWAP, + CAMLE ITEM,HIGHJB ;HIGHEST JOB NUMBER ASSIGNED? MOVEM ITEM,HIGHJB ;YES,SAVE IT FOR SCHEDULER SCAN OF JOBS CHKRUN: TLNE T,RUN ;RUN BIT ON IN JOB STATUS? @@ -290,6 +290,7 @@ PLSXPN=4 ;CORE MUST BE EXPANED IF STILL COMPRESSED BY SAVE NOT GOING ; MUST BE USED IN CONJUNCTION WITH COMMANDS WHICH ; NEED CORE AND NEED IT IN CORE + ;BITS CHECKED AFTER RETURN FROM COMMAND SETUP ROUTINE CMWRQ=2000 ;REQUEUE JOB AFTER COMMAND WAIT @@ -386,7 +387,6 @@ DEFINE C(A,B,D) < > COMTAB: NAMES - XWD NOCORE+NOJOBN+NOLOGIN+NOINCK,NOCOM DISPL=.-COMTAB ;LENGTH OF TABLE ;GENERATE THE DISPATCH TABLE PLUS SPECIAL BITS @@ -394,6 +394,9 @@ DEFINE C(A,B,D) < Z B (D) > DISP: NAMES + + XWD NOCORE+NOJOBN+NOLOGIN+NOINCK,NOCOM + ;CALLED FROM COMMAND DECODER WHICH IS CALLED FROM CLOCK ROUTINE ;WITH FOLLOWING AC'S SET: @@ -439,7 +442,8 @@ IFN FT2REL,< MOVEI TAC,0 ;RETURN BOTH PHYSICAL AND LOGICAL CORE SOS (PDP) ;NEGATE SKIP RETURN WHICH CORE1 WILL DO JRST CORE1 ;GO DO IT AND RETURN TO CALLER - ; "PJOB" PRINT JOB NUMBER OF JOB TTY IS ATTACHED TO + +; "PJOB" PRINT JOB NUMBER OF JOB TTY IS ATTACHED TO INTERNAL PJOB,DECLF @@ -447,6 +451,7 @@ PJOB: MOVE TAC,ITEM ;JOB NO. DECLF: PUSHJ PDP,RADX10 ;PRINT TAC AS DEC. THEN CRLF JRST CRLF + ; "KJOB" KILL ATTACHED JOB EXTERNAL JBTSTS,TTYKILM,CPOPJ @@ -502,8 +507,10 @@ EXTERNAL JOBSA START: ;SAME AS CSTART, DIFF BY COMTAB BITS ; WHICH PUT TTY IN MONITOR OR USER MODE + ; "CSTART L" OR "CSTART" - START AT LOC. L(TTY IN COMMAND MODE) + STARTC: PUSHJ PDP,OCTIN ;CONVERT POSSIBLE OCTAL NO ARG. IFE FT2REL,< SKIPA TAC1,JOBSA(JDAT) ;NO START ADR. SPECIFIED RETURN @@ -619,7 +626,7 @@ COR1: JUMPN PROG,COR0 ;GO RELEASE ALL DEVICES IF HE HAS CORE IN MEMORY YET JRST DLYCM ;AND DELAY COMMAND TILL CORE IS IN MEMORY ; DLYCM WILL SWAP IT IN. > - COR2: IFN FTTTYSERM,< + COR2: IFN FTTTYSER,< MOVE DEVDAT,-2(PDP) ;RESTORE TTY DDB ADR > PUSHJ PDP,INLMES ;PRINT ? FOR PATCH @@ -654,7 +661,7 @@ IFN FTSWAP,< EXTERN VIRTAL PUSHJ PDP,INLMES ASCIZ /K CORE -VIR. CORE LEFT =/ +VIR. CORE LEFT=/ MOVE TAC,VIRTAL ;PRINT AMOUNT OF FREE SWAP SAPCE LEFT JRST RADX10 ;IN DECIMAL > @@ -662,6 +669,7 @@ VIR. CORE LEFT =/ ;WORKS LIKE SAVE, EXCEPT THAT HIGH SEG IS SAVED AS SHARABLE(EXT=SHR) ;INSTEAD OF NON-SHARABLE(EXT=HGH) + ; "SAVE FILE-NAME[PROJ.,PROG.] CORE" - SAVES JOB AREA ON RETRIEVABLE DEVICE ;ONLY A SAVE OR A GET IN PROGRESS FOR EACH JOB ;NO ATTEMPT IS MADE TO SAVE DEVICE ASSGINMENTS, AC'S OR PC @@ -674,6 +682,7 @@ SSAVE: HRRI IOS,SAVJOB ;SETUP TO RUN SAVEJOB (IOS CLEARED BEFORE SETZM JBTPRG(ITEM) ;CLEAR JOB'S PROGRAM NAME FOR ROOM JRST SGSET + ; "GET DEVICE:FILE-NAME[PROJ.,PROG.] CORE" - SETS UP JOB AREA FROM RETREIVABLE ;DEVICE AND ASSIGNS CORE. @@ -719,6 +728,7 @@ SYSTAT: IFN FTLOGIN,< MOVE TAC,[SIXBIT /SYSTAT/] ;CUSP NAME JRST ARCOM ;RUN IT + EXTERNAL JBTSTS,TTYATT ALOGIN: @@ -821,7 +831,6 @@ IFN FTTTYSER,< PUSH PDP,DEVDAT ;SAVE TTY > IFE FTTTYSER,< - PUSH PDP, TAC ;SAVE INPUT BYTE POINT > MOVE TAC,TAC1 @@ -903,7 +912,7 @@ IFN FTTTYSER,< SKIPE TAC,TAC1 ;IS THERE A LOGICAL NAME SPECIFIED? PUSHJ PDP, DEVLG ;YES, SEE IF IT IS ALREADY IN USE ; BY THIS USER - JRST ASSG1 ;NO + JRST ASSF1 ;NO MOVEI TAC,LOGERR ;YES, PRINT ERROR MOVE DEVDAT,-3(PDP) ;RESTORE TTY DDB PUSHJ PDP,ERRMES @@ -925,7 +934,7 @@ IFN FT2REL,< ASCIZ / ASSIGNED / -LOGERR: ASCIZ /LOGICAL NAME ALREADY IN USE. / +LOGERR: ASCIZ /LOGICAL NAME ALREADY IN USE, / ;"DEASSIGN DEV" - DEASSIGNS DEVICE FROM CONSOLE @@ -982,8 +991,9 @@ REASSI: LDB UUO,PUUOAC ;"REASSIGN DEV:JOB" - REASSIGN DEVICE "DEV" TO JOB "JOB" + REASS: - PUSHJ PDP,CTEXT ;GET DEVICE NAME + PUSHJ PDP,CTEXT1 ;GET DEVICE NAME JUMPE TAC,NOTENF ;NULL NAME? MOVE UUO,TAC1 ;SAVE IT IN UUO PUSHJ PDP,DECIN1 ;GET NEW JOB NUMBER @@ -1011,7 +1021,6 @@ REASS1: EXCH ITEM,(PDP) ;NEW JOB NO. IN ITEM CAME TAC,ITEM ;ASSIGNED TO THIS JOB JRST REASE3 ;NO MOVE TAC,DEVMOD(DEVDAT) - TLNE TAC,DVTTY ;IS IT A TTY? JRST REASE6 ;YES. CAN'T BE REASSIGNED TRNN TAC,ASSPRG ;IS DEVICE INITED? @@ -1091,7 +1100,6 @@ ATTACH: IFE FTTTYSER,< IFN FTLOGIN, < JRST DEVATT ;WANTS TO ATTACH A DEVICE > - IFE FTLOGIN, < JRST ATT1 > @@ -1153,21 +1161,27 @@ DEVATT: IFE FTTTYSER,< ATT1: JSP TAC,ERRMES ASCIZ /ILLEGAL JOB NUMBER / + ATT2: MOVE TAC1,DEVNAM(DEVDAT) ;[PRINT PHYSICAL NAME MOVE DEVDAT,-2(PDP) ;RESTORE TTY DDB PUSHJ PDP,PRNAME JSP TAC,ERRMES ASCIZ / ALREADY ATTACHED / + ATT3: JSP TAC,ERRMES ASCIZ /CAN'T ATT TO JOB / + ATT4: JSP TAC,ERRMES ASCIZ /NOT A JOB / + + ATT5: JSP TAC,ERRMES ASCIZ /CAN'T ATT DEV / + ATT6: POP PDP,DEVDAT JSP TAC,ERRMES ASCIZ /WASN'T DET @@ -1285,7 +1299,6 @@ RUNTIM: PUSHJ PDP,DECIN ;GETJOB NO. ARG. JRST PRTIME ;PRINT AND RETURN RUN2: PUSHJ PDP,INLMES ;PRINT - ASCIZ /SHFL / ;"SHUFFLING " MOVE TAC,SHFWRD ;NO. WORDS SHUFFLED IDIVI TAC,WDPJIF ;NO.WORDS/JIFFY USING BLT @@ -1450,6 +1463,7 @@ DCOM1: PUSHJ PDP,DEAT ;CHECK FOR AC REFERENCE MOVE TAC,JOBPC(JDAT) TLNE TAC,USRMOD ;USER MODE? ADDI TAC1,20 ;YES USER ACS ARE AT 20 INSTEAD OF 0 + POPJ PDP, DCOMA: IFN FT2REL,< @@ -1485,6 +1499,7 @@ SKED1: HRRZ TAC,STATES ;SCHEDULE WITH NO ARGUMENTS. ;"BLANK" OR NO ALPHA NUMERIC BEFORE BREAK CHAR COMMAND ;DISPATCHED TO LIKE ANY OTHER COMMAND(0 IN COMMAND TABLE) + CBLANK: IFE FTTTYSER,< LDB TEM,TAC ;GET BREAK CHARACTER @@ -1637,7 +1652,6 @@ STOPD: LDB TAC,PJOBN JRST CPOPJ ;YES. DELAY STOPC: HLRZ DEVDAT,DEVSER(DEVDAT) MOVSI TAC,446353 - CAMN TAC,DEVNAM(DEVDAT) JRST STOPD JRST CPOPJ1 ;OK TO STOP @@ -1699,10 +1713,9 @@ IFN FTTTYSER,< CAIN TEM,":" ;DEVICE NAME? PUSHJ PDP,GETCHR ;YES. SKIP COLON CAIE TEM,3 ;CONTROL C? - JRST TPOPJ ;NO. RETURN ONE LEVEL UP CTXCNC: MOVSI TAC1,(SIXBIT /HAL/) ;MAKE PHONY HALT COMMAND - MOVSI TEM,12 ;WITH LF FOR TERMINATION + MOVEI TEM,12 ;WITH LF FOR TERMINATION JRST TPOPJ ;AND RETURN UP A LEVEL > ;ROUTINE TO IGNORE LEADING SPACES, TABS, AND NULLS @@ -1728,6 +1741,7 @@ SKIPSA: JRST SKIPSA CAIN TEM,15 ;CR? SKIPS2: POP PDP,T ;YES. POP SUB. LEVEL UP ONE + POPJ PDP, > IFN FTTTYSER,< EXTERNAL GETCHR,SPCHEK,BREAKB,TAKR @@ -1760,6 +1774,7 @@ COMERP: POP PDP,T ;REMOVE SUB. RETURN BEFORE CALLING COMERA COMERA: IFE FTTTYSER,< IBP TAC> IFN FTTTYSER,< PUSHJ PDP,GETCHR> ;MOVE UP, A CH + ;ROUTINE TO REPLACE LAST CHARACTER IN INPUT STRING BY "?" ;AND SET AS OUTPUT ;CALL: MOVE TAC, BYTE POINTER TO LAST CHAR. IN INPUT STRING @@ -1855,7 +1870,6 @@ INTERNAL PRQM PRQM: MOVEI TEM,"?" IFN FTTTYSER,< - EXTERN OUTCHS JRST OUTCHS > @@ -1904,7 +1918,6 @@ DEASG: LDB T, PJOBN ;WAS DEVICE ASSIGNED TO THIS JOB? ANDCAB TAC1,DEVMOD(DEVDAT) ;SET DEVICE CHARACTERISTICS FOR TEST ; AND ASGHGH SETZM DEVLOG(DEVDAT) ;CLEAR LOGICAL NAME - TRNE TAC1,ASSCON ;IS DEVICE ASSIGNED BY CONSOLE? AOS -1(PDP) ;YES, DO OK RETURN IFN FT2REL,< @@ -1925,6 +1938,7 @@ IFN FT2REL,< INTERNAL DEASAL,DEASTY EXTERNAL DEVLST + DEASTY: DEASAL: PUSH PDP,DEVDAT ;SAVE TTY DDB ADDRESS HLRZ DEVDAT,DEVLST ;SEARCH ALL DDB'S @@ -1992,6 +2006,7 @@ IFN FTLOGIN,< ;(AC2) = 0 IF NO [ ]'S TYPED ;THE TERMINAL ] IS OPTIONAL + IFE FTTTYSER,< PJPGNO: SKIPA TAC1,TAC ;SAVE INPUT BYTE POINTER IN CASE NO ; [ ]'S WERE TYPED IN. @@ -1999,7 +2014,6 @@ PP0: IBP TAC ;GET NEXT CHARACTER (2ND TIME THRU LOOP) LDB TEM,TAC ;GET CHAR WHICH STOPED PREVIOUS FIELD SCAN ; (OR NEXT CHAR ON 2ND TIME THRU LOOP) > - IFN FTTTYSER,< PP0: PUSHJ PDP,SKIPS1 PJPGNO: @@ -2136,7 +2150,6 @@ IFN FTTTYSER,< PUSH PDP,IOS ;SAVE DISPATCH ADDRESS(ANYACT USES IOS) IFN FT2REL,< EXTERN KILHGH - PUSHJ PDP,KILHGH ;KILL HIGH SEG > MOVEI TAC,JOBDA ;LENGTH OF JOBDATA AREA @@ -2183,30 +2196,50 @@ IFE FT2REL,< ;THESE LOCATIONS ARE DEFINED TO BE IN THE USERS UUO ACS ;FOR LOOKUP,ENTER UUOS: - XP SGANAM,0 ;FILE NAME - XP SGAEXT,SGANAM+1 ;FILE EXTENSION - XP SGADAT,SGANAM+2 ;FILE CREATION DATE+TIME - XP SGALEN,SGANAM+3 ;LN=-LENGTH,RH=FIRST LOC-1 DUMPED + XP SGANAM,0 + ;FILE NAME + XP SGAEXT,SGANAM+1 + ;FILE EXTENSION + XP SGADAT,SGANAM+2 + ;FILE CREATION DATE+TIME + XP SGALEN,SGANAM+3 + ;LN=-LENGTH,RH=FIRST LOC-1 DUMPED + ; OR PROJECT-PROGRAMMER NUMBER(DISK) - XP SGAEND,SGALEN+1 ;LAST WORD OF DUMP COMMAND LIST=0(SAVE AND GET) - XP SGAREN,SGAEND ; ALSO FIRST WORD FOR RENAME USED AS DELETE - XP SGAPPN,SGAREN+3 ;FOURTH WORD-PLACE TO SAVE PROJECT-PROGRAMEMR + XP SGAEND,SGALEN+1 + ;LAST WORD OF DUMP COMMAND LIST=0(SAVE AND GET) + XP SGAREN,SGAEND + ; ALSO FIRST WORD FOR RENAME USED AS DELETE + XP SGAPPN,SGAREN+3 + ;FOURTH WORD-PLACE TO SAVE PROJECT-PROGRAMEMR + ; NUMBER USER TYPED ;FOR OPEN UUOS: - XP SGAMOD,10 ;IOS MODE WORD FOR OPEN UUO - XP SGADEV,SGAMOD+1 ;DEVICE NAME - XP SGAHED,SGAMOD+2 ;INPUT-OUTPUT BUFFER HEADER ADDRESSES=0 + XP SGAMOD,10 + ;IOS MODE WORD FOR OPEN UUO + XP SGADEV,SGAMOD+1 + ;DEVICE NAME + XP SGAHED,SGAMOD+2 + ;INPUT-OUTPUT BUFFER HEADER ADDRESSES=0 ;MISC. DATA LOCATIONS: - XP SGADMP,13 ;DUMP COMMAND IOWD - XP SGACOR,14 ;AC FOR CORE UUO'S(HIGHEST USER LOC DESIRED) - XP SGANEW,15 ;NEW CORE ASSIGNMENT AS SPECIFIED BY THIRD ARG - XP SGAHGH,16 ;LH=EXT TO USE FOR SAVING HIGH SEG + XP SGADMP,13 + ;DUMP COMMAND IOWD + XP SGACOR,14 + ;AC FOR CORE UUO'S(HIGHEST USER LOC DESIRED) + XP SGANEW,15 + ;NEW CORE ASSIGNMENT AS SPECIFIED BY THIRD ARG + XP SGAHGH,16 + ;LH=EXT TO USE FOR SAVING HIGH SEG + ; RH=EXT TO DELETE(IE SHRHGH OR HGHSHR) - XP SGALOW,17 ;LH=EXT WHICH USER TYPED FOR SAVE OR GET COMMAND + XP SGALOW,17 + ;LH=EXT WHICH USER TYPED FOR SAVE OR GET COMMAND + ; OR .SAV IF HE DIDN'T TYPE AN ARG WITH LEADING PERIOD + ; RH=0 ;ROUTINE TO SCAN COMMAND STRING ARGUMENTS FOR SAVE,GET,RUN AND R ;COMAMNDS AND STORE THEM IN JOB DATA AREA WHICH MUST BE IN CORE @@ -2276,7 +2309,6 @@ GETARG: HRR UUO,TAC ;MOVE ADR. OF ARG LIST TO UUO EXCH TAC,(PDP) ;AND PUT ON PD LIST PUSH PDP,TAC ;MOVE RETURN PC UP ONE IN PD LIST LDB TAC,PUUOAC ;USER AC FIELD IN RUN OF GETSEG UUO - HRRM TAC,-1(PDP) ;SAVE IN CASE OF ERROR RETURN PUSHJ PDP,GETWDU ;GET FIRST ARG FROM USER AREA MOVEM TAC,SGADEV(PROG) ;STORE DEVICE NAME @@ -2310,6 +2342,7 @@ IFN FT2REL,< INTERNAL SAVJOB,SAVERR EXTERNAL JOB41,JOBS41,JOBDDT,JOBSDD,JOBSV + SAVJOB: JSP TAC1,SG1 ;SET UP ACS PROG,PDP,JDAT,ITEM. ; RESET DEVICES HLRE TAC1,SGADMP(PROG) ;-NO. OF WORDS TO WRITE @@ -2331,6 +2364,7 @@ SAVJB1: OPEN 0,SGAMOD ;RE INIT DEVICE, SO UGETF WILL SET FIRST FREE UGETF 0,SGAHED ;GET FIRST FREE BLOCK(MEANINGFUL ONLY IF DTA) ; CAUSE ENTER TO ASSIGN FIRST LOBCK OF FILE ; AS LOWEST FREE BLOCK SO TENDMP CAN READ + ; SAVED FILES, SGAHED IS NO LONGER NEEDED(OPEN UUO) ENTER 0,SGANAM ;ENTER FILE NAME IN DIRECTORY JRST SAVERR ;DIRECTORY FULL OR PROTECTION FAILURE MOVE TAC,JOB41(JDAT) ;SAVE USER UUO HANDLING JSR @@ -2353,7 +2387,6 @@ SAVJB1: OPEN 0,SGAMOD ;RE INIT DEVICE, SO UGETF WILL SET FIRST FREE CMPLP1: MOVEM TAC,DAT ;SAVE 1ST LOC FOR IOWD CAMLE TAC1,ITEM ;SEARCH FOR 1ST NON-0 WORD AOJA TAC,CMPTHR ;THROUGH - SKIPN @TAC1 ;THIS A DATA WORD? AOJA TAC1,.-3 ;NO, KEEP LOOKING MOVNI AC1,1 ;YES, AC1 WILL BE AN IOWD @@ -2383,6 +2416,7 @@ CMPTHR: HRLI TEM,254000 ;SET A JRST C(JOBSA) SAVFIN: PUSHJ PDP,SGREL ;RELEASE DEVICE AND FIND TTY JSP TAC,PHOLD ;PRINT MESSAGE AND STOP JOB ASCIZ /JOB SAVED/ + SAVERR: MOVEI TAC,PRTERR ;ERROR CORE IN CASE RUN UUO(PROTECTION ERROR) ; CHANGE TO DISK ERROR CODE IF DEV IS DSK PUSHJ PDP,SGRELL ;CHANGE TO DISK ENTER ERROR CODE IF DSK @@ -2575,6 +2609,7 @@ SGERR1: MOVEI TAC,NSDERR ;ERROR CODE IN CASE RUN UUO(NO SUCH DEVICE) ; PUSHJ PDP,GETJB ; RETURN ONLY IF EVERYTHING OK + EXTERNAL JOBCOR,JOB,CPOPJ,JOBS41,JOB41 GETJB: @@ -2622,7 +2657,26 @@ LOWFIN: HRRZ TAC,JOBCOR(JDAT) ;CORE ARG FROM PREVIOUS SAVE(THIS MONITOR ; USER TO USE TO RESET CORE TO INITIAL SETTING WHEN ; PROGRAM IS RESTARTED ; FALL INTO SGREL - ;ROUTINE TO EXECUTE DUMP MODE COMMAND LIST SETUP IN SGALEN(R) + +;ROUTINE TO RELEASE DEVICE AND FIND TTY +INTERN SGREL + +SGREL: SKIPN DEVDAT,USRJDA ;HAS CHANNEL BEEN RELEASED ALREADY? + JRST SGREL2 ;YES, FIND TTY AND WAIT FOR OUTPUT TO FINISH + PUSH PDP,T4 ;NO, + MOVE TAC1,DEVMOD(DEVDAT) + TLNE TAC1,DVMTA ;MAGTAPE? + TLNN DEVDAT,INPB ;YES, WAS AN INPUT DONE? + JRST SGREL1 ;NO + CLOSE 0,CLSOUT ;YES, CLOSE MTA INPUT + STATO 0,IOTEND+IODEND ;AT END OF APTE? + MTAPE 0,16 ;NO SKIP TO EOF +SGREL1: RELEASE 0, ;NO RELEASE DEVICE + POP PDP,T4 +SGREL2: + JRST TTYFNU ;FIND TTY FOR CURRENT USER + +;ROUTINE TO EXECUTE DUMP MODE COMMAND LIST SETUP IN SGALEN(R) ;AND CHECK FOR ERRORS. USED ONLY TO READ LOW FILE. ;CALL: PUSHJ P,SGDO ; INPUT 0,SGALEN OR OUTPUT 0,SGALEN @@ -2662,23 +2716,6 @@ SGIOCK: MOVE T4,DEVIOS(DEVDAT) ;IO STATUS WORD FOR THIS DEVICE ; OF FIND TTY AND PRINT ?CRLF JSP TAC,PHOLD ;START TTY AND STOP JOB ASCIZ /TRANSMISSION ERROR/ -;ROUTINE TO RELEASE DEVICE AND FIND TTY -INTERN SGREL - -SGREL: SKIPN DEVDAT,USRJDA ;HAS CHANNEL BEEN RELEASED ALREADY? - JRST SGREL2 ;YES, FIND TTY AND WAIT FOR OUTPUT TO FINISH - PUSH PDP,T4 ;NO, - MOVE TAC1,DEVMOD(DEVDAT) - TLNE TAC1,DVMTA ;MAGTAPE? - TLNN DEVDAT,INPB ;YES, WAS AN INPUT DONE? - JRST SGREL1 ;NO - CLOSE 0,CLSOUT ;YES, CLOSE MTA INPUT - STATO 0,IOTEND+IODEND ;AT END OF APTE? - MTAPE 0,16 ;NO SKIP TO EOF -SGREL1: RELEASE 0, ;NO RELEASE DEVICE - POP PDP,T4 -SGREL2: - JRST TTYFNU ;FIND TTY FOR CURRENT USER ;ROUTINE TO EXPAND CORE AFTER A SAVE(LOW SEG ONLY) ;CALL: MOVE DEVDAT,DEVICE ADR. ; MOVE PROG,JOBADR. @@ -2884,6 +2921,7 @@ NOFILE: MOVEI TAC,FNFERR ;ERROR CODE IN CASE THIS IS RUN UUO(FILE NOT FOUND PUSHJ PDP,SGRELL ;RETURN DISK LOOKUP OR ENTER ERROR CODE IF DSK ; RELEASE DEVICE AND ERROR RETURN TO USER IF HE WANTED ; OR FIND TTY AND PRINT ?CRLF + MOVE TAC1,SGANAM(PROG) ;PRINT FILE NAME PUSHJ PDP,PRNAME PUSHJ PDP,PRPER ;PRINT PERIOD @@ -2910,7 +2948,6 @@ IFN FTDISK,< > SGRELE: MOVE TAC1,JOBPD1(JDAT) ;GET FIRST PC ON PD LIST TLNN TAC1,USRMOD ;IS IT IN USER MODE(IE USER UUO)? - JRST SGRLE1 ;NO. MUST BE MONITOR COMMAND OR CALLED OVERLAYED ; RELEASE DEVICE, FIND TTY, AND RETURN TO CALLED PUSH PDP,TAC ;SAVE ERROR CORE @@ -2925,8 +2962,10 @@ SGRELE: MOVE TAC1,JOBPD1(JDAT) ;GET FIRST PC ON PD LIST SKIPE USRJDA+0 ;DO NOT RELEASE CHANNEL 0 IF NOT INITED YET ; UUO HANDLER DOES NOT ALLOW THIS FROM EXEC MODE RELEAS 0, ;RELEASE DEVICE(IF INITED) + PUSH PDP,JOBPD1(JDAT) ;PUT RETURN ON END OF PDLIST JRST USRXIT ;AND RETURN TO USER TO HANDLE ERROR + SGRLE1: PUSHJ PDP,SGREL ;RELEASE DEVICE AND FIND TTY JSP TAC,CONMES ;PRINT ?CRLF AND RETURN TO CALLER ; WHO WILL PRINT REST OF ERROR MESSAGE AND STOP JOB diff --git a/src/common.mac b/src/common.mac index 5f3ef5c..dfcefaa 100644 --- a/src/common.mac +++ b/src/common.mac @@ -1,4 +1,4 @@ -TITLE COMMON - MONITOR COMMON DATA AREA AND CONFIGURATION DEFINITION - V437 + TITLE COMMON - MONITOR COMMON DATA AREA AND CONFIGURATION DEFINITION - V437 SUBTTL PART 3 COMMON.MAC - T. HASTINGS/RCC TS 03 JUN 69 XP VCOMMN,437 ;PUT VERSION NUMBER IN GLOB AND LOADER STORAGE MAP @@ -32,13 +32,13 @@ REPEAT 0, < ;HAVING PREVIOUSLY DEFINED THEM ON THE CONFIG.MAC FILE USING ;MONGEN PROGRAM - IFNDEF LISTSN, ;FORCE S.MAC TO BE LISTED WITH COMMON FILE ONLY ;UNLESS 'LISTSN' DEFINED TO BE 0 WITH MONGEN IFNDEF APRSN, ;SERIAL NUMBER OF APR ;STANDARD MAG TAPE DENSITY(556 BPI),PARITY(ODD-BINARY) INTERN STDENS ;STANDARD MAG TAPE DENSITY(556 BPI),PARITY(ODD-BINARY) + IFNDEF STDENS, ;STAND. == BINARY AT 556 BPI ;STDENS==D+P WHERE D AND P ARE: ;D==1(200 BPI);D== (556 BPI);D==3(800 BPI) @@ -69,9 +69,11 @@ INTERNAL JIFSC2,JIFMIN,WDPJIF IFNDEF MINCOR, ;DISK DDB AND ACCESS ENTRY ; ALLOCATION REQUIRMENTS IN FREE CORE ;USED TO EXPAND SIZE OF MONITOR AT ONCE ONLY TIME + ;32 WORDS/DDB AND 4 WORDS/ACCESS ENTRY = 36 WORDS ;ASSUME 1.5 OPEN FILE/JOB + INTERN LOGSIZ IFNDEF LOGSIZ, ;MINSIZ OF VIRTUAL CORE LEFT ;AND STILL ALLOW LOGIN. MUST BE @@ -329,19 +331,19 @@ SWPMXL=<.-SWPTBL-1>B26 ;MAXIMUM ENTRY FOR GETTAB SHIFTED LEFT 9 FULCNT: 0 ;PRINT DISK IS FULL EVERY 30 SECONDS MAXSIZ: 0 ;SIZE OF LARGEST JOB WHICH MIGHT BE SWAPPED OUT MAXJBN: 0 ;NUMBER OF THAT JOB -SUMCOR: 0 ;TEMPORARY STORAGE CELL USED BY SWAPPER FOR SUM OF - ; CORE NEEDED FOR SWAP IN +SUMCOR: 0 ;TEMP USED BY SWAPPER FOR SUM OF CORE NEEDED FOR SWAP IN IFN FT2REL,< INTERN SWPIN,SWPOUT SWPIN: 0 ;JOB NUMBER BEING SWAPPED IN IF IT HAS A HIGH SEG ; USED TO REMEMBER THE JOB NUMBER DURING HIGH SEG + SWPOUT: 0 ;JOB NUMBER BEING SWAPPED OUT IF IT HAS A HIGH SEG ; USED TO REMEMBER THE JOB NUMBER DURING HIGH SEG + > INTERN FTTRACK IFN FTTRACK, < INTERN LASIN,LASOUT - LASIN: 0 ;LAST JOB OR HIGH SEG SWAPPED IN LASOUT: 0 ;LAST JOB OR HIGH SEG SWAPPED OUT ; ABOVE TWO FOR DEBUGGING ONLY @@ -383,17 +385,19 @@ JBTADR: BLOCK JOBN+SEGN ;JOB AND HIGH SEG CORE ASSIGNMENT ;SAME AS JBTADR (JDAT==PROG) INTERN JBTSGN JBTSGN: IFG SEGN, < - BLOCK JOBN ;RH=SEGMENT NUMBER OF HIGH SEGMENT THIS JOB + BLOCK JOBN ;SEGMENT NUMBER OF HIGH SEGMENT THIS JOB ; IS USING IN CORE OR ON DISK ; 0 MEANS JOB DOES NOT HAVE HIGH SEG - ;LH=USER DEPENDENT HIGH SEG STATUS BITS (SEE S.MAC) + ;LH=USER DEPENDENT HIGH SEG STATUS BITS + ; (SEE S.MAC) XP ITMSGN,ITEM+JOBMXL ;LH SYMBOL FOR GETTAB UUO > IFE SEGN, < - 0 ;SINGLE-ENTRY NULL JBTSGN TABLE.... - XP ITMSGN,JOBMXL ;LH SYMBOL FOR GETTAB UUO SO THAT JBTSGN IS - ; UNDEFINED, I.E., MAKE INDEXING BY ITEM BE 0, BUT - ; ALLOW REFERENCES UP TO JOBMXL. + 0 + XP ITMSGN,JOBMXL ;LH SYMBOL FOR GETTAB UUO + ;SO THAT JBTSGN IS UNDEFINED + ;I.E., MAKE INDEXING BY ITEM BE 0 + ; BUT ALLOW REFERENCES UP TO JOBMXL > IFG DSKN, < ;DISK SYSTEM ? INTERN PRJPRG,JBTDIR @@ -411,8 +415,7 @@ PRJPRG: BLOCK JOBN+SEGN ;XWD PROJECT NUMBER,PROGRAMMER NUMBER RTIME: BLOCK JOBN ;TOTAL RUN TIME SINCE LAST IJOB OR RUNTIME TTIME: BLOCK JOBN ;TOTAL RUN TIME SINCE LAST IJOB > - - IFG SYS50N,< ;SWAPPING SYSTEM ? + IFG SYS50N,< ;SWAPPING SYSTEM ? INTERNAL JBTSWP,JBTCHK JBTSWP: BLOCK JOBN+SEGN ;LH:==PROTECT TIME WHILE JOB IS IN CORE. ; DISK ADDRESS WHILE SWAPPED OUT @@ -438,7 +441,6 @@ JBTPRV: BLOCK JOBN ;PRIVILEGE BITS FOR JOB SET BY LOGIN > IFG DSKN, < INTERN MQUEUE,MQTOP - MQUEUE: BLOCK JOBN ;DISK MONITOR I/O QUEUE MQTOP=. ;LAST LOC+1 OF MONITOR QUEUE > @@ -452,7 +454,7 @@ MQUEUE: BLOCK JOBN ;DISK MONITOR I/O QUEUE LALL ;LIST QUEUE DEFINITIONS FOR ALL TO SEE - DEFINE X + DEFINE X QUEUES DEFINE X (A) @@ -465,10 +467,9 @@ DEFINE X (A) XALL ;BACK TO NORMAL MACRO EXPANSION INTERN JBTQ,JBTQM1,JBTQP1,JBTQMN - BLOCK MXQUE ;NUMBER OF QUEUES FOR SWAPPING SCHEDULER JBTQ: BLOCK JOBN ;ONE ENTRY PER JOB, - ; LH=PREVIOUS JOB, RH=NEXT JOB IN QUEUE + ; LH=PREVIOUS JOB, RH=NEXT JOB IN QUEUE ; NEGATIVE MEANS THIS IS FIRST (LH) OR LAST (RH) ; JOB IN QUEUE JBTQM1==JBTQ-1 ;JBTQ-1 diff --git a/src/con50n.mac b/src/con50n.mac index 6f2bd9d..f742e73 100644 --- a/src/con50n.mac +++ b/src/con50n.mac @@ -66,7 +66,7 @@ XP PDP10N,1 ;N = JUST 1 RELOC. REG.] ;Y -XP KT10AN,0 +XP KT10AN,1 ;HOW MANY MORE SEGMENTS THAN JOBS?[0 UNLESS YOU diff --git a/src/core1.mac b/src/core1.mac index c369d22..5e81986 100644 --- a/src/core1.mac +++ b/src/core1.mac @@ -5,8 +5,8 @@ XP VCORE1,414 ENTRY CORE1 ;ALWAYS LOAD CORE1(FOR LIB SEARCH) -;CORE ALLOCATION IS DONE ON A 1K BLOCK BASIS +;CORE ALLOCATION IS DONE ON A 1K BLOCK BASIS ;USING A USE BIT TABLE(CORTAB) WHICH HAS A 1 ;FOR EVERY BLOCK WHICH IS NOT AVAILABLE BECAUSE: ; 1.IN USE BY MONITOR @@ -185,6 +185,7 @@ IFN FTSWAP,< INTERN ANYACT,ANYDEV EXTERN JOBMAX + ANYACT: IFN FTSWAP,< INTERN ANYDEV @@ -224,7 +225,8 @@ ANY2: SOJGE T1,ANY ;NO, KEEP LOOKING ; UNTIL A MORE FAVORABLE ITME ;CALL: MOVE ITEM,HIGH RO LOW SEG NUMBER ; PUSHJ PDP,TRYSWP -; RETURN1 - JOB MUST REMAIN RUNABLE(NSHF,NSWP SET OR SAVE,GET IN PROGRESS); RETURN2 - OK TO SWAP HIGH OR LOW SEG +; RETURN1 - JOB MUST REMAIN RUNABLE(NSHF,NSWP SET OR SAVE,GET IN PROGRESS) +; RETURN2 - OK TO SWAP HIGH OR LOW SEG IFN FTSWAP,< INTERN TRYSWP @@ -261,7 +263,6 @@ SCORE1: SOS(PDP) ;CORE1 WILL ALWAYS SKIP RETURN ;CORE0 IS CALLED BY THE CORE MONITOR COMMAND AND THE CORE SHUFFLER - ;AND RUN COMMAND ;BOTH LOGICAL AND PHYSICAL CORE ASSIGNMENT ARE AFFECTED @@ -523,6 +524,7 @@ IFN FT2REL,< PUSHJ PDP,CURHGH ;CHECK TO SEE IF THIS CORE ASSIGNMENT IS FOR ; HIGH SEG WHICH CURRENT USER MAY ALSO BE USING ; IF YES, RESET HARDWARE AND SOFTWARE RELOC INFO. + ; RETURN WITH ITEM PRESERVED,PROG SET TO RELOC ; OF SEG WHICH HAS JUST HAD CORE REASSIGNED > @@ -576,7 +578,7 @@ IFN FTSWAP,< ; AND RETURN ;ROUTINE TO SET AND CLEAR CORE USE TABLE ;CALL: MOVEI T,1 ;TO SET TABLE - MOVEI T,0 ;TO CLEAR TABLE +; MOVEI T,0 ;TO CLEAR TABLE ; MOVE BLK,HIGHEST REL. LOC. IN USER AREA ; MOVE LOC,ADDRESS OF FIRST BLOCK TO SET CLEAR @@ -593,7 +595,6 @@ CORSTG: PUSH PDP,TAC ;SAVE HIGHEST LOC. BEING REQUESTED ASH TAC,-12 ;FORM BYTE POINTER TO BIT-1 IDIVI TAC,^D36 ;TAC=WORD,TAC1=BIT ADD TAC,CORE2P ;FORM BYTE POINTER - MOVNS TAC1 ADDI TAC1,^D36 DPB TAC1,[POINT 6,TAC,5] diff --git a/src/dcsint.mac b/src/dcsint.mac index 00cd555..5a6ec9b 100644 --- a/src/dcsint.mac +++ b/src/dcsint.mac @@ -1,4 +1,4 @@ - TITLE DCSINT - INT. SERV. FOR DATA COMMUNICATION SYSTEM 630 - V402 +TITLE DCSINT - INT. SERV. FOR DATA COMMUNICATION SYSTEM 630 - V402 SUBTTL M. FREDRIKSEN/TH/CHW TS 7 MAY 69 XP VDCSIT,402 ;PUT VERSION NUMBER IN GLOB LISTING AND LOADER STORAGE MAP @@ -19,7 +19,6 @@ IFN FTTTYSER, ;BYTE POINTERS - EXTERNAL PLASTC ;DEVICE DEPENDENT PORTION OF INITIALIZATION CODE diff --git a/src/disser.mac b/src/disser.mac index 70bde24..acffdce 100644 --- a/src/disser.mac +++ b/src/disser.mac @@ -11,7 +11,6 @@ DIS340: > SUBTTL R. GRUEN/RCC TS 03 JUN 69 V004 XP VDISSR,004 - ;PUT VERSION NUMBER IN GLOB LISTING AND LOADER STORAGE MAP ; THESE ROUTINES HANDLE INTERRUPTS FROM THE DISPLAY DATA ; CHANNEL. THEY SEARCH THE COMMAND POINTER LIST SUPPLIED @@ -35,6 +34,8 @@ XP VDISSR,004 ;IF THE T30 SWITCH = 1 THIS IS THE ROUTINE FOR A DEC ;TYPE 30 DISPLAY WITH A TYPE 348 INTERFACE. ;OTHERWISE IT IS THE ROUTINE FOR A DEC TYPE 340. + + INTERNAL FTCHECK,FTMONP IFN FTCHECK+FTMONP,< @@ -110,8 +111,7 @@ ENTRY DISDSP CAMLE A,DISHI JRST EXIT2 > - - JRST DISINI ;INITIALIZATION + JRST DISINI ;INITIALIZATION POPJ PDP, ;PRINT ERROR AND STOP JOB DISDSP: JRST DISSTP ;RELEASE JRST DISSTP ;CLOSE @@ -128,8 +128,7 @@ DISDSP: JRST DISSTP ;RELEASE POPJ PDP, ;CLOSE INPUT POPJ PDP, ;DIRECTORY CLEAR POPJ PDP, ;MTAPE - -;DISINI IS CALLED FOR RELEASE, CLOSE, AND SUNDRY ILLEGAL CONDITIONS + ;DISINI IS CALLED FOR RELEASE, CLOSE, AND SUNDRY ILLEGAL CONDITIONS ; WHICH WANT TO TURN THE DISPLAY OFF. IT FIRST CONVINCES ; THE INTERRUPT LEVEL ROUTINES TO GO BACK TO SLEEP AND THEN ; TELLS THE MONITOR THAT THE DEVICE IS INACTIVE, LASTLY, @@ -148,7 +147,6 @@ IFN T30,< MOVEI TAC,PENCHN ;SET UP CONO WORD WITH PROPER ASH TAC,3 ; CHANNEL ASSIGNMENTS ADDI TAC,DISCHN - TRO TAC,4000 ;SET DISPLAY READY BIT IN CONO WORD MOVEM TAC,DISCON> JRST DISIN1 @@ -201,8 +199,7 @@ PENINT: CONSO DIS,0 ;CHECK FOR CONI FLAGS EXCH TAC,PENLOC ;SAVE ADR IN PENLOC AND RESTORE TAC JEN @PENCHL ;DISMIS THE INTERRUPT > - -;DISNXT IS CALLED WITH A JSR DISNXT, IT SETS UP THE NEXT + ;DISNXT IS CALLED WITH A JSR DISNXT, IT SETS UP THE NEXT ; POINTER FOR THE DISPLAY'S BLKO BY INTERPRETING A ; COMMAND LIST SUPPLIED BY THE USER, THIS COMMAND LIST ; IS DESCRIBED AT THE BEGINNING OF THE PROGRAM. IF THE @@ -251,8 +248,7 @@ INTCHK: MOVSS TAC ;PLACE INTENSITY IN CONO WORD DPB TAC,INTPNT JRST DISNX1 ;GET NEXT POINTER INTPNT: POINT 3,DISCON,29> - -;DISFIN RECEIVES CONTROL WHEN THE DISPLAY'S BLKO POINTER REACHES + ;DISFIN RECEIVES CONTROL WHEN THE DISPLAY'S BLKO POINTER REACHES ; ZERO. IT SAVES THE TWO AC'S WHICH DISNXT USES AND ; DOES A JRST TO DISNXT. ON A NORMAL RETURN IT RESTORES THE ; AC'S AND DISMISSES THE INTERPUT. ON A "NO MORE DATA" @@ -271,7 +267,6 @@ DISFIN: MOVEM TAC,DISAV ;SAVE AC'S ; AND SIMILAR GOOD THINGS SINCE IT ALSO STORES THE PC FROM ; THE JSR IN THE GENERAL PC LOCATION FOR THIS CHANNEL ; IF THE DISPLAY IS OFF. IT DOES NOT RESTART IT. - ; IT CHECKS TO SEE IF THE CLOCK HAS RUN OUT BEFORE THE PICTURE; ; IF SO, IT CALLS DISBEG TO RESTART THE DISPLAY WITH A NEW ; COMMAND LIST. IT TURNS OFF THE IO ACTIVE BIT WHICH WAS @@ -306,8 +301,7 @@ DVT3: MOVE IOS,DISIOS ;BIT FIDDLING TIME DVT6: MOVEM IOS,DISIOS PUSHJ PDP,DISBEG ;START NEW COMMAND LIST JRST DISRET - -;DISREG IS CALLED WITH A PUSHJ PDP,DISBEG, IT DISABLES THE + ;DISREG IS CALLED WITH A PUSHJ PDP,DISBEG, IT DISABLES THE ; DISPLAY ITSELF (BY USING DISOFF) AND ALSO DISABLES THE ; CLOK RESTART AND RESETS THE POINTER TO THE USER'S ; COMMAND LIST TO THAT SPECIFIED ON THE LAST OUTPUT @@ -347,8 +341,7 @@ CLKREQ: MOVSI IOS,DISCKR ;IF NO CLOCK INTERRUPT REQUESTED CLOKRT: XWD CLOK,2 ;CONTROL FOR CLOCK QUEUE: 2 JIFFIES ;TWO JIFFIES - -;CLOK IS CALLED AT THE CLOCK LEVEL IN RESPONSE TO A REQUEST + ;CLOK IS CALLED AT THE CLOCK LEVEL IN RESPONSE TO A REQUEST ; IN THE CLOCK QUEUE. A BIT IS SET TO INDICATE THAT THE ; CLOCL PERIOD HAS ELAPSED. IF THE DISPLAY IS STILL IN ; PROGRESS, CLOK RETURNS AT THIS POINT. OTHERWISE, CLOK @@ -367,7 +360,6 @@ CLOK: MOVSI IOS,DISCKR ;INDICATE CLOCK REQUEST SERVICED LDB ITEM,PJOBN TDNE TAC,JBTSTS(ITEM) ;IS SHUFFLE LOCKED OUT? JRST DISBEG ;YES, RESTART DISPLAY AND RETURN - IORM TAC,JBTSTS(ITEM) ;NO. LOCK IT OUT. MOVE TAC,JBTADR(ITEM) ;RESET DISHI AND DISREL AFTER SHUFFLING HLRZM TAC,DISHI @@ -389,8 +381,7 @@ ADRER1: PUSHJ PDP,DISDSP+DCL ;DO A CLOSE DISIN: MOVNI TAC,1 EXCH TAC,PENLOC ;GET LATEST COORDINATES, JRST STOTAC ;STORE AND RETURN - -;DISOUT DOES THE WORK OF THE OUTPUT UUO. IT SETS A BIT TO + ;DISOUT DOES THE WORK OF THE OUTPUT UUO. IT SETS A BIT TO ; INDICATE THAT THE DEVICE IS ACTIVE AND INHIBITS ; INTERUPTS WHICH MAY STILL BE IN PROGRESS. SINCE THE ; MONITOR CALLS WSYNCE BEFORE COMING HERE. THE USER IS @@ -423,5 +414,3 @@ DISOUT: TLO IOS,IO+DISWAT ;INDICATE OUTPUT; REQUEST START UP BLKLIT: BLKO DIS,DISBKO JSRLIT: JSR DISCHL END - - diff --git a/src/dist30.mac b/src/dist30.mac index ef7237d..775c1c3 100644 --- a/src/dist30.mac +++ b/src/dist30.mac @@ -2,3 +2,4 @@ ;USED ONLY TO ASSEMBLE DISSER TO MAKE TYPE 30 SERVICE INSTEAD OF TYPE 340 T30=1 ;FLAG THAT TYPE 30 IS WANTED + diff --git a/src/dlsint.mac b/src/dlsint.mac index 9699578..7d9de3a 100644 --- a/src/dlsint.mac +++ b/src/dlsint.mac @@ -20,9 +20,12 @@ IFN FTTTYSER, ;BYTE POINTERS + EXTERNAL PLASTC + + DLS=240 ;DC10 DEVICE NUMBER ;BITS IN CHREC TO COMMUNCATE WITH DLS @@ -59,8 +62,7 @@ SCNINT: CONSO DLS,30 ;ANY INTERRUPTS ON DLS JRST RECINT ;YES, RECEIVER INT. HANDLER DATAO DLS,[EXP TDSABL] ;CLEAR HARDWARE FLAG JRST XMTINT ;GO PROCESS CHAR IN SCNSRF OR SCNSRH - -;COMMON PARTS OF CTY AND SCANNER INTERRUPT SERVICE ROUTINES. + ;COMMON PARTS OF CTY AND SCANNER INTERRUPT SERVICE ROUTINES. EXTERNAL INJEST,DDBSRC INTERNAL TCOMM @@ -82,9 +84,7 @@ TCOMM: SCNIN2: DATAO DLS,[EXP TDSABL] ;SET TRANSMIT DISABLE BIT AND OUTPUT IT ;(JUST INCASE, ELSE IT WILL INTERRUPT IMMEDIATLY AGAIN) POPJ PDP, ;DISMISS INTERRUPT - - -;COMMON TO RECEIVE AND TRANSMIT. + ;COMMON TO RECEIVE AND TRANSMIT. INUSE: HRRZS DDB ;LINE DISABLED IF RH TTYTAB=-1 CAIN DDB,-1 @@ -116,5 +116,4 @@ DLSTYP: HRL CHREC,LINE ;SET UP LINE NUMBER IN CHREC POPJ PDP, LIT - DLSEND: END diff --git a/src/dpdint.mac b/src/dpdint.mac index 21d7ec703c37b9f85008566b8201a18a7b55e8a7..0882969c8f1f5835ca4c3f97cb74a15a329c996f 100644 GIT binary patch delta 141 zcmaE_y-;UE8sp>)#!ZtYm{K-ZF*P#!DL{coP*9YoLWrZYj*GLCvxgrq7fi<4-_KtG zD5w+R>mTN-9bjmo?c(Ma>Z<`%tjWv88Q>q_r4Zl}pu@|>vzd!!9^>X^toqEGuXEgG h+`Nsemua&rFB{`#U%tJJn|TEEm>GFCTM4ga0swU`B~SnW delta 94 zcmZ3e^Im&H8sp>?#x0Yjn36WvG1W8ja|ZYacqs(91nBT`@$hnO_GX#KxcN1!E;AF5 sBf)u>ar0-cekKs7iId7XuIg03!kzga7~l diff --git a/src/errcon.mac b/src/errcon.mac index b0343e8..fbcb102 100644 --- a/src/errcon.mac +++ b/src/errcon.mac @@ -11,7 +11,6 @@ ERRCON: ;THEN THE JOB IS STOPPED AND CONSOLE IS RETURNED TO ;MONITOR COMMAND MODE - ;APR DETECTED ERRORS ;PUSHDOWN OVERFLOW,ILLEGAL MEMORY, NONEXISTENT MEMORY ;FOR WHICH THE USER IS NOT ENABLED. @@ -45,8 +44,8 @@ IFN FT2REL,< APRILR: JSP TAC,ERRPTU ASCIZ /ILL MEM REF/ JRST APRSCD ;PRINT LOC, THEN STOP JOB - - APRNXM: TRNN TAC,NXM ;NON-EX MEM? + +APRNXM: TRNN TAC,NXM ;NON-EX MEM? JRST APRPDL ;NO JSP TAC,ERRPTU ;YES ASCIZ /NON EX MEM/ @@ -61,7 +60,8 @@ APRSCD: MOVE TAC1,APRPC ;PRINT APR PC ; 1)"AT USER LOC XXX" OR ; 2)"AT EXEC LOC XXX; EXEC CALLED FROM ; EXEC/USER LOC YYY - ;ADDRESS CHECK ERROR AT ANY LEVEL + +;ADDRESS CHECK ERROR AT ANY LEVEL ;DEVDAT MUST BE SET UP TO POINT TO OFFENDING DEVICE INTERNAL ADRERR @@ -111,7 +111,8 @@ ILLINP: JSP TAC,ERRPTU PUSHJ PDP,ERNAM ;PRINT "DEVICE XXX" JSP TAC,UUOMES ;PRINT MESSAGE,UUOPC,STOP JOB ASCIZ / CANNOT DO INPUT/ - ;OUTPUT UUO FOR INPUT DEVICE + +;OUTPUT UUO FOR INPUT DEVICE ;CALLED AT UUO LEVEL ONLY INTERNAL ILLOUT @@ -214,7 +215,9 @@ INTERNAL DEVEXC DEVEXC: PUSHJ PDP,ERNAM ;PRINT "DEVICE XXX" JRST EXCALP ;PRINT "EXEC CALLED FROM EXEC/USER LOC YYY" - ;ROUTINE TO HALT A JOB WHEN A DEVICE IS NOT READY FOR I/O + + +;ROUTINE TO HALT A JOB WHEN A DEVICE IS NOT READY FOR I/O ;CALLED FROM XXSER AT UUO LEVEL ;CALL MOVE DEVDAT,ADDR. OF DEV. DDB ; PUSHJ PDP,HNGSTP @@ -228,8 +231,9 @@ HNGSTP: PUSH PDP,ITEM PUSHJ PDP,PRQM ;PRINT QUESTION MARK FOR BATCH PUSHJ PDP,ERNAM ;PRINT "DEVICE XXX" PUSHJ PDP,INLMES ;AND MSG. -ASCIZ /OK? +ASCIZ / OK? ^C + ./ PUSHJ PDP,TTYSTC ;START UP TTY IN COMMAND MODE POP PDP,DEVDAT ;BRING BACK DEV DDB & IOS WORD @@ -237,7 +241,8 @@ ASCIZ /OK? PUSHJ PDP,STOP1 ;STOP JOB & POP PDP,ITEM JRST WSCHED ;RESCHEDULE - ;COMMON ERROR MESSAGE SETUP ROUTINES + +;COMMON ERROR MESSAGE SETUP ROUTINES ;CALL: JSP TAC,ERRPTU, ERRDEV, OR ERRPNT ; ASCIZ /MESSAGE/ ; RETURNS HERE WITH DEVDAT SAVED 0(PDP) @@ -329,7 +334,8 @@ EXCALP: PUSHJ PDP,INLMES PCSTOP: PUSHJ PDP,HOLD ;STOP JOB, START TTY AND SET JOB ERROR BIT POP PDP,DEVDAT ;RETURN ONLY IF AT INTERRUPT LEVEL JRST TPOPJ ;REMOVE ERROR CALL AND RETURN - ;ROUTINE TO PRINT PC AS: + +;ROUTINE TO PRINT PC AS: ;1) "EXEC LOC XXX" OR "USER LOC XXX" ;CALL: MOVE TAC1,PC TO PRINT(LH=PC FLAGS) ; PUSHJ PDP,PCP @@ -345,6 +351,7 @@ PCP: MOVEI TAC,XMODE ;ASSUME PC IN EXEC MODE HRRZ TAC,TAC1 ;PRINT RIGHT HALF IN OCTAL ; FALL INTO OCTPNT + INTERN OCTPNT ;ROUTINE TO PRINT 6 DIGIT OCTAL NUMBER @@ -400,7 +407,8 @@ IFE FTTTYSER,< IDPB TAC,DAT ;ADD CHAR TO HALGF DUPLEX OUTPUT STREAM POPJ PDP, > - ;ROUTINE TO PRINT "DEVICE XXX" + +;ROUTINE TO PRINT "DEVICE XXX" ;CALL MOVE DAT,ASCII OUTPUT BYTE POINTER ; PUSH PDP,DEVDAT ; PUSHJ PDP,ERNAM @@ -412,6 +420,7 @@ ERNAM: PUSHJ PDP,INLMES SKIPE TAC1,-1(PDP) ;IS DEVDAT = 0? MOVE TAC1,DEVNAM(TAC1) ;NO, GET DEVICE NAME + ;ROUTINE TO PRINT SIXBIT NAME ;CALL MOVE DAT,ASCII OUTPUT BYTE POINTER ; MOVE TAC1,NAME diff --git a/src/macro.v46 b/src/macro.v46 index b6be933..b67d60d 100644 --- a/src/macro.v46 +++ b/src/macro.v46 @@ -2,9 +2,9 @@ TITLE MACRO V.46(52) SUBTTL RPG/CMF/JF/PMH/DMN 7-SEPT-71 ;COPYRIGHT 1968,1969,1970,1971, DIGITAL EQUIPMENT CORP., MAYNARD, MASS. - VMACRO==46 ;VERSION NUMBER + VMACRO==36 ;VERSION NUMBER VUPDATE==0 ;DEC UPDATE LEVEL - VEDIT==52 ;EDIT NUMBER + VEDIT==0 ;EDIT NUMBER VCUSTOM==0 ;NON-DEC UPDATE LEVEL @@ -73,7 +73,7 @@ IFNDEF KI10, SUBTTL OTHER PARAMETERS .PDP== ^D50 ;BASIC PUSH-DOWN POINTER -IFNDEF LPTWID, ;DEFAULT WIDTH OF PRINTER +IFNDEF LPTWID, ;DEFAULT WIDTH OF PRINTER .LPTWD==8* ;USEFUL WIDTH IN MAIN LISTING .CPL== .LPTWD-^D32 ;WIDTH AVAIABLE FOR TEXT WHEN ;BINARY IS IN HALFWORD FORMAT @@ -2375,10 +2375,10 @@ LOOKL: SOJL SDEL,POPOUT ;TEST FOR END MOVEM RC,VECREL PUSHJ PP,VARA ;FILL OUT SELF-DEFINED VARIABLES PUSHJ PP,STOUTS ;DUMP THE LINE - PUSH PP,IO ;SAVE FLAGS - TLO IO,IOPROG ;XLIST LITS +; PUSH PP,IO ;SAVE FLAGS +; TLO IO,IOPROG ;XLIST LITS PUSHJ PP,LIT1 - POP PP,IO ;GET FLAG BACK +; POP PP,IO ;GET FLAG BACK JUMP2 ENDP2 PUSHJ PP,UOUT @@ -7776,4 +7776,4 @@ IFN PURESW, ;MACRO TO ALLOW SHUFFLING ONCE MORE - DEFINE SHUFFLE <> @@ -405,7 +400,6 @@ DEFINE ENABLE(A) > - ;MACRO TO START A DEVICE FROM UUO LEVEL ;TAC:=XWD DEVINT FLAGS,CONO ARGUMENTS @@ -416,7 +410,8 @@ DEFINE STARTDV(A) HLRM TAC,A'CON CONO PI,PION > - ;LIST OF INDEPENDENT MONITOR COMMAND FEATURES + +;LIST OF INDEPENDENT MONITOR COMMAND FEATURES ;THESE FEATURES CAN BE ELIMINATED FROM A SYSTEM BY ;SETTING THE APPROPRIATE FTXXXX SYMBOL BELOW TO 0 ;AND REASSEMBLING THOSE ROUTINES IN WHICH CODE FOR THE @@ -487,12 +482,15 @@ FT2REL=-1 ;SUBROUTINE CALLS TO SEGCON FOR TWO RELOCATION REGISTER CAPABILITY ; APPEARS IN FIRST,ONCE,APRSR,SCHED + FTKCT=-1 ;ACCUMULATE CORE*RUNNING TIME FOR CHARGING FOR EACH USER FTPRV=-1 ;PRIVILEGE BITS FOR EACH USER FTGETTABL=-1 ;GETTAB UUO - RETURN CONTENTS OF MONITOR JOBTABLES + + FTRA10=0 ;NO RA-10 DISK CONTROLLER (BRYANT DISK) ;TEMPORARILY USED IN DSKSER ;DEFINE THE QUEUES, QUANTUM RUNNING TIME IN JIFFIES, AND PRIORITY @@ -514,6 +512,7 @@ DEFINE QUEUES > + ;JOB STATUS CODES WHICH HAVE NO CORRESPONDING QUEUES ;JOBS ARE UNRUNABLE WHEN IN THESE STATES @@ -526,7 +525,6 @@ DEFINE CODES > XP STTYBF,20 ;SIZE OF TTY BUFFER XP STTYB1,STTYBF+1 ;LENGTH+1 - ASUPPRESS ;ELIMINATE ALL SYMBOLS NOT REFERENCED LATER ; FROM THE SYMBOL TABLE LISTING LIST -- 1.7.1