/ / / / / / / / / / /COPYRIGHT (C) 1978,1979 BY DIGITAL EQUIPMENT CORPORATION / / / / / / / / / / /THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT NOTICE /AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT /CORPORATION. DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY /FOR ANY ERRORS THAT MAY APPEAR IN THIS DOCUMENT. / /THE SOFTWARE DESCRIBED IN THIS DOCUMENT IS FURNISHED TO THE PURCHASER /UNDER A LICENSE FOR USE ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED /(WITH INCLUSION OF DIGITAL'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH /SYSTEM, EXCEPT AS MAY OTHERWISE BE PROVIDED IN WRITING BY DIGITAL. / /DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY FOR THE USE /OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT THAT IS NOT SUPPLIED BY /DIGITAL. / / / / / / / / / /VERSION=1 / /THIS MODULE IS A COLLECTION OF COMMONLY USED MACROS, WHICH ARE /CONDITIONALLY ASSEMBLED WITH EACH OTHER MODULE TO HANDLE MACRO /CALLS. MODULES USING THIS FEATURE MUST INCLUDE APPROPIATE HEADERS .IF NDF .MCALL< .MACRO .MCALL USERV,HANDL,CLEAR XLIST .IF NB USERV <$USERV=1> .IF NB HANDL <$HANDL=1> .IF NB CLEAR <$CLEAR=1> .INCLUDE MACLIB.MA XLIST .ENDM .MCALL > .IF DF $USERV< /THIS MACRO IS USED AS A GENERAL SEQUENCE FOR CALLING /THE USR ROUTINES. LEAVE ARGUMENTS BLANK IF NOT USED. /STORAGE FOR RTN1 AND RTN2 REQUIRED. N=0 .MACRO USERV VAL,FCTN,ARG1,ARG2,ARG3,ERR,RTN1,RTN2 .EXTERNAL TABLE1 USR=7700 .IF NB ARG1< TAD ARG1 DCA USR1\N > /IF ARGUMENT 1 IS PRESENT, STORE IT .IF NB ARG2< TAD ARG2 DCA USR2\N > /IF ARGUMENT 2 IS PRESENT, STORE IT .IF NB ARG3< TAD ARG3 DCA USR3\N > /IF ARGUMENT 3 IS PRESENT, STORE IT .IF NB VAL< TAD VAL > /IF DEVICE NUMBER IS PASSED, LOAD IT CDF .FLD CIF 10 JMS I (USR FCTN /FUNCTION CODE PARAMETER PASSED TO USR ROUTINES .IF NB ARG1< USR1\N, 0 > /INSERT ARG1 IF PASSED .IF NB ARG2< USR2\N: 0 > /INSERT ARG2 IF PRESENT .IF NB ARG3< USR3\N, 0 > /ARG3 GOES HERE /JUMP TO USER ERROR ROUTINE .IF NB ERR< JMP ERR > /IF ARG1 PASSED, SAVE RETURNED /VALUE IN SAVE LOCATION CDF TABLE1 /SAVE FIELD SPECIFICATION .IF NB ARG1 < CLA TAD USR1\N DCA RTN1 > /SAME FOR ARG2. .IF NB ARG2 < TAD USR2\N DCA RTN2 > N=N+1 .ENDM USERV EXPUNGE $USERV > .IF DF $HANDL< /THIS MACRO ALLOWS STANDARD CALLS TO BE MADE TO AN OS/8 /HANDLER.ALL ARGUMENTS MUST BE PRESENT. /WHERE: / CONTL-BIT 0 IS 1 FOR OUTPUT, 0 FOR INPUT / BITS 1-5 NUMBER OF PAGES TRANSFERRED / BITS 6-8 FIELD OF TRANSFER / STLOC-STARTING CORE LOCATION / NUMBLK-STARTING BLOCK NUMBER / ERR-POINTER TO USER ERR ROUTINE / ENTRY-USER SUPPLIED HANDLER ENTRY ADDRESS M=0 .MACRO HANDL CONTL,STLOC,NUMBLK,ERR,ENTRY CLA TAD CONTL DCA HAND1\M /STORE CONTROL WORD ARGUMENT TAD STLOC DCA HAND2\M /STORE STARTING CORE LOCATION TAD NUMBLK DCA HAND3\M /STORE AS STARTING BLOCK OF TRANSFER /(FILE STRUCTURED DEVICES) CDF .FLD CIF 0 JMS I ENTRY /MAKE THE CALL TO HANDLER HAND1\M, 0 HAND2\M: 0 HAND3\M, 0 JMP ERR /ERROR RETURN M=M+1 /TAG INDEX; PROVIDES FOR UNIQUE TAGS /FOR SEVERAL HANDL CALLS IN SAME ROUTINE .ENDM HANDL EXPUNGE $HANDL > /THE CLEAR MACRO IS USED TO SET TO AN INITIAL VALUE, ANY VARIABLE /LENGTH TABLE. ALL ARGUMENTS MUST BE PRESENT. / /WHERE: / / SADD-STARTING ADDRESS OF TABLE MINUS ONE (AUTOINDEXING) / ENADD- ENDING " " " / FLD-FIELD WHERE TABLE RESIDES / DATA-VALUE TO WHICH TABLE IS TO BE INITIALIZED / SUBR-A POINTER (SUBR,CLR) MUST BE ON PAGE FOR CLR CALL .IF DF $CLEAR< L=1 .MACRO CLEAR SADD,ENADD,FLD,DATA,SUBR .EXTERNAL CLEAR1,CLR,FPTR,SADD,EADD,DAT,STADD CLA CDF FLD TAD .-1 CDF CLR /FORM CALCULATED CDF DCA I F50\L /PASS CDF AS PARAMETER TO CLEAR.MA CDF .FLD CIF CLR JMS I SUBR /CALL THE CLEAR SUBROUTINE SADD /STARTING ADDRESS OF SEGMENT TO BE CLEARED ENADD /ENDING ADDRESS DATA /DATA WITH WHICH SEGMENT IS INITILIZED SKP F50\L, FPTR /FIELD POINTER L=L+1 .ENDM CLEAR EXPUNGE $CLEAR >