Trailing-Edge
-
PDP-10 Archives
-
dec-10-omona-u-mc9
-
monmkh.ctl
There are 2 other files named monmkh.ctl in the archive. Click here to see a list.
;%1(26) VERSION OF MONMKH 1 MAR 1977 ALAN FRANTZ/MS/RAP
;THIS .CTL FILE ASSEMBLES THE MONITOR SOURCES FOR KI10 CONFIGURATIONS
; (BUT WITHOUT VIRTUAL MEMORY), CREATES THE TOPH10.REL FILE, AND OPTIONALLY
; PRODUCES CREF LISTINGS AND/OR A GLOB CROSS-REFERENCE LISTING.
;
; WARNING-----NEEDS MUCH CPU TIME SUBMIT WITH /TIME:1::
;
;
MHGO:: ;
.CHKPNT MHGO
.SET WATCH ALL
.IF (ERROR) ;Okay, it's not critical to watch version numbers, etc.
;
;AVOID USING VIRTUAL MEMORY
.SET PHYSICAL 256
.IF (ERROR) ;OK, WE MUST BE ON A KA10
;
.PLEASE MONMKH--KI10 "LUG" MONITOR ASSEMBLY--RESTRICT SYSTEM USAGE TO GAIN SPEED
;
;
;BEFORE ASSEMBLING THE MONITOR, WE NEED FLUGI.MAC. THIS FILE WAS TRANSFERRED
; FROM THE BLACK PACKS BY MONFIL.CCL@, BUT THAT VERSION OF FLUGI.MAC MAY BE
; OUT OF DATE IF FGEN.HLP HAS BEEN EDITTED. IF RUNNING MONGEN PRODUCES AN
; IDENTICAL FILE, IT IS BETTER TO USE THE OLD FLUGI.MAC (TO AVOID UNNECESSARY
; ASSEMBLIES). THEREFORE, WE WILL OVERWRITE FLUGI.MAC WITH A NEWLY CREATED
; FILE ONLY IF IT IS DIFFERENT. THIS TAKES SOME SLEIGHT OF HAND......
.DELETE FLUGI.FAK
.IF (ERROR) ;O.K. ONLY FOR REENTRANCY
.RUN DSKB:PIP[10,7]
*FLUGI.FAK/R_FLUGI.MAC
.IF (ERROR) *FLUGI.FAK_MONMKH.CTL
.GET DSK:MONGEN
.VERSION
.IF (ERROR) .E 137
.START
*
*F
*FLUGI
*KILUG
*Y ;STANDARD SWITCH SETTINGS
;MONGEN HAS JUST CREATED A KI10 "LUG" FEATURE TEST SWITCHES FILE, FLUGI.MAC.
;NOW WE COMPARE IT TO ITS PREDECESSOR FLUGI.MAC (RECENTLY RENAMED TO FLUGI.FAK)
.RUN DSKB:FILCOM[10,7]
*FAKLGI.FAK_FLUGI.FAK,FLUGI.MAC
.RUN DSKB:TECO[10,7]
*ERFAKLGI.FAKYZ=C
.IF (NOERROR) .GOTO MHNUF
;THIS ERROR HAPPENS ONLY IF FILCOM WROTE A ZERO-LENGTH FAKLGI.FAK FILE.
;IN THIS CASE, RETAIN THE PREVIOUS FLUGI.MAC BECAUSE IT IS IDENTICAL.
.DELETE FLUGI.MAC
.RENAME FLUGI.MAC=FLUGI.FAK
MHNUF:: ;
.DELETE FAKLGI.FAK,FLUGI.FAK
.IF (ERROR) ;OKAY
;END OF DIDDLING WITH FLUGI.MAC......
;
;TO ASSEMBLE THE MONITOR USING CONLGI WE ALSO NEED FILES NAMED
; HDWLGI, TTYLGI, AND NETLGI. GET THESE FILES FOR THE SYSTEM #514
; CONFIGURATION AND USE THEM HERE. THIS IS ACCOMPLISHED BY A KLUDGEY
; "CALL" ON PART OF THE MK514H.CTL FILE.
;
.RUN DSKB:TECO[10,7]
*HK@I#.SUBMIT MONMKH/UNIQ:0/TIME:1::/TAG:MHREE/AFTER:+0:01
*.IF (ERROR) .PLEASE COULD NOT RE-ENTER MONMKH.CTL
*.KJOB/F
*#EWMK514H.KLGHPEF
.IF (ERROR) .PLEASE MONMKH.CTL CANNOT CALL MK514H.CTL
;NOW CALL MK514H.CTL AS A SUBROUTINE
.SUBMIT MK514H/UNIQ:0/TIME:10:/TAG:G514H
.IF (ERROR) .PLEASE MONMKH.CTL CANNOT CALL MK514H.CTL
;NOW GO AWAY UNTIL MK514H.CTL HAS FINISHED RUNNING
.KJOB/F
;COME BACK HERE WHEN MK514H.CTL IS FINISHED
;
;THIS IS WHERE THE KLUDGE RE-ENTERS MONMKH AFTER RUNNING THE
; MONGEN PART OF MK514H.CTL
MHREE:: ;
.CHKPNT MHREE
.SET WATCH ALL
.IF (ERROR) ;O.K.
.PLEASE CHKPNT MHREE
.DELETE MK514H.KLG
.IF (ERROR) ;O.K.
.DELETE HDWLGI.MAC,TTYLGI.MAC,NETLGI.MAC
.IF (ERROR) ;FOR REENTRANCY ONLY
.RENAME HDWLGI.MAC=HDW14H.MAC
.RENAME TTYLGI.MAC=TTY14H.MAC
.RENAME NETLGI.MAC=NET14H.MAC
;NOW WE HAVE ALL THE NEEDED FILES, SO TURN THE ASSEMBLER LOOSE......
;
;FIRST WE ASK THE QUESTION "DO YOU WANT CREF LISTINGS ?"
;
MHASK:: ;
.CHKPNT MHASK
.SET WATCH ALL
.IF (ERROR) ;O.K.
.PLEASE CHKPNT MHASK
.RUN DSKB:TECO[10,7]
.OPERATOR %
*!BEG!
*% OPERATOR - DO YOU WANT MONMKH CREF LISTINGS ? (YES/NO)
*
*!GET! ^^TUM QM-9"EOGET' QM-32"EOGET' QMUN
*!MORE! QN-10"EOEOL' QN-27"EOEOL' QN-125"EOEOL' ^^TUN OMORE
*!EOL! QM-^^^^Y"E
*GENERATE CREF LISTINGS
* ODONE'
*QM-^^^^N"E
* ? CANCEL CREF LISTINGS
* ODONE'
*% OPERATOR - YOU MUST TYPE YES OR NO
* OGET
=!DONE!
.NOOPERATOR
.IF (ERROR) .GOTO MHMAC
;HERE IF ANSWER WAS YES -- MAKE CREF'S
MHMCC:: ;
.CHKPNT MHMCC
.SET WATCH ALL
.IF (ERROR) ;O.K.
.PLEASE CHKPNT MHMCC--BEGINNING COMPILE @CONLGI/CREF
;AVOID USING VIRTUAL MEMORY
.SET PHYSICAL 256
.IF (ERROR) ;OK, WE MUST BE ON A KA10
;
.ASSIGN DSK SYS
; Force use of FIELD IMAGE cusps for assembling the monitor . . .
.ERROR %
.COMPILE /CREF @CONLGI
.IF (ERROR) .GOTO MHAER
.ERROR
.GOTO MHAOK
;HERE IF ANSWER WAS NO -- (NO CREF'S)
MHMAC:: ;
.CHKPNT MHMAC
.SET WATCH ALL
.IF (ERROR) ;O.K.
.PLEASE CHKPNT MHMAC--BEGINNING COMPILE @CONLGI
;AVOID USING VIRTUAL MEMORY
.SET PHYSICAL 256
.IF (ERROR) ;OK, WE MUST BE ON A KA10
;
.ASSIGN DSK SYS
; Force use of FIELD IMAGE cusps for assembling the monitor . . .
.ERROR %
.COMPILE @CONLGI
.IF (NOERROR) .GOTO MHAOK
.ERROR
MHAER:: ;
.IF (ERROR) ;OK
.PLEASE KI10 "LUG" MONITOR ASSEMBLY ERRORS EXIST--MONMKH
.DEASSIGN SYS
.QUEUE L:ERRORH=MONMKH.LOG/DISPOSE:PRESERVE/PRIORITY:51
.IF (ERROR) .PLEASE COULDN'T PRINT MONMKH.LOG - PLEASE QUEUE IT AND
.PLEASE EXAMINE ERROR LOG ON LPT, THEN KILL OR PROCEED ?
;THIS WAITS FOR OPERATOR RESPONSE......
.GOTO MHAGO
MHAOK:: ;
.PLEASE MONMKH CHKPNT MHAOK--KI10 "LUG" MONITOR ASSEMBLES CORRECTLY
;
MHAGO:: ;
.CHKPNT MHAGO
.SET WATCH ALL
.IF (ERROR) ; OKAY
.DEASSIGN SYS
.IF (ERROR) ; OKAY
.RUN DSKB:PIP[10,7] 10
*CMBLGI@
; CMBLGI.CCL COMBINES .RLH FILES INTO TOPH10.REL LIBRARY FILE.
.RUN DSKB:PIP[10,7] 10
;
;NOW TO COPY RESULTS TO THE BLACK PACKS
MHCPY:: ;
.CHKPNT MHCPY
.SET WATCH ALL
.IF (ERROR) ;O.K.
.PLEASE CHKPNT MHCPY--READY TO COPY FLUGI.MAC, ..., TOPH10.REL TO BLKA: ?
;THIS WAITS FOR OPERATOR TO CONTINUE......
;
;CMBLGI.CCL CREATES TOPMON.RLH AND TOPEND.RLH IN ADDITION TO TOPH10.REL.
; THESE FILES ARE BASICALLY HISTORICAL ARTIFACTS LEFT OVER FROM THE DAYS WHEN
; WE COPIED THE TOPH10.REL FILE ONTO DECTAPE AND IT BECAME TOO BIG TO FIT
; ON ONE DECTAPE. NOW WE WANT TO DELETE THESE FILES TO SAVE SPACE ON OUR
; DISK PACK, BUT THE DELETION IS HERE AFTER THE PAUSE FOR OPERATOR
; RESPONSE IN CASE ANYONE WANTS A DECTAPE COPY OF THE .RLH FILES.
.DELETE TOPMON.RLH,TOPEND.RLH
.IF (ERROR) ;OKAY
.MOUNT BLKA:
.IF (ERROR) .PLEASE CAN'T MOUNT BLKA:--BETTER ABORT
.RUN DSKB:PIP[10,7]
*BLKA:[7,5112]<100>/X/B_FLUGI.MAC,HDWLGI.MAC,TTYLGI.MAC,NETLGI.MAC,TOPH10.REL
.IF (ERROR) .PLEASE TROUBLE COPYING ONTO BLKA:
;
;NEXT PRODUCE GLOBAL CROSS-REFERENCE LISTING TOPH10.GLB
;
MHGLB:: ;
.CHKPNT MHGLB
.SET WATCH ALL
.IF (ERROR) ; OKAY
.PLEASE MONMKH CHKPNT MHGLB--KILL THIS JOB IF NO KI10 "LUG" MONITOR GLOB DESIRED
;THIS PAUSES FOR OPERATOR RESPONSE
;
.RUN DSKB:FUDGE2[10,7]
=DSK:TOPH10.FUD_TOPH10/L
.IF (ERROR) ; NICE TRY
.R GLOB 15
*COMMON.RLH,COMDEV.RLH,COMNET.RLH,COMMOD.RLH
*DSK:TOPH10.GLB=TOPH10.REL
.IF (ERROR) ; NICE TRY
;THESE FILES ARE CREATED BUT NOT PRINTED AUTOMATICALLY (AS OF JUNE 1973)
;.QUEUE TOPH10.GLB,TOPH10.FUD/PRIORITY:1/FORM:NORMAF
;.IF (ERROR) .PLEASE COULDN'T PRINT FILES TOPH10.FUD OR TOPH10.GLB - PROCEEDING
;
;AS OF JUNE 1973, THE TOPH10 GLOB FILE IS NO LONGER COPIED TO THE BLACK PACKS.
;
MHCRF:: ;
.CHKPNT MHCRF
.SET WATCH ALL
.IF (ERROR) ; OKAY
.PLEASE MONMKH CHKPNT MHCRF
;
; NOW GET ALL THE KI10 CREF LISTINGS THAT HAVE BEEN MADE
.PLEASE READY TO CREF (NORMALLY DELETED FOR "LUG" MONITOR) ?
;THIS WAITS FOR OPERATOR TO CONTINUE (PAUSE SO OPERATOR CAN, OPTIONALLY,
; HAVE LPTSPL DO ITS OUTPUT TO A LISTING MAGTAPE OR CAN DELETE
; UNWANTED .CRF FILES)......
.PLEASE KI10 "LUG" MONITOR CREFS BEGUN. EDDT AND EJBDAT MUST BE
.PLEASE CREF'D BY HAND IF LISTINGS DESIRED (USUALLY DISCARDED)
.ASSIGN DSK LPT
;USE A PRIVATE QUEUE SO WE CAN RUN A PRIVATE COPY OF LPTSPL
.ASSIGN MON QUE
;WE MUST NOW DO THINGS DIFFERENTLY IF GALAXY IS RUNNING
.R ISIT ;GALAXY
.IF (NOERROR) .LOCATE 50
.RUN DSKB:CREF[10,7]
*FLUGI
.IF (NOERROR) .QUEUE FLUGI.LST/PRIORITY:1/FORM:NORMAF
.RUN DSKB:CREF[10,7]
*S
.IF (NOERROR) .QUEUE S.LST/PRIORITY:1/FORM:NORMAF
.RUN DSKB:CREF[10,7]
*COMMON
.IF (NOERROR) .QUEUE COMMON.LST/PRIORITY:1/FORM:NORMAF
.RUN DSKB:CREF[10,7]
*COMDEV
.IF (NOERROR) .QUEUE COMDEV.LST/PRIORITY:1/FORM:NORMAF
.RUN DSKB:CREF[10,7]
*COMMOD
.IF (NOERROR) .QUEUE COMMOD.LST/PRIORITY:1/FORM:NORMAF
.RUN DSKB:CREF[10,7]
*FILFND
.IF (NOERROR) .QUEUE FILFND.LST/PRIORITY:1/FORM:NORMAF
.RUN DSKB:CREF[10,7]
*FILIO
.IF (NOERROR) .QUEUE FILIO.LST/PRIORITY:1/FORM:NORMAF
.RUN DSKB:CREF[10,7]
*FILUUO
.IF (NOERROR) .QUEUE FILUUO.LST/PRIORITY:1/FORM:NORMAF
.RUN DSKB:CREF[10,7]
*DPXKON
.IF (NOERROR) .QUEUE DPXKON.LST/PRIORITY:1/FORM:NORMAF
.RUN DSKB:CREF[10,7]
*FHXKON
.IF (NOERROR) .QUEUE FHXKON.LST/PRIORITY:1/FORM:NORMAF
.RUN DSKB:CREF[10,7]
*FSXKON
.IF (NOERROR) .QUEUE FSXKON.LST/PRIORITY:1/FORM:NORMAF
.RUN DSKB:CREF[10,7]
*CDPSER
.IF (NOERROR) .QUEUE CDPSER.LST/PRIORITY:1/FORM:NORMAF
.RUN DSKB:CREF[10,7]
*CDRSRX
.IF (NOERROR) .QUEUE CDRSRX.LST/PRIORITY:1/FORM:NORMAF
.RUN DSKB:CREF[10,7]
*CLOCK1
.IF (NOERROR) .QUEUE CLOCK1.LST/PRIORITY:1/FORM:NORMAF
.RUN DSKB:CREF[10,7]
*COMCON
.IF (NOERROR) .QUEUE COMCON.LST/PRIORITY:1/FORM:NORMAF
.RUN DSKB:CREF[10,7]
*CORE1
.IF (NOERROR) .QUEUE CORE1.LST/PRIORITY:1/FORM:NORMAF
.RUN DSKB:CREF[10,7]
*DATMAN
.IF (NOERROR) .QUEUE DATMAN.LST/PRIORITY:1/FORM:NORMAF
.RUN DSKB:CREF[10,7]
*DISSER
.IF (NOERROR) .QUEUE DISSER.LST/PRIORITY:1/FORM:NORMAF
.RUN DSKB:CREF[10,7]
*DLSINT
.IF (NOERROR) .QUEUE DLSINT.LST/PRIORITY:1/FORM:NORMAF
.RUN DSKB:CREF[10,7]
*DL1INT
.IF (NOERROR) .QUEUE DL1INT.LST/PRIORITY:1/FORM:NORMAF
.RUN DSKB:CREF[10,7]
*DTASRN
.IF (NOERROR) .QUEUE DTASRN.LST/PRIORITY:1/FORM:NORMAF
.DELETE EDDT.CRF
.IF (ERROR) ; IT'S OKAY--OPERATOR MAY HAVE CREF'D BY HAND
.RUN DSKB:CREF[10,7]
*ERRCON
.IF (NOERROR) .QUEUE ERRCON.LST/PRIORITY:1/FORM:NORMAF
.DELETE EJBDAT.CRF
.IF (ERROR) ; IT'S OKAY--OPERATOR MAY HAVE CREF'D BY HAND
.RUN DSKB:CREF[10,7]
*KISER
.IF (NOERROR) .QUEUE KISER.LST/PRIORITY:1/FORM:NORMAF
.RUN DSKB:CREF[10,7]
*LPTSER
.IF (NOERROR) .QUEUE LPTSER.LST/PRIORITY:1/FORM:NORMAF
.RUN DSKB:CREF[10,7]
*MSGSER
.IF (NOERROR) .QUEUE MSGSER.LST/PRIORITY:1/FORM:NORMAF
.RUN DSKB:CREF[10,7]
*NULSEG
.IF (NOERROR) .QUEUE NULSEG.LST/PRIORITY:1/FORM:NORMAF
.RUN DSKB:CREF[10,7]
*PLTSER
.IF (NOERROR) .QUEUE PLTSER.LST/PRIORITY:1/FORM:NORMAF
.RUN DSKB:CREF[10,7]
*PSISER
.IF (NOERROR) .QUEUE PSISER.LST/PRIORITY:1/FORM:NORMAF
.RUN DSKB:CREF[10,7]
*PTPSER
.IF (NOERROR) .QUEUE PTPSER.LST/PRIORITY:1/FORM:NORMAF
.RUN DSKB:CREF[10,7]
*PTRSER
.IF (NOERROR) .QUEUE PTRSER.LST/PRIORITY:1/FORM:NORMAF
.RUN DSKB:CREF[10,7]
*PTYSER
.IF (NOERROR) .QUEUE PTYSER.LST/PRIORITY:1/FORM:NORMAF
.RUN DSKB:CREF[10,7]
*RTTRP
.IF (NOERROR) .QUEUE RTTRP.LST/PRIORITY:1/FORM:NORMAF
.RUN DSKB:CREF[10,7]
*SCHED1
.IF (NOERROR) .QUEUE SCHED1.LST/PRIORITY:1/FORM:NORMAF
.RUN DSKB:CREF[10,7]
*SCNSER
.IF (NOERROR) .QUEUE SCNSER.LST/PRIORITY:1/FORM:NORMAF
.RUN DSKB:CREF[10,7]
*SEGCON
.IF (NOERROR) .QUEUE SEGCON.LST/PRIORITY:1/FORM:NORMAF
.RUN DSKB:CREF[10,7]
*SWPSER
.IF (NOERROR) .QUEUE SWPSER.LST/PRIORITY:1/FORM:NORMAF
.RUN DSKB:CREF[10,7]
*TMPUUO
.IF (NOERROR) .QUEUE TMPUUO.LST/PRIORITY:1/FORM:NORMAF
.RUN DSKB:CREF[10,7]
*UUOCON
.IF (NOERROR) .QUEUE UUOCON.LST/PRIORITY:1/FORM:NORMAF
.RUN DSKB:CREF[10,7]
*VBCSER
.IF (NOERROR) .QUEUE VBCSER.LST/PRIORITY:1/FORM:NORMAF
.RUN DSKB:CREF[10,7]
*PATCH
.IF (NOERROR) .QUEUE PATCH.LST/PRIORITY:1/FORM:NORMAF
.RUN DSKB:CREF[10,7]
*SYSINI
.IF (NOERROR) .QUEUE SYSINI.LST/PRIORITY:1/FORM:NORMAF
.RUN DSKB:CREF[10,7]
*SYSCHK
.IF (NOERROR) .QUEUE SYSCHK.LST/PRIORITY:1/FORM:NORMAF
.RUN DSKB:CREF[10,7]
*ONCMOD
.IF (NOERROR) .QUEUE ONCMOD.LST/PRIORITY:1/FORM:NORMAF
.RUN DSKB:CREF[10,7]
*REFSTR
.IF (NOERROR) .QUEUE REFSTR.LST/PRIORITY:1/FORM:NORMAF
.RUN DSKB:CREF[10,7]
*ONCE
.IF (NOERROR) .QUEUE ONCE.LST/PRIORITY:1/FORM:NORMAF
.RUN DSKB:CREF[10,7]
*NETPRM
.IF (NOERROR) .QUEUE NETPRM.LST/PRIORITY:1/FORM:NORMAF
.RUN DSKB:CREF[10,7]
*COMNET
.IF (NOERROR) .QUEUE COMNET.LST/PRIORITY:1/FORM:NORMAF
.RUN DSKB:CREF[10,7]
*CCIINT
.IF (NOERROR) .QUEUE CCIINT.LST/PRIORITY:1/FORM:NORMAF
.RUN DSKB:CREF[10,7]
*D76INT
.IF (NOERROR) .QUEUE D76INT.LST/PRIORITY:1/FORM:NORMAF
.RUN DSKB:CREF[10,7]
*D78INT
.IF (NOERROR) .QUEUE D78INT.LST/PRIORITY:1/FORM:NORMAF
.RUN DSKB:CREF[10,7]
*D85INT
.IF (NOERROR) .QUEUE D85INT.LST/PRIORITY:1/FORM:NORMAF
.RUN DSKB:CREF[10,7]
*NETSER
.IF (NOERROR) .QUEUE NETSER.LST/PRIORITY:1/FORM:NORMAF
.RUN DSKB:CREF[10,7]
*RDXSER
.IF (NOERROR) .QUEUE RDXSER.LST/PRIORITY:1/FORM:NORMAF
.RUN DSKB:CREF[10,7]
*RPXKON
.IF (NOERROR) .QUEUE RPXKON.LST/PRIORITY:1/FORM:NORMAF
.RUN DSKB:CREF[10,7]
*TAPSER
.IF (NOERROR) .QUEUE TAPSER.LST/PRIORITY:1/FORM:NORMAF
.RUN DSKB:CREF[10,7]
*TAPUUO
.IF (NOERROR) .QUEUE TAPUUO.LST/PRIORITY:1/FORM:NORMAF
.RUN DSKB:CREF[10,7]
*TCXKON
.IF (NOERROR) .QUEUE TCXKON.LST/PRIORITY:1/FORM:NORMAF
.RUN DSKB:CREF[10,7]
*TM2KON
.IF (NOERROR) .QUEUE TM2KON.LST/PRIORITY:1/FORM:NORMAF
.RUN DSKB:CREF[10,7]
*TMXKON
.IF (NOERROR) .QUEUE TMXKON.LST/PRIORITY:1/FORM:NORMAF
.RUN DSKB:CREF[10,7]
*TSKSER
.IF (NOERROR) .QUEUE TSKSER.LST/PRIORITY:1/FORM:NORMAF
.RUN DSKB:CREF[10,7]
*TYPSER
.IF (NOERROR) .QUEUE TYPSER.LST/PRIORITY:1/FORM:NORMAF
.RUN DSKB:CREF[10,7]
*XTCSER
.IF (NOERROR) .QUEUE XTCSER.LST/PRIORITY:1/FORM:NORMAF
.DEASSIGN LPT
.DEASSIGN QUE
.LOCATE
;
;
.GOTO MHXIT
MHCP2:: ;
.CHKPNT MHCP2
.SET WATCH ALL
.IF (ERROR) ;O.K.
.PLEASE CHKPNT MHCP2--READY TO COPY TOPH10..FUD, TOPH10.GLB TO BLKA: ?
;THIS WAITS FOR OPERATOR TO CONTINUE......
.MOUNT BLKA:
.IF (ERROR) .PLEASE CAN'T MOUNT BLKA:--BETTER ABORT
.RUN DSKB:PIP[10,7]
*BLKA:[7,5112]<100>/X/B_TOPH10.FUD,TOPH10.GLB
.IF (ERROR) .PLEASE TROUBLE COPYING ONTO BLKA:
.GOTO MHXIT
%ERR:: .GOTO MHERR
%CERR:: .GOTO MHERR
MHERR:: .PLEASE ERROR IN MONMKH--EXAMINE .LOG FILE
.QUEUE MONMKH.LOG/DISPOSE:PRESERVE
.GOTO MHXIT
MHXIT:: .PLEASE MONMKH FINISHED--LOAD KI10 "LUG" MONITOR NEXT
%FIN:: ;
.KJOB/F
;[END OF MONMKH.CTL]