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

⟦3d0a55c3a⟧

    Length: 11118 (0x2b6e)
    Notes: pts_type(SC)
    Names: »WUCRF.SC«

Derivation

└─⟦f45ea3bc3⟧ Bits:30009713 Philips computer tape "WSM"
    └─⟦this⟧ »WSM:UTIL/WUCRF.SC« 

PTS(SC)

	IDENT	WUCRF	REL=2.3,841001,870155940230
**************************************
*  WORK STATION MANAGEMENT           *
*  UTILITY PROGRAMS                  *
*  2  CREATE FILE                    *
*                                    *
**************************************


**  HISTORY:

** 84-07-12 /MAER    "CREATE WSM SYSTEM FILE".
** 83-05-11 /MAER    NEW FILES GET RECORD LENGTH 256 INSTEAD OF 255.
** 83-04-06 /MAER    NEW FILES ARE CREATED AS 'X'-FILES (NON-STANDARD)
**                   INSTEAD OF 'S'-FILES (STANDARD). 
** 82-07-08 /DALI    VOLUME-NAME IS CHANGED BEFORE CREATE 
** 82-02-04 /DALI    DISPLAY OF NO. OF RECS CHANGED FROM 5 TO 7 DIGITS
** 81-11-04 /DALI    CREATION 


	DDUM	WUDIV 
	PDIV 
	ENTRY	WUCRF
* 
	EXPROC	DECLRA	CRE= SCREEN ROUTINE
	EXPROC	DISERR	CRE= ERROR ROUTINE 
	EXPROC	DSKERR,PBIN	CRE= ERROR ROUTINE
	EXPROC	CHVNAM,PSTRG,PBIN	CRE= CHANGE VOLUMENAME
	EXPROC	HALT
* 
	EXT	CREFIL	ASS= CREATE FILE
	EXT	RDSECT	ASS= READ A SECTOR
	EXT	WRITDK	ASS= WRITE A SECTOR 
	EXT	BINBCD	ASS= TWO BINARYS TO BCDITEM 
	EXT	BCDBIN	ASS= BCDITEM TO TWO BINARYS 
	EXT	CHANFC	ASS= CHANGE FILE-CODE 
	EXT	OPENF	ASS= OPEN FILE 
	EXT	CLOSEF	ASS= CLOSE FILE 
	EJECT
WUCRF	PROC
******************* 
*  2  CREATE FILE * 
******************* 
CRF000
	ATTFMT	FCRF
	SET	DEPROMPT 
CRF100
	PERF	DECLRA
CRF150
	IB	DEBINW2,CRF100,RETUR,CRF200 
	PERF	DSKERR,W0	'BELL'
	B	CRF150 
CRF200
	PERF	CHVNAM,VOLEX1,FCOD	CHANGE NAME
	BNOK	CRF335
	CALL OPENF,DISK,FILECODE(W1),SYSBUF,FILNAM,VOLEX1,RETCOD 
	BNOK	CRF250	FILE DOESN'T EXIST 
	PERF	CLOFIL,W1 
	PERF	CHVNAM,VOLNAM,FCOD	CHANGE NAME
	PERF	DSKERR,W7	'FILENAME ALREADY USED' 
	B	CRF150 
CRF250
	MOVE	BCDI21(W2),=D'00'	NUMBER OF FREE  SECTORS 
	MOVE	BIN1,W0	SECTOR NO.
	CALL	RDSECT,DISK,BIN1,SYSBUF,RETCOD	READ VOLUME-LABEL
	BNOK	CRF330
	XCOPY	BIN1,W0,W2,SYSBUF,W10	FSAT BASE
	MOVE	DKBIN2,=W'46'	FSAT-LENGTH DISPLACEMENT
	XCOPY	DKBIN1,W0,W2,SYSBUF,DKBIN2	FSAT-LENGTH 
CRF300
	CALL	RDSECT,DISK,BIN1,SYSBUF,RETCOD	READ ONESECTOR 
	BOK	CRF340 
CRF330
	PERF	DISERR
	PERF	CHVNAM,VOLNAM,FCOD	CHANGE NAME
	BOK	CRF150 
CRF335
	PERF	DISERR
	B	CRF150 
	EJECT
CRF340
	MOVE	BIN6,W1 
	MOVE	BIN5,W2 
	MOVE	BIN3,W0 
CRF350
	XCOPY	BIN10,W0,W2,SYSBUF,BIN3	1:ST WORD IN NO OF FS REC
	XCOPY	BIN11,W0,W2,SYSBUF,BIN5	2:ST WORD IN NO OF FS REC
 CALL BINBCD,BIN10,BIN11,BCDI21(W1) 
 ADD BCDI21(W2),BCDI21(W1)
	CBE	BIN6,=W'32',CRF400	JUMP IF ALL ENTRIES HANDLED 
	ADD	BIN5,W8
	ADD	BIN6,W1	HANDLE NEXT ENTRY IN 
	ADD	BIN3,W8	CURRENT FSAT-RECORD
	B	CRF350 
CRF400
	SUB	DKBIN1,W1	FSAT-LENGTH
	BZ	CRF550	JUMP IF ALL FSAT-RECORDS 
			HANDLED
	ADD	BIN1,W1	INCREMENT RECORDNUMBER TO
	B	CRF300	NEXT FSAT-RECORD
CRF550
	ATTFMT	FSYS
	SET	DEPROMPT 
CRF650
	PERF	DECLRA
CRF680
	IB	DEBINW2,CRF650,CRF790,CRF700
	PERF	DSKERR,W0	'BELL'
	B	CRF680 
CRF700
	XCOPY	PBLOCK,W7,W1,FCOD,W1	DISK-FILE CODE
	ERASE	0,W1,W5
	MOVE	STR1A,=C'X' 
	XCOPY	PBLOCK,W7,W1,STR1A,W0	F.ORG
	XCOPY	PBLOCK,W8,W8,FILNAM,W0	FILE-NAME 
	COPY	PBLOCK,W16,W6,VOLEX1,W0	VOL-NAME 1
	MOVE	STRG10A,='R XXX WSM ' 
	XCOPY	STRG10A,W2,W3,RELNUM,W0	SET REL. NO
	MOVE	BIN1,=W'40' 
	XCOPY	PBLOCK,BIN1,W9,STRG10A,W0	REL + RET.PERIOD 
	MOVE	BIN1,=W'49' 
	XCOPY	PBLOCK,BIN1,W1,W1,W1	BF
	MOVE	BIN2,=W'50' 
	XCOPY	PBLOCK,BIN2,W2,SECLEN,W0	***ME 830511 ***
 CALL BCDBIN,NOREC,BIN10,BIN11
 MOVE BIN1,=W'52' 
 XCOPY PBLOCK,BIN1,W2,BIN10,W0 NO. OF RECORDS 
 MOVE BIN1,=W'54' 
 XCOPY PBLOCK,BIN1,W2,BIN11,W0 NO. OF RECORDS 
	MOVE	BIN1,=W'56' 
	XCOPY	PBLOCK,BIN1,W2,W0,W0	KA
	MOVE	BIN1,=W'58' 
	XCOPY	PBLOCK,BIN1,W2,W0,W0	NIF 
	CALL	CREFIL,PBLOCK,BPOOL(W12),BPOOL(W1),RETCOD 
	CMP	RETCOD,W0	'I/O-ERROR'
 BNZ CRF750 
	CALL	OPENF,DISK,FILECODE(W1),SYSBUF,FILNAM,VOLEX1,RETCOD 
	BOK	CRF800 
CRF750
	PERF	DISERR	'I/O-ERROR'
	B	CRF680 
CRF790
	PERF	CHVNAM,VOLNAM,FCOD	CHANGE NAME
	BOK	CRF000 
CRF795
	ATTFMT	FCRF
	SET	DEPROMPT 
	PERF	DISERR	'I/O-ERROR'
	B	CRF150 
	EJECT
*************************************** 
*                                     * 
*  FOLLOWING WORK ITEMS ARE USED      * 
*  FOR INIALIZATION OF THE SYSWSM-FILE* 
*                                     * 
*  BIN1 = WORKITEM                    * 
*  BIN2 = COUNTER IN BIN9             * 
*  BIN3 = NO.OF SECTORS/RECORD        * 
*  BIN4 = NO.OF FREE-SPACE REC.       * 
*  BIN5 = NO.OF FS.IN LAST REC.       * 
*  BIN6 = INDEX                       * 
*  BIN7 = NOT USED                    * 
*  BIN8 = CONTER TO MATCH - FS-IND    * 
*  BIN9 = WORKITEM - FREE-SPACE IND.  * 
*                                     * 
*                                     * 
*  BIN12 = SIZE OF SECTORS            * 
*                                     * 
*  BCD5A = NO.OF FS.IND PER FS. RECORD* 
*  BCD13A = NO.OF RECORDS             * 
*************************************** 
* 
*RECORD 1   CALLED  FS,  FREE SPACE 
*       2-4         TH,  TABLE HEAD 
*       5-9         NU,  NOT USED, RESERVED 
*       10-25       CH,  FORMAT/DEFINITION CHAINS 
*************************************************** 
* 
	EJECT
************************
*  FREE-SPACE RECORDS  *
************************
CRF800
	MOVE	RBUF,HEX00
	MOVE	FS,=C'FS'	RECORD TYPE 
	MOVE	LNEXT1,W0	LINK NEXT1. 
	MOVE	LNEXT2,W0	LINK NEXT2. 
	MOVE	FRSTN1,W0 
	MOVE	BCD13A,NOREC	NO. OF RECORDS 
	MOVE	BCD5A,=D'+01920'	NO. OF FS-IND. PER FS. REC.
	SUB	BCD13A,=D'+024'	SYSTEMFILE 
	MOVE	BIN4,W0 
CRF810
	ADD	BIN4,W1	NO.OF FREE-SPACE RECORDS 
	SUB	BCD13A,=D'+1'
	SUB	BCD13A,BCD5A 
	CBG	BCD13A,=D'00',CRF810	CHECK IF SPACE FOR 1 FS-REC 
	ADD	BCD13A,BCD5A 
	MOVE BIN5,BCD13A	BIN5 = NO. OF FREE-RECORD-IND.
			IN LAST FREE-SPACE RECORD
	MOVE	FRSTN2,BIN4	1:ST RECORD NO. 
	ADD	FRSTN2,=W'25'
	CBE	BIN4,W1,CRF830	ONLY 1 RECORD 
	MOVE	LNEXT2,=W'26'	LINK NEXT2
CRF830
	MOVE	NOFREE,BCD5A	NO. OF FREE = 1920 
	MOVE	NOFREC,BCD5A
	MOVE	BIN2,W1	RELREC
	CBNE	BIN4,W1,CRF840
	MOVE	NOFREE,BIN5	IF LAST RECORD
	MOVE	NOFREC,BIN5 
CRF840
	MOVE	RECNUM,=D'+1' 
	EJECT
CRF850
***************************************************** 
*  FILL RECORD WITH FREE-SPACE-INDICATIONS : 1=FREE * 
***************************************************** 
	XCOPY	RELREC,W0,W1,BIN2,W1 
	MOVE	BIN1,NOFREE 
	MOVE	BIN6,W0	INDEX 
	MOVE	BIN8,W0	COUNTER TO MATCH - FS-IND.
CRF860
	ADD	BIN6,W1
	SUB	BIN1,W8	8 RECORDS
	BN	CRF870
	MOVE	FF(BIN6),=X'FF' 
	CBE	BIN1,W0,CRF880 
	B	CRF860 
CRF870
	ADD	BIN1,W8
	CBE	BIN1,W0,CRF882 
	MOVE	FF(BIN6),HEXTAB(BIN1) 
CRF880
	ADD	BIN6,W1
	CBG	BIN6,=W'240',F80 
CRF882
	MOVE	FF(BIN6),=X'00' 
	B	CRF880 
******************************
*  WRITE FREE-SPACE RECORDS  *
******************************
F80 
	CALL	WRITDK,DISK,FILECODE(W1),RBUF,SECLEN,RECNUM,RETCOD
	BNOK	CRF990
	SUB	BIN4,W1
	BZ	CRF890	IF LAST RECORD 
	CALL	BINBCD,FRSTN1,FRSTN2,BCD13A 
	ADD	BCD13A,BCD5A 
	CALL	BCDBIN,BCD13A,FRSTN1,FRSTN2 
	ADD	BIN2,W1	RELREC 
	MOVE	RECNUM,LNEXT2 
	ADD	LNEXT2,W1
	CBNE	BIN4,W1,CRF850
	MOVE	LNEXT2,W0	LAST RECORD 
	MOVE	NOFREE,BIN5 
	B	CRF850 
CRF890
 MOVE RECNUM,=D'+1' 
 MOVE BIN1,W1 
CRF905
 IB BIN1,CRF920,	REC 2 = TABLE HEAD	C 
		CRF910,	REC 3 = TABLE HEAD	C
		CRF910,	REC 4 = TABLE HEAD	C
		CRF930,	REC 5 = NOT USED	C
		CRF910,	REC 6 = NOT USED	C
		CRF910,	REC 7 = NOT USED	C
		CRF910,	REC 8 = NOT USED	C
		CRF910,	REC 9 = NOT USED	C
		CRF940	REC 10-25= CHAIN RECORD
CRF910
 ADD RECNUM,=D'+1'
	CALL	WRITDK,DISK,FILECODE(W1),RBUF,SECLEN,RECNUM,RETCOD
 BNOK CRF990
 ADD BIN1,W1
 CBNE BIN1,=W'25',CRF905
 B CRF950 
CRF920
	MOVE	RBUF,HEX00
 MOVE FS,='TH'
	B	CRF910 
CRF930
 MOVE FS,=X'0000' 
	B	CRF910 
CRF940
 MOVE FS,='CH'
 B CRF910 
CRF950
	PERF	CLOFIL,W1 
	BNOK	CRF750
	PERF	CHVNAM,VOLNAM,FCOD	CHANGE NAME
	BNOK	CRF795
	PERF	HALT
	B	RETUR
CRF990
	PERF	CLOFIL,W1 
	PERF	DISERR
	B	CRF680 
RETUR 
	RET
	PEND 
* 
* 
****************
*  CLOSE FILE  *
****************
CLOFIL	PROC	FC
	PBIN	FC
	CALL CLOSEF,DISK,FILECODE(FC),SYSBUF,W0,DEBINW4
	CMP	DEBINW4,W0 
	RET
	PEND 
FCRF	FRMT 
	FSL
	FATTR	.INV	INVERSE VIDEO 
	FATTR	.HIGH	HIGH INTENSITY 
	FCOPY	=C'CREATE WSM SYSTEM FILE' 
	FLINK	FFILE
	FMEND
* 
FFILE	FRMT
	FNL
	FATTR	.HIGH	HIGH INTENSITY 
	FCOPY	=C'UNIT:'
	FKI	6,MINL=3,MAXL=3,ME,ALPHA,NEOI,APPL=5 
	FCOPY	INUNIT 
	FATTR	.HIGH	HIGH INTENSITY 
	FTAB	12
	FCOPY	=C'VOLUME-NAME:' 
	FINP	25
	FCOPY	VOLNAM 
	FNL
	FATTR	.HIGH	HIGH INTENSITY 
	FCOPY	=C'FILENAME:'
	FKI	10,MINL=1,MAXL=8,ME,REWRT,APPL=6,ALPHA,NEOI
	FCOPY	FILNAM 
	FLINK	FHEX 
	FMEND
FSYS	FRMT		SYSTEM-FILE
	FSL
	FATTR	.HIGH	HIGH INTENSITY 
	FATTR	.INV	INVERSE VIDEO 
	FCOPY	=C'SYSTEM' 
	FTAB	7 
	FCOPY	=C'FILE' 
	FNL
	FATTR	.HIGH	HIGH INTENSITY 
	FCOPY	=C'NO.'
	FTAB	5 
	FCOPY	=C'OF RECORDS:'
	FKI	17,MINL=1,MAXL=5,ME,NEOI,REWRT,APPL=3	NO. OF RECORDS 
	FMEL	'TTTTTTX',NOREC 
	FLINK	FHEX 
	FMEND
* 
FHEX	FRMT 
	FNL
	FKI	1,MINL=0,MAXL=0
	FCOPY	HEX00
	FMEND
* 
	END

Full view