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

⟦3625ab594⟧

    Length: 14226 (0x3792)
    Notes: pts_type(SC)
    Names: »DEREC2.SC«

Derivation

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

PTS(SC)

	IDENT	DEREC2	REL 10.0 80-04-11 
			80-04-14/DALI
	DDUM	DEDDIV
	PDIV 
 ENTRY DEREC2 
 ENTRY DEOPBC OPEN BATCH-ROUTINE
* 
*        EXTERNAL REFERENCES TO SCREEN
* 
	EXT	DECLRA 
 EXT DECLRD 
	EXT	DERR 
 EXT DERROR 
* 
*        EXTERNAL REFERENCES FOR DISC-ROUTINES
 EXT DEDISC 
 EXT RESTOR 
 EXT DERECS 
 EXT DEREFO 
 EXT UPDBOL 
 EXT UPDBIN 
 EXT DEACC
 EXT DELAST 
	EXT	ATTWB
	EXT	SAVE 
	EXT	DEPOOL 
 EXT OPCL 
 EXT OFRSP
 EXT DEPRUT GET PROGRAMNUMBER 
 EXT CLEARB 
 EXT CMPIND 
 EXT SETB 
 EXT TESTB
 EXT EMPTYT 
 INCLUDE DELITT 
 EJECT
DEOPBC PROC FC
**************************************
* HANDLE BATCHHEAD FORMAT 
* THESE ROUTINES USE THE DENTER-SCREEN
**************************************
 IB FC,RETUBC,ERRBC 
 CALL TESTB,RECFIL,FILINDUS LOOK IF RECOV 
 BZ OPBC00
 MOVE DEBINW4,=W'37' RECOVERY RUNNING 
 B REC060 
OPBC00
 PERF DERECS,W11
 BOK OPBC09 
 CALL TESTB,RECFIL,FILINDUS LOOK IF RECOV.
 BZ REC060
 EJECT
* 
* START RECOVERY OF THIS USERFILE 
* 
 SET DOOL3
 BNZ REC060 AN OTHER TERMINAL HAS 
			ALREADY OPENED THIS USERFILE 
			FOR RECOVERY.
 PERF DELAST,W10,DEKTAB6
 MOVE JOBNAME,HEX00 
REC050
 MOVE BATCH,HEX00 
 PERF DEDISC,W21 GET NEXT JOBNAME 
 BOK REC100 
 MOVE BCDI21(W3),W0 CLOBBERED BY RECOVERY 
 MOVE JOBNAME,STSAVE(W1)
 MOVE BATCH,STSAVE(W2)
 CBE DEBINW4,W9,REC075 NOT FOUND
 CALL CLEARB,RECFIL,FILINDUS
REC060
 MOVE BIN3,DEBINW4 SAVE ERRORCODE 
 MOVE DEBINW1,W0
 MOVE DEBINW2,W4
 B REBC20 
REC075
			RELEASE BUFFERS
 PERF DEPOOL,W6,PJOBCUR,DEBINW3,STRG10A 
 PERF DEPOOL,W6,PINACC,DEBINW3,STRG10A
 PERF DEPOOL,W6,PINDFR,DEBINW3,STRG10A
 CALL CLEARB,RECFIL,FILINDUS
 B OPBC00 
REC100
 PERF DEPOOL,W6,PJOBCUR,DEBINW3,STRG10A 
REC110
 PERF DEPOOL,W6,PINACC,DEBINW3,STRG10A
 PERF DEPOOL,W6,PINDFR,DEBINW3,STRG10A
 CALL RESTOR,W0,W4,PWBDB4 RESTORE RBUF WB10 
 MOVE BIN3,=W'34' GET NEXT BATCHNAME
 PERF DEDISC,BIN3 
 BNOK REC050
 MOVE BCDI21(W3),W0 
 PERF DERECS,W11
 BNOK REC110
 CLEAR DOOL1
 BZ REC110
 MOVE BIN3,W1 
REC150
 MOVE ACK(BIN3),=D'0' 
 ADD BIN3,W1
 CALL CMPIND,BIN3,ACK(W1) 
 BOK REC150 
 CALL UPDBOL,BDSTAT 
 MOVE BDPOIN(W2),W0 
 PERF DERECS,W5 GET CURRENT 
 BOK REC400 
REC230
 CLEAR BDAACT 
 CALL UPDBIN,BDSTAT 
 CALL RESTOR,W0,W4,PWBDB4 RESTORE RBUF WB10 
 PERF DEDISC,W18 CLOSE BATCH
 B REC110 
REC400
 CBE BIN3,W10,REC230 JUMP IF EMTY BATCH 
 PERF DELAST,W7,DEKTAB6 
OPBC05
 PERF DEACC,W0 NORMAL ACCUMULATION
 ADD BCDI21(W3),=D'1' INCREASE WANTED RECNO 
 PERF DERECS,W4 GET NEXT
 BNOK REC500
 PERF DERECS,W13
 B OPBC05 
REC500
 PERF DERECS,W3 ENTER LAST SECTOR 
 B REC230 
 EJECT
* 
* OPEN ROUTINE
* 
OPBC09
 CLEAR DOOL4 DELETE BATCH 
 BZ OPBC10
 CALL RESTOR,W0,W4,PWBDB4 RESTORE RBUF WB10 
 SET DOOL4
 MOVE BIN13,=W'27'
 PERF DEDISC,BIN13	DELETE BATCH 
 B REBC03 
OPBC10
 SET SOOL1 STATUSLINE DISPLAY 
OPBC20 CLEAR DECHANGE 
OPBC30
 MOVE DEBINW2,W0
 RET
RETUBC
 CLEAR BDAACT 
 CALL UPDBIN,BDSTAT 
 CALL RESTOR,W0,W4,PWBDB4 RESTORE RBUF WB10 
 PERF DEDISC,W18 WRITE ACCUMULATORS 
REBC03
 BNERR REBC10 
ERRBC 
 PERF DERROR,DEKTAB6
REBC10
 CLEAR SOOL1
 CLEAR SOOL2
 CLEAR DENOCHAN 
 SET DOOL5
 MOVE DEBINW2,W3
REBC20
 PERF DEPOOL,W6,PINDFR,DEBINW3,STRG10A
 PERF DEPOOL,W6,PJOBCUR,DEBINW3,STRG10A 
 PERF DEPOOL,W6,PINACC,DEBINW3,STRG10A
 PERF DEPRUT,PRNUM,BIN1,BIN2
 SET BOOL2
 CALL RESTOR,W0,W16,PWBDB4 RESTORE ORIGINATE ADRESSES TO
			WORKBLOCKS AND DESCRIPTORS 
 MOVE DEBINW4,BIN3
 RET
 PEND 
 EJECT
DEREC2 PROC FC
 IB FC,DELREC,INSREC,INSREC,OPENBC,ENTINS 
DELREC
 MOVE BIN12,CURSEC SAVE CURRENT SECTOR
 DLETE RBUF,PRECCUR,RECLNTH 
 XCOPY BIN14,W0,W2,RBUF,W6 GET USED SPACE 
 SUB BIN14,RECLNTH AND DECREASE IT WITH 
 XCOPY RBUF,W6,W2,BIN14,W0 DELETED RECLNTH
 CBE BIN14,W10,DELR20 JUMP IF EMPTY SECTOR
DELR10
 MOVE BIN14,W23 
 B DELR40 GET PREVIOUS RECORD 
DELR20
 CBNE CURSEC,BDPOIN(W1),DELR30
 XCOPY BDPOIN(W1),W0,W2,RBUF,W2 
DELR30
 MOVE BIN14,W17 
DELR40
 PERF DEDISC,BIN14 DELETE CURRENT SECTOR
 BERR DRNO00 HANDLE ERROR 
 SUB BDPOIN(W2),W1 DECREASE NUMBER OF RECORDS 
 TBF DBOFOR,DELR50
 SUB BDPOIN(W4),W1
DELR50
 MOVE BCD13A,NUMBER 
 TEST DBOMVR
 BZ DROK00
 TEST DBOVER VERIFIED RECORD
 BNZ DROK00 YES 
 SUB BDPOIN(W5),W1
 B DROK00 
 EJECT
******************************
* RESERV SPACE FOR INSERTION *
* OF A NEW DATARECORD.       *
******************************
INSREC			FC= 9
 XCOPY BIN14,W0,W2,RBUF,W6
 MOVE PRECPR,PRECCUR
 ADD PRECCUR,RECLNTH
 XCOPY BIN10,W0,W2,RBUF,W4 LINK TO NEXT 
 XCOPY RBUF,W6,W2,PRECCUR,W0 ADJUST USED SPACE
 PERF DEDISC,W14 ENTER FIRST PART OF
 BERR DRNO00 CURRENT SECTOR 
 MOVE BIN7,PRECPR 
 SUB BIN7,W10 
 DLETE RBUF,W10,BIN7 COPY LAST ENTERED
 MOVE BIN8,CURSEC SAVE CURRENT SECTOR 
 CBL PRECCUR,BIN14,INSR10 JUMP IF MORE IN SECTOR
 MOVE BIN9,BIN8 
INSR05
 XCOPY RBUF,W4,W2,BIN10,W0 LINK TO NEXT SECTOR
 MOVE BIN14,W23 
 PERF DEDISC,BIN14 WRITE CURRENT SECTOR 
 BERR DRNO00
 B INSR20 
INSR10
 PERF DEDISC,W14 ENTER NEW SECTOR 
 BERR DRNO00
 MOVE BIN9,CURSEC 
 DLETE RBUF,W10,RECLNTH 
 SUB BIN14,PRECCUR
 ADD BIN14,W10
 XCOPY RBUF,W6,W2,BIN14,W0 USED SPACE PART TWO
 B INSR05 
INSR20
 CBE BIN10,W0,INSR30 JUMP IF LAST SECTOR
 MOVE CURSEC,BIN10
 MOVE BIN13,=W'33'
 PERF DEDISC,BIN13
 BERR DRNO00
 XCOPY RBUF,W2,W2,BIN9,W0 LINK TO PREV
 MOVE BIN14,W23 
 PERF DEDISC,BIN14 WRITE CURRENT SECTOR 
 BERR DRNO00
 B INSR40 
INSR30
 XCOPY BDPOIN(W1),W0,W2,CURSEC,W0 LAST ENTERED RECORD 
INSR40
 MOVE CURSEC,BIN8 
 MOVE BIN13,=W'33'
 PERF DEDISC,BIN13
 BERR DRNO00
 MOVE PRECPR,W10
 MOVE PRECCUR,W10 
 XCOPY RBUF,PRECCUR,W1,BPOOL(PINDFR),W0 
 B DROK00 
 EJECT
**************************************
* 
* READ IN CURRENT JOBDEFINITION AND 
* OPEN WANTED BATCH.
* 
**************************************
OPENBC			FC=11
 MOVE DEBINW4,W0
 PERF DEPRUT,PRNUM,BIN11,BIN12
 CBNE BIN11,W7,OPE030 JUMP IF NOT 
 CALL EMPTYT,JOBNAME CONVERSION 
 BZ OPE050 NOT EMPTY
 B OPE100 
OPE030
 CBNE BIN11,W4,OPE035 JUMP IF NOT ENTRY 
 CBNE BIN12,W5,OPE050 JUMP IF NOT DELETE
 B OPE040 
OPE035
 CBNE BIN11,W5,OPE050 
 CBE BIN12,W3,OPE050 RECORD-LEVEL 
OPE040
 CALL TESTB,RECFIL,FILINDUS LOOK IF RECOVERY
 BZ OPE100
OPE050
 CBNE PJOBCUR,W0,OPE100 JUMP IF ALREADY 
			A JOBDEFINITION IN POOL
 MOVE DEINPUT,HEX00 
 COPY DEINPUT,W0,W6,JOBNAME,W0
 PERF DEDISC,W2 GET JOB-DEFINITION
 BNERR OPE100 
 GETFLD 0,W2,BIN3 FILED JOBNAME 
 B DRNO00 
OPE100
 TBT DOOL3,OPE250 JUMP IF USERFILE OPEN 
 PERF OPCL,W3 OPEN USERFILE 
 BOK OPE200 
 BERR OPE150
 CALL SETB,RECFIL,FILINDUS
OPE150 GETFLD 0,W3,BIN3 FIELD BATCHNAME 
 COPY DEINPUT,W0,W6,BATCH,W0
OPE170
 B OPE700 
OPE200 SET DOOL3 USERFILE OPENED
 CALL TESTB,RECFIL,FILINDUS LOOK IF RECOVERY
 BZ OPE260 JUMP IF NOT
 MOVE BIN3,=W'37' ERROR REC.RUN 
 PERF DEPOOL,W6,PJOBCUR,DEBINW3,STRG10A 
 B OPE760 
OPE250
 CALL TESTB,RECFIL,FILINDUS LOOK IF RECOVERY
 BNZ OPE300 JUMP IF RUNNING 
OPE260			LOOK IF BATCHDATA AND
			BATCHHEADER ARE TO BE USED 
 CBNE BIN11,W7,OPE265 NOT CONVERSION
 CBE PJOBCUR,W0,OPE270 OPEN USERFILE ONLY 
 MOVE BIN12,W0 ADJUST RETURNPOINT 
			IN DERECS. 
 B OPE280 
OPE265
 CBNE BIN11,W5,OPE290 JUMP IF NOT SEARCH
 IB BIN12,OPE270,OPE280,OPE300
OPE270
 MOVE BIN12,W1 ADJUST RETURNPOINT 
			IN DERECS. 
 B DROK00 
OPE280
 MOVE STR6A,HEX00 
 CBE BATCH,STR6A,OPE270 
 B OPE300 
OPE290
 TBF DOOL8,OPE300 
 PERF DEDISC,W6 OPEN NEW
 BOK OPE380 
 B OPE690 
OPE300
 PERF DEDISC,W7 OPEN OLD
 BNOK OPE350
	XCOPY	BIN13,W0,W2,RBUF,W6	GET USED SPACE 
 CBNE BIN13,W10,OPE380 NOT EMPTY BATCH! 
 MOVE DEBINW4,W9 NOT FOUND
 B OPE695 DELETE BATCH
OPE350
 CBNE DEBINW4,=W'27',OPE170 B OPE700
 CBNE BIN11,W5,OPE170 JUMP IF NOT SEARCH
 CBE BIN12,W3,OPE170 RECORD-LEVEL 
 B DROK00 
OPE380
 CALL ATTWB,BPOOL(PINACC),W2,W13
 CALL UPDBOL,BDSTAT 
 CALL TESTB,RECFIL,FILINDUS 
 BZ OPE400 JUMP IF NOT RECOVERY 
 TBT BDAACT,OPE560 JUMP IF BATCH IS TO
			BE RECOVERED 
 B DROK00 BATCH WILL NOT BE OPENED
OPE400			THOS IS A NORMAL OPEN
 CBNE BIN11,W5,OPE410 JUMP IF NOT SEARCH
 CBE BIN12,W3,OPE550 RECORD-LEVEL 
 TBF BDAACT,OPE405
 SET DOOL1
OPE405
 B DROK00 
OPE410
 CBNE BIN11,W4,OPE415 JUMP IF NOT ENTRY 
 CBNE BIN12,W5,OPE415 AND NOT DELETE
 MOVE BIN11,BIN12 
 B OPE270 
OPE415
 TBF DOOL8,OPE420 JUMP IF OPEN OLD
 TBF DOOL7,OPE540 JUMP IF NOT TESTBATCH 
 SET BDATES 
 B OPE540 
OPE420
 TBT DOOL7,OPE460 JUMP IF TESTENTERING
 TBF BDATES,OPE500 JUMP IF NOT TESTBATCH
OPE440
 MOVE DEBINW4,=W'33' ERROR
 B OPE710 
OPE460
 TBT BDATES,OPE540 JUMP IF TESTBATCH
 MOVE DEBINW4,=W'34' ERROR
 B OPE710 
OPE500
 TBF VERIFM,OPE540
 TBT BDAMVR,OPE540
OPE520
 MOVE DEBINW4,W8
 B OPE710 
OPE540
 CBE BIN11,W7,OPE580 CONVERSION 
OPE550
 SET BDAACT BATCH DURING ENTERING 
 BZ OPE580
OPE560			RECOVERYOPENED BATCH 
 SET DOOL1
 B OPE680 
OPE580
 CALL TESTB,RECFIL,FILINDUS LOOK IF RECOV.
 BNZ DROK00 
 CBNE BIN11,W7,OPE620 JUMP IF NOT 
 MOVE BIN12,W4 RETURN TO DROK00 IN DERECS 
 B OPE680 
OPE600
 MOVE DEBINW4,W4
 B OPE710 
OPE620
 TBT DOOL8,OPE640 JUMP IF OPEN NEW
OPE630
 TBT BDAFRO,OPE600 FROZEN BATCH 
OPE640
 CLEAR BDABAL 
 CALL UPDBIN,BDSTAT 
 CALL RESTOR,W0,W4,PWBDB4 RESTORE RBUF WB10 
 PERF DEDISC,W18 WITE BATCHDATA 
 BNOK OPE690
 TBF DOOL8,OPE660 JUMP IF OPEN OLD
 MOVE BIN13,W23 WRITE CURR.SECTOR 
 MOVE RBUF,HEX00
 XCOPY RBUF,W6,W2,W10,W0 USED SPACE 
 B OPE670 
OPE660
 MOVE BIN13,=W'33' READ CURR.SECTOR 
OPE670
 PERF DEDISC,BIN13
 BNOK OPE690
OPE680
 CALL ATTWB,BPOOL(PJOBCUR),W0,W12 
 MOVE PINDFR,W0 
 CALL TESTB,RECFIL,FILINDUS LOOK IF RECOV.
 BNZ OPE681 YES!
 CBE BIN11,W5,OPE683 SEARCH RECORD-LEVEL
OPE681
 MOVE DEINPUT,FORTAB(W20) GET NAME OF BATCHHEAD 
 MOVE FRMTPNTR,SYMREC(W10)
 PERF DEDISC,W10 GET FORMAT 
 BNOK OPE690
 MOVE FORMAT,FORTAB(W20) SAVE BATCHHEADNAME 
 B OPE684 
OPE683
 MOVE FORMAT,HEX00 SEARCH STRART
OPE684
 MOVE PRECCUR,W10 START IN RBUF 
 CALL TESTB,RECFIL,FILINDUS LOOK IF RECOV.
 BNZ OPE686 YES!
 CBE BIN11,W5,OPE688 SEARCH RECORD-LEVEL
OPE686
 TBT DOOL8,OPE685 
 PERF DEREFO
 BOFL OPE710
OPE685
 MOVE SYMREC(W10),FRMTPNTR
OPE688
 SET DEPROMPT 
 CALL ATTWB,BPOOL(PINACC),W2,W13
 MOVE PRECPR,PRECCUR
 MOVE NUMBER,W0 
 CALL UPDBIN,BIN1 
 B DROK00 
OPE690
 TBF DOOL8,OPE710 JUMP IF OPEN OLD
 CBE DEBINW4,W8,OPE700 JUMP IF ERROR
			IS ALREADY DEFINED 
			IF SO DELETE CURRENT BATCH 
OPE695
 MOVE BIN3,DEBINW4
 MOVE BIN13,=W'27'
 PERF DEDISC,BIN13	DELETE BATCH 
 MOVE DEBINW4,BIN3
OPE700
 MOVE BIN4,W3 
 MOVE BIN3,DEBINW4 SAVE ERRORCODE 
 B OPE720 
OPE710
 MOVE BIN4,W0 
 MOVE BIN3,DEBINW4 SAVE ERRORCODE 
 PERF DEPOOL,W6,PINACC,DEBINW3,STRG10A
OPE720
 GETFLD 0,BIN4,DEBINW4 GET LAST FIELD 
 CBE BIN11,W7,OPE760
 CALL TESTB,RECFIL,FILINDUS RECOVERY? 
 BNZ OPE760 YES!
 PERF DEPOOL,W6,PJOBCUR,DEBINW3,STRG10A 
 CLEAR DOOL3
 BZ OPE760
 PERF OPCL,W4 CLOSE USERFILE
OPE760
 CALL RESTOR,W0,W4,PWBDB4 RESTORE RBUF WB10 
 MOVE DEBINW4,BIN3
* 
 B DRNO00 
 EJECT
ENTINS			FC=12
	ADD	PRECCUR,RECLNTH
	XCOPY	RBUF,W6,W2,PRECCUR,W0	STORE USED SPACE 
 MOVE PRECCUR,W10 
DROK00
 CMP W1,W1
 RET
DRNO00
 CMP W1,W0
 RET
 PEND 
 END

Full view