I know there's several folks out there who still like (and need) to code certain projects in the old QB64-SDL version for various reasons, so I thought I'd spend a little time and effort in 2020 and see about updating the old version so that it'd match the v1.3 capabilities as much as possible.
So far, this is my start on that journey:
https://github.com/SteveMcNeill/QB64-SDL.gitChanges/enhancements so far:
Minor coloring in the IDE, mainly to help highlight quotes, remarks, and metacommands.
Addition of all the various math commands which SDL was missing. _PI, all the extended trig functions, the degree to radian to gradian conversion functions (, and a few others.
A few bug fixes for various things already.
A whole new math evaluator to be used with CONST -- this one even surpasses the current capabilities of what's now in QB64-GL v1.3! (At least, until I test it several times, make certain it's not going to break anything, and swap it in as a replacement.) You can try it out and view it independently here:
https://www.qb64.org/forum/index.php?topic=1555.msg112989#msg112989The code has been cleaned up and formatted to be a lot more readable (especially the c code).
_LOADFONT has been modified so that it now behaves like the GL version for Windows. Instead of immediately tossing an error message if a path is left off the fontname, it now will take a moment to look in "C:\WINDOWS\FONTS\" to see if the font in question is located there for use.
OPEN file$ FOR BINARY now works with LINE INPUT, rather than tossing an error as it did. This has been brought up to QB64-GL standards.
The config file has now been made externally available and changeable, with more options available for IDE customization.
The antiqued help system has been removed, and all references to [abandoned, outdated and now likely malicious qb64 dot net website - don’t go there] should now be gone from QB64-SDL. Instead, we now correctly download and get updates from the official qb64.org wiki.
Swapped default behavior for the Run and Run (Detached) commands -- they're now Run and Run (Locked). Run will compile and run your program independent of the IDE. Run (Locked) will lock the IDE until it compiles and you finish running the program.
List of commands currently added are:
_D2R
_R2D
_D2G
_G2R
_R2D
_R2G
_PI
_ATAN2
_ASIN
_ACOS
_SINH
_COSH
_TANH
_ASINH
_ACOSH
_ATANH
_CEIL
_HYPOT
_ARCSEC
_ARCCSC
_ARCCOT
_SECH
_CSCH
_COTH
_SEC
_CSC
_COT
_INSTRREV
_STRCMP
_STRICMP
_AUTODISPLAY (function)
_WINDOWHANDLE
_WINDOWHASFOCUS
SELECT EVERYCASE
_CWD$
_STARTDIR$
_KEYCLEAR
_CAPSLOCK
_NUMLOCK
_SCROLLLOCK
_CAPSLOCK (function)
_NUMLOCK (function)
_SCROLLLOCK (function)
_SHL
_SHR
_SETBIT
_READBIT
_TOGGLEBIT
_RESETBIT
_TRIM$
_DESKTOPWIDTH
_DESKTOPHEIGHT
Other changes, commands, and enhancements to come as time and motivation allow. If there's a feature/command which you really would like to see, or need, in the SDL version, mention it to me and I'll try to add those requested capabilities first.
It's a start, but it still has a long ways to go... ;)
As I mentioned above (but I'll repeat the link here to save someone some scrolling), these changes can all be found and tracked here:
https://github.com/SteveMcNeill/QB64-SDL.git
And a list of commands which hasn't been implemented yet in the SDL version, for quick reference:
_ACCEPTFILEDROP
_ALLOWFULLSCREEN
_ASSERT
$ASSERTS
_BLINK
_BLINK (function)
_CLIPBOARDIMAGE (function) pastes an image from the clipboard into a new QB64 image in memory.
_CLIPBOARDIMAGE (statement) copies a valid QB64 image to the clipboard.
$COLOR
_COMMANDCOUNT
_CONNECTED
_CONSOLETITLE
_CONTINUE
_DEFLATE$
_DEPTHBUFFER
_DIR$
_DISPLAYORDER
_DROPPEDFILE
$ELSE
$ELSEIF
$END IF
$EXEICON
_FINISHDROP
$IF
_INCLERRORFILE$
_INCLERRORLINE
_INFLATE$
$LET
$NOPREFIX
OPTION _EXPLICIT
_PRINTSTRING (doesn't work in SCREEN 0)
$RESIZE
_RESIZE
_RESIZE (function)
_RESIZEHEIGHT
_RESIZEWIDTH
_SCREENEXISTS
_SCREENICON (function)
_SCREENICON (statement)
_TITLE$ (function)
_TOTALDROPPEDFILES (function)
$VERSIONINFO
$VIRTUALKEYBOARD
NOTE: This may not be the complete list of every command which is missing, or every syntax which isn't 100% compatible. This is a list of things which I'm certain won't work currently, and it's up for modification at any time as I implement these missing segments, or find other things which should work but don't, for us.