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

⟦12c847657⟧

    Length: 17460 (0x4434)
    Notes: pts_type(SC)
    Names: »DEUNPF.SC«

Derivation

└─⟦48601905a⟧ Bits:30009668 Philips computer tape "600121"
    └─⟦this⟧ »S:DE/DEUNPF.SC« 
└─⟦5c22ed822⟧ Bits:30009675 Philips computer tape "600209"
    └─⟦this⟧ »DEN10/DEUNPF.SC« 
└─⟦79fbed147⟧ Bits:30009697 Philips computer tape "600414"
    └─⟦this⟧ »S:DE/DEUNPF.SC« 
└─⟦bf903a231⟧ Bits:30009665 Philips computer tape "600109"
    └─⟦this⟧ »DEN10/DEUNPF.SC« 
└─⟦d2a299635⟧ Bits:30009698 Philips computer tape "600415"
    └─⟦this⟧ »S:DE/DEUNPF.SC« 

PTS(SC)

	IDENT	DEUNPF	REL 10.0 80-04-11 
			80-02-19/JAER
* 
*       THIS PROGRAM UNPACKS NEXT FIELD 
*       FROM CURRENT ATTACHED FORMAT AND
*       MOVES THE UNPAKED VALUES IN THEIR 
*       CORRESPONDING ITEMS. THIS COULD BE
*       USABLE IN CORRECTION MODE AND PRINT 
*       OF THE FORMAT GENERATION. 
* 
*        -FORMAL PARAMETERS : BUFPOS = CURRENT BUFFER POSITION
*                             OPT    = 1 = CORRECTION MODE
*                                    = 2 = PRINTOUT MODE
*        -INPUT VARIABLES  :  PINDCB  = FORMAT BUFFER INDEX 
*                             BIN1  = FORMAT BUFFER POINTER 
*                             BIN10 = FIELDNR 
* 
*        -WORK VARIABLES   :
*                             FBIN1 = NUMBER OF CONVERTED POSITIONS 
*                             BOOL9 = F FKI NOT FOUND YET 
*                                   = T FKI FOUND 
* 
*        -OUTPUT VARIABLE  : DEBINW2= 0  OK 
*                                   = 1  END OF FORMAT FOUND
*                            BIN12  = NUMBER OF LAYOUT CHARACTERS 
*                        FMTWK(W1) = NUMBER OF VALIDATION CHARACTERS
*                        FMTWK(W2) = NUMBER OF GENERATION CHARACTERS
*                        FMTWK(W3) = NUMBER OF ACCUMULATION CHARACTERS
*                        FMTWK(W4) = NUMBER OF DUPLICATION CHARACTERS 
* 
*          2-BYTE ADRESSING COMPATIBLE
**********************************************************************
	DDUM	DEDDIV
	PDIV 
	ENTRY	DEUNPF	UNPACK NEXT FIELD 
* 
	ENTRY	FEDIT	FORMAT EDITING 
* 
	ENTRY	DEUNPL	UNPACK NEXT LINE
	EXT	NOPOOL	NUMBER OF USED POOLS
	EXT	BINCON	CONVERT BIN=>STRG 
	EXT	RCNTRL	READ FIELD CONTROL WORD 
	EXT	FMOVE	FORMAT MOVE
	EXT	GETFWD	GETFIELD FROM CURRENT 
	EXT	ADJUST 
* 
*       EQUATES 
* 
ALPHA	EQU	X'00'	ALPHANUMERIC
SCHK	EQU	X'03'	SPECIAL CHECK
	EJECT
DEUNPF	PROC	BUFPOS,OPT
	CLEAR	BOOL9	NO FKI FOUND 
UNPM
	MOVE	BIN16,W3	MATCHINDEX:=3
	MATCH	FDIR,BIN16,W16,BPOOL(PINDCB),BUFPOS,W1	MATCH CHARS 
	SWITCH 
	IB	BIN16,UNPELB,UNPELB,UNP3,UNP4,	1-4	C
		UNPELB,UNPELB,UNPELB,UNPELB,UNP9,	5-9	C 
		UNP10,UNP11,UNPELB,UNP13,UNP13,	10-14	C 
		UNP13,UNP13,UNP13,UNP13	15
UNPELB
	B	UNPE	END OF FORMAT 
	EJECT
UNP3
	MOVE	BIN15,W0
	ADD	BUFPOS,W1	NEXT BUFPOS
	XCOPY	BIN15,W1,W1,BPOOL(PINDCB),BUFPOS	GET NUMB OF CHARS 
	ADD	BUFPOS,BIN15	ADJUST FOR CHARS
UNP10			(FSL) 
	ADD	BUFPOS,W1	NEXT BUFPOS
	B	UNPM	GO ON 
UNP4			(FTAB) 
	ADD	BUFPOS,W2
	B	UNPM	GO ON 
	EJECT
UNP9			(FLINK)
	PERF	UNPFLK,BUFPOS	UNPACK FLINK INIT NEXT BUFFER 
	TBF	BOOL7,UNP9A	JUMP IF NOT CORR-MODE
	MOVE	DEBINW3,W0	WORK:=0
	XCOPY	DEBINW3,W1,W1,RPOOL(PINDFR),W8	LOAD LINK NEXT
	XCOPY	RPOOL(PINDFR),W0,W1,PICSTR,W5	'X'-FREEMARK 
	MOVE	PINDFR,DEBINW3	NEXT BUFFER
	SUB	WORK(W4),W1	REDUCE NUMB OF OLD FPOOLS
	PERF	NOPOOL	NUMBER OF USED POOLS 
	DISPLAY	2,W2,W2	DISPLAY DITO WHILE CHANGED 
UNP9A 
	TBT	BOOL9,UNPMF	JUMP IF FKI FOUND
	B	UNPM	GO ON 
UNP11			(FNL) 
	ADD	BUFPOS,W1
	SET	BOOL5	END OF LINE
	B	U13I 
	EJECT
UNP13			(FKI) 
	SET	BOOL9	FKI FOUND
	SUB	BIN16,W13
	ADD	BUFPOS,W1	NEXT BUFPOS
	MOVE	BIN15,W0
	XCOPY	BIN15,W1,W1,BPOOL(PINDCB),BUFPOS	GET TABPOS
	CBE	BIN15,W1,UNPELB	JUMP IF DUMMY-FIELD
	MOVE	FDVBCD(W5),BIN15	STORE FIELDPOS 
	MOVE	FDVBCD(W4),BIN10	STORE FIELDNR
	ADD	BUFPOS,W1	NEXT BUFPOS
	MOVE	BIN15,W0	WORK:=0
	IB	BIN16,U13Y,U13X,U13Z,U13Y,U13X	JUMP ON FKI-CODE 
	B	U13Z 
U13X
	XCOPY	BIN15,W0,W2,BPOOL(PINDCB),BUFPOS 
	ADD	BUFPOS,W2	ADJUST NEXT BUFFPOS
	B	U13Z 
U13Y
	XCOPY	BIN15,W1,W1,BPOOL(PINDCB),BUFPOS 
	ADD	BUFPOS,W1	ADJUST NEXT BUFPOS 
U13Z
	MOVE	SPEC,BIN15	STORE APPLE
	CBL	BIN16,W3,U13A	JUMP IF NO DUPL
	MOVE	BIN15,W1
	CALL	FMOVE,STRG10A,IND1	FETCH INDEX-ITEMADRESS=1 
	MATCH	STRG10A,BIN15,W9,FDIR,W0,W1
	ADD	BUFPOS,BIN15	ADJUST NEXT BUFFPOS 
U13A
	CALL	RCNTRL,BPOOL(PINDCB),BUFPOS,DEBINW1,BIN15,BIN7	 CTLS
	MOVE	FDVBCD(W6),BIN7	STORE MAXLENGTH 
	MOVE	FDVBCD(W7),BIN15	STORE MINLENGTH
	EJECT
	TBT	BOOL6,U13F	JUMP IF BALANCE FORMAT
	MOVE	FDVSTR(W1),='Y'	KEYED INPUT 
	TBF	CTAB,U13V	JUMP IF KEYED INPUT
	MOVE	FDVSTR(W1),='C' 
	CBL	BIN16,W3,U13V
	MOVE	FDVSTR(W1),='N'	NO KEYED INPUT
U13V
	MOVE	FDVSTR(W2),='N'	ME=N
	TBF	ME,U13B
	MOVE	FDVSTR(W2),='Y'	ME=Y
U13B
	MOVE	FDVSTR(W3),='N'	AUTOTAB=N 
	TBF	NEOI,U13C
	MOVE	FDVSTR(W3),='Y'	AUTOTAB=Y 
U13C
	MOVE	FDVSTR(W4),='N'	VERIFY=N
	TBF	VERIFY,U13D
	MOVE	FDVSTR(W4),='Y'	VERIFY=Y
U13D
	MOVE	FDVSTR(W5),='Y'	INIT.CLEAR=Y
	TBF	NCLR,U13E
	MOVE	FDVSTR(W5),='N'	INIT.CLEAR=N
U13E
	TBF	SCHK4,U13F 
	MOVE	FDVSTR(W2),='C'	ME=C
U13F
	ADD	BUFPOS,W3	ADJUST BUFFPOS 
	EJECT
	MOVE	STATSH,HEX00
	MOVE	JOBSPC,HEX00
	MOVE	DEBIN3,W0	WORKSTRINGPOINTER:=0
	MOVE	FMTWK(W1),W0	VALCARS:=0 
	MOVE	FMTWK(W2),W0	GENCHARS:=0
	MOVE	FMTWK(W3),W0	ACCCHARS:=0
	MOVE	FMTWK(W4),W0	DUPCHARS:=0
	MOVE	FMTWK(W11),W0 
	MOVE	STR64A,=C'#V:#G:#A:'
	MOVE	DUPL,HEX00
UNPMF 
	MOVE	FBIN1,W3	INITIATE NUMB OF CONV
	MOVE	BIN16,W0	MATCHINDEX:=0
	MATCH	FDIR,BIN16,W16,BPOOL(PINDCB),BUFPOS,W1 
	BNOK	U13G	NO FVAL,FGEN,FACC,FDUPL
	CBE	BIN16,W0,UNPLB	END OF FORMAT 
	IB	BIN16,UNP1,UNP2,UNLB,UNLB,	1-4	C
		UNP2,UNP2,UNP2,UNP2,UNP9	5-9
UNLB
	B	U13G	NO FVAL,FGEN,FACC,FDUPL 
UNPLB 
	B	UNPE 
UNP1
	ADD	BUFPOS,W3	(FCOPY)
	B	UNPMF	GO ON
	EJECT
UNP2			(FMELI)
	MOVE	BIN15,W0
	ADD	BUFPOS,W1	NEXT BUFPOS
	XCOPY	BIN15,W1,W1,BPOOL(PINDCB),BUFPOS	GET NUMB OF CHARS 
	ADD	BUFPOS,W1	1ST CHAR.-POS
	CBNE	BIN16,W2,UNP2A	JUMP IF NOT FMELI
	PERF	UNPICT,BUFPOS	UNPACK PICTURE LAYOUT 
	TBT	BOOL6,PICB	JUMP IF BALANCE FORMAT
	ADD	BUFPOS,W2	ADJUST 
	B	UNPMF	GO ON
PICB
	ADD	BUFPOS,W1	ADJUST 
	MOVE	DEBIN1,W1	NUMB OF CHARS TO COPY 1B-ADR
	MOVE	DEBIN2,W1	WORK:=1 
	MOVE	BIN15,W1	WORK:=1
	CALL	FMOVE,STRG10A,IND1	FETCH INDEX-ITEMADRESS=1 
	MATCH	STRG10A,BIN15,W9,FDIR,W0,W1
	CBE	BIN15,W1,PICB1	JUMP IF 1BYTE ADR 
	ADD	BUFPOS,W3	ADJUST BUFFERPOS 2B-ADR
	MOVE	DEBIN1,W2	NUMB OF CHARS TO COPY 2B-ADR
	MOVE	DEBIN2,W0	STARTPOS 2B-ADR 
PICB1 
	MOVE	BIN15,W0	WORK:=0
	XCOPY	BIN15,DEBIN2,DEBIN1,BPOOL(PINDCB),BUFPOS	INDEX-ITEMADR 
	MOVE	BIN16,W0	WORK:=0
	XCOPY	BIN16,DEBIN2,DEBIN1,STRG10A,W0	LOAD IND-ITEM ADR=1 
	SUB	BIN16,W1	FIX MASK X0 
	SUB	BIN15,BIN16	MASKOUT=>INDEX VALUE 
	MOVE	FDVBCD(W8),BIN15	STORE ACC.NO 
	ADD	BUFPOS,W1	ADJUST 
	B	UNPMF	GO ON
UNP2A 
	SUB	BIN16,W4	ADJUST FOR INDEX-BRANCH 
	MOVE	DEBINW1,BIN16	SAVE FUNCINDEX
	IB	BIN16,UNP2B,UNP2C,UNP2D,UNP2E 
UNP2B			(FVAL)
	XCOPY	JOBSPC,DEBIN3,W3,STR64A,W0	'#V:' 
	B	UNP2F
UNP2C			(FGEN)
	XCOPY	JOBSPC,DEBIN3,W3,STR64A,W3	'#G:' 
	B	UNP2F	ADJUST 
UNP2D 
	XCOPY	JOBSPC,DEBIN3,W3,STR64A,W6	'#A:' 
UNP2F 
	ADD	DEBIN3,W3	NEXT POSITION
	PERF	BINCON,JOBSPC,DEBINW1	CONVERT BINNUM=>STRG
	ADD	FMTWK(W11),BIN15	ADD NUMB OF CONV CHARS
	CBE	OPT,W2,UNP2G	JUMP IF PRINTOUT MODE 
	MOVE	FMTWK(DEBINW1),DEBIN3	SAVE NUMB OF ACCUM.CHARS
	B	UNPMF
UNP2G 
	MOVE	FMTWK(DEBINW1),BIN15	SAVE NUMB CONV CHARS 
	B	UNPMF	ADJUST 
UNP2E 
	MOVE	FBIN1,W0	INITIATE NUMB OF CONV
	MOVE	DEBIN3,W0	WORKSTRINGPOINTER:=0
	PERF	BINCON,DUPL,DEBINW1	CONVERT BINNUM=>STRG
	MOVE	FMTWK(W4),BIN15	SAVE NUMB OF DUPL.CHARS 
	B	UNPMF	GO ON
	EJECT
U13G
	CBE	OPT,W2,U13I	JUMP IF PRINTOUT MODE
	MOVE	FMTWK(W10),=X'50'	NUMB OF CHARS 1:=80 
	CBL	FMTWK(W10),FMTWK(W11),U13H	JUMP IF BOTH LINES USED 
	MOVE	FMTWK(W10),FMTWK(W11)	ALL CHARCTERS IN 1ST STRG 
	MOVE	FMTWK(W11),W0	NUMB OF CHARS2:=0 
	B	U13I 
U13H
	SUB	FMTWK(W11),FMTWK(W10)	COMPUT NUMB OF CHARS1
U13I
	MOVE	DEBINW2,W0	OK 
	B	UNRET
UNPE
	MOVE	DEBINW2,W1	END-OF-FORMAT
UNRET 
	RET
	PEND 
	EJECT
* 
*        UNPACK FLINK AND INITIALIZE
*        NEXT BUFFER
* 
UNPFLK	PROC	POINT 
	ADD	POINT,W3	ADJUST BUFPOINTER 1B-ADR
	MOVE	DEBIN1,W1	NUMB OF CHARS TO COPY 1B-ADR
	MOVE	DEBIN2,W1	STARTPOS 1B-ADR 
	MOVE	BIN15,W1	MATCH STARTPOS:=1
	CALL	FMOVE,STRG10A,IND1	FETCH IND-ITEM-ADRESS=1
	MATCH	STRG10A,BIN15,W9,FDIR,W0,W1
	CBE	BIN15,W1,UNPFL2	JUMP IF 1B-ADR 
	ADD	POINT,W2	ADJUST BUFFPOS 2B-ADR 
	MOVE	DEBIN1,W2	NUMB OF CHARS TO COPY 2B-ADR
	MOVE	DEBIN2,W0	STPOS 2B-ADR
UNPFL2
	MOVE	BIN15,W0	WORK:=0
	XCOPY	BIN15,DEBIN2,DEBIN1,BPOOL(PINDCB),POINT	INDEX-ITEMADR
	MOVE	BIN16,W0	WORK:=0
	XCOPY	BIN16,DEBIN2,DEBIN1,STRG10A,W0	INDEX-ITEMADRESS=1
	SUB	BIN16,W1	FIX MASK X0 
	SUB	BIN15,BIN16	MASKOUT=>INDEX VALUE 
	MOVE	PINDCB,FLIND(BIN15)	GO ON WITH NEXT BUFFER
	MOVE	POINT,W0	RESTART IN NEXT BUFFER 
	RET
	PEND 
	EJECT
* 
*        UNPACK AND EDIT PICTURE LAYOUT IN LDISP
* 
UNPICT	PROC	POINT 
	MOVE	BIN12,W1	LDES-POINTER 
	XCOPY	STATSH,W0,W1,PICSTR,W13	COPY '<' 
PICM			PICTURESTRING MATCH
	MOVE	BIN16,W0	MATCHINGINDEX:=0 
	MATCH	PICCON,BIN16,W4,BPOOL(PINDCB),POINT,W1 
	BNOK	PINC	NO CONVERT 
	CBE	BIN16,W0,PICS	JUMP IF 'S'-CONVERT
	IB	BIN16,PICP,PICE,PICX
PINC
	XCOPY	STATSH,BIN12,W1,BPOOL(PINDCB),POINT
PI00
	ADD	POINT,W1	NEXT BUFFERPOS
	ADD	BIN12,W1	NEXT LDES POS 
	CBG	BIN12,BIN15,PICR	END OF PICTURESTRING FOUND
	B	PICM	GO ON 
PICS			'S'-CONVERT
	XCOPY	STATSH,BIN12,W1,PICSTR,W9	COPY 'S' 
	B	PI00 
PICP			'.'-CONVERT
	XCOPY	STATSH,BIN12,W1,PICSTR,W11	COPY '.'
	B	PI00 
PICE			'E'-CONVERT
	ADD	POINT,W1	TAKE NEXT BUFFERPOS 
	SUB	BIN15,W1	ADJUST NUMBER OF CHARS
	B	PINC 
PICX
	TBF	SCHK2,PINC	JUMP IF NOT LEFT ZERO FILL
	XCOPY	STATSH,BIN12,W1,PICSTR,W14	COPY '0'
	B	PI00	NEXT MATCH
PICR
	XCOPY	STATSH,BIN12,W1,PICSTR,W12	COPY '>'
	ADD	BIN12,W1	=NUMB OF LAYOUT CHARS 
	RET
	PEND 
	EJECT
* 
*        THIS ROUTINE UNPACKS NEXT LINE FROM CURRENT ATTACHED 
*        FORMAT AND EDITS THE FORMAT PARTS IN 'LINE-DESIGN'-ITEM
* 
*        USED VARIABLES     :    BIN16  = MATCHINGPOINTER 
*                                BIN15  = WORKITEM
*                                DEBIN2  = MAXLENGTH ALPHANUM-FIELDS
*                                DEBIN3  = POINTER POSITIONER LDES-ITEM 
*                                DEBIN4  = SAVED BUFFER-IDEX IF ALTERED 
*                                         DURING ROUTINE-SESSION
* 
DEUNPL	PROC	BUFPOS
	MOVE	DEBINW2,W0	OK-SIGNAL
	MOVE	LDES,=' '	LDES:='SPACES'
	MOVE	DEBIN3,W0	POINTER LDES:=0 
	CLEAR	BOOL5	F=END-OF-LINE NOT REACHED
	CLEAR	BOOL8	F=NO BUFFER ALTERED
LUPM
	MOVE	BIN16,W0	MATCHING INDEX:=0
	MATCH	FDIR,BIN16,W18,BPOOL(PINDCB),BUFPOS,W1 
	SWITCH 
	IB	BIN16,LUP1,LUP5,LUP3,LUP4,	1-4	C
		LUP5,LUP5,LUP5,LUP5,	5-8	C
		LUP9,LUP10,LUP11,LUPR	9-R	C 
		LUP13,LUP13,LUP13,LUP13,	13-16	C
		LUP13,LUP13	17-18 
LUPRLB
	B	LUPR	END OF FORMAT 
	EJECT
LUP1			FCOPY
	MOVE	BIN15,W0	WORK:=0
	ADD	BUFPOS,W1	NEXT BUFFERPOS 
	XCOPY	LDES,DEBIN3,W1,PICSTR,W13	COPY '<' 
	ADD	DEBIN3,W1	NEXT LDESPOSITION
	ADD	BUFPOS,W1	NEXT BUFFERPOS 
	XCOPY	BIN15,W1,W1,BPOOL(PINDCB),BUFPOS	GET FIELDNR 
	TBF	SCHK2,LUP1A	JUMP IF LEFT ADJUSTED
	MOVE	DEINPUT,='R'	LOAD WITH 'R':S
	B	LUP1B
LUP1A 
	MOVE	DEINPUT,='L'	LOAD WITH 'L':S
LUP1B 
	XCOPY	LDES,DEBIN3,DEBIN2,DEINPUT,W0	COPY NUMBER OF 'R'/'L':S 
	ADD	DEBIN3,DEBIN2	ADJUST LDESPOINTER 
	XCOPY	LDES,DEBIN3,W1,PICSTR,W12	COPY '>' 
	ADD	BUFPOS,W1
	ADD	DEBIN3,W1	ADJUST POINTER 
	B	LUPM 
	EJECT
LUP2			FMELI
	PERF	UNPICT,BUFPOS	UNPACK/EDUT PICTURELAYOUT 
	XCOPY	LDES,DEBIN3,BIN12,STATSH,W0
	ADD	BUFPOS,W2	ADJUST BUFFERPOS 
	ADD	DEBIN3,BIN12	ADJUST POINTER
	TBF	BOOL6,LUPM	JUMP IF GENERAL FORMAT
	MOVE	BIN15,W1
	CALL	FMOVE,STRG10A,IND1	FETCH IND ITEM ADRESS=1
	MATCH	STRG10A,BIN15,W9,FDIR,W0,W1
	CBE	BIN15,W1,LUPM	JUMP IF 1B-ADR 
	ADD	BUFPOS,W2	ADJUST BUFPOS 2B-ADR 
	B	LUPM	GO ON 
	EJECT
LUP3			FTEXT
	MOVE	BIN15,W0	WORK:=0
	ADD	BUFPOS,W1	ADJUST BUFFPOS 
	XCOPY	BIN15,W1,W1,BPOOL(PINDCB),BUFPOS	GET NUMB CHARCTERS
	ADD	BUFPOS,W1	1ST CHARCTER-POSITION
	XCOPY	LDES,DEBIN3,BIN15,BPOOL(PINDCB),BUFPOS	COPY TEXTSTRING 
	ADD	BUFPOS,BIN15	ADJUST BUFFPOS
	ADD	DEBIN3,BIN15	ADJUST POINTERPOS 
	B	LUPM	GO ON 
	EJECT
LUP4			FTAB 
	MOVE	DEBIN3,W0	POINTER:=0
	ADD	BUFPOS,W1	NEXT BUFFPOS 
	XCOPY	DEBIN3,W1,W1,BPOOL(PINDCB),BUFPOS	TABPOS 
	SUB	DEBIN3,W1	ADJUST TABPOS
LUP10 
	ADD	BUFPOS,W1	ADJUST BUFPOINTER
	B	LUPM	GO ON 
	EJECT
LUP5			FMELI,FVAL,FGEN,FACK,FDUPL 
	MOVE	BIN15,W0	WORK:=0
	ADD	BUFPOS,W1	NEXT BUFFPOS 
	XCOPY	BIN15,W1,W1,BPOOL(PINDCB),BUFPOS	GET NUMB OF CHARACTERS
	ADD	BUFPOS,W1	1ST CHARCTERPOSITION 
	CBE	BIN16,W2,LUP2	JUMP IF FMELI
	ADD	BUFPOS,BIN15	ADJUST FOR NUMB OF CHARS
	B	LUPM	GO ON 
	EJECT
LUP9			FLINK
	SET	BOOL8	T=BUFFER ALTERED 
	BNZ	LUP9A	JUMP IF BUFF ALREADY ALTERED 
	MOVE	DEBIN4,PINDCB	SAVE BUFFERNUMBER 
LUP9A 
	PERF	UNPFLK,BUFPOS	UNPACK FLINK INIT NEXT BUFFER 
	B	LUPM	GO ON 
	EJECT
LUP11			FNL 
	MOVE	FMTWK(W5),DEBIN3	SAVE NUMBERS OF LDES CHARS 
LUP11A
	CBE	DEBIN3,=X'50',LUP11B	JUMP IF END-OF-LINE 
	XCOPY	LDES,DEBIN3,W1,HEX00,W0	LOAD THE REST WITH X'00' 
	ADD	DEBIN3,W1
	B	LUP11A 
LUP11B
	TBF	BOOL8,LUPR	JUMP IF NO BUFF.ALTERATION
	MOVE	PINDCB,DEBIN4	RESTORE BUFFER'POINTER' 
	B	LUPR	END-OF-LINE 
	EJECT
LUP13			FKI:S 
	SUB	BIN16,W12
	MOVE	DEBIN2,W0	WORK:=0 
	ADD	BUFPOS,W1	NEXT BUFFPOS 
	MOVE	DEBIN3,W0	POINTER:=0
	XCOPY	DEBIN3,W1,W1,BPOOL(PINDCB),BUFPOS	GET TABPOS AS POINTPS
	CBE	DEBIN3,W1,LUPREF	DUMMY-FORMAT FOUND
	SUB	DEBIN3,W2
	CBL	BIN16,W4,LUP13A	JUMP IF FKI WITHOUT DUPL 
	SUB	BIN16,W3	ADJUST FOR FKI WITH DUPL
	MOVE	BIN15,W1
	CALL	FMOVE,STRG10A,IND1
	MATCH	STRG10A,BIN15,W9,FDIR,W0,W1	CHECK ADRESS-TYPE
	ADD	BIN16,BIN15	ADJUST FOR 1 OR 2B-ADRESS
LUP13A
	ADD	BUFPOS,BIN16	ADJUST FOR NEXT BUFFPOS 
	CALL	RCNTRL,BPOOL(PINDCB),BUFPOS,DEBINW1,BIN16,DEBIN2
	ADD	BUFPOS,W3	ADJUST BUFFPOS 
	B	LUPM	GO ON 
	EJECT
LUPREF
	MOVE	DEBINW2,W1	E-O-F-SIGNAL 
LUPR
	RET
	PEND 
	EJECT
* 
*       THIS ROUTINE EDITS AN ATTACHED FORMAT,
*       PUTTING '-99......' IN NUMERICAL ITEMS
*       'LLL......' IN LEFTADJUSTED ALPHANUMERIC ITEMS AND
*       'RRR......' IN RIGHTADJUSTED ALPHANUMERIC ITEMS 
* 
*********************************************************************** 
* 
FEDIT	PROC
	MOVE	DEINPUT,='-9'	LOAD WITH -999999...
	MOVE	DEBINW3,W0	INITIATE FIELD COUNTER 
FEDITL
	SWITCH 
	ADD	DEBINW3,W1	FIELDCOUNTER:=FC+1
	CALL	GETFWD,BIN16,0,DEBINW3,DEBINW4
	CALL	ADJUST,BIN16
	BNOK	FEDITR
	GETCTL	1,DEBINW4	GETMAXLENGTH
	CBE	DEBINW4,W0,FEDITR	MAXL=0 => END-OF-FORMAT
	TSTCTL	ALPHA 
	BZ	FEDBCD	JUMP IF NUMERIC
	GETCTL	SCHK,DEBINW4	GET SPECIAL CHECK NR 
	CBNE	DEBINW4,W2,FELEFT	JUMP IF NOT 2 
	MOVE	:FMTITEM,=C'R'	LOAD ITEM WITH 'R':S 
	B	FEDITL	GO ON 
FELEFT
	MOVE	:FMTITEM,=C'L'	LOAD ITEM WITH 'L':S 
	B	FEDITL	GO ON 
FEDBCD
	MOVE	:FMTITEM,DEINPUT	LOAD ITEM WITH '-9':S
	B	FEDITL	GO ON 
FEDITR
	RET
	PEND 
	EJECT
IND1	FRMT 
	FCTL	W1
	FMEND
	END

Full view