home *** CD-ROM | disk | FTP | other *** search
- ASMLIB 3.8 Programmer's Toolkit
- tools for 16-bit assembly-language programming
- Copyright (C) 1991 - 1994 Douglas Herr - All rights reserved
-
-
- What is ASMLIB?
-
- ASMLIB is a library of assembly-language subroutines, linkable with
- your .OBJ code. ASMLIB provides many tools to the assembly-language
- programmer which eliminate much of the tedious and repetetive coding
- that assembly-language programming is infamous for.
-
- DISTRIBUTION AND REGISTRATION
-
- ASMLIB is user-supported software, NOT public domain software.
- Possession of the ASMLIB files entitles you to evaluate this product.
- If, after evaluation, you choose to use ASMLIB subroutines in your
- programs, you are expected to register with the library's author.
- By registering, you will be entitled to use the latest version of ASMLIB,
- you will be entitled to low-cost upgrades, you will have confidence that
- the version of ASMLIB you are using has not been altered by others, and
- you will be supporting my programming efforts.
-
- Two levels of registration are available: For $25, you will recieve the
- most recent ASMLIB (tiny, small, medium and huge models, for all PCs and
- for 286 or better PCs); for $50 you will receive full source code to the
- ASMLIB subroutines along with the assembled libraries. If you first
- register at the $25 level, you may register for ASMLIB source code at any
- time for $25. Upgrades for either level of registration are $10.
-
- Register by sending the registration fee to:
-
- Douglas Herr
- P. O. Box 207
- Sacramento, CA 95812
- U.S.A.
-
- Telephone (916) 721-8762
- CompuServe 71247,3542
-
- Please specify either 5 1/4 or 3 1/2 inch disks. Bug reports (if any)
- should be sent to the same address. If you wish to contact me by
- telephone, please call after 8:00 PM Pacific time so I can get my kids
- in bed.
-
- Registration is a LICENSE fee, not a purchase of ASMLIB. Registered users
- may use ASMLIB or modified subroutines based on ASMLIB source code in their
- own programs. Registered users may distribute programs using ASMLIB
- subroutines without royalty payments.
-
- ASMLIB object files, ASMLIB source code (unmodified or modified) and the
- ASMLIB library and documentation remain the property of Douglas Herr.
- ASMLIB source code, modified or unmodified, may not be re-distributed.
-
- The ASMLIB3 shareware package includes these files:
-
- ASMLIB.LIB the ASMLIB medium model library
- ASMLIB.DOC this introductory file
- DATA.DOC documentation for string and integer data manipulation
- DISK.DOC documentation for disk & file subroutines
- EMSXMS.DOC documentation for EMS and XMS subroutines
- FLOAT.DOC documentation for floating-point subroutines
- GRAPHICS.DOC documentation for ASMLIB graphics
- INPUT.DOC documentation for keyboard input subroutines
- MODE.DOC ASMLIB screen mode subroutines
- MULTIWIN.DOC documentation for text-mode multi-window subroutines
- SOLVE.DOC documentation for ASMLIB mathematical solutions
- SYSTEM.DOC documentation for subroutines which determine PC status
- TEXT.DOC documentation for text-mode video subroutines
- STARTUP.ASM sample startup code
- ASM.INC medium model INCLUDE file for STARTUP.ASM
- E16.COM handy text editor developed with ASMTINY.LIB
- E16.DOC E16.COM documentation
-
- These files may be copied and distributed freely provided that all the
- above files are distributed together in unmodified or archived form
- and provided that distribution charges are less than $10.
-
-
- LIMITED LIABILITY
-
- Since I am unable to supervise all uses of ASMLIB, I cannot be held
- responsible for any damages, either direct or incidental, resulting
- from the use or abuse of ASMLIB. I have used ASMLIB subroutines on
- a wide variety of equipment and have found the library to be highly
- compatible with common PC equipment, but you must use this library at
- your own risk. Try it before you buy it.
-
-
- COMPATIBILITY
-
- ASMLIB subroutines are intended for IBM PC, XT, AT, PS/2, and compatible
- equipment in real mode with PC-DOS or MS-DOS operating systems. I cannot
- provide support for use of ASMLIB on other equipment or with other operating
- systems.
-
-
- ABBREVIATIONS for video boards
-
- MDA IBM-standard Monochrome Display Adapter
- CGA IBM-standard Color Graphics Adapter (ugh!)
- MCGA IBM-standard Multi-color Graphics Array
- EGA IBM-standard Enhanced Graphics Adapter
- VGA IBM-standard Video Graphics Array
- SVGA VGA equipment with additional capabilities
- ATT ATT 6300 and compatible Olivetti
- HGC Hercules Graphics Card and compatibles
- HGC+ Hercules Graphics Card Plus
- InC Hercules InColor Card
-
- OTHER ABBREVIATIONS
-
- CF = Carry Flag
- DF = Direction flag
- SF = Sign Flag
- ZF = Zero Flag
-
-
- ASSUMPTIONS
-
- Unless otherwise stated, ASMLIB subroutines assume that:
-
- 1) All strings are terminated with a NUL character.
-
- 2) Subroutines with names including '$' trash registers, and are
- intended primarily for ASMLIB's internal use. All '$' subroutines
- require a near call. Documentation for '$' subroutines is in
- SOURCE.DOC, provided to registered ASMLIB programmers.
-
- 3) ASMLIB and 286LIB subroutines without '$' in the name require a far
- call, and are compatible with object files assembled with the
-
- .model medium
-
- directive. Subroutines in ASMSMALL.LIB and 286SMALL.LIB, provided upon
- registration, require a near call, and are compatible with object code
- assembled with the
-
- .model small
-
- directive. Subroutines in ASMTINY.LIB and 286TINY.LIB, provided to
- registered programmers, also require near calls and are intended for
- development of .COM format programs. ASMTINY is compatible with object
- code assembled with the TASM
-
- .model tiny
-
- directive. MASM users may use the TINY.INC include file to achieve the
- same results. Subroutines in ASMHUGE.LIB and 286HUGE.LIB, also provided
- upon registration, includes support for data blocks > 64k. Support
- for huge data is indicated in the description of each subroutine.
-
- Aside from the MODEL.INC include file and parameters as required for
- HUGE model programming, ASMLIB source code does not need any alteration
- when changing memory models. All ASMLIB source code is compatible with
- MASM 5.0, MASM 5.1 and TASM 2.01.
-
- 4) ASMLIB data types are:
-
- chr 1 byte
- str character string, normally terminated with ASCII 0 (NUL)
- I2 2-byte signed integer
- U2 2-byte unsigned integer
- I4 4-byte signed integer
- U4 4-byte unsigned integer
- F4 4-byte floating point value, IEEE format
- F8 8-byte floating point value, IEEE format
-
- 5) ASMLIB GRAPHICS subroutines assume DS:@DATA
-
- HOW DO I USE ALL THIS NEAT STUFF?
-
- Any program that calls an ASMLIB subroutine must declare the subroutine as
- an external procedure, like this:
-
- extrn gedit:proc ; tell assembler to assume that GEDIT is an external
- ; procedure to be linked later
-
-
- I also find it handy to make LINK search through ASMLIB for object code,
- rather than specifying ASMLIB on the command line. Do this with the
- command
-
- includelib asmlib.lib ; automatic search through ASMLIB for externals
-
- in your calling program. See STARTUP.ASM. (This may not work with some
- versions of TLINK. You will need to specify ASMLIB on the command line
- or in TLINK's response file.)
-
-
- CALLING ASMLIB FROM C PROGRAMS
-
- It's easy to call ASMLIB subroutines from C if you follow these simple
- rules (Turbo C examples):
-
- 1) Tell your C program that the ASMLIB subroutine is a PASCAL function
- This makes the C compiler convert the subroutine name to upper case
- and supresses the _leading _underscore in the subroutine name.
-
- Example:
- extern void pascal tprint();
-
-
- 2) In case of naming conflicts (such as strlen), declare the ASMLIB
- subroutine in upper case and use upper case in the C code.
-
- Example:
- extern void pascal STRLEN();
- .
- .
- .
- _BX = msg; /* pointer to ASCIIZ string */
- STRLEN(); /* ASMLIB subroutine */
- string_length = _CX;
-
-
- 3) Load the 80x86 registers before calling the ASMLIB subroutine.
-
- Example:
- _DX = 0; /* upper left corner of screen */
- _AH = 15; /* bright white */
- _SI = msg; /* pointer to ASCIIZ string */
- tprint();
-
-
- 4) ASMLIB subroutines using the 8087 will use Turbo C's
- emulation library if re-assembled with the /E option.
-
-
- 5) values in registers returned by ASMLIB subroutines should be used
- or saved immediately; C code executed after calling an ASMLIB
- subroutine may change any of the registers
-
-
- 6) When compiling from within the Turbo C editor, include ASMLIB.LIB
- in your .PRJ file (ASMSMALL.LIB for small model, ASMHUGE.LIB for
- huge model).
-
-
- DOCUMENTATION
-
- There's alot of stuff in ASMLIB, so I've tried to keep the documentation
- succinct. Here's a general guide to ASMLIB's documentation:
-
-
-
- SUBROUTINE: a brief description
- Source: the source code file (and other subroutines used)
-
- Call with: this tells you what data the subroutine expects
- additional information may be found here
- Returns: tells you what registers and/or flags contain useful info
- Additional lines may include more specific information about
- the register values returned.
- Uses: registers and flags which may be changed
- Supports: particular equipment or operating modes; this will not apply to
- all subroutines.
- Example: an example of how parameters are passed to the subroutine
- and a typical use of the subroutine.
-
-
-
- Documentation for ASMLIB subroutines is in the following files:
-
- Subroutine description .DOC file
-
- A$EDIT editor module used by TEdit and GEdit INPUT.DOC
- ABSF4 get absolute value of 4-byte real number FLOAT.DOC
- ABSF8 get absolute value of 8-byte real number FLOAT.DOC
- ADDF4 adds two float4 values without 80x87 FLOAT.DOC
- ADDF8 adds two float8 values without 80x87 FLOAT.DOC
- ALLOCDOS allocate memory from DOS memory SYSTEM.DOC
- ALLOCEMS allocate memory from Expanded Memory EMSXMS.DOC
- ALLOCVMS allocate Virtual Memory space EMSXMS.DOC
- ALLOCXMS allocate memory from XMS Extended Memory EMSXMS.DOC
- ANSICOLOR returns color attribute used by ANSI device driver TEXT.DOC
- BEZIER draw a bezier curve on the screen GRAPHICS.DOC
- BITBLOCKBYTES calculate bytes required to save a bit block GRAPHICS.DOC
- BITPLANEBYTES calculate bytes to save a plane of bit block GRAPHICS.DOC
- BLINKOFF turn blink attributes off TEXT.DOC
- BLINKON turn blink attributes on TEXT.DOC
- BREAKTRAP initialize Ctrl+Break trap SYSTEM.DOC
- BREAKRELEASE de-activate Ctrl+Break trap SYSTEM.DOC
- BREAKFLAG public byte flagging a Ctrl+Break keypress SYSTEM.DOC
- BUFFERDIM change logical graphics buffer dimensions GRAPHICS.DOC
- C2F convert degrees Celcius to degrees Fahrenheit SOLVE.DOC
- CHRDEL delete a character from an ASCIIZ string DATA.DOC
- CHRNDEL delete a character from an n-length string DATA.DOC
- CIRCLEASPECT modifies aspect ratio of circle GRAPHICS.DOC
- CLEARKEY clears the keyboard's 'type-ahead' buffer INPUT.DOC
- CMPF4 compare two float4 values FLOAT.DOC
- CMPF8 compare two float8 values FLOAT.DOC
- COLOR16 calculate color value for 16-color palette SYSTEM.DOC
- COLORATTR calculates a color attribute byte DATA.DOC
- CRTINFO returns video buffer, screen size, etc. TEXT.DOC
- CSET centers a string in a fixed field DATA.DOC
- CUBEFITF4 fit a cubic equation to a float4 point series SOLVE.DOC
- CUBEFITF8 fit a cubic equation to a float8 point series SOLVE.DOC
- CUBEFITI2 fit a cubic equation to an integer2 point series SOLVE.DOC
- CUBEFITI4 fit a cubic equation to an integer4 point series SOLVE.DOC
- CURSORCOLOR enable InColor palette, set cursor color TEXT.DOC
- CURSOROFF make hardware cursor invisible at present location TEXT.DOC
- CURSORON move cursor to (row, col) and update cursor shape TEXT.DOC
- DAYNAME returns ASCII string for day number DATA.DOC
- DEFGMODE ASMLIB uses system graphics mode (default) GRAPHICS.DOC
- DEG2RAD convert degrees of arc to radians SOLVE.DOC
- DISKFREE determines free disk space DISK.DOC
- DISKWP determines if a floppy disk is writable DISK.DOC
- DIVI2 divide one I2 number by another, returns f4 quotient FLOAT.DOC
- DOSFREE determine available DOS memory SYSTEM.DOC
- DOTBAK changes a file to a .BAK file DISK.DOC
- DRAWCIRCLE draw a circle GRAPHICS.DOC
- DRAWBOX draw a rectangle on a graphics screen GRAPHICS.DOC
- DRAWLINE draw a line on a graphics screen GRAPHICS.DOC
- DRAWMODE public byte modifying ASMLIB graphics drawing mode GRAPHICS.DOC
-
- EMGET copy data from Expanded Memory to system RAM EMSXMS.DOC
- EMMOVE move data within an EMS memory block EMSXMS.DOC
- EMPUT copy data from system RAM to Expanded Memory EMSXMS.DOC
- EMSFREE determine available EMS memory EMSXMS.DOC
- EMSTOTAL determine total EMS memory installed EMSXMS.DOC
- EMISTR search EMS memory for string, case-insensitive EMSXMS.DOC
- EMSTR search EMS memory for string, case-sensitive EMSXMS.DOC
- ENDPROG determine size of program SYSTEM.DOC
- EXENAME determine full path and name of executing program SYSTEM.DOC
- EXESIZE get size of .EXE program loaded by DOS SYSTEM.DOC
- F2C convert degrees Fahrenheit to degrees Celcius SOLVE.DOC
- F4TOF8 converts float4 value to float8 format FLOAT.DOC
- F4TOI2 converts float4 value to an integer FLOAT.DOC
- F4TOI4 converts float4 value to a long integer FLOAT.DOC
- F8TOF4 converts float8 value to float4 format FLOAT.DOC
- FACTORIAL calculate the factorial of an integer SOLVE.DOC
- FARALLOC allocates memory from a far heap SYSTEM.DOC
- FARFREE releases memory allocated by FARALLOC SYSTEM.DOC
- FARINIT initializes a far heap SYSTEM.DOC
- FARREALLOC re-sizes a memory block in a far heap SYSTEM.DOC
- FCLOSE close a file managed by ASMLIB buffered I/O system DISK.DOC
- FCOPY copies one file to another DISK.DOC
- FCOUNT counts the number of files matching filespec mask DISK.DOC
- FCREATE create new file and initialize I/O buffer DISK.DOC
- FEXIST determines if a file exists DISK.DOC
- FFLUSH flushes the DOS file output buffer for specifed handle DISK.DOC
- FGET read specified number of bytes from a file buffer DISK.DOC
- FGETCHR read a character from a file buffer DISK.DOC
- FGETSTR read an ASCII string from a file buffer DISK.DOC
- FILELIST creates a list of filenames matching filespec mask DISK.DOC
- FILL4, FILL4B fill a buffer with 4-byte data DATA.DOC
- FILL8, FILL8B fill a buffer with 8-byte data DATA.DOC
- FILLAREA fills an irregular area on a graphics screen GRAPHICS.DOC
- FILLBOX draw a filled rectangle on a graphics screen GRAPHICS.DOC
- FILLPATTERN define an optional pattern for FillArea & FillBox GRAPHICS.DOC
- FINDDATE returns date of file found with FindFirst/FindNext DISK.DOC
- FINDFIRST find first file matching filespec mask DISK.DOC
- FINDMONO determine if monochrome monitor is installed SYSTEM.DOC
- FINDNEXT find next file matching filespec mask DISK.DOC
- FINDTIME returns time of file found with FindFirst/FindNext DISK.DOC
- FLOAD quickly loads a disk file into far memory DISK.DOC
- FLOADEMS reads disk file & copies to EMS memory EMSXMS.DOC
- FLOADVMS reads disk file & copies to VMS memory EMSXMS.DOC
- FLOADXMS reads disk file & copies to XMS memory EMSXMS.DOC
- FLOPPIES determines the number of floppy drives installed SYSTEM.DOC
- FLOPPYTYPE determines the type of floppy drive installed SYSTEM.DOC
- FOPEN open a file and initilaize buffered I/O DISK.DOC
- FORCEGMODE force ASMLIB to use a graph mode GRAPHICS.DOC
- FPRIMEI2 calculates the derivative of a polynomial function SOLVE.DOC
- FPRIMEF4 calculates the derivative of a polynomial function SOLVE.DOC
- FPUT write specified data to output file buffer DISK.DOC
- FPUTCHR writes a character to output file buffer DISK.DOC
- FPUTCRLF writes a CR+LF pair to output file buffer DISK.DOC
- FPUTSTR writes a string to output file buffer DISK.DOC
-
- FREEEMS release Expanded Memory handle EMSXMS.DOC
- FREEVMS release VMS handle EMSXMS.DOC
- FREEXMS release XMS Extended Memory handle EMSXMS.DOC
- FSAVEEMS copy an EMS memory block to disk file EMSXMS.DOC
- FSAVEVMS copy VMS memory block to disk file EMSXMS.DOC
- FSAVEXMS copy an XMS memory block to disk file EMSXMS.DOC
- FSEEK move file pointer for file opened by FOPEN DISK.DOC
- FSIZE determines the size of an open file DISK.DOC
- FSTRISTR searches for a string in a disk file (case-insensetive)DATA.DOC
- FSTRSTR searches for a string in a disk file (case-sensetive) DATA.DOC
- FVALUE calculate future value of an even cash flow SOLVE.DOC
- GBASESEG change ASMLIB graphics default base segment GRAPHICS.DOC
- GCENTER centers a string on a graphics screen GRAPHICS.DOC
- GCLEAR clears the active portion of a graphics screen GRAPHICS.DOC
- GCOLOR establish color used by ASMLIB graphics GRAPHICS.DOC
- GCOPY copies one page of graphics memory to another GRAPHICS.DOC
- GCURSOR simulate text-mode cursor on graphics screen GRAPHICS.DOC
- GEDIT string editor for graphics modes INPUT.DOC
- GETBITBLOCK saves a portion of a graphics screen in memory GRAPHICS.DOC
- GETBITPLANE saves one plane of a bit block in memory GRAPHICS.DOC
- GETCMD isolates multiple command line parameters DATA.DOC
- GETCPU determines the computer's CPU chip SYSTEM.DOC
- GETCRT determine active monitor SYSTEM.DOC
- GETDOT determine pixel value on graphics screen GRAPHICS.DOC
- GETKEY returns next key pressed INPUT.DOC
- GETSCREEN save screen image in memory to restore later TEXT.DOC
- GETVIEW returns a pointer to graphics view area data GRAPHICS.DOC
- GLOAD loads a graphics screen saved by GSave GRAPHICS.DOC
- GLOADEMS loads a graphics screen from EMS memory GRAPHICS.DOC
- GLOADXMS loads a graphics screen from XMS memory GRAPHICS.DOC
- GOODDRIVE determines if a drive is valid DISK.DOC
- GPAGE changes active and displayed graphics page GRAPHICS.DOC
- GPICKF select a filename from a list (graphics mode) INPUT.DOC
- GPICKSTR select a string from a list (graphics mode) INPUT.DOC
- GPRINT prints ASCIIZ string on a graphics screen GRAPHICS.DOC
- GPRINTDOWN prints ASCIIZ string vertically on graph screen GRAPHICS.DOC
- GPRINTDOWNX print string vertically on graph screen, 2x width GRAPHICS.DOC
- GPRINTDOWN2X print string vertically on graph screen, 2x size GRAPHICS.DOC
- GPRINTUP prints ASCIIZ string vertically on graph screen GRAPHICS.DOC
- GPRINTUPX print string vertically on graph screen, 2x width GRAPHICS.DOC
- GPRINTUP2X print string vertically on graph screen, 2x sixe GRAPHICS.DOC
- GPRINTX print string on a graphics screen, double width GRAPHICS.DOC
- GPRINT2X print string on a graphics screen, double size GRAPHICS.DOC
- GPUTCHR print character on graphics screen GRAPHICS.DOC
- GSAVE saves a graphics screen as a disk file GRAPHICS.DOC
- GSAVEEMS saves a graphics screen in EMS memory GRAPHICS.DOC
- GSAVEXMS saves a graphics screen in XMS memory GRAPHICS.DOC
- GUCURSOR simulate underscore cursor on graphics screen GRAPHICS.DOC
- HALLOC allocates memory from near heap SYSTEM.DOC
- HFREE releases memory allocated by HALLOC SYSTEM.DOC
- HGRAPH establish Hercules graphics mode using two pages MODE.DOC
- HGRAPH0 establish Hercules graphics mode using one page MODE.DOC
- HIDEMOUSE make mouse cursor disappear INPUT.DOC
- HINIT initializes near heap SYSTEM.DOC
- HMAX determines maximum block size available in near heap SYSTEM.DOC
-
- HRAM8029 establish 80-column, 29-row RamFont mode MODE.DOC
- HRAM8043 establish 80-column, 43-row RamFont mode MODE.DOC
- HRAM9025 establish 90-column, 25-row RamFont mode MODE.DOC
- HRAM9029 establish 90-column, 29-row RamFont mode MODE.DOC
- HRAM9043 establish 90-column, 43-row RamFont mode MODE.DOC
- HREALLOC re-sizes a memory block in the near heap SYSTEM.DOC
- HSCROLL scrolls a portion of the screen left or right TEXT.DOC
- HTEXT establish Hercules text mode MODE.DOC
- I2TOF4 convert a 2-byte integer to float4 format FLOAT.DOC
- I2TOSTR convert a 2-byte integer to an ASCIIZ string DATA.DOC
- I4TOF4 convert a 4-byte integer to float4 format FLOAT.DOC
- I4TOSTR convert a 4-byte integer to an ASCIIZ string DATA.DOC
- ISALPHA determines if a keycode returned by GetKey is A - z INPUT.DOC
- ISANSI determines if ANSI is loaded and active SYSTEM.DOC
- ISATT determines if ATT 6300 display card is installed SYSTEM.DOC
- ISDIGIT determines if a keycode returned by GetKey is 0 - 9 INPUT.DOC
- ISEMS determines if an EMS driver is loaded EMSXMS.DOC
- ISEVGA determines if an EGA or VGA is installed SYSTEM.DOC
- ISHERC determine if a Hercules card is installed SYSTEM.DOC
- ISLOWER determines if a keycode returned by GetKey is a - z INPUT.DOC
- ISMOUSE determines if a mouse is installed SYSTEM.DOC
- ISSEVGA determines if a Super EGA or Super VGA is installed SYSTEM.DOC
- ISUPPER determines if a keycode returned by GetKey is A - Z INPUT.DOC
- ISVM86 detects Virtual 86 mode of 32-bit processor SYSTEM.DOC
- ISXMS determines if an XMS driver is loaded EMSXMS.DOC
- INVF4 calculate the inverse of a float4 value FLOAT.DOC
- JANEIN German language version of YesNo INPUT.DOC
- KEYIFWAITING returns first key if one waiting in keyboard buffer INPUT.DOC
- KEYORBUTTON returns either keypress or mouse button press INPUT.DOC
- KEYWAITING determines if a key is waiting in keyboard buffer INPUT.DOC
- LINEFITF4 fit a line equation to point series SOLVE.DOC
- LINEFITF8 fit a line equation to point series SOLVE.DOC
- LINEFITI2 fit a line equation to point series SOLVE.DOC
- LINEFITI4 fit a line equation to point series SOLVE.DOC
- LINEPATTERN defines an optional pattern to use with DrawLine GRAPHICS.DOC
- LOADPCX reads & decodes .PCX-format file GRAPHICS.DOC
- LOWDS2HI convert segment:offset address to lowest offset DATA.DOC
- LOWES2HI convert segment:offset address to lowest offset DATA.DOC
- LSET left-justifies a string in a field DATA.DOC
- LTRIM removes leading blanks from an ASCIIZ string DATA.DOC
- MATHCHIP determine if 80x87 math coprocessor is installed SYSTEM.DOC
- MAXF4, MAXF4B determine maximum value in a real number array FLOAT.DOC
- MAXF8, MAXF8B determine maximum value in a real number array FLOAT.DOC
- MAXI2, MAXI2B determine maximum value in integer array DATA.DOC
- MAXI4, MAXI4B determine maximum value in long integer array DATA.DOC
- MAXU2, MAXU2B DETERMINE maximum value in unsigned integer array DATA.DOC
- MAXU4, MAXU4B determine maximum value in unsigned long integer array DATA.DOC
- MENUOPTION define options for PullDown menu system INPUT.DOC
-
- MINF4, MINF4B determine minimum value in a real number array FLOAT.DOC
- MINF8, MINF8B determine minimum value in a real number array FLOAT.DOC
- MINI2, MINI2B determine minimum value in integer array DATA.DOC
- MINI4, MINI4B determine minimum value in long integer array DATA.DOC
- MINU2, MINU2B determine minimum value in unsigned integer array DATA.DOC
- MINU4, MINU4B determine minimum value in unsigned long integer array DATA.DOC
- MODECOLOR switch system to color monitor or color text mode MODE.DOC
- MODEMONO switch system to monochrome monitor or mono text mode MODE.DOC
- MODE43 switch EGA to 80x43 text mode or VGA to 80x50 text MODE.DOC
- MONTHNAME returns ASCII string for month given month number DATA.DOC
- MOUSEINIT determines if a mouse is installed SYSTEM.DOC
- MOUSELIMIT limit mouse's range on screen INPUT.DOC
- MOUSEPOS position mouse on the screen INPUT.DOC
- MOUSESTATUS determine mouse location & buttons pressed INPUT.DOC
- MOUSETYPE determine mouse type SYSTEM.DOC
- MRESTORE restore previously saved mouse state SYSTEM.DOC
- MSAVE save mouse state SYSTEM.DOC
- MULF4 multiplies two float4 values without 80x87 FLOAT.DOC
- MULF4TEN multiplies a float4 value by 10.0 without 80x87 FLOAT.DOC
- MULF8 multiplies two float8 values without 80x87 FLOAT.DOC
- MULF8TEN multiplies a float8 value by 10.0 without 80x87 FLOAT.DOC
- MWBORDER draw border around window opened by MWOPEN MULTIWIN.DOC
- MWCENTER center a string in a window opened by MWOPEN MULTIWIN.DOC
- MWCLEAR clear a window opened by MWOPEN MULTIWIN.DOC
- MWCLOSE close window opened with MWOPEN and release buffer MULTIWIN.DOC
- MWCLOSEALL close all open windows and release window buffers MULTIWIN.DOC
- MWDEFAULT change MWOPEN default window status MULTIWIN.DOC
- MWDISPLAY display all unhidden windows in multiwindow system MULTIWIN.DOC
- MWHIDE hide window in multiwindow display system MULTIWIN.DOC
- MWHIDEALL hide all windows in multiwindow display system MULTIWIN.DOC
- MWINIT initialize multi-window base screen MULTIWIN.DOC
- MWNOBORDER set "no border" bit in window status byte MULTIWIN.DOC
- MWNOSHADOW disable "shadow" effect for selected window MULTIWIN.DOC
- MWOPEN open a window in multi-window system MULTIWIN.DOC
- MWPRINT print string in window opened by MWOPEN MULTIWIN.DOC
- MWPRINTCE print string in window and clear to edge of window MULTIWIN.DOC
- MWSELECT determine window visible at screen coordinates MULTIWIN.DOC
- MWSHADOW enable "shadow" effect for selected window MULTIWIN.DOC
- MWTITLE center a string at the top of a window MULTIWIN.DOC
- MWTOP move selected window to top of overlapping windows MULTIWIN.DOC
- MWUNHIDE unhide window in multiwindow display system MULTIWIN.DOC
- MWUNHIDEALL unhide all windows in multiwindow display system MULTIWIN.DOC
- NFORMAT formats a numeric string DATA.DOC
- NORMF4, NORMF4B normalize a float4 data series SOLVE.DOC
- NORMF8, NORMF8B normalize a float8 data series SOLVE.DOC
- NPVALUE calculate net present value of an uneven cash flow SOLVE.DOC
- OUINON French language version of YesNo INPUT.DOC
- PALETTE16 update 16-color palette registers SYSTEM.DOC
- PAINT change all color attributes on a text-mode screen TEXT.DOC
- PATH returns a PATH from the program's enviornment block SYSTEM.DOC
-
- PAYMENT calculate payment required given n, i, pv, fv SOLVE.DOC
- PCXINFO reads vital information about .PCX-format file GRAPHICS.DOC
- PICKF select filename from list INPUT.DOC
- PICKSTR select one from a list of strings INPUT.DOC
- PSOLVEF4 solve a polynomial equation for y, given x SOLVE.DOC
- PSOLVEF8 solve a polynomial equation for y, given x SOLVE.DOC
- PSOLVEI2 solve a polynomial equation for y, given x SOLVE.DOC
- PSOLVEI4 solve a polynomial equation for y, given x SOLVE.DOC
- PULLDOWN pull-down menu system; text mode INPUT.DOC
- PUTBITBLOCK restores bit block saved by GetBitBlock GRAPHICS.DOC
- PUTBITPLANE restores bit plane saved by GetBitPlane GRAPHICS.DOC
- PUTDOT set a pixel on a graphics screen GRAPHICS.DOC
- PUTSCREEN restores screen image saved by GetScreen TEXT.DOC
- PVALUE calculate present value of an even cash flow SOLVE.DOC
- QFNAME given a partial filename, returns full path+filename DISK.DOC
- QUADFITF4 fit a quadratic equation to a data series SOLVE.DOC
- QUADFITF8 fit a quadratic equation to a data series SOLVE.DOC
- QUADFITI2 fit a quadratic equation to a data series SOLVE.DOC
- QUADFITI4 fit a quadratic equation to a data series SOLVE.DOC
- RAD2DEG convert radians to degrees of arc SOLVE.DOC
- RANDOM generates a near-random number DATA.DOC
- REALLOCEMS re-size existing EMS memory block EMSXMS.DOC
- REALLOCXMS re-size existing XMS memory block EMSXMS.DOC
- RECOLOR change selected color attributes on a text-mode screen TEXT.DOC
- RESETVIEW restores defalt view area on active graphics page GRAPHICS.DOC
- RSET right-justifies a string in a field DATA.DOC
- RTRIM removes trailing blanks from an ASCIIZ string DATA.DOC
- SAMP2POP stddev option SOLVE.DOC
- SCALEF4 scales a float4 value by an integer power of 2 FLOAT.DOC
- SCALEF8 scales a float8 value by an integer power of 2 FLOAT.DOC
- SCREENMEM calculates bytes required to save screen image TEXT.DOC
- SCREENORIGIN control position of video buffer on screen GRAPHICS.DOC
- SHOWGPAGE change graphics page displayed on screen GRAPHICS.DOC
- SHOWGPLANE show one or more planes of 16-color EGA/VGA screen GRAPHICS.DOC
- SHOWMOUSE make mouse cursor visible INPUT.DOC
- SHOWTPAGE change video page shown on screen TEXT.DOC
- SINO Spanish language version of YesNo INPUT.DOC
- SMALLTEXT change GPrint default to 8x8 characters GRAPHICS.DOC
- SNOWOFF disables CGA snow control TEXT.DOC
- SNOWON enables CGA snow control (ASMLIB default) TEXT.DOC
- SORTF4HI sorts the values in a float4 array, highest first FLOAT.DOC
- SORTF4LO sorts the values in a float4 array, lowest first FLOAT.DOC
- SORTF8HI sorts the values in a float8 array, highest first FLOAT.DOC
- SORTF8LO sorts the values in a float8 array, lowest first FLOAT.DOC
- SORTI2HI sorts the values in an array of 2-byte integers DATA.DOC
- SORTI2LO sorts the values in an array of 2-byte integers DATA.DOC
- SORTI4HI sorts the values in an array of 4-byte integers DATA.DOC
- SORTI4LO sorts the values in an array of 4-byte integers DATA.DOC
- STDDEVF4 calculate standard deviation of float4 series SOLVE.DOC
- STDDEVF8 calculate standard deviation of float8 series SOLVE.DOC
- STDDEVI2 calculate standard deviation of integer2 series SOLVE.DOC
- STDDEVI4 calculate standard deviation of integer4 series SOLVE.DOC
- STDTEXT restore GPrint default characters GRAPHICS.DOC
- STR2VBUF copies a string to the video buffer TEXT.DOC
- STRCPY copy an ASCIIZ string to existing buffer DATA.DOC
- STRNCPY copy CX bytes of an ASCII string to existing buffer DATA.DOC
-
- STRTOI2 converts an ASCIIZ string to an equivalent integer DATA.DOC
- STRNTOI2 converts n bytes of a string to an equivalent integer DATA.DOC
- STRTOI4 converts an ASCII string to equivalent long integer DATA.DOC
- STRNTOI4 converts n bytes of string to equivalent long integer DATA.DOC
- STRCPY copies an ASCIIZ string to an existing buffer DATA.DOC
- STRNCPY copies CX bytes of a string to an existing buffer DATA.DOC
- STRCAT catenates (adds) two strings DATA.DOC
- STRCHR searches for a specified character in a string DATA.DOC
- STRDUP duplicates an ASCIIZ string DATA.DOC
- STRINS combines string0 and string1 at specified position DATA.DOC
- STRIPCHR removes selected character from a string DATA.DOC
- STRISTR finds a substring in a string, case insensetive DATA.DOC
- STRLEN determines the length of an ASCIIZ string DATA.DOC
- STRLWR change upper-case characters in a string to lower DATA.DOC
- STRNCHR searches n bytes of a string for for a character DATA.DOC
- STRNDUP duplicates n characters of a string DATA.DOC
- STRNLWR changes n bytes in string to lower case DATA.DOC
- STRNRCHR finds the last character matching AL in n bytes DATA.DOC
- STRNREV reverses n bytes of an ASCIIZ string DATA.DOC
- STRNSET sets n characters in a string to specified character DATA.DOC
- STRNUPR changes n bytes in string to upper case DATA.DOC
- STRREV reverses all characters in an ASCIIZ string DATA.DOC
- STRRCHR finds the last byte in an ASCIIZ string matching AL DATA.DOC
- STRRSTR finds the last substring in a string, case sensetive DATA.DOC
- STRSET sets all characters in a string to specified character DATA.DOC
- STRSPACE creates a new string of space characters DATA.DOC
- STRSTR finds a substring in a string, case sensetive DATA.DOC
- STRUPR changes lower-case characters in string to upper case DATA.DOC
- SUBF4 subtract a float4 value from another FLOAT.DOC
- SUBF8 subtract a float8 value from another FLOAT.DOC
- SVGA16 set 800x600 or 1024x768 16-color mode MODE.DOC
- SVGA132 set 132-column text mode with SVGA equipment MODE.DOC
- SVGA256 set 256-color mode up to 1024x768 pixels MODE.DOC
- SWAPB swaps data areas DATA.DOC
- SYSTEM executes a second copy of COMMAND.COM SYSTEM.DOC
- TCENTER prints a string on the screen, centered horizontally TEXT.DOC
- TCOPY copies one page of text-mode video memory to another TEXT.DOC
- TCLEAR clears text-mode screen with specified color attribute TEXT.DOC
- TEDIT string editor for text modes INPUT.DOC
- TFILL fill text-mode screen with specified character & color TEXT.DOC
- TGETCHR read character and color attribute from text screen TEXT.DOC
- TLOAD loads a screen image disk file saved by TSave TEXT.DOC
- TMOUSELIMIT limit mouse's range of motion on text screen INPUT.DOC
- TMOUSEPOS set mouse position on text-mode screen INPUT.DOC
- TMOUSESTATUS determine mouse position & buttons on text screen INPUT.DOC
- TOLOWER converts keycode from GetKey to lower case INPUT.DOC
- TOUPPER converts keycode from GetKey to upper case INPUT.DOC
- TPAGE changes active page and shows active page TEXT.DOC
- TPRINT print ASCIIZ string directly to video buffer TEXT.DOC
- TPRINTCE print ASCIIZ string & clear to end of line TEXT.DOC
- TPRINTL print directly to video buffer, lower case TEXT.DOC
- TPRINTU print directly to video buffer, upper case TEXT.DOC
- TSAVE saves a screen image as a disk file TEXT.DOC
-
- UCURSORON move cursor to (row, col), change to underscore TEXT.DOC
- USE32K, USE64K Hercules memory configuration control SYSTEM.DOC
- USEGPAGE changes active graphics page GRAPHICS.DOC
- USETPAGE establish ASMLIB's active page TEXT.DOC
- VGA13X use undocumented 256-color VGA modes MODE.DOC
- VIEWLIMIT determine current mode's maximum dimensions GRAPHICS.DOC
- VMGET copy data from VMS Memory to system RAM EMSXMS.DOC
- VMISTR search VMS memory for string, case-insensitive EMSXMS.DOC
- VMMOVE move data within a VMS memory block EMSXMS.DOC
- VMPUT copy data from system RAM to VMS memory EMSXMS.DOC
- VMSTR search VMS memory for string, case-sensitive EMSXMS.DOC
- VSCROLL scroll a portion of the screen up or down TEXT.DOC
- WCLEAR clears a rectangular portion of a text-mode screen TEXT.DOC
- WFILL fills a window of a text-mode screen w/specified char TEXT.DOC
- WFRAME draws a box on a text-mode screen TEXT.DOC
- WORDTOHEX converts word data to ASCIIZ string, hex format DATA.DOC
- WPAINT replaces all color attributes in screen window TEXT.DOC
- WPRINT print directly to a window with word wrap TEXT.DOC
- WRECOLOR changes selected color attributes in screen window TEXT.DOC
- WRESTORE restore window saved by WSAVE TEXT.DOC
- WSAVE save screen window in memory TEXT.DOC
- WSIZE calculates the memory required to save screen window TEXT.DOC
- XMGET copy data from XMS Extended Memory to system RAM EMSXMS.DOC
- XMMOVE move data within an XMS memory block EMSXMS.DOC
- XMPUT copy data from system RAM to XMS Extended Memory EMSXMS.DOC
- XMODE16 use super EGA /super VGA 16-color graphics modes MODE.DOC
- XMODE reset ASMLIB graphics mode flags MODE.DOC
- XMSCONTIG determine largest contiguous XMS memory block EMSXMS.DOC
- XMSFREE determine available XMS memory EMSXMS.DOC
- XMISTR search XMS memory for string, case-insensitive EMSXMS.DOC
- XMSTR search XMS memory for string, case-sensitive EMSXMS.DOC
- XTOTHEY calculate X to the Y power SOLVE.DOC
- YESNO wait for 'Y' or 'N' key to be pressed INPUT.DOC
-
-
-
- Other software I have available:
-
- ASM32 Like ASMLIB, but for 32-bit assembly-language programming
- with Michael Devore's CauseWay DOS extender
-
- QLIB Subroutine library for Microsoft's QuickBASIC, VBDOS and
- BASIC 7.x PDS, includes most ASMLIB subroutines with a
- BASIC interface
-
- Contact me if you are interested in either of my other two subroutine
- libraries.
-