Overlays?
VB classic requires that each module be small,
and that there be no overlap between the modules.
It can sometimes be very difficult to convert
classic code with overlays to VB, because the
only clean way to convert is as one big program,
and then the big program is too large to compile.
I would certainly give it a shot, but I already
own a copy of VB6, (which is a discontinued product.)
But if it is big, I would choose to use
Powerbasic (already mentioned in this thread)
which I also own a copy of, and which has no
runtime deployment cost. I assume that there
are other BASICs which might be suitable, but
PB is the one we have used. PB allows us to
convert overlays into one very large program,
with less re-write.
(david)
Randy Reimers wrote:
> (Hope I'm posting this correctly, otherwise - sorry!, don't know what
else
> to do)
> I wrote a set of programs "many" years ago, running in a type of basic,
> called "Thoroughbred Basic", a type of business basic. I need to
re-write
> it, bring it kicking and screaming to run on Windows XP. This is for a
> video rental place, tracks movie and game rentals, customers, employee
> transactions, reservations, does re****ts,..... and on.
> I know some of Visual Basic - I now write VB scripts for work. Can
anyone
> help with suggestions, as to converting this to a new language? What
may be
> easiest for me? And, what type of database engine would be best? SQL,
> Access, flat files, I don't know enough.
> This does NOT run under Windows, Linux, or any "new" OS - but I can
ex****t
> all the files, and programs to DOS. They currently are running on 20-30
286
> or 386 computers - not a misprint - OLD! Not networked, not neccessary.
> The data files it uses are called "Direct" and "Sort". I have about 90
> programs, a few are overlays, most are stand-alone, 25-30 are just for
> re****ting purposes. It can stay character based - no need for fancy
screens
> or pix.
>
> Here is a sample:
> 0010 REM "RENTAL/MEMBER****P SYSTEM TOP HALF AND SUBMENU"
> 0020 REM "PROGRAM VID-AA"
> 0030 REM 06/07/99
>
>
> 0050 BEGIN
> 0060 PRECISION 2
> 0070 SETERR 09000
> 0080 DIM B$(80,"-"),B1$(80,"_"),B2$(80,"<"),S$(80," ");
> IF FID(0)="T0" THEN
> DIM B2$(80,CHR(205))
> 0090 DEF FNA$(X$)=X$(1,2)+"/"+X$(3,2)+"/"+X$(5,2)
> 0100 DEF FNC$(X$)=X$(3,2)+"/"+X$(5,2)+"/"+X$(1,2)
> 0110 DEF FND$(X$)="("+X$(1,3)+") "+X$(4,3)+"-"+X$(7,4)
> 0120 DEF FNE$(X$)=X$(1,2)+X$(4,2)+X$(7,2)
> 0130 DEF FNF$(X$)=X$(5,2)+X$(1,4)
> 0140 DEF FNZ$(X$)=X$(1,POS(" "=X$+" ")-1)
> 0150 OPEN (6) "CONTRO"
> 0160 READ (6,KEY="001") *,N1$,*,A0$,A1$,A2$
> 0170 READ (6,KEY="TODAY") Z9$,Z8$
> 0180 LET E1$="";
> READ (6,KEY="RENT"+FID(0),DOM=00200) E1$,T
> 0190 REMOVE (6,KEY="RENT"+FID(0)) ;
> IF T<>TIM THEN
> LET E1$=""
> 0200 IOLIST
> M0$(1,250),M(0),M(1),M(2),M(3),M(4),M(5),M(6),M(7),M(8),M(9),M
> (10),M(11),M(12),M(13),M(14),M(15),M(16)
>
> 0210 REM "OPEN FILES"
>
> 0220 OPEN (1) "VID01"
> 0230 OPEN (2) "VIDST"
> 0240 OPEN (3) "VIN01"
> 0250 OPEN (4) "PHONEY"
> 0260 OPEN (5) "VIV02"
> 0270 OPEN (8) "IDSRT"
> 0280 OPEN (9) "VIN02"
> 0290 OPEN (10) "VIN03"
> 0300 OPEN (11) "RSVST"
> 0310 OPEN (12) "VINST"
> 0320 OPEN (14) "VIN04"
>
> 0330 REM "PAINT SCREEN"
>
> 0340 LET N3$=FNZ$(N1$)+" - MEMBER****P SYSTEM"
> 0350 LET Y$=FNF$(FNE$(Z9$)),Y=NUM(Y$(3,2))-6
> 0360 IF Y<1 THEN
> LET
> Y$(1,2)=STR(NUM(Y$(1,2))-1:"00"),Y$(3,2)=STR(NUM(Y$(3,2))+6:"0
> 0")
> ELSE
> LET Y$(3,2)=STR(Y:"00")
> 0370 PRINT
> 'CS','SB',@[EMAIL PROTECTED]
(36-INT(LEN(N3$)/2),0),N3$,'BG',@[EMAIL PROTECTED]
(0,1),B2$,'EG','SF'
>
> 0380 PRINT 'SB',@[EMAIL PROTECTED]
(0,2),"NUMBER",@[EMAIL PROTECTED]
(15,2),"LAST
NAME",@[EMAIL PROTECTED]
(50,2),"INVOICE
> #",@[EMAIL PROTECTED]
(
> 0,3),"COMMENTS",@[EMAIL PROTECTED]
(65,3),"LAST
> TIME",@[EMAIL PROTECTED]
(56,4),"HARDWARE",@[EMAIL PROTECTED]
(0,4),"
> NAME",@[EMAIL PROTECTED]
(35,4),"DL#",@[EMAIL PROTECTED]
(42,5),"VCR
> OWNER?",@[EMAIL PROTECTED]
(55,5),"MAILING?",@[EMAIL PROTECTED]
(6
>
6,5),"TYPE",@[EMAIL PROTECTED]
(0,5),"ADDRESS",@[EMAIL PROTECTED]
(0,6),"ADDRESS",@[EMAIL PROTECTED]
(42,6),"JOINED",
> @[EMAIL PROTECTED]
(58,6),"LAST ACTIVITY",@[EMAIL PROTECTED]
(0,7),"ZIP",@[EMAIL PROTECTED]
(18,7),"CARRIER
> ROUTE",@[EMAIL PROTECTED]
(
> 42,7),"MTD",@[EMAIL PROTECTED]
(51,7),"YTD",@[EMAIL PROTECTED]
(61,7),"HOLD",@[EMAIL PROTECTED]
(0,8),"PHONE
> HM",@[EMAIL PROTECTED]
(24
>
,8),"WK",@[EMAIL PROTECTED]
(42,8),"#LT",@[EMAIL PROTECTED]
(50,8),"#FREE",@[EMAIL PROTECTED]
(60,8),"#MP",@[EMAIL PROTECTED]
(0,10),"T
> OT
> $$",@[EMAIL PROTECTED]
(16,10),"IG",@[EMAIL PROTECTED]
(25,10),"IM",@[EMAIL PROTECTED]
(34,10),"IU",@[EMAIL PROTECTED]
(43,10),"IV",
> @[EMAIL PROTECTED]
(52,10),"IX",@[EMAIL PROTECTED]
(62,10),"UNPAID
> FEE",'BG',@[EMAIL PROTECTED]
(0,9),B2$,@[EMAIL PROTECTED]
(0,11),B2$
> ,'EG','SF'
>
> 0390 REM "IOLISTS"
>
> 0400 IOLIST
> 'LD','LD','LD','LD','LD','LD','LD','LD','LD','LD','LD','LD','L
> D','LD'
>
> 0410 REM "EXTRA SETUP"
>
> 0420 LET M5$="##0",M6$="####.00-",M7$="###.00-"
> 0430 READ (6,KEY="DUEDATE") D1$;
> LET D4$=D1$,D2$=D1$
> 0440 READ (6,KEY="STORENUM",DOM=00441) R8
> 0450 DIM Z5$(36);
> READ (6,KEY="DZIP",DOM=00451) Z5$(1,9)
> 0460 READ (6,KEY="DACODE",DOM=00461) Z5$(10,3)
> 0470 READ (6,KEY="DAADDR",DOM=00471) Z5$(13,24)
> 0480 LET D5$=S$(1,6);
> READ (6,KEY="HANDOUT",DOM=00490) D5$,D6$
>
> 0490 REM "SOLICIT MEMBER NUMBER"
>
> 0500 IF E1$<>"" THEN
> LET E0$=E1$(1,3);
> IF E1$(1,3)<>S$(1,3) THEN
> GOTO 00520
>
> 0510 GOSUB 02430;
> IF E0$="" THEN
> GOTO 00010
>
> 0520 PRINT @[EMAIL PROTECTED]
(7,2),B1$(1,6);
> IF E1$<>"" THEN
> PRINT @[EMAIL PROTECTED]
(7,2),'SB',E1$(4,6),'SF'
> 0530 DIM M0$(250),M(16);
> LET M0$(222,1)=STR(R8:"0"),M0$(147,6)=FNE$(Z9$)
> 0540 LET G$="**",M0$(210,3)=E0$(1,3)
> 0550 PRINT @[EMAIL PROTECTED]
(0,23),"F1=I.D. NUMBER",@[EMAIL PROTECTED]
(0,22),"ENTER MEMBER #,
CR=LAST
> NAME,
> F2=PHONE SEARCH, F3=NEXT NEW CUSTOMER #, F4=END",;
> INPUT (0,ERR=00550) @[EMAIL PROTECTED]
(7,2),Q$,@[EMAIL PROTECTED]
(0,23),'CL',@[EMAIL PROTECTED]
(0,22),'CL',
> 0560 IF CTL=1 THEN
> GOTO 01240
> 0570 IF CTL=2 THEN
> GOTO 01360
>
> 0580 LET X=NUM(Q$,ERR=00590);
> IF LEN(Q$)=7 OR LEN(Q$)=10 THEN
> LET G$=Q$;
> GOTO 01370
> 0590 IF Q$="T" THEN
> READ (6,KEY="TEMPNUM",DOM=00600) P5;
> LET P5=P5+1,Q1$=STR(P5:"T00000");
> READ (1,KEY=Q1$,DOM=00690) ;
> WRITE (6,KEY="TEMPNUM") P5;
> GOTO 00590
> 0600 IF Q$="END" OR CTL=4 THEN
> GOTO 09110
> 0610 IF CTL=3 THEN
> READ (6,KEY="NXTCUS",DOM=00620) P5;
> LET P5=P5+1,Q$=STR(P5:"#####0");
> WRITE (6,KEY="NXTCUS") P5;
> READ (1,KEY=Q$,DOM=00680) ;
> GOTO 00610
> 0620 IF Q$="" AND E1$<>"" THEN
> LET Q$=E1$(4,6);
> GOTO 00710
> 0630 IF Q$="" THEN
> PRINT @[EMAIL PROTECTED]
(7,2),S$(1,6);
> GOTO 01070
>
> 0640 FOR I=1 TO LEN(Q$)
> 0650 IF POS(Q$(I,1)<"!")<>0 OR POS(Q$(I,1)>"z")<>0 THEN
> EXITTO 00540
>
> 0660 NEXT I
> 0670 IF LEN(Q$)>6 THEN
> GOTO 00550
>
> 0680 LET Q$=S$(1,6-LEN(Q$))+Q$
> 0690 IF Q$="T" THEN
> LET Q$=Q1$
> 0700 PRINT @[EMAIL PROTECTED]
(7,2),Q$
> 0710 LET M0$(1,6)=Q$
> 0720 READ (1,KEY=M0$(1,6),DOM=01490) IOL=00200
> 0730 GOSUB 00740;
> GOTO 00850
> 0740 IF M0$(238,1)=" " THEN
> LET X7$=S$(1,7)
> ELSE
> LET X7$="*NOF*";
> CLOSE (7) ;
> OPEN (7) "MEMTY";
> READ (7,KEY=M0$(238,1),DOM=00750) X7$;
> LET X7$=X7$(2)
> 0750 LET X7$=X7$+S$(1,10)
> 0760 IF M0$(153,1)=" " THEN
> LET X8$=S$(1,11)
> ELSE
> LET X8$="NOT ON FILE";
> CLOSE (7) ;
> OPEN (7) "VSYH";
> READ (7,KEY=M0$(153,1),DOM=00770) X8$;
> LET X8$=X8$(2)
> 0770 LET X5$=S$(1,14);
> IF M0$(112,10)<>S$(1,10) THEN
> LET X5$=FND$(M0$(112,10))
> 0780 LET X6$=S$(1,14);
> IF M0$(122,10)<>S$(1,10) THEN
> LET X6$=FND$(M0$(122,10))
> 0790 IF M0$(215,6)=S$(1,6) THEN
> LET X3$="NONE"
> ELSE
> LET X3$=FNA$(M0$(215,6))
>
>


|