ibm:vm370-lib:copy:acctoff.copy_src
Table of Contents
ACCTOFF Source
References
- Fixes Applied : 0
- This Source Date : Friday, December 8, 1978
- Last Fix ID : [Unmodified]
Source Listing
- ACCTOFF.COPY.txt
- *COPY ACCTOFF 00001000
- * R0020DMK - INITIALIZE FIELDS SO THAT USER ACCOUNTING CAN BE DONE AT 00002000
- * QUEUE DROP TIME RATHER THAN EACH TIME THRU THE DISPATCHER. 00003000
- * R0026DMK - PUT SUPPORT IN FOR PUNCHING ACCOUNTING CARDS UNDER A 00004000
- * DIFFERENT USER ID. 00005000
- **************************************************************** 00006000
- * 00007000
- * ENTRY POINT TO FILL IN A USER CARD 00008000
- * 00009000
- **************************************************************** 00010000
- USERCARD DS 0H @V4M0203 00012100
- L R15,=V(DMKTMRPT) GET VMVTIME CONVERT ROUTINE @V4M0203 00012600
- BALR R14,R15 GET TOTAL PROBLEM TIME USED @V4M0203 00013100
- * AND, FOR AP-SUPPORT, CAUSE VMTTIME 00013600
- * IN THE VMBLOK TO BE BROUGHT UP 00014100
- * TO DATE WITH THE SEPARATE CPU- AND 00014600
- * APU-SPECIFIC VMTTIME REGISTERS IN 00015100
- * THE MP-BLOK 00015600
- SRDL R0,12 ROUND TO MICRO-SECONDS @V4M0203 00016100
- D R0,=F'1000' CONVERT TO MILI-SECONDS @V4M0203 00016600
- ST R1,ACNTVTIM PROBLEM TIME USED IN MILI-SECONDS@V4M0203 00017100
- LR R3,R1 SAVE V-TIME @V4M0203 00017600
- LM R0,R1,=X'7FFFFFFFFFFFF000' CALC. TOT. SUP. TIME @V4M0203 00018100
- SL R1,VMTTIME+4 GET LOW ORDER VALUE OF SUPV. TIME@V4M0203 00018600
- BC 8+2+1,*+8 BR. ON NO-CARRY @V4M0203 00019100
- SL R0,F1 RE-ADJUST FOR CARRY @V4M0203 00019600
- SL R0,VMTTIME GET HI ORDER VALUE OF SUPV. TIME @V4M0203 00020100
- SRDL R0,12 ROUND TO MICRO-SECONDS @V4M0203 00020600
- D R0,=F'1000' CONVERT TO MILI-SECONDS @V4M0203 00021100
- ALR R3,R1 ADD V-TIME TO SUPERVISOR TIME FOR T-TIME 00025000
- ST R3,ACNTTIME TOTAL (V+S) TIME IN MILLSECONDS 00026010
- MVC ACNTPGRD(8),VMPGREAD SET UP THE NUMBER OF PAGE *00027000
- READS AND WRITES 00028000
- MVC ACNTIOCT(16),VMIOCNT SET UP THE NUMBER OF VIRTUAL *00029000
- SIO'S AND SPOOL COUNT FOR THE PUNCH *00030000
- PRINTER AND THE READER. 00031000
- MVC ACNTCODE,=C'01' SET UP THE IDENTIFICATION CODE FOR *00032000
- THE USER ACCOUNTING CARD 00033000
- L R7,VMTIMEON GET THE USERS LOGON TIME (TOD CK WORD 0) 00034000
- B SETUP GO SET UP THE REST OF THE CARD 00035000
- SPACE 3 00036000
- SPACE 00037000
- EJECT 00038000
- SPACE 3 00039000
- **************************************************************** 00040000
- * 00041000
- * ENTRY POINT TO FILL IN A DEVICE CARD 00042000
- * 00043000
- ***************************************************************** 00044000
- SPACE 00045000
- USING RDEVBLOK,R1 00046000
- DEVCARD L R1,VDEVREAL POINT TO THE REAL DEV 00047000
- MVC ACNTDEVC(2),RDEVTYPC SET UP THE DEV CLASS AND TYPE 00048000
- MVC ACNTDEVC+2(2),RDEVMDL SET UP MODEL AND FEATURE ALSO 00049000
- L R7,RDEVTMAT SET UP THE TIME ATTACHED (TOD CK WORD 0) 00050000
- DROP R1 00051000
- LH R1,=C'02' SET UP THE ACCOUNT CODE FOR A DEDICATED *00052000
- DEVICE CARD 00053000
- TM VDEVTYPC,CLASDASD IS THIS A DASD DEVICE 00054000
- BZ STCODE NO- BRANCH THIS IS A DEDICATED DEVICE 00055000
- TM VDEVFLAG,VDEVTDSK IS THIS A T-DISK 00056000
- BZ STCODE NO- BRANCH THIS IS A DEDICATED DASD DEV 00057000
- L R7,VDEVTMAT SET UP THE TIME ATTACHED (TOD CK WORD 0) 00058000
- MVC ACNTNCYL,VDEVBND SET UP THE NUM OF CYLINDERS OF *00059000
- TDISK SPACE USED BY THIS USER 00060000
- LH R1,=C'03' SET UP THE IDENTIFICTION CODE FOR THE *00062000
- T-DISK ACCOUNTING CARD 00063000
- STCODE STH R1,ACNTCODE SET UP THE ACCOUNTING CODE IN THE CARD 00064000
- SPACE 3 00065000
- ***************************************************************** 00066000
- * 00067000
- * SUBROUTINE TO FILL IN THE USERID, ACCOUNT NUMBER, 00068000
- * STOP AND CONNECT TIMES. 00069000
- * 00070000
- ***************************************************************** 00071000
- SPACE 3 00072000
- SETUP EQU * 00073000
- ICM R1,15,VMACOUNT GET THE ADDRESS OF ACCOUNTING 00074000
- * BUFFER 00075000
- BZ SETUP1 IF ZERO, GO MOVE USER ID. INTO BLOCK 00076000
- USING ACCTBLOK,R1 SETUP ADDRESSABILITY FOR THE 00077000
- * ACCOUNTING BLOCK 00078000
- MVC ACNTUSER(16),ACCTUSER MOVE THE USER ID. AND ACCOUNT 00079000
- * NUMBER INTO BUFFER 00080000
- MVI ACNTCODE,X'C3' SET THE ACCOUNT CODE TO C_. 00081000
- B SETUP2 GO SETUP DATE 00082000
- DROP R1 DROP BASE REGISTER FOR ACCOUNTING BLOCK 00083000
- SETUP1 EQU * 00084000
- MVC ACNTUSER,VMUSER SET UP THE USER ID 00085000
- MVC ACNTNUM,VMACNT THE ACCOUNT NUMBER ALSO 00086000
- SETUP2 EQU * 00087000
- MVC ACNTSTOP(2),DATE * SET UP THE DATE 00088000
- MVC ACNTSTOP+2(2),DATE+3 * 00089000
- MVC ACNTSTOP+4(2),DATE+6 * 00090000
- LM R0,R1,DMKSYSCK GET TOD CLOCK VALUE IN R0 AND R1 00091000
- SL R1,TODATE+4 * SUBTRACT CORRECT TIME AT MIDNIGHT 00092000
- BC 11,*+8 * 00093000
- SL R0,=F'1' * 00094000
- SL R0,TODATE * 00095000
- SRDL R0,12 GET NUMBER OF MICROSECONDS PAST MIDNIGHT 00096000
- D R0,=F'1000000' GET NUMBER OF SECONDS PAST MIDNIGHT 00097000
- SR R0,R0 IGNORE REMAINDER 00098000
- D R0,=F'3600' GET NUMBER OF HOURS PAST MIDNIGHT 00099000
- CVD R1,SAVEWRK2 * CONVERT NUMBER OF 00100000
- UNPK ACNTSTOP+6(2),SAVEWRK2(8) * HOURS TO DECIMAL 00101000
- OI ACNTSTOP+7,X'F0' * 00102000
- LR R1,R0 GET REMAINDER FROM LAST DEVIDE 00103000
- SR R0,R0 CLEAR 00104000
- D R0,=F'60' GET NUMBER OF MINUTES PAST THIS HOUR 00105000
- CVD R1,SAVEWRK2 * CONVERT NUMBER OF 00106000
- UNPK ACNTSTOP+8(2),SAVEWRK2(8) * MINUTES TO DECIMAL 00107000
- OI ACNTSTOP+9,X'F0' * 00108000
- CVD R0,SAVEWRK2 ** CONVERT NUMBER OF 00109000
- UNPK ACNTSTOP+10(2),SAVEWRK2(8) * SECONDS TO DEVIMAL 00110000
- OI ACNTSTOP+11,X'F0' * 00111000
- L R6,DMKSYSCK PICK UP THE FIRST WORD OF THE TOD CLOCK 00112000
- SR R6,R7 SUB THE START TIME (FROM THE CALLER) 00113000
- SR R7,R7 * COMPUTE THE NUMBER OF SEC OF 00114000
- SRDL R6,12 * CONNECT TIME FOR THIS ACCOUNTING 00115000
- D R6,=F'1000000' * CARD. 00116000
- ST R7,ACNTCONT * 00117000
- BR R5 RETURN TO THE CALLING ROUTINE 00118000
- EJECT 00119000
ibm/vm370-lib/copy/acctoff.copy_src.txt ยท Last modified: 2023/08/06 13:36 by Site Administrator