TITLE USRENT - Example of generating a user defined accounting entry ;COPYRIGHT (C) 1980,1981 BY DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. ; ; ;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED ;ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE ;INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER ;COPIES THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY ;OTHER PERSON. NO TITLE TO AND OWNERSHIP OF THE SOFTWARE IS HEREBY ;TRANSFERRED. ; ;THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE ;AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT ;CORPORATION. ; ;DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS ;SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL. SEARCH UUOSYM,MACTEN,ACTSYM ;GET SOME SYMBOLS SALL ;This example program will generate a USAGE file entry via the QUEUE. UUO. ; Since the distributed ACTDAE does not contain any pre-defined user ; entries, modifications will have to be made to ACTRCD.MAC, the entry ; definition module. The following lines should be added to ACTRCD.MAC ; in the ENLIST and RCLIST macros designated as those defining user entries. ;ENLIST - ENTRY (FO1,) ;ENTRY xxxx - SAMPLE ;RCLIST - RECORD (BA1,1,1,) ;After inserting the above definitions, re-assemble ACTRCD.MAC and link/save ; ACTDAE. Because the entries added to ENLIST are assigned a sequential ; entry number starting at 5000, the entry number of the above definition ; is not known at this time. This program will make entry 9999 which is ; clearly illegal, change the entry number here to the correct one. ;Any program wishing to make a Usage Entry must be privileged or [OPR] T1==1 ;DEFINE SOME AC'S T2==2 T3==3 T4==4 USRVER==1 ;VERSION NUMBER USREDT==3 ;EDIT NUMBER USRWHO==0 ;WHO LAST EDIT USRMIN==0 ;MINOR VERSION NUMBER LOC 137 VRSN. (USR) ;INSTALL THE VERSION NUMBER RELOC USRENT: RESET ;START FRESH PJOB T1, ;GET OUT JOB NUMBER MOVEM T1,MONJNO ;STORE IT FOR QUEUE. MOVSI T4,(ASCIZ/D/) ;ASSUME DETACHED TRMNO. T1, ;GET TERMINAL DESIGNATOR JRST SETTN1 ;DETACHED DPB T1,[POINT 9,MONLNO,35] ;STORE IN CASE NO NETWORKS GETLCH T1 ;GET LINE CHARACTERISTICS MOVSI T4,(ASCIZ/T/) ;ASSUME REGULAR TTY TXNE T1,GL.CTY ;THE SYSTEM CTY MOVSI T4,(ASCIZ/C/) ;YES TXNE T1,GL.ITY ;INVISIBLE (PSEUDO) TTY MOVSI T4,(ASCIZ/P/) ;YES HRRZS T1 ;GET RID OF GETLCH BITS GTNTN. T1, ;CONVERT TO NODE AND LINE JRST SETTN1 ;NO NETWORKS HRRZM T1,MONLNO ;STORE REAL LINE NUMBER HLRZ T3,T1 ;ISOLATE NODE NUMBER MOVEI T2,2 ;NUMBER OF ARGUMENTS MOVE T1,[.NDRNN,,T2] ;RETURN NODE NAME FOR NUMBER NODE. T1, ;ASK TODD SKIPA ;FAILED? MOVEM T1,MONNOD ;STORE SIXBIT NODE NAME SETTN1: MOVEM T4,MONTDE ;STORE TERMINAL DESIGNATOR MOVEI T1,.GTPPN ;GETTAB PPN HRL T1,MONJNO ;FOR THE DESIRED JOB GETTAB T1, ;GET IT HALT . ;WHAT! MOVEM T1,MONPPN ;SAVE IT FOR QUEUE. MOVEI T1,.GTNM1 ;USERS NAME HRL T1,MONJNO ;FOR THE DESIRED JOB GETTAB T1, ;GET IT HALT . ;WHAT! MOVEM T1,MONNM1 ;SAVE IT MOVEI T1,.GTNM2 ;OTHER HALF OF THE NAME HRL T1,MONJNO ;FOR THE DESIRED JOB GETTAB T1, ;GET THAT TOO HALT . ;WHAT! MOVEM T1,MONNM2 ;SAVE OTHER HALF ;Now done with gathering the data, ship it off to the ACTDAE MOVE T1,[BLKLEN,,ACTBLK] ;LENGTH,,ADDRESS OF PARAMETERS QUEUE. T1, ;MAKE AN ENTRY JRST [OUTSTR [ASCIZ/?/] ;ERROR FROM ACTDAE, PREFIX IT OUTSTR RESBLK ;SHOW ERROR ACTDAE RETURNED JRST XIT] ;AND QUIT OUTSTR [ASCIZ/Done./] ;SAY IT WORKED XIT: MONRT. ;ALL DONE JRST .-1 ;NO CONTINUE ;Use the macros from ACTSYM to generate a DEFUS list for the supplied data items ACTBLK: USENT. (^D9999,1,1,20,RESBLK) ;ENTRY TYPE = 9999, VERSION NUMBERS ;AND LENGTH,ADDRESS OF RESPONSE BLOCK. ;The DEFUS list proper. These do not have to be in any particular order. They ; are entered here in the order of the data items described in the record ; definitions in ACTRCD. ;Record 1 - Entry Header USJNO. (MONJNO) ;THE JOB NUMBER USTRM. (MONTDE) ;TERMINAL DESIGNATOR USLNO. (MONLNO) ;LINE NUMBER USPNM. (,US%IMM) ;PROGRAM NAME (IMMEDIATE DATA ITEM) USPVR. (.JBVER##) ;PROGRAM VERSION NUMBER USNOD. (MONNOD) ;NODE NAME ;Record 2 - User Data USCOM. (COMENT) ;39 CHARACTER STRING ;Record 3 - User Identification USPPN. (MONPPN) ;PPN USNM1. (MONNM1) ;NAME (1ST HALF) USNM3. (MONNM2) ;NAME (2ND HALF) BLKLEN==.-ACTBLK ;LENGTH OF QUEUE. ARGUMENT BLOCK RESBLK: BLOCK 20 ;ROOM FOR A RESPONSE MONJNO: BLOCK 1 ;JOB NUMBER MONTDE: BLOCK 1 ;TERMINAL DESIGNATOR MONLNO: BLOCK 1 ;LINE NUMBER MONNOD: BLOCK 1 ;NODE NAME MONPPN: BLOCK 1 ;PPN MONNM1: BLOCK 1 ;NAME (1ST HALF) MONNM2: BLOCK 1 ;NAME (2ND HALF) COMENT: ASCIZ/Please put this in the Usage File/ END USRENT