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

⟦d03bf061a⟧

    Length: 23878 (0x5d46)
    Notes: pts_type(SC)
    Names: »KMDIO.SC«

Derivation

└─⟦22f4dea89⟧ Bits:30009702 Philips computer tape "DOS_PTS_4.2_M_FL"
    └─⟦this⟧ »NJ-AMT/KMDIO.SC« 
└─⟦dab19bdd7⟧ Bits:30009677 Philips computer tape "600218"
    └─⟦this⟧ »NJ-AMT/KMDIO.SC« 

PTS(SC)

 IDENT KMDIO 831026 EV
         DDUM    KMD08
	PDIV 
	ENTRY	WRITFD 
         ENTRY   WRITVO 
         ENTRY   WRITJT 
         ENTRY   WTALLY 
 ENTRY WRITID 
         ENTRY   CRKJ 
	ENTRY	GRASPV 
	ENTRY	LINOPT 
	ENTRY	CRVO 
         ENTRY   WCHECK 
	ENTRY	CLEAR8 


 EXT RADEL
	EXT	SPCHK5 
	EXT	SPLIN8 
 EXT SPERR
         EXT     FRMTJT 
	EXT	FRMXJT 
 EXT ADM
 EXT CYWRT
	EXT	FRMXVO 
 EXT FRMXTA 
 EXT FRMXKV 
 EXT REPL00 
         EXT     ABORT
 EXT RAWRIT 
 EXT WAITF
 EXT WRITLO 

         INCLUDE EQUATE 
 EJECT
WRITFD	PROC 
 TBF CSKIFTWN,WRFD00
 PERF ADM,CBIN12 DISKETTE SKIFT 
 TBF CSKIFTWN,WRFD00
 CMP CBIN1,CBIN0
 RET
WRFD00
 PERF WAITF,CPFLG 
 CLEAR TFELT90
 CLEAR CSPLITFL 
 MOVE CTWBIN1,CBIN0 NO. OF WRITTEN RECORDS
 PERF EDATNR
 MOVE GSWBIN5,CBIN0 
WRFD005 
 SET CSWFLAG
 CBE CRECLGD,=W'128',WRFD006
 CLEAR CSWFLAG
WRFD006 
 EDIT CPCKBUF,PCKINIT 
 EDIT CPCKBUF,TREC1 INSERT HEADER INF 
 MOVE GSWBIN3,CBIN10
 MOVE GSWBIN4,CRECLGD 
 SUB GSWBIN4,CBIN11 
 MATCH CPCKBUF,GSWBIN3,GSWBIN4,CBLANKS,CBIN0,CBIN2
 MOVE GSWBIN4,CRECLGD 
 SUB GSWBIN4,CBIN1
 SUB GSWBIN4,GSWBIN3 REMAINING LENGTH 
 CBE GTREGNR,=D'12',WRFD070 
 TBT CSPLITFL,WRFD025 IF SPLIT PACK REST
WRFD020 
 ADD GSWBIN5,CBIN1
 CBNL GSWBIN5,CBINMAX,WRFD070 
 CBE GTUSED(GSWBIN5),CBIN0,WRFD020 USED FIELD ? 
 CBE GTUSED(GSWBIN5),=W'90',WRFD090 
 CBE GTUSED(GSWBIN5),=W'91',WRFD091 
 CBE GTUSED(GSWBIN5),=W'92',WRFD092 
 CBE GTUSED(GSWBIN5),=W'93',WRFD093 
 CBE GTUSED(GSWBIN5),=W'94',WRFD094 
 MOVE SPINPUT,=X'00' YES
 MOVE GSWBCD3,GTUSED(GSWBIN5) CONVERT 
 EDIT SPINPUT,PFRM1 
WRFD025 
	MOVE	GSWSTR1,=X'00'
 MOVE GSWBIN6,CBIN0 FIND LENGTH 
 MOVE GSWBIN10,=W'30' 
 MATCH SPINPUT,GSWBIN6,GSWBIN10,GSWSTR1,CBIN0,CBIN1 
 CLEAR CSPLITFL 
 CBG GSWBIN6,GSWBIN4,WRFD030 OVERFLOW ? 
 COPY CPCKBUF,GSWBIN3,GSWBIN6,SPINPUT,CBIN0 NO
 ADD GSWBIN3,GSWBIN6
 SUB GSWBIN4,GSWBIN6 ADJUST POINTERS
 B WRFD020 SEE IF MORE
WRFD030 
 COPY CPCKBUF,GSWBIN3,GSWBIN4,SPINPUT,CBIN0 
 MOVE GSWSTR1,=X'21' CONTINUATION MARK
 ADD GSWBIN3,GSWBIN4
 COPY CPCKBUF,GSWBIN3,CBIN1,GSWSTR1,CBIN0 
 DLETE SPINPUT,CBIN0,GSWBIN4
 SET CSPLITFL 
 PERF RAWRIT,DK02,=D'2',CPCKBUF,CRECNR
 BNOK WRFDERR 
 TBT GTTESTFL,WRFD005 
 ADD CTWBIN1,CBIN1
 ADD CRECNR,CBIN1 
 ADD CRECBCD,=D'1'
 B WRFD005 GO AND PACK REST 
WRFD070 
 MOVE GSWSTR1,=X'7F'
 COPY CPCKBUF,GSWBIN3,CBIN1,GSWSTR1,CBIN0 
 PERF RAWRIT,DK02,=D'2',CPCKBUF,CRECNR
 BNOK WRFDERR 
 TBT GTTESTFL,WRFD080 
 ADD CTWBIN1,CBIN1
 ADD CRECNR,CBIN1 
 ADD CRECBCD,=D'1'
 PERF RADEL,DK02,CRECNR 
 BNOK WRFDERR 
* 
*        LOOK FOR ACCOUNT NO
*        IN KONTOPLAN. IF FOUND,
*        SET FLAG GTKORTFL
* 
 CBL CRECNR,CMAXREC,WRFD080 
 CLEAR CPFLG
 CLEAR CSPLITFL 
 MOVE SPBINW4,CBIN21
 MOVE GTWBCD2,=D'2' FILE CODE 
 MOVE GTWBCD1,=D'50' ERROR CODE 
 MOVE GSWSTR9,=C'DISCFEJL ' 
 PERF SPERR 
 CMP CBIN0,CBIN0
 RET

WRFD090 
 MOVE SPINPUT,=X'26393000'
 XCOPY SPINPUT,CBIN3,CBIN22,GTFELT90(CBIN1),CBIN0 
 B WRFD095
WRFD091 
 MOVE SPINPUT,=X'26393100'
 XCOPY SPINPUT,CBIN3,CBIN22,GTFELT90(CBIN2),CBIN0 
 B WRFD095
WRFD092 
 MOVE SPINPUT,=X'26393200'
 XCOPY SPINPUT,CBIN3,CBIN22,GTFELT90(CBIN3),CBIN0 
 B WRFD095
WRFD093 
 MOVE SPINPUT,=X'26393300'
 XCOPY SPINPUT,CBIN3,CBIN22,GTFELT90(CBIN4),CBIN0 
 B WRFD095
WRFD094 
 MOVE SPINPUT,=X'26393400'
 XCOPY SPINPUT,CBIN3,CBIN22,GTFELT90(CBIN5),CBIN0 
WRFD095 
 SET TFELT90
	PERF	MATCH,=C'&',=C'+' 
	PERF	MATCH,=C'!',=C'/' 
 B WRFD025
* 
WRFD080 
 CLEAR CSPLITFL 
 CLEAR CPFLG
	CMP	CBIN0,CBIN0	OK, SET CR=0 
 RET
WRFDERR 
 SUB CRECNR,CTWBIN1 
 MOVE GSWBCD1,CTWBIN1 
 SUB CRECBCD,GSWBCD1
 SET CSKIFTWN 
	CLEAR	CPFLG
 SET GTREGFLG 
 CMP CBIN1,CBIN0 NOK, CR<>0 
 RET
 PEND 
 EJECT
********************************************
*     EDATNR
*          FINDS DATASETNR FOR THE TRANSACTIONS 
*          AND PUT THE INFORMATION IN RELEVANT FIELDS 
************************************************
EDATNR PROC 
 CLEAR TTR11FLG 
 CBG GTREGNR,=D'12',EDAT100 
 MOVE CEDATNR,=D'1' 
 CBG GTREGNR,=D'10',EDAT010 
 MOVE GTUSED(CBIN5),CBIN9 UPDATE D/K MARK 
 MOVE GTDUPF(CBIN5),TTDKBCD 
EDAT010 
 CBNE GTREGNR,=D'11',EDAT020
 SET TTR11FLG 
EDAT020 
 RET
EDAT100 
 CBG GTREGNR,=D'42',EDAT110 
 MOVE CEDATNR,=D'3' TR 40-42
 B EDAT020
EDAT110 
 CBG GTREGNR,=D'47',EDAT120 
 MOVE CEDATNR,=D'5' TR 45-47
 B EDAT020
EDAT120 
 CBG GTREGNR,=D'49',EDAT130 
 MOVE CEDATNR,=D'4' TR 48-49
 B EDAT020
EDAT130 
 MOVE CEDATNR,=D'2' TR 50-54
 B EDAT020
 PEND 
	EJECT
WRITJT   PROC  $JTLIT 
 PLIT $JTLIT
********************
*        THIS ROUTINE MAKES OUTPUT ON JOURNAL TAPE
*        DEPENDING ON TRANSACTION TYPE
********************
 WAIT KVOUCH
 WAIT KTALLY
 TBT GTSPGFLG,JTRET 
         MOVE  GSWBIN1,$JTLIT 
         CBG   GSWBIN1,CBIN0,JT10 
 TBF CSPOOL,JT04
 TBT TSPOOL,JT05
JT04			WRITE ON JOURNAL 
         PERF  FRMTJT                  GET FORMAT ACORDING TO TYPE
         B     JT20 
JT05			EL. JOURNAL
 PERF WRITLO,CBIN0
 BNOK JT04
 MOVE GSWBIN1,TTCNTNR 
 B JT35 
JT10
 PERF FRMXJT,GSWBIN1 SPECIAL FORMAT 
JT20
	MOVE	GSWBIN1,TTCNTNR	'TAELLER' NR IN BINARY
	EDWRT	KJTAPE,GTSTRFMT	EDWRT JOURNAL
 CBL GTREGDEX,CBIN8,JT40
 CBG GTREGDEX,CBIN9,JT40
 MOVE GSWBIN1,$JTLIT
 CBG GSWBIN1,CBIN0,JT40 
 TBF TFELT90,JT35 ANY 90-94 
 TBF TSPOOL,JT30
 TBT CSPOOL,JT35
JT30
 CBNE GTUSED(CBIN20),=W'90',JT31
 MOVE SPINPUT,=X'00'
 XCOPY SPINPUT,CBIN13,CBIN22,GTFELT90(CBIN1),CBIN0
 WRITE KJTAPE,SPINPUT 
JT31
 CBNE GTUSED(CBIN21),=W'91',JT32
 MOVE SPINPUT,=X'00'
 XCOPY SPINPUT,CBIN13,CBIN22,GTFELT90(CBIN2),CBIN0
  WRITE KJTAPE,SPINPUT
JT32
 CBNE GTUSED(CBIN22),=W'92',JT33
 MOVE SPINPUT,=X'00'
 XCOPY SPINPUT,CBIN13,CBIN22,GTFELT90(CBIN3),CBIN0
 WRITE KJTAPE,SPINPUT 
JT33
 MOVE GSWBIN1,=W'23'
 CBNE GTUSED(GSWBIN1),=W'93',JT34 
 MOVE SPINPUT,=X'00'
 XCOPY SPINPUT,CBIN13,CBIN22,GTFELT90(CBIN4),CBIN0
 WRITE KJTAPE,SPINPUT 
JT34
 MOVE GSWBIN1,=W'24'
 CBNE GTUSED(GSWBIN1),=W'94',JT35 
 MOVE SPINPUT,=X'00'
 XCOPY SPINPUT,CBIN13,CBIN22,GTFELT90(CBIN5),CBIN0
 WRITE KJTAPE,SPINPUT 
JT35
JT40
 WAIT KJTAPE
	DSC0	KJTAPE,TSTAT	TEST STATUS OF JOURNAL 
         BOK   JTRET
 PERF SPLIN8,CBIN1,CBIN1 'SKIFT JOURNAL'
	SET	TTJTEND
JTRET 
	RET
         PEND 
         EJECT
WTALLY   PROC 
******************* 
* 
*        WRITE TALLY ROLL 
* 
********************
 WAIT KVOUCH
 WAIT KTALLY
         EDWRT   .NW,KTALLY,GTSTRFMT           EDWRT WITH THE FORMAT
	RET		STORED IN GTSTRFMT
        PEND
* 
* 
CRKJ     PROC 
********************
* 
*         DOES A CARRIAGE RETURN ON TTP WITHOUT WAIT
* 
********************
 EDWRT KJTAPE,CRJTFMT 
         RET
CRJTFMT	FRMT
         FILLR   ' ',2
 FILLR X'0D',1
        FMEND 
         PEND 
* 
* 
CRVO	PROC 
******************* 
* 
*          DOES A CARRIAGE RETURN ON VOUCHER WITH WAIT
* 
********************
	EDWRT	KVOUCH,CRVOFMT 
	RET
CRVOFMT	FRMT
	FILLR	' ',2
 FILLR X'09',1
	FMEND
	PEND 



GRASPV   PROC 
********************
* 
*        GRASP VOUCHER
* 
********************
 WAIT KVOUCH
	DSC0	KVOUCH,GRASP	GRASP VOUCHER
         RET
         PEND 

WCHECK PROC 
 RET
 PEND 
         EJECT
WRITVO PROC 
* 
*        WRITE VOUCHER
* 
*        IN CYCLE  POSITION AND WRITE 
*                  (MAY BE NEW PAGE)
* 
*        NOT CYCLE  GET LINE NR 
*                  POSITION VOUCHER 
*                  WRITE 1-5 LINES
*                  AND RELEASE VOUCHER
* 
********************
         TBT     GTCYFLG,CYVOUCH
* NOT IN CYCLE
WOBILAG 
 PERF SPLIN8,CBIN2,CBIN0 "LINIE NR" 
         PERF GRASPV
 CLEAR GTSWFLAG 
	PERF	LINOPT	SEE IF DEFAULT LINE
         BNOK    WOBILAG
	CBG	GSWBIN1,=W'90',WO90
	MOVE	GSWBIN1,TTLINNR 
	B	WO100
WO90	MOVE	GSWBIN2,=W'100' 
	SUB	GSWBIN2,GSWBIN1
	IB	GSWBIN2,		C 
		WO99,WO98,WO97,WO96,WO95,		C
		WO94,WO93,WO92,WO91 
WO99
	PERF	FRMXVO,CBIN6
	MOVE	GSWBIN1,=W'35'
	B	WO100
WO98
	PERF	FRMXVO,CBIN4
 MOVE GSWBIN1,CBIN14
	B	WO100
WO97
	PERF	FRMXVO,CBIN5
 MOVE GSWBIN1,CBIN14
	B	WO100
WO96
 PERF FRMXVO,CBIN17 
 MOVE GSWBIN1,=W'37'
 B WO100
WO95
WO94
WO93
 DSC0 KVOUCH,RLEAS
	B	WOBILAG
WO92			SHORT 'BILAG'
 PERF SPLIN8,CBIN2,CBIN0
 PERF GRASPV
 SET GTSWFLAG 
 PERF LINOPT
 BNOK WO92
 CBG GSWBIN1,=W'90',WO92
 MOVE GSWBIN1,TTLINNR 
 CLEAR GTSWFLAG 
	PERF FRMXVO,CBIN19 
 B WO100
WO91
	MOVE	GTRETUR,CBIN3	INDICATE KONTOKORT
	RET
* 
WO100 
	DSC1	KVOUCH,POS,GSWBIN1	POSITION VOUCHER 
	EDWRT	KVOUCH,GTSTRFMT	EDWRT WITH CURRENT FORMAT
	PERF	CRVO
 PERF TSTMUL
 BNOK WO110 
 PERF MULLIN
 PERF MULLIN
 PERF MULLIN
 PERF MULLIN
WO110 
         DSC0    .NW,KVOUCH,RLEAS                RELEASE VOUCHER
         RET
* IN CYCLE
CYVOUCH 
 SET TTCYTRFL AFTER A CORRECT TRANS 
 TBT GTCYWRTF,WO5 
 MOVE GTBSUM1,=D'0' 
 PERF CYWRTS
 BNOK WO5 
 RET
* 
WO5 
         TBT     TTTSTFLG,WO10
         SET     TTTSTFLG 
 PERF SPLIN8,CBIN5,CBIN2 WRITE 'BILAG'
         PERF    GRASPV 
	PERF	CLEAR8
WO10
	MOVE	GSWBIN1,TTLINNR 
	DSC1	KVOUCH,POS,GSWBIN1	POSITION VOUCHER 
	EDWRT	.NW,KVOUCH,GTSTRFMT
***** 
* 
*        WRITING OF TEXTLINE
*        FOR CHECK ON WORKSET 
* 
***** 
         SUB     TTLINNR,=D'2'             NEXT LINE
         CBL     TTLINNR,=D'4',NEWPG       NEW PAGE?
	RET		NO
* 
NEWPG			NEW PAGE
 TBT TTPSEFLG,WORET T: IF SUBTOTAL
 WAIT KVOUCH
 MOVE GSWBIN1,TTLINNR 
 DSC1 KVOUCH,POS,GSWBIN1
 MOVE GSWSTR9,=C'TRP '
 PERF FRMXVO,CBIN2
 EDWRT KVOUCH,GTSTRFMT
         DSC0    KVOUCH,RLEAS 
 SET GTCYTRPF 
WORET 
 RET
         PEND 
 EJECT
TSTMUL PROC 
* THE PROCEDURE DECIDES IF MULTIPLE LINES C A N 
* OCCUR, WHICH MEANS: 
 CBE GTUSED(CBIN20),=W'90',TSTM01 
 MOVE GTFELT90(CBIN1),CBLANKS 
TSTM01
 CBE GTUSED(CBIN21),=W'91',TSTM02 
 MOVE GTFELT90(CBIN2),CBLANKS 
TSTM02
 CBE GTUSED(CBIN22),=W'92',TSTM03 
 MOVE GTFELT90(CBIN3),CBLANKS 
TSTM03
 MOVE GSWBIN1,=W'23'
 CBE GTUSED(GSWBIN1),=W'93',TSTM04
 MOVE GTFELT90(CBIN4),CBLANKS 
TSTM04
 ADD GSWBIN1,CBIN1
 CBE GTUSED(GSWBIN1),=W'94',TSTM05
 MOVE GTFELT90(CBIN5),CBLANKS 
TSTM05
 CBE GTREGDEX,CBIN6,TSTM30
 CBE GTREGDEX,CBIN8,TSTM20
 CBE GTREGDEX,CBIN9,TSTM30
TSTM10
 CMP CBIN1,CBIN0
 RET
TSTM20
TSTM30
 MOVE GSWBIN11,CBIN1
TSTM40
 MOVE GSWBIN10,CBIN5
TSTM50
 MOVE SPINPUT,GTFELT90(GSWBIN10)
 MOVE GSWBIN7,=W'35'
 PERF REPL00,SPINPUT,GSWBIN7
 MOVE GTFELT90(GSWBIN10),SPINPUT
 SUB GSWBIN10,CBIN1 
 BP TSTM50 MORE LEFT? 
TSTM90
 CMP CBIN0,CBIN0
 RET
 PEND 



MULLIN PROC 
* THE PROCEDURE WRITES 1 OF THE MULTIPLE
* LINES ON THE VOUCHER
 ADD GSWBIN11,CBIN1 
 PERF TEST90,GSWBIN11 CAN BE 3-4-5=90-91,92-93,94 
 BNOK MUL090
 PERF PGTEST
 PERF FRMXKV,GSWBIN11 
 EDWRT KVOUCH,NLIN
 EDWRT KVOUCH,GTSTRFMT
 PERF CRVO
MUL090
 RET
 PEND 

NLIN FRMT 
 FNL
 FMEND



TEST90 PROC P 
 IB P,TEST9010,TEST9020,TEST9030,TEST9040,TEST9050
 B TEST9090 
TEST9010
TEST9020
 CBNE GTUSED(CBIN10),CBIN0,TEST9025 
 CBNE GTUSED(CBIN7),CBIN0,TEST9025
 B TEST9090 
TEST9025
 PERF FRMXKV,P
 B TEST9080 
TEST9030			FELT 90-91 
 CBNE GTFELT90(CBIN1),CBLANKS,TEST9032
 CBE GTFELT90(CBIN2),CBLANKS,TEST9090 
TEST9032
 PERF FRMXKV,P
 B TEST9080 
TEST9040			FELT 92-93 
 CBNE GTFELT90(CBIN3),CBLANKS,TEST9042
 CBE GTFELT90(CBIN4),CBLANKS,TEST9090 
TEST9042
 PERF FRMXKV,P
 B TEST9080 
TEST9050
 CBE GTFELT90(CBIN5),CBLANKS,TEST9090 
 PERF FRMXKV,P
TEST9080
 CMP CBIN0,CBIN0
 RET
TEST9090
 CMP CBIN0,CBIN1
 RET
 PEND 



CYWRTS PROC 
 ADD GTBSUM1,=D'1'
 MOVE GSWBIN1,GTBSUM1 
 IB GSWBIN1,CYWRTS10,CYWRTS20,CYWRTS30,		C
		CYWRTS40,CYWRTS50 
CYWRTS05
 MOVE GTBSUM1,=D'0' 
 CMP CBIN1,CBIN0
 RET
CYWRTS10
 PERF CYWRT 
 BNOK CYWRTS05
 ADD GTBSUM1,=D'1'
CYWRTS20
 PERF TSTMUL
 BNOK CYWRTS90 ONLY 1 LINE
CYWRTS30
CYWRTS40
CYWRTS50
 MOVE GSWBIN11,GTBSUM1
 PERF TEST90,GSWBIN11 
 BOK CYWRTS55 
 CBG GSWBIN11,CBIN5,CYWRTS90
 B CYWRTS57 
CYWRTS55
 PERF CYWRT WRITE THE CURRENT FORMAT
 BNOK CYWRTS05
CYWRTS57
 PERF CYWRTS OBS: R E C U R S I V E 
CYWRTS90
 MOVE GTBSUM1,=D'0' 
 CMP CBIN0,CBIN0
 RET
 PEND 


PGTEST PROC 
 SUB TTLINNR,=D'2'
 CBNL TTLINNR,=D'4',PGTE90
 MOVE TTCYKTOT,GTREGF(CBIN4)
 WAIT KVOUCH
 MOVE GSWBIN1,TTLINNR 
 DSC1 KVOUCH,POS,GSWBIN1
 MOVE GSWSTR9,=C'TRP '
 PERF FRMXVO,CBIN2
 EDWRT KVOUCH,GTSTRFMT
PGTE20
         DSC0    KVOUCH,RLEAS 
 PERF SPLIN8,CBIN2,CBIN0 "LINIE NR" 
 PERF GRASPV
 CLEAR GTSWFLAG 
 PERF LINOPT
 BNOK PGTE20
 MOVE GSWBIN1,TTLINNR 
 DSC1 KVOUCH,POS,GSWBIN1
 MOVE GSWSTR9,=C'TRP '
 PERF FRMXVO,CBIN2
 EDWRT KVOUCH,GTSTRFMT
PGTE90
 RET
 PEND 
         EJECT
LINOPT   PROC 
********************
* 
*        CHECK LINE NUMBER, IF ANY
* 
********************
 TBT GTSWFLAG,LINST 
	TESTIO	KEYB	SEE IF INPUT FINISHED
	BNOK	LINOP1	NO, ABORT
LINST 
	WAIT	KEYB
 CBE SPBINW2,=W'18',LINOP0 SLUT KEY 
	CBNE	SPBINW2,=W'4',LINOP2	ONLY ENTER KEY ALLOWED 
LINOP0
	CBG	SPBINW1,=W'3',LINOP2	CHECK LENGTH
	MOVE	GSWBCD3,SPINPUT	GET LINE NR 
	CBG	GSWBCD3,=D'90',LINOP4	SPECIAL FORMATS? 
	PERF	SPCHK5	OK, CHECK LINENR 
	CBE	SPBINW3,=W'3',LINOP2	ERROR IN LINE NR
	MOVE	TTLINNR,GSWBIN1	GET CONVERTED LINE NO.
LIN90 
	CMP	CBIN0,CBIN0	SET CR=0,OK
	B	LINRET 
LINOP1
	CALL	ABORT,KEYB	ABORT I/O
 CBL GTDFLIN,=W'90',LINOP101
 MOVE GSWBCD3,GTDFLIN 
 B LINOP4 
LINOP101
 MOVE GSWBCD3,GTDFLIN 
 MOVE SPINPUT,GSWBCD3 
 PERF SPCHK5
 MOVE TTLINNR,GSWBIN1 SET DEFAULT LINE NO 
	CMP	CBIN0,CBIN0	SET CR=0, OK 
	MOVE	GSWBIN1,=W'0' 
	B	LINRET 
LINOP2
 WAIT KVOUCH
	DSC0	KVOUCH,RLEAS	RELEASE VOUCHER
	DSC0	KEYB,SKIB 
	CMP	CBIN0,CBIN1	SET CR<>0, NOT OK
         RET
LINOP4
	MOVE	GSWBIN1,GSWBCD3 
	B	LIN90
LINRET
	PERF	CLEAR8	DELETE LINE 8
	RET
        PEND
 EJECT
WRITID PROC WRITVAR1,WRITVAR2 
********************
* 
*          PRINTS HEADING IDENTIFIED BY WRITVAR1
*          PRINTS ID IDENTIFIED BY WRITVAR2 
* 
*          PRINTS ON JOURNAL AND TALLY
* 
* 
*          WRITVAR1:
*               1   FEJL
*               2   OPSTART 
*               3   DISKETTE SKIFT
*               4   KONVERTERING
*               5   DATATRANSMISSION
*               6   BACKUP
* 
*          WRITVAR2:
*          CHARACTERS PRINTED FROM PACKBUFFER:
*               1   1-20 + 40-59
*               2   1-20 + 23-42, IF KONVERTERING 
*               2   1-20 + VOLID, IF NOT KONVERTERING 
*               3   NOTHING 
*               4   VOLID 
* 
* 
* 
********************
* 
 WAIT KJTAPE
 IB WRITVAR1,WRID31,WRID32,WRID33,WRID34,WRID35,WRID36
 B WRID50 
WRID34
 MOVE GSWSTR20,=C'FEJL '
 B WRID50 
WRID31
 MOVE GSWSTR20,=C'OPSTART ' 
 B WRID40 
WRID32
 MOVE GSWSTR20,=C'DISKETTE SKIFT '
 B WRID40 
WRID33
 MOVE GSWSTR20,=C'KONVERTERING '
 B WRID40 
WRID35
 MOVE GSWSTR20,=C'DATATRANSMISSION '
 B WRID40 
WRID36
 MOVE GSWSTR20,=C'BACKUP '
WRID40
 PERF WRITJT,=W'12' 
 PERF WRITLO,CBIN15 
 PERF FRMXTA,CBIN6
 PERF WTALLY
* 
* 
WRID50
 WAIT KTALLY
 CBE WRITVAR2,CBIN3,WRID80
 CBE WRITVAR2,CBIN4,WRID73
 MOVE GSWSTR20,CPCKBUF
 PERF WRITJT,=W'12' 
 PERF WRITLO,CBIN15 
 CBG WRITVAR1,=W'3',WRID60
 PERF FRMXTA,CBIN6
 PERF WTALLY
 WAIT KTALLY
* 
WRID60
 CBE WRITVAR2,CBIN2,WRID70
 MOVE GSWBIN2,CBIN20
 MOVE GSWBIN1,=W'40'
 COPY GSWSTR20,CBIN0,GSWBIN2,CPCKBUF,GSWBIN1
 B WRID75 
WRID70
 CBNE WRITVAR1,CBIN4,WRID72 
 MOVE GSWBIN2,CBIN20
 MOVE GSWBIN1,=W'23'
 COPY GSWSTR20,CBIN0,GSWBIN2,CPCKBUF,GSWBIN1
 B WRID75 
WRID72
 CBG WRITVAR1,CBIN2,WRID80
WRID73
 MOVE GSWSTR20,CBLANKS
 MOVE GSWBCD3,CVOLNO
 EDIT GSWSTR20,FRVOLID
WRID75
 PERF WRITJT,=W'12' 
 PERF WRITLO,CBIN15 
 CBL WRITVAR1,=W'4',WRID76 1,2,3,6
 CBL WRITVAR1,=W'6',WRID90 4,5
WRID76
 PERF FRMXTA,CBIN6
 PERF WTALLY
 WAIT KTALLY
 B WRID85 
WRID80
 CBG WRITVAR1,=W'3',WRID90
WRID85
 PERF FRMXTA,CBIN7
 PERF WTALLY
 WAIT KTALLY
WRID90
 RET
 PEND 
	EJECT
CLEAR8	PROC 
*     DELETE FIRST 14 CHARACTERS
*     OF LINE 8 
	MOVE	GSWBIN2,=X'1801'	INDICATE LAST LINE 
	DSC1	SCREEN,06,GSWBIN2 
	MOVE	GSWBIN2,CBIN14
	DSC1	SCREEN,02,GSWBIN2	ERASE 14 CHARS
	RET	 
	PEND 
MATCH	PROC	$FROM,$TO
	PLIT	$FROM,$TO 
	MOVE	GSWSTR2,$TO	REPLACEMENT CHARACTER 
	MOVE	GSWBIN6,CBIN3	GET STARTING POSITION 
	MOVE	GSWSTR1,$FROM	SEARCH CHARACTER
	MOVE	GSWBIN10,CBIN22	LENGTH OF SEARCH
MA0100
	MATCH	SPINPUT,GSWBIN6,GSWBIN10,GSWSTR1,CBIN0,CBIN1 
	BNOK	MA0200	SEARCH COMPLETE
	XCOPY	SPINPUT,GSWBIN6,CBIN1,GSWSTR2,CBIN0
	MOVE	GSWBIN10,CBIN22	LENGTH OF SEARCH
	SUB	GSWBIN10,GSWBIN6	SUB CHARACTERS ALREADY TESTED 
	B	MA0100	GO CONTINUE SEARCH
MA0200
	RET
	PEND 
 EJECT
************************************************* 
* 
*       FORMATS FOR WRITFD
* 
********************************************************
* 
PCKINIT FRMT
 FILLR ' ',40 
 FILLR ' ',40 
 FBT CSWFLAG,INIT10 
 FILLR X'00',48 
 FEXIT
INIT10
 FILLR ' ',48 
 FMEND
* 
FRVOLID FRMT
 FMEL '999999',CMASKDAT 
 FILLR ' ',1
 FMEL '99999',GSWBCD3 
 FMEND
* 
TREC1 FRMT
 FMEL '999',GTMSK 
 FILLR C'G',1 
 FMEL '99',CEDATNR
 FMEL '99999',CRECBCD 
 FBT CSPLITFL,TREC40
 FMEL '99',GTREGNR
 FCOPY =C'&01'
 FMEL '9999',CKMDNR 
 FBF GTKASSE,TREC40 
 FBT TTR11FLG,TREC10
 FCOPY =C'&02'
 FMEL '999999',GTDATO 
TREC10
 FCOPY =C'&03'
 FMEL '999',GTMSK 
 FBT TTR11FLG,TREC40
 FCOPY =C'&04'
 FMEL '99999',TTLBNR
TREC40
 FMEND
* 
PFRM1 FRMT
 FCOPY =C'&'
 FMEL '99',GSWBCD3
 FBP GSWBCD3,PLAB10 
 FMEL 'TTTTTTTTTTTTT9-',GTDUPF(GSWBIN5) 
 FEXIT
PLAB10
 FMEL 'TTTTTTTTTTTTT9',GTDUPF(GSWBIN5)
 FMEND
         END

Full view