DRR's Dimension News:
- Saturday, June 30, 2007: DRR Software > DRRbasic
- SwiftBASIC v2.00:22
- I got rid of the BFar class flag by making the memflagFar flag for DLoad/DStore/DParameter/etc. The other class flags have been adjusted to make more room for the future BArray flag.
- I also changed how user-defined types are distinguished from built-in types, saving about 5KB of compile-time memory in QB.
- Monday, June 25, 2007: DRR Software > DRRbasic
- SwiftBASIC v2.00:21
- I found a memory-corrupting bug in the new Poke_Far subroutine (wrong segment register) used by the new version of ReDim. After this fix, the standard regression test (compiling itself) works again, minus the known bug with hexadecimal literals.
- Sunday, June 24, 2007: DRR Software > DRRbasic
- SwiftBASIC v2.00:20
- I rewrote the ReDim subroutine in BASIC. When I got to the string part, I instantly spotted a major bug where the routine would attempt to deallocate strings using the new dimension, not the existing dimension. This fixed the Array test program.
- The array descriptor flag for string arrays was not properly being set; this is fixed now.
- The following support procedures were added to the memory management code to facilitate the low-level memory access needed by the ReDim subroutine: New and Delete (wrappers for Mem_Alloc and Mem_Dealloc that use stack parameters instead of register parameters), DGroup (which just does a mov ax, ds instruction), Poke_Far (far memory version of Poke), and Poke_Word (sixteen-bit version of Poke).
- Sunday, March 4, 2007: DRR Software > DRRbasic
- SwiftBASIC v2.00:19
- Build 18 broke the ability of SwiftBASIC to compile itself since it added a dynamic array of variable-length strings.
- I made updates to the declare and store routines to handle dynamic string arrays. This includes forcing them to always be near (all other dynamic arrays are far).
- I also updated the ReDim subroutine to handle near arrays and string allocation/deallocation.
- Right now, it still doesn't work yet due to crashing bugs (bad memory deallocations) that I haven't found yet.
- Sunday, February 4, 2007: DRR Software > DRRbasic
- SwiftBASIC v2.00:18 synopsis written 2007-02-25
- Type identifiers are now two bytes everywhere. Previously, they were two bytes in most places but only one byte when they were stored in a string, usually as part as a set of procedure parameters.
- Symbols now have their parameters stored as strings in a separate array instead of as elements in the user-defined type. This allows them to be variable-length strings and occupy less space.
- There are a few places where parameters still need to be a part of the user-defined type, and for this a separate user-defined type has been created. There also are three new procedures (SymbolGet, SymbolSet, and SwapSymbols) to do the translations.
- Saturday, February 3, 2007: DRR Software > DRRbasic
- SwiftBASIC v2.00:17 synopsis written 2007-02-25
- I added support for inline assembly using the grave accent ("`") at the beginning of each line.
- Sunday, January 28, 2007: DRR Software > TextLand
- TextLand Version History v1.00:10
- The program now background-highlights more text when idle. I switched from using LockWindowUpdate on the form to WM_SETREDRAW on the form (using it on the control has the same problem). There was constant noticeable flicker, however (the same as when you type). I suppressed this by calling ValidateRect on the control. But it still flickers when you type.
- I also successfully subclassed the control to drop WM_PAINT messages when redrawing, but this turned out to be unnecessary and is now disabled.
- Saturday, January 27, 2007: DRR Software > TextLand
- TextLand Version History v1.00:09
- I fixed the bug where the desktop would flicker when the text was updated. This was accomplished by calling LockWindowUpdate with the hWnd of the form instead of the hWnd of the RichTextBox.
- The program is now called "TextLand" instead of the generic "Text Editor."
- Sunday, January 7, 2007: DRR Software > DRRbasic
- SwiftBASIC v2.00:16 synopsis written 2007-02-25
- I added an overload of the Division32 function that discards the remainder.
- The division operator now works for long integers (still does integer division only).
- Saturday, January 6, 2007: DRR Software > DRRbasic
- SwiftBASIC v2.00:15 synopsis written 2007-02-25, 2007-03-04
- I fixed a bug in the array element loading logic where the element index was neglected.
- SwiftBASIC can compile itself successfully again.
- Monday, January 1, 2007: DRR Software > DRRbasic
- SwiftBASIC v2.00:14 synopsis written 2007-02-25
- Now all arrays (dynamic and static) have array descriptors. This allows arrays to be parameters to procedures.
- The LBound and UBound functions are no longer hard-coded for special treatment in the Expression function.
- The ArrayDescriptor type is now available to code.
- Sunday, December 31, 2006: DRR Software > DRRbasic
- SwiftBASIC v2.00:13 synopsis written 2007-02-25
- The LBound and UBound functions now work on dynamic arrays. There are actual LBound and UBound functions added to the standard library to handle this.
- The far memory allocator now has basic error-handling.
- I fixed a bug where far memory allocations between 32,768 and 65,535 would always fail (due to a unsigned vs. signed integer problem). Allocations of 64KB or more are not supported yet.
- Saturday, December 30, 2006: DRR Software > DRRbasic
- SwiftBASIC v2.00:12 synopsis written 2007-02-25
- Dynamic arrays can now include user-defined types.
- Dynamic arrays are now kept in the far heap instead of DGROUP. This is implemented using the DOS interrupt 21 functions 48 and 49 to allocate and deallocate far memory.
- Tuesday, December 26, 2006: DRR Software > DRRbasic
- SwiftBASIC v2.00:11 synopsis written 2007-02-25
- The code for loading from and storing to elements in dynamic arrays was cleaned up/fixed.
- Monday, December 25, 2006: DRR Software > DRRbasic
- SwiftBASIC v2.00:10 synopsis written 2007-02-25
- Support for loading from and storing to elements in dynamic arrays was added.
- Sunday, December 24, 2006: DRR Software > DRRbasic
- SwiftBASIC v2.00:09 synopsis written 2007-02-25
- I began to add support for dynamic arrays. This includes the maintenance of an array descriptor for each array.
- ReDim now behaves differently than Dim in that it will make the array dynamic (instead of just putting it in far memory and keeping it static). There is an actual ReDim subroutine now to handle this.
- Wednesday, November 29, 2006: The Daily Ramble
- DD News : Upcoming Trip to Las Vegas
- I will be on a work trip in Las Vegas for most of next week (Dec. 3rd--8th) attending the Web Builder 2.0 Conference. I like the selection of topics, especially the focus on AJAX, which, by allowing you to download new data to a web page without refreshing it, allows you to do all sorts of neat real-time/dynamic interfaces. In particular, I intend to use this in more places on the company Intranet.
|
DRR's Dimension Sections:
|