image of READY prompt

Wang2200.org

Listing of file='@DOS' on disk='vmedia/731-8028-A.wvd.zip'

# Sector 126, program filename = '@DOS'
0010 REM %^ @DOS Emulation Program By Kirit Baxi E.A.M.E. R&D
0020 REM Version 1.0 20 JUN 1991
0030 REM ********************************************************
0040 REM *                                                      *
0050 REM *           @DOS Command Processor                     *
0060 REM *                                                      *
0070 REM ********************************************************
0080 REM t$()=translate table  - P$()=DEVICE TABLE
0100 DIM A$4,B$40,C$(16)32,D$(16),C$2,D$2,E$32,H$8,G$3
   : G$="1.0"
   : REM % GET CPU TYPE
   : X$=$PSTAT(#PART)
0110 REM SELECT ALT SET
   : PRINT HEX(0202000E)
0120 REM % IF RUN 1ST TIME DISPLAY VERSION
0130 I1$,I2$=ALL(20)
0140 H$=I4$
   : IF STR(H$,1,1)<>"R"THEN DO
   : W$="A:"
   : PRINT HEX(0202020E0302050F0E);
   : PRINTUSING 810;G$
   : PRINT
   : END DO
   : ELSE PRINT HEX(02050F);
0150 IF W$="A:"THEN GOSUB 820
0160 I4$=ALL(20)
   : IF W$="A:"THEN DO
   : N1=2
   : N2=3
   : END DO
   : IF W$="B:"THEN DO
   : N1=3
   : N2=2
   : END DO
   : N=N1
0170 FOR X=1TO 16
   : READ C$(X)
   : NEXT X
0180 REM % DOS PROMPT
0190 B$,I$=ALL(20)
   : E=0
   : PRINTUSING "CS DOS Emul\#>";STR(W$,1,1);
0200 LINPUT B$
   : IF STR(B$,1,2)="  "THEN 190
0210 $TRAN(B$,T$())
   : IF B$="A:"OR B$="B:"THEN GOTO 830
   : REM Go and check syntax
   : GOSUB 680
0220 REM % CHECK IF VALID SYNTAX
   : IF I$=HEX(000000000000000000000000)THEN I$=ALL(20)
0230 $TRAN(B$,T$())
   : I3$=B$
0240 IF E=99THEN PRINT HEX(0D0E07);"Bad Command or File not found";HEX(0F)
   : IF E=99THEN GOTO 180
0250 ON AGOTO 310,310,350,380,420,430,430,470,500,510,570,520,580,600,620,670
0260 PRINT HEX(0D0A)
   : A=0
   : GOTO 180
0270 STOP
0280 REM % Commands
0290 DATA "dir","dir /p","dir /w","delete","exit","format a:","format a:/v","t
     ype","cls","ver","setup"," ","diskcopy a: a:","rename","copy","help"
0300 REM % MAIN COMMAND PROCESS STARTS HERE!
0310 C$=ALL(00)
   : MAT SEARCHB$,=":"TO C$
   : IF VAL(C$,2)=0THEN 330
   : IF STR(B$,VAL(C$,2)+1,2)="/W"THEN 350
   : GOTO 320
0320 IF STR(B$,VAL(C$,2)-1,1)="C"THEN 340
   : IF STR(B$,VAL(C$,2)-1,1)="B"AND W$="A:"THEN N=N2
   : IF W$="B:"AND STR(B$,VAL(C$,2)-1,1)="A"THEN N=N2
0330 IF VAL(C$,2)=0THEN N=N1
   : LOAD T"@DOSDIRP"
0340 LIST SDC T#1,W
   : PRINT
   : GOTO 190
0350 C$=ALL(00)
   : MAT SEARCHB$,=":"TO C$
   : IF VAL(C$,2)=0THEN 370
   : GOTO 360
0360 IF STR(B$,VAL(C$,2)-1,1)="B"AND W$="A:"THEN N=N2
   : IF W$="B:"AND STR(B$,VAL(C$,2)-1,1)="A"THEN N=N2
0370 IF VAL(C$,2)=0THEN N=N1
   : LOAD T"@DOSDIRW"
0380 C$=ALL(00)
   : I$=ALL(20)
   : MAT SEARCHB$,=":"TO C$
   : D1=VAL(C$,2)
   : IF D1=0THEN 400
0390 IF STR(B$,VAL(C$,2)-1,1)="B"AND W$="A:"THEN N=N2
   : IF W$="B:"AND STR(B$,VAL(C$,2)-1,1)="A"THEN N=N2
   : GOTO 410
0400 IF VAL(C$,2)=0THEN DO
   : N=N1
   : C$=ALL(00)
   : MAT SEARCHSTR(B$,C1+1),=" "TO C$
   : C=VAL(C$,2)
   : I$=STR(B$,C+1)
   : END DO
   : GOTO 410
0410 I1$=ALL(20)
   : MAT SEARCHB$,=" "TO C$
   : C=VAL(C$,2)
   : IF D1=0THEN D1=C
   : I1$=STR(B$,D1+1,12)
   : LOAD T"@DOSDEL"
0420 PRINT
   : LOAD T"@DOSEXIT"
0430 C$=ALL(00)
   : MAT SEARCHB$,=":"TO C$
   : IF VAL(C$,2)=0THEN 450
   : GOTO 440
0440 IF STR(B$,VAL(C$,2)-1,1)="B"AND W$="A:"THEN N=N2
   : IF W$="B:"AND STR(B$,VAL(C$,2)-1,1)="A"THEN N=N2
0450 IF VAL(C$,2)=0THEN N=N1
   : C$=ALL(00)
   : MAT SEARCHB$,="/"TO C$
   : IF VAL(C$,2)=0THEN 460
   : I4$=STR(B$,VAL(C$,2),2)
   : STR(I4$,2,1)=STR(I4$,2,1)OR HEX(20)
0460 LOAD T"@DOSFORM"
0470 GOSUB 850
0480 C1=VAL(C$,2)
   : I$=STR(B$,C1+1)
0490 C$=ALL(00)
   : MAT SEARCH"WT",=STR(X$,9,1)TO C$
   : IF VAL(C$,2)=0THEN 890
   : LOAD T"@DOSTYPE"
0500 PRINT HEX(03);
   : GOTO 180
0510 PRINT HEX(0D0A0E);
   : PRINTUSING 810;G$
   : PRINT
   : GOTO 180
0520 C$=ALL(00)
   : I$=ALL(20)
   : MAT SEARCHB$,=":"TO C$
   : IF VAL(C$,2)=0THEN 540
0530 IF STR(B$,VAL(C$,2)-1,1)="B"AND W$="A:"THEN N=N2
   : IF W$="B:"AND STR(B$,VAL(C$,2)-1,1)="A"THEN N=N2
   : GOTO 550
0540 IF VAL(C$,2)=0THEN DO
   : N=N1
   : C$=ALL(00)
   : MAT SEARCHSTR(B$,C1+1),=" "TO C$
   : C=VAL(C$,2)
   : I$=STR(B$,C+1)
   : END DO
   : GOTO 560
0550 C1=VAL(C$,2)
   : I$=STR(B$,C1+1)
0560 C$=ALL(00)
   : MAT SEARCH"WT",=STR(X$,9,1)TO C$
   : IF VAL(C$,2)=0THEN 890
   : LOAD T"@DOSTYLP"
0570 LOAD T"@DOSSET"
0580 GOSUB 850
   : C$=ALL(00)
   : MAT SEARCHB$,=":"TO C$
   : C=VAL(C$,2)
   : IF C=0THEN 590
   : IF C<>0THEN DO
   : I1$=STR(B$,C-1,2)
   : MAT SEARCHSTR(B$,C+1),=":"TO C$
   : C1=VAL(C$,2)
   : IF C1<>0THEN I2$=STR(B$,(C+C1)-1,2)
   : END DO
0590 LOAD T"@DOSDCPY"
0600 GOSUB 850
0610 I1$,I2$=ALL(20)
   : C$,D$=ALL(00)
   : MAT SEARCHB$,=" "TO C$
   : C=VAL(C$,2)
   : D=LEN(B$)
   : IF D1=0THEN D1=C
   : MAT SEARCHSTR(B$,D1+1),=" "TO C$
   : C1=VAL(C$,2)
   : I1$=STR(B$,D1+1,C1-1)
   : I2$=STR(B$,C1+D1+1)
   : LOAD T"@DOSREN"
0620 GOSUB 850
   : IF STR(B$,F+1,2)="A:"THEN N=N1
   : IF STR(B$,F+1,2)="B:"THEN N=3
   : IF STR(B$,F+2,1)<>":"THEN N=N1
0630 I1$,I2$=ALL(20)
   : C$,D$=ALL(00)
   : MAT SEARCHB$,=" "TO C$
   : C=VAL(C$,2)
   : D=LEN(B$)
   : I1$=STR(B$,C+1)
   : MAT SEARCHI1$,=" "TO C$
   : C1=VAL(C$,2)
   : I2$=STR(B$,C+C1+1)
   : STR(I1$,C1)=ALL(20)
0640 IF STR(I1$,1,2)="C:"OR STR(I2$,1,2)="C:"THEN 650
   : ELSE GOTO 660
0650 C$=ALL(00)
   : MAT SEARCH"WT",=STR(X$,9,1)TO C$
   : IF VAL(C$,2)=0THEN 890
   : LOAD T"@DOSCYCS"
0660 C$=ALL(00)
   : MAT SEARCH"WT",=STR(X$,9,1)TO C$
   : IF VAL(C$,2)=0THEN 890
   : LOAD T"@DOSCOPY"
0670 LOAD T"@DOSHELP"
0680 REM % Syntax Check routine
0690 REM CONVERT TO LOWER CASE
   : B$=B$OR E$
   : A,B,E,O,P,Q,R,S=0
0700 O=POS(B$=" ")
   : IF O<4THEN E=99
   : IF O<4THEN 800
   : O1=LEN(B$)
   : FOR X=1TO 16
   : IF STR(B$,1,O-1)=STR(C$(X),1,O-1)THEN A=X
   : IF A>0THEN X=17
   : NEXT X
   : IF A=0THEN E=99
0710 P=POS(B$="/")
   : IF P=0THEN Q=POS(B$=">")
   : R=POS(B$=":")
   : S=POS(B$=".")
   : IF P<>0OR Q<>0THEN 720
   : ELSE GOTO 730
0720 FOR X=1TO 16
   : IF STR(B$,1,P+1)=STR(C$(X),1,P+1)THEN B=X
   : IF B>0THEN X=17
   : NEXT X
0730 IF B<>0THEN A=B
0740 IF P<>0THEN I$=STR(B$,P,2)
0750 IF S<>0THEN I$=STR(B$,O+1,S+3)
0760 IF Q<>0THEN I$=STR(B$,O+1,(Q-O)-1)
   : IF Q<>0THEN A=12
0770 IF A=0AND P=0AND Q=0AND S=0THEN E=99
0780 IF LEN(I$)>1THEN I$=I$XOR E$
   : $TRAN(I$,HEX(2E0E))R
0790 IF LEN(B$)=5AND STR(B$,1,15)="dir a"THEN E=99
   : ELSE IF LEN(B$)=5AND STR(B$,1,15)="dir b"THEN E=99
   : ELSE IF LEN(B$)=5AND STR(B$,1,15)="dir c"THEN E=99
0800 RETURN
0810 %CS DOS Emulation Version ### (c) Wang Laboratories Inc., 1991
0820 N1=2
   : N2=3
   : RETURN
0830 REM % SET DEFAULT DRIVE IF REQUESTED
   : IF B$="A:"THEN DO
   : N1=2
   : N2=3
   : W$=B$
   : END DO
   : IF B$="B:"THEN DO
   : N1=3
   : N2=2
   : W$=B$
   : END DO
0840 GOTO 180
0850 C$=ALL(00)
   : I$=ALL(20)
   : MAT SEARCHB$,=" "TO C$
   : F=VAL(C$,2)
   : C$=ALL(00)
   : MAT SEARCHB$,=":"TO C$
   : D1=VAL(C$,2)
   : IF D1=0THEN 870
0860 IF STR(B$,VAL(C$,2)-1,1)="B"AND W$="A:"THEN N=N2
   : IF W$="B:"AND STR(B$,VAL(C$,2)-1,1)="B:"THEN N=N1
   : GOTO 880
0870 IF VAL(C$,2)=0THEN DO
   : N=N1
   : C$=ALL(00)
   : MAT SEARCHSTR(B$,C1+1),=" "TO C$
   : C=VAL(C$,2)
   : I$=STR(B$,C+1)
   : END DO
0880 RETURN
0890 PRINT
   : PRINT HEX(070E);"Command supported on CS 386 systems only"
   : PRINT
   : GOTO 190
0900 STOP " IF YOU ARE HERE SOMETHING IS WRONG!!!"
0910 REM % EDIT FN'3 REPEATS LAST COMMAND
0920 DEFFN'3
   : $TRAN(I3$,HEX(202D))R
   : B$=STR(I3$,1,LEN(I3$))
   : PRINT HEX(0C);
   : PRINTUSING "CS DOS Emul\#>";STR(W$,1,1);
   : GOTO 200
0930 DEFFN'31
   : RESAVE T"@DOS"