; 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 <ROW_8.>+<COL>
ENDM
DEFINE DSPLY ROW,COL,TEXT ; SET BYTES =
WORD <ROW_8.>+<COL> ; 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 #<D%JNM-C.SCR>,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 #<D%TNM-C.SCR>,D0 ; LOCATE
CALL POSCRT ; MOVE
DPACK J%TNM(A5),2 ; UNPACK AND PRINT
RTN
120$: MOV D0,J%TNM(A5) ; STORE A 0
MOV #<D%TNM-C.SCR>,D0 ; LOCATE
CALL POSCRT ; MOVE
LOW ; SET DIM VID
TYPE <detach> ; 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 #<D%PGM-C.SCR>,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 #<D%PGM-C.SCR>,D0 ; LOCATE MESSAGE LINE
CALL POSCRT ; LOCATE CURSOR
LOW ; SET LOW INTENSITY
TYPE <mon > ; 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 #<D%PPN-C.SCR>,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 #<D%PPN-C.SCR>,D0 ; LOCATE MESSAGE STRING
CALL POSCRT ; LOCATE CURSOR
LOW ; PRINT @ LOW INTENSITY
TYPE <not logged-in > ; 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 #<D%JST-C.SCR>,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
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 #<D%TST-C.SCR>,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
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 #<D%TYP-C.SCR>,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 <null type > ; TELL NUL STATUS AND MASK IF ANY OLD STATUS LEFT
HIGH ; NORM INTENSITY
RTN
; FINISHED
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 #<D%BAS-C.SCR>,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 #<D%BOT-C.SCR>,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 #<D%BOT-C.SCR>,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 #<D%SIZ-C.SCR>,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 #<D%TOP-C.SCR>,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
200$: LOW ; TYPE LOW INTENSITY
TYPE < no mem.> ; TELL THEM
HIGH ; NORM INTENSITY
MOV #<D%TOP-C.SCR>,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 #<D%PRV-C.SCR>,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 #<D%CMZ-C.SCR>,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 #<D%CMS-C.SCR>,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
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 #<D%TRM-C.SCR>,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 <detached> ; 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 #<D%CPU-C.SCR>,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 #<D%CON-C.SCR>,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 #<D%DSR-C.SCR>,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 #<D%DSW-C.SCR>,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