SYSDEPM                         - GNUUCP VMS System-dependent routines i 12-NOV-1988 14:20:03  VAX/VMS Macro V04-00        Page   0
Table of contents

    (2)       46        ARM_UUXQT - Submit the UUXQT batch job
    (3)      138        RELEASE_LOCK - Release the lock for the remote system
    (4)      158        GET_LOCK - Acquire the lock for the remote system
    (4)      159        GET_LOCK_NOWAIT - Acquire the lock with no wait
SYSDEPM                         - GNUUCP VMS System-dependent routines i 12-NOV-1988 14:20:03  VAX/VMS Macro V04-00        Page   1
                                                                         13-OCT-1988 22:45:44  SYSDEPM.MAR;11                    (1)

                                     0000     1 	.TITLE	SYSDEPM - GNUUCP VMS System-dependent routines in Macro-32
                                     0000     2 
                                     0000     3 	$DSCDEF
                                     0000     4 	$LCKDEF
                                     0000     5 	$SJCDEF
                                     0000     6 
                           00000014  0000     7 MAX_HOST = 20				; must track with def'n in UUCP.H
                                     0000     8 
                                     0000     9 	.MACRO	CHK_STS STAT=R0, ?NEXT
                                     0000    10 	BLBS	stat, next
                                     0000    11 	PUSHL	stat
                                     0000    12 	CALLS	#1, G^LIB$SIGNAL
                                     0000    13 next:
                                     0000    14 	.ENDM	CHK_STS
                                     0000    15 
                                     0000    16 	.MACRO	GET_EF	EFNADR, ?NEXT
                                     0000    17 	PUSHAL	efnadr
                                     0000    18 	CALLS	#1, G^LIB$GET_EF
                                     0000    19 	BLBS	R0, next			; br if good
                                     0000    20 	CLRL	efnadr				;  oh well, use ef 0
                                     0000    21 next:	
                                     0000    22 	.ENDM
                                     0000    23 
                                     0000    24 	.MACRO	FREE_EF	EFNADR, ?NEXT
                                     0000    25 	TSTL	efnadr				; if we got an 
                                     0000    26 	BEQL	next				;  event flag earlier,
                                     0000    27 	PUSHAL	efnadr				;  free
                                     0000    28 	CALLS	#1, G^LIB$FREE_EF		;  it
                                     0000    29 	CHK_STS
                                     0000    30 next:
                                     0000    31 	.ENDM
                                     0000    32 
                                     0000    33 	.MACRO	MOV_LEN	MAXLEN, STR, OUT, PRESERVE=YES
                                     0000    34 .IF IDENTICAL PRESERVE,YES
                                     0000    35 	PUSHL	R0
                                     0000    36 .ENDC
                                     0000    37 	LOCC	#0, maxlen, str			; find the null byte
                                     0000    38 	SUBL3	R0, maxlen, R0			; convert R0 to string length
                                     0000    39 	MOVW	R0, out				; store in destination
                                     0000    40 .IF IDENTICAL PRESERVE,YES
                                     0000    41 	POPL	R0
                                     0000    42 .ENDC
                                     0000    43 	.ENDM	MOV_LEN
                                     0000    44 
SYSDEPM                         - GNUUCP VMS System-dependent routines i 12-NOV-1988 14:20:03  VAX/VMS Macro V04-00        Page   2
                                ARM_UUXQT - Submit the UUXQT batch job   13-OCT-1988 22:45:44  SYSDEPM.MAR;11                    (2)

                                     0000    46 	.SBTTL	ARM_UUXQT - Submit the UUXQT batch job
                                     0000    47 
                                     0000    48 ;+
                                     0000    49 ; ARM_UUXQT - Submit the UUXQT batch job
                                     0000    50 ;
                                     0000    51 ; Arguments:
                                     0000    52 ;	None
                                     0000    53 ;
                                     0000    54 ; Implicit inputs:
                                     0000    55 ;	host_name	remote host name (null-terminated string)
                                     0000    56 ;
                                     0000    57 ; Return status:
                                     0000    58 ;	SS$_NORMAL	the batch job has been queued.
                                     0000    59 ;-
                                     0000    60 
                                 00000000    61 	.PSECT	READONLY_DATA	NOEXE, PIC, LONG, SHR, NOWRT
                                     0000    62 
                                     0000    63 FILE_SPEC:
55 3A 4E 49 42 5F 54 45 4E 53 4D 56  0000    64 	.ASCII	\VMSNET_BIN:UUXQT_BATCH.COM\
43 2E 48 43 54 41 42 5F 54 51 58 55  000C       
                              4D 4F  0018       
                           0000001A  001A    65 FILE_SPEC_LEN = . - FILE_SPEC
                                     001A    66 
                                     001A    67 LOG_SPEC:
   3A 47 4F 4C 5F 54 45 4E 53 4D 56  001A    68 	.ASCII	\VMSNET_LOG:\
                           0000000B  0025    69 LOG_SPEC_LEN = . - LOG_SPEC
                                     0025    70 
                                     0025    71 QUEUE_NAME:
54 51 58 55 55 5F 54 45 4E 53 4D 56  0025    72 	.ASCII	\VMSNET_UUXQT_BATCH_QUEUE\
45 55 45 55 51 5F 48 43 54 41 42 5F  0031       
                           00000018  003D    73 QUEUE_NAME_LEN = . - QUEUE_NAME
                                     003D    74 
                                 00000000    75 	.PSECT	HOST_NAME	NOEXE, PIC, LONG, USR, OVR, REL, GBL, SHR, NOVEC
                                     0000    76 HOST_NAME: 
                           00000014  0000    77 	.BLKB	MAX_HOST
                                     0014    78 
                                 00000000    79 	.PSECT	LOCAL_DATA	NOEXE, PIC, LONG
                                     0000    80 
                                     0000    81 SJC_ITMLST:
                               0018  0000    82 	.WORD	QUEUE_NAME_LEN
                               0086  0002    83 	.WORD	SJC$_QUEUE
                           00000025' 0004    84 	.ADDRESS QUEUE_NAME
                           00000000  0008    85 	.LONG	0
                                     000C    86 
                               001A  000C    87 	.WORD	FILE_SPEC_LEN
                               002A  000E    88 	.WORD	SJC$_FILE_SPECIFICATION
                           00000000' 0010    89 	.ADDRESS FILE_SPEC
                           00000000  0014    90 	.LONG	0
                                     0018    91 
                               000B  0018    92 	.WORD	LOG_SPEC_LEN
                               0062  001A    93 	.WORD	SJC$_LOG_SPECIFICATION
                           0000001A' 001C    94 	.ADDRESS LOG_SPEC
                           00000000  0020    95 	.LONG	0
                                     0024    96 
                               0000  0024    97 	.WORD	0
                               0065  0026    98 	.WORD	SJC$_NO_LOG_SPOOL
                           00000000  0028    99 	.LONG	0
SYSDEPM                         - GNUUCP VMS System-dependent routines i 12-NOV-1988 14:20:03  VAX/VMS Macro V04-00        Page   3
                                ARM_UUXQT - Submit the UUXQT batch job   13-OCT-1988 22:45:44  SYSDEPM.MAR;11                    (2)

                           00000000  002C   100 	.LONG	0
                                     0030   101 
                               0000  0030   102 P1_LEN:	.WORD	0
                               0077  0032   103 	.WORD	SJC$_PARAMETER_1
                           00000038  0034   104 P1_ADR:	.BLKA	1
                           00000000  0038   105 	.LONG	0
                                     003C   106 
                           00000000  003C   107 	.LONG	0
                                     0040   108 
                                     0040   109 SXB_EFN:
                           00000044  0040   110 	.BLKL	1
                                     0044   111 SXB_IOSB:
                           0000004C  0044   112 	.BLKQ	1
                                     004C   113 
                                 00000000   114 	.PSECT	CODE		SHR, NOWRT, PIC, LONG
                                     0000   115 
                               0000  0000   116 	.ENTRY	ARM_UUXQT, ^M<>
                                     0002   117 
                                     0002   118 	GET_EF	SXB_EFN				; get an event flag
                                     0018   119 
     00000034'EF   00000000'EF   9E  0018   120 	MOVAB	HOST_NAME, P1_ADR		; pass the remote host name as 
                                     0023   121 						;  the P1 parameter to the 
                                     0023   122 						;  batch command procedure
                                     0023   123 
                                     0023   124 	MOV_LEN	#MAX_HOST, HOST_NAME, P1_LEN, PRESERVE=NO
                                     0036   125 
                                     0036   126 	$SNDJBCW_S EFN=SXB_EFN, -		; submit
                                     0036   127 		FUNC=#SJC$_ENTER_FILE, -	;  the uuxqt
                                     0036   128 		ITMLST=SJC_ITMLST,-		;  batch 
                                     0036   129 		IOSB=SXB_IOSB			;  job
                                     0056   130 	CHK_STS					; check R0 status
                                     0062   131 	CHK_STS	STAT=SXB_IOSB			; check "IOSB" status
                                     0076   132 
                                     0076   133 	FREE_EF	SXB_EFN
                                     0097   134 
                                 04  0097   135 	RET
                                     0098   136 
SYSDEPM                         - GNUUCP VMS System-dependent routines i 12-NOV-1988 14:20:03  VAX/VMS Macro V04-00        Page   4
                                RELEASE_LOCK - Release the lock for the  13-OCT-1988 22:45:44  SYSDEPM.MAR;11                    (3)

                                     0098   138 	.SBTTL	RELEASE_LOCK - Release the lock for the remote system
                                     0098   139 
                                     0098   140 ;+
                                     0098   141 ; RELEASE_LOCK - Release the lock for the remote system
                                     0098   142 ;
                                     0098   143 ; Arguments:
                                     0098   144 ;	None
                                     0098   145 ;
                                     0098   146 ; Implicit inputs:
                                     0098   147 ;	LOCK_ID		second longword (lock id) of the lock status block
                                     0098   148 ;-
                                     0098   149 
                                 00000098   150 	.PSECT	CODE		SHR, NOWRT, PIC, LONG
                                     0098   151 
                               0000  0098   152 	.ENTRY	RELEASE_LOCK, ^M<>
                                     009A   153 	$DEQ_S	LKID=LOCK_ID
                                     00AB   154 	CHK_STS
                                 04  00B7   155 	RET
                                     00B8   156 
SYSDEPM                         - GNUUCP VMS System-dependent routines i 12-NOV-1988 14:20:03  VAX/VMS Macro V04-00        Page   5
                                GET_LOCK - Acquire the lock for the remo 13-OCT-1988 22:45:44  SYSDEPM.MAR;11                    (4)

                                     00B8   158 	.SBTTL	GET_LOCK - Acquire the lock for the remote system
                                     00B8   159 	.SBTTL	GET_LOCK_NOWAIT - Acquire the lock with no wait
                                     00B8   160 
                                     00B8   161 ;+
                                     00B8   162 ; GET_LOCK - Acquire the lock for the remote system
                                     00B8   163 ; GET_LOCK_NOWAIT - Acquire the lock for the remote system with no wait
                                     00B8   164 ;
                                     00B8   165 ;	GET_LOCK waits for the lock to be granted and then returns,
                                     00B8   166 ;	always with SS$_NORMAL status.
                                     00B8   167 ;
                                     00B8   168 ;	GET_LOCK_NOWAIT $ENQs the lock request and then checks the
                                     00B8   169 ;	lock status.  If the request is granted, the routine returns
                                     00B8   170 ;	with SS$_NORMAL status; otherwise it $DEQs the lock request
                                     00B8   171 ;	and returns with R0 = 0.  
                                     00B8   172 ;
                                     00B8   173 ; Arguments:
                                     00B8   174 ;	None
                                     00B8   175 ;
                                     00B8   176 ; Implicit inputs:
                                     00B8   177 ;	host_name	remote host name (null-terminated string)
                                     00B8   178 ;
                                     00B8   179 ; Implicit outputs:
                                     00B8   180 ;	LOCK_SB		first longword of the lock status block
                                     00B8   181 ;	LOCK_ID		second longword (lock id) of the lock status block
                                     00B8   182 ;-
                                     00B8   183 
                                 0000004C   184 	.PSECT	LOCAL_DATA	NOEXE, PIC, LONG
                                     004C   185 
                                     004C   186 LOCK_EFN:
                           00000050  004C   187 	.BLKL	1
                                     0050   188 
                                     0050   189 LOCK_SB:
                           00000054  0050   190 	.BLKL	1
                                     0054   191 LOCK_ID:
                           00000058  0054   192 	.BLKL	1
                                     0058   193 
                                     0058   194 LOCK_NAME_DESCR:
                           0000005A  0058   195 	.BLKW	1
                              01 0E  005A   196 	.BYTE	DSC$K_DTYPE_T, DSC$K_CLASS_S
                           00000060' 005C   197 	.ADDRESS LOCK_NAME
                                     0060   198 
                                     0060   199 LOCK_NAME:
5F 4B 43 4F 4C 5F 54 45 4E 53 4D 56  0060   200 	.ASCII	\VMSNET_LOCK_\
                                     006C   201 LOCK_NAME_HOST:
                           00000080  006C   202 	.BLKB	MAX_HOST
                           00000020  0080   203 LOCK_NAME_MAX = . - LOCK_NAME
                                     0080   204 
                                 000000B8   205 	.PSECT	CODE		SHR, NOWRT, PIC, LONG
                                     00B8   206 
                               007C  00B8   207 	.ENTRY	GET_LOCK, ^M<R2,R3,R4,R5,R6>
                            56   D4  00BA   208 	CLRL	R6
                            05   11  00BC   209 	BRB	GET_LOCK_COM
                                     00BE   210 
                               007C  00BE   211 	.ENTRY	GET_LOCK_NOWAIT, ^M<R2,R3,R4,R5,R6>
                       56   01   D0  00C0   212 	MOVL	#1, R6				; LBS = no wait
                                     00C3   213 
                                     00C3   214 GET_LOCK_COM:
SYSDEPM                         - GNUUCP VMS System-dependent routines i 12-NOV-1988 14:20:03  VAX/VMS Macro V04-00        Page   6
                                GET_LOCK_NOWAIT - Acquire the lock with  13-OCT-1988 22:45:44  SYSDEPM.MAR;11                    (4)

                                     00C3   215 	GET_EF	LOCK_EFN			; get an event flag
                                     00D9   216 
0000006C'EF   00000000'EF   14   28  00D9   217 	MOVC3	#MAX_HOST, HOST_NAME, -		; append the host name to 
                                     00E5   218 		LOCK_NAME_HOST			;  the lock name root
                                     00E5   219 	MOV_LEN	#LOCK_NAME_MAX, LOCK_NAME, -	; find length of resulting
                                     00E5   220 		LOCK_NAME_DESCR+DSC$W_LENGTH	;  string, store in descriptor
                                     00FD   221 
                                     00FD   222 	$ENQ_S	EFN=LOCK_EFN, -			; acquire
                                     00FD   223 		LKMODE=#LCK$K_EXMODE, -		;  the
                                     00FD   224 		LKSB=LOCK_SB, -			;  lock
                                     00FD   225 		RESNAM=LOCK_NAME_DESCR
                                     0122   226 	CHK_STS
                                     012E   227 
                         4E 56   E8  012E   228 	BLBS	R6, NO_WAIT
                                     0131   229 
                                     0131   230 	$SYNCH_S EFN=LOCK_EFN, IOSB=LOCK_SB
                                     0144   231 	CHK_STS	LOCK_SB
                                     0158   232 
                                     0158   233 GOT_LOCK:
                                     0158   234 	FREE_EF	LOCK_EFN
                                     0179   235 
                  50   0000'8F   3C  0179   236 	MOVZWL	#SS$_NORMAL, R0
                                 04  017E   237 	RET
                                     017F   238 
                                     017F   239 NO_WAIT:
                   00000050'EF   B5  017F   240 	TSTW	LOCK_SB				; if the status word is
                            D1   12  0185   241 	BNEQ	GOT_LOCK			;  non zero, it was granted
                                     0187   242 
                                     0187   243 	$DEQ_S	LKID=LOCK_ID			; else dequeue the request
                            50   D4  0198   244 	CLRL	R0
                                 04  019A   245 	RET
                                     019B   246 
                                     019B   247 	.END
SYSDEPM                         - GNUUCP VMS System-dependent routines i 12-NOV-1988 14:20:03  VAX/VMS Macro V04-00        Page   7
Symbol table                                                             13-OCT-1988 22:45:44  SYSDEPM.MAR;11                    (4)

$$T1                           = 00000001                 
ARM_UUXQT                        00000000 RG    05        
DSC$K_CLASS_S                  = 00000001                 
DSC$K_DTYPE_T                  = 0000000E                 
DSC$W_LENGTH                   = 00000000                 
FILE_SPEC                        00000000 R     02        
FILE_SPEC_LEN                  = 0000001A                 
GET_LOCK                         000000B8 RG    05        
GET_LOCK_COM                     000000C3 R     05        
GET_LOCK_NOWAIT                  000000BE RG    05        
GOT_LOCK                         00000158 R     05        
HOST_NAME                        00000000 R     03        
LCK$K_EXMODE                   = 00000005                 
LIB$FREE_EF                      ********   X   05        
LIB$GET_EF                       ********   X   05        
LIB$SIGNAL                       ********   X   05        
LOCK_EFN                         0000004C R     04        
LOCK_ID                          00000054 R     04        
LOCK_NAME                        00000060 R     04        
LOCK_NAME_DESCR                  00000058 R     04        
LOCK_NAME_HOST                   0000006C R     04        
LOCK_NAME_MAX                  = 00000020                 
LOCK_SB                          00000050 R     04        
LOG_SPEC                         0000001A R     02        
LOG_SPEC_LEN                   = 0000000B                 
MAX_HOST                       = 00000014                 
NO_WAIT                          0000017F R     05        
P1_ADR                           00000034 R     04        
P1_LEN                           00000030 R     04        
QUEUE_NAME                       00000025 R     02        
QUEUE_NAME_LEN                 = 00000018                 
RELEASE_LOCK                     00000098 RG    05        
SJC$_ENTER_FILE                = 00000013                 
SJC$_FILE_SPECIFICATION        = 0000002A                 
SJC$_LOG_SPECIFICATION         = 00000062                 
SJC$_NO_LOG_SPOOL              = 00000065                 
SJC$_PARAMETER_1               = 00000077                 
SJC$_QUEUE                     = 00000086                 
SJC_ITMLST                       00000000 R     04        
SS$_NORMAL                       ********   X   05        
SXB_EFN                          00000040 R     04        
SXB_IOSB                         00000044 R     04        
SYS$DEQ                          ********  GX   05        
SYS$ENQ                          ********  GX   05        
SYS$SNDJBCW                      ********  GX   05        
SYS$SYNCH                        ********  GX   05        
SYSDEPM                         - GNUUCP VMS System-dependent routines i 12-NOV-1988 14:20:03  VAX/VMS Macro V04-00        Page   8
Psect synopsis                                                           13-OCT-1988 22:45:44  SYSDEPM.MAR;11                    (4)


                                                +----------------+
                                                ! Psect synopsis !
                                                +----------------+

PSECT name                      Allocation          PSECT No.  Attributes     
----------                      ----------          ---------  ----------     
.  ABS  .                       00000000  (    0.)  00 (  0.)  NOPIC   USR   CON   ABS   LCL NOSHR NOEXE NORD  NOWRT NOVEC BYTE  
$ABS$                           00000000  (    0.)  01 (  1.)  NOPIC   USR   CON   ABS   LCL NOSHR   EXE   RD    WRT NOVEC BYTE  
READONLY_DATA                   0000003D  (   61.)  02 (  2.)    PIC   USR   CON   REL   LCL   SHR NOEXE   RD  NOWRT NOVEC LONG  
HOST_NAME                       00000014  (   20.)  03 (  3.)    PIC   USR   OVR   REL   GBL   SHR NOEXE   RD    WRT NOVEC LONG  
LOCAL_DATA                      00000080  (  128.)  04 (  4.)    PIC   USR   CON   REL   LCL NOSHR NOEXE   RD    WRT NOVEC LONG  
CODE                            0000019B  (  411.)  05 (  5.)    PIC   USR   CON   REL   LCL   SHR   EXE   RD  NOWRT NOVEC LONG  

                                             +------------------------+
                                             ! Performance indicators !
                                             +------------------------+

Phase                    Page faults    CPU Time       Elapsed Time   
-----                    -----------    --------       ------------   
Initialization                   31     00:00:00.10    00:00:00.33
Command processing              895     00:00:00.88    00:00:01.13
Pass 1                          267     00:00:05.00    00:00:06.20
Symbol table sort                 0     00:00:00.57    00:00:00.57
Pass 2                           29     00:00:01.11    00:00:01.31
Symbol table output               2     00:00:00.06    00:00:00.11
Psect synopsis output             2     00:00:00.04    00:00:00.04
Cross-reference output            0     00:00:00.00    00:00:00.00
Assembler run totals           1228     00:00:07.76    00:00:09.71

The working set limit was 1400 pages.
25441 bytes (50 pages) of virtual memory were used to buffer the intermediate code.
There were 30 pages of symbol table space allocated to hold 427 non-local and 11 local symbols.
247 source lines were read in Pass 1, producing 31 object records in Pass 2.
22 pages of virtual memory were used to define 21 macros.

                                            +--------------------------+
                                            ! Macro library statistics !
                                            +--------------------------+

Macro library name                           Macros defined      
------------------                           --------------      
SYS$SYSROOT:[SYSLIB]STARLET.MLB;2                      14        

542 GETS were required to define 14 macros.

There were no errors, warnings or information messages.

MACRO/LIST=[-.BLD]/OBJE=[-.BLD] SYSDEPM
