home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Monster Media 1994 #1
/
monster.zip
/
monster
/
PROG_GEN
/
RAMSWAP.ZIP
/
RAMSWAP.DOC
< prev
next >
Wrap
Text File
|
1994-01-26
|
6KB
|
104 lines
**** RAMSWAP.COM driver and RAMSWAP.TPU Turbo Pascal interface to driver.
(requires DOS 3.0 or higher)
Use this address to register, registration info and fee info below.
Author: Anthony W. Henry
2307 23rd St. #1
ZION, IL 60099
CS: 73073,3404
INTERNET: 73073.3404@compuserve.com
What is RAMSWAP.
RamSwap is an assembly language program written to allow a programmer
to write a large complex application under the DOS environment and still
have plenty of memory for child processes. It takes a fairly simple
approach. (I say simple, but it was my first and so far only major proj-
ect in pure assembly language, and was quite a chore.) When RAMSWAP is
envoked from the command line it looks for a program with the same name
as the .COM file and the extension .EXE in the directory from which it
was launched. It then executes that .EXE file and provides 1024 bytes
permanent (as long as RAMSWAP is loaded) storage for the .EXE file in
RAM. The .EXE file is expected to leave the full path and file name to
another executable file and command line parameters for that program in
the RAMSWAP's Data segment. (Procedures to simplify this are in the
RAMSWAP Unit *** See RAMSWAP.INT *** So you don't have to mess around with
pointers if you don't want to). The .EXE file then terminates, freeing
all it's memory, RAMSWAP takes up about 2400 bytes of memory everything
else is left for the child. Upon the childs termination RAMSWAP restarts
the control program. This is approximately the same approach though
not quite as sophisticated as DOSSHELL takes in DOS 5 and 6 then again
DOSSHELL takes over 30,000 bytes from child programs.
Using RAMSWAP with Turbo Pascal.
Do most of your complicated work and Debugging before
integrating the RAMSWAP unit into your application. Once you use RAMSWAP
your application will not run correctly from the Development environment.
Use EXEC if testing child processes is essential to the debugging.
Once this is done ( I know, it never really is done.) and you've
studied RAMSWAP.INT Go ahead and put the RAMSWAP unit in your
USES statement for your program. Change your program logic as required
for RAMSWAP's approach and give SWAPEXEC a try.
Compile your program to disk and make a copy of RAMSWAP.COM to use with
your program. To make RAMSWAP.COM load your program all you have to
do is give it the same name, put it in the same directory and have
DOS 3.0 or above (If you don't have at least 5.0 your probably in the
computer stone age any way)
EXAMPLE:
Your program is an editor that loads a command line compiler to
compile program source code, It's name is PREDIT.EXE (original Huh :-)
Just COPY RAMSWAP.COM PREDIT.COM and put PREDIT.COM in the same
directory where resides PREDIT.EXE then the command line PREDIT %1 %2
will load PREDIT.COM which will in turn load PREDIT.EXE passing it
all of the command line parameters given to PREDIT.COM and your
swap session is up and running.
*****************************************************************************
* *
* POSSIBLE APPLICATIONS. *
* *
* That menu system you've alway wanted to write. *
* *
* A powerful programming editor that calls compilers and *
* gives them plenty of memory. *
* *
* A sophisticated accounting system where each sub-system takes *
* most of DOS's memory. (This one might be better accomplished *
* with Overlays but RAMSWAP could do it too.) *
* *
* A COMMAND.COM replacement. *
* *
* *
*****************************************************************************
Using it with other languages then PASCAL. I'm currently working on
a QuickBasic 4.5 .QLB and .LIB file to interface with it. (I'm in
the computer stone age too, huh?) If you are a C programmer and you
send me $5.00 to cover my time and stamps I'll mail you a detailed
enough description to interface with the module. I haven't given the
description a whole lot of thought yet but I have a good friend who
programs in C++ and we don't have to much problem converting info back
and forth.
Licensing:
Personal use. Use it as you see fit if it stays in your home, No charge.
Distribute it freely to BBS's as long as all of the files are included.
If you use it for a business or shareware application that makes money
I would greatly appreciate a registration fee of $20.00 for my time.
This would incline my wife greatly towards letting me program more.
All registrations will include printed source code to both the PASCAL
Unit and the Assembly module.