DataMuseum.dk

Presents historical artifacts from the history of:

Philips Data Systems

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Philips Data Systems

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download

⟦e15c30a16⟧

    Length: 27100 (0x69dc)
    Notes: pts_type(UF)
    Names: »SYSMAC.UF«

Derivation

└─⟦f45ea3bc3⟧ Bits:30009713 Philips computer tape "WSM"
    └─⟦this⟧ »WSM:PROC/SYSMAC.UF« 

PTS(SC)

         IDENT  SYSMAC
MACRO EQU 
$     MACRO EQU;
	EJECT




****************************************
** NOTE THAT THIS SYSMAC IS ONLY FOR: **
**    WSM CREATOR AND UTILITIES       **
**                                    **
** LATEST UPDATING: 1985-09-01  BY:CJ **
****************************************
	EJECT
**
**  WSM FUNCTION CODES
**

WOPEN	EQU	/0000 
WATTCH	EQU	/0100
WRCIVE	EQU	/0200
*UNPCK   EQU       -
WMSG	EQU	/0300
WSEND	EQU	/0400 
WPRINT	EQU	/0500
WCLOSE	EQU	/0600
WSAVE	EQU	/0700 
WDLETE	EQU	/0800
WFATTR	EQU	/0900
WCODE	EQU	/0A00 
WFID	EQU	/0B00
 EJECT

**
**  WSM SYSTEM PARAMETERS 
**

TFP	EQU	1	CONDITIONAL ASSEMBLY FOR TFP PACKAGE
CPU	EQU	857 

POLSIZ	EQU	248	SIZE OF POOL UNITS IN THE POOL 
POLDIS	EQU	6	USER DISPLACEMENT IN POOL-UNITS
PADLEN	EQU	12	LENGTS OF POOL-ADM-DATA 
FIDSIZ	EQU	4	SIZE OF FIELD IDENTITY 

** SCRSIZ & EKOCHR MOVED 1981-09-07 TO W:INIT **

**
**  OPTIONAL DEVICES
**

PRTDEV	EQU	12	=12 IF PRINT DEVICE IN SYSTEM, ELSE =0
INPDEV	EQU	0	=12 IF OTHER INPUT DEVICE THAN KEYBOARD ...
			... IN SYSTEM, ELSE =0 

**
**  BUFFER SIZES
**

** MOVED 1981-08-04 TO W:INIT **
	EJECT

**
**  DISPLACEMENTS IN ECB
**

ECB:FC	EQU	0
ECB:BA	EQU	2
ECB:RL	EQU	4
ECB:EL	EQU	6
ECB:RC	EQU	8
ECB:CW	EQU	10 
	EJECT

**
**  ORDERS TO THE POOL & FILE HANDLER 
**

PF:RD	EQU	/01	READ
PF:GET	EQU	/02	GET
PF:SCH	EQU	/04	SEARCH 
PF:WRT	EQU	/05	WRITE
PF:CLO	EQU	/08	CLO
PF:OFR	EQU	/10	LOCK 
PF:RLS	EQU	/20	RELEASE
PF:DLT	EQU	/40	DELETE 
PF:OPN	EQU	/80	OPEN 
NEXT	EQU	/0100	NEXT 
PREV	EQU	/0200	PREVIOUS 
INDEX	EQU	/0400	BY INDEX
ALL	EQU	/0800	ALL ON LRU QUE
NOWAIT	EQU	/1000	USED FOR READ WITH NOWAIT
	EJECT
**
**  DISPLACEMENTS IN THE POOL & FILE HANDLER COM. AREA
**

PF:BF1	EQU	0	ADDRESS TO BUFFER 1
PF:BF2	EQU	PF:BF1+2	ADDRESS TO BUFFER 2 
PF:TYP	EQU	PF:BF2+3	TYPE OF DATA
PF:NAM	EQU	PF:TYP+1	IDENTIFICATION
**
**           THIS PART OF THE COM. AREA IS THE ECB
**
PF:ECB	EQU	PF:NAM+6	START OF THE ECB
PF:FNR	EQU	PF:ECB+1	FILE NUMBER 
PF:IOB	EQU	PF:FNR+1	ADDRESS TO THE I/O-BUFFER 
PF:RLN	EQU	PF:IOB+2	REQUESTED LENGTH
PF:ELN	EQU	PF:RLN+2	EFFECTIVE LENGTH
PF:RET	EQU	PF:ELN+2	RETURN CODE 
PF:CW1	EQU	PF:RET+2	CONTROL WORD 1
PF:CW2	EQU	PF:CW1+2	CONTROL WORD 2
**
**           THIS PART OF THE COM. AREA IS FOR THE FPB
**
PF:FIL	EQU	PF:CW2+2	THE FILE NAME 
PF:VOL	EQU	PF:FIL+8	THE VOLUME NAME 
PF:RN1	EQU	PF:VOL+6	RECNO 1 
PF:RN2	EQU	PF:RN1+2	RECNO 2 
PF:END	EQU	PF:RN2+2 
	EJECT
**
** LAYOUT OF POOL-FREE-SPACE AREA 
**
PP:CON	EQU	0	NO OF FREE UNITS IN THIS AREA
PP:LEN	EQU	PP:CON+2	LENGTH OF THIS AREA 
PP:NAM	EQU	PP:LEN+2	NAME OF THIS AREA 
PP:BIT	EQU	PP:NAM+2	FREE-SPACE INDICATOR BITS 
**
	EJECT
**
** LAYOUT OF FREE-SPACE ON DISC 
**
DS:TYP	EQU	0	TYPE = "FS"
DS:LK1	EQU	DS:TYP+2	LINK FORWARD  1 
DS:LK2	EQU	DS:LK1+2	 -  "  -      2 
DS:NUM	EQU	DS:LK2+2	NUMBER OF RECORDS 
DS:NOF	EQU	DS:NUM+2	NUMBER OF FREE RECORDS
DS:FI1	EQU	DS:NOF+2	FIRST REL.RECNO 
DS:FI2	EQU	DS:FI1+2	 USED AS REC.BASE 
DS:REL	EQU	DS:FI2+2	RELATIV FR.SP.REC.
DS:PTR	EQU	DS:REL+1	FREE-SPACE POINTERS 

DS:RLN	EQU	256	RECORD LENGTH
**
**  POOL-ADMINSTRATION DATA 
**
PA:TYP	EQU	0	TYPE OF DATA IN THE UNIT 
PA:IDE	EQU	PA:TYP+1	NAME OF DATA
PA:FIL	EQU	PA:IDE+6	FILE NUMBER 
PA:NUM	EQU	PA:FIL+1	NUMBER OF USERS 
PA:SEG	EQU	PA:NUM+1	SEGMENT NUMBER
PA:UNI	EQU	PA:SEG+1	POOL-UNIT 
PA:LNK	EQU	PA:UNI+1	LINK TO NEXT
	EJECT
**
**  FILE-TABLE LAYOUT 
**
PT:FIL	EQU	0	FILENAME 
PT:VOL	EQU	PT:FIL+8	VOLUME NAME 
PT:FC	EQU	PT:VOL+6	FILE CODE
PT:CON	EQU	PT:FC+1	COMPULSURY COUNTER 
PT:OC	EQU	PT:CON+1	OPEN/CLOSE BYTE
PT:ACT	EQU	PT:OC+1	ACTIVE COUNTER 
PT:LEN	EQU	18	LENGTH OF ONE ENTRY 
PT:END	EQU	72	LENGT OF FILE-TABLE 

**
**  ORDER-DATA LAYOUT 
**
PO:ORD	EQU	0	ORDER
PO:TYP	EQU	PO:ORD+2	TYPE + NAME 
PO:FIL	EQU	PO:TYP+7	FILE TABLE NO. (0-3)
PO:LNK	EQU	PO:FIL+1	LINK TO NEXT ORDER
PO:LEN	EQU	12	LENGTH OF ONE ORDER 
PO:STA	EQU	4	START OF ORDERS
PO:END	EQU	256	LENGTH OF ORDER-TABLE
PO:RDY	EQU	/8000	ORDER EXECUTED 
PO:DLY	EQU	1	DELAY TIME 
	EJECT

**
**  KEYBOARD ECB AND PARAMETER BLOCK FOR ADVANCED READ
**

KB:CW2	EQU	ECB:CW+2 
KB:PBL	EQU	KB:CW2+2	PARAMETER BLOCK LENGTH
KB:EKO	EQU	KB:PBL+1	ECHO CHARACTER (/00 => ORDINARY ECHO) 
KB:PW	EQU	KB:EKO+1	PARAMETER WORD 
KB:CUR	EQU	KB:PW+2	CURSOR POSITION WORD 
KB:SHB	EQU	KB:CUR+2	SHIFT BUFFER BYTE 
KB:CND	EQU	KB:SHB+1	CURRENT # DECIMALS
KB:PL	EQU	KB:CND+1	PICTURE LENGTH 
KB:CNI	EQU	KB:PL+1	CURRENT # INTEGERS OR CHARACTERS 
KB:IL	EQU	KB:CNI+1	INPUT LENGTH 
KB:POS	EQU	KB:IL+1	POSITION IN FIELD
KB:PNT	EQU	KB:POS+1	DECIMAL POINT STATUS WORD 
KB:MNI	EQU	KB:PNT+2	MAX # INTEGERS
KB:MND	EQU	KB:MNI+1	MAX # DECIMALS
KB:END	EQU	KB:MND+1 
	EJECT

**
**  WS:TCA
**  WSM TASK CONTROL AREA 
**

TC:TID	EQU	0	WSM TASK ID
TC:FC	EQU	TC:TID+2	PREVIOUS FUNCTION CODE 
TC:SCR	EQU	TC:FC+1	BITS FOR WATTCH, WRCIVE ETC.:
			BIT 0: 
			- DURING WRCIVE: 
			.    = 1 IF INPUT BUFFER CHANGED BY DUPLICATION
			.        OR VALIDATION OR IF MINUS KEY USED
			BIT 1: 
			- DURING WRCIVE: 
			.    = 1 IF NEGATIVE INPUT 
			BIT 2: 
			- DURING WRCIVE: 
			.    = 1 IF FIELDLIST FIELD NOT IN SECTION 
			BIT 3: 
			- DURING WRCIVE: 
			.    = 1 IF PB BUFFER IS FULL
			*******
			BIT 4: 
			- DURING WRCIVE: 
			.    = 1 IF VALIDATION AFTER ENTER KEY 
			BIT 5: 
			- DURING WATTCH: 
			.    = 1 IF WANTED SECTION IS BEFORE ... 
			.        ATTACHED SECTION IN SST 
			BIT 6 = 1 IF WATTCH WITHOUT DISPLAY
			BIT 7 =1 IF WANTED PAGE IS ON SCREEN 
	EJECT

TC:MSC	EQU	TC:FC+2	MISCELLANEOUS: 
			BIT 0-1: 
			-   NOT USED 
			*******
			BIT  2:
			-    = 1 IF LOOP DETECTOR IS RUNNING 
			BIT  3:
			-    = 1 IF BASIC DEBUGGER IS ON 
			BIT  4:
			-    =1 IF WMSG ON HLP LINE (2 MSG LINES)
			BIT  5:
			-    =1 IF WMSG ON ERROR LINE
			BIT  6:
			-   =1 IF ERROR MSG ON ERROR LINE
			BIT  7:
			-   =1 IF EXT.PROMPT , GUID. MSG,
			.      WMSG ON HLP LINE OR SEC/FUN.
			BIT  8:
			-   = 1 IF ALL KEY USED
			BIT  9:
			-   = 1 IF CORRECTION AFTER ERROR HANDLING 
			BIT 10:
			-   = 1 IF LKM BLOCKING ON CURRENT SUBSCREEN 
			.     ( <=> CURSOR OFF ) 
			BIT 11:
			-   = 1 IF BLACK BACKGROUND
			*******
			BIT 12:
			-   = 1 IF VD82/83 (8 SUBSCREENS,
			.                   1 SYSTEM LINE) 
			BIT 13:
			-   NOT USED 
			BIT 14:
			-   = 1 IF PD85 ETC (ONE-LINE DISPLAYS)
			BIT 15:
			-   = 1 IF AUTO SKIP/DUP FLAG IS ON

	EJECT
** INFORMATION ABOUT TWO MESSAGELINES: ** 

TC:MSG	EQU	TC:MSC+2	SEE W:MESS AND W:MESG IN W:INIT 

** SUBSCREEN INFORMATION: **

TC:SZE	EQU	TC:MSG+2	SIZE OF SUBSCREEN 1 
TC:SIZ	EQU	TC:SZE+2	CURRENT SCREEN/SUBSCREEN SIZE 
TC:SUS	EQU	TC:SIZ+2	CURRENT SUBSCREEN NO. 
TC:LIN	EQU	TC:SUS+2	1:ST FREE LINE ON CURR. SCREEN/SUBSCREEN
			... FOLLOWED BY 1:ST FREE LINE OF
			... 9 SUBSCREENS 
TC:FRD	EQU	TC:LIN+11	DISPL. TO BE ADDED TO 1:ST FREE LINE 
			... WHEN HAVING SECTIONS ON MSG LINE ON OTHER
			... DISPLAYS THAN VD82 (RIGHT BYTE REQ.) 

** CURRENT FORMAT DEF INFORMATION: ** 

TC:FDC	EQU	TC:FRD+1	ADDR. TO FORMAT DEFINITION CODE 

** SST INFORMATION: **

TC:SST	EQU	TC:FDC+2	0. ADDR. TO 1:ST BYTE AFTER SST 
			2. "     "  CURRENT SECTION IN SST 
			4. "     "  LAST SECTION IN SST
			6. LARGEST SECTION SEQUENCE NUMBER IN USE
			8. SST ADDR. OF SECTION ON MSG LINE

	EJECT
** CURRENT SECTION INFORMATION: **

TC:FSC	EQU	TC:SST+10	ADDR. TO FORMAT SECTION CODE 
TC:CFC	EQU	TC:FSC+2	"     "  CURRENT DYN. FIELD CODE
			"     "  "       "    "     "    (REL) 
TC:DFD	EQU	TC:CFC+4	"     "  1:ST BYTE IN DFD 
TC:CFD	EQU	TC:DFD+2	ADDR. TO CURRENT DYN. FIELD DATA
TC:CFX	EQU	TC:CFD+2	INDEX OF CURRENT DYN. FIELD 
TC:KY1	EQU	TC:CFX+2	ADDRESS TO KEYTABLE 1.
TC:KTV	EQU	TC:KY1+2	ADDRESS TO BITMASK FOR KEYCHECKS
TC:CN1	EQU	TC:KTV+2	LOOP COUNTER - SECTION LEVEL
TC:CN2	EQU	TC:CN1+2	LOOP COUNTER - FIELD LEVEL

	EJECT
** WWI:S, ECB:S, BUFFER:S AND STACK: ** 

TC:IIE	EQU	TC:CN2+2	ADDR TO 1ST BYTE AFTER INPUT BUFFER 
TC:WWI	EQU	TC:IIE+2	ADDR. TO WWI:S, EQUAL TO ...
TC:IOE	EQU	TC:WWI	ADDR TO 1ST BYTE AFTER OUTPUT BUFFER
TC:STK	EQU	TC:IOE+2	ADDR TO THE STACK, WS:STK 
TC:PFB	EQU	TC:STK+2	POOL & FILE HANDLER COM. AREA ... 
TC:FIL	EQU	TC:PFB+PF:ECB	... INCLUDING DISC FILE PARAMETERS 
TC:IC	EQU	TC:PFB+PF:END	INTERTASK COM. ECB
TC:KB	EQU	TC:IC+14	KEYBOARD  ECB
TC:EKO	EQU	TC:KB+KB:END	ECHO DEVICE ECB 
TC:PRT	EQU	TC:EKO+PRTDEV	PRINT DEVICE ECB 
TC:INP	EQU	TC:PRT+INPDEV	OTHER INPUT DEVICE ECB 
	EJECT

**
**  WSM PARAMETER BLOCK 
**

PB:FC	EQU	TC:INP+12	WSM FUNCTION CODE 
PB:FOR	EQU	PB:FC+2	CURRENT FORMAT DEFINITION NAME 
PB:SEC	EQU	PB:FOR+6	CURRENT FORMAT SECTION NAME 
PB:SSN	EQU	PB:SEC+6	CURRENT SECTION SEQUENCE NUMBER 
PB:SUS	EQU	PB:SSN+2	CURRENT SUBSCREEN 
PB:INP	EQU	PB:SUS+1	INPUT ALLOWED, =0 IF YES, =1 IF NO
PB:FID	EQU	PB:INP+1	CURRENT FIELD IDENTITY
PB:FNO	EQU	PB:FID+4	FIELD NUMBER
PB:RC	EQU	PB:FNO+2	RETURN CODE
PB:KID	EQU	PB:RC+2	KEY ID 1 & 2 
PB:XIT	EQU	PB:KID+4	EXIT ROUTINE NUMBER 
PB:EBL	EQU	PB:XIT+2	EFFECTIVE LENGTH OF BUFFER CONTENTS 
PB:MBL	EQU	PB:EBL+4	MAXIMUM LENGTH OF BUFFER CONTENTS 
PB:BLO	EQU	PB:MBL+2	TYPE OF BUFFER LAYOUT 
PB:PRFC	EQU	PB:BLO+1	PRINTER DEVICE FILE CODE 
PB:BUF	EQU	PB:PRFC+1	PARAMETER BLOCK BUFFER 
	EJECT

**
**  DISPLACEMENTS IN SECTION SEQUENCE TABLE ELEMENTS
**

*                 0                     SECTION DFD ADDRESS 
SS:DFD	EQU	2	SECTION DFD SIZE 
SS:SCR	EQU	SS:DFD+2	SECTION ON SCREEN INDICATION
SS:TYP	EQU	SS:SCR+1	SECTION TYPE
SS:SS	EQU	SS:SCR+2	SUBSCREEN & SECTION SEQUENCE NO. 
SS:LIN	EQU	SS:SS+2	(SUB-)SCREEN START LINE & NO. OF LINES 
			1:ST & LAST+1 LINE SHOWN 
SS:CFX	EQU	SS:LIN+4	CURRENT DYNAMIC FIELD INDEX 
SS:SEC	EQU	SS:CFX+2	SECTION NAME
SS:LEN	EQU	SS:SEC+6	LENGTH OF SST ELEMENT 


**
** DISPLACEMENTS IN WSM WORK ITEMS OVERHEAD 
**

WWI:NF	EQU	0	NO OF FAST CHOISE SECTION WWI:S
WWI:LF	EQU	WWI:NF+1	LENGTH OF ONE FAST CHOISE SECT WWI
WWI:NN	EQU	WWI:LF+1	NO OF NUMERIC WWI:S 
WWI:LN	EQU	WWI:NN+1	LENGTH OF ONE NUMERIC WWI 
WWI:AN	EQU	WWI:LN+1	ADDRESS TO FIRST NUMERIC WWI
WWI:NA	EQU	WWI:AN+2	NO OF ALPHANUMERIC WWI:S
WWI:LA	EQU	WWI:NA+1	LENGTH OF ONE ALPHANUMERIC WWI
WWI:AA	EQU	WWI:LA+1	ADDRESS TO FIRST ALPHANUMERIC WWI 
WWI:LO	EQU	WWI:AA+2	LENGTH OF WWI OVERHEAD
	EJECT

**
**  FORMAT DEFINITION CODE
**

FD:FOR	EQU	0	FORMAT DEFINITION NAME 
FD:ISN	EQU	FD:FOR+6	INTIAL SECTION NAME 
FD:DSK	EQU	FD:ISN+6	# DISC SECTORS (BITS 0-7) 
FD:FCS	EQU	FD:DSK+4	LIST OF FAST CHOICE SECTION NAMES 
	EJECT

**
**  FORMAT SECTION CODE 
**

**  SECTION TYPES 

RWS	EQU	1	REMOVABLE WITH SCROLLING
RWP	EQU	2	REMOVABLE WITH PAGING 
FIX	EQU	4	FIXED 
FOB	EQU	RWS	FIXED ON BOTTOM LINES OF SCREEN 
FONP	EQU	RWP	FIXED ON TOP OF NEW PAGE 
TEMP	EQU	8	TEMPORARY
SECMSK	EQU	/F	MASK ISOLATING TYPE BITS

**  SECTION OVERHEAD

SO:SEC	EQU	0	SECTION NAME 
SO:PSW	EQU	SO:SEC+6	( PASSWORD )
SO:DSK	EQU	SO:PSW+6	NO. OF DISC SECTORS 
SO:ONO	EQU	SO:PSW+7	OBJECT CODE VERSION 
SO:VNO	EQU	SO:DSK+4	SECTION VERSION NO. & TYPE
SO:SIZ	EQU	SO:VNO+2	DEFINED SECTION SIZE, ROWS & COLUMNS, AND ... 
			... EFFECTIVE SECTION SIZE 
SO:DFD	EQU	SO:SIZ+4	DFD SIZE
SO:SFC	EQU	SO:DFD+2	REL. ADDR TO STATIC FIELDS
SO:PP	EQU	SO:SFC+2	"    "    "  PICTURE POOL
SO:DFC	EQU	SO:PP+2	"    "    "  DYNAMIC FIELDS
SO:NDF	EQU	SO:DFC+2	DEC POINT OR COMMA & NO. OF DYN. FIELDS 
SO:BGA	EQU	SO:NDF+4	BACKGROUND DEFAULT ATTRIBUTES 
SO:SFA	EQU	SO:BGA+1	STATIC FIELD DEFAULT ATTRIBUTES 
SO:DFA	EQU	SO:SFA+1	DYN. FIELD DEFAULT ATTRIBUTES 
SO:MES	EQU	SO:DFA+4	DEFAULT GUIDING MESSAGE 
	EJECT

**  STATIC FIELDS 

SF:DEC	EQU	/1F	LARGEST DECORATION BYTE
SF:SPA	EQU	/80	COMPRESSED SPACES
SF:DF	EQU	/FB	DYNAMIC FIELDS
SF:HL	EQU	/FC	HEADER LINES
SF:EOL	EQU	/FD	END OF LINE
SF:EOS	EQU	/FE	END OF SECTION 
SF:EOP	EQU	/FF	END OF POOL UNIT 
	EJECT

**  DYNAMIC FIELDS

			DYNAMIC FIELD TABLE DISPLACEMENTS

DF:FID	EQU	0	FIELD IDENTITY 
DF:COD	EQU	DF:FID+4	FIELD CODE ADDR: POOL & REL POOL ADDR 
DF:DAT	EQU	DF:COD+2	FIELD DATA DISPL. EXCL. TEMP. DECORATIONS ETC.
DF:TLN	EQU	DF:DAT+2	FIELD TABLE ELEMENT LENGTH

			DYNAMIC FIELD CODE DISPLACEMENTS 

DF:ALN	EQU	0	ATTRIBUTE AREA LENGTH INCL. OPTIONAL PARTS 
DF:SCR	EQU	DF:ALN+2	REL. POSITION IN SECTION
DF:FLN	EQU	DF:SCR+2	MAX. EFFECTIVE & EDITED LENGTH
DF:TYP	EQU	DF:FLN+2	NUM- & ALPHANUM DEPENDANT INFORMATION 
DF:INP	EQU	DF:TYP+2	BITS CONCERNING INPUT HANDLING
DF:DEC	EQU	DF:INP+2	DECORATION BITS 
DF:OPT	EQU	DF:DEC+2	START OF OPTIONAL PART

			OPTIONS: 

DF:VAL	EQU	1	VALIDATION 
DF:ACC	EQU	2	ACCUMULATION 
DF:DUP	EQU	3	DUPLICATION ORIGIN 
DF:AM	EQU	4	APPLICATION MESSAGE 
DF:IFC	EQU	5	FILE CODE, OTHER INPUT DEVICE
DF:DEF	EQU	6	DEFAULT VALUE
DF:OUT	EQU	7	OUTPUT PRINT POSITION
DF:GM	EQU	15	GUIDING MESSAGE
	EJECT

**********************************************************************
**                WSM VALIDATION STATEMENT TYPES                    **
**********************************************************************

VS:ALE	EQU	/00	ALPHANUM LET EXCL. LET 
VS:ALI	EQU	/01	ALPHANUM LET INCL. LET 
VS:NLE	EQU	/02	NUMERIC  LET EXCL. LET 
VS:NLI	EQU	/03	NUMERIC  LET INCL. LET 
VS:GO	EQU	/04	GO TO 
VS:GOT	EQU	/05	GOTO 
VS:IFL	EQU	/06	IF <REL. EXPR.> THEN LINENO
VS:IFS	EQU	/08	IF <REL. EXPR.> THEN STATEMENT 
VS:OGO	EQU	/0A	ON <EXPR.> GO TO LINENUMBERS 
VS:OGT	EQU	/0B	ON <EXPR.> GOTO  LINENUMBERS 
VS:CAL	EQU	/0C	CALL 
VS:SEC	EQU	/0E	SECT 
VS:ATT	EQU	/10	ATTR 
VS:STO	EQU	/12	STOP 
VS:EXI	EQU	/14	EXIT 
VS:ERR	EQU	/16	ERR
VS:WAR	EQU	/18	WARN 
VS:REM	EQU	/1A	REM
VS:EMP	EQU	/0C	EMPTY
	EJECT

**********************************************************************
**                VALIDATION OPERATOR EQUATES                       **
**********************************************************************

VO:EEX	EQU	1	END OF EXPRESSION
VO:AEQ	EQU	2	= , ALPHANUMERIC COMPARISON
VO:AGE	EQU	3	>=, "
VO:AGT	EQU	4	> , "
VO:ALE	EQU	5	<=, "
VO:ALT	EQU	6	< , "
VO:ANE	EQU	7	<>, "
VO:NEQ	EQU	8	= , NUMERIC COMPARISON 
VO:NGE	EQU	9	>=, "
VO:NGT	EQU	/0A	> , "
VO:NLE	EQU	/0B	<=, "
VO:NLT	EQU	/0C	< , "
VO:NNE	EQU	/0D	<>, "
VO:CON	EQU	/0E	CONCATENATE
VO:SUS	EQU	/0F	SUBSTRING
VO:STR	EQU	/10	STR FUNCTION 
VO:UPL	EQU	/11	UNARY PLUS 
VO:UMI	EQU	/12	"     MINUS <=> NEGATE 
VO:ADD	EQU	/13	ADD
VO:SUB	EQU	/14	SUBTRACT 
VO:DIV	EQU	/15	DIVIDE 
VO:MUL	EQU	/16	MULTIPLY 
VO:ABS	EQU	/17	ABS FUNCTION 
VO:INT	EQU	/18	INT "
VO:SGN	EQU	/19	SGN "
VO:TIM	EQU	/1A	TIM "
VO:DAY	EQU	/1B	DAY "
VO:SYS	EQU	/1C	SYS "
VO:LEN	EQU	/1D	LEN "
VO:NUM	EQU	/1E	NUM "
VO:DAT	EQU	/1F	DAT "
VO:CDV	EQU	/20	CDV "
VO:POS	EQU	/21	POS "
VO:PAR	EQU	/22	PARANTHESIS
	EJECT

**********************************************************************
**                EQUATES TO THE DIFFERENT KEYTABLES                **
**********************************************************************

**
**  KEYTABLE 1 & 2
**

K1:CUP	EQU	1
K1:CDW	EQU	K1:CUP+1 
K1:TFD	EQU	K1:CDW+1 
K1:TBD	EQU	K1:TFD+1 
K1:PRT	EQU	K1:TBD+1 
K1:LIN	EQU	K1:PRT+1 
K1:HLP	EQU	K1:LIN+1 
K1:ARI	EQU	K1:HLP+1 
K1:ASD	EQU	K1:ARI+1 
K1:CLR	EQU	K1:ASD+1 
K1:SEC	EQU	K1:CLR+1 
K1:CR	EQU	K1:SEC+1
K1:DUP	EQU	K1:CR+1
K1:ENT	EQU	K1:DUP+1 
K1:FUN	EQU	K1:ENT+1 
K1:CAN	EQU	K1:FUN+1 
K1:USR	EQU	K1:CAN+1	K1:USR & ABOVE ARE USER DEFINED KEYS
	EJECT
**
** KEYTABLE 3 
**

K3:INS	EQU	1
K3:DEL	EQU	K3:INS+1 
K3:TFD	EQU	K3:DEL+1 
K3:TBD	EQU	K3:TFD+1 
K3:PRT	EQU	K3:TBD+1 
K3:CLR	EQU	K3:PRT+1 
K3:CAN	EQU	K3:CLR+1 
K3:USR	EQU	K3:CAN+1 

**
** KEYTABLE 4 
**

K4:CLR	EQU	1
K4:ENT	EQU	K4:CLR+1 
K4:CAN	EQU	K4:ENT+1 
K4:USR	EQU	K4:CAN+1 

**
**  KEYTABLE 5 & 6
**

K5:CLR	EQU	1
K5:CAN	EQU	K5:CLR+1 
K5:USR	EQU	K5:CAN+1	K5:USR & ABOVE ARE USER DEFINED KEYS
K6:OV	EQU	K5:CAN+1
K6:USR	EQU	K6:OV+1	K6:USR & ABOVE ARE USER DEFINED KEYS 
	EJECT
$     MEND; 
EOS 
MACRO RC
$     MACRO RC; 

**********************************************************************
**                WSM RETURN CODES                                  **
**********************************************************************


** LATEST UPDATING: 1983-04-25  BY: GM *


RC:OK	EQU	0	OK
RC:RTY	EQU	1	OK, BUT ALL DATA NOT TRANSFERRED, RETRY
RC:TRU	EQU	2	OK, BUT TRUNCATION HAS OCCURED 
RC:KEY	EQU	3	OK, NO DATA TRANSFERRED, KEYLOCK 
RC:EXI	EQU	4	EXIT ROUTINE REQUEST 
RC:EWA	EQU	5	EXTERNAL WARNING 
RC:EER	EQU	6	EXTERNAL ERROR 
RC:VCU	EQU	7	VALIDATION FROM CURRENT FIELD AND ON 
RC:ORM	EQU	7	ORIGIN MEDIUM > 1
RC:INA	EQU	10	INPUT NOT ALLOWED 
RC:DN1	EQU	11	DYN. FIELD NOT FOUND
RC:DN2	EQU	12	AS RC:DN1 BUT ALL OTHER DATA TRANSFERRED
RC:DN3	EQU	13	AS RC:DN1 BUT LACK OF BUFFER SPACE
RC:CNF	EQU	20	SECT/DEF/TAB NOT FOUND
RC:NOP	EQU	21	FORMAT NOT OPENED 
RC:NAT	EQU	22	FORMAT SECTION NOT ATTACHED 
RC:ISS	EQU	23	ILLEGAL SECTION SEQUENCE NO.
RC:PNX	EQU	24	PREV./NEXT SECTION NOT FOUND
RC:ISU	EQU	25	ILLEGAL SUBSCREEN NO. 
RC:SCR	EQU	26	NO SCREEN SIZE AVAILABLE
RC:OLD	EQU	27	OLD SECTION FOUND 
RC:ISE	EQU	28	ILLEGAL SECTION REFERENCE 
RC:SEC	EQU	29	ILLEGAL ATTACH
RC:POL	EQU	30	POOL ERROR
RC:STO	EQU	31	SECTION SEQ. TABLE OVERFLOW 
RC:SNO	EQU	32	SECTION SEQ. NUMBER OVERFLOW
RC:LRU	EQU	34	DELETE ON LRU-QUE / ADM.DATA
RC:DER	EQU	40	DISC ERROR
RC:KER	EQU	41	KEYBOARD I/O-ERROR
RC:OER	EQU	42	OTHER DEVICE I/O-ERROR
RC:EJN	EQU	45	PRINT WITHOUT EJECT/TOP-OF-FORM 
RC:EJO	EQU	46	EJECT/TOP-OF-FORM ONLY
RC:VER	EQU	50	VALIDATION ERRORS:
RC:VOF	EQU	'01'	- VALIDATION WORK AREA OVERFLOW 
RC:VSE	EQU	'02'	- VALIDATION STOP TARGET ERROR
RC:VWW	EQU	'03'	- WSM WORK ITEM NOT FOUND 
RC:VOB	EQU	'04'	- VALIDATION OBJ. CODE ERROR
RC:VDZ	EQU	'05'	- VALIDATION DIVISION BY ZERO 
RC:LP2	EQU	'06'	- VALIDATION LOOP WITHIN FIELD
RC:LP1	EQU	51	LOOP ON SECTION LEVEL 
RC:PBI	EQU	60	PAR. BLOCK HOLDES ILLEGAL VALUE 
RC:DIV	EQU	61	FIELD NOT FOUND IN DATA DIVISION
RC:LKE	EQU	62	LKM REQUEST ERROR 
$     MEND; 
EOS 
MACRO C 
$     MACRO  C  TXT;
**                    $TXT.                                         **
$     MEND; 
EOS 
MACRO FRAME 
$     MACRO  FRAME; 
**********************************************************************
$     MEND; 
EOS 
MACRO CVERS 
$     MACRO  CVERS; 
**********************************************************************
**                                                                  **
**                    CREDIT INTERPRETER VERSION:                   **
TEST	EQU	1
NOTEST	EQU	0
PARM	EQU	TEST 
**                                                                  **
**********************************************************************
$     MEND; 
EOS 
MACRO MOD 
$     MACRO  MOD  NAME,AUT,DATE,CONT; 
 IDENT $NAME. W,REL=2.3,850901,870155940230 



**********************************************************************
**                                                                  **
**  $NAME.            LATEST UPDATING:  $DATE.    BY:  $AUT.        **
**                                                                  **
**  DESCRIPTION:      $CONT.                                        **
$     MEND; 
EOS 
MACRO DUMMY 
$     MACRO  DUMMY; 
******  STANDARD IDENT: 
 IDENT $NAME. $DATE.  /$AUT.
******  CREDIT TEST INTERPRETER IDENT:
 IDENT $NAME. P,REL=12.1,811102,870136941200
******  CREDIT PROD INTERPRETER IDENT:
 IDENT $NAME. T,REL=12.1,811102,870137141200
******  WSM INTERPRETER IDENT:
 IDENT $NAME. W,REL=12.1,811111,870155941200
$     MEND; 
EOS 
MACRO HIST
$     MACRO  HIST  AUT,DATE,CONT; 
**  $DATE. /$AUT.    $CONT. 
$     MEND; 
EOS 
MACRO LABEL 
$     MACRO  LABEL  NAME,CONT;

$NAME.   EQU      * 
**********************************************************************
**                                                                  **
**  $NAME.            $CONT.                                        **
$     MEND; 
EOS 
MACRO RUT 
$     MACRO  RUT  NAME,CONT;
	EJECT

$NAME.   EQU      * 
**********************************************************************
**                                                                  **
**  $NAME.            $CONT.                                        **
$     MEND; 
EOS 
MACRO OUTP
$     MACRO  OUTP TXT;
**  OUTPUT:           $TXT.                                         **
$     MEND; 
EOS 
MACRO INP 
$     MACRO  INP TXT; 
**                                                                  **
**  INPUT:            $TXT.                                         **
$     MEND; 
EOS 
MACRO CRUT
$     MACRO  CRUT TXT;
**  CALLED ROUTINES:  $TXT.                                         **
$     MEND; 
EOS 
MACRO DREG
$     MACRO  DREG TXT;
**  DESTROYED REG.S:  $TXT.                                         **
$     MEND; 
EOS 
MACRO DMEM
$     MACRO  DMEM TXT;
**  DESTROYED MEM. :  $TXT.                                         **
$     MEND; 
EOS 
MACRO AIEQU1
$     MACRO AIEQU1; 
	EJECT
**
** WSM-APPLICATION INTERFACE - PARAMETER BLOCK
**

* LATEST UPDATING: 1981-08-25   BY: ME

FIDSIZ	EQU	4	SIZE OF FIELD IDENTITY 

PBLGTH	EQU	46	PARAMETER BLOCK LENGTH
WNOLGH	EQU	1	LENGTH OF ONE WORK BLOCK NUMBER
WBLNOS	EQU	0	WORK BLOCK NUMBER AREA 
FILL01	EQU	WBLNOS+5	FILLER
FUNC	EQU	FILL01+1	FUNCTION CODE 
FORMAT	EQU	FUNC+2	FORMAT NAME 
SECT	EQU	FORMAT+6	SECTION NAME
SEQNO	EQU	SECT+6	SECTION SEQUENCE NUMBER
SUBSCR	EQU	SEQNO+2	SUBSCREEN NUMBER 
INPAWD	EQU	SUBSCR+1	INPUT ALLOWED CODE
CURFID	EQU	INPAWD+1	CURRENT FIELD-ID
FIELNO	EQU	CURFID+FIDSIZ	FIELD NUMBER 
RETCOD	EQU	FIELNO+2	RETURN CODE 
KEYID1	EQU	RETCOD+2	KEY IDENTIFICATION 1
KEYID2	EQU	KEYID1+2	 "        "        2
EXITNO	EQU	KEYID2+2	EXIT ROUTINE NUMBER 
RECLGH	EQU	EXITNO+2	RECEIVED DATA LENGTH
BUFLGH	EQU	RECLGH+3	BUFFER LENGTH 
BUFLAY	EQU	BUFLGH+3	BUFFER LAYOUT CODE
PRINFC	EQU	BUFLAY+1	PRINTER DEVICE FILE CODE
BUFFER	EQU	WBLNOS+PBLGTH	BUFFER 
	EJECT
$     MEND; 
EOS 

Full view