12/04/94: PowerBasic for OS9/68000 ships! by Delphi, | Category: Delphi - New Uploads | 16 comments - (Comments are closed)

PowerBasic for OS9/68000 ships!

90889 4-DEC 23:02 New Uploads
PowerBasic for OS9/68000 ships!
From: FHOGG To: ALL

“This new language (PowerBasic) may be the most significant thing to
come along for OS9 in the last ten years!”

>>>>>>>>>>>>>>>>>>>>>>>>>> NOW SHIPPING < <<<<<<<<<<<<<<<<<<<<<<<<<

PowerBasic for OS9/68000

Finally, someone wrote a BASIC compiler for OS9!

PowerBasic is the only native (68000) code BASIC compiler for use with
the OS-9/68000 Operating System.

——

I’ve just uploaded information on PowerBasic to the DL. Two files, one
gives the promo information and the other covers a introductory offer
that saves you $50 if ordered by the end of the month. Over the next
several days I will be uploading a more complete technical spec and
examples in PowerBasic source and object that you can try on your own
computer. I’ve downloaded a whole bunch of Basic09 programs from the DL
here and I plan to use some of them as examples also. My intent is to
see and show what is involved in converting regular Basic09 type
programs to PowerBasic and what speed and size advantages there are. If
you have any other suggestions you would like to see me try please let
me know.

I got my copy of PowerBasic just before Thanksgiving and have been
getting up to speed on it. So far I like it very much. The compiler runs
fast and the resultant code generated is also fast. Much much faster
than Basic09. I’ve been having fun looking at the ‘.a’ files to see what
assembler code is generated by PowerBasic and to watch how changes in
the Basic program effect the assembler code. PowerBasic makes this easy
because the Basic source line is inserted into the ‘.a’ file as a
comment.

PowerBasic object is stand alone, no ‘runb’ type of thing is needed. I
like this because it keeps the whole project as one program. No need to
worry about having all the pieces needed to make something work.

I’m looking for feedback so please feel free to ask questions and make
suggestions.

Thanks
Frank Hogg
FHL

16 comments to PowerBasic for OS9/68000 ships!

  • pucc_unknown

    90894 5-DEC 18:38 New Uploads
    RE: PowerBasic for OS9/68000 ships! (Re: Msg 90889)
    From: THETAURUS To: FHOGG

    Frank you couldn’t have announced this at a better time! I was just asking
    everyone and his brother about this project for the last couple weeks. I will
    dl that file. This will definately be a step in the right direction(and one
    more reason to go OSK :-) )
    >Chris<

  • pucc_unknown

    90903 6-DEC 05:49 New Uploads
    RE: PowerBasic for OS9/68000 ships! (Re: Msg 90889)
    From: EDELMAR To: FHOGG

    > PowerBasic is the only native (68000) code BASIC compiler for use with
    > the OS-9/68000 Operating System.

    > I’m looking for feedback so please feel free to ask questions and make
    > suggestions.

    Good show. Does it include GFX for G-WINDOWS or other graphics? Any plans
    for OS-9000?

    Ed Gresick

  • pucc_unknown

    90905 6-DEC 21:45 New Uploads
    RE: PowerBasic for OS9/68000 ships! (Re: Msg 90903)
    From: FHOGG To: EDELMAR

    > Good show. Does it include GFX for G-WINDOWS or other graphics? Any plans
    > for OS-9000?

    For the first question see my message 90904. A GFX type of capability is in the
    future. However because PB can call C Libs you can use the GW dev pak as is
    just like you do with C. Mind you I havn’t actually done that yet but as soon
    as I get caught up wit
    h stuff I will. I hope to upload a series of files that have source and bins
    showing off PB.

    On OS-9000… Yes but just future plans at this time. The door is being left
    open in the code for other CPUs like Intel and PowerPC. As PB includes inline
    asm it would be a bit of trouble but it can be done.

    Frank

  • pucc_unknown

    90897 5-DEC 22:17 New Uploads
    RE: PowerBasic for OS9/68000 ships! (Re: Msg 90894)
    From: FHOGG To: THETAURUS

    Chris,

    I’m glad I hit you at the right time. Why, may I ask, were you so
    interested in this project??? Besides the obvious ones of course.

    Frank

  • pucc_unknown

    90898 5-DEC 22:20 New Uploads
    RE: PowerBasic for OS9/68000 ships! (Re: Msg 90894)
    From: FHOGG To: THETAURUS

    I just checked DA NEW and I see the file is not yet available. I’ll email you
    a copy in the meantime.

    Frank

  • pucc_unknown

    90900 5-DEC 23:51 New Uploads
    RE: PowerBasic for OS9/68000 ships! (Re: Msg 90897)
    From: THETAURUS To: FHOGG

    Ever since you first announced Basix way back when I was interested in the
    project. I know at the time it was aimed at the Gwindows environment, so I
    tried to keep tabs on the project, since I am a Basic Enthusiast. Also, since
    I am still in the market for an OSK machine, I wanted
    to be sure what environment this compilor would run on, so I could
    keep that in mind when deciding on what machine to buy when the $$ is at
    my disposal.(this won’t be the case for a while still :-( )
    It’s good to know this program is aimed at the broad market and not limited
    to a specific Windowing system(tho I will most likely aim everything I write
    at a Gwindows and/or Kwindows Evironment). This will promote
    as much developement as possible.

    See Ua
    >Chris<

  • pucc_unknown

    90904 6-DEC 21:39 New Uploads
    RE: PowerBasic for OS9/68000 ships! (Re: Msg 90900)
    From: FHOGG To: THETAURUS

    Thank you for your support of the concept. We do plan an extension for
    G-Windows beyond what can be done with the C library. I have had some
    preliminary talks with Steve Adams about adding G-Windows support directly to
    PB and he was supportative. Of course
    that is a way off but we are thinking of it.

    Mike wanted PB to be good enough so that he would not have to program in either
    C or assembler again. He wants to do drivers and other system type stuff with
    it. I want to do GW development with it. With our combined desires about the
    capabilities of it wi
    ll make quite a powerful product. IMHO.

    Frank

  • pucc_unknown

    90912 7-DEC 01:04 New Uploads
    RE: PowerBasic for OS9/68000 ships! (Re: Msg 90904)
    From: AJMLFCO To: FHOGG

    For those with 68020 and 68030 machines, is there support
    for these other than straight 68000? I have a 68882 FPU, is
    that supported? Does it use the assembler and linker that
    already comes with OSK “C”?

    Allen

  • pucc_unknown

    90913 7-DEC 20:02 New Uploads
    RE: PowerBasic for OS9/68000 ships! (Re: Msg 90912)
    From: EDELMAR To: AJMLFCO (NR)

    Allen’s question in message 90912 is a good one.

    > For those with 68020 and 68030 machines, is there support
    > for these other than straight 68000? I have a 68882 FPU, is
    > that supported?

    Expanding on Allen’s question, is PowerBasic capable of generating either
    68000 and 68020 instructions? Does it adjust branch instructions for byte,
    word and long offsets or use a default offset? Does it support the newer
    FPU trap module in place of the MATH trap module? Is the CIO or the newer
    CSL (in place of CIO) trap module required or does PowerBasic take care
    of these functions? Does PowerBasic include a code optimizer?

    In ‘powerbasic.info’ you state -

    > Available now.
    >
    > Personal Users $350.00
    >
    > Commercial/Industrial Users $850.00
    >
    > There is no licensee or fee required to distribute your compiled
    > PowerBasic programs.

    What is the difference between the version for ‘Personal Users’ and the
    version for ‘Commercial/Industrial Users’? If no difference, may either
    category distribute/sell code compiled with PowerBasic without paying
    any further license fees or is the last sentence intended to apply to
    ‘Commercial/Industrial Users’ only? If either category may distribute/sell
    code, what is the difference between Personal and Commercial/Industrial?

    Ed

  • pucc_unknown

    90914 7-DEC 20:22 New Uploads
    RE: PowerBasic for OS9/68000 ships! (Re: Msg 90912)
    From: FHOGG To: AJMLFCO (NR)

    A later version is planned for 32 bit machines so you could just recompile at a
    later time. However I have no timeframe for when that would be. The general
    plan is to work on version 2 using feedback from version 1 users as well as
    things he wants to do.

    Because PB uses the math module for FP the 68882 would be supported thru that.

    Yes it does use the assembler and linker that you have now. At your option you
    can diddle with the ‘.a’ file if you want.

  • pucc_unknown

    90916 7-DEC 22:53 New Uploads
    RE: PowerBasic for OS9/68000 ships! (Re: Msg 90913)
    From: FHOGG To: EDELMAR (NR)

    Ed,

    > Expanding on Allen’s question, is PowerBasic capable of generating either
    > 68000 and 68020 instructions?

    Version 1.0 is 68000 only.

    > Does it adjust branch instructions for byte, word and long offsets or
    > use a default offset?

    (this from Mike)
    Neither. It uses a caculated relative global jump or jsr.
    …This code (from Mike) is what is used.
    move.l #dest-*-8,a2
    jmp (pc,a2.l)
    (if then) etc uses words. Uses byte for things when it knows it can.

    (I hope I typed that in right, I am NOT a 68K assembly programmer, that’s
    why I wanted PowerBasic.)

    > Does it support the newer FPU trap module in place of the MATH trap module?

    It uses the math trap.

    > Is the CIO or the newer CSL (in place of CIO) trap module required or does
    > PowerBasic take care of these functions?

    PB takes care of it. It doesn’t use CIO.
    It uses 3 OS9 resources, some OS9 system calls, the standard MATH trap module,
    and the sys.l library. Also refers to oskdefs.

    > Does PowerBasic include a code optimizer?

    Not in version 1.0. Planned for a later version. However there is some
    internal optimizing.

    > What is the difference between the version for ‘Personal Users’ and the
    > version for ‘Commercial/Industrial Users’?

    They are both the same in all respects except for price. It is our intent
    to support the individual user and to promote development with PowerBasic
    by offering a lower cost version for individuals such as those here on
    Delphi and over on CIS.
    Promotions to commercial/industrial users do not mention the personal pricing.

    I will be uploading a group of benchmark programs in Basic09 source,
    PowerBasic source and PowerBasic object that you can look at and run on
    your own machine so you can compare that aspect of PB. I will also upload
    part of a ‘.a’ file of one of the benchmarks so you can look at an example
    of how PB does its thing. I hope to get to that this weekend.

    Frank

  • pucc_unknown

    90923 8-DEC 20:11 New Uploads
    RE: PowerBasic for OS9/68000 ships! (Re: Msg 90916)
    From: EDELMAR To: FHOGG

    Frank,

    > They are both the same in all respects except for price. It is our intent
    > to support the individual user and to promote development with PowerBasic
    > by offering a lower cost version for individuals such as those here on
    > Delphi and over on CIS.
    > Promotions to commercial/industrial users do not mention the personal
    > pricing.

    If I order PowerBasic, do I have to pay the $300 price or $800. Understand,
    if performance of the object code proves satisfactory and my productivity is
    improved, I will use it for commercial software. Some object code might even
    find its way into some VOD (DAVID) stuff (drivers and other system state
    modules).

    It is to be expected that ‘undocumented features’ crop up in a new package
    such as this (no negative conotation intended – just an unfortunate fact of
    life). As bugs are found and fixed, will updates be sent automatically?

    Ed

  • pucc_unknown

    90926 9-DEC 00:57 New Uploads
    RE: PowerBasic for OS9/68000 ships! (Re: Msg 90923)
    From: FHOGG To: EDELMAR

    You can have it for the $300 price.

    >As bugs are found and fixed, will updates be sent automatically?

    I don’t know just how Mike will be handeling this. I could easily email you
    and others new versions here on Delphi as they become available. I’ll ask
    Mike what his ‘official’ policy will be.

    Frank

  • pucc_unknown

    90929 9-DEC 21:15 New Uploads
    RE: PowerBasic for OS9/68000 ships! (Re: Msg 90926)
    From: FHOGG To: ALL

    I have uploaded the following to the database,

    Contents:

    1 POWERBASIC LANGUAGE SPECIFICATIO (Size: 1356 Count: 0)
    Dow: PBSpec.upl
    2 POWERBASIC BENCHMARK RESULTS IN (Size: 40476 Count: 0)
    Dow: PBench.ar
    3 POWERBASIC BENCHMARK IN LHA (Size: 28458 Count: 0)
    Dow: PBench.lzh
    4 POWERBASIC BENCHMARK README (Size: 2670 Count: 0)
    Dow: PBench.ReadMe

    However I don’t know when the sysop will get to it. The following
    is the contents of the last file, the ReadMe file.

    PowerBasic Benchmark results
    12/9/94

    This archive has 49 files. 4 versions of each benchmark and a
    ReadMe file. It is archived twice. Once with Ar V2.0 (40476
    bytes) and again with LHa V 2.01 (28458 bytes). Both done under
    OSK.

    The nature and results of bench2 through bench12 are as follows:
    (all tests were run on an 030 system @33MHZ w/ 1 wait state)
    (all times are in seconds)

    PB MW Name of Test Nature of Test
    3 33 bench2 increment variable in loop
    2 N/A bench2m same as bench2 but with assembly MACRO
    4 44 bench3 assign loop variable to array in loop
    5 12 bench4 complex integer expression in loop
    4 64 bench5 assign user type element in loop
    7 15 bench6 str$ function in loop
    10 186 bench7 read a data statement in loop
    4 46 bench8 find address of array element in loop
    3 46 bench9 simple if/then count loop
    15 237 bench10 assign constant to integer variable in loop
    6 72 bench11 control structures “false” in loop
    2 32 bench12 “land” function in loop

    There are 4 variations of each benchmark. *.b is the PowerBasic
    source, *.b09 is the same source with minor mods needed for
    Basic(09), *.obj is the compiled code and *.a is the unaltered
    output of PowerBasic in assembler source. The *.a files are
    complete but you cannot assemble them because they need the
    runtime subroutine package called ‘runsubs’ which is part of
    PowerBasic.

    Note that ‘shell date -j’ was used because the early version of
    PowerBasic that was used to compile these benchmarks did not have
    the ‘date$’ function implemented yet. Note that these times
    should be viewed on their own rather than as a test of the speed
    of any particular computer. They are just to show the speed
    advantage of the compiled code of PowerBasic.

    I have downloaded almost every Basic source program here and I
    hope to compile then under PowerBasic to see what is involved in
    a typical conversion and to see what size and speed advantage
    PowerBasic has. In the above benchmarks you will note the small
    size of the *.b09 files compared to the size of the *.obj. Don’t
    forget the the *.b09 files have to have ‘runb’ which is about
    24K. Obviously using PowerBasic on small programs will result in
    a very small runtime program over Basic(09). (BTW I know that on
    OS9/68000 it is called BASIC and not Basic09. I use the (09) to
    avoid confusion.)

    Frank Hogg

    Please feel free to ask questions. I will do my best to answer them.

  • pucc_unknown

    90935 10-DEC 16:17 New Uploads
    RE: PowerBasic for OS9/68000 ships! (Re: Msg 90929)
    From: FHOGG To: ALL

    I’ve just uploaded an example utility for the date function. After I uploaded
    the stuff last night I got to playing. This is my actual first attempt at
    several things. 1… Writing an actual program in PowerBasic, 2… Doing
    anything in assembly language. Doing the second is very easy in PB. The
    upload is this:

    Name: POWERBASIC DATE UTILITY EXAMPLE
    Type: PROGRAM
    Date: 10-DEC-1994 16:02 by FHOGG (able to edit the Group)

    This is a example of a date utility written in PowerBasic. It shows doing a mix
    of assembly and Basic and the use of alias’s. PowerBasic source, the assembly .
    a
    file and the object are in the archives. The same stuff is in each file. One is
    in LHa 2.01 and the other is ar 2.0.

    Topic: New Uploads

    Keywords: UTILITIES, POWERBASIC EXAMPLE FHL OSK OS9/68000

    Contents:

    1 POWERBASIC DATE EXAMPLE (AR) (Size: 7857 Count: 0)
    Dow: PBdate.ar
    2 POWERBASIC DATE EXAMPLE (LHA) (Size: 4476 Count: 0)
    Dow: PBdate.lzh

    The source for PowerBasic is short so it now follows:

    **************************************
    * Simple Date program for PowerBasic *
    **************************************
    *
    * This is a good example of the flexability and power of mixing
    * assembly language and Basic statements in one program.
    *
    dim TimeError:short
    dim time:long
    dim timeA(4):byte alias=time
    dim date:long
    dim dateA(4):byte alias=date
    dim dateB(2):short alias=date
    dim day:short
    **********************************
    * Month and day are bytes and year is a short (2 bytes) the easiest
    * way to get them out of the long is by using alias arrays. The byte
    * array gets the month and day while the short array gets the year.
    * Note that these do not take any additional memory, they just point
    * to what they alias. Refer to the ‘.a’ file.
    **********************************
    **********************************
    dim tick:long
    dim tickA(2):short alias=tick
    **************************************
    * tickA(1)= number of ticks per second. tickA(2)=number of ticks
    * so we do HR:MIN:SEC and TICKS/TICKRATE
    * Example of output on KiX which has 100 ticks per second
    *
    * 12/10/1994 15:22:21 and 16/100 Seconds
    *
    **************************************
    * Make the system call. Refer to F$Time pg 1-64 in the MW manual
    * 0=Gregorian, 1=Julian, 2=Gregorian w/ticks, 3=Julian w/ticks
    **************************************

    * Code starts here

    Start
    move.w #2,d0 \ Set for Gregorian w/ticks
    os9 F$Time get the time
    bcc.s Good
    goto Perror
    Good
    * Put OS9 System Call output in PowerBasic variables
    move.l d0,time(a6)
    move.l d1,date(a6)
    move.w d2,day(a6)
    move.l d3,tick(a6)
    * Promote PowerBasic
    print “PowerBasic date utility example”
    print dateA(3);”/”;dateA(4);”/”;dateB(1);
    print ” “;timeA(2);”:”;timeA(3);”:”;timeA(4);
    print ” and “;tickA(2);”/”;tickA(1);” Seconds”
    goto Quit
    Perror
    move.w d1,TimeError(a6) Error code is now in TimeError
    print “Err: “;TimeError
    Quit
    end

    Sure is easy to do things I would never have been able to try in either C
    or assembly. I don’t know if this could be done in MW Basic but I don’t
    want to bother. BTW the compile time for this is 13 seconds which includes
    running PowerBasic, r68 and l68. I’m using a somewhat slow hard drive too.
    I suppose I could do this on /r0 but 13 seconds is fast enough for me.

    Frank

  • pucc_unknown

    90936 10-DEC 17:13 New Uploads
    RE: PowerBasic for OS9/68000 ships! (Re: Msg 90935)
    From: FHOGG To: ALL

    I need some feedback from you guys.

    Mike and I have been talking about a demo version of PowerBasic that
    would be restricted in some way but would allow compiling. Our
    discussion ranged from limiting the size of a source file to
    eliminating some functions. After playing with PowerBasic to write
    the date program I uploaded today I can see how having a demo version
    would enhance interest and sales. The concern about having a demo
    that was 100% but restricted the size of a source program is the fear
    that some clever bloke would figure out how to ‘fix’ the demo so it
    would work like the regular PowerBasic. This fear makes a restricted
    demo (with some features totally removed) attractive. The question then
    becomes which features can be removed that would allow a useful demo
    while not stealing sales by being too useful?

    If we decide to go the restricted route we could include a group of
    demos in source form plus compiled versions of the demos that will
    not compile on the restricted compiler.

    What do you think.

    Frank