mirror of
https://github.com/PDP-10/stacken.git
synced 2026-03-07 19:21:02 +00:00
168 lines
4.3 KiB
Plaintext
168 lines
4.3 KiB
Plaintext
TITLE GALTRK
|
||
SEARCH GLXMAC
|
||
PROLOG (GALTRK)
|
||
|
||
.TEXT "/LOCALS/SYMSEG:LOW"
|
||
|
||
IB: $BUILD IB.SZ
|
||
$SET(IB.OUT,,T%TTY)
|
||
$SET(IB.PRG,,%%.MOD)
|
||
$EOB
|
||
|
||
STACK: BLOCK 100
|
||
|
||
CMD: BLOCK 10
|
||
|
||
PROGS: SIXBIT/QUASAR/
|
||
SIXBIT/ORION/
|
||
SIXBIT/BATCON/
|
||
SIXBIT/CDRIVE/
|
||
SIXBIT/SPROUT/
|
||
SIXBIT/SPRINT/
|
||
SIXBIT/PULSAR/
|
||
SIXBIT/LPTSPL/
|
||
SIXBIT/OPR/
|
||
|
||
PGMLEN==.-PROGS
|
||
|
||
SYSNAM: BLOCK 5
|
||
|
||
GALTRK: RESET
|
||
MOVE P,[IOWD 100,STACK]
|
||
MOVEI S1,IB.SZ
|
||
MOVEI S2,IB
|
||
PUSHJ P,I%INIT
|
||
|
||
MOVSI S2,-5 ;CREATE AN AOBJN AC
|
||
LOOP: MOVEI S1,11 ;GET THE GETTAB TABLE NUMBER.
|
||
HRLM S2,S1 ;CREATE THE GETTAB INDEX.
|
||
GETTAB S1, ;GET THE SYSTEM NAME IN ASCIZ.
|
||
SETZ S1, ;IGNORE ERRORS
|
||
MOVEM S1,SYSNAM(S2) ;SAVE THE SYSTEM NAME.
|
||
AOBJN S2,LOOP ;CONTINUE TILL DONE.
|
||
|
||
OUTSTR [BYTE(7) 12,15,0,0,0] ;PUT OUT A CRLF
|
||
OUTSTR [ASCIZ/Status of Galaxy Version 4 - /]
|
||
OUTSTR [BYTE(7) 12,15,0,0,0] ;PUT OUT A CRLF
|
||
OUTSTR [ASCIZ/System:/]
|
||
OUTSTR SYSNAM ;PUT OUT THE SYSTEM NAME
|
||
$TEXT (,<, Date:^H/[-1]/^J^M>) ;AND THE DATE AND TIME.
|
||
|
||
OUTSTR LINE1 ;PUT OUT HEADING LINE 1
|
||
OUTSTR [BYTE(7) 12,15,0,0,0] ;PUT OUT A CRLF
|
||
OUTSTR LINE2 ;PUT OUT HEADING LINE 2
|
||
OUTSTR [BYTE(7) 12,15,0,0,0] ;PUT OUT A CRLF
|
||
|
||
MOVSI 14,-^D200 ;CREATE THE SEARCH AOBJN AC.
|
||
|
||
GETINF: MOVX S1,.GTPRG ;GETTAB JOBNAME TABLE #
|
||
HRLM 14,S1 ;GETTAB JOB #
|
||
GETTAB S1, ;GET THE JOB NAME
|
||
JRST AGAIN ;ERROR,,SKIP THIS JOB
|
||
MOVSI T1,-PGMLEN ;IS THE PROGRAM 'QUASAR'
|
||
CHECK: CAME S1,PROGS(T1) ; OR 'LPTSPL' OR 'OPR'
|
||
JRST [AOBJN T1,CHECK ; OR 'BATCON' OR 'ORION' ???
|
||
JRST AGAIN ] ;NO,,SKIP THIS JOB
|
||
HRRZM 14,T2 ;YES,,SAVE THE JOB NUMBER
|
||
MOVX S1,.GTJLT ;GETTAB LOGIN TIME TABLE
|
||
HRL S1,T2 ;GETTAB JOB #
|
||
GETTAB S1, ;GET THE JOBS LOGIN TIME
|
||
JRST AGAIN ;ERROR,,SKIP THIS JOB
|
||
MOVEM S1,P2 ;SAVE THE JOBS LOGIN TIME.
|
||
MOVX S1,.GTIPA ;GETTAB IPCF STATS TABLE #
|
||
HRL S1,T2 ;GETTAB JOB #
|
||
GETTAB S1, ;GET THE IPCF STATS.
|
||
JRST AGAIN ;ERROR,,SKIP THIS JOB
|
||
MOVEM S1,P3 ;SAVE THE SEND/RECIEVE STATS.
|
||
$TEXT (<-1,,CMD>,<SYS ^D/T2/^M^J^0>);CREATE SYS COMMAND
|
||
MOVEI S1,CMD ;GET THE SYSTAT COMMAND ADDRESS.
|
||
PUSHJ P,SNDPTY ;SEND IT TO THE PTY.
|
||
JUMPF AGAIN ;NO GOOD,,TRY AGAIN JOB.
|
||
$TEXT (,<^T55L/0(S1)/^A>)
|
||
$TEXT (,< ^C8/P2/ ^D4/P3,LHMASK/ ^D4/P3,RHMASK/>)
|
||
|
||
AGAIN: AOBJN 14,GETINF ;TRY THE AGAIN JOB.
|
||
$HALT
|
||
JRST LOOP
|
||
|
||
LINE1: ASCIZ/Job PPN Line# Name Core Status Cpu Time Started Snds Rcvs/
|
||
LINE2: ASCIZ/--- -------- ------ ------ ------ ------ -------- -------- ---- ----/
|
||
SUBTTL PTY HANDLING ROUTINES
|
||
|
||
C==16
|
||
|
||
SNDPTY: SETZB T4,AREA
|
||
MOVE 0,[AREA,,AREA+1] ;ZAP THE DATA FIELDS
|
||
BLT 0,IBUF+2 ;CLEAR TO HERE
|
||
OPEN 0,.IOBLK ;OPEN A PTY
|
||
$RETF ;STOP ON AN ERROR
|
||
INPUT ;CREATE THE INPUT BUFFER RING
|
||
OUTPUT ;CREATE THE OUTPUT BUFFER RING
|
||
MOVE T1,[POINT 7,AREA] ;CREATE THE OUTPUT BYTE PTR
|
||
HRLI S1,(POINT 7,0) ;CREATE THE INPUT BYTE PTR
|
||
MOVEI S2,0
|
||
JOBSTS S2,
|
||
SETZ S2,
|
||
TXNN S2,JB.UDI ;READY FOR INPUT?
|
||
JRST .-4 ;NOT YET
|
||
PUSHJ P,PUTINP
|
||
|
||
PTYSTS: MOVX S2,HB.RPT+^D100
|
||
HIBER S2,
|
||
JFCL
|
||
MOVEI S2,0
|
||
JOBSTS S2,
|
||
SETZ S2,
|
||
TXNN S2,JB.UOA ;OUTPUT AVAILABLE?
|
||
JRST PTYSTS ;NO..WAIT ON IT
|
||
|
||
GETPTY: INPUT
|
||
GETLOP: SOSGE IBUF+2 ;ANY CHARS THERE ???
|
||
JRST GETPTY
|
||
ILDB C,IBUF+1 ;GET A BYTE FROM THE PTY.
|
||
JUMPE C,GETLOP ;IGNORE NULLS
|
||
CAIN C,12 ;IS IT A LINE FEED ???
|
||
JRST RETURN
|
||
CAIE C,15 ;OR A CARRIAGE RETURN ???
|
||
IDPB C,T1 ;SAVE IT IN THE OUTPUT AREA.
|
||
AOJA T4,GETLOP
|
||
|
||
RETURN: INPUT
|
||
SETZM S1 ;GET CHANNEL 0 IN S1
|
||
JOBSTS S1, ;GET THE PTY STATUS
|
||
JFCL ;IGNORE THE ERROR
|
||
TXNE S1,JB.UOA ;HAVE MORE AFTER READING SOME
|
||
JRST RETURN ;YES..BACK AND EAT IT
|
||
TXNN S1,JB.UDI ;WANTS US TO TYPE AT IT
|
||
JRST [MOVX S2,HB.RPT+^D500 ;GIVE IT 1/2 SECOND TO GEN MORE OUTPUT
|
||
HIBER S2, ;WAIT FOR IT
|
||
JFCL ;OH WELL
|
||
JRST RETURN] ;NO GO EAT UP ANY OUTPUT
|
||
SETZM S1 ;GET CHANNEL 0
|
||
RESDV. S1, ;RESET THE CHANNEL
|
||
JFCL
|
||
MOVEI S1,AREA ;GET THE STRING ADDRESS
|
||
$RETT ;AND RETURN
|
||
|
||
PUTINP: ILDB C,S1 ;GET A SOURCE BYTE
|
||
JUMPE C,PUTIN1 ;FINISH UP
|
||
SOSG OBUF+2 ;ANYMORE ROOM?
|
||
PUSHJ P,PUTIN1 ;NO..DUMP THE BUFFER
|
||
IDPB C,OBUF+1 ;YES..STORE THE CHARACTER
|
||
JRST PUTINP
|
||
|
||
PUTIN1: OUTPUT
|
||
$RETT
|
||
|
||
EXIT
|
||
|
||
AREA: BLOCK ^D100
|
||
OBUF: BLOCK 3
|
||
IBUF: BLOCK 3
|
||
|
||
.IOBLK: UU.PHS
|
||
SIXBIT/PTY/
|
||
OBUF,,IBUF
|
||
|
||
END GALTRK
|