|
|
DataMuseum.dkPresents historical artifacts from the history of: Philips Data Systems |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Philips Data Systems Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 20706 (0x50e2)
Notes: pts_type(SC)
Names: »DERECS.SC«
└─⟦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«
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