Listing of file='@DOSFORM' on disk='vmedia/turbo-1.30.01.wvd.zip'
# Sector 158, program filename = '@DOSFORM'
0010 REM %^ @DOSFORM WRITTEN BY KIRIT BAXI E.A.M.E R&D
0020 REM % Version 1.0 20 JUN 1991
0030 REM ************************************************************
0040 REM * *
0050 REM * DOS FORMAT 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
: P$=HEX(10)
: REM VARIABLES FOR GETTING DISK STATUS
0110 DIM A$(16)32,C$8,K$1,G$15,H$8,J$11
: H$=I4$
0120 REM % set cursor flash
: PRINT HEX(02050F)
0130 REM % Address setup by "DOS"
: B$=SELECT #N
: SELECT #4<B$>
: IF N=2THEN L$="A"
: IF N=3THEN L$="B"
0140 REM % GET DISKSTATUS
: GOSUB 8000
: IF STR(A$,1,2)="HD"THEN C$="@DOSfmt1"
: IF STR(A$,1,2)="DD"THEN C$="@DOSfmt2"
0150 PRINTUSING 460;A$;L$
0160 PRINTUSING 470;
0170 GOSUB 350
: IF POS(HEX(7E7FF0)=K$)<>0THEN 340
: IF K$<>HEX(0D)THEN 170
0180 REM % Check if drive has a disk
: DATA LOAD BMT#N,(0,L)G2$
: ERRORE=ERR
: IF E=93THEN 190
: ELSE GOTO 280
0190 REM % Format Disk
0200 PRINT HEX(0D0A0E);" Format in Progress ..."
0210 $GIO#4(0600070070A0400288D0704001306A10680240018B67,G$)
0220 REM % ERRORS!!
0230 IF STR(G$,6,3)=HEX(000000)THEN 320
0240 IF STR(G$,6,3)=HEX(000204)THEN 280
: REM RETRY COMMAND
0250 IF STR(G$,6,3)=HEX(010000)THEN 280
0260 IF STR(G$,6,3)<>HEX(000000)THEN 300
0270 REM % OPTIONS IF ERROR!
0280 PRINT
: PRINT
: PRINTUSING 480
: PRINTUSING 490;
0290 GOSUB 350
: K$=K$OR HEX(20)
: PRINT K$;
: IF K$="a"THEN 340
: IF K$="r"THEN 200
: IF K$="f"THEN GOTO 340
: GOSUB 350
: IF POS(HEX(7E7FF0)=K$)<>0THEN 340
0300 PRINT
: PRINT
: PRINTUSING 500
: PRINTUSING 510
0310 GOSUB 350
: K$=K$OR HEX(20)
: IF K$="y"OR K$="n"THEN PRINT K$;
: IF K$="y"THEN PRINT
: IF K$="y"THEN 150
: IF K$="n"THEN 340
: IF POS(HEX(7E7FF0)=K$)<>0THEN 340
: GOTO 310
0320 GOSUB 560
: PRINT
: PRINTUSING 520
: PRINT
: REM % IF /V THEN
: IF STR(H$,1,2)="/v"THEN GOSUB 360
: PRINTUSING 540;B
: PRINTUSING 550;B
: PRINT
: PRINTUSING 510;
0330 GOSUB 350
: K$=K$OR HEX(20)
: IF K$="y"OR K$="n"THEN PRINT K$;
: IF K$="y"THEN PRINT
: IF K$="y"THEN 150
: IF K$="n"THEN 340
: IF POS(HEX(7E7FF0)=K$)<>0THEN 340
: GOTO 330
0340 REM % RET > COMMAND PROC
: PRINT
: I4$="R"
: LOAD T"@DOS"
0350 K$=" "
: KEYIN K$
: RETURN
0360 REM % Input volume label
0370 PRINTUSING 530;
0380 J$=ALL(20)
: I=0
: A$()=ALL(00)
0390 LINPUT J$
0400 PRINT
: PRINT
: IF STR(A$,1,2)="HD"THEN Y=30
: IF STR(A$,1,3)="360"THEN Y=10
0410 IF LEN(J$)=0THEN 440
0420 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
0430 I4$=ALL(20)
0440 RETURN
0450 REM % IMAGES!!
0460 % Insert new ## diskette for drive #:
0470 % and strike ENTER when ready\
0480 % General Read error or bad Write
0490 % Abort, Retry, Fail?
0500 % Format Failure
0510 % Format another (Y/N)
0520 % Format complete
0530 % Volume label (11 characters, ENTER for none)?
0540 % ####### bytes total disk space
0550 % ####### bytes available on disk
0560 REM % WRITE BOOTTRACK
0570 LIMITS T#0,C$,A1,A2,A3,A4
0580 DATA LOAD BMT(A1,L)A$()
0590 DATA SAVE BMT#N,(0,L)A$()
0600 RETURN
8000 REM % GET DISK STATUS
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=362496
: ELSE B=1213952
: RETURN