; ; ;ROOT SECTION OF AN OVERLAYED TASK COMBINING ;REPORTING ON SEVERAL DIFFERENT SYSTEM ;OPERATING PARAMETERS ; ; ; ;F. BORGER ;DEPT OF MEDICAL PHYSICS ;MICHAEL REESE HOSP. ;JUL/17/75 ; ; .TITLE INFORM .GLOBL .ATLLH,.CKQLH,.PUDBA,.PUDEA .MCALL QIO$C,EXIT$C,WTSE$C,RQST$C,GLUN$C ; ; DIRSTA=0 INF:: ;FIRST ATTACH TTY QIO$C IO.ATT,2,1,,IOST, WTSE$C 1 GLUN$C 2,LUNBUF ;GET INFO ON LUN #2 CMP #"VC,LUNBUF ;IS DEVICE VC (SCOPE) BNE NOFF ;IF NOT SKIP NEXT QIO$C IO.WVB,2,1,,IOST,, ;IF YES ERASE SCOPE WTSE$C 1 ;WAIT FOR IT NOFF: MOV #MCRDPB,-(SP) ;GET MCR COMMAND LINE EMT 377 ;DO IT MOV #MCRBUF,R1 ;SET R1 TO START OF LINE MOV R1,R0 ;SET R0 ALSO ADD DIRSTA,R1 ;BUMP R1 TO LAST CHARACTER MOV DIRSTA,MCRSIZ ;SAVE SIZE OF MCR COMMAND LINE ADD #3,R0 ;BUMP TO FIRST SPACE POSITION 1$: CMPB (R0)+,#40 ;FOUND A SPACE ? BEQ 2$ ;FOUND IT CMP R0,R1 ;PAST END OF LINE ? BGT ERRINP ;YES AN ERROR BR 1$ ;NO, TRY AGAIN 2$: ;FOUND FIRST SPACE, CHECK FOR TYPE OF LIST MOVB (R0)+,TYPNAM ;MAKE 2 CHAR CHECK MOVB (R0)+,TYPNAM+1 ;NOW POINTING AT TYPE OF LIST MOV #CHARCK,R2 ;R2 POINTER TO CHECK CHARACTERS MOV #SUBPTR,R3 ;R3 POINTER TO SUB POINTERS TEST: CMP (R2)+,TYPNAM ;DO CHARACTERS MATCH ? BNE RETEST ;NO MATCH, TRY AGAIN JSR PC,@(R3) ;A MATCH, CALL SUBROUTINE BR SCRAM ;ON RETURN MAKE LIKE A TREE (LEAVE) RETEST: TST (R2) ;IS NEXT CHARACTER TEST WORD 0 (END) BEQ ERRINP ;LAST OF THE SUBS, AN INPUT ERROR TST (R3)+ ;ITS OK BUMP CALL POINTER BR TEST ;AND TRY FOR MATCH AGAIN ERRINP: QIO$C IO.WVB,2,1,,IOST,, ;TELL DUM-DUM HE'S GOT FLOPPY FINGERS WTSE$C 1 ;WAIT FOR END OF IO SCRAM: ;NOW DETACH OUTPUT QIO$C IO.DET,2,1,,IOST,, WTSE$C 1 ;WAIT FOR END EXIT$C ;AND MAKE LIKE A TREE (LEAVE) ; ; BADINP: .BYTE 12,15 ;CAR RET-LINE FEED .ASCII /BAD INPUT LINE--TRY AGAIN/ .EVEN ; TYPNAM: .WORD 0 ;SAVE 2CHAR CHECK STRING HERE ; ;FOLLOWING ARE THE TWO CHARACTER CHECK WORD TABLE (TERMINATED ;BY A 0 WORD) AND A CALL POINTER TABLE. NEW SUBS CAN EASILY BE ;INSERTED BY ADDING AN APPROPRIATE 2-CHARACTER CHECK WORD AND ;SUB NAME (NAMED XXX:: IN THE SUB) TO THE RESPECTIVE TABLES ; ; CHARCK: .ASCII /AC/ ;ATL .ASCII /NO/ ;NODE POOL LIST .ASCII /CK/ ;CLOCK QUEUE .ASCII /PU/ ;PUD FOR DEVICE .ASCII /MA/ ;MAP PARTITION .ASCII /FR/ ;FORMS TYPE .ASCII /AT/ ;ATL FOR ONE TASK .ASCII /ST/ ;STD FOR ONE TASK .ASCII /IO/ ;POSSIBLE IO REQUEST NODES .ASCII /TE/ ;LIST TERMINAL CHARACTERISTICS .WORD 0 SUBPTR: .WORD ACT .WORD NOD .WORD CKQ .WORD PUD .WORD MAP .WORD FRM .WORD ATL .WORD STDL .WORD IOR .WORD TER IOST: .WORD 0,0 ;RETURN STATUS CONDITIONS MCRSIZ:: .WORD 0 ;USED TO SAVE MCR BYTE COUNT MCRDPB: .BYTE 127.,41. ;DIRECTIVE CODE, SIZE OF DPB MCRBUF:: .BLKW 40. ;80 BYTE BUFFER LUNBUF: .BLKW 6 ;6 WORD BUFFER TO RECEIVE LUN INFO FFBUFF: .WORD 0 ;DUMMY BUFFER FOR SCOPE FF QIO .END INF