. SETID$* . SETUP AN IDLINE FOR PROCESSORS OF FORM: . . (A) FOR BATCH OPERATIONS: . PROCESSORID VERSIONID MM/DD/YY HH:MM:SS (C1,C2) ELT . . (B) FOR DEMAND OPERATIONS: . PROCESSORID VERSIONID MM/DD-HH:MM (C1,C2) ELT . . ================================================================== . . TO USE: . . LA A0,BUFFERPKT . LA A1,VERSIONID . LMJ X11,SETID$ . . WHERE VERSIONID => VERSION LJSF . BUFFERPKT => . S1 = 1 CYCLE INFO . 0 NO CYCLE INFO . S2 = 1 ELEMENT INFO . 0 NONE . S3 = CHARACTER DISPLC. . H2 = 14 WORD BUFFER ADDRESS . . RETURNS A0 = PRINT CONTROL WORD FOR 'ER PRINT$' . . . >> PROCESSOR AND ACTIVITY REENTRANT . >> USES MINOR SET OF REGISTERS . . ================================================================== . . AXR$ CH EQU X9 WRD EQU X10 . $(1) . SETID$* . SX CH,R1 . SAVE CH SX WRD,R2 . WRD SA A0,12,A0 . A0 SX,H1 X8,13,A0 . X8 SX,H2 X11,13,A0 . X11 LA A2,0136 . GET TYPE & LEVEL AND,U A2,07700 . GET TYPE LXM,U X8,0 . ASSUME BATCH X8 = ?,0 TNE,U A3,0400 . DEMAND ?? LXM,U X8,1 . YES - SET X8 TO ?,1 LA,S3 A2,12,A0 . GET CHARACTER COUNT JGD A2,$+1 . DECR COUNT DSL A2,36 . DI,U A2,6 . FIND WORD/CHAR COUNT AA,U A2,,A0 . ADD BASE LXM CH,A3 . LXM WRD,A2 . LXI,U WRD,1 . LXI,U CH,1 . LA,U A3,,A0 . A3 PTS AT THE BASE LMJ A2,PUTIT . OUTPUT VERSION ID . . TIME AND DATE . ER DATE$ . GET DATE/TIME SA A1,A2 . SAVE TIME LA,U A4,2 . LOOP TWICE LA A1,A0 . LOAD DATE LA,H1 A0,DELM,X8 . GET DELIMITERS J $+11 . GOTO BOTTOM OF LOOP EX STORE,*CH . STORE BLANK EX STORE,*CH . STORE DELIMITER LDSL A0,6 . MOVE IN FIRST CHAR EX STORE,*CH . LDSL A0,6 . MOVE IN SECOND CHAR EX STORE,*CH . SSL A0,18 . GET NEXT DELIMITER JNZ A0,$-6 . IF NOT 0 => LOOP LA,H2 A0,DELM,X8 . GET TIME DELIMITERS LA A1,A2 . LOAD TIME JGD A4,$-10,X8 . LOOP D'LOOP . . CYCLE INFO . TNZ,U PARTBL . IS PARTBL HERE J RETURN . NO INFO AVAILABLE TNZ,S1 12,A3 . DESIRE CYCLE INFO J ELTNAM . NO - CHECK FOR NAME LA A1,CYCDLM,X8 . ENTER CYCLE DELIMITERS LMJ A2,BPUTIT . ALLOW LEADING BLANKS LA,U A4,'),' . SETUP LOAD STRING LA,XH2 A0,PARTBL . GET OPTIONS SZ A2 . ASSUME I OPTION JN A0,$+15 . IF I OPTION - SKIP SI LNA,U A2,1 . ASSUME NOT U OPTION TEP,U A0,040 . U OPTION ? LA,U A2,1 . YES, SET FLAG LA,U A0,0 . NO BIAS AA,S6 A0,PARTBL+13 . ADD CYCLE # AND,U A0,077 . MOD BY 64 SZ A0 . A0=0 DI,U A0,10 . MAKE INTEGER JZ A0,$+3 . NO LEADING ZEROES,PLEASE AA,U A0,060 . ADD FIELD BITS EX STORE,*CH . STORE LDSL A0,36 . GET 2ND DIGITS AA,U A0,060 . ADD FIELD BITS EX STORE,*CH . STORE LA A0,A4 . GET DELIMITER EX STORE,*CH . STORE SSL A4,6 . SHIFT FOR NEW DELM JZ A4,ELTNAM . ALL DONE LA A0,A2 . GET FLAG (& BIAS) JN A0,$-5 . NO U OR I OPTION J $-16 . U OR I OPTION PRESENT . . ELT NAME . ELTNAM . TNZ,S2 12,A3 . ELT NAME DESIRED J RETURN . NO - BYE LA A1,NAMDLM,X8 . ENTER NAME DELIMITERS LMJ A2,BPUTIT . TWO BLANKS DL A1,PARTBL+3 . GET ELT NAME TNZ A1 . NO @@@@@@ PLEASE DL A1,PARTBL+16 . TRY SO FIELD JZ A1,RETURN . NO NAME NOWHERE!!! SA A2,12,A3 . SAVE SECOND PART LMJ A2,PUTIT . STORE FIRST PART LA A1,12,A3 . GET SECOND PART LMJ A2,PUTIT . STORE IT . RETURN . LA,U A0,05 . BLANK EX STORE,CH . STORE JMGI CH,$-1 . CONTINUE STORING IF IN WORD LA,U A0,0,WRD . CURRENT WORD+1 AN,U A0,0,A3 . SUB START AA,U A0,0100 . ADD IN LINE SPACING LSSL A0,18 . POSITION TO LEFT SIDE LXM,U A0,,A3 . ADD BASE LX CH,R1 . RECOVER CH LX WRD,R2 . WRD LXM,H1 X8,13,A3 . X8 LXM,H2 X11,13,A3 . X11 J 0,X11 . . STORE BCD STRING (NO BLANK ALLOWED) . PUTIT . SZ A0 . ZERO TARGET LDSL A0,6 . GET CHAR TZ A0 . ZERO TNE,U A0,05 . OR BLANK => RETURN J 0,A2 . EX STORE,*CH . ELSE STORE J $-6 . LOOP 'DE LOOP . . STORE BCD STRING (ALLOW BLANKS) . BPUTIT. JZ A1,0,A2 . RETURN IF DONE LDSL A0,6 . GET CHAR EX STORE,*CH . STORE J $-3 . MORE . . STORE VECTOR . STORE . SA,S1 A0,0,WRD SA,S2 A0,0,WRD SA,S3 A0,0,WRD SA,S4 A0,0,WRD SA,S5 A0,0,WRD LMJ X11,$+1 SA,S6 A0,0,*WRD LXM,U CH,0 J 0,X11 . . . USEFUL CONSTANTS . DELM '// :: ' . DATE AND TIME DELIMITER FOR BATCH '@/ @:-' . DATE AND TIME DELIMITER FOR DEMAND CYCDLM ' (@@@' . CYCLE DELIMITER FOR BATCH ' (@@@@' . CYCLE DELIMITER FOR DEMAND NAMDLM ' @@@@' . NAME DELIMITER FOR BATCH ' @@@@@' . NAME DELIMITER FOR DEMAND END