/PARAMETERS VERSION 8.24 (01-JANUARY-75) / / / / /COPYRIGHT (C) 1975 /DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. / / /THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY /ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH /THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS /SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO- /VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON /EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO /THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE /SOFTWARE SHALL REMAIN IN DEC. / /THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE /WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A COM- /MITMENT BY DIGITAL EQUIPMENT CORPORATION. / /DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR /RELIABILITY OF ITS SOFTWARE ON EQUIPMENT WHICH IS NOT /SUPPLIED BY DEC. /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB /COPYRIGHT 1975 /DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. / /THIS SECTION DEFINES THE HARDWARE CONFIGURATION ON WHICH INDIVIDUAL /EDUSYSTEM 50 MONITORS ARE TO RUN. /FOR EACH STATEMENT, THE COMMENT INDICATES THE POSSIBLE RESPONSES CPU=2 /1 IF CPU IS PDP-8; 0 IF CPU IS PDP-8/I; /2 IF CPU IS PDP-8/E /4 is defined too (PDP-8/A???) CORMEM=70 /HIGHEST DATA FIELD SELECT, FOR 12K SYSTEM, /RESPOND 20, FOR 16K SYSTEM, RESPOND 30, ETC. (70 MAX) PHONES=0 /1 IF DC08 INCLUDES 689AG; /0 IF IT DOES NOT OR IF TTY INTERFACING IS OTHER THAN DC08 EAE=0 /20 IF PROCESSOR INCLUDES EAE; 0 IF IT DOES NOT RF08=0 /40 IF SYSTEM DISC IS DF32; 0 IF SYSTEM DISK IS RF08 RS08=1 /NUMBER OF DISCS ON THE SYSTEM, WHETHER DF/DS OR RF/RS, /RESPOND WITH 1, 2, 3, OR 4. PUNCH=1 /1 IF SYSTEM INCLUDES PUNCH; 0 IF IT DOES NOT TC01=1 /1 IF SYSTEM INCLUDES DECTAPE(S); 0 IF IT DOES NOT RK05=1 /NUMBER OF RK05 CARTRIDGE DISK DRIVES ON THE SYSTEM; 0 TO 4 CDR=1 /1 IF SYSTEM INCLUDES CARD READER; 0 IF IT DOES NOT LPT=1 /1 IF SYSTEM INCLUDES LINE PRINTER; 0 IF NO LINE PRINTER DECIMAL /MONITOR CAPACITY FOR THIS SYSTEM JOBMAX=20 /NUMBER OF SIMULTANEOUS USERS (20 MAXIMUM) /THE FOLLOWING ENTRIES DEFINE THE NUMBER OF TERMINALS /ATTACHED TO THE SYSTEM, AND ALSO THE METHOD OF INTERFACING CONTTY=1 /WE ALWAYS HAVE A CONSOLE ( K00 ) DC08A=0 /NUMBER OF TERMINALS INTERFACED VIA DC08A (PDP-8/I ONLY, 19 MAX.) DC08LO=0 /LOWEST HARDWARE LINE NUMBER UTILIZED ON DC08A; USUALLY 0 PT08=0 /NUMBER OF TERMINALS INTERFACED VIA PT08 (PDP-8 & PDP-8/I ONLY) KL8=16 /NUMBER OF ADDITIONAL TERMINALS INTERFACED VIA KL8 (PDP-8/E ONLY, 19 MAX.) OCTAL PLT=0 IFNZRO CPU < IFNZRO DC08A > IFNZRO 24-JOBMAX&4000 IFNZRO 23-KL8-PT08&4000 IFNZRO 24-DC08A&4000 IFZERO DC08A IFNZRO DC08A < IFNZRO PHONES IFZERO PHONES > NULINE=DC08A+PT08+KL8 /EVERY TERMINAL EXCEPT THE CONSOLE SWDEX=5 /DISK TRACK OF THE FIRST USER SWAP TRACK STOMIN=5 /MINIMUM # FREE STORAGE BLOCK FOR NEWJOB IFZERO RF08-40 < IFZERO RS08-1 IFZERO RS08-2 IFZERO RS08-3 IFZERO RS08-4 DSKEXT=DSKSIZ-1> IFZERO RF08 CLOCKR=144 /MILLISECONDS PER TICK TICMIN=1130 /600 TICKS PER MINUTE INCLK2=0322 /INITIAL CLOCK INCLK1=7400 TICSPS=12 /NUMBER OF SYSTEM TICKS PER SECOND INIDEX=10 /INIT DISC EXTENSION TS8DEX=30 /FIELD 0 DISC EXTENSION*2^3 ERPDEX=0 /ERP DISC EXTENSION*4 ERPWC=0 /ERP WORD COUNT FIPDEX=4 /FIP DISC EXTENSION*4 FIPWC=0 /FIP WORD COUNT SIDEX=ERPDEX /SI DISC EXTENSION*4 SIWC=ERPWC /SI WORD COUNT LIBACT=2 /LIBRARY ACCOUNT # BRKINI=4000 /INITIAL USER BREAK MASK /IOT DEFINITIONS IFNZRO DC08A < /DC08A,DL8I IOTS TTIL=6401 /INCREMENT LINE REGISTER TTI=6402 /TELETYPE INPUT COMMAND TTO=6404 /TELETYPE OUTPUT COMMAND TTCL=6411 /CLEAR LINE REGISTER TTLL=6412 /LOAD LINE REGISTER, CLEAR AC TTRL=6414 /READ LINE REGISTER T1SKP=6421 /SKIP ON CLOCK FLAG T1OFF=6422 /TURN CLOCK OFF T1ON=6424 /TURN CLOCK ON TTIR=6461 /INCREMENT THE R REG. TTCR=6471 /CLEAR THE R REG. TTLR=6472 > /LOAD THE R REG. /EXTENDED MEMORY CDF=6201 /CHANGE TO DATA FIELD 0 CIF=6202 /CHANGE TO INSTRUCTION FIELD 0 CINT=6204 /CLEAR USER IOT RDF=6214 /READ DATA FIELD RIF=6224 /READ INSTRUCTION FIELD RIB=6234 /READ INTERRUPT BUFFER RMF=6244 /RESTORE MEMORY FIELD SINT=6254 /SKIP ON USER IOT CUF=6264 /USER FLAG OFF SUF=6274 /USER FLAG ON /EAE MUY=7405 /MULTIPLY DVI=7407 /DIVIDE NMI=7411 /NORMALIZE SHL=7413 /SHIFT ARITHMETIC LEFT ASR=7415 /ARITHMETIC SHIFT RIGHT LSR=7417 /LOGICAL SHIFT RIGHT MQL=7421 /LOAD MQ SCL=7403 /STEP COUNTER LOAD FROM MEMORY SCA=7441 /STEP COUNTER TO AC MQA=7501 /MQ TO AC IFZERO CPU-2 < DPSZ=7451 /MODE B ONLY - SKIP IF AC&MQ ARE CLEAR SWBA=7447 /CHANGE MODE TO A SWAB=7431 /CHANGE MODE TO B (ALSO DOES MQL) ACS=7403 /AC(7:11) TO SC; AC CLEARED SGT=6006 /SKIP ON GT FLAG > /LINE PRINTER IOTS LSF=6661 /SKIP ON CHAR FLAG SET LCF=6662 /CLEAR CHAR FLAG LSRP=6663 /SKIP ON NOT READY OR ON ERROR LLC=6664 /TRANSMIT CHAR TO PRINTER LSP=6665 /SET PROGRAM INTERRUPT; LP08/LE8 LPC=6666 /TRANSMIT CHAR &CLEAR FLAG LCP=6667 /CLEAR PROGRAM INTERRUPT LIE=6665 /AC11 TO INTERRUPT ENABLE; LS08/LS8E /CTY TPC=6044 /LOAD TELEPRINTER AND PRINT /DISC (DF32) DCMA=6601 /CLEAR DMAR=6603 /READ DMAW=6605 /WRITE DCEA=6611 /CLEAR DISC EXTENDED ADDRESS DEAL=6615 /LOAD EXTENDED ADDRESS DFSE=6621 /SKIP ON ERROR DFSC=6622 /SKIP ON COMPLETION DEAC=6616 /READ EXTENDED ADDRESSES /DISC (RF08) DSAC=6612 DORS=6614 DIML=6615 DIMA=6616 DCXA=6641 DXAL=6643 /CARD READER IOT'S RCSF=6631 RCRA=6632 RCRB=6634 RCNO=6635 /8E ONLY RCRC=6636 /8E ONLY RCNI=6637 /8E ONLY RCSD=6671 RCSE=6672 RCRD=6674 RCSI=6675 /8E ONLY RCTF=6677 /8E ONLY /RK05 IOT'S IFZERO PHONES< DSKP= 6741 DCLR= 6742 DLAG= 6743 DLCA= 6744 DRST= 6745 DLDC= 6746 DMAINT= 6747 > IFNZRO PHONES < DSKP= 6751 DCLR= 6752 DLAG= 6753 DLCA= 6754 DRST= 6755 DLDC= 6756 DMAINT= 6757 > /DECTAPE DTRA=6761 DTCA=6762 DTXA=6764 DTSF=6771 DTRB=6772 DTLB=6774 IFZERO CPU < /KW8I REAL TIME CLOCK CECI=6137 /CLEAR AND ENABLE CLOCK AND INTERRUPT CSCF=6133 /SKIP AND CLEAR FLAG IF FLAG > IFZERO CPU-1 < CECI=6315 /CLOCK ENABLE CSCF=6301 /SKIP ON CLOCK FLAG CCF=6302 /CLEAR CLOCK FLAG, CLEAR ENABLE AND CLEAR BUFFER CLB=6304 > /LOAD BUFFER FROM AC IFZERO CPU-2 < CECI=6131 /CLOCK ENABLE CSCF=6133 /SKIP AND CLEAR FLAG IF FLAG /POWER FAIL IOT SPL=6102 /SKIP IF POWER LOW / 8/E PROCESSOR IOT SRQ=6003 /SKIP ON INTERRUPT REQUEST GTF=6004 /LINK TO AC0, GT FLAG TO AC1 RTF=6005 /AC0 TO LINK, AC1 TO GT FLAG CAF=6007 > /CLEAR ALL FLAGS IFZERO CPU-4 < CLLE=6135 /AC11 TO INTERRUPT ENABLE FOR CLOCK CLCL=6136 /CLEAR CLOCK FLAG CLSK=6137 /SKIP ON CLOCK FLAG SPL=6102 /SKIP POWER LOW CAL=6133 > /CLEAR AC LOW FLAG IFNZRO DC08A < /689AG SRF=6701 /SKIP IF RING FLAG SCF=6711 /SKIP IF CARRIER FLAG DFCRF=6742 /CLEAR RING FLAG CTG=6721 /CLEAR GROUP COUNTER RRS=6702 /READ RING STATUS ITG=6731 /INCREMENT GROUP COUNTER STR=6722 /SET TERMINAL READY EDF=6704 /ENABLE DATAPHONE FEATURES DDF=6714 /DISABLE DATAPHONE FEATURES CTR=6724 /CLEAR TERMINAL FLAG CCF=6741 /CLEAR CARRIER FLAG RCS=6712 /READ CARRIER STATUS > /FIP IOTS (IN ABBREVIATED FORM) SEGS=0006 /RETURN NUMBER OF FREE SEGMENTS ON DISK ASD=0040 /ASSIGN REL=0042 /RELEASE REN=0200 /RENAME OPEN=0201 /OPEN CLOS=0202 /CLOSE RFILE=6603 /READ FILE PROT=0204 /PROTECT WFILE=6605 /WRITE FILE CRF=0210 /CREATE EXT=0211 /EXTEND RED=0212 /REDUCE FINF=6613 /FILE INFORMATION LIN=0214 /LOGIN LOUT=0215 /LOGOUT WHO=6616 /WHO /DEVICE DATA BLOCK DDBSTS=0 /WORD 1, STATUS AND UNIT NUMBER DXON=2000 /XOFF SENT FLAG DSI=1000 /DESTINATION IS S.I. FLAG DFULL=400 /KEYBOARD BUFFER IS FULL DUPL=200 /CONSOLE IN DUPLEX MODE SICOM=100 /COMMAND WAITING DECHO=40 /CAUSE SI TO RE-ECHO CURRENT INPUT BUFFER /DEVICE UNIT NUMBER IS IN BITS 6-11 DDBJN=1 /WORD 2, JOB NUMBER IN 7-11 DDBBRK=2 /BREAK MASK DDBTIM=3 /TIME THAT DEVICE WAS ASSIGNED DDBINP=4 /BUFFER FILL POINTER DDBINC=5 /BUFFER TOTAL COUNT DDBOUC=6 /BUFFER EMPTY COUNT DDBOUP=7 /BUFFER EMPTY POINTER /JOB DATA AREA JOBSTS=0 /STATUS /STR0 JSRUN=4000 /RUN BIT JSEREN=2000 /USER ERROR ENABLE JCOMBD=1000 /LAST TIME THE JOB RAN AS COMPUTE BOUND JSPEEK=400 /ALLOW "PEEK" AND "LOGOUT" IOT'S JSACC=200 /JOB LOGGED IN UNDER PRIVILEGED ACCOUNT (1,2 OR 3) JSIOT=100 /NON-RESIDENT IOT JSIOTC=40 /COPY IOT RESULT TO USER JSEXON=20 /EXECUTE ONLY JSINER=10 /INHIBIT ERROR REPORT FROM SI. (UNTIL NEXT COMMAND) /BITS 9-11 ARE SYSTEM ERROR CODE UUOERF=1 /IOT ERROR SWPRER=2 /SWAP READ ERROR SWPWER=3 /SWAP WRITE ERROR DSKERR=5 /DISC ERROR HUNGDV=6 /HUNG DEVICE /STR1 JSTIME=4000 /TIME IS UP JSF0=2000 /FILE 0 NOT BUSY JSF1=1000 /FILE 1 IS NOT BUSY JSF2=400 /FILE 2 IS NOT BUSY JSF3=200 /FILE 3 IS NOT BUSY JSDEL=100 /KEYBOARD DELIMITER SEEN JSLPT=40 /LINE PRINTER BUFFER IN USE BUT NOT FULL JSTEL=20 /TELEPRINTER OUTPUT BUFFER IN USE BUT NOT FULL JSPTR=10 /CHARACTERS IN READER BUFFER JSPTP=4 /PUNCH BUFFER IN USE BUT IS NOT FULL JSERR=2 /SYSTEM ERROR DETECTED JSWAIT=1 /JOB NOT IN WAIT STATE JOBSTB=2 /DEVICE STATUS REGISTER (FOR RK05 DECTAPE AND CARD READER) JOBWMK=3 /WAIT MASK JOBSRA=5 /JOB RESTART ADDRESS JOBERR=6 /JOB ERROR RESTART ADDRESS JOBLNK=7 /IOT LINKAGE JOBSWR=10 /SWITCH REGISTER JOBREG=11 /PC LINK AC JOBEAE=14 /MQ MODE GT SC JOBACC=16 /ACCOUNT NUMBER JOBF0=17 /POINTER TO FILE 0 CONTROL JOBF1=20 /POINTER TO FILE 1 CONTROL JOBF2=21 /POINTER TO FILE 2 CONTROL JOBF3=22 /POINTER TO FILE 3 CONTROL JOBRTM=23 /LOW ORDER RUN TIME JOBRTH=24 /HI ORDER RUN TIME /FILE CONTROL BLOCK - POINTED TO BY JOBFX, X=0,1,2,3 FILWPT=0 /POINTER TO FILE RETRIEVAL WINDOW FILSCT=1 /SEGMENT NUMBER OF FIRST WINDOW ENTRY FILPRO=2 /FILE PROTECTION - BIT 9 FILPAR=3 /POINTER TO RFILE OR WFILE PARAMETER BLOCK FILDA=4 /DISC ADDRESS OF RFILE OR WFILE FILWC=6 /-WORD COUNT OF RFILE OR WFILE FILRES=7 /POINTER TO FILPIF IN USER AREA /FILE RETRIEVAL WINDOW /WORD 0: UFD LINK TO NEXT GROUP OF 7 SEGMENT POINTERS /WORDS 1-7: SEVEN SEGMENT ADDRESSES /RFILE OR WFILE PARAMETER BLOCK - POINTED AT BY FILPAR FILPFN=0 /FUNCTION; 0603 OR 0605 FILPDX=1 /DISC EXTENSION FILPIF=2 /INTERNAL FILE # (BITS 10-11) AND FIELD # (BITS 7-9) FILPWC=3 /-WORD COUNT FOR THIS TRANSFER FILPCA=4 /CORE ADDRESS FOR THIS TRANSFER FILPDA=5 /DISC ADDRESS FILPRA=6 /EXEC RETURN ADDRESS FOR THIS TRANSFER FILPCT=7 /POINTER TO FILE CONTROL BLOCK /CORE TABLE CONTROL FLAGS SWAP=4000 /SWAP REQUEST LOCK=2000 /LOCK IN CORE NOTRUN=1000 /HAS NOT BEEN SCHEDULED TO RUN FIP=400 /FILE PHANTOM SI=200 /SYSTEM INTERPRETER NOHOLD=140 /INHIBIT "NOTRUN" STATUS AFTER FOUR CONSECUTIVE FILE TRANSFERS CJOB=37 /BITS 7-11 CONTAIN THE JOB # /FIP TABLE DEFINITIONS SATSIZ=530 JTABLE=6000 ENTABL=JTABLE+JOBMAX+1 UTABLE=ENTABL+JOBMAX+JOBMAX+JOBMAX+JOBMAX+JOBMAX+JOBMAX+JOBMAX+JOBMAX RTABLE=UTABLE+JOBMAX+JOBMAX+JOBMAX+JOBMAX+JOBMAX+JOBMAX+JOBMAX+JOBMAX /TABLES CORTBL=7001 /CORE ASSIGNMENT TABLE L2QTB=CORTBL+7 IFZERO DC08A IFNZRO DC08A /SIZE OF FIELD 1 DC08A CODE PLUS 689AG CODE OUTREG=200 /ACTIVE OUTPUT REGISTERS (TTY'S, LPT & PTP) SKPTBL=OUTREG+NULINE+3 /START OF IOT SKIP TABLE SKPTP=SKPTBL+NULINE+NULINE+3 /POSITION OF PUNCH SKIP IN SKIP TABLE RINGIN=SKPTP+3 /KEYBOARD INPUT RING BUFFER ENDBUF=OUTREG+200 /END OF KEYBOARD INPUT BUFFER INPUTS=ENDBUF-RINGIN%2 /NUMBER OF POSSIBLE ENTRIES IN THE KEYBOARD RING BUFFER DATFLD=CDF 10 /MONITOR DATA FIELD SELECT IFZERO EAE-20 IFZERO EAE IFZERO CPU&7776 > IFNZRO OUTREG&1