image of READY prompt

Wang2200.org

Listing of file='@DOSDCPY' on disk='vmedia/mvp-boot-3.5.wvd.zip'

# Sector 1001, program filename = '@DOSDCPY'
0010 REM %^ Dos Diskcopy command  'WRITTEN BY  KIRITBAXI  E.A.M.E R&D
0020 REM % VERSION 1.0 20 JUN 1991
0030 REM ************************************************************
0040 REM *                                                          *
0050 REM *               DOS DISKCOPY EMULATION                     *
0060 REM *                                                          *
0070 REM ************************************************************
0100 DIM D$(16),G1$17,E1$32,P$1,G1$(32)3,B$3,G2$1,J$11,L$1,M$1
   : P$=HEX(10)
   : REM VARIABLES FOR GETTING DISK STATUS
0110 DIM A$(16)32,K$1,G$15,H$8,J$11
   : H$=I4$
0120 REM % set cursor flash
   : PRINT HEX(02050F)
0130 REM % ADDRESS SETUP BY DOS PROG.
   : B$=SELECT #N
   : SELECT #4<B$>
   : IF N=2THEN L$="A"
   : IF N=3THEN L$="B"
   : IF I2$="B:"THEN N0=N2
   : IF I2$="A:"THEN N0=N1
   : IF I2$="  "THEN N0=N
   : IF N0=2THEN M$="A"
   : IF N0=3THEN M$="B"
   : B$=SELECT #N0
   : SELECT #5<B$>
0140 REM % check if workfile exists if not create
   : LIMITS T#0,"workfile",A1,B1,C1,D1
   : IF D1=0THEN DO
   : DATA SAVE DC OPEN T#0,(4801)"workfile"
   : LIMITS T#0,"workfile",A1,B1,C1,D1
   : END DO
0150 GOSUB 8000
   : IF A$="HD"THEN A=4800
   : IF A$="DD"THEN A=1440
   : REM Get Disk status
0160 C=A-1
   : REM LAST SECTOR ON DISK.
0170 PRINTUSING 610;L$
0180 PRINTUSING 620;
0190 GOSUB 500
   : IF POS(HEX(7E7FF0)=K$)<>0THEN 490
   : IF K$<>HEX(0D)THEN 190
0200 REM % Check if drive has a disk
   : DATA LOAD BMT#N,(0,L)G2$
   : ERRORE=ERR
   : IF E=98THEN 200
   : ELSE GOTO 210
0210 PRINT
   : PRINT " Reading Source disk...";
0220 REM % Copy source to workfile starting sector a1
   : PRINT HEX(0A)
   : COPY T#N,(0,C)TO T#0,(A1)
0230 PRINTUSING 680;M$
0240 PRINTUSING 620;
0250 GOSUB 500
   : IF POS(HEX(7E7FF0)=K$)<>0THEN 490
   : IF K$<>HEX(0D)THEN 250
0260 REM % Check if drive has a disk
   : DATA LOAD BMT#N0,(0,L)G2$
   : ERRORE=ERR
   : IF E=98THEN 260
   : ELSE GOTO 270
0270 REM % Check if disk is formatted
   : DATA LOAD BMT#N0,(0,L)G2$
   : ERRORE=ERR
   : IF E=93THEN GOSUB 360
0280 GOSUB 9000
0290 IF K$="y"THEN 310
0300 IF K$="n"THEN 490
0310 PRINT
   : PRINT " Copying to output diskette...";
0320 REM %copy from sector a1 of workfile upto c sectors to floppy
   : COPY T#0,(A1,A1+C)TO T#N0,(0)
   : PRINT
   : PRINT " Copy Complete. . ."
0330 PRINTUSING 690;
0340 GOSUB 500
   : K$=K$OR HEX(20)
   : IF POS("YyNn"=K$)<>0THEN PRINT K$
   : IF K$="y"THEN 230
   : ELSE GOTO 350
0350 GOTO 490
0360 REM % Format Disk
0370 PRINT HEX(0D0A0E);" Format in Progress ..."
0380 $GIO#5(0600070070A0400288D0704001306A10680240018B67,G$)
0390 IF STR(G$,6,3)=HEX(000000)THEN 470
0400 IF STR(G$,6,3)=HEX(000204)THEN 430
   : REM RETRY COMMAND
0410 IF STR(G$,6,3)=HEX(010000)THEN 430
0420 IF STR(G$,6,3)<>HEX(000000)THEN 450
0430 PRINT
   : PRINT
   : PRINTUSING 630;L$
   : PRINTUSING 640;
0440 GOSUB 500
   : K$=K$OR HEX(20)
   : PRINT K$;
   : IF K$="a"THEN 490
   : IF K$="r"THEN 370
   : IF K$="f"THEN GOTO 490
   : GOSUB 500
   : IF K$=HEX(7E)OR K$=HEX(7F)THEN 490
0450 PRINT
   : PRINT
   : PRINTUSING 650
   : PRINTUSING 660
0460 GOSUB 500
   : K$=K$OR HEX(20)
   : IF K$="y"OR K$="n"THEN PRINT K$;
   : IF K$="y"THEN PRINT
   : IF K$="y"THEN 170
   : IF K$="n"THEN 490
   : IF K$=HEX(7E)OR K$=HEX(7F)THEN 490
   : GOTO 460
0470 PRINT
   : PRINTUSING 670
   : PRINT
   : RETURN
0480 GOSUB 500
   : K$=K$OR HEX(20)
   : IF K$="y"OR K$="n"THEN PRINT K$;
   : IF K$="y"THEN PRINT
   : IF K$="y"THEN 170
   : IF K$="n"THEN 490
   : IF K$=HEX(7E)OR K$=HEX(7F)THEN 490
   : GOTO 480
0490 REM % RET > COMMAND PROC
   : PRINT
   : I4$="R"
   : LOAD T"@DOS"
0500 K$=" "
   : KEYIN K$
   : RETURN
0510 REM % Input volume label
0520 PRINTUSING 680;M$;
0530 J$=ALL(20)
   : I=0
   : A$()=ALL(00)
0540 LINPUT J$
0550 PRINT
   : PRINT
   : IF STR(A$,1,2)="HD"THEN Y=30
   : IF STR(A$,1,3)="360"THEN Y=10
   : IF Y=0THEN Y=10
0560 IF LEN(J$)=0THEN 590
0570 IF LEN(J$)<>0THEN DO
   : STR(A$(1),1,11)=J$
   : STR(A$(1),12,1)=HEX(28)
   : DATA SAVE BMT#N,(Y,L)A$()
   : END DO
0580 I4$=ALL(20)
0590 RETURN
0600 REM % IMAGES!!
0610 % Insert source diskette in drive #
0620 % and strike ENTER when ready\
0630 % General Failure error reading drive #
0640 % Abort, Retry, Fail?
0650 % Format Failure
0660 % Format another (Y/N)
0670 % Format complete
0680 % Insert output diskette in drive #
0690 % Do you wish to make more copies (Y/N)?
8000 REM % GET DISK STATUS FOR SOURCE DRIVE
8010 A$=ALL(20)
8030 I=1
   : STR(G1$,1,1)=STR(P$,I,1)OR HEX(20)
   : IF I<>17THEN 8050
8040 STR(B$,2,1)=OR HEX(04)
   : ERRORSTOP "SOMETHING'S GROSSLY WRONG HERE!"
8050 STR(G1$,2,7)=ALL(00)
   : $GIOSTATUSREQUEST#4(0E140F0012E20600070070A0400288D070406A106816400087051
     A00C340,G1$)G1$;STR(E1$,,VAL(STR(G1$,5,1)))
   : IF STR(E1$,2,1)=HEX(00)THEN STR(E1$,18,1)=HEX(00)
8060 G2$=STR(G1$,8,1)AND HEX(10)
   : IF G2$=HEX(00)THEN 8070
   : GOTO 8080
8070 IF STR(G1$,8,1)<>HEX(00)THEN 8080
   : IF STR(E1$,1,1)=HEX(33)THEN 8080
8080 IF G2$=HEX(00)THEN A$=ALL(20)
   : IF VAL(STR(E1$,6,3),3)=4160THEN A$="HD"
   : IF VAL(STR(E1$,6,3),3)=1280THEN A$="DD"
   : IF A$="DD"THEN B=0
   : ELSE B=1213952
8090 RETURN
9000 REM % VERIFY IF A DOS DISKETTE
   : DATA LOAD BA T#N0,(C)D$()
   : ERRORE=ERR
9010 IF E=0THEN RETURN
   : IF E=98THEN 9040
9020 REM % VERIFY IF OUTPUT = SOURCE DISKETTE
   : DATA LOAD BA T#N0,(A-1)D$()
   : ERRORE=ERR
9030 IF E=0THEN RETURN
   : IF E=98THEN 9070
9040 PRINT
   : PRINT HEX(070E);" Warning !!! The diskette is not a 'DOS' Disk "
   : PRINT HEX(0E);" Disk may be a valid 2200 disk Do you wish to continue (Y/
     N)?";
9050 GOSUB 500
   : K$=K$OR HEX(20)
   : IF K$="y"OR K$="n"THEN RETURN
   : GOTO 9050
9060 RETURN
9070 PRINT
   : PRINT HEX(070E);"Source Disk and Output Disk not of same size"
   : RETURN CLEAR
   : GOTO 490