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

⟦65644ef85⟧

    Length: 20706 (0x50e2)
    Notes: pts_type(SC)
    Names: »DERECS.SC«

Derivation

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

PTS(SC)

	IDENT	DERECS	REL 10.0 80-04-11 
			UPD 80-05-13/DALI
			80-04-14/DALI
	DDUM	DEDDIV
	PDIV 
	ENTRY	DERECS 
 ENTRY DEREFO 
	EXT	ATTDB
	EXT	ATTWB
	EXT	RESTOR 
	EXT	SAVE 
	EXT	DEPOOL 
 EXT DEDISC 
 EXT OPCL 
 EXT UPDBOL 
 EXT UPDBIN 
 EXT OFRSP
 EXT DEPRUT 
 EXT DEREC2 
 EXT TESTB
 EXT MSKOUT 
	EJECT
DERECS	PROC FC
	CALL	RESTOR,W0,W4,PWBDB4	RESTORE RBUF
 XCOPY WORK(W10),W1,W1,RBUF,PRECCUR INITIAL STATUS
 CALL UPDBIN,BIN1 
 CLEAR BOOL9
 MOVE BIN11,FC
 IB FC,ENTNEW,ENTOLD,ENTLST,GETNXT		C 
		GETCUR,GETPRE,GETLST
 B OTHERS 
	EJECT
**********************
* ENTER NEW DATARECORD
**********************
ENTNEW			FC= 1
 XCOPY RBUF,PRECCUR,W1,BIN1,W1 REC.STATUS 
	MOVE	PRECPR,PRECCUR		
	ADD	PRECCUR,RECLNTH
	XCOPY	RBUF,W6,W2,PRECCUR,W0	STORE USED SPACE 
 CBE NUMBER,=D'0',DROK00 JUMP IF BATCHHEAD
ENTN10
 MOVE BIN14,PRECCUR 
	ADD	BIN14,RECLNTH	LOOK IF SPACE FOR ONE MOORE
 CBG BIN14,USELEN,ENTN30 JUMP IF NOT SPACE
 CLEAR DOOL4
 BNZ DROK00 
ENTN20
 CBNE FC,W7,ENTN25 JUMP IF NOT GETLST 
 CBNE NUMBER,=D'0',ENTN25 JUMP IF NOT FIRST 
 CLEAR BOOL9
 B NEWR70 
ENTN25
	XCOPY	RBUF,PRECCUR,RECLNTH,RBUF,PRECPR 
 XCOPY RBUF,PRECCUR,W1,BPOOL(PINDFR),W0 
 B DROK00 
ENTN30	PERF	DEDISC,W14	ENTER NEW SECTOR 
 BNERR ENTN40 
 MOVE PRECCUR,PRECPR
 XCOPY RBUF,W6,W2,PRECPR,W0 
 B DRNO00 
ENTN40
 XCOPY BDPOIN(W1),W0,W2,RBUF,W2 LAST ENTERED RECORD 
 TBF DEPROMPT,ENT45 JUMP IF NOT NEW FORMAT
 CBE FC,W7,ENT45 JUMP IF GETLAST
 MOVE PRECPR,PRECCUR DELETE WHOLE SECTOR
ENT45 
	XCOPY	PRECCUR,W0,W2,RBUF,W6	USED SPACE 
 CBE PRECPR,PRECCUR,ENTN55
ENTN50 SUB PRECPR,PRECCUR 
 DLETE RBUF,PRECCUR,PRECPR
ENTN55
 XCOPY RBUF,PRECCUR,W1,BPOOL(PINDFR),W0 
ENTN60
 MOVE PRECPR,PRECCUR
 EJECT
**********************
* RETURN FROM DERECS *
**********************
DROK00
 XCOPY BIN1,W1,W1,RBUF,PRECCUR
 CBNE FC,W5,DROK05
 XCOPY BIN3,W0,W2,RBUF,W6 
 B DROK10 
DROK05
 CBNE FC,W7,DROK10
 XCOPY BDPOIN(W1),W0,W2,RBUF,W2 LAST ENTERED RECORD 
DROK10
 CBE PINDFR,W0,DROK20 NO CURR FORMAT
	CALL	ATTDB,BPOOL(PINDFR),W4,W10	FORMAT DESCRIPTOR
 MOVE BIN14,FLIND(W1) 
 ATTFMT BPOOL(BIN14)
DROK20
 CALL ATTWB,RBUF,PRECCUR,W10 FIX WORKBLOCK
DROK30
 IB FC		C 
		DROK40	ENTNEW	C 
		DROK45	ENTOLD	C 
		DROK70	ENTLST	C 
		DROK70	GETNXT	C 
		DROK70	GETCUR	C 
		DROK70	GETPRE	C 
		DROK65	GETLST	C 
		DROK70	DELREC	C 
		DROK65	INSREC	C 
		DROK70	NEWREC	C 
		DROK70	OPENBC	C 
		DROK40	ENTINS	C 
		DROK40 FREREC	C 
		DROK70 NEWFRM 
DROK40
 ADD BDPOIN(W2),W1
DROK45
 TBF DBOMVR,DROK56 JUMP IF NOT MUST VERIFY
 CALL TESTB,WORK(W10),W10 LOOK IF OLD VERIFIED
 BZ DROK52 NOT! 
 TBT DBOVER,DROK56 JUMP IF NEW VERIFIED 
DROK50			RECORD TO VERIFY ENTERED 
 ADD BDPOIN(W5),W1 INCREASE NUMBER TO VERIFY
 CLEAR BDAVER VERIFIED BATCH
 SET BDAMVR BATCH TO BE VERIFIED
 B DROK56 
DROK52
 TBT DBOVER,DROK54 JUMP IF RECORD VERIFIED NOW
 CBNE FC,W2,DROK50 JUMP IF NEW RECORD 
 B DROK56 OLD RECORD
DROK54			VERIFIED RECORD
 SUB BDPOIN(W5),W1 DECREASE NUMBERS TO VERIFY 
 BNZ DROK56 ALL RECORDS NOT VERIFIED
 SET BDAVER VERIFIED BATCH
 CLEAR BDAMVR BATCH TO BE VERIFIED
DROK56			LOOK IF FORCED RECORD
 CALL TESTB,WORK(W10),W12 OLD RECORD FORCED?
 BNZ DROK57 YES!
 TBF DBOFOR,DROK60 NEW RECORD NOT FORCED
 ADD BDPOIN(W4),W1 INCREASE NUMBER OF FORCED
 SET BDAFOR BATCH WITH FORCED RECORDS 
 B DROK60 
DROK57
 TBT DBOFOR,DROK60 NEW RECORD FORCED
 SUB BDPOIN(W4),W1 DECREASE NUMBER OF FORCED
 BNZ DROK60 STILL FORCED RECORDS
 CLEAR BDAFOR BATCH WITHOUT FORCED RECORDS
DROK60
 CBE FC,W2,DROK70 JUMP IF ENTOLD
DROK65
 CBNL FC,W12,DROK70 JUMP IF RECORD INSERT 
 ADD NUMBER,=D'1' ADJUST CURRENT REC.NO 
DROK70
 CALL UPDBOL,BIN1 
DROK71
 MOVE BCDI21(W3),NUMBER 
	CMP	W1,W1 CONDITION = 0
	RET
DRNO00
 CBE PINDFR,W0,DRNO10 NO CURR. FORMAT 
	CALL	ATTDB,BPOOL(PINDFR),W4,W10	FORMAT DESCRIPTOR
DRNO10
 CALL ATTWB,RBUF,PRECCUR,W10 FIX WORKBLOCK
 CBNE PINDFR,W0,DRNO20
 CBE FC,W7,DRNO15 GETLST
 CBNE FC,W4,DRNO20 GETNXT 
DRNO15
 ADD NUMBER,=D'1' 
DRNO20
 CLEAR DOOL1
	CMP	W1,W2 CONDITION = 2
DRNO30
 MOVE BCDI21(W3),NUMBER 
	RET
FREREC			FC=13
 CBNE PRECCUR,W10,DROK10
 MOVE BDPOIN(W1),CURSEC SAVE LAST SECTOR
 PERF OFRSP,CURSEC,FILINDUS 
 B DROK10 
 EJECT
**************************************
* ENTER OLD RECORD AFTER CORRECTION. *
**************************************
ENTOLD			FC= 2
 CALL UPDBIN,BIN1 
 XCOPY RBUF,PRECCUR,W1,BIN1,W1
 MOVE BIN14,W23 
 PERF DEDISC,BIN14 WRITE CURRENT SECTOR 
 BERR DRNO00
 B DROK00 
 EJECT
************************* 
* ENTER LAST DATARECORD.
************************* 
ENTLST			FC= 3
 XCOPY BIN14,W0,W2,RBUF,W2 LINK TO PREV 
ENTL10
 XCOPY PRECCUR,W0,W2,RBUF,W6 USED SPACE 
 CBG PRECCUR,W10,ENTL20 
 CBNE BIN14,W0,ENTL15 JUMP IF NOT EMPTY BATCH 
 MOVE BIN13,=W'27'
 PERF DEDISC,BIN13	DELETE BATCH 
 BERR DRNO00
 B DROK71 
ENTL15
 PERF DEDISC,W17 DELETE SECTOR
 BERR DRNO00
 MOVE CURSEC,BIN14
 B GETL05 
ENTL20
 MOVE BDPOIN(W1),CURSEC 
 PERF DEDISC,W8 ENTER LAST
 BERR ENTL30
 XCOPY RBUF,W2,W2,BIN14,W0
 XCOPY RBUF,W6,W2,PRECCUR,W0
 MOVE CURSEC,BDPOIN(W1) 
 B GETL20 GET LAST RECORD 
ENTL30
 MOVE BDPOIN(W1),BIN14
 B DRNO00 
	EJECT
*********************** 
* GET NEXT RECORD 
*********************** 
GETNXT			FC= 4
 XCOPY BIN14,W0,W2,RBUF,W6
 MOVE PRECPR,PRECCUR
 MOVE BIN13,PRECCUR 
 ADD BIN13,W7 GET RECLNTH IN DATRECORD
 XCOPY RECLNTH,W0,W2,RBUF,BIN13 
 ADD PRECCUR,RECLNTH
 MOVE BIN13,PRECCUR 
 MOVE BIN12,CURSEC SAVE CURRENT SECTOR
	CBL	PRECCUR,BIN14,GETN43	JUMP IF MOORE IN SECTOR 
GETN10
	XCOPY	BIN13,W0,W2,RBUF,W4	GET NEXT LINK
	CBNE	BIN13,W0,GETN30	JUMP IF MOORE SECTORS 
GETN20
 MOVE PRECCUR,PRECPR
GETN25
 MOVE CURSEC,BIN12 RESTORE CURRENT SECTOR 
 MOVE BIN13,=W'33'
 PERF DEDISC,BIN13
 CBNE DEBINW4,W0,DRNO00 
GETN28
	MOVE	DEBINW4,W15	NO MOORE RECORDS
	B	DRNO00 
GETN30
	PERF	DEDISC,W15	READ NEXT SECTOR 
	BERR	DRNO00
	XCOPY	BIN13,W0,W2,RBUF,W6	GET USED SPACE 
 CBNE BIN13,W10,GETN40 JUMP IF NOT EMPTY
 PERF DEDISC,W17 DELETE SECTOR
 BERR GETN20
 B GETN10 
GETN40	MOVE	BIN14,BIN13 
 MOVE PRECCUR,W10 
 MOVE PRECPR,PRECCUR
* 
 MOVE BIN13,PRECCUR 
GETN43
 ADD BIN13,W7 GET RECLNTH IN DATRECORD
 XCOPY RECLNTH,W0,W2,RBUF,BIN13 
GETN45
 ADD NUMBER,=D'1' INCREASE CURR RECNO 
GETN50
 CMP BCDI21(W3),NUMBER
 BG GETNXT READ NEXT DATARECORD 
 BE GETN55 RECORD FOUND 
 B GETPRE READ PREV DATASECTOR
GETN55
 MOVE BIN15,W0
 XCOPY BIN15,W0,W1,RBUF,PRECCUR RECORDSTATUS
 CALL MSKOUT,BIN15,WORK(W12) MSK-WORD 
 CBE BIN15,WORK(W11),GETN70 
 CBE FC,W6,GETN60 JUMP IF GETPREV 
 CBE FC,W3,GETN60 OR ENTLST 
	CBE	FC,W8,GETN60	OR DELETE 
 ADD BCDI21(W3),=D'1' INCREASE SEARCHNUMBER 
 B GETNXT READ NEXT RECORD
GETN60
 CBE NUMBER,=D'0',GETN70 BATCHHEAD REACHED
 SUB BCDI21(W3),=D'1' 
 B GETPRE GET PREVIOUS RECORD 
GETN70
 MOVE BIN13,PRECCUR 
 ADD BIN13,W1 
 B GETL90 
 EJECT
***************************** 
* GET CURRENT DATARECORD. 
***************************** 
GETCUR			FC= 5
 TBT DOOL4,GETC60 JUMP IF CORRECTION
 CBE NUMBER,=D'0',GETC60 OR BATCHHEAD 
 XCOPY BIN11,W0,W2,RBUF,W4 LINK TO NEXT 
 CBNE PRECPR,PRECCUR,GETC10 JUMP IF NOT THE 
			FIRST RECORD WITHIN SECTOR 
 B GETP10 GET PREVIOUS RECORD 
GETC10
 MOVE BIN13,W1
 ADD BIN13,PRECPR LOOK FOR FORMATNAME 
GETC20
 COPY STR6A,W0,W6,RBUF,BIN13
 XCOPY BIN13,W0,W2,RBUF,W4
 CBNE BIN13,W0,GETC40 JUMP IF NOT LAST
			ENTERED SECTOR 
 CBNE STR6A,FORMAT,GETC30 
 CMP FC,W7
 BZ ENTN10 JUMP IF GETLST 
 B ENTN25 
GETC30 SET DEPROMPT 
 B DROK00 
GETC40
 XCOPY RBUF,W2,W2,CURSEC,W0 LINK PREV 
 MOVE CURSEC,BIN13
 XCOPY RBUF,W4,W2,BIN11,W0 LINK TO NEXT 
 MOVE PRECCUR,W10 
 XCOPY RBUF,W6,W2,PRECCUR,W0 USED SPACE 
 CBNE STR6A,FORMAT,GETC50 
 B ENTN50 
GETC50
 SET DEPROMPT 
 B ENTN60 
GETC60
 MOVE BIN13,=W'33'
 PERF DEDISC,BIN13
 BERR DRNO00
 B DROK00 
 EJECT
***************************** 
* GET PREVIOUS DATARECORD.
***************************** 
GETPRE			FC= 6
 CBNL PRECPR,PRECCUR,GETP10 
 B GETL40 
GETP10
 CBE PRECCUR,W10,GETP20 
 B GETL20 
GETP20
 MOVE BIN12,CURSEC SAVE CURRENT SECTOR
GETP30
 XCOPY BIN13,W0,W2,RBUF,W2 LINK PREV
 CBNE BIN13,W0,GETP40 
 B GETN20 
GETP40
	XCOPY	BIN13,W0,W2,RBUF,W6	GET USED SPACE 
 CBNE BIN13,W10,GETP45
 CBE FC,W5,GETP45 
 MOVE BIN14,W17 DELETE SECTOR 
 B GETP48 
GETP45
 MOVE BIN14,W16 GET PREVIOUS SECTOR 
GETP48
 PERF DEDISC,BIN14
 BERR GETN20
GETP50
	XCOPY	BIN13,W0,W2,RBUF,W6	GET USED SPACE 
 CBE BIN13,W10,GETP30 
 CBE BIN14,W17,GETL05 DELETED SECTOR
 B GETL15 
 EJECT
***************************** 
* GET THE LAST DATARECORD.
***************************** 
GETLST			FC= 7
 MOVE BIN12,CURSEC
 CBE BDPOIN(W1),W0,GETL05 LAST SECTORADRESS 
 CBE CURSEC,BDPOIN(W1),GETL15 CURR.SEC IN RBUF
 MOVE CURSEC,BDPOIN(W1) 
GETL05
 MOVE BIN14,=W'33'
 PERF DEDISC,BIN14
GETL10
 BERR GETN25
GETL15 XCOPY PRECCUR,W0,W2,RBUF,W6
GETL20
 MOVE BIN14,W17 
 MOVE PRECPR,W10
GETL25
 XCOPY BIN13,W0,W2,RBUF,BIN14 
 CBE BIN13,W0,GETL27 ERROR IN SECTOR
 ADD PRECPR,BIN13 
 ADD BIN14,BIN13
 CBL PRECPR,PRECCUR,GETL25
 CBE PRECPR,PRECCUR,GETL30 LAST RECORD FOUND
GETL27			SERIOUS ERROR
 XCOPY RBUF,W6,W2,PRECPR,W0 OCCUPIED SPACE
 MOVE PRECCUR,PRECPR
 B GETN28 
GETL30 SUB PRECPR,BIN13 
GETL40 MOVE BIN13,PRECPR
 ADD BIN13,W1 
 CBNE FC,W5,GETL50 JUMP BACK IF GET 
 B GETC20 CURRENT RECOPRD 
GETL50
 CBE FC,W7,GETL60 JUMP IF GETLST
 MOVE PRECCUR,PRECPR
 SUB NUMBER,=D'1' 
 CBE FC,W3,GETL53 JUMP IF ENTLST
 CBNE FC,W8,GETL55
GETL53
 MOVE BCDI21(W3),NUMBER ENT LAST RECORD 
GETL55
 B GETN50 
GETL60
 MOVE NUMBER,BDPOIN(W2) 
GETL90
 COPY DEINPUT,W0,W6,RBUF,BIN13
 SET BOOL9
 B NEWREC 
 EJECT
OTHERS
 SUB BIN11,W7 ADJUST FOR DEREC2 
 IB BIN11,DELREC,INSREC,NEWREC,OPENBC,ENTINS,FREREC		C
		NEWFRM
* DELETE CURRENT RECORD. *
DELREC
 PERF DEREC2,BIN11
 BERR GETN25 HANDLE ERROR 
DELR60 CBE BIN14,W17,GETP50 
 B GETPRE 
* RESERV SPACE FOR INSERTION *
* OF A NEW DATARECORD.       *
INSREC			FC= 9
 PERF DEREC2,BIN11
 BERR DRNO00
 B DROK00 
 EJECT
********************
* CHANGE FORMAT PROG
********************
NEWREC			FC=10
 CBE FC,W4,NEWR05 JUMP IF GETNXT
 CBNE NUMBER,=D'0',NEWR05 JUMP IF NOT BATCHHEAD 
 CBE FC,W7,NEWR07 JUMP IF GETLST
 MOVE BIN13,W20 
 B NEWR32 
NEWR05
 TBF DOOL8,NEWR10 
NEWR07
 MOVE BIN13,W1
 B NEWR32 
NEWFRM
	SET	BOOL9
NEWR10
 TBF BOOL9,NEWR15 
 MOVE BIN13,W1
 MOVE DEBINW4,W10 
 B NEWR20 
NEWR15
 MOVE BIN13,W11 
 MOVE DEBINW4,W20 
NEWR20
 MOVE STR6A,DEINPUT 
NEWR25 CBE STR6A,FORTAB(BIN13),NEWR30 
 ADD BIN13,W1 
 CBNE BIN13,DEBINW4,NEWR25
	TBF	BOOL9,NEWR28 
	CBG	BIN13,W10,NEWR28 
	MOVE	BIN13,W0
	B	NEWR35 
NEWR28
 MOVE DEBINW4,W18 
 B DRNO00 
NEWR30
 TBT BOOL9,NEWR35 
 SUB BIN13,W10
NEWR32
	MOVE	STR6A,FORTAB(BIN13) 
NEWR35
 CBNE FORMAT,STR6A,NEWR37 
 TBF BOOL9,NEWR34 
 CBE FC,W14,NEWR36
 B NEWR74 
NEWR34
 TBF DOOL8,NEWR36 JUMP IF NOT BATCHHEAD 
 B ENTN10 ENTRY NEW BATCHHEAD 
NEWR36
 B DROK00 
NEWR37 MOVE DEINPUT,HEX00 
 COPY DEINPUT,W0,W6,STR6A,W0
 CBE FC,W4,NEWR40 JUMP IF GETNXT
 CBE FC,W7,NEWR40 JUMP IF GETLST
 CBNE NUMBER,=D'0',NEWR40 
 MOVE FRMTPNTR,SYMREC(W10)
 B NEWR45 
NEWR40
	CBNE	BIN13,W0,NEWR43 
	MOVE	FRMTPNTR,W0 
	B	NEWR45 
NEWR43
 MOVE FRMTPNTR,SYMREC(BIN13)
NEWR45
 PERF DEDISC,W10 GET FORMAT 
 BOK NEWR49 
 CBE DEBINW4,W13,NEWR46 NO BUFFERSPACE
 CBE PINDFR,W0,NEWR47 NO CURRENT FORMAT 
 CBE DEBINW4,W9,NEWR28 NOT FOUND
 B DRNO00 
NEWR46
 ATTFMT FFETCH ATTACH DUMMYFORMAT 
 DISPLAY 0,W1,W0
 THOME
 CBNE PINDFR,W0,NEWR48 ATTACHED FORMAT
NEWR47
 MOVE BIN13,W7
 ADD BIN13,PRECCUR
 CBNE FC,W7,NEWR44 NOT GETLST 
 MOVE BIN14,W7
 ADD BIN14,PRECPR 
 XCOPY RBUF,BIN13,W2,RBUF,BIN14 
NEWR44
 XCOPY RECLNTH,W0,W2,RBUF,BIN13 
 B DRNO00 
NEWR48
 PERF DEPOOL,W6,PINDFR,BIN14,STRG10A
 MOVE FORMAT,HEX00
 B NEWR35 
NEWR49
 MOVE FORMAT,DEINPUT
 CBE FC,W4,NEWR50 JUMP IF GETNXT
 CBE FC,W7,NEWR50 JUMP IF GETLST
	CBNE	BIN13,W0,NEWR53 
	CLEAR	BOOL9
	B	NEWR51 
NEWR53
 CBE NUMBER,=D'0',NEWR55 JUMP IF BATCHHEAD
NEWR50
 CBNE BIN13,W0,NEWR52 EXIST IN JOBDEFINITION
NEWR51
 MOVE SYMBOL,FORMAT NO SYMBOLIC 
 B NEWR65 
NEWR52
 MOVE SYMREC(BIN13),FRMTPNTR
 ADD BIN13,W10
 B NEWR60 
NEWR55
 MOVE SYMREC(W10),FRMTPNTR
NEWR60
 MOVE SYMBOL,FORTAB(BIN13)
NEWR65
 SET DEPROMPT 
NEWR70
 MOVE BIN13,PRECCUR 
 TBT BOOL9,NEWR77 
NEWR75
 XCOPY RBUF,BIN13,W1,BPOOL(PINDFR),W0 
 B NEWR80 
NEWR77
 CBE FC,W14,NEWR75
NEWR74
 CBNE FC,W7,NEWR78
 CBE NUMBER,=D'0',NEWR76 BATCHHEAD
 XCOPY RBUF,PRECCUR,W9,RBUF,PRECPR
 PERF DEREFO
 BNOK DRNO30
NEWR76
 B ENTN10 
NEWR78
 PERF DEREFO
 BNOK DRNO30
 B DROK00 
NEWR80
 ADD BIN13,W1 
 XCOPY RBUF,BIN13,W6,FORMAT,W0
 ADD BIN13,W6 
 XCOPY RBUF,BIN13,W2,RECLNTH,W0 
 CBNE FC,W11,NEWR90 JUMP IF NOT OPEN BC 
 B DROK00 
NEWR90
 SET DOOL4
 B ENTN10 
 EJECT
**************************************
* 
* READ IN CURRENT JOBDEFINITION AND 
* OPEN WANTED BATCH.
* 
**************************************
OPENBC			FC=11
 PERF DEREC2,BIN11
 BNOK DRNO20
 CALL TESTB,RECFIL,FILINDUS LOOK IF RECOVERY
 BZ OPBC05 JUMP IF NOT
 TEST DOOL1 LOOK IF THIS BATCH
			IS TO BE RECOVERED 
 BZ DROK71 NOT RECOVERY 
 B DROK00 RECOVERY
OPBC05
 CBE BIN11,W7,OPBC07
 CBNE BIN11,W5,OPBC10 
* SEARCH OR CONVERSION MODE 
OPBC07
 IB BIN12,DROK71,DROK71,OPBC20,DROK00 
OPBC10
 TEST DOOL8 
 BZ DROK00
 CALL TESTB,RECFIL,FILINDUS LOOK IF RECOVERY
 BNZ DROK00 YES 
 SUB BDPOIN(W2),W1
 B NEWR70 
OPBC20			PROGRAM 53 SEARCRECORD 
 MOVE DEBINW3,BCDI21(W3)
 CMP DEBINW3,BDPOIN(W2) 
 BNG GETN50 
 MOVE NUMBER,BDPOIN(W2) 
 PERF DEPOOL,W6,PINACC,DEBINW3,STRG10A
 PERF DEPOOL,W6,PJOBCUR,DEBINW3,STRG10A 
 MOVE DEBINW4,W9
 B DRNO20 
ENTINS			FC=12
 PERF DEREC2,BIN11
 B ENTOLD 
 PEND 
 EJECT
********************************* 
* 
* THIS ROUTINE CHECKS THAT THE
* OCCUPIED RECORDSIZE WITHIN THE
* FORMAT NOT HAS BEEN CHANGED 
* SINCE THE RECORD WAS STORED ON
* DISC. 
* BAD RESULT IS OVERFLOW. 
* 
********************************* 
DEREFO PROC 
 MOVE DEBINW4,W7
 ADD DEBINW4,PRECCUR
 XCOPY DEBINW3,W0,W2,RBUF,DEBINW4 
 CBNE DEBINW3,RECLNTH,DEREF1
	CMP	W1,W1 CONDITION = 0
	RET
DEREF1
 MOVE BCD13A,DEBINW3
 MOVE DEBINW4,=W'38'
 DIV W0,W0 CONDITION =3 
 RET
 PEND 
FFETCH FRMT 
 FSL
 FTEXT 'FETCHING FORMAT:' 
 FCOPY DEINPUT
 FTEXT ' FROM DISC.'
 FNL
 FKI 1,ALPHA
 FCOPY HEX00
 FMEND
 END

Full view