Is there a road map of what might appear in future releases of xbasic? Even if it doesn't become the next everything to everyone kitchen sink language with hundreds upon hundreds of built-in functions, commands, and operators like PL/I, Ada, C++, Java, or C#, under the hood improvements to the bytecode VM could make huge differences beyond just avoiding redundant array bounds checks within FOR loops within FOR loops within FOR loops, such as automatic SIMD vectorization or multithreading of big array or matrix operations.
Last edit: Yet Another Troll 2019-05-30
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
The Array operators a(1:2,3) with a specified range are not implemented. Always a complete row must be used: a(:,3) works fine.
Modifyable lvalued, like MIDS(t$,2,3)=a$ are not implemented, also TIME$="12:04:06" does not work as you might expect (resulting in setting the systems time). However, an array with index range as a lvalue does already work.
System Variables
DATAPOINTER or _DATA which points to the memory location of the DATA statements. Maybe have RESTORE also take these adresses instead of labels.
Text console
FORMINPUT
Syntax: FORMINPUT a$[,n,prompt$,mask$]
Action: Enables the insertion of a character string during program
execution.
'n' = the maximum length of the character string.
a$ is the name of the string variable.
If a$ is not empty, the current value of a$ is
displayed, and can be edited.
the text promt$ will be displayed at the beginning of a line.
The n charackters of mask$ are used as a mask for the input:
X -- any charackter
9 -- only digits
If n is ommitted or n > len(prompt$), the last charackter of
prompt$ is used as a mask for positions > len(prompt$).
This function was present in the GFA-BASIC
SDL graphics:
Use TTF fonts (this is a complicated task...)
GPRINT routines should use the full VT100 emulation standard (including cursor).
16 possible windows, USEWINDOW, --> SETWINDOW num,mode
Improve SCREEN and ROOTWINDOW, SAVESCREEN/SAVEWINDOW
Sound
have a mixer command MIX (would be nice to have!)
produce event, when sound(file) is done
Bluetooth
FSFIRST$() and FSNEXT$() can be used to scan for bluetooth devices. (done)
with OPEN "UB" you can open a RFCOMM connection
with OPEN "UP" cou can open a L2CAP connection.
you can use SEND/RECEIVE/CLOSE on L2CAP connections.
you can use PRINT/INPUT/OUT/INP()/CLOSE on RFCOMM connections.
you can as well setup a server and open a listening socket with OPEN,
much the same as you would do it with normal internet connections.
encryption
The enhancements and new ideas concerning cryptography must be held separately from the master branch, because they can cause problems on US export limitations on sourceforge (I think)...
err=KEYGEN(typ%,pubkey$,privkey$)
Language translations
... well, maybe for the X11-Basic-Android IDE
👍
1
Last edit: Markus Hoffmann 2019-06-06
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Noooo! Half the fun of X11 (and RFO) Basic is teasing iPhone people about what can be done entirely within Android without having to resort to a 'real' computer. The Basic programming tools I've seen for iPhone/iPad so far appear to require an Apple desktop or laptop computer for doing the actual coding.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Is there a road map of what might appear in future releases of xbasic? Even if it doesn't become the next everything to everyone kitchen sink language with hundreds upon hundreds of built-in functions, commands, and operators like PL/I, Ada, C++, Java, or C#, under the hood improvements to the bytecode VM could make huge differences beyond just avoiding redundant array bounds checks within FOR loops within FOR loops within FOR loops, such as automatic SIMD vectorization or multithreading of big array or matrix operations.
Last edit: Yet Another Troll 2019-05-30
X11-Basic goes where Users and Developer want it to go. Its open source. Everybody can contribute.
Here are some ideas:
Bug fixes:
The Array operators a(1:2,3) with a specified range are not implemented. Always a complete row must be used: a(:,3) works fine.
Modifyable lvalued, like MIDS(t$,2,3)=a$ are not implemented, also TIME$="12:04:06" does not work as you might expect (resulting in setting the systems time). However, an array with index range as a lvalue does already work.
System Variables
DATAPOINTER or _DATA which points to the memory location of the DATA statements. Maybe have RESTORE also take these adresses instead of labels.
Text console
FORMINPUT
Syntax: FORMINPUT a$[,n,prompt$,mask$]
Action: Enables the insertion of a character string during program
execution.
'n' = the maximum length of the character string.
a$ is the name of the string variable.
If a$ is not empty, the current value of a$ is
displayed, and can be edited.
the text promt$ will be displayed at the beginning of a line.
The n charackters of mask$ are used as a mask for the input:
X -- any charackter
9 -- only digits
If n is ommitted or n > len(prompt$), the last charackter of
prompt$ is used as a mask for positions > len(prompt$).
This function was present in the GFA-BASIC
SDL graphics:
Sound
Bluetooth
FSFIRST$() and FSNEXT$() can be used to scan for bluetooth devices. (done)
with OPEN "UB" you can open a RFCOMM connection
with OPEN "UP" cou can open a L2CAP connection.
you can use SEND/RECEIVE/CLOSE on L2CAP connections.
you can use PRINT/INPUT/OUT/INP()/CLOSE on RFCOMM connections.
you can as well setup a server and open a listening socket with OPEN,
much the same as you would do it with normal internet connections.
encryption
The enhancements and new ideas concerning cryptography must be held separately from the master branch, because they can cause problems on US export limitations on sourceforge (I think)...
Language translations
... well, maybe for the X11-Basic-Android IDE
Last edit: Markus Hoffmann 2019-06-06
Also: I always wanted it beeing ported to the I-Phone...
Noooo! Half the fun of X11 (and RFO) Basic is teasing iPhone people about what can be done entirely within Android without having to resort to a 'real' computer. The Basic programming tools I've seen for iPhone/iPad so far appear to require an Apple desktop or laptop computer for doing the actual coding.
What about Smart Basic: https://itunes.apple.com/de/app/smart-basic-programming-language/id541447413?mt=8
Augh! Looks like I have some mea maxima culpas to write and crow to eat. Still, X11 BASIC for ALL the platforms would be very cool.