Listing of file='@RAMDISK' on disk='vmedia/734-8446-A.wvd.zip'
# Sector 2141, program filename = '@RAMDISK' 0010 REM ! @RAMDISK 08/16/88 - DS RAM DISK ALLOCATION UTILITY : REM ! (c) Copyright, Wang Laboratories, Inc., 1987. All rights reserved. 0020 REM %variables : DIM S1$3,B$3,P$8,E$(18)2,Q$1,T$80,M1$50,M2$50 : STR(G$,1,1)=HEX(20) : STR(F$,1,1)=HEX(30) 0030 REM %screen 1 : SELECT PRINT 005(80) : PRINT HEX(0D030202000F020402000F06); 0040 T$="D S R A M D i s k A l l o c a t i o n" : PRINT AT(0,40-LEN(T$)/2);HEX(0F);T$ 0050 PRINT AT(23,61);"FN/TAB - Exit";AT(22,61);"RETURN - Proceed"; 0060 GOSUB '50("(c) Copyright, Wang Laboratories, Inc., 1987"," All rights reserved.") 0065 B$="D50" 0070 REM %get DS address : B$="D50" : PRINT AT(8,18);"Address of RAM Disk (D50, D60, or D70): "; : LINPUT HEX(0E),-B$ : IF B$="RUN"THEN 65 : PRINT HEX(06); : GOSUB '50(" "," ") : $TRAN(B$,"DdBb")R : IF POS("DB"=STR(B$,1,1))<>0 AND POS("567"=STR(B$,2,1))<>0 AND STR(B$,3,1) ="0" THEN 80 : GOSUB '50(HEX(0E),"Illegal address") : GOTO 70 0080 SELECT #2 <B$> : ERRORGOSUB '50(HEX(0E),"Invalid address") : GOTO 70 0090 REM %get DS status : GOSUB '50(HEX(0E),"Getting device status") : STR(F$,2,6)=ALL(00) : E$()=ALL(20) : $GIO STATUS REQUEST #2 (0E14 0F00 12E2 0600 0700 70A0 4002 88D0 7040 6A10 6816 4000 8705 1A00 C340, F$)F$;STR(E$(),,VAL(STR(F$,5,1))) : S1=VAL(STR(E$(),6,2),2)*256+VAL(STR(E$(),8,1)) 0100 STR(F$,8,1)=AND HEX(10) : IF STR(F$,8,1)=HEX(00) THEN 110 : GOSUB '50(HEX(0E),"Disk unavailable") : GOTO 70 0110 IF STR(E$(),1,1)=HEX(33)THEN 120 : GOSUB '50(HEX(0E),"Specified disk is not a DS") : GOTO 70 0120 GOSUB '50(" "," ") 0130 REM %get RAM Disk size : PRINT AT(10,18);"Number of sectors to allocate to RAM Disk: "; : LINPUT HEX(0E),-S1$ : PRINT HEX(06); : IF NUM(S1$)>=LEN(S1$)THEN 140 : GOSUB '50(HEX(0E),"Invalid number") : GOTO 130 0140 CONVERT S1$ TO S1 : IF S1<901 AND S1 >-1 AND INT(S1)=S1 THEN 150 : GOSUB '50(HEX(0E),"Illegal RAM Disk size") : GOTO 130 0150 REM %allocate RAM Disk : GOSUB '50(HEX(0E),"Allocating RAM Disk") : STR(G$,1,1)=HEX(30) : STR(G$,2,2)=BIN(S1,2) : STR(G$,8,8)=P$ : P$=" " : STR(G$,4,4)=ALL(00) : $GIO ALLOCATE RAM DISK #2 (0600 0700 70A0 4002 88D0 7040 6A10 6825 8B67 6 A20 6A30 4000 8706, G$) : STR(G$,8,8)=ALL(00) 0160 IF STR(G$,6,1)<> HEX(01) THEN 170 : GOSUB '50 (HEX(0E),"Insufficient cache space available") : GOTO 70 0170 IF STR(G$,6,1)<> HEX(02) THEN 190 : STR(F$,2,6)=ALL(00) : E$()=ALL(20) : $GIO STATUS REQUEST #2 (0600 0700 70A0 4002 88D0 7040 6A10 6816 4000 8705 1A00 C340, F$)F$;STR(E$(),,VAL(STR(F$,5,1))) : S2=VAL(STR(E$(),6,2),2)*256+VAL(STR(E$(),8,1)) 0180 GOSUB '50("RAM Disk already allocated","To deallocate, enter a size of 0 ") : GOTO 70 0190 IF STR(G$,6,1)=HEX(00) THEN 200 : GOSUB '50(HEX(0E),"System error") : GOTO 70 0200 IF S1>0 THEN GOSUB '50(HEX(0E),"RAM Disk allocation successful") : ELSE GOSUB '50(HEX(0E),"RAM Disk deallocated") : GOTO 70 0210 DEFFN'127 0220 DEFFN'126 : LOAD RUN "@MENU" 0230 DEFFN'50(M1$,M2$) : REM %'50 - display message at lower left corner (lines 22,23) : PRINT AT(22,0);STR(M1$);AT(23,0);STR(M2$);HEX(0F); : RETURN