COMP - COMPosite device driver
Written by "another madisonian"
This is version 1.0 which is pretty much an untested/untried/
un[anything else you can think of] version - i.e. it's still pretty rough.
So, if (or, when) you encounter any bugs (i.e. trying to load up the same
device twice and "crash!") lemme know. You can bet I'm not going to take any
responsibility if COMP somehow screws your computer up. (i.e. officially: "I
take no responsibility for COMP or anything it does.", etc.) To contact me,
you can mail me on the ethernet at "[email protected]
", or leave mail
for me on the IBMUG BBS (madison- (608) 256-8088).
Everything is free (no strings attached,) the sourcecode (when released,)
will be free/etc. Completely public domain.
Usage: in order to use COMP at all, you must include the following line
in your CONFIG.SYS file as the LAST device loaded (!) -
When you boot up the computer, COMP will give print a little ditty with an
ego-booster (i.e. my name) to the screen to show that it has been loaded.
If you don't include COMP as the last device loaded, it will only be able to
'see' the devices loaded before it, and any loaded after it COMP will be
After COMP is loaded, the following are active:
COMP$ a new device COMP$ which performs slow i/o
to the screen using vid intrpt 10hex. The
only reason these i/o channels exist is so
that if you CTTY COMP$ the system won't hang.
statd get a list of char device driver names
linkd [path] [device file] load up new device
i.e. to load ANSI.SYS from the root dir,
type : 'linkd \ansi.sys'
ulinkd [device name] unlink device loaded by linkd
note: device name is case sensitive, so
to unlink the CON device, you must type
'CON' not 'con'. BUG: don't unlink the
ANSI.SYS driver (although I'd suspect it's
Ok to unlink NANSI,) as it remains resident
even AFTER it's been unloaded (twilight
zone music inserted here,) and will probably
crash your system, too.
NOTE: COMP currently uses interrupt 60hex for it's own uses, so computers
which already have this interrupt set for some other important function
will have to wait for the next version of COMP to come out. (Very soon)
1) include a TSR program to echo everything to both COM1: and CON: when
you CTTY COM1 (or 2). This is for those BBS'ers who'd like to offer shelling
to DOS, but want to SEE what the intrepid user is messing up. The new command
would be CTTY COMP$. Further, COMP would notice repeated errors by the COM
devices, so if a user wasn't connected, we could put the standard device back
to CON to continue about our business.
2) allow TSR programs to print to the current CONsole device. This is a
real nuisance for us poor TSR program writers who all of a sudden realize
interrupt 21hex is not re-entrant and cannot be used in most TSR applications.
3) allow the user to write simple char input and char output routines, and
call them from COMP$. (i.e. COMP$, whenever asked for char i/o, will call your
routine) However, most people will probably simply modify the sample device
driver to do the same thing.
5) whatever else I, or anybody else, can dream up. (So, dream something
up and leave me a message)
Ok, some of you real programmers out there wanna see the source and
know how this thing works. I plan to release the source very soon (it's not
too long,) and include a sample device driver, as well as tips in writing
device drivers and interrupt routines. I have set up interrupt 60hex to be
used by any application and have included some useful functions - i.e. find
file size, load file into address, get address of first device driver, etc..
This is the reason I have not yet released the code - I may change these
functions and would like to tidy up things a bit. If you're so impatient that
you can't wait (screwing up mouth,) contact me voice at (608) 238-1475 (after
5:30,) or (608) 263-9720 between 2:00pm and 5:00pm.
ON THE SHELF:
Diplomacy! (yeah!) Well, it's already written in Turbo Pascal (later to
be rewritten in C,) and is intended for shelling options on BBSs. It runs
about 40 pages long (not including libraries/etc.), and is probably some pascal
author's epitome of bad programming. Needs some ironing and beefing up first,
so if any interested programmers out there want to finish it.. 🙂