============================================================ Overview ======== AKATools 2.5 is the result of about four years of work with and improvement of LEMs for Clarion Professional Developer 2.1. In that time, there were three LEM packages containing multiple BIN files released under the AKA name: AKATools, AKAFonts, and AKA_IO. AKATools was originally an attempt to give Clarion programmers access to low-level hardware and software sub- systems for more control and more professional programs. It was, in many cases, functions which had been requested by Clarion programmers repeatedly, such as the ability to trap floppy disk errors and prevent Ctrl-Break from displaying the runtime-halt window. With access to DOS internals, DOS functions, video hardware, and more, AKATools 2.2 was being used by power-hungry Clarion programmers all over the world. AKAFonts was released after many of us had access to commercial utility software that made use of text-mode fonts in their programs. After seeing what could be done by changing the patterns of characters on the screen, AKAFonts was created to give Clarion programmers the capability of displaying different characters, symbols, logos, and totally different font sets in Clarion's text-mode programs. Some of the uses were inventive, some creative, and some even surprised me. AKA_IO was a package of LEMs which contained some of the same functions and procedures in AKATools 2.2, but also introduced functions which gave Clarion programmers access to some Clarion internals. Of heavy interest to most who acquired AKA_IO were those functions that would allow Clarion programs to set the video timeout limit (V=??) and video timeout counter without regard to command line parameters. Of course, turning off Clarion's Num-Lock setting (/L) and beeps (B=NO) was also available with AKA_IO. AKATools 2.5 is a compilation of all three of these packages, but also contains twice as many functions and procedures as those three packages originally did, combined. Great improvements were made to the AKAFonts system, and access is given to many, many more Clarion internals for even more programmer control over Clarion's runtime. Much of the power you will find here and utilize in your programs can be found nowhere else. ============================================================ Module List =========== Following are summaries of the included LEMs and a partial description of their capabilities. AKAClars.BIN Module ------------------- AKAClars is a LEM which provides access to numerous Clarion internals; that is, values, variables, and flags which are set, changed, and used by Clarion's runtime and your programs which affect its operation. A few of these are already readable but not writeable in your programs. Some are writeable but not readable in your programs. Some were previously not accessible at all, or only through the use of command line switches. All of the command line parameters used by Clarion in your programs are accessible inside your programs with this LEM (except /C for Ctrl-Break, which is handled in AKATraps). Access to Clarion's ERRORCODE(), ERROR() string, KEYCODE(), alerted keys, current help files and windows, active SETHUE() values, and more is provided. You even have the ability to perform RUN() without closing files, perform immediate exits to DOS with definable ERRORLEVELs, disable Clarion's video output, and more. AKACnvrt.BIN Module ------------------- AKACnvrt contains two sets of two functions. One set of functions perform conversions to and from hexadecimal and numeric (LONG). The other set performs conversions to and from binary and numeric (LONG). AKADates.BIN Module ------------------- AKADates contains a number of date related functions and procedures. Along with functions to return day and month strings for passed date values, you can test for leap year, last day of month, or weekday. You can even get the current day of the year, return the date of the next desired day of the week, or get the number of days in the month. AKADimmr.BIN Module ------------------- AKADimmr contains procedures which will remove the intensity and/or blink attribute from a prescribed area of the screen and then restore it for you. Many programs and programmers use this to draw attention to newly opened screens or to simulate de-activating certain areas of the screen. AKADirec.BIN Module ------------------- AKADirec contains procedures and functions which process disk directories. Besides those that create, change, and remove directories themselves, you have the capability of reading the entries in directories. Additionally, specific procedures are provided for creating, changing, and deleting volume labels on disks. AKADrive.BIN Module ------------------- AKADrive contains procedures and functions specific to disks and drives. Besides functions which return the amount of space used and available, more detailed information about sectors, clusters, and media type is available. Functions to determine if a drive is removable or remote (network) are available. Other functions which return total drive count, a list of available drives, and the number of actual floppy drives installed are among the remaining functions in the LEM. AKAEnvir.BIN Module ------------------- AKAEnvir contains functions to return environment related information, such as environment variables, the full path of the currently executing program, and information about the command line which executed the program. Functions return the command line parameter count, the full command line, or individual command line parameters. AKAEquip.BIN Module ------------------- AKAEquip contains mostly hardware specific functions detailing what is installed on the computer upon which the program is running. Besides the amount of DOS and extended memory reported by DOS, the number of parallel and serial ports, the CPU type, the existence of a math chip, and the type of each floppy drive can be checked. AKAFiles.BIN Module ------------------- AKAFiles contains functions and procedures which perform file and filename related functions. Besides those which will delete or rename files, you can get or set file attributes, check a file's existence, or create a uniquely named file for temporary file work. There are also functions which will return the full pathname of a passed filename, as well as the drive, directory, name, and extension portions of it. AKAFonts.BIN Module ------------------- AKAFonts contains functions and procedures which provide control over EGA and VGA text-mode font capabilities. In addition to the reading and writing of character patterns, it provides for loading from or saving to font files. Additionally, loading multiple fonts with the ability of activating up to two fonts at once, one for normal and one for bright attributes, is now available. It was also used by Clarion to design fonts for CDD 3 and its logo screen. AKAFStat.BIN Module ------------------- AKAFStat contains functions and procedures which allow Clarion programs to check the status of any file to see if it is currently opened, shared, or neither. With this capability, Clarion programmers have the ability of opening or sharing files only when needed, as they can check the status of files to see if OPEN or SHARE is necessary. Less files open results in more free memory and quicker program execution. AKAInter.BIN Module ------------------- AKAInter contains functions and procedures to provide direct access to DOS and BIOS interrupts. This provides a generic method for Clarion programmers to access DOS and BIOS functions in ways that either were not addressed in AKATools or are specific to hardware or software being used in conjunction with their software. Support for getting the address of Clarion variables are provided for interrupts which require addresses of variables and/or buffers. AKAKeybd.BIN Module ------------------- AKAKeybd contains functions and procedures which access the keyboard hardware, BIOS, and keyboard buffer. Besides being able to check the status of shift and lock keys, procedures which set the lock keys are provided. Check, count, stuff, and clear the keyboard buffer. Set the repeat rate and typeamatic delay, and determine whether an enhanced keyboard is installed. AKAPrint.BIN Module ------------------- AKAPrint contains functions and procedures which access printer hardware and BIOS. Check for the status of an LPT port, swap LPT ports, or simulate the PrtSc key. Additionally, support is provided for DOS's PRINT command, with the ability to submit, cancel, and read the PRINT queue. AKASound.BIN Module ------------------- AKASound contains procedures which provide unique sound capabilities to Clarion programmers. Specific procedures to provide certain predefined sound effects at the desired pitch and speed, the ability to turn the speaker on and off under program control provides even more limitless sound options. AKAStrng.BIN Module ------------------- AKAStrng contains functions and procedures which provide string testing and manipulation, intended to provide support for strings larger than 255 bytes. These procedures support MEMO and GROUP strings of up to 64k in size, unlike Clarion string functions which only return 255 byte strings. Besides testing for upper and lower, procedures to convert strings to all upper or lower, proper name, or proper string are provided. Encrypt strings with given passwords, get a string's length or clipped length. Reverse a string, right or left justify it, or stuff one string into another at a given position. Also included is a SOUNDEX function to provide for "sounds like" conversion. AKASystm.BIN Module ------------------- AKASystm contains functions and procedures detailing some system characteristics. Besides simulating warm- and cold- boot, check or set DOS's VERIFY flag, check for the actual BOOT drive of the system, and see if SHARE is installed. It can also lock up the current program requiring a reboot. AKATimes.BIN Module ------------------- AKATimes contains functions to convert DOS times to Clarion times (LONG) and back. Also included is a procedure to delay for a given number of timer-ticks (18.2/second). AKATraps.BIN Module ------------------- AKATraps contains functions and procedures to control and trap the following: disk errors, printer errors, Ctrl-Break, Ctrl-Alt-Del, and Print-Screen. These give the ability to trap or free at will, check for their occurrence while being trapped, and check to see if trapping is active. AKAVideo.BIN Module ------------------- AKAVideo contains functions and procedures which access and control video hardware and BIOS. Besides functions which return the current video mode and adapter type, check the cursor size and position. Provided are procedures which enable bright background instead of blinking and procedures which read and change EGA/VGA palette and DAC (digital-to- analog conversion) registers to provide astounding color selection and video effects. Included are procedures specifically designed to fade to black and return. AKAAnsiT.BIN Module ------------------- AKAAnsiT contains procedures which allow for partial ANSI emulation for video output. It is intended for communication software, such as that used to access BBS's, and provides for the top and bottom display rows to be selectable. This allows for status lines and the like to be displayed on screen without disrupting the ANSI output. It was originally written for Clarion Software to use in the CONNECT for Clarionet, Clarion's BBS access software. Of course, with Clarion's move to CompuServe, it was never implemented in a distributed version. AKAEGA.COM & AKAVGA.COM ----------------------- AKAEGA.COM and AKAVGA.COM are utility programs which provide for switching between EGA and VGA modes on VGA systems. These utilities allow AKAFonts developers to view EGA-size fonts on their VGA displays in the way that EGA users would see them. AKAEGA switches to EGA mode (640x350) and AKAVGA switches back to VGA mode (640x400). AKAFEdit.EXE & AKAFEdit.HLP --------------------------- AKAFEdit is the AKAFonts font editor. This program provides for editing, loading, saving, and manipulating AKAFonts font files. PAL_DACS.CLA ------------ Source for a program which will show you the different color combinations on VGA systems by manipulating the palette and DAC registers (see Appendix C). Simply compile and run it. *.AKF ----- Miscellaneous AKAFonts font files for your own use. ============================================================ Function List ============= AKAClars.BIN Module ------------------- ClaBeep Get Clarion's beep switch status (B=NO?) ClaBeepOn Set Clarion's beep on ClaBeepOff Set Clarion's beep off (B=NO) ClaLocks Get Clarion's locks switch status (/L?) ClaLocksOn Set Clarion's locks set on ClaLocksOff Set Clarion's locks set off (/L) ClaBlkMax Get Clarion's video timeout val (V=??) ClaSetBlkMax Set Clarion's video timeout (V=??) ClaBlkCnt Get Clarion's counter toward video timeout ClaSetBlkCnt Set Clarion's counter toward video timeout ClaSetKeyCod Set Clarion's KEYCODE() value ClaAlert Get Clarion's alert key list ClaSetAlert Set Clarion's alert key list ClaHlpFile Get Clarion's active help file ClaGlobHlp Get Clarion's global help window ClaCurHlp Get Clarion's current help window ClaVidSeg Get Clarion's video segment ClaSetVidSeg Set Clarion's video segment ClaVidPrt Get Clarion's video port ClaSetVidPrt Set Clarion's video port ClaVidOff Get Clarion's video offset ClaSetVidOff Set Clarion's video offset ClaVersion Get Clarion's version string ClaSetErrCod Set Clarion's ERRORCODE() ClaSetErrMsg Set Clarion's ERROR() for ERRORCODE() = 999 ClaPalette Get Clarion's PALETTE string ClaBreak Get Clarion's break switch flag (/C?) ClaRunCl Get Clarion's RUNCLOSE flag ClaRunClOn Set Clarion's RUNCLOSE on ClaRunClOff Set Clarion's RUNCLOSE off ClaSethue Get Clarion's SETHUE Active flag ClaEnh Get Clarion's enhanced keyboard switch (/E?) ClaBrkFlgOn Set Clarion's break flag on (Break pressed) ClaVidMode Get Clarion's video mode ClaSetVidMod Set Clarion's video mode ClaPSPSeg Get PSP segment (according to Clarion) ClaEnvSeg Get Environment seg (according to Clarion) ClaGoDos Exit to DOS with ERRORLEVEL ClaDosVerMaj DOS version, major, (according to Clarion) ClaDosVerMin DOS version, minor, (according to Clarion) ClaLogo Get Clarion's logo screen active flag ClaLogoOn Set Clarion's logo screen active flag on ClaLogoOff Set Clarion's logo screen active flag off ClaNoVid Get Clarion's novideo flag ClaNoVidOn Set Clarion's novideo flag on ClaNoVidOff Set Clarion's novideo flag off ClaForeHue Get Foreground attribute of current SETHUE() ClaBackHue Get Background attribute of current SETHUE() ClaBorder Get Border attribute of current SETHUE() ClaDesqView Get Desqview flag (according to Clarion) ClaAddrStr Get address of STRING ClaAddrShort Get address of SHORT ClaAddrLong Get address of LONG ClaAddrReal Get address of REAL AKACnvrt.BIN Module ------------------- CvtNumToHex Get hexadecimal string for passed number CvtHexToNum Get numeric value of hexadecimal string CvtNumToBin Get binary string for passed number CvtBinToNum Get numeric value of passed binary string AKADates.BIN Module ------------------- DatMonthStr Get month string for passed date DatDayStr Get day string for passed date DatDayNum Get day of week (0=Sun,1=Mon...6=Sat) DatWeekDay Get whether date passed is a weekday DatIsLeapYr Get whether passed date is in leap year DatMonthDays Get number of days in month for passed date DatLastDay Get whether date is last day of month DatDayInYear Get day number in year for passed date DatDosToLong Get Clarion date from DOS date DatLongToDos Get DOS date from Clarion date DatNextDay Get next day-of-week for passed date/target AKADimmr.BIN Module ------------------- DimDimScr Remove/store intensity attributes DimUnDimScr Restore intensity attributes DimDimScrB Remove/store blink/intensity attributes DimUnDimScrB Restore blink/intensity attributes AKADirec.BIN Module ------------------- DirCreate Creates the passed directory DirRemove Removes the passed directory DirChange Changes to the passed disk/directory DirCurrent Get current directory for passed drive DirLabel Get volume label for passed drive DirDelLabel Delete volume label for passed drive DirSetLabel Set volume label for passed drive DirGetFirst begin reading directory DirGetNext continue reading directory AKADrive.BIN Module ------------------- DrvCapacity Get capacity for passed drive DrvFree Get free space for passed drive DrvClustDrv Get clusters per drive for passed drive DrvSectClust Get sectors per cluster for passed drive DrvBytesSect Get bytes per sector for passed drive DrvRemote Get whether drive is remote (network?) DrvRemovable Get whether drive has removable media DrvChar Get currently active drive letter DrvFloppies Get number of floppy drives DrvLastDrive Get highest available drive letter DrvList Get list of available logical drives DrvCount Get number of logical drives DrvPhantom Get drive letter assigned to single floppy DrvSetPhantm Set drive letter assigned to single floppy DrvSetDrive Set active drive DrvMediaType Get disk type for passed drive AKAEnvir.BIN Module ------------------- EnvCmdParm Get single command line parameter EnvCmdCount Get count of command line parameters EnvCmdLine Get full command line EnvProgPath Get path of executing program EnvEnvVar Get value of passed environment var AKAEquip.BIN MOdule ------------------- EquCPUType Get CPU type EquParallels Get number of parallel ports EquSerials Get number of serial ports EquCoProc Get whether math coprocessor installed EquDOSMemory Get amount of DOS memory EquEXTMemory Get amount of extended memory EquFloppy1 Get type of first floppy drive EquFloppy2 Get type of second floppy drive AKAFiles.BIN Module ------------------- FilDelete Delete a file from disk FilRename Rename a file or move file on same disk FilUnique Create uniquely named file and return name FilGetAttr Get attributes of passed file FilSetAttr Set attributes of passed file FilExists Get whether passed file exists FilFullName Get full name of passed file FilDrive Get drive of passed file FilDirectory Get directory of passed file FilName Get name of passed file FilExtension Get extension of passed file AKAFonts.BIN Module ------------------- FntMethod Return font-setting method (direct/interrupt) FntSetMethod Set font setting method (direct/interrupt) FntROMChar Restore character from ROM FntROMBlock Restore entire font from ROM FntChar Get character's bit pattern FntSetChar Set character's bit patterns FntShiftDown Shift font down (hide it) FntShiftUp Shift font up (reshow it) FntLoadFile Load a font file into font FntSaveFile Save a font into font file FntBlockN Returns font set used for normal attributes FntBlockB Returns font set used for bright attributes FntSetBlockN Activate a font set for normal attributes FntSetBlockB Activate a font set for bright attributes FntSize Get scan lines per character FntSetSize Set character size to EGA or VGA FntClrBlock Clear entire font set FntCopyBlock Copy one font set to another AKAFStat.BIN Module ------------------- FStOn Enable file status checking FStOff Disable file status checking FStOpen Get number of files open while checking FStUsed Get actual count of used handles FStEntry Get filename entry for passed handle FStStatus Get open mode for passed filename AKAInter.BIN Module ------------------- IntInterrupt Perform interrupt IntAddrStr Get address of STRING IntAddrShort Get address of SHORT IntAddrLong Get address of LONG IntAddrReal Get address of REAL IntSegOfAddr Get segment part of address IntOffOfAddr Get offset part of address AKAKeybd.BIN Module ------------------- KbdPutKeys Stuff string into keyboard buffer KbdPutXKeys Stuff extended keystrokes into key buffer KbdClearBuff Clear the keyboard buffer KbdBuffCount Get number of keystrokes in buffer KbdBuffSize Get size of keyboard buffer KbdEnhanced Get whether an enhanced keyboard is installed KbdSetSpeed Set keyboard repeat rate and delay KbdFastSpeed Set keyboard repeat/delay to fastest KbdNormSpeed Set keyboard repeat/delay to "normal" KbdAltKey Get whether either Alt key pressed KbdLAltKey Get whether Left Alt key pressed KbdRAltKey Get whether Right Alt key pressed KbdCtlKey Get whether either Ctrl key pressed KbdLCtlKey Get whether Left Ctrl key pressed KbdRCtlKey Get whether Right Ctrl key pressed KbdShftKey Get whether either Shift key pressed KbdLShftKey Get whether Left Shift key pressed KbdRShftKey Get whether Right Shift key pressed KbdCapKey Get whether Caps-Lock key pressed KbdInsKey Get whether Insert key pressed KbdNumKey Get whether Num-Lock key pressed KbdScrKey Get whether Scroll-Lock key pressed KbdCapLoc Get whether Caps-Lock locked KbdNumLoc Get whether Num-Lock locked KbdScrLoc Get whether Scroll-Lock locked KbdInsLoc Get whether Insert locked KbdSetNumLoc Set/clear Num-Lock KbdSetCapLoc Set/clear Caps-Lock KbdSetScrLoc Set/clear Scroll-Lock AKAPrint.BIN Module ------------------- PrtLPTReady Get whether passed LPT port is ready PrtLPTSwap Swap two LPT ports PrtInstalled Get whether PRINT is installed PrtPurge Purge PRINT queue of all files PrtGetFirst Get first file in PRINT queue PrtGetNext Get next file in PRINT queue PrtThawQueue Unfreeze queue frozen by reading it PrtErrors Get PRINT error count PrtCancel Cancel a file from PRINT queue PrtSubmit Submit a file to PRINT queue PrtPrtSc Emulate pressing PrtSc key PrtEPrtSc Enhanced print-screen to desired port AKASound.BIN Module ------------------- SndBounce Bounce between two frequencies SndClimb Slide whistle sound (up) SndSlide Slide whistle sound (down) SndRise Slide up, increasing rise rate SndDrop Slide down, increasing drop rate SndStart Start a sound, but don't turn it off SndStop Stop any speaker sound AKAStrng.BIN Module ------------------- StrLen Get length of string (memo/group/etc) StrClipLen Get length of string if clipped StrCrypter En/De-crypts string with password StrUpper Convert all chars to uppercase StrLower Convert all chars to lowercase StrProper1st Makes propername of entire string StrProperAll Wakes propername of every word in string StrBitStrip Strips high bit from passed string StrIsAlpha Are all characters in parameter alphabetic? StrIsNumeric Are all characters numeric? "0123456789+-." StrIsDigit Are all characters digits? "0123456789" StrIsAlphDig Are all characters alpha or digits? StrStuffStr Stuff string into target at position StrChrCount Get count of char in string StrReverse Reverse the order of a string StrLeft Left justifies a string StrRight Right justifies a string StrSoundex Get soundex equivalent of string AKASystm.BIN Module ------------------- SysWarmBoot Simulate Ctrl-Alt-Del SysColdBoot Simulate power-off and power-on SysWarmLock Lock up system, requiring Ctrl-Alt-Del SysVerify Get status of DOS's verify flag SysSetVerify Set DOS's verify flag SysBootDrive Get the boot drive (DOS 4+) SysShareInst Get whether SHARE is installed AKATimes.BIN Module ------------------- TimDosToLong Get Clarion time from DOS time TimLongToDos Get DOS time from Clarion time TimDelayTick Delay for prescribed ticks (18.2/second) AKATraps.BIN Module ------------------- TrpDskErrOn Enable trapping of critical disk errors TrpDskErrOff Disable trapping of critical disk errors TrpDskErrClr Clears disk critical errors TrpDskErrHit Get critical disk error data TrpDskErr Get whether disk errors are being trapped TrpPrtErrOn Enable trapping of critical print errs TrpPrtErrOff Disable trapping of critical print errs TrpPrtErrClr Clears print critical errors TrpPrtErrHit Get critical print error data TrpPrtErr Get whether print errors are being trapped TrpPrtScOn Enable trapping of print-screen TrpPrtScOff Disable trapping of print-screen TrpPrtScClr Clears print-screen hit flag TrpPrtScHit Get whether print-screen key was hit TrpPrtSc Get whether print-screen key is being trapped TrpBreakOn Enable trapping of ctrl-break TrpBreakOff Disable trapping of ctrl-break TrpBreakClr Clears ctrl-break hit flag TrpBreakHit Get whether ctrl-break was hit TrpBreak Get whether ctrl-break is being trapped TrpBootOn Enable trapping of ctrl-alt-del TrpBootOff Disable trapping of ctrl-alt-del TrpBootClr Clears ctrl-alt-del hit flag TrpBootHit Get whether ctrl-alt-del was hit TrpBoot Get whether ctrl-alt-del is being trapped AKAVideo.BIN Module ------------------- VidBlink Set any video to blinking (default) VidBright Set any video to bright background VidIsMDA Get whether MDA adapter installed (mda =1) VidIsCGA Get whether CGA adapter installed (cga =2) VidIsEGA Get whether EGA adapter installed (ega =3) VidIsMCGA Get whether MCGA adapter installed (mcga=4) VidIsVGA Get whether VGA adapter installed (vga =5) VidAdapter Get video adapter type ----------------^ VidMode Get current video mode VidReset Resets video to "normal" status VidCursorRow Get current cursor row VidCursorCol Get current cursor column VidCursorTop Get current cursor top scan line VidCursorBot Get current cursor bottom scan line VidPalGetOne Get a single palette register value VidPalSetOne Set a single palette register value VidPalGetAll Get all palette registers values VidPalSetAll Set all palette registers values VidPalReset Reset palette registers to default VidDACGetOne Get a single DAC register values VidDACSetOne Set a single DAC register values VidFadeDown Fade down the video to black VidFadeUp Fade up the video from black to original AKAAnsiT.BIN Module ------------------- Ansi_Init Initialize Ansi_Type for ANSI emulation Ansi_Type Type character with ANSI emulation ============================================================ Order Information ================= US Distributor: Cook Database Design (800) 282-2302 (502) 863-1957 Introductory Price: $99.95 Upgrade Price: $49.95 (from any other AKA product) Also, any purchase of AKATools 2.50 will automatically entitle you to a free update to AKATools 3.00 for Clarion Database Developer 3. AKATools 3.00 should follow the final release of CDD 3 by no more than a few weeks. ============================================================