🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.sys.dec.micro
Article #538

Re: Rainbow EchoMail Digest

#538
From: Warner Losh
Date: Thu, 02 Aug 1990 17:22
65 lines
3731 bytes
>Subject:  "RABIT"
>From:     CHRIS RYAN
>
>What is "RABIT", who has it, where is it, what does it do, why use
>it???

RABIT is a really small program (about 450 bytes last I looked) that
is a TSR that lets you run Turbo products on the Rainbow.  It plays
some unholy games with the interrupts to get things to work right.  A
more detailed explaination is at the end of the article.

>I seem to infer that it has a function similar to Code Blue. YES/NO?

Yes and no.  It does a very very small amount of work.  Code Blue, on
the other hand, does a great deal of work to make sure that the
Rainbow is acting like a PC.

>I guess some description of what it is & HOW to use it is what I am
>really asking for.

How to use it is simple, just run RABIT and it will start being smart
about how INT 18 is handled.  As you may know, INT 18 on the Rainbow
is used to talk to the hardware.  If you want a character from the
keyboard, you issue an INT 18.  If you want to write to the screen,
same thing.  Now then, INT 18 on a PC is used for ROM Basic, or at
least was a long time ago.  Now it is an unused interrupt.  So, for
some reason Boreland needed to establish an INT 18 handler for its
compilers (Turbo C, Turbo C++).  I have no clue what that interface
looks like, all I know is that when they establish its INT 18 handler,
the Rainbow freaks out.  Interrupts OFF message.  So, in the past
George Theall has been providing patches to Turbo C that will allow it
to run on the Rainbow.  These patches worked great, but had the
drawback of being very tied to a particular version of Turbo.  When I
got my Turbo C++, I started to do the patches, but I soon found that
it would be a huge task.  There didn't seem to be any calls to INT 18,
but just patching the places where it set and reset the vectors didn't
work.  So, I came up with RABIT (aka RBINT18).  RABIT is in late beta
right now and will be released just as soon as all of the "known
problems" are worked out somehow.

What Rabit (Rainbow Address Based Interrupt Trapper) does is to trap
all INT 18 calls.  When it gets an INT 18 call, it checks the code
segment that it was called from.  If it was called from where RABIT
was installed or lower in memory, then it calls the INT 18 routine
that was there when RABIT started.  If it was called from the ROM
area, then it calls the INT 18 that was present on startup.  Otherwise
it calls the INT 18 that the program has established.

Now there is one known problem with this scheme that I need to work
out.  If the program executing is running under Code Blue and the
interrupt handler was installed before code blue was started, then if
the program in questions messes around with INT 18, you will have a
crash.  Rabit gets confused in this case.  To solve this, I was
thinking about making it just a normal program that ran, established
its interrupt traps and the forked its command line (or some well know
command followed by its command line).

Ideas, comments, suggestions are welcome.  If you are willing to live
with the "restrictions" in the program now, send me email, or give me
a call at (303)678-4748 (w), and I'll see what I can do about getting
you a copy.  Expect a formal release soon.

Warner				imp@Solboune.COM
--
Warner Losh		imp@Solbourne.COM
Technical Details
Message-ID: <1990Aug2.172219.20528@Solbourne.COM>
Path: arc1-ca.pugleaf.net!utzoo!attcan!uunet!mailrus!ncar!boulder!stan!dancer!imp
References: <9008021236.AA25983@remote.dccs.upenn.edu>

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!attcan!uunet!mailrus!ncar!boulder!stan!dancer!imp
From: imp@dancer.Solbourne.COM (Warner Losh)
Newsgroups: comp.sys.dec.micro
Subject: Re: Rainbow EchoMail Digest
Message-ID: <1990Aug2.172219.20528@Solbourne.COM>
Date: 2 Aug 90 17:22:19 GMT
References: <9008021236.AA25983@remote.dccs.upenn.edu>
Sender: news@Solbourne.COM
Organization: Solbourne Computers Inc.
Lines: 65