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

⟦629f1f80f⟧

    Length: 13898 (0x364a)
    Notes: pts_type(SC)
    Names: »DKRUT2.SC«

Derivation

└─⟦48601905a⟧ Bits:30009668 Philips computer tape "600121"
    └─⟦this⟧ »S:DU/DKRUT2.SC« 
└─⟦79fbed147⟧ Bits:30009697 Philips computer tape "600414"
    └─⟦this⟧ »S:DU/DKRUT2.SC« 
└─⟦d2a299635⟧ Bits:30009698 Philips computer tape "600415"
    └─⟦this⟧ »S:DU/DKRUT2.SC« 

PTS(SC)

	IDENT	DKRUT2	UPD 80-01-21/CHST 
**********************************************************
* 
* 
*     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 WAIT 
 ENTRY ENTFMT 
 ENTRY DELFMT 
 ENTRY PREFMT 
 ENTRY NEXFMT 
 EXT SFMTCH 
 EXT FREESP 
 EXT DISU 
 EXT RELEAS 
 EXT NXPRFM 
 EXT DLRCCH 
 EXT RFRSP
	EXT	RD 
	EXT	REFSP
 EXT EMPTYT 
 EXT WRFSP
	EXT	NOFFRE 
 EXT COND 
 EXT ALGO 
	EXT	RETURN 
 EXT EMPTYT 
 EXT DEPOOL 
 EXT GETIND 
 EXT DEDISC 
 EXT CMPIND 
	EXT	OPENF
	EXT	CLOSEF 
 ENTRY OPCL 

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 
 MOVE STRG10A,=C'SYSFIL ' 
 MOVE JOBNAME,FVOLNAME(W1)
	CALL	OPENF,DISK,FILECODE(W1),SYSBUF,STRG10A,JOBNAME
 BOK OPENSY02 
OPENSY06
	CALL	CLOSEF,DISK,FILECODE(W1),SYSBUF,W0
 CLEAR SWITSY 
 MOVE DEBINW4,W20 
 SUB FCOUNTER(W1),W1
 B OPENSY04 
OPENSY02
 MOVE LRUQUE,HEX00

 MOVE DKBIN1,W1 
DES1
 CALL CMPIND,DKBIN1,BPOOL(W1) 
	BNOK	DES2	OUT OF RANGE 
 MOVE RPOOL(DKBIN1),=X'5800'
 ADD DKBIN1,W1
	B	DES1 
DES2
 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
 MOVE DKBIN1,W1 
 MOVE DKBIN2,W1 
 PERF DEPOOL,W2,DKBIN1,DKBIN2,STRG10A 
 BNOK OPENSY06
 MOVE FINDEXPO(W1),DKBIN1 
 PERF REFSP,W2,W1 
	BNOK	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 
CLOSSY01
	CALL	CLOSEF,DISK,FILECODE(W1),SYSBUF,W0
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 
 MOVE STRG10A,=C'PTS-DE ' 
 MOVE STR6A,FVOLNAME(FILINDUS)
	CALL	OPENF,DISK,FILECODE(FILINDUS),RBUF,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
	CALL	CLOSEF,DISK,FILECODE(FILINDUS),SYSBUF,W0
 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
CLOSUS02
	CALL	CLOSEF,DISK,FILECODE(FILINDUS),SYSBUF,W0
CLOSUS01
 PERF COND
	RET
	PEND 
SETUSE PROC 
 XCOPY SECLEN,W0,W2,RBUF,W9 
 CBNE SECLEN,W0,SETCOP
 MOVE SECLEN,=W'256'
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
DUMPROC	PROC	FC 
* 
ENTFMT			ENTER FORMAT 
 PERF WAIT
 BERR RETURN
 MOVE STR6A,FORMAT
 PERF FREESP,DEBIN1,W1
 BERR RETURN
 MOVE WORK(W9),DEBIN1 
 B WRTFMT 
FMTCHAIN
	MOVE	DEBIN5,W4 
RDCHAIN 
	MOVE	DEBIN3,DEBIN5 
	PERF	DISU,W1,DEBIN3,SYSBUF	READ FORMATCHAIN
 BNERR FST3 
 CBE DEBINW4,=W'30',FFIRST
 B RETURN 
FST3
	XCOPY	DEBIN4,W0,W2,SYSBUF,W6	OCCUPIED SPACE TO DEBIN4
	CBG	DEBIN4,=W'180',RENEXT	NO SPACE FOR MORE ENTRIES? 
ADDENTRY
	XCOPY	STRG10A,W0,W2,W0,W0	STATUS = '00'
	COPY	STRG10A,W2,W6,FORMAT,W0	NAME
	XCOPY	STRG10A,W8,W2,WORK(W9),W0	FREESPACE-RECNR = PTR TO FMT 
	COPY	SYSBUF,DEBIN4,W10,STRG10A,W0	INSERT ENTRY TO CHAIN
 ADD DEBIN4,W10 
	XCOPY	SYSBUF,W6,W2,DEBIN4,W0	SET OCCUPIED SPACE
 PERF DISU,W2,DEBIN5,SYSBUF 
 B RETURN 
FFIRST
 MOVE DEBIN3,W0 
 MOVE DEBINW4,W0
 B FFST01 
RENEXT
	XCOPY	DEBIN5,W0,W2,SYSBUF,W4	GET LINK TO NEXT
	CBNE	DEBIN5,W0,RDCHAIN 
 PERF FREESP,DEBIN5,W1
 BERR RETURN
 XCOPY SYSBUF,W4,W2,DEBIN5,W0 
 PERF DISU,W2,DEBIN3,SYSBUF 
FFST01
 MOVE DEBIN4,W10
	MOVE	SYSBUF,=X'464300'	SET SCTR-IDENTIFICATION 
	XCOPY	SYSBUF,W2,W2,DEBIN3,W0	SET LINK TO PREV
	XCOPY	SYSBUF,W4,W2,W0,W0	LINK TO NEXT = 0
	B	ADDENTRY 
WRTFMT
 MOVE DEBIN3,PINDFR 
 PERF ALGO,W1	SET FORMAT-IDENTIFICATION 
NEGST 
 MOVE DEBIN2,W0 
	XCOPY	DEBIN2,W1,W1,RPOOL(DEBIN3),W8	GET LINK NEXT BUF
 XCOPY SYSBUF,W8,W2,RPOOL(DEBIN3),W17 
	CBE	DEBIN2,W0,NOMOREC	LAST RECORD? 
 PERF FREESP,DEBIN4,W1
	BNERR	COP
	MOVE	DEBIN2,WORK(W9)	SAVE POINTER TO 1:ST FORMAT RECORD
	MOVE	WORK(W9),DEBINW4	SAVE ERROR CODE
	PERF	DISU,W1,DEBIN2,SYSBUF	READ FIRST FORMAT RECORD
	BERR	RETURN
	B	DELF2
COP 
	XCOPY	SYSBUF,W4,W2,DEBIN4,W0	SET LINK NEXT REC 
	COPY	SYSBUF,W10,W188,BPOOL(DEBIN3),W0
	PERF	DISU,W2,DEBIN1,SYSBUF 
 BERR RETURN
	TBF	SWIT01,CO10
 B FMTCHAIN 
CO10
	MOVE	DEBIN3,DEBIN2 
	MOVE	DEBIN1,=X'4600' 
	XCOPY	SYSBUF,W0,W2,DEBIN1,W0 
	MOVE	DEBIN1,DEBIN4 
	B	NEGST
NOMOREC 
	MOVE	DEBIN4,W0 
	SET	SWIT01 
	B	COP
* 
* 
* 
* 
* 
NEXFMT			GET NEXT FORMAT
 SET SWIT03 
* 
* 
PREFMT
 MOVE FRMTPNTR,W0 
 CALL EMPTYT,FORMAT 
 BZ RRECNX
 MOVE RNRFMCH,W4
 MOVE PTRFMCH,W0
 TBT SWIT03,RRECNX
 ADD PTRFMCH,W20
RRECNX
 CBNE RNRFMCH,W0,RRECNZ 
 MOVE STR6A,FORMAT
 PERF SFMTCH,W4,SYSBUF,W10
 BERR RETURN
 MOVE RNRFMCH,DEBIN1
 MOVE PTRFMCH,DEBIN2
 SUB PTRFMCH,W8 
RRECNZ
 PERF WAIT
 BERR RETURN
RRECNY
 PERF DISU,W1,RNRFMCH,SYSBUF
 BNERR RREC01 
 CBE DEBINW4,=W'30',OUTOFRAN
 B RETURN 
OUTOFRAN
 MOVE DEBINW4,W9
 MOVE RNRFMCH,W0
 B RETURN 
RREC01
 XCOPY DEBIN1,W0,W2,SYSBUF,W6	GET USED SPACE
 TBF SWIT03,RREC02
 ADD PTRFMCH,W10
 CBE PTRFMCH,DEBIN1,RREC03
RREC07
 MOVE DEBIN1,PTRFMCH
 B RREC04 
RREC03
 MOVE DEBIN1,W4 
RREC05
 XCOPY DEBIN5,W0,W2,SYSBUF,DEBIN1 
 CBE DEBIN5,W0,OUTOFRAN 
 MOVE RNRFMCH,DEBIN5
 TBF SWIT03,RRECNY
 MOVE PTRFMCH,W0
 B RRECNY 
RREC02
 CBL PTRFMCH,W20,RREC06 
	CBNL	DEBIN1,PTRFMCH,RREC02A	IF WITHIN USED SPACE 
	MOVE	PTRFMCH,DEBIN1	UPDATE WITH MAX LIMIT
RREC02A 
 SUB PTRFMCH,W10
 B RREC07 
RREC06
 MOVE PTRFMCH,=W'190' 
 MOVE DEBIN1,W2 
 B RREC05 
RREC04
 ADD DEBIN1,W2
 MOVE STRG10A,=X'4600'
 COPY STRG10A,W1,W6,SYSBUF,DEBIN1 
 COPY FORMAT,W0,W6,SYSBUF,DEBIN1
 MOVE STR6A,FORMAT
 B NXPRFM 
* 
* 
* 
DELFMT			DELETE FORMAT
 PERF WAIT
 BNOK RETURN
 MOVE STR6A,FORMAT
 CLEAR SWIT04 
 PERF SFMTCH,W4,SYSBUF,W10
 BERR RETURN
 MOVE BIN16,DEBIN1
 SUB DEBIN2,W6 DEBIN2=PTR TO ENTRY IN REC 
 XCOPY DEBIN1,W0,W2,SYSBUF,W6 DEBIN1=OCC. SPACE 
 DLETE SYSBUF,DEBIN2,W10
 SUB DEBIN1,W10 
 XCOPY SYSBUF,W6,W2,DEBIN1,W0 SET OCC SPACE 
 CBG DEBIN1,W10,DELF1 
 CLEAR SWIT04 
 PERF DLRCCH,SYSBUF 
 BERR RETURN
DELF1 
 PERF DISU,W2,BIN16,SYSBUF
	BERR	RETURN
 MOVE DEBIN2,DEBIN3 
 PERF DISU,W1,DEBIN2,SYSBUF 
 BERR RETURN
 PERF ALGO,W2 
 BNERR DELF2
DELF3 
 MOVE DEBINW4,W9
DELF31
	CBNE	FC,W9,DELF32	JUMP IF NOT ENTFMT 
	MOVE	DEBINW4,WORK(W9)	RESTORE ORIGINAL ERROR CODE
DELF32
 B RETURN 
DELF2 
 XCOPY DEBIN1,W0,W2,SYSBUF,W4 
 XCOPY SYSBUF,W0,W2,W0,W0 DESTROY ALGORITMH 
 PERF DISU,W2,DEBIN2,SYSBUF FIRST RECORD
 BERR RETURN
 PERF RFRSP,DEBIN2,W1 
DELF
 CBE DEBIN1,W0,DELF31 
 PERF DISU,W1,DEBIN1,SYSBUF 
 BERR RETURN
 COPY STR2A,W0,W2,SYSBUF,W0 
 CBNE STR2A,=X'4600',DELF3
 PERF RFRSP,DEBIN1,W1 
 XCOPY DEBIN1,W0,W2,SYSBUF,W4 
 B DELF 
* 
	PEND 
	END

Full view