Artwork by Don

HotBasic™ News Continued 2005

Dec 30 Latest build of v4.6j.

Dec 25 HotLinux.zip (Downloads > Compiler > HotBasic Core) updated with source and executables that run on Linux kernel 2.4.2-80 and above; the previous files ran only on an older kernel.

Dec 12 HotBasic 4.6j adds (1) setting BITMAP properties (.Width, .Height, .Planes and .BitCount) when a bitmap is loaded from file or resource and .Xsize and .Ysize default to .Width and .Height respectively, (2) full support of DOUBLE arguments in DECLARE statements with LIB and STD keywords (3) address of a quoted string with the @ (alias VARPTR) function and (4) "As STRING" arguments in STD functions.

Dec 1 HotBasic 4.6h fixes the "crash on program exit" issue when a call to a STD function is done within its own module -- say, the main program.

Nov 27 HotBasic 4.6g adds (1) ability to create and/or manipulate form objects in $APPTYPE OBJ, so a greater scope of code in GUI programs can be packaged as linkable .obj files, (2) DECLARE of STD functions "As STRING" and (3) with Custom Object EXTENDS of a non-FORM object, hbHnd has its pointer for use in Custom Object SUB/FUNCTION code.

Nov 17 HotBasic 4.6d upgrades EXTERNAL statement so 32-bit, non-floating values or pointers (LONG, etc) can be shared as globals among .exe or .dll and linked .obj or .lib modules.

Nov 15 HotBasic 4.6c adds use of "As STRING" in DECLARE of LIB functions known to return a string pointer in CPU register eax. Manual 3.8 download updated.

Nov 11 HotBasic 4.6a (1) adds INT64 Data Type (convenient to store FILETIME data) with new keyword DEFINT64, (2) adds DATE Methods .LoadInt64 and .SaveInt64 so DATE info can be moved to/from INT64 variables to calculate time differences, etc, (3) adds DATETIME Methods .LoadFromDate and .SaveToDate and (4) changes BITMAP Object .BitCount default to 24, which enables more third-party graphics programs to load bitmaps saved to file with SaveBMP.inc.

Nov 6 HotBasic 4.5e fixes a "post-4.4" bug re use of string constructor syntax in TYPE/OBJECT and introduces IIF$ to replace IIF as the string function. HotIDE 2.6g already lists IIF$ under Keywords > String Functions.

Nov 3 HotBasic 4.5d adds to DATE Object properties .Locale, .Flags (rw), .Error (r only) and string functions .DateFormat(arg) and .TimeFormat(arg) where arg is a Windows format string.

Oct 31 HotBasic 4.5c adds full native support for the DATETIME object.

Oct 30 HotBasic 4.5b upgrades SOCKET so .Open(port) works to receive UDP packets with .Type=2 (datagram).

Oct 29 HotBasic 4.5a adds (1) DATE and VARIANT Objects as qualified types, (2) string functions BYREF$() as alias for VARPTR$() and VARIANTREF$() to read variant by address, (3) VARIANTREF() numeric function to read variant by address, and (4) new VARTYPE() result code 3 for variant. HotIDE 2.6g updated with these new keywords.

Oct 17 HotBasic 4.4i adds nested FORM or SPLASH objects in CREATE blocks to make them children of the main form, full symmetry using regular or extended FORM objects as parent or child in nested CREATE blocks, and further optimizes the compiler.

Oct 7 HotBasic 4.4f optimized for faster compiling and better error checking.

Oct 2 4.4e fixes CALLFUNC which was incomplete in the 4.4 compiler series.

Sep 30 HotBasic 4.4d fixes three "direct .obj write" issues: crash on RESTORE, error on certain TYPE member lookups and CPU register names used as user symbols.

MILESTONE: Sep 26 HotBasic 4.4b introduces "direct .obj write"; ml.exe is not used. Also, (1) Nested $IFDEF/$IFNDEF directives up to 7 levels. (2) CASE in SELECT CASE optimized when CASE has a comma-delimited list of options. (3) Fixed several issues related to window position. (4) Optimized coding of conditional expressions.

Sep 8 HotBasic 4.3h corrects a bug occuring only when constructor syntax is used for a UDT STRING item and the default string length is greater than or equal to the item length.

Sep 4 HotBasic 4.3g now allows use of MEMORY properties and methods for array objects. E.g., A.position = 12, where A is an array. New HotStuff download is a generic compiler tester.

Sep 1 HotBasic 4.3f adds "Expected &H" and many other new ERROR messages to facilitate debugging. Previously, bad syntax like "&20" or many undefined source variables (typing errors?) would produce an object module error; missing "as {type}" in DECLARE FUNCTION had no error message, etc.

Aug 28 HotBasic 4.3c adds DECLARE statement count to compiler output, fixes an arcane issue re local vars and reserved names and optimizes IIF() to execute only the code based on its condition expression result.

Aug 27 HotBasic 4.3b further optimizes the compiler, allows REDIM of any ARRAY in a SUB/FUNCTION, creates a new FONT handle only if there is no handle or a FONT property has been modified... and ... fixes an issue with .Left and .Top for secondary forms with WS_CHILD=0. HotIDE 2.6e released with display improvements.

Aug 21 HotBasic 4.2j fixs STRING and MEMORY stream .Position update with .Write() method within a stream (when stream length is not increased) and problem if more than about 10000 .Color assignments are done in $APPTYPE GUI and adds COMBOXBOX, LISTBOX and FILELISTBOX .LoadFromFile and .SaveToFile methods.

Aug 14 HotBasic 4.2h adds ERROR message if argument for @, VARPTR() is not found and new $DUPARGERR ON/OFF directive to disallow/allow SUB and FUNCTION argument name duplicates in DECLARE statements (OFF is default).

Aug 10 In v4.2g, hotbasic.lib updated to correct read of FORM object .top when the object is a FORM or SPLASH as child of another FORM.

July 28 HotBasic 4.2f makes $IFDEF, $IFNDEF, $ELSE and $ENDIF "unconditional" directives; other directives included in an unconditional directive block are conditionally implemented. Now you can conditionally $DEFINE symbols, $INCLUDE files, etc. A "duplicate definition" issue for $APPTYPE OBJ only, which arose from the recent addition of the hbDC internal variable, fixed.

July 13 HotBasic 4.2d fixes an arcane issue re use of DWORD -- all 32 bits code positive number, and a minor "length issue" re changing SYSTRAY .Tip from a longer to a shorter string.

July 1 HotBasic 4.2c adds an optional encryption key to STRING, LIST, MEMORY and FILE Object .Encrypt and .Decrypt methods.

June 30 HotBasic 4.2b adds SYSTRAY Object for GUI programs with .DblClick, .Enabled, .Icon and .Tip properties, .Restore and .SendTo methods and .OnRightClick event; adds FORM .Foreground method to make a form topmost; and further stream-lines coding of your apps, especially where Drawing methods are used.

June 16 HotBasic 4.1n adds $XPSTYLE Directive (same as $RESOURCE 1 as "hotbasic.manifest") and in SOCKET, .RecvFrom and .SendTo for custom IP packets and fixes .CheckSum. Usage shown in raw_sock.bas.

June 14 HotBasic 4.1m adds ERROR message for attempt to change index variable in a fully optimized FOR NEXT loop, gives more accurate count of user symbols, and fixes read of MENU.Caption. HotIDE 2.6 and HotWin 3.0 now include HotBasic.manifest for XP style on XP boxes.

June 10 HotBasic 4.1k adds $RESOURCE type .manifest for XP display style and upgrades $APPTYPE DLL to enable DECLARE of API's called by the DLL procedures. Manual "Directives" will be updated with details.

June 5 HotBasic 4.1j fixes .GetPeerName in SOCKET and updates SOCKET section of Manual. GypsyProxy 1.3 compiled with HotBasic is now on-line!

June 2 HotBasic 4.1i adds POPUPMENU (alias for MAINMENU) as a qualified type.

May 23 HotBasic 4.1h (1) upgrades COMMANDCOUNT to conform with COMMAND$() upgrade -- to properly reflect quoted items with embedded spaces; (2) adds .DLG files for DIALOG resources; (3) new "Resource Not Found" run-time error; (4) new POPUP(menu.handle) statement for GUI $APPTYPE; (5) hbDC internal variable for easy access to device context handle.

May 23 HotBasic 4.1f upgrades COMMAND$() to get quoted items with embedded spaces (e.g., c:\Program Files). HotFind 2.0 and HotIDE 2.5b incorporate this feature. v4.1g adds a simple auto-size and auto-position feature for BUTTON, CHECKBOX, EDIT, LABEL and RADIOBUTTON.

May 17 HotBasic 4.1e adds $EQUALPREC (ON/OFF) directive and -P switch (same as $EQUALPREC ON) to evaluate with equal operator precedence (*, /, \) and (+, -).

May 15 HotBasic .lib files date-stamped May 14, 2004, updated in all versions with fix of .WriteNum issue for MEMORY/STRING objects. HotXLS 1.2 now includes xlsWRITE() function so applications can load, read, write and save .xls files for fast, efficient data processing.

May 8 HotBasic 4.1d further upgrades expression evaluation, introduces support for nested operator precedence over-rides (prec.bas) and fixes a filter issue in DIR$ (hotdir.bas).

May 5 v4.1c updates the external symbol list; for some instructions in $APPTYPE OBJ or DLL, this update is required for linking.

Apr 30 HotBasic 4.1b improves numeric expression evaluation per several problems reported; in CREATE blocks, assigns .Parent first so position assignments work as expected for SPLASH; and fixes a buffer clearing issue in OPENDIALOG.

Apr 18 d versions expand optimization of INC/DEC with optional amount to all non-float numeric types including byte, word and short.

Apr 9 HotBasic 4.0a adds a RW .Tag property to all FORM objects, introduces DIM of UDT arrays (new arrayudt.bas) similar to STRING arrays, and fixes an issue with BITMAP .Xsize and .Ysize using FORM .Draw.

Apr 2 In HotBasic 4.0, INC and DEC statements now take TYPE/OBJECT members as the first operand, any numeric expression as the optional second operand, and optimize speed for non-floating operands. In TYPE/OBJECT's, @ or VARPTR now provide offset/address of member items. E.g., for TYPE x, @x.item1 provides the offset (Trial version) or address (Penthouse version).

Mar 24 In recent days a defective file was posted for the Trial version. If "hot11 hello" does not compile hello.bas, please download again. Sorry for inconvenience.

Mar 21 v3.9g fixes FORM .Menu statement, which causes a FORM to use the same menu-bar as another FORM (e.g., f2.Menu = f1.Menu) and fixes an editing error in 3.9c re DECLARE ... LIB.

Mar 14 HotBasic 3.9b introduces optional STD (standard call) syntax useful in writing .obj and .dll modules to supplement present syntax options. hotlink.bas and hotobj.bas (.obj) and hotcall.bas and hotdll.bas (.dll) illustrate the new syntax in HotThing 1.2.

Mar 10 v3.9a add -I and -R switches for secondary searches for $INCLUDE and $RESOURCE files respectively.

Mar 9 HotBasic 3.9 upgrades MENU functions with RW properties .Caption, .Checked, .CheckedBmp, .Default, .Enabled, .Grayed, .Hilite, .Parent, and .UncheckedBmp. Read only properties are .Handle and .ID. Now .Separator is used only in its own MENUITEM. HotWin 2.8 shows usage with DIM. HotIDE 2.5a updates keywords. Please see updated hotmenu.txt.

Mar 7 v3.8j allows comments after the "_" line-continued character, adds more error checking for missing code for called procedures, adds a new error on attempt to concatenate strings in a boolean expression and for OPENDIALOG, returns a .FileName string of length .BufferSize if both OFN_EXPLORER and OFN_ALLOWMULTISELECT flags are used.

Feb 26 With v3.8i, Registered and Trial (CONSOLE only) downloads have same version designation. INPUT prompts can now be string expressions. FILE IO upgraded, including file-to-file support for .CopyFrom and use of a variable as .ReadNum() argument.

Feb 23 v3.8h adds read-only .ID property for MENU; v3.8g fixes a PRINTER font issue. HotBasic "f" versions upgrade .ExtractRes to work with .wav file resources.

Feb 6 HotBasic "e" versions add more frequent "code block" error checking (missing END IF, etc) -- at each SUB, FUNCTION, END SUB, END FUNCTION and END statement.

Feb 4 HotBasic 1.7d and 3.8d add new symbols (df, tmp1) to Rename List for ml.exe and revise DIR$. Previously, entries with no attribute bits set would not be listed. Now, if the bit mask is "0", all entries are listed.

Feb 1 HotBasic 1.7c and 3.8c add file vs directory discrimination to the FILEEXISTS and DIREXISTS functions.

Jan 31 HotBasic 3.8b adds .ItemIndex function returning line number for RICHEDIT and RICHEDIT2.

MILESTONE: Jan 27 Linux programs with HotBasic source code tested and posted. Please try them -- DOWNLOAD > HotBasic > gethot.html. Thanks!

Jan 24 HotBasic 3.8a adds EXTERNAL statement for symbols defined in the module or another module and local Custom Object methods.

Jan 22 HotBasic 1.7 and 3.7h expand OBJECT/TYPE constructor syntax to include negative and hex numbers; add ERROR message if a symbol is defined twice. Note, however, a symbol may be reused as SUB/FUNCTION arguments in DECLARE statements. v3.7g adds error message for LIBRARYINST if library is not found.

Jan 19 HotBasic 1.67 and 3.7e set FILE .Handle to zero if FILE is closed so that .Handle can be used as status indicator. 3.7e makes GAUGE .ForeColor a read/write property.

Jan 16 HotBasic 3.7d makes FORM event addresses (.OnClick, etc) readable; fixes several FORM and TRACKBAR .Color issues and DIM of IMAGE arrays; adds an optional qualified type argument to the WINDOW() statement and functions; adds IMAGE and BUTTON .LoadFromFile for .bmp files. The developing Linux version can now produce ELF files from Basic source code.

Jan 4 HotIDE 2.4f adds instant line scroll among three different positions in source code with HotBasic > Line Tab (F11). HotInclude 2.2 updated with new WinRect and WinRectInit statements. HotBasic Trial v1.66 fixes a problem with FILE since the recent FILE array upgrade. Whew! Maintaining two versions can be troublesome!

Jan 3: HotBasic 1.65 and 3.7 add run-time error messages: "Library not found" (ErrLevel 1); "Function not found" (ErrLevel 2); "Insufficient memory" (ErrLevel 3); and "Array index error" (ErrLevel 4). Exit codes 3 and 4 apply to v1.65. v3.7 adds FORM object .Focus numeric function (true if object currently has focus).

MILESTONE: Jan 1 First HotBasic program produced on W32, converted to Linux ELF format with PE2ELF.exe, and run successfully on a Linux system. Please see hotlinux.zip link on gethot.html download page.
HotBasic 1.64 and 3.6e include various improvements and extend error checking for assembler reserved keywords to labels and SUB/FUNCTION names.
Maj. Hog: "Atomic clocks need confirmation. The first HotBasic elf-produced Linux application now definitively confirms the year is indeed 2005."

Copyright © 2003-2005 James J Keene PhD
HotBasic™ is a trademark of James J Keene
Original Publication: May 29, 2003

Please use Back on your browser to return to HotBasic.