; DJOB2.M68 - Dynamic memory display PART 2 ; ; Copyright [c] STUYVESANT SofSystems ; ; EDIT HISTORY ; [J-01] 8701.02 REMOVED CODE TO RESET CONNECTION TIME DISPLAY AND ERASE DISPLAYS WHEN RESET ; SEARCH SYS SEARCH SYSSYM SEARCH TRM RADIX 8. AUTOEXTERN ; ;MACROS DEFINE DPACK ADDR,COUNT ; SET UP FOR UNPACK ADDR= WHERE RAD50 IS COUNT=# OF WORDS @(ADDR) LEA A1,ADDR ; EA=> A1 MOV #COUNT-1,D0 ; D0 GETS COUNT-1 SO BEQ TRUE FOR 1 WORD CALL UPACK ; UNPACK IT ONTO SCREEN AT CURRENT POSITION ENDM DEFINE L.CRT ROW,COL ; SET A WORD=ROW/COL CODE WORD + ENDM DEFINE DSPLY ROW,COL,TEXT ; SET BYTES = WORD + ; ROW/COL CODE BYTE 20$$-10$$ ; LENGTH OF MESSAGE 10$$: ASCIZ ?TEXT? ; BYTES OF MESSAGE EVEN ; FORCE EVEN FOR NEXT NESSAGE 20$$: ; NEED FOR SUBTRACTION ABOVE ENDM DEFINE LOW ; SET REDUCED INTENSITY MOV #177400+11.,D1 TCRT ENDM DEFINE HIGH ; SET NORMAL INTENSITY MOV #177400+12.,D1 TCRT ENDM ; ; ; ; DISPLAY JOB NAME ; D$JNM:: MOV JOBNAM(A0),D0 ; MOV TRUE JOBNAME TO D0 CMP D0,J%JNM(A5) ; CMP WITH STORED BNE 100$ ; IF #0 THEN NOT SAME SO BR RTN 100$: MOV D0,J%JNM(A5) ; SAVE NEW NAME MOV #,D0 ; LOAD DSPLY LOCATION CALL POSCRT ; MOVE DPACK J%JNM(A5),2 ; ADDR & COUNT TO UNPACK RTN ; ; ; DISPLAY TERMINAL NAME ; D$TNM:: MOV JOBTRM(A0),D0 ; GET TRUE TRMNAME BEQ 120$ ; IF =0 THEN NOW DETACHED PRINT SO MOV D0,A1 ; = ADDR OF TRMDEF MOV -4(A1),D0 ; -4 =MODULE NAME CMP D0,J%TNM(A5) ; CMP WITH STORED BNE 100$ ; IF #0 THEN NOT SAME SO BR RTN ; = SO FIN 100$: MOV D0,J%TNM(A5) ; SAVE NEW NAME MOV #,D0 ; LOCATE CALL POSCRT ; MOVE DPACK J%TNM(A5),2 ; UNPACK AND PRINT RTN 120$: MOV D0,J%TNM(A5) ; STORE A 0 MOV #,D0 ; LOCATE CALL POSCRT ; MOVE LOW ; SET DIM VID TYPE ; TELL THEM HIGH ; SET NORM VID RTN ; FIN AND RTN ; ; ; DISPLAY PROGRAM NAME ; D$PGM:: CLR D0 ; PRE CLEAR FOR WORD OP MOVW JOBSTS(A0),D0 ; MOVE PRESENT JOB STATUS TO D0 ANDW #J.MON,D0 ; AND IT W/ MON FLAG BNE 200$ ; IF NE THEN AT MON LEVEL MOV JOBPRG(A0),D0 ; GET CURRENT PROGRAM CMP D0,J%PGM(A5) ; COMPARE WITH LAST BNE 100$ ; IF NE THEN UPDATE RTN ; ELSE = SO RTN 100$: MOV D0,J%PGM(A5) ; SAVE NEW PROGRAM NAME MOV #,D0 ; SET INDEX TO MESSAGE LOCATION CALL POSCRT ; LOCATE CURSOR DPACK J%PGM(A5),2 ; PRINT NEW PROGRAM NAME RTN ; FINISHED AND RTN 200$: TST J%PGM(A5) ; TEST THE L-WORD BMI 300$ ; BRANCH IF ITS NEG MOVW #-1,J%PGM(A5) ; CLEAR OLD PROGRAM MOV #,D0 ; LOCATE MESSAGE LINE CALL POSCRT ; LOCATE CURSOR LOW ; SET LOW INTENSITY TYPE ; TELL THEM HIGH ; RESTORE TO HIGH INTENSITY 300$: RTN ; ALL DONE ; ; ; DISPLAY CURRENT LOG IN {CLOG} ; D$CLOG::CLR D1 ; PRE CLEAR D1 FOR WORD OPER S MOVW JOBUSR(A0),D1 ; GET NEW PPN BEQ 400$ ; IF 0 THEN LOGGED OFF CMPW D1,J%PPN(A5) ; COMPARE TO OLD PPN BNE 100$ ; IF NE UPDATE EVERY BODY MOVW JOBDRV(A0),D1 ; GET NEW DRIVE CMPW D1,J%DRV(A5) ; CMP W/OLD BNE 100$ ; IF NE UPDATE EVERYBODY MOVW JOBDEV(A0),D1 ; GET NEW DEVICE CMPW D1,J%DEV(A5) ; CMP W/OLD BNE 100$ ; IF NE UPDATE EVERYBODY RTN ; NO ONE CHANGED FINISH 100$: MOVW JOBUSR(A0),J%PPN(A5) ; SAVE PPN MOVW JOBDRV(A0),J%DRV(A5) ; SAVE DRIVE MOVW JOBDEV(A0),J%DEV(A5) ; SAVE DEVICE MOV #,D0 ; FIND MESSAGE STRING CALL POSCRT ; LOCATE CURSOR TYPE < > ; CLEAR OLD CALL POSCRT ; REPOSITION DPACK J%DEV(A5),1 ; DISPLAY DEVICE MOVW J%DRV(A5),D1 ; SET D1=DRIVE DCVT 0,OT$TRM ; PRINT DRIVE AS DECIMAL/ SPACE AS REQD/ @TRM TYPE <:[> ; PRINT TERMINATING COLON AND PPN BRACKET PRPPN J%PPN(A5) ; PRINT PPN TYPE <]> ; PRINT TERM BRACKET RTN 400$: CLRW J%PPN(A5) ; CLEAR PPN CLRW J%DRV(A5) ; CLEAR DRIVE CLRW J%DEV(A5) ; CLEAR DEVICE MOV #,D0 ; LOCATE MESSAGE STRING CALL POSCRT ; LOCATE CURSOR LOW ; PRINT @ LOW INTENSITY TYPE ; TELL THEM NOT LOGGED IN HIGH ; NORM. VID RTN ; ; ; DISPLAY JOB STATUS ; NOTE NO "NULL STAT FOR THIS RTN CUZ' IT HAPPEN TO MUCH ; ; D$JST:: MOVW JOBSTS(A0),D2 ; GET NEW JOB STATUS CMPW D2,J%JST(A5) ; CMP W/ OLD JOB STATUS BNE 100$ ; IF NE THEN UPDATE RTN ; = SO QUIT 100$: MOVW D2,J%JST(A5) ; REPLACE JOB STATUS MOV #,D0 ; LOCATE MESSAGE STRING CALL POSCRT ; LOCATE CURSOR TST D2 ; TEST IF =0 OR (-) BEQ 200$ ; IF =0 SHOW IT LEA A1,M.JSTS ; LOAD EA OF STATUSES MOV #1,D0 ; SET COUNTER TO 1 CLR D3 ; CLR D3 FOR WORD OPER CLR D2 ; CLR D2 FOR WORD OPER 110$: MOVW D0,D3 ; MAKE D3=D0 ANDW J%JST(A5),D3 ; TEST BIT BEQ 120$ ; IF EQ 0 THEN BIT =0 (NOT THIS STATUS) INC D2 ; COUNTER FOR #FOUND TTYL @A1 ; PRINT IT OUT CMPW D2,#10. ; MAX 10 STATUSES AT ONCE LISTED BEQ 135$ ; IF 10 THEN DONT DO ANY MORE 120$: ADD #5.,A1 ; INC A1 BY 5 FOR OFFSET TO NEXT STATUS LSLW D0,#1. ; SHIFT BIT 1 POS TO LEFT BCC 110$ ; BRANCH IF NO CARRY (BIT SHIFTED OUT) LEA A1,B.JSTS ; LOCATE BLANKS LIST MUL D2,#4. ; MUL #PRINTED 4 FOR STATUS OFFSET ADDW D2,A1 ; ADD OFFSET TTYL @A1 ; PRINT OUT CLEARING BLANKS 135$: RTN ; FINISHED 200$: LEA A1,B.JSTS ; LOCATE BLANKS TTYL @A1 ; PRINT IT RTN ; FINISHED ; ; ; ; JOB STATUS LIST ; M.JSTS: ASCIZ /b01 / ASCIZ /TIW / ASCIZ /TOW / ASCIZ /SLP / ASCIZ /IOW / ASCIZ /EXW / ASCIZ /SMW / ASCIZ /CCC / ASCIZ /MSG / ASCIZ /MON / ASCIZ /b10 / ASCIZ /b11 / ASCIZ /SUS / ASCIZ /LOK / ASCIZ /FIL / ASCIZ /NXT / B.JSTS: ASCIZ / / EVEN ; ; ; DISPLAY TRM STATUS ; D$TST:: MOV JOBTRM(A0),A1 ; GET NEW JOB STATUS MOVW @A1,D2 ; MOV TERM STAT WORD TO D2 CMPW D2,J%TST(A5) ; CMP W/ OLD JOB STATUS BNE 100$ ; IF NE THEN UPDATE RTN ; = SO QUIT 100$: MOVW D2,J%TST(A5) ; REPLACE JOB STATUS MOV #,D0 ; LOCATE MESSAGE STRING CALL POSCRT ; LOCATE CURSOR TST D2 ; TEST =0 OR (-) BEQ 200$ ; IF =0 LEA A1,M.TSTS ; LOAD EA OF STATUSES MOV #1,D0 ; SET COUNTER TO 1 CLR D3 ; CLR D3 FOR WORD OPER CLR D2 ; CLR D2 FOR WORD OPER 110$: MOVW D0,D3 ; MAKE D3=D0 ANDW J%TST(A5),D3 ; TEST BIT BEQ 120$ ; IF EQ 0 THEN BIT =0 (NOT THIS STATUS) INC D2 ; COUNTER FOR #FOUND TTYL @A1 ; PRINT IT OUT CMPW D2,#10. ; MAX 10 STATUSES AT ONCE LISTED BEQ 135$ ; IF 10 THEN DONT DO ANY MORE 120$: ADD #5.,A1 ; INC A1 BY 5 FOR OFFSET TO NEXT STATUS LSLW D0,#1. ; SHIFT BIT 1 POS TO LEFT BCC 110$ ; BRANCH IF NO CARRY (BIT SHIFTED OUT) LEA A1,B.JSTS ; LOCATE BLANKS LIST MUL D2,#4. ; MUL #PRINTED 4 FOR STATUS OFFSET ADDW D2,A1 ; ADD OFFSET TTYL @A1 ; PRINT OUT CLEARING BLANKS 135$: RTN ; FINISHED 200$: LEA A1,B.JSTS ; LOCATE BLANKS TTYL @A1 ; PRINT IT RTN ; FINISHED ; ; ; JOB STATUS LIST ; M.TSTS: ASCIZ /IMI / ASCIZ /ECS / ASCIZ /LCL / ASCIZ /DAT / ASCIZ /ILC / ASCIZ /XLT / ASCIZ /NFK / ASCIZ /OIP / ASCIZ /LED / ASCIZ /ASN / ASCIZ /DIS / ASCIZ /VLD / ASCIZ /LDT / ASCIZ /b13 / ASCIZ /b14 / ASCIZ /b15 / EVEN ; ; ; DISPLAY JOB TYPE ; D$TYP:: MOVW JOBTYP(A0),D2 ; GET NEW JOB STATUS CMPW D2,J%TYP(A5) ; CMP W/ OLD JOB STATUS BNE 100$ ; IF NE THEN UPDATE RTN ; = SO QUIT 100$: MOVW D2,J%TYP(A5) ; REPLACE JOB STATUS MOV #,D0 ; LOCATE MESSAGE STRING CALL POSCRT ; LOCATE CURSOR TSTW D2 ; IF @0 THEN NO STATUS BEQ 200$ ; RTN FOR NULL STATUS LEA A1,M.JTYP ; LOAD EA OF STATUSES MOV #1,D0 ; SET COUNTER TO 1 CLR D3 ; CLR D3 FOR WORD OPER CLR D2 ; CLR D2 FOR WORD OPER 110$: MOVW D0,D3 ; MAKE D3=D0 ANDW J%TYP(A5),D3 ; TEST BIT BEQ 120$ ; IF EQ 0 THEN BIT =0 (NOT THIS STATUS) INC D2 ; COUNTER FOR #FOUND TTYL @A1 ; PRINT IT OUT CMPW D2,#10. ; MAX 10 STATUSES AT ONCE LISTED BEQ 135$ ; IF 10 THEN DONT DO ANY MORE 120$: ADD #5.,A1 ; INC A1 BY 5 FOR OFFSET TO NEXT STATUS LSLW D0,#1. ; SHIFT BIT 1 POS TO LEFT BCC 110$ ; BRANCH IF NO CARRY (BIT SHIFTED OUT) LEA A1,B.JSTS ; LOCATE BLANKS LIST MUL D2,#4. ; MUL #PRINTED 4 FOR STATUS OFFSET ADDW D2,A1 ; ADD OFFSET TTYL @A1 ; PRINT OUT CLEARING BLANKS 135$: RTN ; FINISHED 200$: LOW ; LOW INTENSITY TYPE ; TELL NUL STATUS AND MASK IF ANY OLD STATUS LEFT HIGH ; NORM INTENSITY RTN ; FINISHED M.JTYP: ASCIZ /USR / ASCIZ /NUL / ASCIZ /NEW / ASCIZ /LPT / ASCIZ /HEX / ASCIZ /DER / ASCIZ /VER / ASCIZ /CCA / ASCIZ /GRD / ASCIZ /TSK / ASCIZ /CAB / ASCIZ /PRE / ASCIZ /PRO / ASCIZ /SRQ / ASCIZ /b14 / ASCIZ /b15 / EVEN ; ; ; DISPLAY JOBS MEMORY PARTITION BASE ; D$BAS:: MOV JOBBAS(A0),D2 ; MOV CURRENT JOBS MEMORY BAS TO D2 CMP D2,J%BAS(A5) ; CMP W/ LAST KNOWN BNE 100$ ; IF NE THEN TO RTN TO REPLACE AND PRINT RTN ; RTN IF EQ 100$: MOV D2,J%BAS(A5) ; REPLACE OLD WITH CURRENT MOV #,D0 ; LOCATE MESSAGE LINE CALL POSCRT ; MOVE CURSOR TST D2 ; TEST THAT L-WORD IF =0 OR (-) BEQ 200$ ; BRANCH IF 0 MOV D2,D1 ; MOV FOR PRINT OUT OCVT 8.,OT$TRM!OT$ZER!OT$TSP ; DISPLAY ON SCREEN IN OCTAL (or hex)/ NO LEAD ZERO/ W-TRAIL SP ; MOV #,D0 ; LOCATE MESSAGE LINE ; CALL POSCRT ; MOVE CURSOR ; MOV D2,D1 ; MOV FOR PRINT OUT ; OCVT 7.,OT$TRM!OT$ZER!OT$TSP ; DISPLAY ON SCREEN IN OCTAL (or hex)/ NO LEAD ZERO/ W-TRAIL SP RTN ; FINISHED WITH THIS RTN 200$: MOV #0,J%SIZ(A5) ; RESET MEMORY SIZE TO 0 LOW ; TYPE LOW INTENSITY TYPE < no mem.> ; TELL THEM HIGH ; NORM INTENSITY ; MOV #,D0 ; LOCATE MESSAGE LINE ; CALL POSCRT ; MOVE CURSOR ; TYPE < > ; DELETE IT RTN ; ; ; DISPLAY MEMORY SIZE ; D$SIZ:: MOV JOBSIZ(A0),D2 ; MOV CURRENT JOBS MEMORY SIZ TO D2 CMP D2,J%SIZ(A5) ; CMP W/ LAST KNOWN BNE 100$ ; IF NE THEN TO RTN TO REPLACE AND PRINT RTN ; RTN IF EQ 100$: TST J%BAS(A5) ; IF ITS ZERO NO MEMORY AND TELL THEM BEQ 150$ MOV D2,J%SIZ(A5) ; REPLACE OLD WITH CURRENT MOV #,D0 ; LOCATE MESSAGE LINE CALL POSCRT ; MOVE CURSOR TST D2 ; TEST THAT L-WORD IF =0 OR (-) BEQ 200$ ; BRANCH IF 0 MOV D2,D1 ; MOV FOR PRINT OUT OCVT 8.,OT$TRM!OT$ZER!OT$TSP ; DISPLAY ON SCREEN IN OCTAL (or hex)/ NO LEAD ZERO/ W-TRAIL SP MOV #,D0 ; LOCATE MESSAGE LINE CALL POSCRT ; MOVE CURSOR MOV D2,D1 ; MOV FOR PRINT OUT ADD J%BAS(A5),D1 ; ADD JOB BASE OCVT 8.,OT$TRM!OT$ZER!OT$TSP ; DISPLAY ON SCREEN IN OCTAL (or hex)/ NO LEAD ZERO/ W-TRAIL SP RTN ; FINISHED WITH THIS RTN 150$: MOV #,D0 ; LOCATE MESSAGE LINE CALL POSCRT ; MOVE CURSOR 200$: LOW ; TYPE LOW INTENSITY TYPE < no mem.> ; TELL THEM HIGH ; NORM INTENSITY MOV #,D0 ; LOCATE MESSAGE LINE CALL POSCRT ; MOVE CURSOR TYPE < > RTN ; ; ; DISPLAY JOB PRIVILAGE - currently un used ; D$PRV:: MOVW JOBPRV(A0),D2 ; MOV CURRENT JOBS PRIVILAGE TO D2 CMPW D2,J%PRV(A5) ; CMP W/ LAST KNOWN BNE 100$ ; IF NE THEN TO RTN TO REPLACE AND PRINT RTN ; RTN IF EQ 100$: MOVW D2,J%PRV(A5) ; REPLACE OLD WITH CURRENT MOV #,D0 ; LOCATE MESSAGE LINE CALL POSCRT ; MOVE CURSOR TSTW D2 ; TEST THAT L-WORD IF =0 OR (-) BEQ 200$ ; BRANCH IF 0 CLR D1 MOVW D2,D1 ; MOV FOR PRINT OUT OCVT 8.,OT$TRM!OT$ZER!OT$TSP ; DISPLAY ON SCREEN IN OCTAL (or hex)/ NO LEAD ZERO/ W-TRAIL SP RTN ; FINISHED WITH THIS RTN 200$: LOW ; TYPE LOW INTENSITY TYPE < none> ; TELL THEM HIGH ; NORM INTENSITY RTN ; ; ; DISPLAY COMMAND FILE SIZE (ALWAYS DISPLAY IN DECIMAL) ; D$CMZ:: MOVW JOBCMZ(A0),D2 ; MOV CURRENT JOBS PRIVILAGE TO D2 CMPW D2,J%CMZ(A5) ; CMP W/ LAST KNOWN BNE 100$ ; IF NE THEN TO RTN TO REPLACE AND PRINT RTN ; RTN IF EQ 100$: MOVW D2,J%CMZ(A5) ; REPLACE OLD WITH CURRENT MOV #,D0 ; LOCATE MESSAGE LINE CALL POSCRT ; MOVE CURSOR TSTW D2 ; TEST THAT L-WORD IF =0 OR (-) BEQ 200$ ; BRANCH IF 0 CLR D1 MOVW D2,D1 ; MOV FOR PRINT OUT OCVT 8.,OT$TRM!OT$ZER!OT$TSP ; DISPLAY ON SCREEN IN DECIMAL / NO LEAD ZERO/ W-TRAIL SP RTN ; FINISHED WITH THIS RTN 200$: LOW ; TYPE LOW INTENSITY TYPE < none> ; TELL THEM HIGH ; NORM INTENSITY RTN ; ; ; DISPLAY COMMAND FILE STATUS ; D$CMS:: MOVW JOBCMS(A0),D2 ; MOV CURRENT JOBS PRIVILAGE TO D2 CMPW D2,J%CMS(A5) ; CMP W/ LAST KNOWN BNE 100$ ; IF NE THEN TO RTN TO REPLACE AND PRINT RTN ; RTN IF EQ 100$: MOVW D2,J%CMS(A5) ; REPLACE OLD WITH CURRENT MOV #,D0 ; LOCATE MESSAGE LINE CALL POSCRT ; MOVE CURSOR TSTW D2 ; TEST =0 BEQ 200$ ; IF =0 LEA A1,M.JCMS ; LOAD EA OF STATUSES MOV #1,D0 ; SET COUNTER TO 1 CLR D3 ; CLR D3 FOR WORD OPER CLR D2 ; CLR D2 FOR WORD OPER 110$: MOVW D0,D3 ; MAKE D3=D0 ANDW J%CMS(A5),D3 ; TEST BIT BEQ 120$ ; IF EQ 0 THEN BIT =0 (NOT THIS STATUS) INC D2 ; COUNTER FOR #FOUND TTYL @A1 ; PRINT IT OUT CMPW D2,#6. ; MAX 06 STATUSES AT ONCE LISTED BEQ 135$ ; IF 10 THEN DONT DO ANY MORE 120$: ADD #5.,A1 ; INC A1 BY 5 FOR OFFSET TO NEXT STATUS LSLW D0,#1. ; SHIFT BIT 1 POS TO LEFT BCC 110$ ; BRANCH IF NO CARRY (BIT SHIFTED OUT) LEA A1,B.JSTS ; LOCATE BLANKS LIST MUL D2,#4. ; MUL #PRINTED 4 FOR STATUS OFFSET ADDW #16.,D2 ; CORRECT FOR ONLY 24 PRINTING SPACES NOT 40 ADDW D2,A1 ; ADD OFFSET TTYL @A1 ; PRINT OUT CLEARING BLANKS 135$: RTN ; FINISHED 200$: LEA A1,B.JSTS ; LOCATE BLANKS ADDW #16.,A1 ; ADD OFFSET FOR LESS PRINTING AREA TTYL @A1 ; PRINT IT RTN ; FINISHED ; ; ; M.JCMS: ASCIZ /MON / ASCIZ /SIL / ASCIZ /TRC / ASCIZ /PTL / ASCIZ /b 4 / ASCIZ /b 5 / ASCIZ /b 6 / ASCIZ /b 7 / ASCIZ /b 8 / ASCIZ /b 9 / ASCIZ /b10 / ASCIZ /b11 / ASCIZ /b12 / ASCIZ /b13 / ASCIZ /b14 / ASCIZ /b15 / EVEN ; ; ; DISPLAY TERMINAL DEF BLK POINTER ; D$TRM:: MOV JOBTRM(A0),D2 ; MOV CURRENT JOBS MEMORY SIZ TO D2 CMP D2,J%TRM(A5) ; CMP W/ LAST KNOWN BNE 100$ ; IF NE THEN TO RTN TO REPLACE AND PRINT RTN ; RTN IF EQ 100$: MOV D2,J%TRM(A5) ; REPLACE OLD WITH CURRENT MOV #,D0 ; LOCATE MESSAGE LINE CALL POSCRT ; MOVE CURSOR TST D2 ; TEST THAT L-WORD IF =0 OR (-) BEQ 200$ ; BRANCH IF 0 MOV D2,D1 ; MOV FOR PRINT OUT OCVT 8.,OT$TRM!OT$ZER!OT$TSP ; DISPLAY ON SCREEN IN OCTAL (or hex)/ NO LEAD ZERO/ W-TRAIL SP RTN ; FINISHED WITH THIS RTN 200$: LOW ; TYPE LOW INTENSITY TYPE ; TELL THEM HIGH ; NORM INTENSITY RTN ; ; ; DISPLAY CPU TIME ; D$CPU:: MOV JOBCPU(A0),D2 ; MOV CURRENT JOB CPU TIME TO D2 CMP D2,J%CPU(A5) ; CMP W/ LAST KNOWN BNE 100$ ; IF NE THEN TO RTN TO REPLACE AND PRINT RTN ; RTN IF EQ 100$: MOV D2,J%CPU(A5) ; REPLACE OLD WITH CURRENT BEQ 110$ ; IF EQ TO 0 DONT ERASE [J-01] MOV #,D0 ; LOCATE MESSAGE LINE CALL POSCRT ; MOVE CURSOR MOV D2,D1 ; MOV FOR PRINT OUT DCVT 8.,OT$TRM!OT$ZER!OT$TSP ; DISPLAY ON SCREEN IN OCTAL (or hex)/ NO LEAD ZERO/ W-TRAIL SP 110$: RTN ; FINISHED WITH THIS RTN ; ; ; DISPLAY CON TIME ; D$CON:: MOV #,D0 ; LOCATE MESSAGE LINE CALL POSCRT ; MOVE CURSOR MOV JOBCON(A0),D1 ; MOV CURRENT JOB CONECT TIME TO D2 BEQ 100$ ; IF NO CON TIME TYPE IT @100$ SUB A2,A2 ; PRE-CLEAR FOR $OTCON RTN CALL $OTCON ; DISPLAY ON SCREEN AS TIME TYPE < > ; CLEAR ANY OLD DISPLAY 100$: RTN ; FINISHED WITH THIS RTN ; [J-01] REMOVED CODE TO RESET CONNECTION TIME TO 0 ; ;100$: TYPE <00:00:00 > ; DISPLAY 0 TIME ; RTN ; FINISHED WITH THIS RTN ; ; ; DISPLAY DSR TIME ; D$DSR:: MOV JOBDSR(A0),D2 ; MOV CURRENT JOB DISK READS TO D2 CMP D2,J%DSR(A5) ; CMP W/ LAST KNOWN BNE 100$ ; IF NE THEN TO RTN TO REPLACE AND PRINT RTN ; RTN IF EQ 100$: MOV D2,J%DSR(A5) ; REPLACE OLD WITH CURRENT BEQ 110$ ; IF EQ 0 THEN DONT ERASE [J-01] MOV #,D0 ; LOCATE MESSAGE LINE CALL POSCRT ; MOVE CURSOR MOV D2,D1 ; MOV FOR PRINT OUT DCVT 8.,OT$TRM!OT$ZER!OT$TSP ; DISPLAY ON SCREEN IN OCTAL (or hex)/ NO LEAD ZERO/ W-TRAIL SP 110$: RTN ; FINISHED WITH THIS RTN ; ; ; DISPLAY DSW TIME ; D$DSW:: MOV JOBDSW(A0),D2 ; MOV CURRENT JOB DISK WRITES TO D2 CMP D2,J%DSW(A5) ; CMP W/ LAST KNOWN BNE 100$ ; IF NE THEN TO RTN TO REPLACE AND PRINT RTN ; RTN IF EQ 100$: MOV D2,J%DSW(A5) ; REPLACE OLD WITH CURRENT BEQ 110$ ; IF EQ 0 THEN DONT ERASE [J-01] MOV #,D0 ; LOCATE MESSAGE LINE CALL POSCRT ; MOVE CURSOR MOV D2,D1 ; MOV FOR PRINT OUT DCVT 8.,OT$TRM!OT$ZER!OT$TSP ; DISPLAY ON SCREEN IN OCTAL (or hex)/ NO LEAD ZERO/ W-TRAIL SP 110$: RTN ; FINISHED WITH THIS RTN END .