image of READY prompt

Wang2200.org

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

# Sector 359, program filename = '@DOSDIRP'
0010 REM %^  @DOSDIRP UTILITY BY KIRIT BAXI EAME R&D
0020 REM % Ver 1.0 20 JUN 1991
0030 REM ***********************************************
0040 REM *                                             *
0050 REM *                 DIR /P Program              *
0060 REM *                                             *
0070 REM ***********************************************
0100 DIM A$(16)32,B$4,C$16,D$3,E$2,F$2,G$2,H$8,I0$3,L$2,M$4,N$1,O$1,P$1,Q$1
   : PRINT HEX(06);
0110 REM % FIND THE FLOPPY ADDRESS
0120 REM address setup by dos already
   : D$=SELECT #N
0130 REM % FIND DISK TYPE AND SET OFFSET SECTOR
0140 DATA LOAD BMT#N,(1440,L)A$()
   : ERRORE=ERR
   : IF E=98THEN Y=10
   : V=13
   : GOTO 160
0150 DATA LOAD BMT#N,(4800,L)A$()
   : ERRORE=ERR
   : IF E=98THEN Y=30
   : V=27
   : GOTO 160
0160 A1,B,C,D,D2=0
   : IF Y=0THEN DO
   : Y=10
   : V=13
   : END DO
0170 REM % CHECK IF VOLUME HAS A LABEL
0180 DATA LOAD BMT#N,(Y-1,L)A$()
   : ERRORE=ERR
   : IF E=98THEN DO
   : PRINT HEX(070E);"Please insert a diskette in drive"
   : END DO
   : IF E=98THEN 680
0190 IF STR(A$(9),12,1)=HEX(28)THEN C$="is "&STR(A$(9),1,11)
   : ELSE C$="has no label"
0200 REM % DISPLAY VOLUME DATA
0210 PRINT HEX(06)
0220 PRINTUSING 450;D$;C$
0230 PRINTUSING 460;D$
0240 PRINT HEX(0A)
0250 REM % GET THE DIRECTORY INFORMATION AND CALCUTATE AND DISPLAY THE DATA
0260 FOR Z=YTO Y+VSTEP 2
0270 DATA LOAD BMT#N,(Z,L)A$()
0280 FOR X=1TO 16
   : IF STR(A$(X),1,1)=HEX(00)OR STR(A$(X),1,1)=HEX(E5)OR STR(A$(X),12,1)=HEX(
     28)OR STR(A$(X),12,1)=HEX(03)OR STR(A$(X),12,1)>HEX(7F)THEN GOTO 390
   : IF STR(A$(X),12,1)=HEX(26)OR STR(A$(X),12,1)=HEX(02)OR STR(A$(X),12,1)=HE
     X(01)THEN 290
   : ELSE GOTO 300
0290 REM % CALCULATE BYTES USED HIDDEN FILES  B$=HEX(00 00) STR(B$,3,1)=STR(A$
     (X),30,1) STR(B$,4,1)=STR(A$(X),29,1) STR(B$,1,1)=STR(A$(X),32,1) STR(B$,
     2,1)=STR(A$(X),31,1) A1=VAL(B$,4) C=C+A1
   : GOTO 390
0300 IF STR(A$(X),12,1)=HEX(10)THEN DO
   : GOSUB 610
   : GOSUB 500
   : B$=HEX(0000)
   : STR(B$,3,1)=STR(A$(X),30,1)
   : STR(B$,4,1)=STR(A$(X),29,1)
   : STR(B$,1,1)=STR(A$(X),32,1)
   : STR(B$,2,1)=STR(A$(X),31,1)
   : A1=VAL(B$,4)
   : GOTO 380
   : END DO
0310 REM % CALCULATE BYTES USED
   : B$=HEX(0000)
   : STR(B$,3,1)=STR(A$(X),30,1)
   : STR(B$,4,1)=STR(A$(X),29,1)
   : STR(B$,1,1)=STR(A$(X),32,1)
   : STR(B$,2,1)=STR(A$(X),31,1)
   : A1=VAL(B$,4)
0320 REM % GOSUB'5000 TO CALCULATE DATE
   : GOSUB 610
0330 REM % GOSUB 4000 TO CALCULATE TIME
   : GOSUB 500
0340 REM % DISPLAY THE INFORMATION
0350 REM IF I5$="2"THEN DOIFH>12THENH=H+(24-H)ENDDO
   : $TRAN(STR(A$(X),1,11),T$())
   : PRINTUSING 470;STR(A$(X),1,8);STR(A$(X),9,3);A1;H$;H;I0$
   : B=B+1
   : C=C+A1
   : D2=D2+1
0360 REM % CHECK LINE COUNT
   : IF D2=23THEN DO
   : PRINT "Strike a key when Ready . . .";
   : KEYIN A$
   : IF D2>=23THEN D2=0
   : PRINT HEX(0A)
   : IF POS(HEX(7E7FF0)=A$)<>0THEN 680
   : END DO
0370 GOTO 390
0380 REM IFI5$="2"THENDOIFH>12THENH=H+(24-H)ENDDO
   : $TRAN(STR(A$(),1,11),T$())
   : PRINTUSING 480;STR(A$(X),1,8);H$;H;I0$
   : B=B+1
0390 NEXT X
0400 NEXT Z
0410 IF Y=10THEN W=368640
   : IF Y=30THEN W=1213952
   : D=(W-(14*512)-C)
0420 PRINTUSING 440;B;C
0430 REM % DISPLAY LINE IMAGES
0440 %         ### File(s) ######### bytes used in Root Directory
0450 %    Volume in drive '###' ################
0460 %    Directory of '###':\
0470 %   ######## ###   #######  ########  ##:### ########
0480 %   ########     <DIR>      ########  ##:### ########
0490 GOTO 680
0500 REM % CALCULATE TIME ROUTINE
0510 STR(L$,1,1)=STR(A$(X),24,1)
   : STR(L$,2,1)=STR(A$(X),23,1)
0520 REM CALC HRS
   : N$=STR(L$,1,1)
   : ROTATE(N$,5)
   : O$=HEX(1F)BOOL8N$
   : H=0
   : H=VAL(O$)
0530 REM CALC MINS
   : O$=ALL(20)
   : HEXUNPACKL$TO M$
   : HEXPACKP$FROMSTR(M$,2,2)
   : IF P$>=HEX(80)THEN 560
   : O$=P$AND HEX(01)
   : IF O$>HEX(00)THEN O$=P$SUBHEX(01)
   : IF O$=HEX(00)THEN 540
   : ROTATE(O$,-1)
   : IF O$>HEX(80)THEN O$=O$XOR HEX(80)
   : M=VAL(O$)
   : GOTO 570
0540 O$=P$
   : ROTATE(O$,-1)
   : M=VAL(O$)
   : GOTO 570
0550 M=0
   : GOTO 570
0560 Q$=HEX(80)BOOL6P$
   : ROTATE(Q$,-1)
   : Q$=Q$AND HEX(7F)
   : M=0
   : M=VAL(Q$)
0570 IF M=128THEN M=0
0580 CONVERT MTO STR(I0$,1,2),(##)
   : IF H>=12THEN STR(I0$,3,1)="p"
   : IF H<12THEN STR(I0$,3,1)="a"
0590 IF I5$="2"THEN 600
   : IF H>12THEN H=H-12
   : IF H=0THEN H=12
0600 RETURN
0610 REM % CALCULATE DATE
0620 STR(L$,1,1)=STR(A$(X),26,1)
   : STR(L$,2,1)=STR(A$(X),25,1)
0630 REM CALC YRS
   : O$=STR(L$,1,1)
   : P$=O$AND HEX(FE)
   : ROTATE(P$,-1)
   : Y1=VAL(P$)
0640 REM CALC MONTHS
   : O$=ALL(20)
   : HEXUNPACKL$TO M$
   : HEXPACKO$FROMSTR(M$,2,2)
   : P$=O$XOR HEX(E1)
   : ROTATE(P$,-1)
   : P$=P$AND HEX(0F)
   : M=VAL(P$)
0650 REM CALC DAYS
   : O$=ALL(20)
   : HEXUNPACKL$TO M$
   : HEXPACKO$FROMSTR(M$,3,2)
   : P$=O$AND HEX(1F)
   : D1=VAL(P$)
0660 CONVERT MTO STR(H$,1,2),(##)
   : STR(H$,3,1)="-"
   : CONVERT D1TO STR(H$,4,2),(##)
   : STR(H$,6,1)="-"
   : Y1=Y1+80
   : IF Y1>99THEN Y1=Y1-100
   : CONVERT Y1TO STR(H$,7,2),(##)
0670 RETURN
0680 REM % RETURN TO  COMMAND PROC
   : PRINT
   : I4$="R"
   : LOAD T"@DOS"