Dec 102017
Xlnt l;ib for ASIC v4.x and v5.0 - See FILE_ID.DIZ.

Full Description of File

ASILIB v1.2 - for the ASIC v4.01 and
5.0 compiler - A library that includes
routines for: Advanced graphics for
SVGA VESA, etc., SuperFAST disk I/O,
easy keyboard & direct screen I/O,
EMS/XMS access, system info, pull down
menu's, popup windows, and much more!
A MUST for ASIC programmers!
Shareware by Doug Herr - $25

File ASILIB12.ZIP from The Programmer’s Corner in
Category Recently Uploaded Files
Xlnt l;ib for ASIC v4.x and v5.0 – See FILE_ID.DIZ.
File Name File Size Zip Size Zip Type
ASI4LIB.LIB 138857 62535 deflated
ASI5LIB.LIB 138857 62552 deflated
ASILIB.DOC 23124 6335 deflated
DATA.DOC 18028 3682 deflated
DISK.DOC 22522 5632 deflated
EMSXMS.DOC 16694 3087 deflated
FILE_ID.DIZ 370 274 deflated
GRAPHICS.DOC 64871 15544 deflated
INPUT.DOC 11124 2887 deflated
MULTIWIN.DOC 24310 5181 deflated
SYSTEM.DOC 19281 4971 deflated
TEXT.DOC 28324 5812 deflated
TPCREAD.ME 199 165 deflated

Download File ASILIB12.ZIP Here

Contents of the ASILIB.DOC file

ASILIB version 1.2 programmer's toolkit
for 80/20 software's ASIC compiler

ASILIB Copyright (C) 1994, 1995 Douglas Herr all rights reserved


ASILIB is a library of subroutines which greatly extend the capabilities
of the ASIC compiler. All ASILIB subroutines were written in Assembly


80/20 Software's ASIC compiler is a simple, reliable compiler that
produces fast, compact compiled programs. However, ASIC's built-in
capabilities are quite limited compared with many other programming
languages. Fortunately for us, ASIC has provision for linking external
subroutines to the main code in order to provide additional capabilities.

Do you want to use EMS or XMS memory? Do you want more graphics modes?
Do you want fast, reliable file I/O, or want to use more than 3 files
at a time? This is where ASILIB comes in. ASILIB's subroutines provide
many functions and screen modes which are impossible with ASIC alone, as
well as many other handy functions.


Each ASILIB routine has been tested extensively, but since I cannot
foresee every possible use or abuse of ASILIB, I cannot be held
responsible for any damages resulting from its use.


ASILIB is user-supported shareware, NOT public domain software. The
ASILIB files you have received are the complete ASILIB package,
fully linkable with your ASIC object modules to create stand-alone
.EXE programs. These files may be distributed freely in un-altered
form, but if you use ASILIB in your ASIC programs, you are expected to

The advantages of registering are many:

Registered users receive the latest version available when they register
and may upgrade at any time for the paltry fee of $10.00.

Registered users will receive updated ASILIB libraries

Your registration fee supports my efforts, and encourages me to continue
development of ASILIB.

No royalties are required and registration costs only $25, and you will
have confidence that you are using a version of ASILIB which has not been
altered by others.

Register by sending $25 to:

Douglas R. Herr
P. O. Box 207
Sacramento, CA 95812
U. S. A.

telephone (916) 721-8762, voice only
CompuServe 71247,3542

Please specify which size disk you prefer. Complete assembly-language
source code for ASILIB is an additional $25.

Any questions or problems should be sent to me at the above address.
Please include a stamped, self-addressed envelope if you are not a
registered user, or for fastest response, send a message on CompuServe.

ASILIB is a rapidly evolving library, so it is likely that by the time
you register there will be several additional routines or refinements
to existing routines available.


ASILIB is designed for use with 80/20 Software's ASIC compiler
version 4.0 or greater. To use ASILIB, you must use ASIC's "object
file output" feature. This also requires that you have a copy of
Microsoft's LINK.EXE or a similar linker. Many ASILIB subroutines
also require ASIC's Extended math option.

From the ASIC development enviornment, select "Advanced options" from
the Compile menu, and choose:

1) Obj output file
2) liBrary names ...
if you are using ASIC 4, enter ASI4LIB
if you are using ASIC 5, enter ASI5LIB
3) Link.exe path ...
enter the name of the directory where LINK.EXE is located.

If you prefer to use the DOS command line, compile and link your ASIC
source code using ASICC: (lower case= you supply the correct name)

(ASIC version 4)
ASICC yoursrc[.asi] B/OBJ [E] LIB=ASI4LIB LNK=C:\linkpath
(ASIC version 5)
ASICC yoursrc[.asi] B/OBJ [E] LIB=ASI5LIB LNK=C:\linkpath

ASILIB's documentation has been divided into several files in order to
keep each one down to a managable size. The .DOC files are:

ASILIB.DOC this file
INPUT.DOC keyboard input subroutines
DATA.DOC data manipulation subroutines
DISK.DOC disk and file management subroutines
EMSXMS.DOC Expanded and Extended Memory subroutines
GRAPHICS.DOC subroutines for graphics
MULTIWIN.DOC multiple pop-up windows (text mode)
SYSTEM.DOC subroutines which determine PC equipment or status
TEXT.DOC video input and output subroutines (text modes)


Documentation for ASILIB's subroutines can be found in the following .DOC

Name description .DOC file

AllocEMS allocate an expanded memory block EMSXMS.DOC
AllocDOS dynamic memory allocation from DOS memory area SYSTEM.DOC
AllocXMS allocate an extended memory block EMSXMS.DOC
ANSIColor determines color attribute used by ANSI.SYS TEXT.DOC
BitBlockBytes graphics screen manipulation GRAPHICS.DOC
BitPlaneBytes calculates bytes required for BitPlaneSave GRAPHICS.DOC
BLINKOFF disable blinking attributes TEXT.DOC
BLINKON enable blinking attributes TEXT.DOC
Border changes color of screen border TEXT.DOC
BufferDim re-dimension graphics memory buffer GRAPHICS.DOC
CircleAspect DrawCircle options GRAPHICS.DOC
ClearEOL clears a row from cursor to edge of screen TEXT.DOC
ClearKey clears the keyboard 'type ahead' buffer INPUT.DOC
Color16 calculate color value for changing palette GRAPHICS.DOC
Color256 calculate color value for changing palette GRAPHICS.DOC
ColorAttr calculate color attibute TEXT.DOC
CopyMem copies a block of memory DATA.DOC
CursorColor enables InColor color palette, sets cursor color TEXT.DOC
CursorOFF makes text cursor invisible TEXT.DOC
CursorON places cursor on text screen TEXT.DOC
DayName returns ASCII day name given day number 1-7 DATA.DOC
DiskWP traps "drive not ready" errors DISK.DOC
DotBAK renames existing file as backup (.BAK) file DISK.DOC
DrawBox draws a box on a graphics screen GRAPHICS.DOC
DrawCircle draws a circle on graphics screen GRAPHICS.DOC
DrawLine draws a line on graphics screen GRAPHICS.DOC
DriveSpace determine free and total space on a disk DISK.DOC
EMGet copies data from EMS memory block to an array EMSXMS.DOC
EMMove move data within an EMS memory block EMSXMS.DOC
EMSSpace determines available EMS memory EMSXMS.DOC
EMPut copies data to an EMS memory block EMSXMS.DOC
EXEName returns full drive and path name of program SYSTEM.DOC
FExist see if a file or subdirectory exists DISK.DOC
FCopy copy a file to another disk or directory DISK.DOC
FClose close a file opened by FCreate or FOpen DISK.DOC
FCreate creates a new file for fast binary I/O DISK.DOC
FFlush flushes ASILIB and DOS file buffer DISK.DOC
FGet buffered input from a file opened by FOpen DISK.DOC
FGetCHR fast 1-byte input from a file opened by FOpen DISK.DOC
FGetPos get file position for file opened by FOpen DISK.DOC
FGetSTR fast string input from a file opened by FOpen DISK.DOC
FCount counts the number of files matching a template DISK.DOC

FillArea fills an irregular region on graphics screen GRAPHICS.DOC
FillBox fills a box on graphics screen GRAPHICS.DOC
FillEOL fills from cursor position to edge of screen TEXT.DOC
FillPattern establish fill pattern GRAPHICS.DOC
FLoad quickly loads a disk file into far memory DISK.DOC
FLoadEMS quickly loads a disk file into EMS memory EMSXMS.DOC
FLoadXMS quickly loads a disk file into XMS memory EMSXMS.DOC
Floppies determine number of floppy drives installed SYSTEM.DOC
FloppyType determine type of floppy drive installed SYSTEM.DOC
FOpen opens an existing file for fast input or output DISK.DOC
FPut fast output to a file opened by FOpen or FCreate DISK.DOC
FPutCHR fast byte output to file opened by FOpen/FCreate DISK.DOC
FPutCRLF CR+LF output to file opened by FOpen or FCreate DISK.DOC
FPutSTR string output to file opened by FOpen or FCreate DISK.DOC
FreeEMS releases expanded memory block EMSXMS.DOC
FreeDOS releases memory block allocated by ASILIB DATA.DOC
FreeXMS releases extended memory block EMSXMS.DOC
FSaveEMS save EMS memory block as a disk file EMSXMS.DOC
FSaveXMS save XMS memory block as a disk file EMSXMS.DOC
FSeek set the file pointer position for a file DISK.DOC
FSize determine size of a file opened by ASILIB DISK.DOC
GBaseSeg direct ASILIB graphics to an alternate buffer GRAPHICS.DOC
GCopy copies one page of Graphics memory to another GRAPHICS.DOC
GCursor puts a text cursor on graphics screen GRAPHICS.DOC
Get2 get 2 bytes from far memory DATA.DOC
Get4 get 4 bytes from far memory DATA.DOC
GetBitBlock save part of graphics screen GRAPHICS.DOC
GetBitPlane save part of a plane of graphics screen GRAPHICS.DOC
GetBorder determine border color on CGA, EGA, VGA systems TEXT.DOC
GetCMD returns case-sensetive command line parameter SYSTEM.DOC
GetCPU determine processor installed SYSTEM.DOC
GetCRT determine video system SYSTEM.DOC
GetPOS determine current cursor position TEXT.DOC
GClear clear portion of Graphics screen GRAPHICS.DOC
GetDOSVer determine DOS version installed SYSTEM.DOC
GetDot determine pixel status on graphics screen GRAPHICS.DOC
GetKey returns first key pressed INPUT.DOC
GetScreen copies screen to restore later TEXT.DOC
GetScreenSize determines the dimensions of the screen TEXT.DOC
GetView determine current graphics viewport GRAPHICS.DOC
GLoad copies a graphics image file to video memory GRAPHICS.DOC
GLoadEMS copies a graphics image from EMS to screen GRAPHICS.DOC
GLoadXMS copies a graphics image from XMS to screen GRAPHICS.DOC
GPage combines UseGPage and ShowGPage subroutines GRAPHICS.DOC

GPrint print text on a graphics screen GRAPHICS.DOC
GPrintDOWN text on graphics screen from top to bottom GRAPHICS.DOC
GPrintUP text on graphics screen from bottom to top GRAPHICS.DOC
GPrintX expanded text on graphics screen GRAPHICS.DOC
GPrint2X expanded text on graphics screen GRAPHICS.DOC
GPrintDOWNX expanded text on graphics screen GRAPHICS.DOC
GPrintDOWN2X expanded text on graphics screen GRAPHICS.DOC
GPrintUPX expanded text on graphics screen GRAPHICS.DOC
GPrintUP2X expanded text on graphics screen GRAPHICS.DOC
GraphColor set color attribute used by ASILIB graphics GRAPHICS.DOC
GSave saves a graphics screen as a file GRAPHICS.DOC
GSaveEMS saves a graphics screen in EMS memory GRAPHICS.DOC
GUCursor puts underscore cursor on graphics screen GRAPHICS.DOC
HGraph establish Hercules graphics mode GRAPHICS.DOC
HGraph0 same as HGraph, but clears only page 0 GRAPHICS.DOC
HideMouse make mouse cursor invisible INPUT.DOC
HRam8043 switch to RamFont 43-row mode TEXT.DOC
HRam9025 switch to RamFont 90-column mode TEXT.DOC
HRam9043 switch to RamFont 90-column, 43-row mode TEXT.DOC
HScroll quick horizontal scroll of text screen TEXT.DOC
HText return to text mode from Hercules graphics GRAPHICS.DOC
I2TOSTR convert a 2-byte integer to a string DATA.DOC
I4TOSTR convert a 4-byte integer to a string DATA.DOC
IsATT determines if ATT-type display installed SYSTEM.DOC
IsEMS determines if EMS is installed EMSXMS.DOC
IsEVGA determines if EGA or VGA is installed SYSTEM.DOC
IsMouse determine if mouse is available SYSTEM.DOC
IsSEVGA determines if a Super EGA/VGA is installed SYSTEM.DOC
IsXMS determines if XMS driver is installed EMSXMS.DOC
JaNein German language version of YesNo INPUT.DOC
KBDType determine type of keyboard installed SYSTEM.DOC
KeyIfWaiting returns key if one is waiting in keyboard buffer INPUT.DOC
KeyOrButton returns first keyboard or mouse input INPUT.DOC
KeyWaiting determines if a key has been pressed INPUT.DOC
LinePattern DrawLine and DrawBox option GRAPHICS.DOC
LoadPCX read, decode and display a .PCX-format file GRAPHICS.DOC
MathChip find math coprocessor SYSTEM.DOC
ModeColor switch to color text mode TEXT.DOC
ModeMono switch to monochrome monitor TEXT.DOC
Mode43 switch to EGA 43-row mode (VGA 50-row mode) TEXT.DOC
MonthName returns ASCII month name given month number DATA.DOC
MouseLimit limit range of mouse motion SYSTEM.DOC
MousePos position mouse cursor on the screen SYSTEM.DOC
MouseStatus returns mouse position and button status INPUT.DOC
MovePOS move current cursor position TEXT.DOC

MWBorder Establish border for pop-up window MULTIWIN.DOC
MWCenter centers a string in selected pop-up window MULTIWIN.DOC
MWClear clears a pop-up window MULTIWIN.DOC
MWClose releases a pop-up window's memory buffer MULTIWIN.DOC
MWCloseall close all open windows, releasing buffers MULTIWIN.DOC
MWDefault change default status of new pop-up windows MULTIWIN.DOC
MWDisplay display open windows on the screen MULTIWIN.DOC
MWFill Fills a pop-up window MULTIWIN.DOC
MWHide hide selected window MULTIWIN.DOC
MWHideAll hide all open windows MULTIWIN.DOC
MWInit initializes multi-window system MULTIWIN.DOC
MWNoBorder clears the border flag for a window MULTIWIN.DOC
MWNoShadow Disables "shadow" effect for selected window MULTIWIN.DOC
MWOpen Opens a pop-up window MULTIWIN.DOC
MWPrint print an ASCIIZ string in an open window MULTIWIN.DOC
MWPrintCE Prints a string in window & clears to edge MULTIWIN.DOC
MWSelect Determine window visible at screen coordinate MULTIWIN.DOC
MWShadow Enables "shadow" effect for selected window MULTIWIN.DOC
MWTitle Center a string at the top of an open window MULTIWIN.DOC
MWTop displays selected window on top of all others MULTIWIN.DOC
MWUnHide Allow selected window to be displayed MULTIWIN.DOC
MWUnHideAll unhide all open windows MULTIWIN.DOC
OuiNon French language version of YesNo INPUT.DOC
Paint quick complete color change, entire screen TEXT.DOC
Palette16 change color palette in E/VGA 16-color modes GRAPHICS.DOC
Palette256 change color palette in 256-color modes GRAPHICS.DOC
Path returns the path in the program's enviornment SYSTEM.DOC
PCXInfo get important information about a .PCX file GRAPHICS.DOC
PickF select one from a list of files INPUT.DOC
PickStr select one from a list of strings INPUT.DOC
Put2 put 2 bytes in a far memory block DATA.DOC
Put4 put 4 bytes in a far memory block DATA.DOC
PutBitBlock restore graphics screen saved earlier GRAPHICS.DOC
PutBitPlane restore graphics plane saved earlier GRAPHICS.DOC
PutDot turn Graphics pixel on or off GRAPHICS.DOC
PutScreen restores a screen saved by GetScreen TEXT.DOC
QFName return fully-qualified filename DISK.DOC
RAMsize determines installed base RAM SYSTEM.DOC
ReColor quick selective color change, entire screen TEXT.DOC
RTrim used to trim blanks off the end of a string DATA.DOC
ScreenMem allocates memory required to store a screen TEXT.DOC
ScreenMode set text/graphics screen mode GRAPHICS.DOC
ScreenOrigin control position of video buffer on screen GRAPHICS.DOC
SetPOS position the cursor on the screen TEXT.DOC
SetView establish active graphics viewport GRAPHICS.DOC
ShowGPage changes graph page visible on the screen GRAPHICS.DOC
ShowGraphPlane select visible color plane in 16-color graphs GRAPHICS.DOC
ShowMouse make mouse cursor visible INPUT.DOC
ShowTPage switch visible screen page (text mode) TEXT.DOC
SiNo Spanish language version of YesNo INPUT.DOC
SmallText GPrint and GLineEdit option GRAPHICS.DOC
SnowOFF disable CGA "snow" control TEXT.DOC
SnowON enable CGA "snow" control (ASILIB's default) TEXT.DOC

SortI2HI sort integer array, highest first DATA.DOC
SortI2LO sort integer array, lowest first DATA.DOC
SortI4HI sort long integer array, highest first DATA.DOC
SortI4LO sort long integer array, lowest first DATA.DOC
StdText restores normal text size on graphics screen GRAPHICS.DOC
STRCHR finds the first matching character in a string DATA.DOC
STRICHR find matching char. in a string, case-insensetive DATA.DOC
STRIPCHR remove specified character from string DATA.DOC
STRISTR find substring in a string, case-insensetive DATA.DOC
STRLEN determine length of ASIC or ASILIB string DATA.DOC
STRLWR converts text to lower case DATA.DOC
STRREV reverses all characters in a string DATA.DOC
STRRCHR finds the last matchimg character in a string DATA.DOC
STRRSTR find last matching substring in a string DATA.DOC
STRSTR find first matching substring in a string DATA.DOC
STRUPR converts text to upper case DATA.DOC
SVGA132 switch to 132-column text mode TEXT.DOC
SVGA16 set SuperVGA 16-color modes GRAPHICS.DOC
SVGA256 set SuperVGA 256-color modes GRAPHICS.DOC
SWAPB swaps specified number of bytes DATA.DOC
SYSTEM SHELL-like command; run another program SYSTEM.DOC
TClear quickly clear entire screen TEXT.DOC
TCenter centers a string on the screen TEXT.DOC
TCopy copies one screen page to another (text or Herc) TEXT.DOC
TFill fill entire screen with specified character TEXT.DOC
TGetCHR determine character & color at screen location TEXT.DOC
TLoad loads a disk file into video memory TEXT.DOC
Tprint quick print to screen or virtual screen TEXT.DOC
Tprintce quick print and clear to end of line TEXT.DOC
TPutCHR print a single character on the screen TEXT.DOC
TPage combines UseTPage and ShowTPage subroutines TEXT.DOC
Today returns today's date DATA.DOC
UCursorON places underscore cursor on text screen TEXT.DOC
Use32k Hercules memory management GRAPHICS.DOC
Use64k Hercules memory management GRAPHICS.DOC
UseGPage change active graphics page GRAPHICS.DOC
UseTPage set active page in text mode TEXT.DOC
VGA13X extended 256-color modes for standard VGA GRAPHICS.DOC
VScroll quick vertical scroll of screen TEXT.DOC
WClear quick clear portion of screen TEXT.DOC
WFill quickly fill a portion of a text-mode screen TEXT.DOC
WFrame quick window outline draw TEXT.DOC
WPaint quick complete color change, part of screen TEXT.DOC
WReColor quick selective color change, part of screen TEXT.DOC
WRestore restores portion of screen saved by WindowSave TEXT.DOC
WSave copies a portion of screen to restore later TEXT.DOC
WindowMem allocates memory needed to store screen TEXT.DOC

XMGet copies data from extended memory to DOS memory EMSXMS.DOC
XMPut copies data to extended memory from DOS memory EMSXMS.DOC

XMSSpace determines XMS memory available EMSXMS.DOC
YesNo waits for "Y" or "N" key to be pressed INPUT.DOC

If ASIC isn't your primary programming language, you may want to consider
my other programming libraries:

QLIB for QuickBASIC, PDS 7.x and VBDOS
ASM16 for 16-bit assembly-language programming
ASM32 for 32-bit assembly-language programming with the CauseWay extender

Call or write for a review copy of any of these fine software packages.

Doug Herr
P. O. Box 207
Sacramento, CA 95812

(916) 721-8762
CompuServe 71247,3542

 December 10, 2017  Add comments

Leave a Reply