Category : Assembly Language Source Code
Archive   : C--C0200.ZIP
Filename : STAKPROC.DOC

 
Output of file : STAKPROC.DOC contained in archive : C--C0200.ZIP

LIST OF BUILT IN C-- STACK PROCEDURES
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Last Updated: 16 April 1993


CALLING FORMAT: addpixel19(x,y,colour);
x = x coordinate to ADD pixel (0 to 319).
y = y coordinate to ADD pixel (0 to 199).
colour = colour to ADD pixel.
SIZE: 32 bytes.
FUNCTION: ADDs a pixel on the screen at the desired point with the desired
colour in video mode 19 (320x200 in 256 colours).
RETURNS: nothing.


CALLING FORMAT: andpixel19(x,y,colour);
x = x coordinate to and pixel (0 to 319).
y = y coordinate to and pixel (0 to 199).
colour = colour to and pixel.
SIZE: 32 bytes.
FUNCTION: ANDs a pixel on the screen at the desired point with the desired
colour in video mode 19 (320x200 in 256 colours).
RETURNS: nothing.


CALLING FORMAT: appendfile(filename,bufseg,bufoff,bytes);
filename = offset address of name of file to append.
bufseg = segment address of buffer to write from.
bufoff = offset address of buffer to write from.
bytes = number of bytes to append.
DOS REQUIRED: 2.0 +
SIZE: 77 bytes.
FUNCTION: Opens the file name specified, appends the specified number of
bytes from the buffer to the end of the file and then closes the
file.
RETURN TYPE: word
RETURNS: number of bytes appended.


CALLING FORMAT: bar19(x,y,xsize,ysize,colour);
x = x coordinate of upper left corner (0 to 319).
y = y coordinate of upper left corner (0 to 199).
xsize = x length of bar.
ysize = y length of bar.
colour = colour for bar.
SIZE: 51 bytes.
FUNCTION: Draws a bar (filled rectangle) with x and y coordinates and x and
y size on the screen with the desired colour in video mode 19
(320x200 256 colours).
RETURNS: nothing.
NOTE: DI and SI are destroyed.


CALLING FORMAT: box19(x,y,xsize,ysize,colour);
x = x coordinate of upper left corner (0 to 319).
y = y coordinate of upper left corner (0 to 199).
xsize = x length of box.
ysize = y length of box.
colour = colour for box.
SIZE: 77 bytes.
FUNCTION: Draws a box (rectangle) with x and y coordinates and x and y size
on the screen with the desired colour in video mode 19 (320x200
256 colours).
RETURNS: nothing.
NOTE: DI and SI are destroyed.


CALLING FORMAT: getimage19(x,y,xsize,ysize,imagebuf_seg,imagebuf_offset);
x = x coordinate to put image (0 to 319).
y = y coordinate to put image (0 to 199).
xsize = X size of image in pixels.
ysize = Y size of image in pixels.
imagebuf_seg = segment address of image buffer.
imagebuf_offset = offset address of image buffer.
SIZE: 56 bytes.
FUNCTION: Gets an image from the screen in video mode 19 (320x200 in 256
colours). Format of the image buffer is first word is x size,
second word is y size and the rest is the picture in pixel values.
Size of the buffer required is xsize*ysize+4 bytes in length to
hold the image. The image gotten with this procedure may be put
on the screen with procedure putimage19.
RETURNS: nothing.
NOTE: DI and SI are destroyed.


CALLING FORMAT: getpixel19(x,y);
x = x coordinate of pixel to get colour (0 to 319).
y = y coordinate of pixel to get colour (0 to 199).
SIZE: 28 bytes.
FUNCTION: Returns the colour of a pixel on the screen at the specified
point in video mode 19 (320x200 in 256 colours).
RETURN TYPE: byte.
RETURNS: colour of the pixel.


CALLING FORMAT: line19(x1,y1,x2,y2,colour);
x1 = x starting coordinate of the line (0 to 319).
y1 = y starting coordinate of the line (0 to 199).
x2 = x ending coordinate of the line (0 to 319).
y2 = y ending coordinate of the line (0 to 199).
colour = desired colour of line (0 to 255).
SIZE: 154 bytes.
FUNCTION: Draws a line from (x1,y1) to (x2,y2) with the specified colour in
video mode 19 (320x200 in 256 colours).
RETURNS: nothing.
NOTE: DI and SI are destroyed.


CALLING FORMAT: negpixel19(x,y);
x = x coordinate of pixel to NEGATE (0 to 319).
y = y coordinate of pixel to NEGATE (0 to 199).
SIZE: 28 bytes.
FUNCTION: NEGATEs a pixel on the screen at the desired point in video mode
19 (320x200 in 256 colours).
RETURNS: nothing.


CALLING FORMAT: notbar19(x,y,xsize,ysize);
x = x coordinate of upper left corner (0 to 319).
y = y coordinate of upper left corner (0 to 199).
xsize = x length of bar.
ysize = y length of bar.
SIZE: 48 bytes.
FUNCTION: NOTs a bar (filled rectangle) with x and y coordinates and x and y
size on the screen in video mode 19 (320x200-256 colours).
RETURNS: nothing.
NOTE: DI and SI are destroyed.


CALLING FORMAT: notbox19(x,y,xsize,ysize);
x = x coordinate of upper left corner (0 to 319).
y = y coordinate of upper left corner (0 to 199).
xsize = x length of box.
ysize = y length of box.
SIZE: 78 bytes.
FUNCTION: NOTs a box (rectangle) with x and y coordinates and x and y size
on the screen in video mode 19 (320x200-256 colours).
RETURNS: nothing.
NOTE: DI and SI are destroyed.


CALLING FORMAT: notpixel19(x,y);
x = x coordinate of pixel to NOT (0 to 319).
y = y coordinate of pixel to NOT (0 to 199).
SIZE: 28 bytes.
FUNCTION: NOTs a pixel on the screen at the desired point in video mode 19
(320x200 in 256 colours).
RETURNS: nothing.


CALLING FORMAT: orpixel19(x,y,colour);
x = x coordinate to OR pixel (0 to 319).
y = y coordinate to OR pixel (0 to 199).
colour = colour to OR pixel.
SIZE: 32 bytes.
FUNCTION: ORs a pixel on the screen at the desired point with the desired
colour in video mode 19 (320x200 in 256 colours).
RETURNS: nothing.


CALLING FORMAT: overimage19(x,y,imageloc,clearcolour);
x = x coordinate to put image (0 to 319).
y = y coordinate to put image (0 to 199).
imageloc = location of image buffer.
clearcolour = colour value which is not transfered.
SIZE: 63 bytes.
FUNCTION: Puts an image and an x,y location from an image buffer in video
mode 19 (320x200 in 256 colours). Format of the image buffer is
first word is x size, second word is y size and the rest is the
picture in pixel values. Any pixel values equal to clearcolour
will not be copied, thus allowing for the definition of non-
rectangular shapes.
RETURNS: nothing.
NOTE: DI and SI are destroyed.


CALLING FORMAT: passtr(cstringoffset,passtringoffset);
cstringoffset = offset address of C type string.
passtringoffset = offset address of Pascal type string.
SIZE: 24 or 22 bytes.
FUNCTION: Copies a Pascal type string to a C type string. A Pascal type
string is a string whos first byte specifies the length of the
string. A C type string is a string which is terminated with
the byte value zero.
RETURN TYPE: word
RETURNS: the length of the new string generated not including the
terminating zero byte.
NOTE: DI and SI are destroyed.


CALLING FORMAT: putimage19(x,y,imageloc);
x = x coordinate to put image (0 to 319).
y = y coordinate to put image (0 to 199).
imageloc = location of image buffer.
SIZE: 47 bytes.
FUNCTION: Puts an image and an x,y location from an image buffer in video
mode 19 (320x200 in 256 colours). Format of the image buffer is
first word is x size, second word is y size and the rest is the
picture in pixel values.
RETURNS: nothing.
NOTE: DI and SI are destroyed.


CALLING FORMAT: putpixel19(x,y,colour);
x = x coordinate to put pixel (0 to 319).
y = y coordinate to put pixel (0 to 199).
colour = colour to put pixel.
SIZE: 32 bytes.
FUNCTION: Puts a pixel on the screen at the desired point in the desired
colour in video mode 19 (320x200 in 256 colours).
RETURNS: nothing.


CALLING FORMAT: rand();
SIZE: 61 bytes.
FUNCTION: Returns a random number with the range of a word variable.
RETURN TYPE: word, int, byte or char (valid random number for all).
RETURNS: the random number generated.
NOTE: BX also equals the random number generated.


CALLING FORMAT: randomize();
SIZE: 21 bytes.
FUNCTION: Seeds the random number generator with the current system tick
counter value.
RETURNS: nothing.


CALLING FORMAT: readfile(filename,bufseg,bufoff,bytes);
filename = offset address of name of file to read from.
bufseg = segment address of buffer to read into.
bufoff = offset address of buffer to read into.
bytes = number of bytes to read.
DOS REQUIRED: 2.0 +
SIZE: 58 bytes.
FUNCTION: Opens the file name specified, reads the number bytes into the
buffer and then closes the file.
RETURN TYPE: word
RETURNS: number of bytes read.


CALLING FORMAT: spawn(filename,parameters,environment);
filename = offset address of name of file to be spawned.
parameters = offset address command line parameters,
the parameter string starts with a length
byte and ends with a carrage return (ASCII
value of 13). The lenght byte does not
include itself or the terminator.
environment = segment address of environmental variable
table. Each entry in the table will be a
0 terminating string of the format:
FUNDOS=C:\FUN
The entire table is terminated with an extra
NULL character (ASCII value 0).
If the segment address is 0, the spawned
program will inherit the envronment block of
the parent program.
DOS REQUIRED: 3.0 +
SIZE: 49 bytes.
FUNCTION: Spawns the specified filename and gives it the given parameters
and environment block.
RETURN TYPE: word
RETURNS: ES,BX,DX = undefined
Successful: AX = 0
Unsuccessful: AX = errorcode
NOTE: When COM files are loaded, they are given all of the memory of the
largest block available. In order to have memory to spawn a program,
the COM file must reduce its memory size by using RESIZEMEM, or
ensuring that the resize compiler option is ON, to free some for the
spawned program to be loaded into.


CALLING FORMAT: srand(seedword1,seedword2);
seedword1 = first word for the random number seed.
seedword2 = second word for the random number seed.
SIZE: 23 bytes.
FUNCTION: Seeds the random number generator. The random number generator
uses a double word seed value for generating the random numbers.
RETURNS: nothing.


CALLING FORMAT: strcat(deststrffset,sourcestroffset);
deststroffset = offset address of destination string.
sourcestroffset = offset address of source string.
SIZE: 24 or 22 bytes.
FUNCTION: Copies the source string on to the end of the destination
string.
RETURNS: nothing.
NOTE: DI and SI are destroyed.


CALLING FORMAT: STRLEN(stroffset);
stroffset = memory location of string
SIZE: 17 bytes.
FUNCTION: Calculates the length of the string which is terminated by the
byte value of zero.
RETURN TYPE: word
RETURNS: length of string in bytes excluding terminating byte
NOTE: BX also equals the length of string.


CALLING FORMAT: strpas(passtringoffset,cstringoffset);
passtringoffset = offset address of Pascal type string.
cstringoffset = offset address of C type string.
SIZE: 25 or 23 bytes.
FUNCTION: Copies a C type string to a Pascal type string. A Pascal type
string is a string whos first byte specifies the length of the
string. A C type string is a string which is terminated with
the byte value zero.
RETURNS: nothing.
NOTE: DI and SI are destroyed.


CALLING FORMAT: subpixel19(x,y,colour);
x = x coordinate to subtract pixel (0 to 319).
y = y coordinate to subtract pixel (0 to 199).
colour = colour to subtract pixel.
SIZE: 32 bytes.
FUNCTION: Subtracts a pixel on the screen at the desired point with the
desired colour in video mode 19 (320x200 in 256 colours).
RETURNS: nothing.


CALLING FORMAT: writefile(filename,bufseg,bufoff,bytes);
filename = offset address of name of file write to.
bufseg = segment address of buffer to write from.
bufoff = offset address of buffer to write from.
bytes = number of bytes to write.
DOS REQUIRED: 2.0 +
SIZE: 59 bytes.
FUNCTION: Creates the file with the name name specified, writes the number
bytes from the buffer into the file and then closes the file.
If the file already exists, the contents will be lost.
RETURN TYPE: word
RETURNS: number of bytes written.


CALLING FORMAT: XMSallocateEMB(sizeinK);
sizeinK = amount in K of extended memory being requested.
SIZE: 11 bytes.
FUNCTION: Allocates an extended memory block of specfied size.
See XMSgetversion().
RETURN TYPE: word
RETURNS: 1 if the block is allocated, else 0.
DX = extended memory block (EMB) handle.


CALLING FORMAT: XMSfreeEMB(EMBhandle);
EMBhandle = Extended memory block handle to free.
SIZE: 11 bytes.
FUNCTION: Frees an extended memory block that was previously allocated with
XMSallocateEMB(). See XMSgetversion().
RETURN TYPE: word
RETURNS: 1 if the block is freed, else 0.


CALLING FORMAT: XMSgetEMBinfo(EMBhandle);
EMBhandle = Extended memory block handle.
SIZE: 11 bytes.
FUNCTION: Returns additional information about an extended memory block.
See XMSgetversion().
RETURN TYPE: word
RETURNS: 1 if block information is found, else 0.
BL = number of free EMB handles in the system
BH = the blocks lock count
DX = the block's length in K


CALLING FORMAT: XMSgetversion();
SIZE: 39 bytes.
FUNCTION: Returns the version of the XMS driver in the current system, or
returns 0 if no XMS driver exists. THIS PROCEDURE MUST BE CALLED
AND RETURN A VALUE OF 0x200 OR GREATER MUST BE CONFIRMED BEFORE
ANY OF THE OTHER XMS????????() FUNCTIONS ARE CALLED. This
function internally obtains the call address for all of the other
XMS?????????() functions.
RETURN TYPE: word
RETURNS: Version of XMS supported, such as 0x0234 for version 2.34, 0 will
be returned if no XMS is supported.
BX = the XMS drivers internal revision number
DX = 1 if the HMA exists, else 0


CALLING FORMAT: XMSglobaldisableA20();
SIZE: 8 bytes.
FUNCTION: Disables the A20 line. This procedure should only called by
programs that control the HMA. See XMSgetversion().
RETURN TYPE: word
RETURNS: 1 if the A20 line is disabled, else 0.


CALLING FORMAT: XMSglobalenableA20();
SIZE: 8 bytes.
FUNCTION: Enables the A20 line. This procedure should only called by
programs that control the HMA. XMSglobaldisableA20() should
be called before a program releases control of the system.
See XMSgetversion().
RETURN TYPE: word
RETURNS: 1 if the A20 line is enabled, else 0.


CALLING FORMAT: XMSlocaldisableA20();
SIZE: 8 bytes.
FUNCTION: Cancels a previous call to XMSlocalenableA20.
See XMSgetversion().
RETURN TYPE: word
RETURNS: 1 if the A20 line is disabled, else 0.


CALLING FORMAT: XMSlocalenableA20();
SIZE: 8 bytes.
FUNCTION: Enables the A20 line. XMSlocaldisableA20() should be called
before a program releases control of the system.
See XMSgetversion().
RETURN TYPE: word
RETURNS: 1 if the A20 line is enabled, else 0.


CALLING FORMAT: XMSlockEMB(EMBhandle);
EMBhandle = Extended memory block handle to lock.
SIZE: 11 bytes.
FUNCTION: Locks and extended memory block and returns a 32bit address to
it. See XMSgetversion().
RETURN TYPE: word
RETURNS: 1 if the block is locked, else 0.
DX:BX = 32bit linear address of the locked block.


CALLING FORMAT: XMSmoveEMB( destoffsethigh,destoffsetlow,desthandle,
sourceoffsethigh,sourceoffsetlow,sourcehandle,
lenghthigh,lengthlow);
destoffsethigh = high word of offset from start of
destination EMB.
destoffsethigh = low word of offset from start of
destination EMB.
desthandle = Extended memory block handle of destination.
sourceoffsethigh = high word of offset from start of
source EMB.
sourceoffsethigh = low word of offset from start of
source EMB.
sourcehandle = Extended memory block handle of source.
lengthhigh = high word of number of byte to transfer.
lengthlow = low word of number of byte to transfer.
SIZE: 25 bytes.
FUNCTION: Copies a block of data from conventional memory or an extended
memory block to conventional memory or an extended memory block.
If desthandle is 0, the destoffsethigh is the segment address of
the destination and destoffsetlow is the offset address of the
destination. The same is true if sourcehandle is 0, thus allowing
conventional memory (first MEG of memory) to be transfered between
EMBs. See XMSgetversion().
RETURN TYPE: word
RETURNS: 1 if the block is copied successfully, else 0.


CALLING FORMAT: XMSqueryA20();
SIZE: 8 bytes.
FUNCTION: Returns whether or not the A20 line is physically enabled.
See XMSgetversion().
RETURN TYPE: word
RETURNS: 1 if the A20 line is enabled, else 0.


CALLING FORMAT: XMSqueryfreeEMB();
SIZE: 8 bytes.
FUNCTION: Returns the size of the largest free extended memory block
available, and the total amount of free extended memory available.
See XMSgetversion().
RETURN TYPE: word
RETURNS: Size in K of the largest free extended memory block.
DX = total amount in K of free extended memory.


CALLING FORMAT: XMSreallocateEMB(newsize,EMBhandle);
newsize = new size desired for EMB in K.
EMBhandle = unlocked EMB handle to resize.
SIZE: 12 bytes.
FUNCTION: Requests a new size for a previously allocated extended memory
block. See XMSgetversion().
RETURN TYPE: word
RETURNS: 1 if block is reallocated, else 0.


CALLING FORMAT: XMSreleaseHMA();
SIZE: 8 bytes.
FUNCTION: Releases the High Memory Area so it can be used by other programs,
it must first be allocated by XMSrequestHMA().
See XMSgetversion().
RETURN TYPE: word
RETURNS: 1 if HMA is released successfully, else 0.


CALLING FORMAT: XMSreleaseUMB(segmentofUMB);
segmentofUMB = segment address of upper memory block.
SIZE: 11 bytes.
FUNCTION: Releases ownership of a previously allocated UMB by a call to
XMSrequestUMB(). See XMSgetversion().
RETURN TYPE: word
RETURNS: 1 if the block is released successfully, else 0.


CALLING FORMAT: XMSrequestHMA(spaceinbytes);
spaceinbytes = number of bytes needed by the caller if
a TSR or device driver, 0xFFFF if an
application program.
SIZE: 11 bytes.
FUNCTION: Attempts to allocate the 64K-16bytes high memory area. If you do
not know what the HMA is or if you do not understand the A20 line
method of addressing the HMA, then don't bother messing with the
HMA.
See XMSgetversion().
RETURN TYPE: word
RETURNS: 1 if the HMA is allocated to the program, else 0.


CALLING FORMAT: XMSrequestUMB(sizeinparagraphs);
sizeinparagraphs = size of requested block in 16 byte units.
SIZE: 11 bytes.
FUNCTION: Attempts to allocated an upper memory block for use by the
program. UMBs are blocks of memory above 640K and below 1024K
that are not being used by video ram, BIOS or ROM.
See XMSgetversion().
RETURN TYPE: word
RETURNS: 1 if the UMB is allocated, else 0.
BX = segment of UMB.
DX = if successful:
actual size of the UMB in paragraphs.
if unsuccessful:
size of largest available UMB in paragraphs.


CALLING FORMAT: XMSunlockEMB(EMBhandle);
EMBhandle = extended memory block handle to unlock.
SIZE: 11 bytes.
FUNCTION: Unlocks a previously locked extended memory block.
See XMSgetversion().
RETURN TYPE: word
RETURNS: 1 if the EMB is unlocked, else 0.


CALLING FORMAT: xorbar19(x,y,xsize,ysize,colour);
x = x coordinate of upper left corner (0 to 319).
y = y coordinate of upper left corner (0 to 199).
xsize = x length of bar.
ysize = y length of bar.
colour = colour for bar.
SIZE: 55 bytes.
FUNCTION: XORs a bar (filled rectangle) with x and y coordinates and x and y
size on the screen with the desired colour in video mode 19
(320x200 256 colours).
RETURNS: nothing.
NOTE: DI and SI are destroyed.


CALLING FORMAT: xorbox19(x,y,xsize,ysize,colour);
x = x coordinate of upper left corner (0 to 319).
y = y coordinate of upper left corner (0 to 199).
xsize = x length of box.
ysize = y length of box.
colour = colour for box.
SIZE: 83 bytes.
FUNCTION: XORs a box (rectangle) with x and y coordinates and x and y size
on the screen with the desired colour in video mode 19 (320x200
256 colours).
RETURNS: nothing.
NOTE: DI and SI are destroyed.


CALLING FORMAT: xorpixel19(x,y,colour);
x = x coordinate to xor pixel (0 to 319).
y = y coordinate to xor pixel (0 to 199).
colour = colour to xor pixel.
SIZE: 32 bytes.
FUNCTION: XORs a pixel on the screen at the desired point with the desired
colour in video mode 19 (320x200 in 256 colours).
RETURNS: nothing.


/* end of STAKPROC.DOC */

  3 Responses to “Category : Assembly Language Source Code
Archive   : C--C0200.ZIP
Filename : STAKPROC.DOC

  1. Very nice! Thank you for this wonderful archive. I wonder why I found it only now. Long live the BBS file archives!

  2. This is so awesome! 😀 I’d be cool if you could download an entire archive of this at once, though.

  3. But one thing that puzzles me is the “mtswslnkmcjklsdlsbdmMICROSOFT” string. There is an article about it here. It is definitely worth a read: http://www.os2museum.com/wp/mtswslnk/