ADVBAS 99, 04/02/88: (The Last One) THIS IS THE FINAL RELEASE OF ADVBAS. Yes, I know you've heard it before, but this time it's for real. As of August 1, 1988, I will no longer be accepting contributions for ADVBAS, and the source code will no longer be available. So, if you'd like the source code, you'd better act before then. I've decided to discontinue all of my shareware projects for a number of reasons, including the fact that a shareware author needs a fixed address, and I'm planning on doing some roaming about. It's been good... my thanks to all who have supported my work, whether monetarily or otherwise. The comm routines (CARRIER, DTR and SETCOMM) have been made compatible with QuickBASIC 4.0. SETCOMM is no longer so picky about the compiler switches used, too. ADVBAS 4.0, 12/15/87: (QB4 compatibility) The good folks at HCSI have allowed me to "bend" my contract with them, so I could continue to support ADVBAS users by making ADVBAS compatible with QuickBASIC 4.0. This version of ADVBAS comes with a version of the library (ADVBAS.QLB) for the QB4 environment. All routines have been updated to work with QuickBASIC 4.0, with a few exceptions (see WARNING.TXT for more information). See also PROBAS.DOC for information on the new version of the commercial library, ProBas 2.0, which is much more powerful than ADVBAS. ADVBAS 3.42, 10/24/87: Minor release-- bug fixes and minor updates. ADVBAS 3.41, 09/09/87: Minor release-- bug fixes and minor updates. ADVBAS 3.4, 05/01/87: Two utilities/demos have been added. These operate on programs in interpreted BASIC format-- every line with a line number. COMBLINE will combine lines for maximum density. XREF will provide a cross reference of variables or line numbers. ADVBAS 3.3, 04/14/87: (ADVBAS Frozen, commercial ProBas introduced) A new modem status routine, CARRIER, lets you check the Carrier Detect. To ease those data-entry woes, STRIPBLANKS allows you to strip the blanks (and control characters) off either the left or right side of a string, or both. A bug in MAKEWINDOW dealing with shadowed windows has been fixed. A cross-reference listing of where ADVBAS routines are located inside source and object files is now included (ADVBAS.XRF). The manual, ADVBAS.DOC, has been reformatted to allow binding. See PROBAS.DOC for info on the new library. ADVBAS 3.2, 03/16/87: You can check for the existence of a subdirectory with SUBEXIST (drive spec allowed). COPYFILE will let you copy a file faster than the system COPY command, and without having to do a SHELL. A drive status function, DISKSTAT, has been provided. This allows you to find out such information as the number of bytes in a cluster, the amount of free space left on a drive, total space available on a drive, etc. Routines to convert the time or date from numbers to a string and vice versa have been added (DATEN2S, DATES2N, TIMEN2S, and TIMES2N). For AT machines only, GETEXTM will return the amount of extended memory in kilobytes. BLOCKMOVE will let you move a block of memory from one location to another. DATASEG will retrieve the value of the current data segment. ADVBAS 3.1, 03/07/87: Time/date compression has been added. DATE2INT and INT2DATE allow you to convert a date to a single integer and back. TIME2INT and INT2TIME do the same with the time. Given a month number, MONTH will return the name of the month. SPEAKER will enable you to toggle sound effects on and off, without changing the timing of the affected routines. TINSTR lets you search a string for a character of a given type, rather than a specific character. You can search for any combination of Alphabetic, Numeric, Symbolic, Control, Graphics, or Blank characters, or their opposites. The DTR function lets you turn the communications signal DTR on or off. ADVBAS 3.0, 02/04/87: (Second Anniversary Edition) Many of the existing ADVBAS routines have been further optimized. MMCHECK will now return the number of mouse buttons available as well as a mouse status check. GETKBD and SETKBD allow you to get/set the states of the keyboard toggles: insert, caps lock, num lock, and scroll lock. GETCRT tells you whether the display is color or monochrome. CLRKBD clears any pending characters from the keyboard buffer. DELAY18TH and DELAY allow you to delay for a given time interval, independent of machine type. CALCATTR calculates the color/attribute for routines such as XQPRINT. Unlike the BASIC formula it replaces, it allows use of the "blink" attribute. SHIFTL and SHIFTR let you perform binary shifts on integers. It is now possible to have low-res graphics on any monitor, using the SETPOINT, RESETPOINT and TESTPOINT routines. These give you 80 column by 50 row graphics in text mode. Finally, MAKEWINDOW has been converted from BASIC to a normal ADVBAS routine (in assembly language) for extra speed and convenience. ADVBAS 2.9, 01/12/87: Mouse control has been added. You can see if a mouse exists, get or set the location of the mouse cursor, check the status of the mouse buttons in two different ways, and set a legal range for the mouse cursor, using the MM series of functions (MMBUTTON, MMCHECK, MMCLICK, MMGETLOC, MMSETLOC, MMSETRANGE). Expanded memory checking has been added-- you can see if it exists, and if so, how much memory there is and how much of it is free (GETLIMM). Finally, a BASIC subprogram to generate pop-up windows (MAKEWINDOW) has been included. This is based on Dave Evers' fine BASWIND routine, with assorted improvements. The screen routines QPRINT, XQPRINT, SCRSAVE, SCRREST, GETSCREEN and PUTSCREEN have been modified to automatically use high-speed mode with monochrome adapters. Their speed with color adapters has also been increased. Object code for all routines has been included, along with information on automating library production. This will allow y'all to produce custom libraries using either the standard LIB format or the QuickBASIC 2.0 BUILDLIB format. This has been added for your convenience-- please do not abuse it! You may create custom libraries for your own personal use. You may -not- distribute them! ADVBAS 2.8, 12/28/86: Assorted file control functions have been added. MLOAD is a BLOAD command for compilers which don't include it. EXIST lets you test for the existence of a given file. A set of new file I/O functions allow low-level control of file access. Among other advantages, these functions allow file handling in subprograms (since error codes are returned at the time of error, rather than triggering an error trap) and support file-level networking/multitasking control (whereas BASIC only supports record-level control). These functions include FCREATE and FOPEN to open files, FREAD and FWRITE to access them, FSETEND and FSETREC to move the file pointer, and FCLOSE to close the file. ADVBAS 2.7, 10/18/86: A new version of the library has been added which is fully compatible with the QuickBASIC v2.0 programming environment. Much of ADVBAS has been overhauled to make it faster and more compact. New functions: EQUIPMENT will give you information about the hardware you're running on (memory and number of various kinds of ports). PRINTSCREEN duplicates the function of pressing Shift-PrtSc on the keyboard. GETSCREEN and PUTSCREEN are new, comprehensive screen save/restore functions. GETSCREEN allows you to save any part of the screen to an array, using any screen page, with either flicker-free or fast access methods. PUTSCREEN is the corresponding restore-screen function. It allows you to put a saved area onto any part of the screen, any screen page, with either flicker-free or fast access. DOSINKEY lets you get keypresses from the DOS standard input device. Combined with DMPRINT, this allows you to use such DOS features as I/O redirection and CTTY with compiled BASIC programs. ADVBAS 2.6, 9/19/86: XQPRINTD will allow you to print to the screen using direct screen writes. This is the fastest possible print method, but will produce snow on some color displays if you are printing to the active display page. SCRRESTP and SCRSAVEP will allow you to save and restore any screen page to/from an array. SCRRESTPD and SCRSAVEPD will do the same using direct screen reads/writes (see note at XQPRINTD). SETCOMM will allow you to reset the parameters on an open communi- cations "file" without having to close the file (and thus drop the DTR signal) first. In addition, it lets you set the baud rate to speeds beyond the normal limitation of 9600 bps. ADVBAS 2.5, 8/04/86: DMPRINT now allows screen display directly through MS-DOS output. This differs from MPRINT, which uses some BIOS routines. It is a less sophisticated (and hence faster) routine than MPRINT. XQPRINT and RECOLOR screen flicker (on color monitors) has been wiped out, thanks to Steven Gibson. This and the other direct-access screen routines have been modified so as to cause less interference with interrupts. The manual, ADVBAS.DOC, has been reformatted so it will print correctly on most printers. ADVBAS 2.4, 7/21/86: Functions have been added to convert numbers from one base to another (DEC2ANY, ANY2DEC), and incidentally to allow use of unsigned integers in your programs, with some twiddling. Space compression has been added via BSQ, BUSQLEN and BUSQ, which allow you to compress text information. Space savings range from a reliable 16% for normal text, to up around 50% for files with many blanks (such as structured C, Pascal, or assembly files). ADVBAS 2.3, 06/28/86: You can now set a file's time/date stamp using SETFTD. A host of functions which allow you access to disk directories has been added, giving the ability to search for a file using wildcards, or to duplicate the DOS directory command: FINDFIRSTF, FINDNEXTF, GETNAMEF, GETATTRF, GETDATEF, GETTIMEF, GETSIZEF. The manual has been revised to list functions in alphabetical order, allowing the elimination of the index. This file, ADVBAS.NEW, is now listed in reverse chronological order, so the newest things come first instead of at the end. ADVBAS 2.2, 06/20/86: Character insert/delete support for windows was added via MINSCHR and MDELCHR. This can also be used to simulate left and right scrolling of a window. The day of the week can now be gotten using WEEKDAY. The most interesting new function is SOUNDEX, which returns the soundex code of a word. Soundex codes allow you to identify similar sounding words, so that you could do a phone directory search that matches on the sound of a name rather than the precise spelling, for instance. ADVBAS 2.1, 06/14/86: Window handling was added. The MPRINT and MPRINTC routines can now be set to conform to screen windows, via the MWINDOW function. ADVBAS 2.0, 03/28/86: Four functions were added. KEYPRESS tells you if a key is waiting in the keyboard input buffer. RECOLOR quickly resets all characters on the screen with a given color/attribute to a new color/attribute (text mode only). SETMATI sets the first "x" elements of an integer array to a given value. ADDMATI adds or subtracts a given value from the first "x" elements of an integer array. The documentation now includes notes on how PC-compatible a machine needs to be before any given routine will work on it. ADVBAS 1.9, 12/12/85: XLATE will now work with a string as well as single characters. MPRINT will work with a string, replacing the old MPRINTC which could only print out a single character at a time. The functions STRIPRANGE, REVERSE, LROTATE, RROTATE, EXTRACT, READBITF and WRITEBITF have been added. The documentation now includes a reference listing of the ADVBAS functions. ADVBAS 1.8: Not released to the public. ADVBAS 1.7, 11/28/85: The functions DELCHR and INSCHR have been added.