.ENABLE SUBSTITUTION .DISABLE LOWERCASE .SETS OLDUIC .SETT DEL ! Delete build files after use .SETN VDNUM 0 .SETN VMNUM 0 .SETN VPNUM 0 .SETS LIB "IN:[130,10]" ; ; Build the Virtual Device drivers and tasks ; .ASKS [2:5] IN On what device is the VDV kit (DDUU) .ASKS [2:5] OUT What is the network task output device (DDUU) .ASKN [1:377] UIC What is the network group UIC .TEST IN .IFT .SETS IN "'IN':" .TEST OUT .IFT .SETS OUT "'OUT':" .ENABLE QUIET ASN 'OUT'=OU: ASN 'IN'=IN: .TESTFILE 'LIB'NETLIB.MLB .IF EQ 1 .GOTO 000 .TESTFILE DB1:[100,110]NETLIB.MLB .IF EQ 1 .SETS LIB "DB1:[100,110]" .000: .DISABLE QUIET ; ; Do you want to build - .ASK VDR The virtual device command processor (...VDV) .ASK VDV The virtual device front end (VDV$$$) .ASK VDH The virtual device host (VDH$$$) .ASK VD The virtual disk driver (VD:) .IFT VD .ASKN [1:8.:2] VDNUM Number of VD: units .IFT VD .DEC VDNUM .ASK VM The virtual mag-tape driver (VM:) .IFT VM .ASKN [1:8.:2] VMNUM Number of VM: units .IFT VM .DEC VMNUM .ASK VP The virtual printer driver (VP:) .IFT VP .ASKN [1:8.:2] VPNUM Number of VP: units .IFT VP .DEC VPNUM .IFT VDR .OR .IFT VDV .OR .IFT VDH .OR .IFT VD .OR .IFT VM .OR .IFT VP .GOTO 0 .TESTFILE IN:[200,200]VDR.MAC .IF NE 1 .GOTO 999 ! Exit if source files not on input device .ASK ASM Do you want to reassemble the VDR,VDV,VDH sources .IFF ASM .GOTO 999 .ASK Q Do you want listings produced .SETS LST IN .IFF Q .SETS LST "NL:" .00: ; ; The assembly output files will go onto 'IN'. Please make sure that it ; is write-enabled. ; .ASK Q Is 'IN' write-enabled .IFF Q .GOTO 00 ; ASN 'LST'=LS: SET /UIC=[200,200] MAC IN:VDR,LS:VDR/-SP=OU:['UIC',10]RSXMC,'LIB'NETLIB/ML,IN:[200,200]VDR MAC IN:VDV,LS:VDV/-SP=OU:['UIC',10]RSXMC,'LIB'NETLIB/ML,IN:[200,200]VDV MAC IN:VDH,LS:VDH/-SP='LIB'NETLIB/ML,IN:[200,200]VDH MAC IN:VDHBUF,LS:VDHBUF/-SP=IN:VDHBUF PIP IN:VDV.OBS/NV=VDR.OBJ,VDV,VDH,VDHBUF PIP IN:VDR.OBJ;0/DE/NM,VDV.OBJ;0,VDH.OBJ;0,VDHBUF.OBJ;0 PIP IN:*.LST/PU/NM LBR VDV/CR:45.:0:64.=VDV.OBS PIP VDV.OBS;0/DE .GOTO 999 .0: .; .; Create the build files .; .ENABLE QUIET SET /UIC=['UIC',10] .OPEN OU:P.MAC .ENABLE DATA VD.UNT='VDNUM' ; HIGHEST VD: UNIT NUMBER VM.UNT='VMNUM' ; HIGHEST VM: UNIT NUMBER VP.UNT='VPNUM' ; HIGHEST VP: UNIT NUMBER .DISABLE DATA .CLOSE OU:P.MAC SET /UIC=['UIC',24] .IFF VDR .GOTO 1 .OPEN OU:VDRBLD.CMD .ENABLE DATA ; ; Build Virtual Device requestor task (VDR) ; OU:VDR/PR/-FP/-SE= IN:[200,200]VDV/LB:VDR OU:RSX11M.STB/SS LB:[1,1]EXELIB/LB/SS / UNITS=3 ASG=TI:2 TASK=...VDV ; ; Define special UCB offsets ; Note: for non-multi-user systems, increase these by 4 ; GBLDEF=U.VDV:177774 GBLDEF=U.USR:177772 // .DISABLE DATA .CLOSE OU:VDRBLD.CMD .1: .IFF VDV .GOTO 2 .OPEN OU:VDVBLD.CMD .ENABLE DATA ; ; Build Virtual Device front end (VDV) ; OU:VDV/PR/-FP/-SE= IN:[200,200]VDV/LB:VDV OU:RSX11M.STB LB:[1,1]EXELIB/LB/SS / TASK=VDV$$$ PRI=100 UNITS=3 ASG=TI:1 ; ; Define special UCB offsets ; Note: For non-multi-user systems, increase these by 4 ; GBLDEF=U.VDV:177774 GBLDEF=U.USR:177772 GBLDEF=U.AST:177770 ; ; Define Host object type (in octal) ; GBLDEF=NO.VDV:62 // .DISABLE DATA .CLOSE OU:VDVBLD.CMD .2: .IFF VDH .GOTO 3 .OPEN OU:VDHBLD.CMD .ENABLE DATA ; ; Build Virtual Device Host server (VDH) ; OU:VDH/PR:0/CP/-FP/-SE= OU:['UIC',24]VDHBLD/MP TASK=VDH$$$ PRI=100 UNITS=3 ASG=SY:1:2:3 ; ; Big buffer alocation for large Mag-tape transfers can be ; allocated in 3 ways: ; 1. By extending the PSECT ...BIG to the desired size. ; This will allocate the space in all invocations of VDH, ; even when doing disk and printer access. ; 2. GBLPAT the location .BSIZE to the desired value. ; VDH will do an extend task to the correct size, if the ; device being accessed is a mag-tape. This requires EXTK$ ; and checkpointing support in the system. ; 3. If any mag-tape request is larger then the buffer allocated ; by the above means, VDH will attempt to EXTK$ to the desired ; size. Since at that time it has outstanding receive requests, ; it will only succeed if the system supports buffered network I/O. ; ;EXTSCT=...BIG:10070 GBLPAT=VDH:.BSIZE:10070 // .DISABLE DATA .CLOSE OU:VDHBLD.CMD .OPEN OU:VDHBLD.ODL .ENABLE DATA ; ; Overlay Descriptor for Virtual Device Host server (VDH) ; .ROOT CODE,BUFF CODE: .FCTR IN:[200,200]VDV/LB:VDH-*(CSI,PARSE,OPEN,CLOSE) CSI: .FCTR LB:[1,1]SYSLIB/LB:.CSI1:.CSI2 PARSE: .FCTR LB:[1,1]SYSLIB/LB:PARSE OPEN: .FCTR LB:[1,1]SYSLIB/LB:OPFNB:FINIT CLOSE: .FCTR LB:[1,1]SYSLIB/LB:CLOSE BUFF: .FCTR IN:[200,200]VDV/LB:VDHBUF .END .DISABLE DATA .CLOSE OU:VDHBLD.ODL .3: .IFF VD .GOTO 4 .OPEN OU:VDDRVBLD.CMD .ENABLE DATA ; ; Build Virtual Disk (VD:) driver ; OU:['UIC',54]VDDRV/-HD/-MM,,VDDRV= OU:['UIC',24]VDDRV,VDTAB LB:[1,1]EXELIB/LB OU:['UIC',54]RSX11M.STB/SS / STACK=0 PAR=GEN:120000:2000 // .DISABLE DATA .CLOSE OU:VDDRVBLD.CMD .4: .IFF VM .GOTO 5 .OPEN OU:VMDRVBLD.CMD .ENABLE DATA ; ; Build Virtual Mag-tape (VM:) driver ; OU:['UIC',54]VMDRV/-HD/-MM,,VMDRV= OU:['UIC',24]VMDRV,VMTAB LB:[1,1]EXELIB/LB OU:['UIC',54]RSX11M.STB/SS / STACK=0 PAR=GEN:120000:2000 // .DISABLE DATA .CLOSE OU:VMDRVBLD.CMD .5: .IFF VP .GOTO 6 .OPEN OU:VPDRVBLD.CMD .ENABLE DATA ; ; Build Virtual Printer (VP:) driver ; OU:['UIC',54]VPDRV/-HD/-MM,,VPDRV= OU:['UIC',24]VPDRV,VPTAB LB:[1,1]EXELIB/LB OU:['UIC',54]RSX11M.STB/SS / STACK=0 PAR=GEN:120000:400 // .DISABLE DATA .CLOSE OU:VPDRVBLD.CMD .6: .DISABLE QUIET ; ; Start time = '