|
|
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: 11072 (0x2b40)
Notes: pts_type(SC)
Names: »DISC.SC«
└─⟦48601905a⟧ Bits:30009668 Philips computer tape "600121"
└─⟦this⟧ »S:DU/DISC.SC«
└─⟦79fbed147⟧ Bits:30009697 Philips computer tape "600414"
└─⟦this⟧ »S:DU/DISC.SC«
└─⟦d2a299635⟧ Bits:30009698 Philips computer tape "600415"
└─⟦this⟧ »S:DU/DISC.SC«
IDENT DISC PRR 1.0 79-06-19/AST * ********************************************************** * * THIS MODULE HANDLES ALL DISC IN- AND OUTPUT. * * AFTER EXECUTION, THE DATA-ITEM DEBINW4 WILL BE SET AS * FOLLOWS: * 0 = NO ERROR * 20 = NO SYSTEMDISC IN SYSTEM * 21 = NO DISC IN SPECIFIED UNIT * 22 = DISC I/0-ERROR * 23 = DISC NOT OPERABLE * *********************************************************** DDUM DDINIT PDIV EXT CHANFC EXT WAIT EXT RELEAS EXT EMPTYT EXT MASK EXT DEPOOL EXT GETIND EXT DEDISC EXT NOFFRE EXT POOL EXT ATTWB EXT RESTOR ENTRY RDDS ENTRY WRDS ENTRY DISU ENTRY OPCL ENTRY COND ENTRY WRFSP ENTRY REFSP WEOF EQU 3 CLOSE FILE EJECT OPCL PROC FUCO MOVE DEBINW4,W0 IB FUCO C OPENSY C CLOSSY C OPENUS C CLOSUS OPENSY TBF BOOLA1,GOON SWITCH B OPENSY GOON SET SWITSY BNZ OPENSY04 SET BOOLA1 CLEAR SWIT04 INCREASE DISC-COUNTER ADD FCOUNTER(W1),W1 ALREADY ASSIGNED? CBG FCOUNTER(W1),W1,OPENSY04 CALL CHANFC,DISK,FILECODE(W1) MOVE STRG10A,=C'SYSFIL ' MOVE JOBNAME,FVOLNAME(W1) ASSIGN DISK,0,DEBINW4,STRG10A,JOBNAME BOK OPENSY02 OPENSY06 DSC0 DISK,WEOF CLEAR SWITSY MOVE DEBINW4,W20 SUB FCOUNTER(W1),W1 B OPENSY04 OPENSY02 MOVE LRUQUE,HEX00 MOVE DKBIN1,W1 DES1 MOVE RPOOL(DKBIN1),=X'5800' ADD DKBIN1,W1 CBNE DKBIN1,W21,DES1 PERF NOFFRE,DEBIN1,W1 MOVE FNOOFREC(W1),DEBIN1 PERF DISU,W1,W1,SYSBUF XCOPY F95PROC(W1),W0,W2,SYSBUF,W5 XCOPY FRINF(W1),W0,W2,SYSBUF,W1 PERF POOL BNOK OPENSY06 MOVE FINDEXPO(W1),DKBIN1 PERF REFSP,W2,W1 BOK OPENSY07 MOVE DKBIN2,FINDEXPO(W1) PERF DEPOOL,W6,DKBIN2,DKBIN2,STRG10A B OPENSY06 OPENSY07 READ SYSTEM VARIABLES PERF DEDISC,W19 OPENSY04 CLEAR BOOLA1 PERF COND SET CONDITION-REG RET CLOSSY TBF SWITSY,CLOSSY02 CLEAR SWITSY SUB FCOUNTER(W1),W1 CBG FCOUNTER(W1),W0,CLOSSY02 PERF WRFSP,W1 BNOK CLOSSY01 PERF DISU,W1,W1,SYSBUF BNOK CLOSSY01 PERF DISU,W2,W1,SYSBUF BNOK CLOSSY01 RELEASE FREESPACE-POOL MOVE DKBIN2,FINDEXPO(W1) PERF DEPOOL,W6,DKBIN2,DKBIN2,STRG10A CLOSSY01 CALL CHANFC,DISK,FILECODE(W1) DSC0 DISK,WEOF CLOSE FILE CLOSSY02 PERF COND RET OPENUS TBF BOOLA2,GOONN SWITCH B OPENUS OPENUS0E PERF DISU,W3,W1,RBUF BERR OPENUS03 PERF SETUSE BERR OPENUS03 B OPENUS01 GOONN SET SWITUS BNZ OPENUS0C SET BOOLA2 CLEAR SWIT01 ADD FCOUNTER(FILINDUS),W1 CBG FCOUNTER(FILINDUS),W1,OPENUS0E CALL CHANFC,DISK,FILECODE(FILINDUS) MOVE STRG10A,=C'PTS-DE ' MOVE STR6A,FVOLNAME(FILINDUS) ASSIGN DISK,0,DEBINW4,STRG10A,STR6A BNOK OPENUS02 PERF NOFFRE,DEBIN1,FILINDUS BOK OPENUS0D SET SWIT01 OPENUS0D MOVE FNOOFREC(FILINDUS),DEBIN1 PERF DISU,W3,W1,RBUF BERR OPENUS02 OPENUS0A XCOPY F95PROC(FILINDUS),W0,W2,RBUF,W5 GET FILESTATUS MOVE DKBIN1,W0 XCOPY DKBIN1,W1,W1,RBUF,W0 XCOPY FRINF(FILINDUS),W0,W2,RBUF,W1 FILE CLOSED? CBE DKBIN1,W0,USCLS SET SWIT01 USCLS XCOPY RBUF,W0,W1,W7,W1 PERF DISU,W4,W1,RBUF BOK OPENUS0B SET SWIT01 OPENUS0B PERF SETUSE BERR OPENUS02 MOVE DKBIN3,W1 MOVE DKBIN2,W1 PERF DEPOOL,W2,DKBIN3,DKBIN2,STRG10A BNOK OPENUS02 MOVE FINDEXPO(FILINDUS),DKBIN3 PERF REFSP,W2,FILINDUS PERF RELEAS BOK OPENUS01 MOVE DKBIN1,FINDEXPO(FILINDUS) PERF DEPOOL,W6,DKBIN1,DKBIN2,STRG10A OPENUS02 DSC0 DISK,WEOF MOVE DEBINW4,W21 OPENUS03 CLEAR SWITUS SUB FCOUNTER(FILINDUS),W1 B OPENUS0C OPENUS01 TBF SWIT01,OPENUS0C MOVE DEBINW4,=W'-2' OPENUS0C CLEAR BOOLA2 PERF COND RET CLOSUS TBF SWITUS,CLOSUS01 CLEAR SWITUS SUB FCOUNTER(FILINDUS),W1 BP CLOSUS01 PERF WRFSP,FILINDUS PERF RELEAS BNOK CLOSUS02 MOVE DKBIN1,FINDEXPO(FILINDUS) PERF DEPOOL,W6,DKBIN1,DKBIN2,STRG10A PERF DISU,W3,W1,RBUF BNOK CLOSUS02 XCOPY RBUF,W0,W1,W0,W1 PERF DISU,W4,W1,RBUF BNOK CLOSUS02 CALL CHANFC,DISK,FILECODE(FILINDUS) CLOSUS02 DSC0 DISK,WEOF CLOSUS01 PERF COND RET PEND SETUSE PROC XCOPY SECLEN,W0,W2,RBUF,W9 CBNE SECLEN,W0,SETCOP MOVE SECLEN,=W'399' SETCOP XCOPY DKBIN1,W0,W2,RBUF,W7 CBNE DKBIN1,W0,SETNOZ MOVE DKBIN1,W1 SETNOZ MUL DKBIN1,SECLEN CALL GETIND,RBUF,DKBIN2,DKBIN3 CBNG DKBIN1,DKBIN2,SETOKA MOVE DEBINW4,W22 MOVE BCD13A,=D'0' B SETRET SETOKA MOVE USELEN,DKBIN1 SUB DKBIN1,W15 MOVE MAXOCC,DKBIN1 SETRET PERF COND RET PEND EJECT DISU PROC FUZ,RECNO,BUF IB FUZ C READSY C WRITSY C READUS C WRITUS READSY CALL CHANFC,DISK,FILECODE(W1) MOVE DKBIN1,SYSLEN RREAD .NEA,DISK,BUF,DKBIN1,RECNO BOK READSY01 PERF DKER TBT NEWVOL,READSY READSY01 CBNE DEBINW4,W0,ROUT CALL EMPTYT,SYSBUF BZ ROUT MOVE DEBINW4,=W'30' ROUT PERF COND RET WRITSY CALL CHANFC,DISK,FILECODE(W1) RWRITE DISK,BUF,RECNO BOK WRITSY01 PERF DKER TBT NEWVOL,WRITSY WRITSY01 PERF COND RET READUS CALL CHANFC,DISK,FILECODE(FILINDUS) MOVE DKBIN1,SECLEN RREAD .NEA,DISK,BUF,DKBIN1,RECNO BOK READUS01 PERF DKER TBT NEWVOL,READUS READUS01 PERF COND RET WRITUS CALL CHANFC,DISK,FILECODE(FILINDUS) RWRITE DISK,BUF,RECNO BOK WRITUS01 PERF DKER TBT NEWVOL,WRITUS WRITUS01 PERF COND RET PEND EJECT * * SUBROUTINE RDDS AND WRDS: READ AND WRITE D/E-RECORDS WITH A LENGTH O * MORE DATASECTORS ON DISC. THE LENGTH OF THE D/E-RECORD IS GIVEN BY ' * 'USELEN' IS SET AFTER FILE-ASSIGNMENT FOR RESP. TASK DEPENDING ON A * FIRST RECORD OF THE USERFILE. * RDDS PROC RNR MOVE FLIND(W20),BIN13 MOVE BIN13,W3 RDDS02 MOVE FLIND(W21),BIN14 MOVE FLIND(W22),USELEN MOVE BIN14,RNR RDDS01 PERF DISU,BIN13,BIN14,RBUF BERR READY SUB FLIND(W22),SECLEN BNP READY CALL ATTWB,RBUF,SECLEN,W10 ADD BIN14,W1 B RDDS01 READY CALL RESTOR,W0,W4,PWBDB4 MOVE BIN13,FLIND(W20) MOVE BIN14,FLIND(W21) PERF COND RET PEND * WRDS PROC RNR MOVE FLIND(W20),BIN13 MOVE BIN13,W4 B RDDS02 PEND EJECT ************************************************************ * * SUBROUTINE DKER * * PURPOSE: SPECIFIES DISK-ERROR * * CHANGED ITEMS: DKBIN1,DKBIN2,DEBINW4 * ************************************************************ * DKER PROC CLEAR NEWVOL XSTAT DISK,DKBIN1 MOVE BCD13A,DKBIN1 MOVE DKBIN2,=X'8022' CALL MASK,DKBIN1,DKBIN2 BZ DKER10 MOVE DEBINW4,W22 I/O-ERROR RET DKER10 MOVE DKBIN2,=X'800' CALL MASK,DKBIN1,DKBIN2 BZ DKER20 MOVE DEBINW4,=W'30' NO DATA RET DKER20 MOVE DKBIN2,W128 CALL MASK,DKBIN1,DKBIN2 BZ DKER30 SET NEWVOL NEW VOLUME LOADED RET DKER30 MOVE DKBIN2,W1 CALL MASK,DKBIN1,DKBIN2 BZ DKER40 MOVE DEBINW4,=W'23' DISC NOT OPERABLE DKER40 RET PEND EJECT * * SET CONDITION-REGISTER * COND PROC CBL DEBINW4,W0,CON1 CBE DEBINW4,W0,CON0 CMP W1,W2 RET CON1 CMP W2,W1 RET CON0 CMP W1,W1 RET PEND * * WRITE FREESPACE-RECORD * WRFSP PROC MAX PERF WAIT MOVE DKBIN1,FINDEXPO(MAX) COPY SYSBUF,W0,W10,RPOOL(DKBIN1),W9 COPY SYSBUF,W10,W188,BPOOL(DKBIN1),W0 MOVE DKBIN1,FFSNR(MAX) CALL CHANFC,DISK,FILECODE(MAX) RWRITE DISK,SYSBUF,DKBIN1 BNERR WRFRET PERF DKER WRFRET PERF COND RET PEND * * * REFSP PROC FSRNR,FIND PERF WAIT CALL CHANFC,DISK,FILECODE(FIND) REFS01 MOVE DKBIN1,SYSLEN RREAD .NEA,DISK,SYSBUF,DKBIN1,FSRNR BNERR REFCOP PERF DKER TBT NEWVOL,REFS01 REFCOP MOVE DKBIN1,FINDEXPO(FIND) MOVE FFSNR(FIND),FSRNR COPY RPOOL(DKBIN1),W9,W10,SYSBUF,W0 COPY BPOOL(DKBIN1),W0,W188,SYSBUF,W10 REFEND PERF COND RET PEND END