|
|
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: 11118 (0x2b6e)
Notes: pts_type(SC)
Names: »WUCRF.SC«
└─⟦f45ea3bc3⟧ Bits:30009713 Philips computer tape "WSM"
└─⟦this⟧ »WSM:UTIL/WUCRF.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