|
|
DataMuseum.dkPresents historical artifacts from the history of: IBM System/3 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about IBM System/3 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 3302 (0xce6)
Types: s3xseg
Names: »STIME«
└─⟦811594a0b⟧ Bits:30009185 5702-sc1.V16.pgm
└─⟦8223a6838⟧
└─⟦this⟧ »STIME«
└─⟦990ba7470⟧ Bits:30009182 5702-PP1
└─⟦efad88270⟧
└─⟦this⟧ »STIME«
* DATE LAST CHANGED 02/13/74
MACRO
&NAME TIME &DAY-,&TIME-,&TYPE-
GBLB &NTRD,&NTR2
TEXT
* GET THE TIME AND DATE.
AIF (T'&NAME EQ 'O').A
&NAME EQU * GENERATE USER LABEL.
.A ANOP
AIF (T'&DAY EQ T'&TIME).REG
AIF (T'&DAY NE 'O').TTIM
MNOTE 08,'NO DATE SPECIFIED'
MEXIT
.TTIM ANOP
AIF (T'&TIME NE 'O').REG
MNOTE 08,'NO TIME SPECIFIED'
MEXIT
.REG ANOP
AIF (T'&TIME EQ 'O').RONLY
LA &DAY,1 LOAD XR1 & XR2 WITH ADDRESS
LA &TIME,2 * OF DAY AND TIME FIELD.
AGO .RSET
.RONLY ANOP
LA 5(,2),1 POINT TO DATE.
AIF (&TYPE NE 'TU').FUL
LA 9(,2),2 POINT TO TIMER UNITS.
AGO .RSET
.FUL ANOP
LA 11(,2),2 POINT TO TIME
.RSET ANOP
AIF (T'&TYPE EQ 'O').TIM
AIF (&TYPE EQ 'DEC').TIM
AIF (&TYPE EQ 'TU').TIM
MNOTE 08,'INVALID TYPE SPECIFIED'
MEXIT
.TIM ANOP
ST $TIV1,1 SAVE ADDRESS OF DATE.
ST $TIV2,2 SAVE ADDRESS OF TOD.
AIF (&NTRD).FOUND
$TIF JC $TIEND,X'80' A FIRST TIME SWITCH,SET NOT TO JUMP
MVI $TIF+1,X'87' SET SWITCH TO SKIP.
L X'11',1 GET SCA ADDRESS.
L 1(,1),1 POINT TO PLCA.
L X'16'(,1),1 POINT TO START OF PL1.
A $TIN1,1 SUBTRACT ONE.
ST $TIOM,1 SAVE ADDR OF PTR TO START OF COMMON
ST $TIADD,1 SET SEARCH ADDRESS.
$TILUP EQU *
CLC $TIADD(2),$TIEN LAST BYTE ?
BE $TISUP IF YES, THEN TIMER NOT SUPPORTED
ALC $TIADD(2),$TIN1 NO, DECREMENT ADDRESS.
CLC $TIUP,0 COMMON CONSTANT FOUND.
$TIADD EQU *-1
BNE $TILUP NO, KEEP TRYING.
MVC 0(2,1),$TIADD POINT TO ENTRY POINT.
SLC 0(2,1),$TICL POINT TO START OF COMMON.
$TIEND EQU *
.FOUND ANOP
L $TIOM,2 POINT TO POINTER TO COMMON.
L 0(,2),2 POINT TO COMMON.
ST $TI&SYSNDX+3,2 STORE ENTRY ADDRESS.
ALC $TI&SYSNDX+3,$TIG4(2) STORE ENTRY POINT.
L $TIV2,1 RESTORE REGISTER.
L $TIV1,2 RESTORE REGISTER.
$TI&SYSNDX B 0 GOTO RESIDENT CODE.
AIF (&TYPE EQ 'TU').LEV
L $TIV2,1 POINT TO TIME.
B $TIVT CONVERT TIMER UNITS TO HMS.
AIF (&NTR2).LEV
J $TIUT1 SKIP OVER CONSTANTS.
$TIVT EQU *
ST $TIRT+3,8 SAVE ARR TO RETURN.
L $TIOM,2 POINT TO COMMON POINTER.
L 0(,2),2 POINT TO COMMON.
LA X'6B'(,2),2 POINT TO CONVERT ENTRY POINT.
ST $TIVXT+3,2 SET BRANCH.
LA $TIWK-5,2 POINT TO ADDRESS OF HHMMSS.
$TIVXT B 0 GO.
L $TIV2,2 POINT TO DATE FIELD.
MVC 0(6,2),$TIWK MOVE DATE.
$TIRT B 0 ADDRESS FILLED IN FOR RETURN.
$TIWK DS CL6
&NTR2 SETB 1
$TIUT1 EQU *
.LEV ANOP
AIF (&NTRD).XIT
J $TIUT SKIP OVER CONSTANTS.
$TISUP EQU *
HPL X'3C',X'3C' HALT FF
HPL X'7D',X'6F' HALT 06
LA $TIALT,2 POINT TO HALT PARM LIST.
B 4 GO HALT.
DC XL1'85' HALT/SYSLOG.
$TIALT EQU *
DC XL1'DA' HALT FROM ASSM.
DC CL3'Q05' SUBCOMPONENT, HALT CODE.
DC XL1'01' OPTION 3 ONLY.
DC CL2'NS' SUBMESSAGE.
$TIN1 DC XL2'FFFF' *
$TIV1 DC XL2'0' REGISTER SAVE AREA.
$TIG4 DC XL2'73' *
$TICL DC IL2'104' *
$TIUP DC CL6'O$TIME' MODULE NAME.
$TIOM DS XL2 *
$TIV2 DS XL2 *
$TIV3 DS XL2 *
$TIEN DC XL2'0400' *
$TIUT EQU * *
.XIT ANOP
&NTRD SETB 1
MEND