File SYSTAT.PA (PAL assembler source file)

Directory of image this file is from
This file as a plain text file

/SYSTAT.PA                      MULTOS-8                AUG 23,1979
/
/       EDIT 105
/
/UPDATED TO ELIMINATE THE NEED FOR EAE NUMBER PRINT
/
/       ADDED TO BUFFER SIZE AND ADDED WAIT STATUS,PC, AND CORE INFORMATION
/
/       DEFINATIONS
/
        SPR=6125
        SYN=6120        /SUSPEND FOR TEH NEXT TIME QUANTUM
        TOD=6114        /TIME OF DAY
        DATE=6115
        SPF=6040        /SET THE TTY FLAG
/
/       EAE INSTRUCTIONS
/
        ACL=7701
/       SWBA=7447
/       SWAB=7431
/       DAD=7443
/       MUY=7405
/       DVI=7407
        CAM=7621
/
/
        *10
PT1,    0
        *20
/
BUF,    0
        ZBLOCK 50       /SAVE A FIVE WORD STATUS BUFFER
/
        *.+5
TEMP,   0
DBUF,   ZBLOCK 2
TBUF,   0
CSW,    7777
TIMOUT, 0
        144
/
/
        *200
/
        CLL CLA         /BE SURE ALL IS CLEAR
        SPF             /SET TY FLAG
        TAD (214
        TLS
/       JMP .+2
/AGAIN, TAD (201        /CLEAR ANN ARBOR TERMINAL
/       TLS             /CLEAR THE TERMINAL
        SYN             /GIVE THE TERMINAL SOME TIME...
        CLL CLA         /CLEAR AC AGAIN
        SPR             /READ THE STATUS REGISTER
        BUF             /PUT IT INTO BUF @ LOC 20
        STL CLA IAC RAL /MAKE A 3
        DATE            /GET THE SYSTEM DATE
        DCA DBUF        /SAVE THE DAY- MO
        ACL             /GET THE MQ
        DCA DBUF+1      /SAVE THE YEAR
        JMS I (PTXT     /OUTPUT THE HEADER
        TXT1            /DISPLAY HEADER
        TAD DBUF
        AND (7700       /MASK OFF THE MOUNTH
        BSW             /SWAP BYTES
        JMS I (SSPRNT
        TAD ("-
        TLS             /OUTPUT A DASH
        CLL CLA
        TAD DBUF
        AND (77
        TAD I (MPNT     /GET THE MONTH POINTER
        DCA TEMP
        TAD I TEMP
        DCA .+2
        JMS I (PTXT
        TXT200          /MOUNTH
        TAD ("-
        TLS
        CLL CLA
        TAD DBUF+1
        JMS I (SSPRNT
        JMS I (PTXT
        TXT1A           /OUTPUT THE TIME
        JMS I (GTIME    /OUTPUT THE TIME
        JMS I (PTXT     /SECOND LINE OF HEADER
        TXT2            /SYSTEM MEMORY
        TAD I (BUF+4    /GET THE 4 TH WORD FROM THE BUFFER
        AND (70         /MAKE TO GET THE AMOUNT OF MEMORY
        RAR             /MOVE RIGHT
                        /THIS GIVES A MULTIPLY BY 4 FOR 'K' MEM
        JMS I (SSPRNT
        TAD (240        /OUTPUT A SPACE
        TLS             /OUTPUT THE CHARACTER
        CLL CLA
        TAD ("K
        TLS             /OUTPUT THE MEMORY AVAILABLE
        CLL CLA
        JMS I (PTXT
        TXT3            /SWAPPING FIELDS
        TAD I (BUF+4
        AND (7          /GET THE LOW ORDER BITS
        TAD ("0         /CONVER TO ASCII
        TLS             /OUTPUT IT
        CLL CLA
        JMS I (PTXT
        TXT4            /USER MAX
        TAD I (BUF+4
        AND (700        /GET BITS 3-5
        BSW             /SWAP BYTES
        DCA I (USMAX    /SAVE THE USER MAX FOR NOW
        TAD I (USMAX
        TAD ("0         /CONVER TO ASCII
        TLS
        CLL CLA
        JMS I (PTXT
        TXT5            /NOW PUT UP THE STATUS HEADER
        TAD I (BUF      /GET THE USER NO WHO CALLED THIS
        CIA             /NEGATE IT
        DCA I (UJOB
        TAD (BUF+4
        DCA PT1
        JMS I (GDAT
        2000            /MASK STATUS WORDS
        1               /FOR JOB NO 1
        JMS I (GDAT
        1000            /MASK STATUS WORDS
        2               /FOR JOB NO 2
        JMS I (GDAT
        400             /MASK STATUS WORDS
        3               /FOR JOB NO 3
        JMS I (GDAT
        200             /MASK STATUS WORDS
        4               /FOR JOB NO 4
        JMS I (GDAT
        100             /MASK STATUS WORDS
        5               /FOR JOB NO 5
        JMS I (SHOMEM   /SHOW MEMORY USEAGE
        TAD I (BUF+1
        SNA CLA
        JMP NLPT
        JMS I (PTXT
        TXT6            /JOBS IN LPT: QUE
        TAD I (BUF+1
        JMS I (SSPRNT   /PRINT THE NO. OF JOBS IN THE LPT QUEUE
        JMP EX
NLPT,   JMS I (PTXT
        TXT7
EX,     CLL CLA
/       JMP AGAIN
        CIF CDF 0
        JMP I (7600     /RETURN TO OS-8
/
        PAGE

/THIS SUB GETS THE STATUS WORDS /CALL +1 = MASK /CALL +2 = JOB NO GDAT, 0 TAD I GDAT DCA MASK ISZ GDAT TAD I GDAT DCA JOBNO TAD I (BUF+2 /GET THE STATUS WORD AND MASK /IF BIT 1 SET JOB 1 ACTIVE EXT DCA ACT TAD ACT SNA CLA /ACTIVE OR NOT ? JMP GDATEX /NO DON'T PRINT ANYTHING TAD USMAX CIA TAD JOBNO /GET THE CURRENT JOB NO. SPA SNA CLA JMP D2 /CHECK FURTHER JMS I (PTXT TXLPT /LPT SPOOLER JMP D1 /CONTINUE D2, TAD UJOB /CHECK THE CALLING JOB TAD JOBNO SZA CLA JMP D /PRINT THE JOB NO. JMS I (PTXT TXTSLF /OUTPUT SELF INSTEAD OF THE JOB NO. JMP D1 D, TAD JOBNO JMS I (SSPRNT D1, TAD (-10 DCA TEMP TAD (240 /OUTPUT SOME SPACES E, TLS ISZ TEMP JMP E CLL CLA TAD ACT /GET THE ACTIVITY WORD SZA CLA IAC TAD ("0 /ZERO = NOT BUSY 1 = BUSY TLS /OUTPUT THE CHARCTER CLL CLA TAD (-15 DCA TEMP TAD (240 /OUTPUT SOME SPACES C, TLS ISZ TEMP JMP C CLL CLA TAD I (BUF+3 AND MASK /GET THE DATA FOR BUSY SZA CLA IAC TAD ("0 /ZERO = NOT BUSY 1 = BUSY TLS /OUTPUT THE CHARCTER /THIS SUBROUTINE SHOWS WHAT IS HAPPENING TO THE JOBS AND THE CURRENT 'PC' / CLL CLA TAD USMAX CIA TAD JOBNO /GET THE CURRENT JOB NO. SPA SNA CLA SKP JMP GDAT1 JMS I (SPC 7 CLL CLA TAD I PT1 /GET THE FIRST POINT CIA MQL /SAVE IT FOPR NOW ACL AND (1 /ARE WE WAITING FOR THE DISK SNA CLA JMP WA1 JMS I (PTXT TXT100 /DISK I/O WAIT JMP APC /AT 'PC' WA1, ACL AND (6 /TTY WAIT ? SNA CLA JMP WA2 JMS I (PTXT TXT101 /TTY WAIT JMP APC WA2, ACL AND (200 /DECTAPE WAIT SNA CLA JMP APC JMS I (PTXT TXT102 APC, CLL CLA TAD I PT1 /GET THE USER PC JMS I (OPRNT /OCTAL PRINT TAD (212 TLS TAD (3 TLS CLL CLA JMP GDAT1 /BYPASS IF ABNORMAL EXIT GDATEX, ISZ PT1 ISZ PT1 GDAT1, JMP I GDAT / ACT, 0 MASK, 0 JOBNO, 0 UJOB, 0 USMAX, 0 / / PAGE
/THIS SUBROUTINE SHOWS HOW FIELDS 2-7 ARE USED / SHOMEM, 0 CLL CLA TAD (-6 DCA TEMPB TAD I (USMAX RAL TAD (26 DCA PT1 JMS I (PTXT TXT120 MEM1, TAD I PT1 /GET THE DATA FOR FIELD 2 SNA /IT THERE DATA FOR THIS FIELD ? JMP MEM2 MQL /SAVE IT FOR NOW TAD TEMPB DECIMAL TAD (8 OCTAL JMS I (SSPRNT JMS I (SPC 3 ACL AND (7 /GET THE JOB NUMBER FOR THIS FIELD JMS I (SSPRNT /PRINT THE NUMBER JMS I (SPC 3 ACL AND (70 /NOW SHOW THE RELATIVE FIELD NUMBER RTR RAR JMS I (SSPRNT CLL CLA TAD (212 TLS TAD (3 TLS CLL CLA MEM2, ISZ TEMPB JMP MEM1 CLL CLA JMP I SHOMEM / TEMPB, 0 SPC, 0 TAD I SPC CIA DCA TEMPA SPCA, TAD (" JMS I (TERM ISZ TEMPA JMP SPCA JMP I SPC / TEMPA, 0 / / / OCTAL NUMBER PRINTER / OPRNT, 0 MQL ACL AND (7000 RTL RTL /PUT IN THE LOW ORDER BYTE POSITION TAD ("0 /ADD ASCII 0 CODE TLS ACL AND (700 /GET THE SECOND DIGIT BSW /PUT IN THE LOWER ORDER BYTE TAD ("0 TLS ACL AND (70 RAR RTR TAD ("0 TLS ACL AND (7 TAD ("0 TLS CLL CLA JMP I OPRNT / MPNT, . TXT200 /JAN TXT201 /FEB TXT202 /MAR TXT203 /APR TXT204 /MAY TXT205 /JUN TXT206 /JUL TXT207 /AUG TXT208 /SEP TXT209 /OCT TXT210 /NOV TXT211 /DEC 0 / PAGE
GTIME, 0 CLL CLA CML RAR TOD TBUF TAD TBUF CLL RAR DCA TBUF TAD TBUF+1 RAR DCA TBUF+1 JMS B 0053 SZA JMS CA /SUBROUTINE JMS DA JMS B 0000 5670 JMS CA /SUBROUTINE JMS DA JMS B 0000 0062 JMS CA JMS A /SUBROUTINE 0015 0012 0000 JMP I GTIME / B, HLT CLA CLL IAC TAD B DCA TBUF+5 TAD I TBUF+5 CLL CMA IAC DCA TBUF+4 CML RAL TAD I B CMA IAC DCA TBUF+3 DCA TBUF+2 X, CLA CLL TAD TBUF+4 TAD TBUF+1 DCA TBUF+1 RAL TAD TBUF+3 TAD TBUF DCA TBUF TAD TBUF CLA SPA JMP ZA ISZ TBUF+2 JMP X ZA, CLA CLL TAD I TBUF+5 TAD TBUF+1 DCA TBUF+1 RAL TAD I B TAD TBUF DCA TBUF ISZ TBUF+5 TAD TBUF+2 JMP I TBUF+5 / A, 0 /SUBROUTINE TAD I A ISZ A SNA JMP I A JMS TYCHAR /TYPE THE CHARCTER JMP A+1 / TYCHAR, 0 TLS CLA CLL JMP I TYCHAR / CA, HLT DCA TBUF+7 DCA TBUF+6 TAD TBUF+7 T, TAD (7766 SPA JMP Y ISZ TBUF+6 JMP T Y, TAD (12 DCA TBUF+7 TAD TBUF+6 TAD (60 JMS TYCHAR TAD TBUF+7 TAD (60 JMS TYCHAR JMP I CA / DA, HLT TAD (72 JMS TYCHAR JMP I DA HLT HLT HLT HLT HLT HLT HLT HLT HLT HLT HLT / PAGE
/TEXT UNPACKING AND OUTPUTTING ROUTINE. / PTXT, 0 TAD I PTXT /GET POINTER DCA COL ISZ PTXT /ADVANCE RETURN POINTER PXT, TAD I COL /GET 1 WORD BSW JMS PTST /UNPACK,TEST,PRNT TAD I COL JMS PTST /UNPACK,TEST,PRNT ISZ COL JMP PXT /GET NXT PNT STRA, CLL CLA JMP I PTXT / PTST, 0 /UNPACK,TEST,PRNT AND (77 /NO. IN AC SO MASK IT MQL /TEMP SAVE IT MQA /GET IS AGAIN & TEST IT SNA /WAS IT ZERO ?? JMP STRA /JMP OUT FINISHED !! TAD (-43 /FOR A LINE FEED SZA CLA JMP PTSTA TAD (212 TLS TAD (3 TLS CLA JMP I PTST /GET NXT CHARCTER PTSTA, MQA AND (40 /WAS IT A NUMBER ? SNA CLA /NON ZERO = NUMBER TAD (100 /CONVER TO ASCII TAD (200 MQA /PUT IN CHARCTER PART NOW TLS CLL CLA JMP I PTST / COL, 0 / SSPRNT, 0 DCA DPRREG /SAVE THE NO TO BE PRINTED TAD DPRINS DCA DPRPTP TAD M4 DCA DPRFAC DCA DPRFL DCA DPRFIG DPRSUB, CLL TAD DPRREG DPRPTP, TAD DPRTEN SNL JMP .+4 DCA DPRREG ISZ DPRFIG JMP DPRSUB CLL CLA TAD DPRFIG SNA JMP DPRZRO DPRIN, TAD (20 ISZ DPRFL DPRIN1, TAD (" JMS TERM ISZ DPRPTP ISZ DPRFAC JMP DPRSUB-1 JMP I SSPRNT / DPRZRO, CLL CLA IAC TAD DPRFAC /IS THIS THE LAST DIGIT SNA CLA CLL CLA IAC RAR /ROTATE INTO THE LINK TAD DPRFL SZA CLA JMP DPRIN SNL /CHECK THE LINK...IF SET = LAST DIGIT SO PRINT 0 JMP DPRIN1 JMP DPRIN / DPRREG, 0 DPRFL, 0 DPRINS, TAD DPRTEN DPRFAC, 0 DPRFIG, 0 DPRTEN, DECIMAL -1000 -100 -10 -1 OCTAL / M4, -4 / TERM, 0 TSF JMP .-1 TLS CLL CLA JMP I TERM / PAGE
/ TXT1, TEXT *MULTOS-8 SYSTEM STATUS * TXT1A, TEXT * AT * TXT2, TEXT *#UNASSIGNED MEMORY * TXT3, TEXT * SWAPPING FIELDS * TXT4, TEXT * MAX NO. USERS * TXT5, TEXT *##JOB ACTIVE BUSY#* TXT6, TEXT *# NO. OF JOBS IN LPT QUEUE * TXT7, TEXT *# LPT QUEUE EMPTY #* TXTSLF, TEXT *SELF* TXLPT, TEXT *LPT * TXT100, TEXT *DISK I/O WAIT AT PC * TXT101, TEXT *TTY I/O WAIT AT PC * TXT102, TEXT *TAPE I/O WAIT AT PC * TXT120, TEXT *#MEMORY USEAGE#FIELD JOB REL FIELD#* TXT200, TEXT *JAN* TXT201, TEXT *FEB* TXT202, TEXT *MAR* TXT203, TEXT *APR* TXT204, TEXT *MAY* TXT205, TEXT *JUN* TXT206, TEXT *JUL* TXT207, TEXT *AUG* TXT208, TEXT *SEP* TXT209, TEXT *OCT* TXT210, TEXT *NOV* TXT211, TEXT *DEC*



Feel free to contact me, David Gesswein djg@pdp8online.com with any questions, comments on the web site, or if you have related equipment, documentation, software etc. you are willing to part with.  I am interested in anything PDP-8 related, computers, peripherals used with them, DEC or third party, or documentation. 

PDP-8 Home Page   PDP-8 Site Map   PDP-8 Site Search