Author Topic: PowerBASIC  (Read 45606 times)

0 Members and 1 Guest are viewing this topic.

JRS

  • Guest
Re: PowerBASIC
« Reply #45 on: February 28, 2018, 09:43:07 PM »
It looks to me that a PowerBASIC DDT emulation could easily be coded as an IUP wrapper.


Charles Pegge

  • Guest
Re: PowerBASIC
« Reply #46 on: February 28, 2018, 11:13:48 PM »
I am exploring the potential for a Power Basic Compatibility Library, which would go below RTL64, and handle all the fundamental keywords used in PB but not present in core O2.

DDT, PB objects, and Xprint are all distinct units which can be handled separately. If necessary, these units could be given full preprocessing in a customised compiler. Two years, as Mike suggests,  sounds about right to me. But the Compatibility Library could start right away.

Mike Lobanovsky

  • Guest
Re: PowerBASIC
« Reply #47 on: February 28, 2018, 11:41:25 PM »
Two years, as Mike suggests,  sounds about right to me.

Does that mean you're on the bandwagon, Charles? :) IMHO the project is infeasible unless you are at its core.

Charles Pegge

  • Guest
Re: PowerBASIC
« Reply #48 on: March 01, 2018, 04:16:40 AM »
I'm plodding through the PB10/Windows manual, Mike. There are a few things that need to go into O2 core, for instance: on...goto

And about half of O2's RTL32/RTL64 could be abstracted into basic.

chrisc

  • Guest
Re: PowerBASIC
« Reply #49 on: March 01, 2018, 05:06:59 AM »
maybe creating dialogs in o2 is gonna to help pb users so what we need is something like
Ezgui form designer that can produce O2 code?

Charles Pegge

  • Guest
Re: PowerBASIC
« Reply #50 on: March 01, 2018, 07:26:03 AM »
Dialogs can also be put together dynamically, under full program control. A selection of standard flexi-examples, I think would be helpful, in enabling coders to adapt them to their own requirements.

 In the long term, a bit of hacking might be more instructive and productive than using a form designer :)

Aurel

  • Guest
Re: PowerBASIC
« Reply #51 on: March 01, 2018, 12:34:04 PM »
form designer...hmmm that would be nice
but that job require lot of time and knowlwge and experience ..
and,,,
look into some GUI examples - scintilla maybe?
no is not a joke... you can find awinh.inc ...it is experimental but work
for 32bit apps.

JRS

  • Guest
Re: PowerBASIC
« Reply #52 on: March 01, 2018, 02:33:47 PM »
If someone needs a DDT dialog like generator they should use IUP. Charles already has the IUP C include file working with O2.


Aurel

  • Guest
Re: PowerBASIC
« Reply #53 on: March 02, 2018, 12:51:32 AM »
Using pure win api :

Code: [Select]
$ Filename "ListView.exe" ' o2
include "RTL32.inc"
include "awinh.inc"
INT win,wx=0,wy=0,ww=600,wh=400,wstyle = WS_MINMAXSIZE
INT button0,b0ID=100, lvControl,lvID=1000
win=SetWindow("GUI-PB->o2::ListView",wx,wy,ww,wh,0,wstyle)
'crete button--------------------------------------------------------------------
button0 = SetButton(win,180,4,80,26,"Close (X)",0x50001000,0x200,b0ID)
'create ListView ----------------------------------------------------------------
lvControl = SetListView (win, 20, 60, 300 , 300 ,"ListView", 150, 0, 0x200, lvID)
'--------------------------------------------------------------------------------
Wait()  'message loop
'--------------------------------------------------------------------------------
'func main
Function WndProc (sys hwnd,wmsg,wparam,lparam) as sys callback
SELECT hwnd
CASE win
Select wmsg
CASE WM_CLOSE
CloseWindow(win)
EndProgram
End Select
END SELECT
RETURN Default
END FUNCTION

[attachment deleted by admin]
« Last Edit: March 02, 2018, 01:53:12 AM by Aurel »

chrisc

  • Guest
Re: PowerBASIC
« Reply #54 on: March 02, 2018, 05:48:50 AM »
That's a beauty Aurel

@john
what is an IUP ?

chrisc

  • Guest
Re: PowerBASIC
« Reply #55 on: March 02, 2018, 05:59:24 AM »
Hello Aurel

does the below statement means using win32 api ?
include "awinh.inc"

what would be or how to convert for 64bits?  as PB users are mainly interested  in converting
their 32bits programs to 64 bits ones ?

can we use the below header for 64bits ?
Code: [Select]
$ Filename "mylist.exe"
include "RTL64.inc"
include "awinh.inc"



Aurel

  • Guest
Re: PowerBASIC
« Reply #56 on: March 02, 2018, 07:24:16 AM »
hi chris
my small unfinished - experimental set of 32bit api functions is in attachment.
I really don't know how to convert this to 64 bit,,,,
I don't use 64 bit windows...i only know that oxygen can compile to 64bit app
so what variable type must be changed i really don't know...
you must ask Charles about that!

[attachment deleted by admin]

Chris Boss

  • Guest
Re: PowerBASIC
« Reply #57 on: March 02, 2018, 07:26:41 AM »
Just to clarify: I haven't sold EZGUI for as low as $24.95 or $14.95. The lowest price has been $39. The reason for this is that the current PB market can not support my old price range and I tried all sorts of prices and have now found $39 to be the sweat spot for the current market. I had a number of orders this month and sales continue. Future development though is currently on hold until I see a change in the PB market.

Now to the discussion at hand:

The key to a new compiler is as follows:

Support for the entire PB command set is not important. What is important is "core" BASIC which has been around since the DOS days. Commands like IF THEN, FOR NEXT, SELECT CASE, etc need to be fully implemented. Such commands can not be owned by anyone at this point since it has been around for decades. Even TurboBasic (aka. Powerbasic for DOS) copied previous BASIC's for its core command set.

Next, the language needs to support core functionality for working with the WIN32 API. Things like pointers, data types, etc. need to be supported so calling the WIN32 API can done without issue.

Next, expandability is vital. Things like Macros, DLL compiling and possibly some standard static library format (ie. COFF). The language needs to be sufficient enough so it can compile itself at some point and then future development would be in the language itself, rather than using C++, Freebasic or even Powerbasic. Inline assembler and other features which make expanding the language using itself are vital.

Next, the language initially should be able to code in just a simple code editor (allow one to use any code editor they like). Once this works, then step 2 is necessary.

Sept 2: GUI framework and Visual Designer front end.

BASIC needs to come out of the dark ages. Bob Zale didn't recognize this. Bob was great at core compiler development, but he was very weak at building a high level GUI development system. In this day and age GUI development at a high level is vital, especially for commercial development. If you compare the different iterations of DDT, each new version was years behind each iteration of EZGUI. Bob was tackling the standard controls, while EZGUI was doing the common controls and graphics. Bob implemented a decent, yet simple, Graphic engine based on simple GDI commands, while EZGUI pushed on to advanced 2D Graphics, animation and OpenGL 3D. The point is that, Bob never could catch up to modern development for the GUI side of things. This does not nullify his great achievements, but it was a simple fact that GUI development has been mainstream for years and Powerbasic lagged behind. Look at what Eros has done with ThinBasic. It has been expanded upon in many different ways.

The key to a new generation of BASIC is expandability. Like what happened with classic Visual Basic. Microsoft did not envision what would happen by third party developers. Sadly classic Visual Basic was not built from the ground up like Powerbasic was. Microsoft purchased a visual scripting engine from a third party (which was not BASIC either) and turned it into Visual Basic and seemed like they didn't intend it to be a professional development tool. In later versions they had to fudge it by using a C compiler backend just to turn it into a real compiler, rather than just pcode.

Powerbasic itself only really became productive when the likes of EZGUI, Firefly, Phoenix, etc. came along. Remember the days of Powerbasic being advertised as an addon to classic Visual Basic ? When classic VB died, Bob was not prepared for the next level he needed to accomplish. Bob had to catch up with his own PB Forms simply to keep GUI development done using his products, rather than third party. But third party developers were far beyond what Bob was doing when it came to drag and drop design, code generation and GUI frameworks. It just was not Bob's area of expertise. Third party developers helped keep Powerbasic alive, while Bob tried to catch up.

One of the projects I have in mind is to turn my EZGUI 5.0 Visual Designer into a generic front end which can be used with any language, even Oxygen, C++, etc. By building a plugin engine which allows third party developers to turn my generic designer into a front engine for any language they choose, it might open up possibilities for the like of Oxygen, Freebasic, Purebasic, Thinbasic, etc. This could open up some possibilities for Oxygen.

I am not a compiler developer and it currently is beyond my skillset right now. I have looked at LLVM and that is another good candidate for building new languages (generate LVMM low level macro code and LVMM does the compiling to any platform). For those interested in building a powerful compiler, take a look at LVMM for a back end. Apple is using it and so are many other companies.

I am willing to consider working on the next generation of BASIC where my skillsets apply, such a front end visual designers and GUI frameworks. I am watching the progress of Oxygen with interest.


JRS

  • Guest
Re: PowerBASIC
« Reply #58 on: March 02, 2018, 09:24:43 AM »
Thanks Chris for the clarification. I'm happy that you're still able to make something off the PB community.

What is preventing EZGUI from being used with OxygenBasic now?

Aurel

  • Guest
Re: PowerBASIC
« Reply #59 on: March 02, 2018, 11:05:25 AM »
Really nice elaboration but:

Quote
while EZGUI pushed on to advanced 2D Graphics, animation and OpenGL 3D.

well where is the DirectX support?
bump  :)