• Welcome to Jose's Read Only Forum 2023.
 

PluriBASIC - Progress of the implementation for Oxygen

Started by Brian Alvarez, November 19, 2018, 07:46:22 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Brian Alvarez

 I had to back off from programming for a while but i am starting to gain speed again, remembering
how i did all the stuff. Seems like the work from another person, i dont recall being this organized.

Anyway, right now the supported language is getting richer, Oxygen is doing a nice job at compiling
64bit executables. The list of functions supported is growing every day, in the past days the following
functions got ready:

PARSE$()
STRREVERSE$()
LTRIM$()
RTRIM$()
TRIM$
UCASE$
LCASE$
HIBYT()
HIWRD()
HIINT() ' needs a fix
HIDWD()
LOBYT()
LOWRD()
LOINT() ' needs a fix
LODWD()
STR$() 
FORMAT$()
READ$()                   
DATACOUNT
DATA


A couple of the functions are a direct copy/paste of Charles functions, the rest had to be completely re-made
to be fully compatible. The hardest and biggest one was FORMAT$().


Brian Alvarez


The HIXXX and LOXXX functions also support the HI and LO syntax, for example:

HI(BYTE, 9999)

and

LO(BYTE, 9999)

Brian Alvarez

#2
REPLACE [ANY] occurence$ WITH replacement$ IN TargetString$

Completed.

Brian Alvarez

INSTR([Position&, ] SourceString$, [ANY] TargetString$)

Complete.

Brian Alvarez


Brian Alvarez



Brian Alvarez

REMAIN$(InputString$, [ANY] Target$)
RETAIN$(InputString$, [ANY] Target$)
REMOVE$(InputString$, [ANY] Target$)

Complete.

Brian Alvarez

CHR$(CharCode? [TO CharCode?] [, CharCode? [TO CharCode?]])

Complete.

Brian Alvarez

DIALOG NEW [PIXELS, | UNITS,] hParent&, Caption$, [x&], [y&], width&, height& [, [style&] [, [extendedstyle&]]] [,] TO hDlg&
DIALOG SHOW [MODAL | MODELESS] hDlg& [[,] CALL CallbackModule[()]] [TO lResult&]

Complete... almost.

Still need to do the UNITS part, for now it only works with PIXELS.
Also the automatic centering of the dialog when no X or Y coordinates are provided needs to be done.

Brian Alvarez

CONTROL SEND hDlg&, ctlID&, Message&, wParam&, lParam& [TO lResult&]

Complete.

Brian Alvarez

CONTROL ADD [CONTROL | CustomControl$], hParent&, ControlID&, Caption$, X&, Y&, Width&, Height&[, Style& [, extStyle&]] [CALL CallbackProc[()]]

Supported controls:

BUTTON
LABEL
TEXTBOX
COMBOBOX
CHECKBOX
OPTION


Working on the rest.

Brian Alvarez


Brian Alvarez


Brian Alvarez

DIM Arrayname([lBound& TO] lUpperBound& [, [lBound& TO] lUpperBound&]) [AS DATATYPE] [* Length&] [AT Address???]

Still need to do more tests, but it is mostly complete.

The Following DIM statements are valid:

DIM MyArray(-10 TO 10, 9, 5) AS STRING
DIM MyArray(-10 TO 10, 9, 5) AS STRING * 100
DIM MyArray(-10 TO 10, 9, 5) AS STRING AT Address???


The Following already work with these arrays:

LBOUND()
UBOUND()
STRPTR()

For Example:

Bound& = UBOUND(MyArray)
Bound& = UBOUND(MyArray())
Bound& = UBOUND(MyArray(1))

Address??? = STRPTR(Array(-10, 9, 11))


At the moment, these arrays have some known limitations:

  • They cannot be passed to external DLL's unless created with PluriBASIC.
  • They cannot be used with a different number of dimensions than initially dimensioned (artificial limit that will be removed soon, because in practice, they can)
  • They cannot have more than 3 dimensions (limit temporarily set because of a system glitch)
More limitations may apply, i will be discovering them as i test them.

REDIM and REDIM PRESERVE are also mostly ready, but still need a couple tweaks and testing.

Not bad for a "lazy BASIC programmer" that works full time ON SUNDAY without even getting paid, huh?