Hmm, well, there's another part to my tutorial, getting the XMS memory to work.
I had to make a wrapper for the Extended/Expanded memory management routines, that enclose the sliding window movement functions, in DEF FN so that the sliding window, to XMS, gets slid around, being called out of the MAIN of a QBasic program, then to a SUB, then back to the MAIN, then on to another part of the program again.
I can try to summarize how it theoretically works, I think that the memory management when you get in to large *.LIB files for Qbasic, it has some sort of glitch, that messes up your sliding window for XMS memory usage.
In my programs, besides a MAIN full of code, and a bunch of SUB's and FUNCTION's, I could only afford two 64K blocks of data, for SCREEN 13 pixel pushing, but I wanted and needed more.
Using my trick, which boomerangs the XMS sliding window INTerrupt call into the MAIN part of the QB source, into a SUB to alter the XMS sliding window of available 64K memory, then back to the MAIN, then finally back again to whatever calling point, say in a SUB, then QBasic was happy.
You see a bunch of demos which call ASM to use XMS and stuff, but for some reason, after a few minutes, the data degrades, and everything falls apart.
It's because the XMS ASM routines, are fighting with Qbasic's own internal memory management.
My huge project, the last major project I ever undertook was my sprite editor, which I'm going to hammer out any redundant files, either that or include a rudimentary set of the redundant files to get the program started, but the ONLY way it worked, was because I had extra memory to store a total of 4 pages of SCREEN 13 data, in the XMS memory bubble.
I display the 4 SCREEN 13 data as dithered 640x480x16 color images, in four quadrants, making a 2x2 large image, that can be captured from, and you can rip sprites out of.
There is a whole bevy of support programs, that import and export various file types, and the editor even intelligently handles any type of *.PAL file it gets, based on the file's filesize. It knows, based on 3 possible file sizes, the scheme of how to recover the *.PAL data.
I want to get all that stuff cleaned up, and published, and it ALSO, uses a DOS QBasic extender, QBEXTEND, which took care of some of the GUI stuff, that ALSO removed some code from my project.
I remember from the book, you could derive stuff from his DOS extender TSR, and not worry about reselling, it was sorta a copyleft situation.
It's a small TSR you load before QBASIC runs, and then a small ASM file which gets loaded to memory when the program runs, that hooks to the DOS extender.
I dunno if you've played or seen the "Qbasic Games and More" book, or any of it's demos, but I studied that book like it was a bible handed down from the Pope, for my entire High School life.
Because that sprite editor is so powerful, that's kinda why I'm pushing the whole XMS under WinXP with Qbasic angle, because I gotta get my code released, published, but not without a bunch of cleanup first.
Banana phone! We need more lemon pledge. * exploding fist of iced tea! * I see your psycho cat and counter with a duck that has a broken leg, in a cast.