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

⟦5945f4795⟧

    Length: 29776 (0x7450)
    Notes: pts_type(SC)
    Names: »WUUTI.SC«

Derivation

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

PTS(SC)

	IDENT	WUUTI	REL=2.3,850808,870155940230

**************************************
*  W    S       M                    *
*  WORK STATION MANAGEMENT           *
*  UTILITY PROGRAMS                  *
*  1  CREATE VOLUME                  *
*  2  CREATE FILE                    *
*  3  DELETE FILE                    *
*  4  COPY VOLUME/FILE (REORGANIZE)  *
*  5  EXTEND FILE                    *
*  6  PRINT FILE                     *
*  7  CHANGE VOLUME-NAME             *
*  8  PRINT VTOC                     *
*                                    *
**************************************


**  HISTORY:


** 85-08-08 /CRBE    CHANGE IN ERR.MESS FROM DISC TO DISK.
** 84-12-04 /CRBE    START/STOP BLOCKING IMPLEMENTED. 
** 84-12-03 /CRBE    MUL&DIV NOW FROM ASSRUT. 
** 84-07-12 /MAER    INTERTASK COMMUNICATION IMPLEMENTED. 
**                   CHVNAM DOES NO MORE DESTROY RETCOD.
** 84-06-01 /MAER    APPL. ROUTINE A13: THE NEW VARIABLE "DMAX" IS
**                   USED FOR CHECK OF ENTERED TYPE IN CRV. 
** 83-10-15 /MAER    CHANGE VOLUME NAME (CHVNAM) USES "RETCOD"
**                   INSTEAD OF DEBINW4.
**                   SUBROUTINE "DISERR" TAKES CARE OF ERROR 23 (NEW).
**                   RETURN-CODE "RETRIES PERFORMED" HANDLED AS OK
**                   (INITIAL ATTEMPT TO PRINT ON GP74).
**                   EXTENDED DELAY OF PRINTER (LP REQUIREMENT).
**                   (W10 INSTEAD OF W4). 
** 83-09-27 /MAER    A13, DISK TYPES FOR CRV, CHANGED.
** 83-09-12 /MAER    A13, DISK TYPES FOR CRV, CHANGED.
** 83-08-02 /MAER    UNIT-MNEMO MATCH ADAPTION (W66 INSTEAD OF W48).
** 83-07-04 /MAER    SET BOOL3 IN A10 TO AVOID UPDFLD OF "OUTPUT UNIT". 
**                   (REWRT SINCE DUPLICATION NOW ALLOWED.) 
** 83-06-30 /MAER    WUPRF WITH SECTOR-PRINTOUT FOR MENU OPTION '9' (A7). 
**                   ( NOT FOR PUBLIC USE!!!).
**                   NEW DISK TYPES (NO 16-19) ADDED (APPL=A13).
** 83-06-22 /MAER    A18 & UFERR ADDED. 
**                   PROC "HALT" ALLOWES ALSO THE RETURN-KEY. 
** 83-06-17 /MAER    ANSWER = "S" ALLOWED IN APPL "A1"
**                   (COPY SPECIFIC SECTION / DEFINITION).
** 83-03-18 /MAER    STEADY CURSOR. 
**                   CHANGED DECORATIONS. 
** 83-02-09 /MAER    NEW TRAILING TEXT ON MENU. 
** 82-08-18 /MAER    ADAPTED TO VD82/83.
** 82-07-26 /DALI    NO.OF FILES IN CRV USES APPL=4 
** 82-07-08 /DALI    VOLUME-NAME CHANGED FOR GETTING RIGHT UNIT 
**                   (RETCOD IS NOT SET!) 
** 82-02-04 /DALI    NEW ERROR-MESSAGE "DISK OVERFLOW" WHEN CREATE OR EX
** 81-11-11 /DALI    CREATION 


	DDUM	WUDIV 
	PDIV 
	ENTRY	WUUTI
	ENTRY	APP
	ENTRY	DISERR 
	ENTRY	DSKERR 
	ENTRY	UFERR
	ENTRY	HALT 
	ENTRY	CONT 
	ENTRY	CHVNAM	CHANGE VOLUME-NAME
	ENTRY	STPBLK 
	ENTRY	STABLK 
* 
	EXPROC	WUCRV	CRE= CREATE VOLUME
	EXPROC	WUCRF	CRE = CREATE FILE 
	EXPROC	WUDLF	CRE= DELETE FILE
	EXPROC	WUCOP	CRE= COPY DISK,FILE 
	EXPROC	WUEXT	CRE= EXTEND FILE
	EXPROC	WUEXT1	CRE= EXTEND FILE,APPL.ROUT 
	EXPROC	WUEXT2	CRE= EXTEND FILE,APPL.ROUT 
	EXPROC	WUPRF	CRE= PRINT FILE 
	EXPROC	WUCVN	CRE= CHANGE VOLUME NAME 
	EXPROC	WUPRV	CRE= PRINT VTOC 
	EXPROC	DECLRA
	EXPROC	DERR
	EXT	CHANFC 
	EXT	GETVOL 
	EXT	GETIND	GET IX & DIM OF ARRAY 
	EXT	RCGET
	EXT	OPENF
	EXT	CLOSEF 
	EXT	CHVOL	CHANGE VOLUME-NAME 
	EXT	GETCW	GET CONTROL WORD 1 OF ECB
	EXT	WXMUL	---ASSRUT:MULTIPLICATION 
	EXT	WXDIV	---ASSRUT:DIVISION 
* 

ENT	EQU	X'80'	ENTER 
RET	EQU	X'99'	RETURN
* 
KTABEN	KTAB	ENT,RET 
TSTAT	EQU	X'07' 
ATTACH	EQU	X'0E'
DETACH	EQU	X'0F'

****************************************************************
*                                                              *
*          ORDER CODES                                         *
*                                                              *
****************************************************************

BRD	EQU	X'81'	BASIC READ
TRP	EQU	X'A7'	TRANSFORM PARAMETER 
GSS	EQU	X'AC'	GET SCREEN SIZE 
CED	EQU	X'B7'	CHANGE ECHO DEVICE
TIMOUT	EQU	X'0B'	SET TIME-OUT 

****************************************************************
*                                                              *
*          START & STOP BLOCKING                               *
*                                                              *
****************************************************************

STOPBLK	EQU	X'BE' 
STARTBLK	EQU	X'BD'
	EJECT
WUUTI	PROC
****************************************************************
*                                                              *
*          GET NUMBER OF POOL UNITS                            *
*                                                              *
****************************************************************

	CALL	GETIND,BPOOL(W1),BIN1,BIN2	BIN2 := NO OF ELEM.
	MOVE	NOOFPO,BIN2	MOVE TO BCD (USED IN WUCOP) 

	EJECT
****************************************************************
*                                                              *
*          GET SCREEN TYPE                                     *
*                                                              *
****************************************************************

STA000
	MOVE	BIN1,W0	WORKITEM := 0 
	MOVE	BIN2,W80	BUFFER LENGTH := 80
			BASIC READ OF THE SCREEN SIZE: 
	DSC	DEDSSCRN,BRD,BIN1,STATSH,BIN2
	BOK	STA025	OK => VD82 IS USED

****************************************************************
*                                                              *
*          VD46 IS USED                                        *
*                                                              *
****************************************************************
	MOVE	SCRNFC,=X'50'	SET FILE CODE VD46
	CALL	CHANFC,DEDSSCRN,SCRNFC	CHANGE FILE CODE TO VD46 
	CALL	CHANFC,DEDSSYSL,SCRNFC	CHANGE FILE CODE SYSTEM LINE 
	MOVE	SYSLFC,SCRNFC	SET SYSTEM LINE FILE CODE 
	B	STA030 
	EJECT

****************************************************************
*                                                              *
*          VD82 IS USED                                        *
*                                                              *
****************************************************************

STA025
	SET	VD82	INDICATE VD82 BY SETTING BOOLEAN
	EJECT
STA030
********************************* 
* TRY INTERTASK COMMUNICATION   * 
********************************* 
	MOVE	BIN1,=X'FFFF'	TIME OUT VALUE
	DSC1	ITCIN,TIMOUT,BIN1	IN DATA SET 
	DSC1	ITCOUT,TIMOUT,BIN1	OUT DATA SET 
STA037
	CLEAR	ICEXIT 
	MOVE	ICLEN,W21	ITC REQUESTED LENGTH
	RECEIVE	ITCIN,ICPOOL,ICLEN	UNADDR READ FROM ANY TASK 
	BNOK	STA040	NO ONE CALLING (DOESN'T EXIST) 
	SET	IC	INDICATE THAT ITC IS RUNNING
	CALL	GETCW,ITCIN,ICTASK	FETCH TASK-ID (STORED IN ITCIN)
	EJECT
********************************* 
*  SET UP FOR VD82 SCREEN       * 
********************************* 

STA040
********************************* 
* GET LENGTH OF PHYSICAL SCREEN * 
********************************* 
	CALL	GETIND,PHYSCR,BIN2,BIN1 
	MOVE	BIN1,=X'0C81' 
********************************* 
* DEFINE PHYSICAL SCREEN SIZE   * 
********************************* 
	DSC	DEDSSYSL,TRP,BIN1,PHYSCR,BIN2
********************************* 
*     CHANGE ECHO DEVICE        * 
********************************* 
	DSC	DEDSDYKB,CED,SCRNFC
	EJECT
****************************************************************
*                                                              *
*  ATTACH INIT. MENU, GET OPTION, ACTIVATE CORRECT SUBROUTINE  *
*                                                              *
****************************************************************
STA050
	PERF	STABLK	***START BLOCKING
	MOVE	BIN1,=X'0081'	BACKGROUND = WHITE
	DSC	DEDSSCRN,TRP,BIN1	SET SCREEN BACKGROUND = WHITE
	ATTFMT	FPROG 
	SET	DEPROMPT 
STA100
	PERF	DECLRA
STA150
	IB	DEBINW2,STA100,ESCAPE,STA200
	PERF	DSKERR,W0	'BELL'
	B	STA150 
STA200
	MOVE	VOLNAM,=X'00' 
	MOVE	COPNAM,=X'17' 
	MOVE	PBLOCK,=X'20' 
	MOVE	BIN1,SCRNFC 
	XCOPY	PBLOCK,W5,W1,BIN1,W1	FC2:PRINT-DEVICE
	MOVE	BIN1,PRNUM
	PERFI	BIN1,WUCRV,WUCRF,WUDLF,WUCOP,		C 
		WUEXT,WUPRF,WUCVN,WUPRV 
	B	STA050 
ESCAPE
	TBF	IC,STA050	ITC DOESN'T EXIST => END 
	SEND	.ADDR,ITCOUT,ICPOOL,ICLEN,ICTASK	SEND ANSWER
	B	STA037 

	RET
	PEND 
	EJECT
************************* 
*                       * 
* CHANGE  VOLUME NAME   * 
* VOLYM = VOLUME NAME   * 
* CODE  = FILE CODE     * 
*                       * 
************************* 
* 
CHVNAM	PROC	VOLYM,CODE
	PSTRG	VOLYM
	PBIN	CODE
	CALL	CHANFC,DISK,CODE
	CALL	CHVOL,DISK,SYSBUF,VOLYM,BIN1
	BOK	CHVRET 
	MOVE	RETCOD,BIN1 

CHVRET
	RET
	PEND 
	EJECT

*********************************************** 
*                                             * 
* USER FRIENDLINESS ERROR MESSAGE ROUTINE     * 
* TO BE USED AFTER POOL- & FILE-HANDLER CALLS * 
*                     (INTRODUCED 83-06-22)   * 
*                                             * 
* INPUT: CONDITION > 0 = POOL ERROR           * 
*                  < 0 = DISK ERROR           * 
*        RETCOD = ECB RETURN CODE ("BITS")    * 
* DESTR: BIN13                                * 
*                                             * 
*********************************************** 

UFERR	PROC
	BN	UFER10	DISK ERRORS
	BP	UFER50	POOL ERRORS
	MOVE	BIN13,W3	RETCOD = ZERO => "I/O-ERROR" 
	B	UFER90 
UFER10			DISK ERRORS
	CBE	RETCOD,W1,UFER25	ECB-RC = "0001" 
	MOVE	BIN13,W19	"DISK ERROR"
	B	UFER90 
UFER25
	MOVE	BIN13,W18	"DISK NOT OPERABLE" 
	B	UFER90 
UFER50			POOL ERRORS
	CBE	RETCOD,W1,UFER75	ECB-RC = "0001" 
	MOVE	BIN13,W64	CHECK IF FILE OVERFLOW
	ADD	BIN13,W64	BIN6 := 128 = ECB-RC "0080"
	CBNE	RETCOD,BIN13,UFER60	NO, NOT FILE OVERFLOW!
	MOVE	BIN13,W10	"DISK/FILE OVERFLOW"
	B	UFER90 
UFER60
	MOVE	BIN13,W20	"POOL ERROR"
	B	UFER90 
UFER75
	MOVE	BIN13,W21	"NOT FOUND" 
UFER90
	MOVE	STR6A,HEX00 
	CALL	RCGET,RETCOD,STR6A	CONVERT RETCOD TO A STRING 
	PERF	DSKERR,BIN13
	RET
	PEND 
	EJECT
*************************** 
*                         * 
*  ERROR-MESSAGE ROUTINE  * 
*                         * 
*************************** 
* 
DISERR	PROC 
	MOVE	STR6A,HEX00 
	CALL	RCGET,RETCOD,STR6A
	MOVE	BIN13,W22	ASSUME I/O ERROR
	CBNE	RETCOD,W66,DISER2	IF NO TOSS-DISK...
	MOVE	BIN13,W23	...USE ERROR TEXT 23. 
DISER2
	PERF	DSKERR,BIN13
	RET
	PEND 


DSKERR	PROC	ERRCODE 
	PBIN	ERRCODE 
	MOVE	DEBINW4,ERRCODE 
	DISPLAY	0,W1,W0
	PERF	DERR
	RET
	PEND 
	EJECT
*************************** 
*                         * 
*  PRESS ENT TO CONTINUE  * 
*                         * 
*************************** 
* 
HALT	PROC 
H10 
	ERASE	0,W1,W1	LINE 1 
	MOVE	BIN1,=X'0101'	LINE 1 / POS 1
	DSC1	DEDSSCRN,6,BIN1	SET CURSOR
	EDWRT	DEDSSCRN,FHALT	'PRESS ENT TO CONTINUE' 
	MOVE	BIN1,W1 
	NKI	.NE,DEDSDYKB,DEINPUT,KTABEN,BIN1,BIN2
	BERR	H10 
	CBE	BIN2,W1,H99	"ENTER"... 
	CBE	BIN2,W2,H99	AND "RETURN" ARE ALLOWED.
	B	H10
H99 
	RET
	PEND 
	EJECT
*************************** 
*                         * 
*  DISPLAY WAIT-TEXT      * 
*                         * 
*************************** 
* 
CONT	PROC 
CONT10	MOVE	BIN1,=X'0101'	LINE 1, COLUMN 1
	DSC1	DEDSSCRN,6,BIN1	SET CURSOR ON FIRST LINE
	EDWRT	DEDSSCRN,FCONT	DISPLAY WAIT-TEXT 
	RET
	PEND 
	EJECT
*************************** 
*                         * 
*  APPL-ROUTINES          * 
*                         * 
*************************** 
* 
APP	PROC
	CBNE	DEBINW1,W0,APP300 
	MOVE	DEINPUT,:FMTITEM
APP300
	IB	DEBINW3,	APPL-VALUE	C 
		A1,A2,A3,		C
		A4,A5,A6,A7,A8,A9,		C 
		A10,A11,A12,		C 
		A13,A6,A15,A6,A17,A18 
	MOVE	DEBINW4,W2	'UNDEFINED ERROR'
	B	ANOK 
****************
*  APPL-ERRORS *
****************
* 
A3E 
	MOVE	DEBINW4,W3	'I/O-ERROR'
	B	ANOK 
A6E	MOVE	DEBINW4,W6	'ILLEGAL VALUE' 
	B	ANOK 
A10E	MOVE	DEBINW4,W10	'DISK OVERFLOW' 
ANOK
	MOVE	DEBINW3,W3	NOT OK 
AERR
	RET
AOK	MOVE	DEBINW3,W0	OK
	RET
	EJECT
A1
******************* 
*  YES OR NO      * 
* WITH AUTO ENTER * 
******************* 
* 
	MOVE	STR1A,DEINPUT 
	CBE	STR1A,=C'Y',AA11 
	CBE	STR1A,=C'N',AA11 
	CBE	STR1A,=C'S',AA11 
	B	A6E
AA11
	MOVE	DEBINW2,W17	ENT-KEY 
	B	AOK
	EJECT
A2
***************************************** 
*                                       * 
* TEST TYPE USED IN CREATE VOLUME.      * 
*                                       * 
* POSSIBLE VALUES IS A, I, Q.           * 
*                                       * 
* Q IS NOT VALID WHEN DTYP IS =1 OR =2  * 
* AND                    DVER IS =3.    * 
*                                       * 
***************************************** 
* 
	MOVE	STR15A,=C'QAI'
	MOVE	DEBINW4,W0
	MATCH	STR15A,DEBINW4,W3,DEINPUT,W0,W1
	BNOK	A6E 
	IB	DEBINW4,AOK,AOK	JUMP IF NOT "Q" 
	IB	DTYP,A20,A20
	B	AA11	SET ENTER-KEY 
A20 
	CBNE	DVER,W3,AOK 
	B	A6E
	EJECT
***************************** 
*  NO. OF RECORDS - WSMFILE * 
***************************** 
* 
A3
	MOVE	BCD13A,DEINPUT
	CBE	BCD13A,=D'00',A34
	CBE	DEBINW3,W15,A32
	CBL	BCD13A,=D'+027',A6E
	B	A33
A32 
	CBL	BCD13A,=D'+3',A6E
A33 
	MOVE	BIN1,BCD13A 
	CALL	WXDIV,BIN1,W3,BIN1
	CALL	WXMUL,BIN1,W3,BIN1
	MOVE	BCD13A,BIN1 
	MOVE	DEINPUT,BCD13A
	CBG	BCD13A,BCDI21(W2),A10E 
	B	AOK
A34 
	MOVE	NOREC,BCDI21(W2)
	MOVE	DEINPUT,NOREC 
	CBG	NOREC,=D'+2',A3
	B	A10E 
	EJECT
************************
* NO.OF FILES IN CRV   *
* REC.NO IN PRINT FILE *
************************
* 
A4
	MOVE	BCD13A,DEINPUT
	CBE	BCD13A,=D'00',A44
	B	AOK
A44 
	MOVE	NOREC,W1
	MOVE	DEINPUT,NOREC 
	B	AOK
	EJECT
******************
*  CREATE VOLUME *
*  CREATE FILE   *
*  UNIT DU1-DU4  *
*  UNIT FD1-FD4  *
******************
* 
A5
	PERF	AUNIT,VOLNAM
A55 
	CBE	FCOD,W0,A6E
	CBNE	RETCOD,W0,A56 
	B	AOK
A56 
	MOVE	DEBINW4,RETCOD
	B	ANOK 
	EJECT
*********************************** 
*                                 * 
*      FILE NAME   MAX 8 CHAR.    * 
*      LEADING SPACES ARE IGNORED * 
*                                 * 
*********************************** 
* 
A6
	MOVE	STR15A,=X'20'	SPACE 
	INSRT	DEINPUT,DEBINW1,W8,STR15A,W0 
A64 
	MOVE	DEBIN4,W0 
	MATCH	DEINPUT,DEBIN4,W1,STR15A,W0,W1 
	BNOK	A66 
	DLETE	DEINPUT,W0,W1	DELEATE LEADING SPACES 
	B	A64
A66 
	CBE	DEBINW3,W14,A14
	CBE	DEBINW3,W16,A16
	B	AOK
	EJECT
***************** 
*  PROGRAM NO.  * 
***************** 
* 
A7
	CLEAR	BOOL1	SETOFF THE PRINT-FILE OPTION INDICATOR 
			OPTION=ON  => SECTOR PRINTOUT
			OPTION=OFF => "ORDINARY" PRINTOUT
	MOVE	DEBINW2,W17	IND. ENTER-KEY
	MOVE	BCD2A,DEINPUT	PROGRAM NO. 
	MOVE	BIN1,BCD2A
	IB	BIN1,AOK,AOK,AOK,AOK,AOK,AOK,AOK,AOK
A71 
	B	A6E

A73 
	SET	BOOL1	MENU OPTION 9 => SECTOR PRINTOUT 
	B	AOK
	EJECT
*************************** 
*  COPY DISK OR FILE :    * 
*  INPUT TYPE = V,F,W     * 
*  WITH AUTO ENTER        * 
*************************** 
* 
A8
	MOVE	STR15A,=C'VFW'
	MOVE	DTYP,W0 
	MATCH	STR15A,DTYP,W3,DEINPUT,W0,W1 
	BNOK	A6E 
	MOVE	DEBINW2,W17	ENT 
	B	AOK
	EJECT
*************************** 
*  COPY DISK OR FILE :    * 
*    INPUT UNIT NO.       * 
*************************** 
* 
A9
	PERF	AUNIT,VOLNAM
	MOVE	FCOD1,FCOD
	B	A55
	EJECT
*************************** 
*  COPY DISK OR FILE :    * 
*    OUTPUT UNIT NO.      * 
*************************** 
* 
A10 
	SET	BOOL3	NO UPDFLD, REWRT OF OUTPUT UNIT. 
	PERF	AUNIT,COPNAM
	MOVE	FCOD2,FCOD
	TBT	BOOL2,A55
	CBNE	FCOD1,FCOD2,A55	COPY DISK TO DISC 

AA105	B	A6E 
	EJECT
********************************
*                              *
*  PRINT FILE PRINT DEVICE     *
*                              *
*  WITH AUTO ENTER             *
********************************
* 
A11 
	MOVE	STR2A,DEINPUT 
	CBNE	STR2A,=C'OP',AA111
	MOVE	FCOD2,SCRNFC
	MOVE	BIN15,W24	PAGE-SIZE:=24 
	MOVE	BIN14,W1	LINE-START:=1
	B	AA114
AA111 
	CBE	STR2A,=C'LP',AA112 
	CBNE	STR2A,=C'GP',A71	A6E
	MOVE	FCOD2,=X'0030'
	B	AA113
AA112 
	MOVE FCOD2,=X'0036'
AA113 
	MOVE	BIN15,=W'44'	PAGE-SIZE:=44
	MOVE	BIN14,W6	LINE-START:=6
	PERF	ATTDEV,FCOD2
	BNZ	ANOK	ERROR 
	PERF	DETDEV
AA114 
	MOVE	DEBINW2,W17 
	B	AOK
A12 
	B	AOK
	EJECT
************************
*   DISK TYPE          *
************************
*      INPUT:  DISK TYPE, 01-DMAX 
*      OUTPUT: DISK TYPE IN DTYP
*              STORAGE TYPE (DVER) = 0
* 
A13 
	MOVE	DVER,W0 
	MOVE	BCD3A,DEINPUT 
	MOVE	DTYP,BCD3A
	CBL	DTYP,W1,AA105	CHECK THAT TYPE IS CORRECT 
	CBG	DTYP,DMAX,AA105
	SUB	DTYP,W1
	ADD	DTYP,DTYP
	XCOPY	STR2A,W0,W2,DTYPES,DTYP	COPY CORRESP. TOSS...
	MOVE	BCD3A,STR2A	...UTILITY DISK TYPE TO...
	MOVE	DTYP,BCD3A	...DTYP! 

	B	AOK
	EJECT
******************************
* EXTEND FILE                *
* NO. OF RECORDS IN EXISTING *
* FILE WHEN NAME ENTERED     *
******************************
* 
A14 
	MOVE	:FMTITEM,DEINPUT	UPDATE FILENAME
	PERF	WUEXT1
	CMP	DEBINW4,W0 
	BNE	ANOK 
	ERASE	1,W4,W4
	DISPLAY	3,W4,W4
	B	AOK
	EJECT
******************************
* EXTEND FILE                *
* NO. OF RECORDS IN EXTENDED *
* FILE. 
******************************
* 
A15 
	PERF	WUEXT2
	CMP	DEBINW4,W0 
	BNE	ANOK 
	B	A3 
	EJECT
********************************************
*  CHECK IF FILE IS FOUND (WUPRF ONLY)     *
*  A16 IS ALWAYS ACTIVATED FROM A6.        *
********************************************

A16 
	PERF	CHVNAM,VOLEX1,FCOD	CHANGE VOLNAME TO TEMP.
	BNOK	A165
	CALL	OPENF,DISK,FILECODE(W1),SYSBUF,DEINPUT,VOLEX1,RETCOD
	BOK	A169	JMP IF FILE IS FOUND
	MOVE	DEBINW4,RETCOD	SAVE RETCOD, DESTR. BY CHVNAM
	PERF	CHVNAM,VOLNAM,FCOD	CHANGE VOLNAME TO ORIG.
	CBNE	DEBINW4,W1,A168 
A163
	MOVE	DEBINW4,W18	"DISK NOT OPERABLE" 
	B	ANOK 
A165
	MOVE	STR6A,HEX00 
	CALL	RCGET,RETCOD,STR6A
	MOVE	DEBINW4,W22 
	CBNE	RETCOD,W66,A166	BRANCH IF I/O-ERROR 
	MOVE	DEBINW4,W23	"NOT A TOSS DISK!"
A166
	B	ANOK 
A168
	MOVE	DEBINW4,W12	FILE NAME UNKNOWN 
	B	ANOK 
A169
	CALL	CLOSEF,DISK,FILECODE(W1),SYSBUF,NOREC,RETCOD
	PERF	CHVNAM,VOLNAM,FCOD	CHANGE VOLNAME TO ORIG.
	B	AOK
	EJECT
********************************************************
*                                                      *
* CHECK DISK VERSION (UNPACKED OR PACKED) WHEN CRV FOR *
* 2,5MB OR 5MB CARTRIDGE/FIX DISK.                     *
*                                                      *
* INPUT:  DISK VERSION = 1 (UNPACKED) OR = 2 (PACKED)  *
* OUTPUT: DVER = 2 (UNPACKED) OR = 3 (PACKED)          *
*                                                      *
********************************************************

A17 
	MOVE	BCD2A,DEINPUT 
	MOVE	DVER,BCD2A
	CBL	DVER,W1,AA105	CHECK LIMITS 
	CBG	DVER,W2,AA105

	ADD	DVER,W1	ADD 1 TO KEYBOARD VALUE
	B	AOK
	EJECT

*********************************************** 
*                                             * 
* FILL ENTERED FORM/SECT/DEF-NAME WITH        * 
* TRAILING BLANKS (COPY SPECIFIC)             * 
*                                             * 
*********************************************** 

A18 
	MOVE	STR6B,=' '	STR6B := BLANKS
	XCOPY	STR6B,W0,DEBINW1,DEINPUT,W0	COPY NO OF ENTERED CHARACTERS
	XCOPY	DEINPUT,W0,W6,STR6B,W0	STORE IN INPUT BUFFER 
	B	AOK
	PEND 
	EJECT
************************************************* 
*     THE CONECTION BETWEEN UNIT NO AND DISK    * 
*     IS DONE IN DATA DIVISION AND IS DESCRIBED * 
*     IN SYSTEM GENERATION                      * 
************************************************* 
* 
AUNIT	PROC	VOLYM
	PSTRG	VOLYM
	MOVE	RETCOD,W0 
	MOVE	FCOD,W0 
	MOVE	DEBIN2,W0 
AUN100
	MOVE	DEBIN1,DEBIN2 
	MATCH	DUNIT,DEBIN1,W3,DEINPUT,W0,W3
	BOK	AUN200 
	ADD	DEBIN2,W3
	CBNE	DEBIN2,W66,AUN100 
	RET
AUN200
	CALL	WXDIV,DEBIN2,W3,DEBIN2
	XCOPY	FCOD,W1,W1,DFCODS,DEBIN2 
	MOVE	DEBIN1,W2 
	CBNE	DEBINW3,W10,AUN250
	MOVE	DEBIN1,W4 
	TBF	BOOL2,AUN250 
	MOVE	DEBIN1,W5 
AUN250
	ERASE	1,DEBIN1,DEBIN1	ERASE ON SCREEN
	CALL	CHANFC,DISK,FCOD	CHANGE FILE-CODE 
	CALL	GETVOL,DISK,SYSBUF,VOLYM,RETCOD	GET VOLUME-NAME 
	CALL	WXDIV,DEBIN1,W2,DEBIN1
	DISPLAY	2,DEBIN1,DEBIN1	VOL-NAME 
	CBE	RETCOD,W0,AUN300 
	CBNE	RETCOD,=X'20',AUN275
	MOVE	RETCOD,W11
	B	AUN300 
AUN275
	CBNE	RETCOD,W1,AUN280
	MOVE	RETCOD,W18
	B	AUN300 
AUN280
	CMP	RETCOD,=X'8000'
	BNE	AUN290 
	MOVE	RETCOD,W13
	B	AUN300 
AUN290
	MOVE	STR6A,HEX00 
	CALL	RCGET,RETCOD,STR6A
	MOVE	RETCOD,W22
AUN300
	MOVE	DEBINW1,W0
	MOVE	:FMTITEM,DEINPUT
	RET
	PEND 
	EJECT
ATTDEV	PROC	FILCOD
	PBIN	FILCOD
	CALL	CHANFC,DEDSPRT,FILCOD 
	MOVE	DEBINW4,W0
	DSC0	.NW,DEDSPRT,TSTAT 
	DELAY	W10	CHANGED FROM W4 TO W10 831015
	TESTIO	DEDSPRT 
	BNZ	NOTOK
	WAIT	DEDSPRT 
	XSTAT	DEDSPRT,DEBINW4
	CBE	DEBINW4,W0,ATTOK 
	CBE	DEBINW4,SECLEN,ATTOK0	"RETRIES PERFORMED" = "OK" 
	B	ATT100 
NOTOK 
	ABORT	DEDSPRT
	B	ATT100 
ATTOK0
	MOVE	DEBINW4,W0	SET RETURN-CODE = 0 IF RETRIES PERF. 
ATTOK 
	DSC1	DEDSPRT,ATTACH,W20
	BOK	ATTOUT 
	MOVE	DEBINW4,W3
	B	ATTOUT 
ATT100
	MOVE	DEBINW4,W3
ATTOUT
	CMP	DEBINW4,W0 
	RET
	PEND 
DETDEV	PROC 
	DSC1	DEDSPRT,DETACH,W0 
	RET
	PEND 
	EJECT
* 
*  STPBLK => PUT'S CURSOR ON AND STOP'S BLOCKING
* 
STPBLK	PROC 
	MOVE	VD82CW,=X'0080'	CURSOR ON 
	DSC	DEDSSCRN,X'11',VD82CW
	DSC	DEDSSCRN,STOPBLK	STOP BLOCKING 
	RET
	PEND 
* 
*   STABLK => START'S BLOCKING AND TURNS CURSOR OFF 
* 
STABLK	PROC 
	DSC	DEDSSCRN,STARTBLK	START BLOCKING 
	MOVE	VD82CW,=X'01C0'	DISCONNECT CURSOR 
	DSC	DEDSSCRN,X'11',VD82CW
	MOVE	VD82CW,=X'0180'	INVISIBLE CURSOR
	DSC	DEDSSCRN,X'11',VD82CW
	RET
	PEND 
	EJECT
FPROG	FRMT
	FSL
	FATTR	.HIGH	HIGH INTENSITY 
	FTEXT	'WSM REL ' 
	FCOPY	RELNUM 
	FTAB	20
	FTEXT	'RELEASE DATE: ' 
	FCOPY	RELDAT 
	FNL
	FNL
	FATTR	.HIGH	HIGH INTENSITY 
	FTAB	3 
	FATTR	.INV	INVERSE VIDEO 
	FCOPY	=C'WSM UTILITIES'
	FNL
	FNL
	FATTR	.HIGH	HIGH INTENSITY 
	FCOPY	=C'   FUNCTION SELECTION:' 
	FKI	24,MINL=1,MAXL=1,ME,NEOI,REWRT,APPL=7
	FMEL	'X',PRNUM 
	FATTR	.HIGH	HIGH INTENSITY 
	FTAB	26
	FCOPY	=C'1 ='
	FTAB	31
	FCOPY	=C'CREATE VOLUME'
	FNL
	FATTR	.HIGH	HIGH INTENSITY 
	FTAB	26
	FCOPY	=C'2 ='
	FTAB	31
	FCOPY	=C'CREATE WSM SYSTEM FILE' 
	FNL
	FATTR	.HIGH	HIGH INTENSITY 
	FTAB	26
	FCOPY	=C'3 ='
	FTAB	31
	FCOPY	=C'DELETE FILE'
	FNL
	FATTR	.HIGH	HIGH INTENSITY 
	FTAB	26
	FCOPY	=C'4 ='
	FTAB	31
	FCOPY	=C'COPY VOLUME/FILE' 
	FNL
	FATTR	.HIGH	HIGH INTENSITY 
	FTAB	26
	FCOPY	=C'5 ='
	FTAB	31
	FCOPY	=C'EXTEND WSM SYSTEM FILE' 
	FNL
	FATTR	.HIGH	HIGH INTENSITY 
	FTAB	26
	FCOPY	=C'6 ='
	FTAB	31
	FCOPY	=C'PRINT FILE TABLE OF CONTENTS' 
	FNL
	FATTR	.HIGH	HIGH INTENSITY 
	FTAB	26
	FCOPY	=C'7 ='
	FTAB	31
	FCOPY	=C'CHANGE VOLUME-NAME' 
	FNL
	FATTR	.HIGH	HIGH INTENSITY 
	FTAB	26
	FCOPY	=C'8 ='
	FTAB	31
	FCOPY	=C'PRINT VTOC' 
	FNL	10 
	FATTR	.HIGH	HIGH INTENSITY 
	FATTR	.INV	INVERSE VIDEO 
	FCOPY	=C'IMPORTANT: '
	FCOPY	=C'ALWAYS RETURN TO THIS MENU '
	FCOPY	=C'BEFORE UNLOADING ANY VOLUME!' 
	FMEND
* 
FHALT	FRMT
	FSL
	FATTR	.HIGH	HIGH INTENSITY 
	FATTR	.INV	INVERSE VIDEO 
	FATTR	.FLASH	BLINKING
	FCOPY	=C'PRESS ENT TO CONTINUE'
	FMEND
* 
FHEX	FRMT 
	FNL
	FKI	1,MINL=0,MAXL=0
	FCOPY	HEX00
	FMEND
* 
FCONT	FRMT
	FSL
	FATTR	.HIGH	HIGH INTENSITY 
	FATTR	.INV	INVERSE VIDEO 
	FATTR	.FLASH	BLINKING
	FCOPY	=C'WAIT...'
	FMEND
* 
	END

Full view