/ P?S/8 SYSTEM STATUS COMMAND / LAST EDIT: 28-DEC-1986 03:00:00 CJL / MUST BE ASSEMBLED WITH '/J' SWITCH SET. / THIS PROGRAM PRINTS OUT SUNDRY INFORMATION ABOUT P?S/8 AND THE MACHINE / IT IS RUNNING ON. / PROGRAM OPTIONS. / /F OUTPUT CHARACTER AS PAGE DELIMITER. DEFAULT IF OUTPUT IS TO / THE SYSTEM LINE-PRINTER. IF NOT INVOKED AND OUTPUT IS TO THE / CONSOLE TERMINAL, USE HASH LINE AS PAGE DELIMITER. / /N NO PAGE DELIMITERS. / /T OUTPUT TO CONSOLE TERMINAL. DEFAULT IS TO USE THE LINE-PRINTER / IF AVAILABLE ELSE THE CONSOLE TERMINAL. / /U OUTPUT IN UPPER CASE ONLY. DEFAULT IS UPPER/LOWER CASE OUTPUT. / PROGRAM MESSAGES. / RUNNING SYSTAT PRODUCES THE FOLLOWING OUTPUT: / P?S/8 SYSTEM STATUS SYSTAT V10C MONDAY 17-NOV-86 VERSION.REVISION,DAY,DATE / SYSTEM: TC08:7 (01) DEVICE.UNIT,SYSTEM NUMBER / VERSION: 8.1 P?S/8 VERSION.REVISION / CONSOLE: KL8ESP:0 (41) (DISABLED) OVERLAY.UNIT,NUMBER,ACTIVITY / CPU TYPE: PDP-8/E BASIC MACHINE TYPE / PHYSICAL MEMORY: 32K PHYSICAL CORE SIZE / MAXIMUM MEMORY: 28K (LIMITED BY SYSTEM) MAXIMUM CORE SIZE,LIMITATION / LOGICAL MEMORY: 4K LOGICAL CORE SIZE / EAE: NOT INSTALLED (OR AVAILABILITY) / HANDLER INFORMATION: / NAME BLOCK LENGTH ENTRY BLOCK SIZE HEADER / [SPECIFIC HANDLER INFORMATION HERE AS NECESSARY] / BBBB NN FIRST FREE HANDLER BLOCK,SIZE / FREE SLOTS: NN FREE HANDLER SLOTS / DEFINITIONS. BSGRP= 0003 /CURRENT BASE YEAR GROUP VALUE CHAR= 0020 /MONITOR'S INPUT BUFFER (WHERE VERSION IS) COM= 0017 /COMPLEMENT AC HANDBLK=0122 /HANDLER INFORMATION BLOCK HANDMAX=0040 /NUMBER OF BLOCKS TO HOLD HANDLERS (MAXIMUM) HIDWRD= 7600 /SYSTEM HANDLER ID NUMBER WORD IAAC= 6171 /"A" REGISTER TO AC IACA= 6167 /AC TO "A" REGISTER INCON= 0031 /EQUATED FROM CONSOLE! JMSC= JMS . /CURRENT PAGE JMS INSTRUCTION LINC= 6141 /GOTO LINC MODE LPT= 0066 /SYSTEM LPT: DEVICE CODE MUY= 7405 /MULTIPLY NL0001= CLA IAC /LOAD AC WITH 0001 NL0002= CLA CLL CML RTL /LOAD AC WITH 0002 NL0010= CLA IAC RAL RAR /LOAD AC WITH 0010 NL0100= CLA IAC BSW /LOAD AC WITH 0100 NL2000= CLA CLL CML RTR /LOAD AC WITH 2000 NL3776= CLA CLL CMA RAR RAL /LOAD AC WITH 3776 NL4000= CLA CLL CML RAR /LOAD AC WITH 4000 NL7775= CLA CLL CMA RTL /LOAD AC WITH 7775 NL7776= CLA CLL CMA RAL /LOAD AC WITH 7776 NL7777= CLA CMA /LOAD AC WITH 7777 OUTCON= 0033 /EQUATED FROM CONSOLE! OUTLPT= 0035 /EQUATED FROM CONSOLE! OVID= 0106 /OVERLAY ID OVRBLK= 2571 /OVERLAY BLOCK OVRFUN= 2570 /OVERLAY RELOAD FUNCTION OVRWRD= 0111 /OVERLAY ID WORD PDP= 0002 /GOTO PDP-8 MODE REVISIO="D&77 /REVISION OF SYSTAT SBTFUN= 7602 /SYSTEM BOOTSTRAP UNIT WORD SCRSIZE=7611 /SYSTEM CORE SIZE WORD SDATE= 7610 /SYSTEM DATE WORD SWAL= 7604 /SWITCHES /A-/L SWBA= 7447 /SWITCH TO MODE "A" EAE SWMX= 7605 /SWITCHES /M-/X SYSIO= 7640 /SYSTEM I/O ROUTINES ENTRY POINT TRPBLK= 0113 /I/O TRAP BLOCKS TTY= 0003 /SYSTEM CONSOLE DEVICE CODE VERSION=12 /VERSION OF SYSTAT / DEPENDENT DEFINITIONS. JMSSYSI=SYSIO&177+JMSC /CALL TO SYSIO FROM ITS PAGE KCCIOT= TTY^10+6002 /CLEAR KEYBOARD FLAG KRBIOT= TTY^10+6006 /READ KEYBOARD BUFFER, CLEAR FLAG KRSIOT= TTY^10+6004 /READ KEYBOARD BUFFER KSFIOT= TTY^10+6001 /SKIP ON KEYBOARD FLAG LLSIOT= LPT^10+6006 /LOAD LPT: SEQUENCE LPTCALL=JMS OUTLPT /LOGICAL LPT: CALL LSFIOT= LPT^10+6001 /SKIP ON LPT: FLAG TLSIOT= TTY+1^10+6006 /LOAD TELEPRINTER SEQUENCE TSFIOT= TTY+1^10+6001 /SKIP ON TELEPRINTER FLAG *0 /START AT THE BEGINNING BLK, .-. /LATEST HANDLER BLOCK OCTEMP, .-. /OCTAL PRINTOUT TEMPORARY PTR, .-. /HANDLER INFORMATION POINTER QUO, .-. /DIVIDE QUOTIENT REM, .-. /DIVIDE REMAINDER TEMP, .-. /TEMPORARY *10 /DEFINE AUTO-INDEX AREA XR1, .-. /AUTO-INDEX NUMBER ONE XR2, .-. /AUTO-INDEX NUMBER TWO CTLTMP, .-. /TEMPORARY DAYPTR, .-. /DAY OF THE WEEK MESSAGE POINTER ECHOSW, 0 /ECHO SWITCH LINCNT, -2 /LINE COUNTER LSEP, "-&77 /*** LPT: **** P7TEMP, .-. /PRINTING TEMPORARY *20 /GET PAST AUTO-INDEX AREA CHKUP, .-. /CHECK FOR <^C>, ETC. ROUTINE JMS CTLCTST /CHECK FOR <^C>, ETC. TAD [-"O!300] /COMPARE TO <^O> SNA /SKIP IF DIFFERENT JMP DOUO /JUMP IF IT MATCHES TAD [-"S+"O] /COMPARE TO <^S> PSYSIO, SZA CLA /SKIP IF IT MATCHES JMP I CHKUP /RETURN IF NOT JMS CTLCTST /CHECK FOR <^C>, ETC. TAD [-"Q!300] /COMPARE TO <^Q> SZA CLA /SKIP IF IT MATCHES JMP .-3 /JUMP IF NOT JMP I CHKUP /RETURN IF SO DOUO, TAD ["^&177] /GET AN "^" JMS P7OUT /PRINT IT TAD ["O&177] /GET AN "O" JMS P7OUT /PRINT IT NL4000 /SET INVERSION BIT TAD ECHOSW /INVERT ECHO STATUS DCA ECHOSW /STORE IT BACK JMP I CHKUP /RETURN IOREAD, .-. /I/O SUBROUTINE JMS I PSYSIO/[SYSIO] /CALL I/O ROUTINES IOBUFFER /TRANSFER ADDRESS IOFUN, .-. /FUNCTION WILL BE FILLED IN IOBLK, .-. /BLOCK WILL BE FILLED IN JMP I IOREAD /RETURN P7CH, .-. /SEVEN-BIT PRINT ROUTINE DCA P7TEMP /SAVE PASSED VALUE P7AGN, JMS CHKUP /CHECK FOR <^C>, ETC. TAD ECHOSW /GET ECHO SWITCH SPA CLA /SKIP IF ECHO ON JMP P7OFF /ELSE FORGET IT TAD P7TEMP /GET THE VALUE P7TSF, TSFIOT /**** LPT: **** LSFIOT /**** CONSOLE **** CIF MCS+10 /**** LOGLPT: **** CIF MCS+10 P7JMP, JMP P7AGN /**** LPT: **** JMP P7AGN /**** CONSOLE **** JMS OUTCON /**** LOGLPT: **** JMS OUTLPT P7TLS, TLSIOT /**** LPT: **** LLSIOT /**** CONSOLE **** JMP P7AGN /**** LOGLPT: **** JMP P7AGN P7OFF, JMS CHKUP /CHECK FOR <^C>, ETC. JMP I P7CH /RETURN P7OUT, .-. /DEDICATED OUTPUT ROUTINE P7OTSF, TSFIOT /**** CONSOLE **** CIF MCS+10 P7OJMP, JMP P7OTSF /**** CONSOLE **** JMS OUTCON P7OTLS, TLSIOT /**** CONSOLE **** JMP P7OTSF L7600, CLA!400 /CLEAN UP JMP I P7OUT /RETURN CTLCTST,.-. /TEST FOR <^C>, ETC. CLA /CLEAN UP CHKKSF, KSFIOT /**** CONSOLE **** CIF MCS+10 CHKJMP, JMP I CTLCTST /**** CONSOLE **** JMS INCON CHKKRS, KRSIOT/OR KRBIOT /**** CONSOLE **** JMP I CTLCTST AND [177] /JUST SEVEN-BIT DCA CTLTMP /SAVE IT NL7775 /-3 TAD CTLTMP /COMPARE TO CHARACTER SNA /SKIP IF NOT <^C> ISZ I [SCRSIZE] /ELSE SET SOFT INDICATOR SPA SNA CLA /SKIP IF GREATER THAN <^C> JMP I L7600/[SBOOT] /ELSE GET OUT OF HERE CHKKCC, KCCIOT/OR 0000 /**** CONSOLE **** 0000 TAD CTLTMP /GET THE CHARACER JMP I CTLCTST /RETURN PAGE SYSTAT= . /SYSTAT PROGRAM STARTS HERE IFNZRO .&177 SYSTAT, NOP /HERE IN CASE CHAINED TO JMS I (INITIALIZE) /DO ONCE-ONLY CODE, ETC. NL2000 /SET /N MASK AND I [SWMX] /GET THE /N BIT SNA CLA /SKIP IF SET JMS I (NEWPAGE) /ELSE DO NEW PAGE EJECT JMS I [SCRIBE] /TELL THEM BLURB /OUR OPENING BLURB TAD DAYPTR /GET DAY OF THE WEEK DCA .+2 /STORE IN-LINE JMS I [SCRIBE] /TELL THEM .-. /WHAT DAY TODAY IS JMS I [SCRIBE] /TELL THEM DATMSG /TODAY'S DATE JMS I [SCRIBE] /GIVE THEM THE SYSMSG /SYSTEM MESSAGE TAD I (SBTFUN) /GET BOOTSTRAP FUNCTION AND [7] /JUST UNIT BITS TAD [1^100] /TURN INTO READ DCA IOFUN /STORE THE FUNCTION TAD (TRPBLK) /POINT TO TRAP BLOCKS DCA IOBLK /STORE IN I/O CALL JMS IOREAD /CALL I/O ROUTINES TO READ IN FIRST TRAP BLOCK TAD I (HIDWRD+1&177+IOBUFFER) /GET FIRST DEVICE NAME PAIR DCA I (DVNMSG+1) /STORE IN MESSAGE TAD I (HIDWRD+2&177+IOBUFFER) /GET SECOND DEVICE NAME PAIR DCA I (DVNMSG+2) /STORE IN MESSAGE JMS I [SCRIBE] /GIVE THEM THE DVNMSG /DEVICE NAME MESSAGE TAD (":&177) /GET A ":" JMS P7CH /PRINT IT TAD I (SBTFUN) /GET BOOTSTRAP FUNCTION JMS I [PRDIGIT] /PRINT BOOTSTRAP UNIT JMS I [SCRIBE] /PRINT THE SEPMSG /SEPARATION MESSAGE TAD I (HIDWRD&177+IOBUFFER) /GET SYSTEM NUMBER JMS I [P2OCT] /PRINT IT JMS I [SCRIBE] /PRINT THE ENDMSG /ENDING MESSAGE JMS I [SCRIBE] /PRINT THE VERMSG /VERSION MESSAGE TAD (CHAR%200+1) /SETUP FOR DCA IOBLK /I/O READ JMS IOREAD /READ IN BLOCK CONTAINING VERSION TAD I (CHAR&177+IOBUFFER) /GET THE VERSION RTR;RTR;RTR /MOVE DOWN HIGH-ORDER AND [77] /JUST CHARACTER BITS JMS I [P6CH] /PRINT IT TAD I (CHAR&177+IOBUFFER) /GET IT AGAIN AND [77] /JUST REVISION BITS TAD (-":!200) /ADD ON UPPER LIMIT CLL /CLEAR LINK FOR TEST TAD (":-"0) /ADD ON RANGE SNL CLA /SKIP IF A DIGIT JMP .+3 /ELSE DON'T PRINT A "." TAD (".&177) /GET A "." JMS P7CH /PRINT IT TAD I (CHAR&177+IOBUFFER) /GET THE REVISION JMS I [P6CH] /PRINT IT JMS I [SCRIBE] /GIVE THEM THE CONMSG /CONSOLE MESSAGE TAD (OVRBLK%200+1) /SETUP FOR DCA IOBLK /OVERLAY-AFFECTED BLOCK READ JMS IOREAD /READ IN THE BLOCK TAD I (OVRFUN&177+IOBUFFER) /GET THE READ FUNCTION AND [7] /JUST UNIT BITS TAD [1^100] /MAKE IT A ONE PAGE READ DCA IOFUN /STORE IN I/O CALL TAD I (OVRBLK&177+IOBUFFER) /GET THE BLOCK NUMBER OF OVERLAY SNA /SKIP IF VALID JMP CONDEFAULT /JUMP IF NOT DCA IOBLK /STORE FOR OVERLAY READ JMS IOREAD /READ IN OVERLAY HEADER TAD I (OVID&177+IOBUFFER) /GET FIRST OVERLAY NAME PAIR SNA /SKIP IF VALID JMP CONDEFAULT /JUMP IF NOT DCA I (OVIDMSG+1) /STORE IN MESSAGE TAD I (OVID+1&177+IOBUFFER) /GET SECOND OVERLAY NAME PAIR DCA I (OVIDMSG+2) /STORE IN MESSAGE TAD I (OVID+2&177+IOBUFFER) /GET THIRD OVERLAY NAME PAIR DCA I (OVIDMSG+3) /STORE IN MESSAGE JMS I [SCRIBE] /GIVE THEM OVIDMSG /THE OVERLAY NAME JMP I (OVCOMMON) /CONTINUE THERE CONDEFA,JMS I [SCRIBE] /GIVE THEM THE DEFMSG /DEFAULT MESSAGE DCA I (OVRWRD&177+IOBUFFER) /PREVENT PROBLEMS JMP I (OVCOMMON) /CONTINUE THERE PAGE OVCOMMO,TAD (":&177) /GET A ":" JMS P7CH /PRINT IT TAD IOFUN /GET OVERLAY UNIT JMS I [PRDIGIT] /PRINT IT JMS I [SCRIBE] /GIVE THEM THE SEPMSG /SEPARATION MESSAGE TAD I (OVRWRD&177+IOBUFFER) /GET THE OVERLAY TYPE WORD RTR;RTR;RTR /MOVE DOWN JMS I [P2OCT] /PRINT IT JMS I [SCRIBE] /GIVE THEM THE ENDMSG /ENDING MESSAGE NL0002 /SETUP THE "C" BIT MASK AND I [SCRSIZE] /GET THE BIT SZA CLA /SKIP IF CONSOLE CURRENTLY OFF JMP CONON /JUMP IF CURRENTLY ENABLED JMS I [SCRIBE] /GIVE THEM THE DISMSG /DISABLED MESSAGE CONON, JMS I [SCRIBE] /GIVE THEM THE CPUMSG /CPU TYPE MESSAGE JMS I (MACHINE) /IDENTIFY CPU TYPE DCA CPUTEMP /SAVE IT TAD CPUTEMP /GET IT BACK CLL RTL /*4 TAD CPUTEMP /*5 TAD (CPULIST) /POINT TO PROPER MESSAGE DCA .+2 /STORE IN-LINE JMS I [SCRIBE] /TELL THEM .-. /CPU NAME JMS I [SCRIBE] /TELL THEM MEMMSG /MEMORY MESSAGE TAD I [SCRSIZE] /GET THE CORE SIZE WORD RTL;RTL /MOVE DOWN AND JMS I (MEMPRT) /PRINT OUT PHYSICAL SIZE JMS I [SCRIBE] /GIVE THEM THE MAXMSG /MAXIMUM MEMORY MESSAGE TAD I [SCRSIZE] /GET THE CORE SIZE WORD AGAIN RTR;RTR;RTR /MOVE DOWN AND JMS I (MEMPRT) /PRINT OUT MAXIMUM SIZE TAD I [SCRSIZE] /GET THE CORE SIZE WORD AGAIN AND (4) /JUST THE ADJUSTABLE BIT SNA CLA /SKIP IF SET JMP .+3 /JUMP IF NOT JMS I [SCRIBE] /TELL THEM LSYSMSG /OF SYSTEM LIMITATION NL0002 /SET THE "C" BIT MASK AND I [SCRSIZE] /GET THE BIT SNA CLA /SKIP IF SET JMP .+3 /JUMP IF NOT JMS I [SCRIBE] /TELL THEM LOVLMSG /OF CONSOLE LIMITATION JMS I [SCRIBE] /TELL THEM THE LOGMSG /LOGICAL MEMORY MESSAGE TAD I [SCRSIZE] /GET THE CORE SIZE WORD AGAIN RTR;RAR /MOVE DOWN AND JMS I (MEMPRT) /PRINT OUT LOGICAL SIZE JMS I [SCRIBE] /TELL THEM OF EAEMSG /EAE MESSAGE TAD CPUTEMP /GET CPU TYPE TAD (EAETEST) /POINT AT LIST ELEMENT DCA CPUTEMP /STASH THE POINTER TAD I CPUTEMP /GET THE ADDRESS DCA CPUTEMP /STASH IT JMP I CPUTEMP /GO THERE / COMES HERE IF TESTING FOR PDP-8/E EAE. SETA, SWBA /SET MODE "A" NOP /JUST IN CASE / COMES HERE TO TEST FOR EAE. TESTEAE,NL7777 /SET SOME BITS MQL /LOAD THEM CLA /JUST IN CASE MUY; CLA /ATTEMPT TO GET A NUMBER SNA CLA /SKIP IF WE GOT A VALUE JMP NOEAE /JUMP IF WE DIDN'T JMS I [SCRIBE] /TELL THEM AVLMSG /EAE IS AVAILABLE JMP EAECOMMON /CONTINUE THERE NOEAE, JMS I [SCRIBE] /TELL THEM NIMPMSG /THEY DIDN'T GET EAE JMP EAECOMMON /CONTINUE THERE NOTEAE, JMS I [SCRIBE] /TELL THEM NAVLMSG /THEY CAN'T HAVE EAE EAECOMM,JMS I [SCRIBE] /GIVE THEM THE HINMSG /HANDLER INFORMATION MESSAGE TAD I (SBTFUN) /GET BOOTSTRAP FUNCTION AND [7] /JUST UNIT BITS TAD [1^100] /TURN INTO READ DCA IOFUN /STORE THE FUNCTION TAD (HANDBLK) /SETUP THE DCA IOBLK /I/O BLOCK JMS IOREAD /READ IN HANDLER INFORMATION BLOCK TAD (IOBUFFER) /SETUP THE DCA PTR /READ POINTER JMP I (HANDLUP) /CONTINUE THERE CPUTEMP,.-. /TEMPORARY PAGE HANDLUP,TAD I PTR /GET FIRST HANDLER NAME CHARACTER SNA /SKIP IF VALID JMP EOHAND /JUMP IF DELIMITER CHARACTER JMS P7CH /PRINT FIRST CHARACTER ISZ PTR /BUMP TO NEXT TAD I PTR /GET SECOND CHARACTER JMS P7CH /PRINT IT ISZ PTR /BUMP TO NEXT TAD I PTR /GET THIRD CHARACTER JMS P7CH /PRINT IT ISZ PTR /BUMP TO NEXT JMS I [P6CH] /PRINT JMS I [P6CH] /SOME JMS I [P6CH] /BLANKS TAD I PTR /GET BLOCK NUMBER DCA BLK /SAVE IN CASE LAST ENTRY TAD BLK /GET IT BACK JMS I (PRTOCT) /PRINT IT JMS I [P6CH] /\ JMS I [P6CH] / \ JMS I [P6CH] / >PRINT SOME BLANKS JMS I [P6CH] / / JMS I [P6CH] // ISZ PTR /BUMP TO NEXT TAD I PTR /GET LENGTH WORD AND (37) /JUST LENGTH BITS SNA /SKIP IF SIGNIFICANT TAD [40] /ELSE SET MAXIMUM VALUE DCA TEMP /SAVE FOR NOW TAD BLK /GET LATEST BLOCK TAD TEMP /ADD ON LENGTH DCA BLK /SAVE IN CASE LAST ENTRY TAD TEMP /GET LENGTH JMS I [P2OCT] /PRINT IT JMS I [P6CH] /\ JMS I [P6CH] / \ JMS I [P6CH] / >PRINT SOME BLANKS JMS I [P6CH] / / JMS I [P6CH] // ISZ PTR /BUMP TO NEXT TAD I PTR /GET ENTRY WORD AND [177] /JUST ENTRY BITS JMS I (P3OCT) /PRINT ENTRY POINT JMS I [P6CH] /\ JMS I [P6CH] / \ JMS I [P6CH] / >PRINT SOME BLANKS JMS I [P6CH] / / JMS I [P6CH] // TAD I PTR /GET ENTRY WORD AGAIN AND L7600/[7600] /JUST BLOCK-SIZE BITS CLL RTL;RTL;RTL /MOVE DOWN CMA /FORM NEGATIVE DCA QUO /SAVE COUNTER TAD (2) /GET A BLOCK-SIZE VALUE ISZ QUO /DONE ENOUGH? JMP .-2 /NO, GO BACK JMS I (P3OCT) /PRINT HIGHEST SIZE DIGITS JMS I [PRDIGIT] /PRINT TWO JMS I [PRDIGIT] /TRAILING ZEROES ISZ PTR /BUMP TO NEXT JMS I [CRLF] /DO A , ISZ PTR /BUMP PAST ISZ PTR /DUMMY WORDS JMP HANDLUP /KEEP GOING EOHAND, JMS I [SCRIBE] /GIVE THEM THE FREEMSG /FREE MESSAGE TAD BLK /GET FIRST FREE BLOCK JMS I (PRTOCT) /PRINT IT JMS I [P6CH] /\ JMS I [P6CH] / \ JMS I [P6CH] / >PRINT SOME BLANKS JMS I [P6CH] / / JMS I [P6CH] // TAD BLK /GET HIGHEST BLOCK CIA /INVERT IT TAD (HANDBLK+1+HANDMAX) /SUBTRACT FROM HIGHEST AVAILABLE BLOCK JMS I [P2OCT] /PRINT DIFFERENCE JMS I [SCRIBE] /GIVE THEM THE SLOTMSG /FREE SLOTS MESSAGE TAD PTR /GET THE POINTER CIA /INVERT IT TAD (IOBUFFER+200-10) /SUBTRACT FROM LAST ENTRY CLL RTR;RAR /%10 FOR SLOT COUNT JMS I [P2OCT] /PRINT IT JMS I [CRLF] /DO A , NL0002 /SET "C" MASK BIT AND I [SCRSIZE] /GET THE BIT SNA CLA /SKIP IF SET JMP TESTEN /JUMP IF NOT TAD P7JMP /GET OUTPUT INSTRUCTION TAD (-LPTCALL) /COMPARE TO POSSIBLE VALUE SZA CLA /SKIP IF IT MATCHES TESTEN, NL2000 /SET /N MASK AND I [SWMX] /GET THE /N BIT SNA CLA /SKIP IF SET JMS I (NEWPAGE) /ELSE FINISH THE PAGE JMP I L7600/[SBOOT] /GOODBYE! PAGE / CPU IDENTIFYING ROUTINE. / RETURNS VALUE IN AC ACCORDING TO THE FOLLOWING RULE: / AC CPU TYPE / 0 UNKNOWN (DCC112, MP-12?) / 1 PDP-5 (THE INCOMPATIBLE ONE!) / 2 PDP-8 (THE REAL ONE!) / 3 PDP-8/S (THE SLOW ONE!) / 4 LINC-8 (THE STRANGE ONE!) / 5 PDP-8/I (THE ORANGE ONE!) / 6 PDP-8/L (THE STRIPPED-DOWN ONE!) / 7 PDP-12 (THE GREEN ONE! (BLUE?)) / 10 PDP-8/E (THE FAST ONE!) / 11 PDP-8/A (THE WIDE ONE!) / 12 6100 (THE MICRO ONE!) / 13 6120 (THE HARRIS ONE!) MACHINE,.-. /MACHINE IDENTIFYING ROUTINE CLA CLL /THIS WORKS ON EVERYBODY! TAD 0 /GET PDP-5 PC DCA NEWPAGE /SAVE IT TAD (IMA5-1) /GET PDP-5 NEW PC DCA 0 /STORE IT / IF WE GET HERE, WE'RE NOT A PDP-5. TAD NEWPAGE /GET OLD LOCATION ZERO DCA 0 /RESTORE IT NL3776 /PDP-8/I, L WEIRDNESS TAD (-3776) /COMPARE TO POSSIBLE VALUE SNA CLA /SKIP IF NOT THOSE TWO JMP IMA8IL /JUMP IF ONE OF THEM / IF WE GET HERE, WE'RE NOT A PDP-8/I OR PDP-8/L. NL7776 /SETUP -2 TAD (-7776) /COMPARE TO EXPECTED VALUE SZA CLA /SKIP IF OK JMP IMA8S /JUMP IF RETARDED BROTHER / IF WE GET HERE, WE'RE NOT A PDP-8/S. NL0100 /SETUP 0100 TAD (-100) /COMPARE TO EXPECTED VALUE SNA CLA /SKIP IF STRAIGHT PDP-8 JMP IMAOMNIBUS /JUMP IF NEWER CPU / IF WE GET HERE, WE ARE A PDP-8, BUT ARE WE A LINC-8? NL7777 /SETUP LINC TEST VALUE IACA /LOAD LINC "A" REGISTER CLA /CLEAN UP IAAC /GET IT BACK IAC /ADD ONE SNA CLA /SKIP IF NO LINC HARDWARE JMP IMAL8 /JUMP IF LINC-8 / SINCE WE DON'T CARE ABOUT PERIPHERALS, WE ARE A PDP-8. JMP IMA8 /GO TELL THEM WE ARE A PDP-8 / COMES HERE IF PDP-8/I OR PDP-8/L. IMA8IL, NL7777 /SETUP TEST VALUE CLA!401 /DO PDP-8/I GROUP THREE EAE CLA SZA CLA /SKIP IF PDP-8/I JMP IMA8L /JUMP IF NOT / IF WE GET HERE, WE ARE A PDP-8/I, BUT ARE WE A PDP-12? LINC /GOTO LINC MODE COM /COMPLEMENT AC IF PDP-12, ELSE A HARMLESS AND PDP /GOTO PDP8 MODE IF PDP-12, ELSE HARMLESS AND IAC /ADD ONE FOR TEST SNA CLA /SKIP IF JUST PDP-8/I JMP IMA12 /JUMP IF ACTUALLY A LINC-8/I / SINCE WE DON'T CARE ABOUT PERIPHERALS, WE ARE JUST A PDP-8/I. JMP IMA8I /TELL THEM WE ARE A PDP-8/I IMAOMNI,RTL RTR /DO STRANGE OMNIBUS INSTRUCTION SNA /SKIP IF NOT A MICRO CHIP JMP IMA61 /JUMP IF ONE OF THOSE THINGS TAD (.&7600+16^7777) /CHECK FOR PDP-8/E VALUE SNA /SKIP IF NOT HIM JMP IMA8E /JUMP IF IT IS A PDP-8/E (/F OR /M OR 8A-6XX) TAD (.&7600+16-IMAOMNIBUS) /COMPARE TO PDP-8/A VALUE SNA CLA /SKIP IF SOMEBODY ELSE JMP IMA8A /JUMP IF IT MATCHES / IF WE GET HERE, SOME STRANGE PROCESSOR IS RUNNING US. JMP IMAUNKNOWN /YOU FIGURE IT OUT! / IF WE GET HERE, WE ARE A 6100 OR 6120. IMA61, NL0010 /DO 6120 SPECIAL INSTRUCTION TAD (-10) /COMPARE TO EXPECTED VALUE SNA CLA /SKIP IF OTHER JMP IMA6120 /JUMP IF IT MATCHES / WE APPARENTLY ARE ON A 6100, SO TELL THEM SO. JMP IMA6100 /TELL THEM WE ARE A 6100 MACHINE (VT-78, ETC.) / RETURN GAUNTLET. IMA6120,IAC /SET 6120 VALUE IMA6100,IAC /SET 6100 VALUE IMA8A, IAC /SET PDP-8/A VALUE IMA8E, IAC /SET PDP-8/E VALUE IMA12, IAC /SET PDP-12 VALUE IMA8L, IAC /SET PDP-8/L VALUE IMA8I, IAC /SET PDP-8/I VALUE IMAL8, IAC /SET LINC-8 VALUE IMA8S, IAC /SET PDP-8/S VALUE IMA8, IAC /SET PDP-8 VALUE IMA5, IAC /SET PDP-5 VALUE IMAUNKN,JMP I MACHINE /RETURN NEWPAGE,.-. /PRINT ROUTINE DOFF, JMS PRNLFS /**** LPT: **** 0000 LPZAP1, TAD (-6) /**** LPT: **** NL7777 DCA LINCNT /STASH THE COUNT TAD LSEP /GET "-" OR JMS P7CH /PRINT IT ISZ LINCNT /DONE ENOUGH? JMP .-3 /NO, GO DO ANOTHER ONE JMS I [CRLF] /YES, DO A , NL7775 /SETUP FOR DCA LINCNT /3 'S LPZAP2, JMS PRNLFS /**** LPT: **** 0000 TAD (-76) /SETUP FOR DCA LINCNT /REST OF PAGE JMP I NEWPAGE /RETURN CRLF, .-. /, ROUTINE CLA /JUST IN CASE TAD [15] /GET A JMS P7CH /PRINT IT TAD [12] /GET A JMS P7CH /PRINT IT ISZ LINCNT /ACCOUNT FOR IT NOP /JUST IN CASE JMP I CRLF /RETURN PRNLFS, .-. /PRINT 'S ROUTINE JMS I [CRLF] /DO A (MAYBE), TAD LINCNT /GET LINE COUNTER SZA CLA /SKIP IF IT OVERFLOWED JMP .-3 /JUMP IF NOT JMP I PRNLFS /RETURN PRTOCT, .-. /PRINT OCTAL VALUE ROUTINE DCA OCTEMP /SAVE PASSED VALUE JMS I [P6CH] /PRINT TWO JMS I [P6CH] / CHARACTERS TAD [-4] /SETUP THE DCA TEMP /DIGIT COUNT DIGLUP, TAD OCTEMP /GET THE VALUE RTL;RAL /MOVE UP DCA OCTEMP /SAVE IT BACK TAD OCTEMP /GET IT AGAIN RAL /ADJUST IT JMS I [PRDIGIT] /PRINT IT ISZ TEMP /DONE YET? JMP DIGLUP /NO, KEEP GOING JMP I PRTOCT /YES, RETURN PAGE / OCTAL DIGIT PRINT ROUTINE. PRDIGIT,.-. /PRINT SINGLE OCTAL DIGIT ROUTINE AND [7] /JUST ONE DIGIT TAD ["0&77] /MAKE IT ASCII JMS I [P6CH] /PRINT IT JMP I PRDIGIT /RETURN P6CH, .-. /SIX-BIT PRINT ROUTINE AND [77] /JUST IN CASE SNA /SKIP IF SOMETHING THERE TAD [" &77] /ELSE USE TAD [" &77] /INVERT IT AND [77] /MASK IT OFF TAD [" &77] /INVERT IT AGAIN JMS P7CH /PRINT IT JMP I P6CH /RETURN / MEMORY PRINT ROUTINE. MEMPRT, .-. /MEMORY PRINT ROUTINE AND [7] /JUST SIZE BITS IAC /ADD ONE CLL RTL /*4 FOR K'S JMS I [DIVIDE] /DIVIDE 12 /BY TEN SNA /TWO DIGITS? JMP ONEDIGIT /NO, FORGET IT TAD ["0&77] /MAKE IT ASCII JMS I [P6CH] /PRINT IT ONEDIGI,TAD REM /GET REMAINDER TAD ["0&77] /MAKE IT ASCII JMS I [P6CH] /PRINT LOW-ORDER DIGIT TAD ("K&77) /GET "K" JMS I [P6CH] /PRINT IT JMP I MEMPRT /RETURN / DIVIDE ROUTINE. DIVIDE, .-. /DIVIDE ROUTINE DCA REM /SAVE IN REMAINDER DCA QUO /CLEAR QUOTIENT TAD REM /GET IT BACK STL CIA /INVERT SKP /DON'T FIRST TIME DVLOOP, ISZ QUO /BUMP UP QUOTIENT TAD I DIVIDE /ADD ON ARGUMENT SNA SZL /UNDERFLOW? JMP DVLOOP /NO, KEEP GOING CIA /YES, INVERT IT BACK TAD I DIVIDE /RESTORE LOST VALUE DCA REM /SAVE AS REMAINDER TAD QUO /GET THE QUOTIENT ISZ DIVIDE /BUMP PAST ARGUMENT JMP I DIVIDE /RETURN / MESSAGE PRINTING ROUTINE. SCRIBE, .-. /MESSAGE PRINT ROUTINE CLA /JUST IN CASE TAD I SCRIBE /GET MESSAGE POINTER DCA SCRPTR /STASH IT ISZ SCRIBE /BUMP PAST ARGUMENT TAD (140) /INITIALIZE TO LOWER-CASE CASZP1, DCA SCRCASE /**** /U **** CLA!400 SCRLUP, TAD I SCRPTR /GET LEFT HALF-WORD RTR;RTR;RTR /MOVE OVER JMS SCRPRNT /PRINT IT TAD I SCRPTR /GET RIGHT HALF-WORD JMS SCRPRNT /PRINT IT ISZ SCRPTR /BUMP TO NEXT PAIR JMP SCRLUP /KEEP GOING SCRPRNT,.-. /CHARACTER PRINT ROUTINE AND [77] /JUST SIX-BIT SNA /END OF MESSAGE? JMP I SCRIBE /YES, RETURN TO ORIGINAL CALLER DCA SCRCHAR /NO, SAVE FOR NOW TAD SCRCHAR /GET IT BACK TAD (-"%!200) /IS IT "%"? SNA /SKIP IF NOT JMP SCRCRLF /JUMP IF IT MATCHES TAD [-"^+100+"%] /IS IT "^" SNA CLA /SKIP IF NOT JMP SCRFLIP /JUMP IF IT MATCHES TAD SCRCHAR /GET THE CHARACTER AND [40] /DOES CASE MATTER? SNA CLA /SKIP IF NOT TAD SCRCASE /ELSE GET PREVAILING CASE TAD SCRCHAR /GET THE CHARACTER JMS P7CH /PRINT THE CHARACTER JMP I SCRPRNT /RETURN SCRCRLF,JMS I [CRLF] /DO A , JMP I SCRPRNT /RETURN SCRFLIP,TAD SCRCASE /GET CURRENT CASE CIA /INVERT IT TAD (140+100) /ADD SUM OF POSSIBLE VALUES CASZP2, DCA SCRCASE /**** /U **** CLA!400 JMP I SCRPRNT /RETURN SCRCASE,100 /ALPHABETIC CASE SCRCHAR,.-. /LATEST OUTPUT CHARACTER SCRPTR, .-. /MESSAGE POINTER / EAE TEST DISPATCH TABLE. EAETEST,TESTEAE /00=UNKNOWN TESTEAE /01=PDP-5 TESTEAE /02=PDP-8 NOTEAE /03=PDP-8/S TESTEAE /04=LINC-8 TESTEAE /05=PDP-8/I NOTEAE /06=PDP-8/L TESTEAE /07=PDP-12 SETA /10=PDP-8/E NOTEAE /11=PDP-8/A NOTEAE /12=6100 NOTEAE /13=6120 P2OCT, .-. /PRINT TWO DIGITS ROUTINE DCA OCTEMP /SAVE PASSED VALUE TAD OCTEMP /GET PASSED VALUE BACK RTR;RAR /MOVE DOWN JMS I [PRDIGIT] /PRINT IT TAD OCTEMP /GET IT AGAIN JMS I [PRDIGIT] /PRINT LOWER DIGIT JMP I P2OCT /RETURN P3OCT, .-. /PRINT THREE DIGITS ROUTINE DCA OCTEMP /SAVE PASSED VALUE TAD OCTEMP /GET IT BACK RTR;RTR;RTR /MOVE OVER JMS I [PRDIGIT] /PRINT HIGHEST DIGIT OF THREE TAD OCTEMP /GET IT AGAIN JMS I [P2OCT] /PRINT LOWER TWO DIGITS JMP I P3OCT /RETURN PAGE INITIAL,.-. /INITIALIZATION ROUTINE TAD I L7600/[SBOOT] /GET BOOTSTRAP INSTRUCTION TAD (-JMSSYSIO) /COMPARE TO POSSIBLE VALUE SNA CLA /SKIP IF DIFFERENT JMP CHKCOVRLAY /JUMP IF IT MATCHES ISZ CHKKRS /TURN "KRSIOT" ISZ CHKKRS /INTO "KRBIOT" DCA CHKKCC /DESTROY "KCCIOT" CHKCOVR,NL0002 /SET "C" BIT MASK AND I [SCRSIZE] /GET THE BIT SNA CLA /SKIP IF SET JMP NOOVERLAY /JUMP IF NOT TAD I [SCRSIZE] /GET THE CORE SIZE WORD RTR;RAR /MOVE DOWN THE MCS BITS AND (70) /JUST MCS BITS TAD (CIF 10) /MAKE INTO "CIF MCS+10" DCA CHKKSF /STORE OVER THE "KSFIOT" TAD CHKJMP /GET THE "JMP I CTLCTST" DCA CHKKRS /STORE OVER THE "KRSIOT" OR "KRBIOT" TAD (JMS INCON) /GET INPUT CALL DCA CHKJMP /STORE OVER THE "JMP I CTLCTST" DCA CHKKCC /DESTROY THE "KCCIOT" TAD CHKKSF /GET THE "CIF MCS+10" DCA P7TSF /STORE OVER "TSFIOT" TAD P7JMP /GET "JMP P7AGN" DCA P7TLS /STORE OVER "TLSIOT" TAD (JMS OUTCON) /GET OUTPUT CALL DCA P7JMP /STORE OVER "JMP P7AGN" TAD P7TSF /GET "CIF MCS+10" DCA P7OTSF /STORE OVER "TSFIOT" TAD P7OJMP /GET "JMP P7OTSF" DCA P7OTLS /STORE OVER "TLSIOT" TAD P7JMP /GET "JMS OUTCON" DCA P7OJMP /STORE OVER "JMP P7OTSF" TAD CHKKSF /GET THE "CIF MCS+10" DCA LPCHK /STORE OVER THE "LSFIOT" TAD LPJMP /GET THE "JMP LPTIME" DCA LPRNT /STORE OVER THE "LLSIOT" TAD (JMS OUTLPT) /GET LPT: OUTPUT CALL DCA LPJMP /STORE OVER THE "JMP LPTIME" TAD LPJMS /GET "JMS LPWAIT" DCA OUTINIT /STORE OVER "LLSIOT" DCA LLZAP1 /INDICATE LOGICAL LPT: ZAPS NOOVERL,TAD I [SWMX] /GET SWITCHES /M-/X AND (20) /JUST /T SZA CLA /SKIP IF OFF JMP LPFAIL /JUMP IF SET LNL7777,NL7777 /SETUP AN EXTENDED OUTINIT,LLSIOT /**** CONSOLE **** JMS LPWAIT CLA /CLEAN UP TAD [" &177] /GET A LPJMS, JMS LPWAIT /TRY TO OUTPUT IT AFTER TAD [" &177] /GET ANOTHER JMS LPWAIT /TRY TO OUTPUT IT AFTER TAD [15] /GET A JMS LPWAIT /TRY TO OUTPUT IT AFTER DCA LPTMZAP /NOW IT WILL WAIT FOR ALL CHARACTERS TAD [" &177] /GET A JMS LPWAIT /OUTPUT IT TAD [15] /GET A JMS LPWAIT /OUTPUT IT TAD [12] /GET A JMS LPWAIT /OUTPUT IT LLZAP1, SKP /**** CONSOLE **** 0000 JMP LLZAPS /USE LOGICAL LPT: ZAPS INSTEAD TAD LPCHK /GET THE "LSFIOT" DCA P7TSF /STORE OVER THE "TSFIOT" TAD LPRNT /GET THE "LLSIOT" DCA P7TLS /STORE OVER THE "TLSIOT" JMP LPTFF /CONTINUE THERE LLZAPS, TAD (JMS OUTLPT) /GET LOGICAL LPT: OUTPUT CALL DCA P7JMP /STORE OVER THE "JMS OUTCON" JMP LPTFF /CONTINUE THERE LPFAIL, TAD I (SWAL) /GET /A-/L SWITCHES AND [100] /JUST /F SNA CLA /SKIP IF ON JMP NOFF /JUMP IF OFF LPTFF, DCA I (DOFF) /NO EXTRA 'S TAD LNL7777/(NL7777)/MAKE IT DO DCA I (LPZAP1) /ONLY ONE DCA I (LPZAP2) /PREVENT TRAILING 'S TAD (14) /GET A DCA LSEP /USE INSTEAD OF "-" NOFF, JMS I (GETDATE) /GET THE DATE, ETC. JMP I INITIALIZE /RETURN LPWAIT, .-. /LPT: TIME-OUT ROUTINE DCA LPTEMP /SAVE PASSED VALUE LPAGN, TAD LPTEMP /GET IT BACK LPCHK, LSFIOT /**** CONSOLE **** CIF MCS+10 LPJMP, JMP LPTIME /**** CONSOLE **** JMS OUTLPT LPRNT, LLSIOT /**** CONSOLE **** JMP LPTIME TAD (7700) /RESET THE DCA LPTMOUT /TIME-OUT COUNTER JMP I LPWAIT /RETURN LPTIME, ISZ I (GETDATE) /WASTE JMP LPTIME /SOME TIME CLA /CLEAN UP LPTMZAP,ISZ LPTMOUT /**** ZAPPED **** 0000 JMP LPAGN /TRY AGAIN JMP LPFAIL /GIVE UP AND JUST USE CONSOLE LPTEMP, .-. /TEMPORARY LPTMOUT,-100 /LPT: TIME-OUT FACTOR PAGE GETDATE,.-. /GET THE DATE ROUTINE TAD I [SWMX] /GET /M-/X SWITCHES AND (10) /JUST /U BIT SNA CLA /SKIP IF SET JMP GTDATE /JUMP IF NOT TAD L7600/[CLA!400] /GET A "CLA" INSTRUCTION DCA I (CASZP1) /PREVENT CASE CHANGE TAD L7600/[CLA!400] /GET A "CLA" INSTRUCTION DCA I (CASZP2) /PREVENT CASE CHANGE GTDATE, TAD (34) /RESET THE DCA I (FEBENT) /FEBRUARY LENGTH TAD (JANENT) /POINT TO DCA ENTPTR /FIRST MONTH TAD I (SDATE) /GET THE SYSTEM DATE WORD JMS I [DIVIDE] /DIVIDE BY 372 564 /TO GET YEAR DCA YEAR /SAVE IT TAD REM /GET DAYS LEFT IN YEAR JMS I [DIVIDE] /DIVIDE BY 31 TO GET 37 /MONTH (ORIGIN ZERO) DCA MONTH /SAVE IT NL0001 /MAKE ORIGIN ONE TAD REM /GET DAY OF THE MONTH DCA DAY /SAVE IT TAD YEAR /GET THE YEAR TAD (3) /ROUND UP FOR LEAP YEARS CLL RAR /DIVIDE CLL RAR /BY FOUR DCA LPYRCT /SAVE AS EXTRA LEAP DAYS COUNT TAD YEAR /GET THE YEAR AGAIN AND (3) /JUST LEAP BITS SNA CLA /SKIP IF NOT A LEAP YEAR ISZ I (FEBENT) /BUMP FEBRUARY IF IT IS TAD MONTH /GET THE MONTH CMA /INVERT FOR COUNTING DCA MONCNT /SAVE IT JMP .+3 /JUMP INTO IT TAD I ENTPTR /GET A PREVIOUS MONTH'S COUNT ISZ ENTPTR /BUMP TO NEXT ISZ MONCNT /DONE ENOUGH MONTHS? JMP .-3 /NO, GO DO ANOTHER ONE TAD DAY /ADD ON DAY TAD YEAR /ADD ON YEAR TAD LPYRCT /ADD ON EXTRA LEAP DAYS TAD BSGROUP /\ TAD BSGROUP / >ADD ON BASE INFLUENCE TAD BSGROUP // JMS I [DIVIDE] /DIVIDE BY 7 TO GET 7 /DAY OF THE WEEK CLA /THROW QUOTIENT AWAY TAD REM /GET THE REMAINDER CLL RAL /*2 TAD REM /*3 RAL /*6 TAD (DAYS) /POINT TO PROPER DAY DCA DAYPTR /STASH THE POINTER TAD (DATMSG+1-1) /POINT TO DCA XR2 /DATE MESSAGE TAD DAY /GET DAY OF THE MONTH JMS I [DIVIDE] /DIVIDE BY 10 TO 12 /GET TEN'S DIGIT TAD ["0&77] /MAKE IT ASCII CLL RTL;RTL;RTL /MOVE UP TAD REM /ADD ON UNIT'S DIGIT TAD ["0&77] /MAKE IT ASCII ALSO DCA I XR2 /STORE INTO THE MESSAGE TAD MONTH /GET THE MONTH CLL RAL /*2 FOR DOUBLE-WORDS TAD (MONLST-1) /ADD ON LIST POINTER DCA XR1 /STASH IT TAD I XR1 /GET A MONTH PAIR DCA I XR2 /STORE INTO MESSAGE TAD I XR1 /GET THE OTHER PAIR DCA I XR2 /STORE INTO MESSAGE TAD BSGROUP /GET GROUP CLL RTL;RAL /*8 TAD YEAR /ADD ON RELATIVE YEAR TAD (74) /ADD ON (19)60 JMS I [DIVIDE] /DIVIDE 144 /BY 100 CLA /THROW AWAY QUOTIENT TAD REM /GET THE REMAINDER 60-99 OR 00-59 JMS I [DIVIDE] /DIVIDE BY 10 TO GET 12 /THE TEN'S DIGIT TAD ("-^100+"0-200) /GET "-" AND MAKE IT ASCII DCA I XR2 /STORE INTO MESSAGE TAD REM /GET THE UNIT'S DIGIT CLL RTL;RTL;RTL /MOVE UP TAD ("0^100+"%-200) /MAKE IT ASCII AND ADD ON A "%" DCA I XR2 /STORE INTO MESSAGE JMP I GETDATE /RETURN BSGROUP,BSGRP /CURRENT BASE YEAR GROUP VALUE DAY, .-. /DAY ENTPTR, .-. /MONTH LENGTH TABLE POINTER LPYRCT, .-. /LEAP YEAR DAYS' COUNT MONCNT, .-. /MONTH COUNTER MONTH, .-. /MONTH YEAR, .-. /YEAR PAGE AVLMSG, TEXT "^A^VAILABLE" /EAE AVAILABLE MESSAGE / ANNOUNCEMENT MESSAGE. BLURB, TEXT "^P?S/8 S^YSTEM ^S^TATUS ^SYSTAT V" /MAIN BLURB VERSION%12^66+VERSION+6060 / / "^^100+REVISION /REVISION TEXT " " /SPACING CONMSG, TEXT "%%^C^ONSOLE: ^" /CONSOLE MESSAGE / CPU IDENTIFICATION LIST. CPULIST,TEXT "^UNKNOWN^" /00=UNKNOWN TEXT "^PDP-5^^^" /01=PDP-5 TEXT "^PDP-8^^^" /02=PDP-8 TEXT "^PDP-8/S^" /03=PDP-8/S TEXT "^LINC-8^^" /04=LINC-8 TEXT "^PDP-8/I^" /05=PDP-8/I TEXT "^PDP-8/L^" /06=PDP-8/L TEXT "^PDP-12^^" /07=PDP-12 TEXT "^PDP-8/E^" /10=PDP-8/E TEXT "^PDP-8/A^" /11=PDP-8/A TEXT "6100^^^^^" /12=6100 TEXT "6120^" /13=6120 CPUMSG, TEXT "%%^CPU T^YPE: " /CPU TYPE MESSAGE DATMSG, TEXT " ^UN-DAT-ED%^" /DATE WILL BE FILLED IN / DAYS OF THE WEEK MESSAGE LIST. DAYS, TEXT " ^T^HURSDAY" /THURSDAY TEXT " ^F^RIDAY^^" /FRIDAY TEXT " ^S^ATURDAY" /SATURDAY TEXT " ^S^UNDAY^^" /SUNDAY TEXT " ^M^ONDAY^^" /MONDAY TEXT " ^T^UESDAY^" /TUESDAY TEXT " ^W^EDNESDAY^" /WEDNESDAY DEFMSG, TEXT " ^DEFAULT" /DEFAULT CONSOLE MESSAGE DISMSG, TEXT "(^D^ISABLED)^" /DISABLED CONSOLE MESSAGE DVNMSG, TEXT " ^XXXX^" /DEVICE NAME MESSAGE EAEMSG, TEXT "%%^EAE: ^" /EAE MESSAGE ENDMSG, TEXT ") ^" /ENDING MESSAGE FREEMSG,TEXT "^" /FREE BLOCK MESSAGE HINMSG, TEXT "%%^H^ANDLER ^I^NFORMATION:%%" /HANDLER TEXT "^N^AME ^B^LOCK ^L^ENGTH " /INFORMATION TEXT " ^E^NTRY ^B^LOCK ^S^IZE%%^" /MESSAGE DECIMAL /MAKE IT EASIER / MONTH LENGTH TABLE. JANENT, 31 /31 DAYS IN JANUARY FEBENT, 28 /29 IN LEAP YEAR! 31 /31 DAYS IN MARCH 30 /30 DAYS IN APRIL 31 /31 DAYS IN MAY 30 /30 DAYS IN JUNE 31 /31 DAYS IN JULY 31 /31 DAYS IN AUGUST 30 /30 DAYS IN SEPTEMBER 31 /31 DAYS IN OCTOBER 30 /30 DAYS IN NOVEMBER / 31 /31 DAYS IN DECEMBER OCTAL /BACK TO NORMAL LOGMSG, TEXT "%%^L^OGICAL ^M^EMORY: " /LOGICAL MEMORY MESSAGE LOVLMSG,TEXT " (^C^ONSOLE ^O^VERLAY ^E^NABLED)^" /CONSOLE LIMITATION MESSAGE LSYSMSG,TEXT " (^L^IMITED BY ^S^YSTEM)^" /SYSTEM LIMITATION MESSAGE MAXMSG, TEXT "%%^M^AXIMUM ^M^EMORY: " /MAXIMUM MEMORY MESSAGE MEMMSG, TEXT "%%^P^HYSICAL ^M^EMORY: " /MEMORY MESSAGE / MONTHS MESSAGE LIST. MONLST, TEXT "-JAN" /JANUARY TEXT "-FEB" /FEBRUARY TEXT "-MAR" /MARCH TEXT "-APR" /APRIL TEXT "-MAY" /MAY TEXT "-JUN" /JUNE TEXT "-JUL" /JULY TEXT "-AUG" /AUGUST TEXT "-SEP" /SEPTEMBER TEXT "-OCT" /OCTOBER TEXT "-NOV" /NOVEMBER TEXT "-DEC" /DECEMBER NAVLMSG,TEXT "^N^OT ^A^VAILABLE" /NOT AVAILABLE MESSAGE NIMPMSG,TEXT "^N^OT ^I^NSTALLED" /NOT IMPLEMENTED MESSAGE OVIDMSG,TEXT " ^XXXXXX^" /OVERLAY ID MESSAGE SEPMSG, TEXT " (^" /SEPARATION MESSAGE SLOTMSG,TEXT "%%^F^REE ^S^LOTS: " /FREE SLOTS MESSAGE SYSMSG, TEXT "%^S^YSTEM: " /SYSTEM MESSAGE VERMSG, TEXT "%%^V^ERSION: " /VERSION MESSAGE PAGE IOBUFFE=. /I/O BUFFER HERE / HERE COME THE LITERALS! $ /THAT'S ALL FOLK!