Converting from an ancient BASIC to new database

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Randy Reimers

    Converting from an ancient BASIC to new database

    (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 "Thoroughbr ed 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 reports,..... 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 export
    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
    reporting purposes. It can stay character based - no need for fancy screens
    or pix.

    Here is a sample:
    0010 REM "RENTAL/MEMBERSHIP 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,P OS(" "=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"+F ID(0),DOM=00200 ) E1$,T
    0190 REMOVE (6,KEY="RENT"+F ID(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$)+" - MEMBERSHIP 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',@(36-INT(LEN(N3$)/2),0),N3$,'BG', @(0,1),B2$,'EG' ,'SF'

    0380 PRINT 'SB',@(0,2),"NU MBER",@(15,2)," LAST NAME",@(50,2)," INVOICE
    #",@(
    0,3),"COMMENTS" ,@(65,3),"LAST
    TIME",@(56,4)," HARDWARE",@(0,4 ),"
    NAME",@(35,4)," DL#",@(42,5),"V CR
    OWNER?",@(55,5) ,"MAILING?", @(6
    6,5),"TYPE",@(0 ,5),"ADDRESS",@ (0,6),"ADDRESS" ,@(42,6),"JOINE D",
    @(58,6),"LAST ACTIVITY",@(0,7 ),"ZIP",@(18,7) ,"CARRIER
    ROUTE",@(
    42,7),"MTD",@(5 1,7),"YTD",@(61 ,7),"HOLD",@(0, 8),"PHONE
    HM",@(24
    ,8),"WK",@(42,8 ),"#LT",@(50,8) ,"#FREE",@(60,8 ),"#MP",@(0,10) ,"T
    OT
    $$",@(16,10),"I G",@(25,10),"IM ",@(34,10),"IU" ,@(43,10),"IV",
    @(52,10),"IX",@ (62,10),"UNPAID
    FEE",'BG',@(0,9 ),B2$,@(0,11),B 2$
    ,'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="STORENU M",DOM=00441 ) R8
    0450 DIM Z5$(36);
    READ (6,KEY="DZIP",D OM=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 @(7,2),B1$(1,6) ;
    IF E1$<>"" THEN
    PRINT @(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 @(0,23),"F1=I.D . NUMBER",@(0,22) ,"ENTER MEMBER #, CR=LAST
    NAME,
    F2=PHONE SEARCH, F3=NEXT NEW CUSTOMER #, F4=END",;
    INPUT (0,ERR=00550) @(7,2),Q$,@(0,2 3),'CL',@(0,22) ,'CL',
    0560 IF CTL=1 THEN
    GOTO 01240
    0570 IF CTL=2 THEN
    GOTO 01360

    0580 LET X=NUM(Q$,ERR=00 590);
    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=0 0680) ;
    GOTO 00610
    0620 IF Q$="" AND E1$<>"" THEN
    LET Q$=E1$(4,6);
    GOTO 00710
    0630 IF Q$="" THEN
    PRINT @(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 @(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$(11 2,10))
    0780 LET X6$=S$(1,14);
    IF M0$(122,10)<>S$ (1,10) THEN
    LET X6$=FND$(M0$(12 2,10))
    0790 IF M0$(215,6)=S$(1 ,6) THEN
    LET X3$="NONE"
    ELSE
    LET X3$=FNA$(M0$(21 5,6))


  • ArarghMail706NOSPAM@NOT.AT.Arargh.com

    #2
    Re: Converting from an ancient BASIC to new database

    On Thu, 7 Jun 2007 16:28:24 -0500, "Randy Reimers"
    <rreimers.nul@h otmail.comwrote :
    (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 "Thoroughbr ed Basic", a type of business basic. I need to re-write
    I think that "Thoroughbr ed Basic" is still around, and they probably
    have a windows version. Google found:

    --
    ArarghMail706 at [drop the 'http://www.' from ->] http://www.arargh.com
    BCET Basic Compiler Page: http://www.arargh.com/basic/index.html

    To reply by email, remove the extra stuff from the reply address.

    Comment

    • Michael Cole

      #3
      Re: Converting from an ancient BASIC to new database

      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 "Thoroughbr ed 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 reports,..... 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
      export 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.
      For what its worth, my approach would be: -

      Database first - MS Access. As they are stand alone, SQL Server or others
      like that (Sybase, Oracle) are overkill. The other options include stuff
      like dBase, but Access is reasonably common and easy to use, which will make
      it easier for administration - you should be able to get some people at
      remote sites who can use it if needed.

      Front end - VB6 with DAO access. Again - for ease of use and upgrading of
      existing code. Note that this does not nessesarily mean that this is the
      best option for all, but you have existing basic code and a lot should
      upgrade. In terms of your
      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 reporting purposes. It can stay character based - no need for
      fancy screens or pix.
      If you use VB, then you should make it screen based rather that character
      based, it is pretty easy and much better for maintenance purposes.

      --
      Regards,

      Michael Cole


      Comment

      • rowe_newsgroups

        #4
        Re: Converting from an ancient BASIC to new database

        On Jun 11, 8:16 pm, "Michael Cole" <n...@microsoft .com.auwrote:
        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 "Thoroughbr ed 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 reports,..... 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
        export 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.
        >
        For what its worth, my approach would be: -
        >
        Database first - MS Access. As they are stand alone, SQL Server or others
        like that (Sybase, Oracle) are overkill. The other options include stuff
        like dBase, but Access is reasonably common and easy to use, which will make
        it easier for administration - you should be able to get some people at
        remote sites who can use it if needed.
        >
        Front end - VB6 with DAO access. Again - for ease of use and upgrading of
        existing code. Note that this does not nessesarily mean that this is the
        best option for all, but you have existing basic code and a lot should
        upgrade. In terms of your
        >
        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 reporting purposes. It can stay character based - no need for
        fancy screens or pix.
        >
        If you use VB, then you should make it screen based rather that character
        based, it is pretty easy and much better for maintenance purposes.
        >
        --
        Regards,
        >
        Michael Cole
        Database first - MS Access. As they are stand alone, SQL Server or others
        like that (Sybase, Oracle) are overkill. The other options include stuff
        like dBase, but Access is reasonably common and easy to use, which will make
        it easier for administration - you should be able to get some people at
        remote sites who can use it if needed.
        I might be tempted to use Sql Server 2005 Express if the user's don't
        already have Access to save them on costs (20-30 computes times $300
        for a license of Office - ouch!). I believe you could use the free
        Express edition in that environment, but you should definitely check
        it out first.
        Front end - VB6 with DAO access. Again - for ease of use and upgrading of
        existing code
        Again I agree - VB6 would leverage your current skills much better
        than VB.Net (no I'm not trying to start a cross-language fight here).
        However if you go the Sql Server route you would need to use OLEDB or
        OBDC for connecting to Sql Server. Though if you don't have VB6 you
        could upgrade to .Net and take advantage of the one of the free ide's
        (VB Express, SharpDevolope, etc) and save yourself some cash.

        Thanks,

        Seth Rowe

        Comment

        • Norman Yuan

          #5
          Re: Converting from an ancient BASIC to new database


          "rowe_newsgroup s" <rowe_email@yah oo.comwrote in message
          news:1181646120 .646954.54870@q 19g2000prn.goog legroups.com...
          On Jun 11, 8:16 pm, "Michael Cole" <n...@microsoft .com.auwrote:
          >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 "Thoroughbr ed 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 reports,..... 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
          export 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.
          >>
          >For what its worth, my approach would be: -
          >>
          >Database first - MS Access. As they are stand alone, SQL Server or
          >others
          >like that (Sybase, Oracle) are overkill. The other options include stuff
          >like dBase, but Access is reasonably common and easy to use, which will
          >make
          >it easier for administration - you should be able to get some people at
          >remote sites who can use it if needed.
          >>
          >Front end - VB6 with DAO access. Again - for ease of use and upgrading
          >of
          >existing code. Note that this does not nessesarily mean that this is the
          >best option for all, but you have existing basic code and a lot should
          >upgrade. In terms of your
          >>
          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 reporting purposes. It can stay character based - no need for
          fancy screens or pix.
          >>
          >If you use VB, then you should make it screen based rather that character
          >based, it is pretty easy and much better for maintenance purposes.
          >>
          >--
          >Regards,
          >>
          >Michael Cole
          >
          >
          >Database first - MS Access. As they are stand alone, SQL Server or
          >others
          >like that (Sybase, Oracle) are overkill. The other options include stuff
          >like dBase, but Access is reasonably common and easy to use, which will
          >make
          >it easier for administration - you should be able to get some people at
          >remote sites who can use it if needed.
          >
          I might be tempted to use Sql Server 2005 Express if the user's don't
          already have Access to save them on costs (20-30 computes times $300
          for a license of Office - ouch!). I believe you could use the free
          Express edition in that environment, but you should definitely check
          it out first.

          If using VB6 FE or .NET FE, you do not need to buy MS Access for each
          computer, no MS Access installation is required at all in this case. You may
          need buy one for develping purpose, though. One the other hand, a small app
          in the scope described in OP, MS Access could be the right tool, in spite of
          the cost of $300 on each user computer, it save a huge amount of development
          time, if you really know how to do MS Access.

          >
          >Front end - VB6 with DAO access. Again - for ease of use and upgrading
          >of
          >existing code
          >
          Again I agree - VB6 would leverage your current skills much better
          than VB.Net (no I'm not trying to start a cross-language fight here).
          However if you go the Sql Server route you would need to use OLEDB or
          OBDC for connecting to Sql Server. Though if you don't have VB6 you
          could upgrade to .Net and take advantage of the one of the free ide's
          (VB Express, SharpDevolope, etc) and save yourself some cash.
          >
          Thanks,
          >
          Seth Rowe
          >

          Comment

          • meisen@compuserve.com

            #6
            Re: Converting from an ancient BASIC to new database

            Randy,

            You do not have to convert to VB or any other Microsoft derivative to
            achieve the results you want, and you can do so much less expensively,
            both in terms of time and money, than walking down the Microsoft path.

            The code you posted can be interpreted correctly by current versions
            of Thoroughbred Basic (www.thoroughbredsoftware.com), VPRO/5
            (www.basis.com), and ProvideX (www.pvx.com), with little or no change
            to the listings.

            All three have reasonably inexpensive single-user versions that run
            under Windows XP. In addition, all three offer resources within
            their basic interpreters that can adapt your code to the GUI
            environment.

            Best regards,

            Michael Eisen


            Comment

            • James

              #7
              Re: Converting from an ancient BASIC to new database

              meisen@compuser ve.com wrote:
              Randy,
              >
              You do not have to convert to VB or any other Microsoft derivative to
              achieve the results you want, and you can do so much less expensively,
              both in terms of time and money, than walking down the Microsoft path.
              >
              The code you posted can be interpreted correctly by current versions
              of Thoroughbred Basic (www.thoroughbredsoftware.com), VPRO/5
              (www.basis.com), and ProvideX (www.pvx.com), with little or no change
              to the listings.
              >
              All three have reasonably inexpensive single-user versions that run
              under Windows XP. In addition, all three offer resources within
              their basic interpreters that can adapt your code to the GUI
              environment.
              >
              Best regards,
              >
              Michael Eisen
              >
              >
              Good for you. I would also add that if the system grows large enough to
              be a management problem MYSQL is an excellent alternative to M$ SQL,
              SybaseSQL, etc. For an Access competitor the database in Open Office is
              a front runner. All are members of the GPL and all are cross platform
              OS transparent running on versions of Linux, Unix, Solaris, M$Winx, and
              some on MacOS10.

              James

              Comment

              • Randy Reimers

                #8
                Re: Converting from an ancient BASIC to new database

                Thank you all for the information. Problem is, cost - each one wants about
                $200 PER computer for the runtime license (needed per computer). This is a
                small Mom&Pop operation that I am trying to help, the cost becomes
                prohibitive, when they also have to purchase the newer/new computers. I'm
                still no closer to a "reasonable " answer for them. So it goes - but
                thanks - at least I know more now.

                Randy


                "James" <JT@9b01.comwro te in message news:4674D02E.5 040500@9b01.com ...
                meisen@compuser ve.com wrote:
                >Randy,
                >>
                >You do not have to convert to VB or any other Microsoft derivative to
                >achieve the results you want, and you can do so much less expensively,
                >both in terms of time and money, than walking down the Microsoft path.
                >>
                >The code you posted can be interpreted correctly by current versions
                >of Thoroughbred Basic (www.thoroughbredsoftware.com), VPRO/5
                >(www.basis.com), and ProvideX (www.pvx.com), with little or no change
                >to the listings.
                >>
                >All three have reasonably inexpensive single-user versions that run
                >under Windows XP. In addition, all three offer resources within
                >their basic interpreters that can adapt your code to the GUI
                >environment.
                >>
                >Best regards,
                >>
                >Michael Eisen
                >>
                >>
                Good for you. I would also add that if the system grows large enough to
                be a management problem MYSQL is an excellent alternative to M$ SQL,
                SybaseSQL, etc. For an Access competitor the database in Open Office is a
                front runner. All are members of the GPL and all are cross platform OS
                transparent running on versions of Linux, Unix, Solaris, M$Winx, and some
                on MacOS10.
                >
                James

                Comment

                • Gerard Bok

                  #9
                  Re: Converting from an ancient BASIC to new database

                  On Thu, 7 Jun 2007 16:28:24 -0500, "Randy Reimers"
                  <rreimers.nul@h otmail.comwrote :
                  I wrote a set of programs "many" years ago, running in a type of basic,
                  >called "Thoroughbr ed Basic", a type of business basic. I need to re-write
                  >it, bring it kicking and screaming to run on Windows XP.
                  My 2 cents:
                  - You have an application, fully running in Basic
                  - You have knowledge about the internal operations (as you once
                  wrote the program)
                  - You / your client wants minimal costs.

                  So:
                  Convert the program to some current Basic, e.g. PowerBasic.
                  If the database runs just fine on an antique computer, don't
                  waste resources writing a new database layer or adapting the
                  program to a 'market standard' database (like MySQL or Access).

                  All you need is a single licence to e.g.
                  www.powerbasic.com/products/pbcc/ at US$ 169

                  --
                  Kind regards,
                  Gerard Bok

                  Comment

                  • James

                    #10
                    Re: Converting from an ancient BASIC to new database

                    Randy Reimers wrote:
                    Thank you all for the information. Problem is, cost - each one wants about
                    $200 PER computer for the runtime license (needed per computer). This is a
                    small Mom&Pop operation that I am trying to help, the cost becomes
                    prohibitive, when they also have to purchase the newer/new computers. I'm
                    still no closer to a "reasonable " answer for them. So it goes - but
                    thanks - at least I know more now.
                    >
                    Randy
                    >
                    >
                    "James" <JT@9b01.comwro te in message news:4674D02E.5 040500@9b01.com ...
                    >meisen@compuser ve.com wrote:
                    >>Randy,
                    >>>
                    >>You do not have to convert to VB or any other Microsoft derivative to
                    >>achieve the results you want, and you can do so much less expensively,
                    >>both in terms of time and money, than walking down the Microsoft path.
                    >>>
                    >>The code you posted can be interpreted correctly by current versions
                    >>of Thoroughbred Basic (www.thoroughbredsoftware.com), VPRO/5
                    >>(www.basis.com), and ProvideX (www.pvx.com), with little or no change
                    >>to the listings.
                    >>>
                    >>All three have reasonably inexpensive single-user versions that run
                    >>under Windows XP. In addition, all three offer resources within
                    >>their basic interpreters that can adapt your code to the GUI
                    >>environment .
                    >>>
                    >>Best regards,
                    >>>
                    >>Michael Eisen
                    >>>
                    >>>
                    >Good for you. I would also add that if the system grows large enough to
                    >be a management problem MYSQL is an excellent alternative to M$ SQL,
                    >SybaseSQL, etc. For an Access competitor the database in Open Office is a
                    >front runner. All are members of the GPL and all are cross platform OS
                    >transparent running on versions of Linux, Unix, Solaris, M$Winx, and some
                    >on MacOS10.
                    >>
                    >James
                    >
                    >
                    A later post suggests using a standard basic to run your system & I
                    agree, to a point. If your program used any of the machine specific
                    calls, embedded assembly language, etc. it may not be as easy as it
                    first appears. I had a "basic" language database in the early 80's that
                    handled over 20,000 customers & over 20,000 items with bar code for UPC
                    & code 39, etc. Time to the door was under 30 seconds for rental,
                    purchase or a mix. To "convert" that code to one of the currently
                    available basic languages would be no small task. I have been looking
                    into it. On the other hand the database with open office is free and is
                    compatible with access & Mysql, the GPL version, is also free. All
                    depend on the complexity of your code, how much time is available, and
                    what the future needs of the client may be. Open Office is available at
                    www.openoffice.org & Mysql, the GPL version, is available at
                    http://dev.mysql.com/downloads/maxdb/7.5.00.html. In its day my code
                    outperformed the code written for one of the chains on their
                    mini-computer but was, of course, not multi-user though with a few
                    tweaks could have been. Look at your options. Most were not available
                    just a few years ago.

                    James

                    Comment

                    • ArarghMail706NOSPAM@NOT.AT.Arargh.com

                      #11
                      Re: Converting from an ancient BASIC to new database

                      On Fri, 22 Jun 2007 13:34:49 -0700, James <JT@9b01.comwro te:

                      <snip>
                      >A later post suggests using a standard basic to run your system & I
                      >agree, to a point. If your program used any of the machine specific
                      >calls, embedded assembly language, etc. it may not be as easy as it
                      >first appears. I had a "basic" language database in the early 80's that
                      >handled over 20,000 customers & over 20,000 items with bar code for UPC
                      Just out of curiosity, which one?

                      <snip>
                      --
                      ArarghMail706 at [drop the 'http://www.' from ->] http://www.arargh.com
                      BCET Basic Compiler Page: http://www.arargh.com/basic/index.html

                      To reply by email, remove the extra stuff from the reply address.

                      Comment

                      • James

                        #12
                        Re: Converting from an ancient BASIC to new database

                        ArarghMail706NO SPAM@NOT.AT.Ara rgh.com wrote:
                        On Fri, 22 Jun 2007 13:34:49 -0700, James <JT@9b01.comwro te:
                        >
                        <snip>
                        >A later post suggests using a standard basic to run your system & I
                        >agree, to a point. If your program used any of the machine specific
                        >calls, embedded assembly language, etc. it may not be as easy as it
                        >first appears. I had a "basic" language database in the early 80's that
                        >handled over 20,000 customers & over 20,000 items with bar code for UPC
                        >
                        Just out of curiosity, which one?
                        >
                        <snip>
                        At that time it was setup to run on the Trs80 Mdl III/IV using M$Basic,
                        & some assembly code for the bar code reader.

                        James

                        Comment

                        • ArarghMail706NOSPAM@NOT.AT.Arargh.com

                          #13
                          Re: Converting from an ancient BASIC to new database

                          On Sat, 23 Jun 2007 23:28:06 -0700, James <JT@9b01.comwro te:
                          >ArarghMail706N OSPAM@NOT.AT.Ar argh.com wrote:
                          >On Fri, 22 Jun 2007 13:34:49 -0700, James <JT@9b01.comwro te:
                          >>
                          ><snip>
                          >>A later post suggests using a standard basic to run your system & I
                          >>agree, to a point. If your program used any of the machine specific
                          >>calls, embedded assembly language, etc. it may not be as easy as it
                          >>first appears. I had a "basic" language database in the early 80's that
                          >>handled over 20,000 customers & over 20,000 items with bar code for UPC
                          >>
                          >Just out of curiosity, which one?
                          >>
                          ><snip>
                          >At that time it was setup to run on the Trs80 Mdl III/IV using M$Basic,
                          >& some assembly code for the bar code reader.
                          >
                          Ok, thanks.
                          --
                          ArarghMail706 at [drop the 'http://www.' from ->] http://www.arargh.com
                          BCET Basic Compiler Page: http://www.arargh.com/basic/index.html

                          To reply by email, remove the extra stuff from the reply address.

                          Comment

                          • Randy Reimers

                            #14
                            Re: Converting from an ancient BASIC to new database

                            Thanks, Bill.
                            I am thinking of upgrading my skills, and SQL, VB6 seems to be the route I
                            will probably need to go. Guess I am leaning toward either VB Express and
                            SQL, or VB .Net. I don't care about "overkill" - who knows what may be
                            needed next? I am looking for a reasonable "cost" to the old company, as
                            they would still need to purchase all new computers, or GOOD used XP
                            computers, wiped and re-loaded.
                            My problem - my poor brain doesn't seem to be able to "get it", like I
                            used to. Any good pointers to VB Express/VB.NET and use with SQL database?
                            The programmers here access several types of databases with C#.NET, or
                            whatever it is called - not VB.NET. I have lots of simple code to look at -
                            not much that truly works with databases.
                            How would I go about writing a code converter?

                            Thanks, all, for what you have provided!

                            Randy Reimers



                            "William (Bill) Vaughn" <billva@NoSpamA tAll_betav.comw rote in message
                            news:%23APEV2Bv HHA.1212@TK2MSF TNGP05.phx.gbl. ..
                            Randy,
                            Been there. I've been working with BASIC languages since the paper-tape
                            days (before the audio cassette Kansas-city standard days). Before you go
                            launching of on a conversion project, it might be wise to ask a few
                            questions.
                            Do you plan to upgrade your skills at the same time or simply get your
                            applications to work on a new OS? If this is the case, you should be
                            investigating technology that is not already obsolete (perhaps not as aged
                            as Thoroughbred Basic). For example the JET database engine (while still
                            in wide use) is really obsolete. The DAO interface used to access it has
                            not been fixed/tuned/repaired for many years. While some would say the SQL
                            Server Express is overkill, there are some advantages to using it
                            (especially when you're thinking about learning new skills). And, I would
                            agree. SQL Express is overkill for some applications, but SQL Server
                            Compact is not. This engine is not new and has been recently re-licensed
                            and re-engineered (somewhat) to work on a Windows platform. It's light,
                            fast and more secure than JET without the problems of clutter-removal
                            typical of JET.
                            As to the language, VB6 is also very widely used and rightly so.
                            However, it has been replaced with a more modern OO language that (again)
                            if you're interested in upgrading your skills would be a better choice.
                            Both SQL Server Compact and Visual Basic (Express) are free downloads
                            and get you up to speed technically. It might be a fun project to write a
                            code converter to migrate your source code to VB.NET.
                            >
                            hth
                            >
                            --
                            William (Bill) Vaughn
                            Author, Mentor, Consultant
                            Microsoft MVP
                            INETA Speaker
                            Welcome to the home of William Vaughn's Imagination, creations, and advice.

                            Welcome to the home of William Vaughn's Imagination, creations, and advice.

                            Please reply only to the newsgroup so that others can benefit.
                            This posting is provided "AS IS" with no warranties, and confers no
                            rights.
                            _______________ _______________ ____
                            Visit www.hitchhikerguides.net to get more information on my latest books:
                            Hitchhiker's Guide to Visual Studio and SQL Server (7th Edition) and
                            Hitchhiker's Guide to SQL Server 2005 Compact Edition
                            >
                            -----------------------------------------------------------------------------------------------------------------------
                            "Randy Reimers" <rreimers.nul@h otmail.comwrote in message
                            news:%23MBDBOHr HHA.4984@TK2MSF TNGP03.phx.gbl. ..
                            > (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 "Thoroughbr ed 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 reports,..... 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
                            >export 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 reporting purposes. It can stay character based - no need
                            >for fancy screens or pix.
                            >>
                            >Here is a sample:
                            >0010 REM "RENTAL/MEMBERSHIP 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,P OS(" "=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"+F ID(0),DOM=00200 ) E1$,T
                            > 0190 REMOVE (6,KEY="RENT"+F ID(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$)+" - MEMBERSHIP SYSTEM"
                            > 0350 LET Y$=FNF$(FNE$(Z9 $)),Y=NUM(Y$(3, 2))-6
                            > 0360 IF Y<1 THEN
                            > LET
                            >Y$(1,2)=STR(NU M(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',@( 36-INT(LEN(N3$)/2),0),N3$,'BG', @(0,1),B2$,'EG' ,'SF'
                            >>
                            > 0380 PRINT 'SB',@(0,2),"NU MBER",@(15,2)," LAST NAME",@(50,2)," INVOICE
                            >#",@(
                            > 0,3),"COMMENTS" ,@(65,3),"LAST
                            >TIME",@(56,4), "HARDWARE",@(0, 4),"
                            > NAME",@(35,4)," DL#",@(42,5),"V CR
                            >OWNER?",@(55,5 ),"MAILING?",@( 6
                            >>
                            >6,5),"TYPE",@( 0,5),"ADDRESS", @(0,6),"ADDRESS ",@(42,6),"JOIN ED",
                            > @(58,6),"LAST ACTIVITY",@(0,7 ),"ZIP",@(18,7) ,"CARRIER
                            >ROUTE",@(
                            > 42,7),"MTD",@(5 1,7),"YTD",@(61 ,7),"HOLD",@(0, 8),"PHONE
                            >HM",@(24
                            >>
                            >,8),"WK",@(42, 8),"#LT",@(50,8 ),"#FREE",@(60, 8),"#MP",@(0,10 ),"T
                            > OT
                            >$$",@(16,10)," IG",@(25,10),"I M",@(34,10),"IU ",@(43,10),"IV" ,
                            > @(52,10),"IX",@ (62,10),"UNPAID
                            >FEE",'BG',@(0, 9),B2$,@(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="STORENU M",DOM=00441 ) R8
                            > 0450 DIM Z5$(36);
                            > READ (6,KEY="DZIP",D OM=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 @(7,2),B1$(1,6) ;
                            > IF E1$<>"" THEN
                            > PRINT @(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 @(0,23),"F1=I.D . NUMBER",@(0,22) ,"ENTER MEMBER #, CR=LAST
                            >NAME,
                            > F2=PHONE SEARCH, F3=NEXT NEW CUSTOMER #, F4=END",;
                            > INPUT (0,ERR=00550) @(7,2),Q$,@(0,2 3),'CL',@(0,22) ,'CL',
                            > 0560 IF CTL=1 THEN
                            > GOTO 01240
                            > 0570 IF CTL=2 THEN
                            > GOTO 01360
                            >>
                            > 0580 LET X=NUM(Q$,ERR=00 590);
                            > 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=0 0680) ;
                            > GOTO 00610
                            > 0620 IF Q$="" AND E1$<>"" THEN
                            > LET Q$=E1$(4,6);
                            > GOTO 00710
                            > 0630 IF Q$="" THEN
                            > PRINT @(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 @(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$(11 2,10))
                            > 0780 LET X6$=S$(1,14);
                            > IF M0$(122,10)<>S$ (1,10) THEN
                            > LET X6$=FND$(M0$(12 2,10))
                            > 0790 IF M0$(215,6)=S$(1 ,6) THEN
                            > LET X3$="NONE"
                            > ELSE
                            > LET X3$=FNA$(M0$(21 5,6))
                            >>
                            >
                            >

                            Comment

                            • DAVID

                              #15
                              Re: Converting from an ancient BASIC to new database

                              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 "Thoroughbr ed 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 reports,..... 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 export
                              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
                              reporting purposes. It can stay character based - no need for fancy screens
                              or pix.
                              >
                              Here is a sample:
                              0010 REM "RENTAL/MEMBERSHIP 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,P OS(" "=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"+F ID(0),DOM=00200 ) E1$,T
                              0190 REMOVE (6,KEY="RENT"+F ID(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$)+" - MEMBERSHIP 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',@(36-INT(LEN(N3$)/2),0),N3$,'BG', @(0,1),B2$,'EG' ,'SF'
                              >
                              0380 PRINT 'SB',@(0,2),"NU MBER",@(15,2)," LAST NAME",@(50,2)," INVOICE
                              #",@(
                              0,3),"COMMENTS" ,@(65,3),"LAST
                              TIME",@(56,4)," HARDWARE",@(0,4 ),"
                              NAME",@(35,4)," DL#",@(42,5),"V CR
                              OWNER?",@(55,5) ,"MAILING?", @(6
                              6,5),"TYPE",@(0 ,5),"ADDRESS",@ (0,6),"ADDRESS" ,@(42,6),"JOINE D",
                              @(58,6),"LAST ACTIVITY",@(0,7 ),"ZIP",@(18,7) ,"CARRIER
                              ROUTE",@(
                              42,7),"MTD",@(5 1,7),"YTD",@(61 ,7),"HOLD",@(0, 8),"PHONE
                              HM",@(24
                              ,8),"WK",@(42,8 ),"#LT",@(50,8) ,"#FREE",@(60,8 ),"#MP",@(0,10) ,"T
                              OT
                              $$",@(16,10),"I G",@(25,10),"IM ",@(34,10),"IU" ,@(43,10),"IV",
                              @(52,10),"IX",@ (62,10),"UNPAID
                              FEE",'BG',@(0,9 ),B2$,@(0,11),B 2$
                              ,'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="STORENU M",DOM=00441 ) R8
                              0450 DIM Z5$(36);
                              READ (6,KEY="DZIP",D OM=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 @(7,2),B1$(1,6) ;
                              IF E1$<>"" THEN
                              PRINT @(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 @(0,23),"F1=I.D . NUMBER",@(0,22) ,"ENTER MEMBER #, CR=LAST
                              NAME,
                              F2=PHONE SEARCH, F3=NEXT NEW CUSTOMER #, F4=END",;
                              INPUT (0,ERR=00550) @(7,2),Q$,@(0,2 3),'CL',@(0,22) ,'CL',
                              0560 IF CTL=1 THEN
                              GOTO 01240
                              0570 IF CTL=2 THEN
                              GOTO 01360
                              >
                              0580 LET X=NUM(Q$,ERR=00 590);
                              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=0 0680) ;
                              GOTO 00610
                              0620 IF Q$="" AND E1$<>"" THEN
                              LET Q$=E1$(4,6);
                              GOTO 00710
                              0630 IF Q$="" THEN
                              PRINT @(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 @(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$(11 2,10))
                              0780 LET X6$=S$(1,14);
                              IF M0$(122,10)<>S$ (1,10) THEN
                              LET X6$=FND$(M0$(12 2,10))
                              0790 IF M0$(215,6)=S$(1 ,6) THEN
                              LET X3$="NONE"
                              ELSE
                              LET X3$=FNA$(M0$(21 5,6))
                              >
                              >

                              Comment

                              Working...