Digital Research
This commit is contained in:
2020-11-06 18:50:37 +01:00
parent 621ed8ccaf
commit 31738079c4
8481 changed files with 1888323 additions and 0 deletions

View File

@@ -0,0 +1,46 @@
.TITLE BIT. (UTIL-VAX Library Routine BIT)
;-----------------------------------------------------------------------
;
; D I S C L A I M E R N O T I C E
; ------------------- -----------
;
; This document and/or portions of the material and data furnished
; herewith, was developed under sponsorship of the U. S. Government.
; Neither the U.S. nor the U.S.D.O.E., nor the Leland Stanford Junior
; University, nor their employees, nor their respective contractors,
; subcontractors, or their employees, makes any warranty, express or
; implied, or assumes any liability or responsibility for accuracy,
; completeness or usefulness of any information, apparatus, product
; or process disclosed, or represents that its use will not infringe
; privately-owned rights. Mention of any product, its manufacturer,
; or suppliers shall not, nor is it intended to, imply approval, dis-
; approval, or fitness for any particular use. The U. S. and the
; University at all times retain the right to use and disseminate same
; for any purpose whatsoever. Such distribution shall be made by the
; National Energy Software Center at the Argonne National Laboratory
; and only subject to the distributee furnishing satisfactory proof
; that he has a valid license from the Intel Corporation in effect.
;
;-----------------------------------------------------------------------
.PSECT UTIL_CODE,RD,NOWRT,EXE,GBL,CON,LONG
; BIT: PROCEDURE (NUMBER,PRTX) BYTE PUBLIC;
; DECLARE NUMBER BYTE, PTRX ADDRESS;
; END BIT;
;
; Beware that bits in this routine are numbered 0-7, where 0 is
; the high order bit in a byte, and 7 is the low order bit!!!!
.ENTRY BIT,^M<>
MOVZBL 4(AP),R0 ; R0 <- number.
MOVL 8(AP),R1 ; R1 -> array.
CMPB R0,(R1) ; Check for number > max.
BLEQU ITS_OK
CLRL R0 ; Return FALSE if number > max.
RET
ITS_OK: XORB2 #7,R0 ; Reverse sense of bit # within byte.
EXTV R0,#1,1(R1),R0 ; Extract selected bit and extend sign.
RET ; Return TRUE or FALSE.
.END

View File

@@ -0,0 +1,39 @@
.TITLE COMP1. (UTIL-VAX Library Routine MAX)
;-----------------------------------------------------------------------
;
; D I S C L A I M E R N O T I C E
; ------------------- -----------
;
; This document and/or portions of the material and data furnished
; herewith, was developed under sponsorship of the U. S. Government.
; Neither the U.S. nor the U.S.D.O.E., nor the Leland Stanford Junior
; University, nor their employees, nor their respective contractors,
; subcontractors, or their employees, makes any warranty, express or
; implied, or assumes any liability or responsibility for accuracy,
; completeness or usefulness of any information, apparatus, product
; or process disclosed, or represents that its use will not infringe
; privately-owned rights. Mention of any product, its manufacturer,
; or suppliers shall not, nor is it intended to, imply approval, dis-
; approval, or fitness for any particular use. The U. S. and the
; University at all times retain the right to use and disseminate same
; for any purpose whatsoever. Such distribution shall be made by the
; National Energy Software Center at the Argonne National Laboratory
; and only subject to the distributee furnishing satisfactory proof
; that he has a valid license from the Intel Corporation in effect.
;
;-----------------------------------------------------------------------
.PSECT UTIL_CODE,RD,NOWRT,EXE,GBL,CON,LONG
; MAX: PROCEDURE (VAL1,VAL2) ADDRESS PUBLIC;
; DECLARE (VAL1,VAL2) ADDRESS;
; END MAX;
.ENTRY MAX,^M<>
MOVZWL 4(AP),R0
CMPW R0,8(AP)
BGEQU 1$
MOVZWL 8(AP),R0
1$: RET
.END

View File

@@ -0,0 +1,39 @@
.TITLE COMP2. (UTIL-VAX Library Routine MIN)
;-----------------------------------------------------------------------
;
; D I S C L A I M E R N O T I C E
; ------------------- -----------
;
; This document and/or portions of the material and data furnished
; herewith, was developed under sponsorship of the U. S. Government.
; Neither the U.S. nor the U.S.D.O.E., nor the Leland Stanford Junior
; University, nor their employees, nor their respective contractors,
; subcontractors, or their employees, makes any warranty, express or
; implied, or assumes any liability or responsibility for accuracy,
; completeness or usefulness of any information, apparatus, product
; or process disclosed, or represents that its use will not infringe
; privately-owned rights. Mention of any product, its manufacturer,
; or suppliers shall not, nor is it intended to, imply approval, dis-
; approval, or fitness for any particular use. The U. S. and the
; University at all times retain the right to use and disseminate same
; for any purpose whatsoever. Such distribution shall be made by the
; National Energy Software Center at the Argonne National Laboratory
; and only subject to the distributee furnishing satisfactory proof
; that he has a valid license from the Intel Corporation in effect.
;
;-----------------------------------------------------------------------
.PSECT UTIL_CODE,RD,NOWRT,EXE,GBL,CON,LONG
; MIN: PROCEDURE (VAL1,VAL2) ADDDRESS PUBLIC;
; DECLARE (VAL1,VAL2) ADDRESS;
; END MIN;
.ENTRY MIN,^M<>
MOVZWL 4(AP),R0
CMPW R0,8(AP)
BLEQU 1$
MOVZWL 8(AP),R0
1$: RET
.END

View File

@@ -0,0 +1,53 @@
.TITLE COMP3. (UTIL-VAX Library Routine DECSIZ)
;-----------------------------------------------------------------------
;
; D I S C L A I M E R N O T I C E
; ------------------- -----------
;
; This document and/or portions of the material and data furnished
; herewith, was developed under sponsorship of the U. S. Government.
; Neither the U.S. nor the U.S.D.O.E., nor the Leland Stanford Junior
; University, nor their employees, nor their respective contractors,
; subcontractors, or their employees, makes any warranty, express or
; implied, or assumes any liability or responsibility for accuracy,
; completeness or usefulness of any information, apparatus, product
; or process disclosed, or represents that its use will not infringe
; privately-owned rights. Mention of any product, its manufacturer,
; or suppliers shall not, nor is it intended to, imply approval, dis-
; approval, or fitness for any particular use. The U. S. and the
; University at all times retain the right to use and disseminate same
; for any purpose whatsoever. Such distribution shall be made by the
; National Energy Software Center at the Argonne National Laboratory
; and only subject to the distributee furnishing satisfactory proof
; that he has a valid license from the Intel Corporation in effect.
;
;-----------------------------------------------------------------------
.PSECT UTIL_CODE,RD,NOWRT,EXE,GBL,CON,LONG
; DECSIZ: PROCEDURE (VALUE) BYTE PUBLIC;
; DECLARE VALUE ADDRESS;
; END DECSIZ;
.ENTRY DECSIZ,^M<>
MOVZWL 4(AP),R1
CMPW R1,#10
BGEQU 1$
MOVL #1,R0 ; 0-9: SIZE=1.
RET
1$: CMPW R1,#100
BGEQU 2$
MOVL #2,R0 ; 10-99: SIZE=2.
RET
2$: CMPW R1,#1000
BGEQU 3$
MOVL #3,R0 ; 100-999: SIZE=3.
RET
3$: CMPW R1,#10000
BGEQU 4$
MOVL #4,R0 ; 1000-9999: SIZE=4.
RET
4$: MOVL #5,R0 ; 10000-65536: SIZE=5.
RET
.END

View File

@@ -0,0 +1,36 @@
.TITLE COMP6. (UTIL-VAX Library Routine ONBIT)
;-----------------------------------------------------------------------
;
; D I S C L A I M E R N O T I C E
; ------------------- -----------
;
; This document and/or portions of the material and data furnished
; herewith, was developed under sponsorship of the U. S. Government.
; Neither the U.S. nor the U.S.D.O.E., nor the Leland Stanford Junior
; University, nor their employees, nor their respective contractors,
; subcontractors, or their employees, makes any warranty, express or
; implied, or assumes any liability or responsibility for accuracy,
; completeness or usefulness of any information, apparatus, product
; or process disclosed, or represents that its use will not infringe
; privately-owned rights. Mention of any product, its manufacturer,
; or suppliers shall not, nor is it intended to, imply approval, dis-
; approval, or fitness for any particular use. The U. S. and the
; University at all times retain the right to use and disseminate same
; for any purpose whatsoever. Such distribution shall be made by the
; National Energy Software Center at the Argonne National Laboratory
; and only subject to the distributee furnishing satisfactory proof
; that he has a valid license from the Intel Corporation in effect.
;
;-----------------------------------------------------------------------
.PSECT UTIL_CODE,RD,NOWRT,EXE,GBL,CON,LONG
; ONBIT: PROCEDURE (PARM) BYTE PUBLIC;
; DECLARE PARM BYTE;
; END ONBIT;
.ENTRY ONBIT,^M<>
FFS #0,#8,4(AP),R0 ; FIND FIRST BIT SET.
RET ; (RETURNS 8 IF PARM=0.)
.END

View File

@@ -0,0 +1,36 @@
.TITLE FILL. (UTIL-VAX Library Routine FILL)
;-----------------------------------------------------------------------
;
; D I S C L A I M E R N O T I C E
; ------------------- -----------
;
; This document and/or portions of the material and data furnished
; herewith, was developed under sponsorship of the U. S. Government.
; Neither the U.S. nor the U.S.D.O.E., nor the Leland Stanford Junior
; University, nor their employees, nor their respective contractors,
; subcontractors, or their employees, makes any warranty, express or
; implied, or assumes any liability or responsibility for accuracy,
; completeness or usefulness of any information, apparatus, product
; or process disclosed, or represents that its use will not infringe
; privately-owned rights. Mention of any product, its manufacturer,
; or suppliers shall not, nor is it intended to, imply approval, dis-
; approval, or fitness for any particular use. The U. S. and the
; University at all times retain the right to use and disseminate same
; for any purpose whatsoever. Such distribution shall be made by the
; National Energy Software Center at the Argonne National Laboratory
; and only subject to the distributee furnishing satisfactory proof
; that he has a valid license from the Intel Corporation in effect.
;
;-----------------------------------------------------------------------
.PSECT UTIL_CODE,RD,NOWRT,EXE,GBL,CON,LONG
; FILL: PROCEDURE (COUNT,PTRX,CHAR) PUBLIC;
; DECLARE (COUNT,PTRX) ADDRESS, CHAR BYTE;
; END FILL;
.ENTRY FILL,^M<R2,R3,R4,R5>
MOVC5 #0,(R0),12(AP),4(AP),@8(AP)
RET
.END

View File

@@ -0,0 +1,36 @@
.TITLE FMOVE. (UTIL-VAX Library Routine FMOVE)
;-----------------------------------------------------------------------
;
; D I S C L A I M E R N O T I C E
; ------------------- -----------
;
; This document and/or portions of the material and data furnished
; herewith, was developed under sponsorship of the U. S. Government.
; Neither the U.S. nor the U.S.D.O.E., nor the Leland Stanford Junior
; University, nor their employees, nor their respective contractors,
; subcontractors, or their employees, makes any warranty, express or
; implied, or assumes any liability or responsibility for accuracy,
; completeness or usefulness of any information, apparatus, product
; or process disclosed, or represents that its use will not infringe
; privately-owned rights. Mention of any product, its manufacturer,
; or suppliers shall not, nor is it intended to, imply approval, dis-
; approval, or fitness for any particular use. The U. S. and the
; University at all times retain the right to use and disseminate same
; for any purpose whatsoever. Such distribution shall be made by the
; National Energy Software Center at the Argonne National Laboratory
; and only subject to the distributee furnishing satisfactory proof
; that he has a valid license from the Intel Corporation in effect.
;
;-----------------------------------------------------------------------
.PSECT UTIL_CODE,RD,NOWRT,EXE,GBL,CON,LONG
; FMOVE: PROCEDURE (COUNT,SRC,DEST) PUBLIC;
; DECLARE (COUNT,SRC,DEST) ADDRESS;
; END FMOVE;
.ENTRY FMOVE,^M<R2,R3,R4,R5>
MOVC3 4(AP),@8(AP),@12(AP)
RET
.END

View File

@@ -0,0 +1,9 @@
$!
$! LOGNAMES.COM
$!
$! Command file to assign system-dependent logical names.
$!
$! 04FEB82 Alex Hunter 1. Original version.
$!
$ASSIGN DISK1:[AFH.VAXLIB.PLMRUN] PLM$UDI ! UDI library directory.
$!

View File

@@ -0,0 +1,18 @@
$SET VERIFY
$! MAKETAPE.COM
$!
$!
$! Command file to generate the build-it-from-source kit
$! for the PL/M-VAX utility library.
$!
$! 05FEB82 Alex Hunter 1. Original version.
$! 06APR82 Alex Hunter 1. Allocate MTA0 instead of MT.
$!
$ALLOCATE MTA0 TAPE
$INIT/DENSITY=1600 TAPE UTIL86
$MOUNT TAPE UTIL86
$COPY/LOG *.* TAPE
$DIR/SIZ/DAT TAPE
$DISMOUNT TAPE
$DEALLOCATE TAPE
$SET NOVERIFY

View File

@@ -0,0 +1,30 @@
.TITLE OBUFP. (UTIL-VAX Library OBUFP)
;-----------------------------------------------------------------------
;
; D I S C L A I M E R N O T I C E
; ------------------- -----------
;
; This document and/or portions of the material and data furnished
; herewith, was developed under sponsorship of the U. S. Government.
; Neither the U.S. nor the U.S.D.O.E., nor the Leland Stanford Junior
; University, nor their employees, nor their respective contractors,
; subcontractors, or their employees, makes any warranty, express or
; implied, or assumes any liability or responsibility for accuracy,
; completeness or usefulness of any information, apparatus, product
; or process disclosed, or represents that its use will not infringe
; privately-owned rights. Mention of any product, its manufacturer,
; or suppliers shall not, nor is it intended to, imply approval, dis-
; approval, or fitness for any particular use. The U. S. and the
; University at all times retain the right to use and disseminate same
; for any purpose whatsoever. Such distribution shall be made by the
; National Energy Software Center at the Argonne National Laboratory
; and only subject to the distributee furnishing satisfactory proof
; that he has a valid license from the Intel Corporation in effect.
;
;-----------------------------------------------------------------------
.PSECT $DGROUP_DATA,RD,WRT,NOEXE,GBL,CON,LONG
OBUFP:: .LONG 0
.END

View File

@@ -0,0 +1,63 @@
.TITLE OUT1. (UTIL-VAX Library Routines OHEXB,OHEXW)
;-----------------------------------------------------------------------
;
; D I S C L A I M E R N O T I C E
; ------------------- -----------
;
; This document and/or portions of the material and data furnished
; herewith, was developed under sponsorship of the U. S. Government.
; Neither the U.S. nor the U.S.D.O.E., nor the Leland Stanford Junior
; University, nor their employees, nor their respective contractors,
; subcontractors, or their employees, makes any warranty, express or
; implied, or assumes any liability or responsibility for accuracy,
; completeness or usefulness of any information, apparatus, product
; or process disclosed, or represents that its use will not infringe
; privately-owned rights. Mention of any product, its manufacturer,
; or suppliers shall not, nor is it intended to, imply approval, dis-
; approval, or fitness for any particular use. The U. S. and the
; University at all times retain the right to use and disseminate same
; for any purpose whatsoever. Such distribution shall be made by the
; National Energy Software Center at the Argonne National Laboratory
; and only subject to the distributee furnishing satisfactory proof
; that he has a valid license from the Intel Corporation in effect.
;
;-----------------------------------------------------------------------
.PSECT UTIL_CODE,RD,NOWRT,EXE,GBL,CON,LONG
; OHEXB: PROCEDURE (BVALUE) PUBLIC;
; DECLARE BVALUE BYTE;
; END OHEXB;
.ENTRY OHEXB,^M<R2>
MOVL OBUFP,R2 ; R2 -> BUFFER.
MOVL 4-3(AP),R0 ; R0 <- BVALUE LEFT-JUSTIFIED.
BSBB DIGIT ; EMIT TWO HEX DIGITS.
BSBB DIGIT
MOVL R2,OBUFP ; UPDATE BUFFER POINTER.
RET
; OHEXW: PROCEDURE (AVALUE) PUBLIC;
; DECLARE AVALUE ADDRESS;
; END OHEXW;
.ENTRY OHEXW,^M<R2>
MOVL OBUFP,R2 ; R2 -> BUFFER.
MOVL 4-2(AP),R0 ; R0 <- AVALUE LEFT-JUSTIFIED.
BSBB DIGIT ; EMIT 4 HEX DIGITS.
BSBB DIGIT
BSBB DIGIT
BSBB DIGIT
MOVL R2,OBUFP ; UPDATE BUFFER POINTER.
RET
; LOCAL SUBROUTINE TO EMIT NEXT HEX DIGIT.
DIGIT: CLRL R1
ASHQ #4,R0,R0 ; GET NEXT NIBBLE IN R1.
MOVB B^HEX[R1],(R2)+ ; PUSH ASCII REPRESENTATION INTO BUFFER.
RSB
HEX: .ASCII '0123456789ABCDEF'
.END

View File

@@ -0,0 +1,89 @@
.TITLE OUT11. (UTIL-VAX Library Routines OUTBLANK et al.)
;-----------------------------------------------------------------------
;
; D I S C L A I M E R N O T I C E
; ------------------- -----------
;
; This document and/or portions of the material and data furnished
; herewith, was developed under sponsorship of the U. S. Government.
; Neither the U.S. nor the U.S.D.O.E., nor the Leland Stanford Junior
; University, nor their employees, nor their respective contractors,
; subcontractors, or their employees, makes any warranty, express or
; implied, or assumes any liability or responsibility for accuracy,
; completeness or usefulness of any information, apparatus, product
; or process disclosed, or represents that its use will not infringe
; privately-owned rights. Mention of any product, its manufacturer,
; or suppliers shall not, nor is it intended to, imply approval, dis-
; approval, or fitness for any particular use. The U. S. and the
; University at all times retain the right to use and disseminate same
; for any purpose whatsoever. Such distribution shall be made by the
; National Energy Software Center at the Argonne National Laboratory
; and only subject to the distributee furnishing satisfactory proof
; that he has a valid license from the Intel Corporation in effect.
;
;-----------------------------------------------------------------------
.PSECT UTIL_CODE,RD,NOWRT,EXE,GBL,CON,LONG
; OUTBLANK: PROCEDURE PUBLIC;
; END OUTBLANK;
.ENTRY OUTBLANK,^M<>
MOVB #^A' ',@OBUFP
INCL OBUFP
RET
; OUTCHAR: PROCEDURE (CHAR) PUBLIC;
; DECLARE CHAR BYTE;
; END OUTCHAR;
.ENTRY OUTCHAR,^M<>
MOVB 4(AP),@OBUFP
INCL OBUFP
RET
; OUTCRLF: PROCEDURE PUBLIC;
; END OUTCRLF;
.ENTRY OUTCRLF,^M<>
MOVW #^X0A0D,@OBUFP
ADDL2 #2,OBUFP
RET
; OUTADDR: PROCEDURE (ADDRV) PUBLIC;
; DECLARE ADDRV ADDRESS;
; END OUTADDR;
.ENTRY OUTADDR,^M<>
MOVW 4(AP),@OBUFP
ADDL2 #2,OBUFP
RET
; OUTWRITE: PROCEDURE (PTRX,STRLENGTH) PUBLIC;
; DECLARE PTRX ADDRESS, STRLENGTH BYTE;
; END OUTWRITE;
.ENTRY OUTWRITE,^M<R2,R3,R4,R5>
MOVC3 8(AP),@4(AP),@OBUFP
MOVL R3,OBUFP ; Update buffer pointer.
RET
; OUTPRINT: PROCEDURE (PTRZ) PUBLIC;
; DECLARE PTRZ ADDRESS;
; END OUTPRINT;
.ENTRY OUTPRINT,^M<R2,R3,R4,R5>
MOVTUC #255,@4(AP),#0,B^IDENT_MAP,#255,@OBUFP
MOVL R5,OBUFP ; Update buffer pointer.
RET
; IDENTITY MAP USED WITH 'MOVTUC' INSTRUCTION IN OUTPRINT.
IDENT_MAP:
I=0
.REPEAT 256
.BYTE I
I=I+1
.ENDR
.END

View File

@@ -0,0 +1,54 @@
.TITLE OUT4. (UTIL-VAX Library Routines SETOB,RESOB)
;-----------------------------------------------------------------------
;
; D I S C L A I M E R N O T I C E
; ------------------- -----------
;
; This document and/or portions of the material and data furnished
; herewith, was developed under sponsorship of the U. S. Government.
; Neither the U.S. nor the U.S.D.O.E., nor the Leland Stanford Junior
; University, nor their employees, nor their respective contractors,
; subcontractors, or their employees, makes any warranty, express or
; implied, or assumes any liability or responsibility for accuracy,
; completeness or usefulness of any information, apparatus, product
; or process disclosed, or represents that its use will not infringe
; privately-owned rights. Mention of any product, its manufacturer,
; or suppliers shall not, nor is it intended to, imply approval, dis-
; approval, or fitness for any particular use. The U. S. and the
; University at all times retain the right to use and disseminate same
; for any purpose whatsoever. Such distribution shall be made by the
; National Energy Software Center at the Argonne National Laboratory
; and only subject to the distributee furnishing satisfactory proof
; that he has a valid license from the Intel Corporation in effect.
;
;-----------------------------------------------------------------------
.PSECT UTIL_DATA,RD,WRT,NOEXE,GBL,CON,LONG
OBARRAY:
.LONG 0[10]
OBPTR: .WORD 0
.PSECT UTIL_CODE,RD,NOWRT,EXE,GBL,CON,LONG
; SETOB: PROCEDURE (ADDR) PUBLIC;
; DECLARE ADDR ADDRESS;
; END SETOB;
.ENTRY SETOB,^M<>
MOVZWL OBPTR,R1
MOVL OBUFP,OBARRAY[R1] ; Save old buffer pointer.
INCW OBPTR
MOVL 4(AP),OBUFP ; Set new buffer pointer.
RET
; RESOB: PROCEDURE PUBLIC;
; END RESOB;
.ENTRY RESOB,^M<>
DECW OBPTR
MOVZWL OBPTR,R1
MOVL OBARRAY[R1],OBUFP ; Restore old buffer pointer.
RET
.END

View File

@@ -0,0 +1,23 @@
February 5, 1982
Alex Hunter
READ.ME
This directory contains the source files and command files needed to
build the PL/M-VAX utility library.
The *.PLM and *.MAR files are source files.
LOGNAMES.COM is a command file containing logical name assignments
used by other command files in this directory. LOGNAMES.COM should
be edited to reflect the directory names in use on your system.
Any command file which makes use of system-dependent logical name
assignments will contain a call to LOGNAMES.COM, so LOGNAMES.COM
should be the only command file requiring editing.
UTIL.BLD is a command file to build the UTIL.OLB utility library
from scratch.
MAKETAPE.COM is the command file used to write the contents of
this directory to mag tape.

View File

@@ -0,0 +1,23 @@
February 5, 1982
Alex Hunter
READ.ME
This directory contains the source files and command files needed to
build the PL/M-VAX utility library.
The *.PLM and *.MAR files are source files.
LOGNAMES.COM is a command file containing logical name assignments
used by other command files in this directory. LOGNAMES.COM should
be edited to reflect the directory names in use on your system.
Any command file which makes use of system-dependent logical name
assignments will contain a call to LOGNAMES.COM, so LOGNAMES.COM
should be the only command file requiring editing.
UTIL.BLD is a command file to build the UTIL.OLB utility library
from scratch.
MAKETAPE.COM is the command file used to write the contents of
this directory to mag tape.

View File

@@ -0,0 +1,46 @@
.TITLE RSCAN. (UTIL-VAX Library Routines RSCANA,RSCANB)
;-----------------------------------------------------------------------
;
; D I S C L A I M E R N O T I C E
; ------------------- -----------
;
; This document and/or portions of the material and data furnished
; herewith, was developed under sponsorship of the U. S. Government.
; Neither the U.S. nor the U.S.D.O.E., nor the Leland Stanford Junior
; University, nor their employees, nor their respective contractors,
; subcontractors, or their employees, makes any warranty, express or
; implied, or assumes any liability or responsibility for accuracy,
; completeness or usefulness of any information, apparatus, product
; or process disclosed, or represents that its use will not infringe
; privately-owned rights. Mention of any product, its manufacturer,
; or suppliers shall not, nor is it intended to, imply approval, dis-
; approval, or fitness for any particular use. The U. S. and the
; University at all times retain the right to use and disseminate same
; for any purpose whatsoever. Such distribution shall be made by the
; National Energy Software Center at the Argonne National Laboratory
; and only subject to the distributee furnishing satisfactory proof
; that he has a valid license from the Intel Corporation in effect.
;
;-----------------------------------------------------------------------
.PSECT UTIL_CODE,RD,NOWRT,EXE,GBL,CON,LONG
; RSCANB: PROCEDURE BYTE PUBLIC;
; <RETURN SCANBYTE AND SET SCANP=SCANP+1>
; END RSCANB;
.ENTRY RSCANB,^M<>
MOVZBL @SCANP,R0
INCL SCANP
RET
; RSCANA: PROCEDURE ADDRESS PUBLIC;
; <RETURN SCANADDR AND SET SCANP=SCANP+2>
; END RSCANA;
.ENTRY RSCANA,^M<>
MOVZWL @SCANP,R0
ADDL2 #2,SCANP
RET
.END

View File

@@ -0,0 +1,445 @@
.TITLE SCAN. (UTIL-VAX Character Scan Routines)
;-----------------------------------------------------------------------
;
; D I S C L A I M E R N O T I C E
; ------------------- -----------
;
; This document and/or portions of the material and data furnished
; herewith, was developed under sponsorship of the U. S. Government.
; Neither the U.S. nor the U.S.D.O.E., nor the Leland Stanford Junior
; University, nor their employees, nor their respective contractors,
; subcontractors, or their employees, makes any warranty, express or
; implied, or assumes any liability or responsibility for accuracy,
; completeness or usefulness of any information, apparatus, product
; or process disclosed, or represents that its use will not infringe
; privately-owned rights. Mention of any product, its manufacturer,
; or suppliers shall not, nor is it intended to, imply approval, dis-
; approval, or fitness for any particular use. The U. S. and the
; University at all times retain the right to use and disseminate same
; for any purpose whatsoever. Such distribution shall be made by the
; National Energy Software Center at the Argonne National Laboratory
; and only subject to the distributee furnishing satisfactory proof
; that he has a valid license from the Intel Corporation in effect.
;
;-----------------------------------------------------------------------
;
; R E V I S I O N H I S T O R Y
;
;
; 15FEB82 Alex Hunter 1. Changes required by new entry point vector
; scheme.
;
;-----------------------------------------------------------------------
.SHOW EXPANSIONS
.PSECT $CGROUP_VECTOR,RD,NOWRT,EXE,GBL,CON,LONG
;
; A macro to automatically generate entry point vector code
; for procedure entry points.
;
.MACRO AENTRY NAME,MASK
.PSECT $CGROUP_VECTOR
.ENTRY V.'NAME,MASK
JMP NAME+2
.PSECT UTIL_CODE
.ENTRY NAME,MASK
.ENDM AENTRY
.PSECT UTIL_CODE,RD,NOWRT,EXE,GBL,CON,LONG
;-----------------------------------------------------------------------
;
; LOOKUP TABLE FOR NON-NUMERIC CHARACTER CLASSES.
;
;-----------------------------------------------------------------------
; BIT DEFINITIONS:
ALFA = 0 ; ANY LETTER.
TOKEN = 1 ; ANY CHARACTER WHICH CAN BE PART OF A TOKEN.
FILE = 2 ; ANY CHARACTER WHICH CAN BE PART OF A FILENAME.
BLANK = 3 ; ANY CHARACTER REPRESENTING WHITE SPACE.
CRLF = 4 ; A CR OR LF.
TERM = 5 ; A LINE TERMINATOR CHARACTER.
LOWERCASE = 6 ; A LOWERCASE LETTER.
ALFANUM = 7 ; ANY LETTER OR DIGIT.
; BIT MASKS:
M.ALFA = 1@ALFA
M.TOKEN = 1@TOKEN
M.FILE = 1@FILE
M.BLANK = 1@BLANK
M.CRLF = 1@CRLF
M.TERM = 1@TERM
M.LOWERCASE = 1@LOWERCASE
M.ALFANUM = 1@ALFANUM
; TABLE:
ACLASS:
.BYTE 0 ; 00 NUL
.BYTE 0 ; 01 SOH
.BYTE 0 ; 02 STX
.BYTE 0 ; 03 ETX
.BYTE 0 ; 04 EOT
.BYTE 0 ; 05 ENQ
.BYTE 0 ; 06 ACK
.BYTE 0 ; 07 BEL
.BYTE 0 ; 08 BS
.BYTE <M.BLANK> ; 09 HT
.BYTE <M.CRLF+M.TERM> ; 0A LF
.BYTE 0 ; 0B VT
.BYTE 0 ; 0C FF
.BYTE <M.CRLF+M.TERM> ; 0D CR
.BYTE 0 ; 0E SO
.BYTE 0 ; 0F SI
.BYTE 0 ; 10 DLE
.BYTE 0 ; 11 DC1
.BYTE 0 ; 12 DC2
.BYTE 0 ; 13 DC3
.BYTE 0 ; 14 DC4
.BYTE 0 ; 15 NAK
.BYTE 0 ; 16 SYN
.BYTE 0 ; 17 ETB
.BYTE 0 ; 18 CAN
.BYTE 0 ; 19 EM
.BYTE 0 ; 1A SUB
.BYTE <M.TERM> ; 1B ESC
.BYTE 0 ; 1C FS
.BYTE 0 ; 1D GS
.BYTE 0 ; 1E RS
.BYTE 0 ; 1F US
.BYTE <M.BLANK> ; 20 SP
.BYTE 0 ; 21 !
.BYTE 0 ; 22 "
.BYTE 0 ; 23 #
.BYTE <M.FILE> ;(VMS only) ; 24 $
.BYTE 0 ; 25 %
.BYTE 0 ; 26 &
.BYTE 0 ; 27 '
.BYTE 0 ; 28 (
.BYTE 0 ; 29 )
.BYTE 0 ; 2A *
.BYTE 0 ; 2B +
.BYTE 0 ; 2C ,
.BYTE 0 ; 2D -
.BYTE <M.FILE> ; 2E .
.BYTE 0 ; 2F /
.BYTE <M.TOKEN+M.FILE+M.ALFANUM> ; 30 0
.BYTE <M.TOKEN+M.FILE+M.ALFANUM> ; 31 1
.BYTE <M.TOKEN+M.FILE+M.ALFANUM> ; 32 3
.BYTE <M.TOKEN+M.FILE+M.ALFANUM> ; 33 3
.BYTE <M.TOKEN+M.FILE+M.ALFANUM> ; 34 4
.BYTE <M.TOKEN+M.FILE+M.ALFANUM> ; 35 5
.BYTE <M.TOKEN+M.FILE+M.ALFANUM> ; 36 6
.BYTE <M.TOKEN+M.FILE+M.ALFANUM> ; 37 7
.BYTE <M.TOKEN+M.FILE+M.ALFANUM> ; 38 8
.BYTE <M.TOKEN+M.FILE+M.ALFANUM> ; 39 9
.BYTE <M.FILE> ; 3A :
.BYTE <M.FILE> ; (VMS only) ; 3B ;
.BYTE 0 ; 3C <
.BYTE 0 ; 3D =
.BYTE 0 ; 3E >
.BYTE <M.TOKEN> ; 3F ?
.BYTE <M.TOKEN> ; 40 @
.BYTE <M.ALFA+M.TOKEN+M.FILE+M.ALFANUM> ; 41 A
.BYTE <M.ALFA+M.TOKEN+M.FILE+M.ALFANUM> ; 42 B
.BYTE <M.ALFA+M.TOKEN+M.FILE+M.ALFANUM> ; 43 C
.BYTE <M.ALFA+M.TOKEN+M.FILE+M.ALFANUM> ; 44 D
.BYTE <M.ALFA+M.TOKEN+M.FILE+M.ALFANUM> ; 45 E
.BYTE <M.ALFA+M.TOKEN+M.FILE+M.ALFANUM> ; 46 F
.BYTE <M.ALFA+M.TOKEN+M.FILE+M.ALFANUM> ; 47 G
.BYTE <M.ALFA+M.TOKEN+M.FILE+M.ALFANUM> ; 48 H
.BYTE <M.ALFA+M.TOKEN+M.FILE+M.ALFANUM> ; 49 I
.BYTE <M.ALFA+M.TOKEN+M.FILE+M.ALFANUM> ; 4A J
.BYTE <M.ALFA+M.TOKEN+M.FILE+M.ALFANUM> ; 4B K
.BYTE <M.ALFA+M.TOKEN+M.FILE+M.ALFANUM> ; 4C L
.BYTE <M.ALFA+M.TOKEN+M.FILE+M.ALFANUM> ; 4D M
.BYTE <M.ALFA+M.TOKEN+M.FILE+M.ALFANUM> ; 4E N
.BYTE <M.ALFA+M.TOKEN+M.FILE+M.ALFANUM> ; 4F O
.BYTE <M.ALFA+M.TOKEN+M.FILE+M.ALFANUM> ; 50 P
.BYTE <M.ALFA+M.TOKEN+M.FILE+M.ALFANUM> ; 51 Q
.BYTE <M.ALFA+M.TOKEN+M.FILE+M.ALFANUM> ; 52 R
.BYTE <M.ALFA+M.TOKEN+M.FILE+M.ALFANUM> ; 53 S
.BYTE <M.ALFA+M.TOKEN+M.FILE+M.ALFANUM> ; 54 T
.BYTE <M.ALFA+M.TOKEN+M.FILE+M.ALFANUM> ; 55 U
.BYTE <M.ALFA+M.TOKEN+M.FILE+M.ALFANUM> ; 56 V
.BYTE <M.ALFA+M.TOKEN+M.FILE+M.ALFANUM> ; 57 W
.BYTE <M.ALFA+M.TOKEN+M.FILE+M.ALFANUM> ; 58 X
.BYTE <M.ALFA+M.TOKEN+M.FILE+M.ALFANUM> ; 59 Y
.BYTE <M.ALFA+M.TOKEN+M.FILE+M.ALFANUM> ; 5A Z
.BYTE <M.FILE> ; (VMS only) ; 5B [
.BYTE 0 ; 5C \
.BYTE <M.FILE> ; (VMS only) ; 5D ]
.BYTE 0 ; 5E ^
.BYTE <M.TOKEN> ; 5F _
.BYTE 0 ; 60 `
.BYTE <M.ALFA+M.TOKEN+M.FILE+M.ALFANUM+M.LOWERCASE> ; 61 a
.BYTE <M.ALFA+M.TOKEN+M.FILE+M.ALFANUM+M.LOWERCASE> ; 62 b
.BYTE <M.ALFA+M.TOKEN+M.FILE+M.ALFANUM+M.LOWERCASE> ; 63 c
.BYTE <M.ALFA+M.TOKEN+M.FILE+M.ALFANUM+M.LOWERCASE> ; 64 d
.BYTE <M.ALFA+M.TOKEN+M.FILE+M.ALFANUM+M.LOWERCASE> ; 65 e
.BYTE <M.ALFA+M.TOKEN+M.FILE+M.ALFANUM+M.LOWERCASE> ; 66 f
.BYTE <M.ALFA+M.TOKEN+M.FILE+M.ALFANUM+M.LOWERCASE> ; 67 g
.BYTE <M.ALFA+M.TOKEN+M.FILE+M.ALFANUM+M.LOWERCASE> ; 68 h
.BYTE <M.ALFA+M.TOKEN+M.FILE+M.ALFANUM+M.LOWERCASE> ; 69 i
.BYTE <M.ALFA+M.TOKEN+M.FILE+M.ALFANUM+M.LOWERCASE> ; 6A j
.BYTE <M.ALFA+M.TOKEN+M.FILE+M.ALFANUM+M.LOWERCASE> ; 6B k
.BYTE <M.ALFA+M.TOKEN+M.FILE+M.ALFANUM+M.LOWERCASE> ; 6C l
.BYTE <M.ALFA+M.TOKEN+M.FILE+M.ALFANUM+M.LOWERCASE> ; 6D m
.BYTE <M.ALFA+M.TOKEN+M.FILE+M.ALFANUM+M.LOWERCASE> ; 6E n
.BYTE <M.ALFA+M.TOKEN+M.FILE+M.ALFANUM+M.LOWERCASE> ; 6F o
.BYTE <M.ALFA+M.TOKEN+M.FILE+M.ALFANUM+M.LOWERCASE> ; 70 p
.BYTE <M.ALFA+M.TOKEN+M.FILE+M.ALFANUM+M.LOWERCASE> ; 71 q
.BYTE <M.ALFA+M.TOKEN+M.FILE+M.ALFANUM+M.LOWERCASE> ; 72 r
.BYTE <M.ALFA+M.TOKEN+M.FILE+M.ALFANUM+M.LOWERCASE> ; 73 s
.BYTE <M.ALFA+M.TOKEN+M.FILE+M.ALFANUM+M.LOWERCASE> ; 74 t
.BYTE <M.ALFA+M.TOKEN+M.FILE+M.ALFANUM+M.LOWERCASE> ; 75 u
.BYTE <M.ALFA+M.TOKEN+M.FILE+M.ALFANUM+M.LOWERCASE> ; 76 v
.BYTE <M.ALFA+M.TOKEN+M.FILE+M.ALFANUM+M.LOWERCASE> ; 77 w
.BYTE <M.ALFA+M.TOKEN+M.FILE+M.ALFANUM+M.LOWERCASE> ; 78 x
.BYTE <M.ALFA+M.TOKEN+M.FILE+M.ALFANUM+M.LOWERCASE> ; 79 y
.BYTE <M.ALFA+M.TOKEN+M.FILE+M.ALFANUM+M.LOWERCASE> ; 7A z
.BYTE 0 ; 7B {
.BYTE 0 ; 7C |
.BYTE 0 ; 7D }
.BYTE 0 ; 7E ~
.BYTE 0 ; 7F DEL
.BYTE 0[128] ; (Just in case...) ; 80-FF.
;-----------------------------------------------------------------------
;
; LOOKUP TABLE FOR NUMERIC CHARACTER CLASSES.
;
; BITS <3:0> OF EACH ENTRY REPRESENT THE BINARY VALUE OF THE
; CORRESPONDING ASCII CHARACTER.
;
; OTHER BITS ARE DEFINED BELOW.
;
;-----------------------------------------------------------------------
BINARY = 4 ; BINARY DIGIT.
OCTAL = 5 ; OCTAL DIGIT.
DECIMAL = 6 ; DECIMAL DIGIT.
HEX = 7 ; HEXADECIMAL DIGIT.
; BIT MASKS:
M.BINARY = 1@BINARY
M.OCTAL = 1@OCTAL
M.DECIMAL = 1@DECIMAL
M.HEX = 1@HEX
; LOOKUP TABLE:
NCLASS:
.BYTE 0 ; 00 NUL
.BYTE 0 ; 01 SOH
.BYTE 0 ; 02 STX
.BYTE 0 ; 03 ETX
.BYTE 0 ; 04 EOT
.BYTE 0 ; 05 ENQ
.BYTE 0 ; 06 ACK
.BYTE 0 ; 07 BEL
.BYTE 0 ; 08 BS
.BYTE 0 ; 09 HT
.BYTE 0 ; 0A LF
.BYTE 0 ; 0B VT
.BYTE 0 ; 0C FF
.BYTE 0 ; 0D CR
.BYTE 0 ; 0E SO
.BYTE 0 ; 0F SI
.BYTE 0 ; 10 DLE
.BYTE 0 ; 11 DC1
.BYTE 0 ; 12 DC2
.BYTE 0 ; 13 DC3
.BYTE 0 ; 14 DC4
.BYTE 0 ; 15 NAK
.BYTE 0 ; 16 SYN
.BYTE 0 ; 17 ETB
.BYTE 0 ; 18 CAN
.BYTE 0 ; 19 EM
.BYTE 0 ; 1A SUB
.BYTE 0 ; 1B ESC
.BYTE 0 ; 1C FS
.BYTE 0 ; 1D GS
.BYTE 0 ; 1E RS
.BYTE 0 ; 1F US
.BYTE 0 ; 20 SP
.BYTE 0 ; 21 !
.BYTE 0 ; 22 "
.BYTE 0 ; 23 #
.BYTE 0 ; 24 $
.BYTE 0 ; 25 %
.BYTE 0 ; 26 &
.BYTE 0 ; 27 '
.BYTE 0 ; 28 (
.BYTE 0 ; 29 )
.BYTE 0 ; 2A *
.BYTE 0 ; 2B +
.BYTE 0 ; 2C ,
.BYTE 0 ; 2D -
.BYTE 0 ; 2E .
.BYTE 0 ; 2F /
.BYTE <M.HEX+M.DECIMAL+M.OCTAL+M.BINARY>+0 ; 30 0
.BYTE <M.HEX+M.DECIMAL+M.OCTAL+M.BINARY>+1 ; 31 1
.BYTE <M.HEX+M.DECIMAL+M.OCTAL>+2 ; 32 3
.BYTE <M.HEX+M.DECIMAL+M.OCTAL>+3 ; 33 3
.BYTE <M.HEX+M.DECIMAL+M.OCTAL>+4 ; 34 4
.BYTE <M.HEX+M.DECIMAL+M.OCTAL>+5 ; 35 5
.BYTE <M.HEX+M.DECIMAL+M.OCTAL>+6 ; 36 6
.BYTE <M.HEX+M.DECIMAL+M.OCTAL>+7 ; 37 7
.BYTE <M.HEX+M.DECIMAL>+8 ; 38 8
.BYTE <M.HEX+M.DECIMAL>+9 ; 39 9
.BYTE 0 ; 3A :
.BYTE 0 ; 3B ;
.BYTE 0 ; 3C <
.BYTE 0 ; 3D =
.BYTE 0 ; 3E >
.BYTE 0 ; 3F ?
.BYTE 0 ; 40 @
.BYTE <M.HEX>+10 ; 41 A
.BYTE <M.HEX>+11 ; 42 B
.BYTE <M.HEX>+12 ; 43 C
.BYTE <M.HEX>+13 ; 44 D
.BYTE <M.HEX>+14 ; 45 E
.BYTE <M.HEX>+15 ; 46 F
.BYTE 0 ; 47 G
.BYTE 0 ; 48 H
.BYTE 0 ; 49 I
.BYTE 0 ; 4A J
.BYTE 0 ; 4B K
.BYTE 0 ; 4C L
.BYTE 0 ; 4D M
.BYTE 0 ; 4E N
.BYTE 0 ; 4F O
.BYTE 0 ; 50 P
.BYTE 0 ; 51 Q
.BYTE 0 ; 52 R
.BYTE 0 ; 53 S
.BYTE 0 ; 54 T
.BYTE 0 ; 55 U
.BYTE 0 ; 56 V
.BYTE 0 ; 57 W
.BYTE 0 ; 58 X
.BYTE 0 ; 59 Y
.BYTE 0 ; 5A Z
.BYTE 0 ; 5B [
.BYTE 0 ; 5C \
.BYTE 0 ; 5D ]
.BYTE 0 ; 5E ^
.BYTE 0 ; 5F _
.BYTE 0 ; 60 `
.BYTE <M.HEX>+10 ; 61 a
.BYTE <M.HEX>+11 ; 62 b
.BYTE <M.HEX>+12 ; 63 c
.BYTE <M.HEX>+13 ; 64 d
.BYTE <M.HEX>+14 ; 65 e
.BYTE <M.HEX>+15 ; 66 f
.BYTE 0 ; 67 g
.BYTE 0 ; 68 h
.BYTE 0 ; 69 i
.BYTE 0 ; 6A j
.BYTE 0 ; 6B k
.BYTE 0 ; 6C l
.BYTE 0 ; 6D m
.BYTE 0 ; 6E n
.BYTE 0 ; 6F o
.BYTE 0 ; 70 p
.BYTE 0 ; 71 q
.BYTE 0 ; 72 r
.BYTE 0 ; 73 s
.BYTE 0 ; 74 t
.BYTE 0 ; 75 u
.BYTE 0 ; 76 v
.BYTE 0 ; 77 w
.BYTE 0 ; 78 x
.BYTE 0 ; 79 y
.BYTE 0 ; 7A z
.BYTE 0 ; 7B {
.BYTE 0 ; 7C |
.BYTE 0 ; 7D }
.BYTE 0 ; 7E ~
.BYTE 0 ; 7F DEL
.BYTE 0[128] ; (Just in case...) ; 80-FF.
;-----------------------------------------------------------------------
;
; CHARACTER SCAN PROCEDURES.
;
;-----------------------------------------------------------------------
AENTRY DDIGCH,<^M<>>
MOVZBL @W^SCANP-K.(R11),R0
EXTV #DECIMAL,#1,NCLASS[R0],R0
RET
AENTRY QDIGCH,<^M<>>
MOVZBL @W^SCANP-K.(R11),R0
EXTV #OCTAL,#1,NCLASS[R0],R0
RET
AENTRY BDIGCH,<^M<>>
MOVZBL @W^SCANP-K.(R11),R0
EXTV #BINARY,#1,NCLASS[R0],R0
RET
AENTRY HDIGCH,<^M<>>
MOVZBL @W^SCANP-K.(R11),R0
EXTV #HEX,#1,NCLASS[R0],R0
RET
AENTRY ANYCH,<^M<>>
MCOML #0,R0
RET
AENTRY FORCUP,<^M<>>
MOVZBL @W^SCANP-K.(R11),R0
BBC #LOWERCASE,ACLASS[R0],1$
SUBB2 #<^A'a'-^A'A'>,R0 ; Convert lowercase to uppercase.
1$: RET
AENTRY LETRCH,<^M<>>
MOVZBL @W^SCANP-K.(R11),R0
EXTV #ALFA,#1,ACLASS[R0],R0
RET
AENTRY LTNMCH,<^M<>>
MOVZBL @W^SCANP-K.(R11),R0
EXTV #ALFANUM,#1,ACLASS[R0],R0
RET
AENTRY TOKCH,<^M<>>
MOVZBL @W^SCANP-K.(R11),R0
EXTV #TOKEN,#1,ACLASS[R0],R0
RET
AENTRY FILECH,<^M<>>
MOVZBL @W^SCANP-K.(R11),R0
EXTV #FILE,#1,ACLASS[R0],R0
RET
AENTRY CRLFCH,<^M<>>
MOVZBL @W^SCANP-K.(R11),R0
EXTV #CRLF,#1,ACLASS[R0],R0
RET
AENTRY TERMCH,<^M<>>
MOVZBL @W^SCANP-K.(R11),R0
EXTV #TERM,#1,ACLASS[R0],R0
RET
AENTRY BLNKCH,<^M<>>
MOVZBL @W^SCANP-K.(R11),R0
EXTV #BLANK,#1,ACLASS[R0],R0
RET
AENTRY ASCBIN,<^M<>>
MOVZBL @W^SCANP-K.(R11),R0
EXTZV #0,#4,NCLASS[R0],R0
RET
.END

View File

@@ -0,0 +1,40 @@
.TITLE SCAN2. (UTIL-VAX Library Routine INDIRECTPROC)
;-----------------------------------------------------------------------
;
; D I S C L A I M E R N O T I C E
; ------------------- -----------
;
; This document and/or portions of the material and data furnished
; herewith, was developed under sponsorship of the U. S. Government.
; Neither the U.S. nor the U.S.D.O.E., nor the Leland Stanford Junior
; University, nor their employees, nor their respective contractors,
; subcontractors, or their employees, makes any warranty, express or
; implied, or assumes any liability or responsibility for accuracy,
; completeness or usefulness of any information, apparatus, product
; or process disclosed, or represents that its use will not infringe
; privately-owned rights. Mention of any product, its manufacturer,
; or suppliers shall not, nor is it intended to, imply approval, dis-
; approval, or fitness for any particular use. The U. S. and the
; University at all times retain the right to use and disseminate same
; for any purpose whatsoever. Such distribution shall be made by the
; National Energy Software Center at the Argonne National Laboratory
; and only subject to the distributee furnishing satisfactory proof
; that he has a valid license from the Intel Corporation in effect.
;
;-----------------------------------------------------------------------
;
; R E V I S I O N H I S T O R Y
;
; 09FEB82 Alex Hunter 1. Change for new type of CGROUP vector.
;
;-----------------------------------------------------------------------
.PSECT UTIL_CODE,RD,NOWRT,EXE,GBL,CON,LONG
.ENTRY INDIRECTPROC,^M<>
MOVL 4(AP),R0 ; Get CGROUP vector index in R0.
CALLS #0,L^V.(R0) ; Call the indirect procedure's entry
; point vector.
RET
.END

View File

@@ -0,0 +1,54 @@
.TITLE SCAN7. (UTIL-VAX Library Routines SETSC,RESSC)
;-----------------------------------------------------------------------
;
; D I S C L A I M E R N O T I C E
; ------------------- -----------
;
; This document and/or portions of the material and data furnished
; herewith, was developed under sponsorship of the U. S. Government.
; Neither the U.S. nor the U.S.D.O.E., nor the Leland Stanford Junior
; University, nor their employees, nor their respective contractors,
; subcontractors, or their employees, makes any warranty, express or
; implied, or assumes any liability or responsibility for accuracy,
; completeness or usefulness of any information, apparatus, product
; or process disclosed, or represents that its use will not infringe
; privately-owned rights. Mention of any product, its manufacturer,
; or suppliers shall not, nor is it intended to, imply approval, dis-
; approval, or fitness for any particular use. The U. S. and the
; University at all times retain the right to use and disseminate same
; for any purpose whatsoever. Such distribution shall be made by the
; National Energy Software Center at the Argonne National Laboratory
; and only subject to the distributee furnishing satisfactory proof
; that he has a valid license from the Intel Corporation in effect.
;
;-----------------------------------------------------------------------
.PSECT UTIL_DATA,RD,WRT,NOEXE,GBL,CON,LONG
SCARRAY:
.LONG 0[10]
SCPTR: .WORD 0
.PSECT UTIL_CODE,RD,NOWRT,EXE,GBL,CON,LONG
; SETSC: PROCEDURE (ADDR) PUBLIC;
; DECLARE ADDR ADDRESS;
; END SETSC;
.ENTRY SETSC,^M<>
MOVZWL SCPTR,R1
MOVL SCANP,SCARRAY[R1] ; Save old scan pointer.
INCW SCPTR
MOVL 4(AP),SCANP ; Set new scan pointer.
RET
; RESSC: PROCEDURE PUBLIC;
; END RESSC;
.ENTRY RESSC,^M<>
DECW SCPTR
MOVZWL SCPTR,R1
MOVL SCARRAY[R1],SCANP ; Restore old scan pointer.
RET
.END

View File

@@ -0,0 +1,30 @@
.TITLE SCANP. (UTIL-VAX Library SCANP)
;-----------------------------------------------------------------------
;
; D I S C L A I M E R N O T I C E
; ------------------- -----------
;
; This document and/or portions of the material and data furnished
; herewith, was developed under sponsorship of the U. S. Government.
; Neither the U.S. nor the U.S.D.O.E., nor the Leland Stanford Junior
; University, nor their employees, nor their respective contractors,
; subcontractors, or their employees, makes any warranty, express or
; implied, or assumes any liability or responsibility for accuracy,
; completeness or usefulness of any information, apparatus, product
; or process disclosed, or represents that its use will not infringe
; privately-owned rights. Mention of any product, its manufacturer,
; or suppliers shall not, nor is it intended to, imply approval, dis-
; approval, or fitness for any particular use. The U. S. and the
; University at all times retain the right to use and disseminate same
; for any purpose whatsoever. Such distribution shall be made by the
; National Energy Software Center at the Argonne National Laboratory
; and only subject to the distributee furnishing satisfactory proof
; that he has a valid license from the Intel Corporation in effect.
;
;-----------------------------------------------------------------------
.PSECT $DGROUP_DATA,RD,WRT,NOEXE,GBL,CON,LONG
SCANP:: .LONG 0
.END

View File

@@ -0,0 +1,66 @@
$TITLE ('SFOUND')
$SMALL
SFOUND_VAX: DO; /* PL/M-VAX VERSION OF SFOUND.A86 */
/*************************************************************************/
/* */
/* D I S C L A I M E R N O T I C E */
/* ------------------- ----------- */
/* */
/* This document and/or portions of the material and data furnished */
/* herewith, was developed under sponsorship of the U. S. Government. */
/* Neither the U.S. nor the U.S.D.O.E., nor the Leland Stanford Junior */
/* University, nor their employees, nor their respective contractors, */
/* subcontractors, or their employees, makes any warranty, express or */
/* implied, or assumes any liability or responsibility for accuracy, */
/* completeness or usefulness of any information, apparatus, product */
/* or process disclosed, or represents that its use will not infringe */
/* privately-owned rights. Mention of any product, its manufacturer, */
/* or suppliers shall not, nor is it intended to, imply approval, dis- */
/* approval, or fitness for any particular use. The U. S. and the */
/* University at all times retain the right to use and disseminate same */
/* for any purpose whatsoever. Such distribution shall be made by the */
/* National Energy Software Center at the Argonne National Laboratory */
/* and only subject to the distributee furnishing satisfactory proof */
/* that he has a valid license from the Intel Corporation in effect. */
/* */
/*************************************************************************/
/*****************************************************************/
/****** ******/
/****** WARNING WARNING WARNING WARNING ******/
/****** ******/
/****** This module cannot be called from another module ******/
/****** which was compiled under the LARGE control. ******/
/****** ******/
/*****************************************************************/
$INCLUDE (PLM$UDI:CUSTOMARY.LIT)
DECLARE SCANP ADDRESS EXTERNAL,
TARGET (1) BYTE EXTERNAL;
DECLARE TARLEN BYTE PUBLIC, /* length of target */
JOKER BYTE PUBLIC INITIAL ('?'),
GIVEUP ADDRESS PUBLIC;
SFOUND: PROCEDURE BYTE PUBLIC REENTRANT;
/* (Reentrant so local storage allocated on stack.) */
DECLARE P ADDRESS,
(CHAR BASED P) (1) BYTE,
I INTEGER;
P=SCANP;
DO P=SCANP TO GIVEUP-1;
DO I=0 TO TARLEN-1;
IF CHAR(I)<>TARGET(I) AND CHAR(I)<>JOKER THEN
GO TO TRY_NEXT_POSITION;
ENDIF
ENDDO
SCANP=.CHAR(TARLEN); /* position SCANP to last char matched+1 */
RETURN TRUE;
TRY_NEXT_POSITION:
ENDDO;
RETURN FALSE; /* target not found */
END SFOUND;
END SFOUND_VAX;

View File

@@ -0,0 +1,47 @@
.TITLE UNWINDTOFRAME.S Unwind to specified stack frame.
;-----------------------------------------------------------------------
;
; D I S C L A I M E R N O T I C E
; ------------------- -----------
;
; This document and/or portions of the material and data furnished
; herewith, was developed under sponsorship of the U. S. Government.
; Neither the U.S. nor the U.S.D.O.E., nor the Leland Stanford Junior
; University, nor their employees, nor their respective contractors,
; subcontractors, or their employees, makes any warranty, express or
; implied, or assumes any liability or responsibility for accuracy,
; completeness or usefulness of any information, apparatus, product
; or process disclosed, or represents that its use will not infringe
; privately-owned rights. Mention of any product, its manufacturer,
; or suppliers shall not, nor is it intended to, imply approval, dis-
; approval, or fitness for any particular use. The U. S. and the
; University at all times retain the right to use and disseminate same
; for any purpose whatsoever. Such distribution shall be made by the
; National Energy Software Center at the Argonne National Laboratory
; and only subject to the distributee furnishing satisfactory proof
; that he has a valid license from the Intel Corporation in effect.
;
;-----------------------------------------------------------------------
;
; WARNING WARNING WARNING WARNING WARNING WARNING WARNING
;
; This code will only work for modules compiled under the
; SMALL or MEDIUM controls.
;
;-----------------------------------------------------------------------
.PSECT UTIL_CODE,RD,NOWRT,EXE,GBL,CON,LONG
.ENTRY UNWINDTOFRAME,^M<>
MOVL 4(AP),R0 ; Save desired frame ptr value.
MOVL 16(FP),R1 ; Save return address.
LOOP: MOVAB B^RET1,16(FP) ; Stuff local return addr as saved PC.
RET ; Pop off a stack frame.
RET1: ; RET returns control to here.
CMPW FP,R0 ; Compare desired FP (low 16 bits only).
BNEQ LOOP ; Pop frames until desired frame reached.
SUBL2 #8,R10 ; -- Will get added back upon return.
JMP (R1) ; Done: return to caller.
.END

View File

@@ -0,0 +1,36 @@
$SET VERIFY
$!
$! UTIL.BLD
$!
$! Command file to build the PL/M-VAX utility library.
$!
$! 05FEB82 Alex Hunter 1. Original version.
$!
$@LOGNAMES
$!
$MAC/LIS/E=D BIT
$MAC/LIS/E=D COMP1
$MAC/LIS/E=D COMP2
$MAC/LIS/E=D COMP3
$MAC/LIS/E=D COMP6
$MAC/LIS/E=D FILL
$MAC/LIS/E=D FMOVE
$MAC/LIS/E=D OBUFP
$MAC/LIS/E=D OUT1
$MAC/LIS/E=D OUT11
$MAC/LIS/E=D OUT4
$MAC/LIS/E=D RSCAN
$MAC/LIS/E=D SCAN
$MAC/LIS/E=D SCAN2
$MAC/LIS/E=D SCAN7
$MAC/LIS/E=D SCANP
$MAC/LIS/E=D UNWIND
$!
$PLM SFOUND DEBUG
$!
$LIB/CREATE UTIL -
BIT,COMP1,COMP2,COMP3,COMP6,FILL,FMOVE,-
OBUFP,OUT1,OUT11,OUT4,RSCAN,SCAN,SCAN2,-
SCAN7,SCANP,UNWIND,-
SFOUND
$SET NOVERIFY