home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Simtel MSDOS - Coast to Coast
/
simteldosarchivecoasttocoast2.iso
/
asmutil
/
asmlib37.zip
/
ASMLIB.DOC
< prev
next >
Wrap
Text File
|
1993-07-02
|
41KB
|
662 lines
ASMLIB 3.7 Programmer's Toolkit
tools for assembly-language programming
Copyright (C) 1991 - 1993 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
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
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
MODE13225 switches supported systems to 132-column 25-row mode MODE.DOC
MODE13243 switches supported systems to 132-column 43-row 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
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
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
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
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
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
XMODECLEAR 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