Keywords currently not supported by QB64
From QB64 Wiki
The keywords listed here are currently not supported in QB64 (although documented for Qbasic users). QB64 is meant to be compatible with QB 4.5 or lower versions. PDS(7.1) is NOT supported although some Keywords MAY be used in the future! They will not work or create errors.
- ALIAS(supported in DECLARE LIBRARY only)
- BYVAL(supported in DECLARE LIBRARY only)
- DECLARE (NOT required when using QB64)
- DECLARE (non-BASIC statement)
- DEF FN, EXIT DEF, END DEF
- ENVIRON (statement only)
- ERDEV, ERDEV$
- IOCTL, IOCTL$
- OPEN LPT, CON, KBRD, SCRN and other devices are NOT supported! LPRINT and OPEN COM ARE supported!
- ON PEN, PEN ON/OFF/STOP, PEN (function)
- ON PLAY(n), PLAY(n) ON/OFF/STOP. (PLAY music is supported! See notes below.)
- ON UEVENT
- TRON, TROFF
- WIDTH LPRINT combined statement is currently NOT supported
Keywords Not Supported in Linux or MAC OSX versions
Bearing in mind that the goal here is for cross-platform compatibility, the commands listed here should be seen as having a 'not yet implemented' status as they will be implemented in the future. These commands result in stub calls which do nothing.
Some OS Specific window/desktop calls:
Modular: QB64 has no limit on file size so BAS file modules can be combined.
Time & Date setting (These can both be read):
Known QB64 command issues:
- _BIT is not currently supported in User Defined TYPEs.
- BYVAL cannot be used in CALL ABSOLUTE or other references. Can be used with the QB64 DECLARE LIBRARY definition.
- COM port access with OUT or INP is not supported except through Port Access Libraries. OPEN COM IS SUPPORTED!
- COMMON block names using /name/ are not currently supported.
- ON TIMER(n) does not interrupt SLEEP.
- OPEN cannot open an LPT port or devices such as CONS, SCRN, KBRD, etc. OPEN COM IS supported.
- PLAY does not properly delay program progress yet and cannot be used for delays like Qbasic would. Use _DELAY if necessary. Now supports volume(V) and multiple simultaneous notes using comma separators!
- SHELL: CD command does not change directory path. Use CHDIR. "CD" using _HIDE will return current path when sent to a file.
- INTERRUPT (QB64 only supports INT 33h, functions 0 to 3)
- CALL ABSOLUTE (QB64 only has support for PUSH/POP/MOV/RET/INT 33h, functions 0 to 3)
- Port access ((QB64 only supports OUT &H3C7,&H3C8 and &H3C9 and INP &H3DA and &H60)
- No Multi-modular support(RUN, CHAIN and COMMON are implemented)
- No quick library(QLB) support. $INCLUDE text libraries using Qbasic and QB64 code are supported to re-use procedures.
- After a program is compiled, the $INCLUDE files do not have to be included with the program.
Known QB64 Issues