There are rumors that Brian is really far with a x64 Compiler that supports Power Basic like Syntax.
He told me that he offered the compiler to "PB.inc" to have it sold as Powerbasic x64 but they were nopt intertested.
Maybe there will finally be an PB x64 like compiler?
PS: I could not yet test it.
Some Good NEWS at last .... Brian Alvarez is the savior for PB as without a real PB 64 bit compiler how could PB inc sell their stuff?
similar to MS which takes over other products to kill it?
> He told me that he offered the compiler to "PB.inc" to have it sold as Powerbasic x64 but they were nopt intertested.
How are they going to sell a converter that uses an alpha compiler as the backend?
Quote from: José Roca on August 24, 2019, 11:38:16 PM
> He told me that he offered the compiler to "PB.inc" to have it sold as Powerbasic x64 but they were nopt intertested.
How are they going to sell a converter that uses an alpha compiler as the backend?
I understand the doubts Jose, but i ask you and everybody who reads.... just give it a chance once it comes out. :)
I didnt told Theo much because he didnt want to sign an NDA (and the little [incomplete] info i gave him already shared!! bad theo! bad theo! :D ), The truth is that i cant share all the exciting news (who likes to work for nothing or without a goal?) about it... just wait, it will be awesome. In the meantime just know that PluriBASIC is a pretty strong competitor, and that even though Oxygen is in the alpha stage, Charles works pretty hard in it as to attract me into developing on top of it.
At this point i doubt there is something not possible... we have PB macros on steroids, CGI engine, multi platform, enhanced resources, complete file system... you name it.
There are still a couple big features missing, but I will get to them eventually. :)
My intention here is just to keep things going. And it works.
I don't know any details. Just that PB Syntax may not be totaly dead like MANY expect.
About the Alpha Compiler ... i don't know the details.
At this point i think, that anything would be better then nothing.
Currently they loose customers because they have nothing in x64.
When can we Beta-Test your product, Brian?
Quote from: Theo Gottwald on August 25, 2019, 09:06:27 AMWhen can we Beta-Test your product, Brian?
Hopefully soon. :)
Thanxx a lot Brian
maybe allow me to do beta testing too, you would need someone like myself who is learning programming
to test your product, the more beta testing the better.
i heard that O2 is already in beta stage? i maybe wrong
Quote from: Chris Chancellor on August 25, 2019, 03:13:46 PMi heard that O2 is already in beta stage? i maybe wrong
AFAIK, Oxygen is stilll alpha (version 0.x), there are still a few wrinkles here and there, but it is already very powerful. Charles is very quick fixing small errors that i can report, for big issues it takes longer but it is in non-stop development. Big applications are already posible. Take a look at this for example:
https://www.oxygenbasic.org/forum/index.php?topic=1946.0
I have since fixed 2 bugs in the game (not oxygen's fault) that i havent uploaded, but you will get the idea. The two bugs are that if you rotate in the first column with something blocking to the right, the pill moves left going to column zero, the second bug is that if you are going too fast and the game tries to speed up... the game gets too fast and the speed breaks. The pill stops falling, allowing to control it at will, with no gravity.
Anyway, this shows that although in an "early" stage, Oxygen already allows to do good things with it. :)
The game uses MANY API calls, as well as many of the BASIC features, macros and "DDT".
#COMPILE EXE
'#COMPILER pbwin
#COMPILER oxygen 0.2.6
#OPTIONS X64
'#OPTIONS developer (CONDENSES STYLES: CONSOLE, CAPTURE, DISCRETE, DEBUGTOOLS)
#DIM ALL
' ****** MANY INCLUDES HIDDEN ******
FUNCTION PBMAIN() AS LONG
CALL InitGame()
' if isfalse(TestBGM("sfx21")) then
' msgbox "Music resources could not be extracted.", %MB_ICONERROR, "The game cannot start"
' exit function
' end if
LOCAL hDlg AS DWORD
DIALOG NEW PIXELS, 0, "DrMario - " & Exe.compiler$,,,512,448, %WS_OVERLAPPEDWINDOW TO hDlg
Config.hMain = hDlg
DIALOG SET ICON hDlg, "DLGICON"
DIALOG SHOW MODAL hDlg CALL DlgProc()
END FUNCTION
CALLBACK FUNCTION DlgProc() AS LONG
STATIC HTIMER AS HANDLE
STATIC HTIMEM AS HANDLE
STATIC HFRAME AS LONG
LOCAL RC AS RECT
SELECT CASE CB.MSG
CASE %WM_INITDIALOG
Config.hiscore = 10000
Config.speed = 1
Config.level = 0
Config.music = %MUSIC_FEVER
Config.focused = -1
HVIRBG = LoadBitmap(EXE.INST, "VBIG")
HVIRSM = LoadBitmap(EXE.INST, "VSML")
HMARIO = LoadBitmap(EXE.INST, "DRMA")
HNUMBR = LoadBitmap(EXE.INST, "NUMR")
HBACKG = LoadBitmap(EXE.INST, "BACK")
HTITLE = LoadBitmap(EXE.INST, "TITL")
HSELEC = LoadBitmap(EXE.INST, "SELE")
HHIGHL = LoadBitmap(EXE.INST, "HLTH")
HENDIN = LoadBitmap(EXE.INST, "ENDS")
hTimer = SetTimer(CB.HNDL, %TIMER_REFRESHSCREEN, 20, BYVAL %NULL)
hTimem = SetTimer(CB.HNDL, %TIMER_musiccheck, 500, BYVAL %NULL)
changeGameScreen(%SCREEN_title)
'changeGameScreen(%SCREEN_ENDING)
CASE %WM_DESTROY
IF hTimer THEN
KillTimer CB.HNDL, hTimer
END IF
IF hTimem THEN
KillTimer CB.HNDL, hTimem
END IF
SLEEP 100
DeleteObject HVIRBG
DeleteObject HVIRSM
DeleteObject HMARIO
DeleteObject HNUMBR
DeleteObject HBACKG
DeleteObject HTITLE
DeleteObject HSELEC
DeleteObject HHIGHL
DeleteObject HENDIN
CASE %WM_TIMER
SELECT CASE CB.WPARAM
CASE %TIMER_musiccheck
' local temp as asciiz * 255
' stdout "CLS"
' mciSendString("status mp3file position", temp, 255, BYVAL %null)
' stdout trim$(temp)
' stdout " "
CASE %TIMER_REFRESHSCREEN
CALL execGameMechanics()
CALL GetClientRect(CB.HNDL, Rc)
hframe = 1
InvalidateRect CB.HNDL, RC, 0
CASE %TIMER_musicloop
mciSendString("seek mp3file to " & FORMAT$(Config.musicloop), BYVAL 0, 0, 0)
mciSendString("play mp3file", BYVAL 0, 0, 0)
IF Config.musictimes = 0 THEN
IF Config.mTimer THEN
KillTimer CB.HNDL, Config.mTimer
Config.musiclen = ((Config.musiclen - Config.musicloop) + Config.adjust)
Config.mTimer = SetTimer(CB.HNDL, %TIMER_musicloop, Config.musiclen, BYVAL %NULL)
END IF
END IF
INCR Config.musictimes
END SELECT
CASE %WM_KILLFOCUS
Config.focused = 0
CASE %WM_SETFOCUS
Config.focused = -1
CASE %WM_PAINT
IF HFRAME THEN
hframe = 0
drawGameFrame
END IF
END SELECT
END FUNCTION
I Havent prepared the full code but check the attached source. It compiles fine for PowerBASIC 32 bits, Oxygen 32 bits and Oxygen 64 bits.
The syntax errors that Oxygen does not yet catch, PluriBASIC does. This somewhat compensates for the alpha state of oxygen, because PluriBASIC only generates
code that has been tested to already work in Oxygen, not allowing you to code anything out of the working bounds.
Good to have a double checking features by both Pluribasic and O2 .
What commercial users really do need is an IDE that can do something like in VB6 something that can create forms -- arrangement of buttons, textboxes and dialogs for rapid software development.
We want OpenGL graphics but not like games (Dr Mario ) but something that can replace PB Graphics and XPRINT statements
regarding PB DDTs , my programs already resolved this matter so this is not an issue anymore.
So i would say that you would need to work on the IDE too for O2 (something that Chris Boss had stated many times
that he could provide but nothing showing ) ;D
Users want a RAPID development IDE , they are not interested in getting entangle with intricate codes and calling WINapi
The idea is that you (at some point) will be able to use any IDE you want, Firefly, WinFBE,
JK's IDE, PB's ide, one of Chris' ones... even PB forms, with no special modifications by their
authors.
The IDE i am using has very powerful features, for example it allows to monitor variables,
the Logcat (Android), the internal working of the guts (compilation processes for all targets),
edit core functions, sort tabs, resie panels... it even has some special mechanics to interact
with the source code (clicking keywords).
If you want you can use any other IDE though, even one that supports project structures.
Of course, you will need to compile and link resources manually if you do that. No problem
though, PluriBASIC generates automatically an RC file for you to compile and link in case you
want to handle it yourself.