Dec Rainbow prehistory

From: Dave Mitton <dave_at_mitton.com>
Date: Thu Nov 20 21:36:11 2003

On 11/20/2003 01:19 AM -0600, cctech-request_at_classiccmp.org wrote:
>Date: 19 Nov 2003 16:00:12 -0800
>From: Tom Jennings <tomj_at_wps.com>
>Subject: Re: Dec Rainbow prehistory
>
>On Tue, 2003-11-18 at 22:29, Dave Mitton wrote:
>
>.<snip>..
>Yeah, they were stupid too. I've got two words for the IBM PC ROM code:
>ug lee. The biggest steamroller wins.

Well it wasn't obvious at first where we were going. I was not involved
with the design of the Rainbow, but I was involved with the New England
Computer Society, a some what professional hobbyist group. Many of us
thought the original IBM PC was not a serious product. Remember it wasn't
until the XT that it got a hard drive.

> > I remember the MHFU watchdog and the Vertical Retrace Interupt. The
> DECnet
> > kernel basically ran as an interrupt driven background TSR. On the IBM PC
> > we easily shelled off the 1C clock tick, but on the Rainbow, we had to
> > build "clever" reentrancy shells around several interrupts to avoid some
> > wierd stack overflow or reentrancy into the video BIOS.
>
>Ahh... now I get it. I wasn't told even this much back then!!

We weren't told. I/we had to figure it out. It became quickly apparent
there was a problem, and only by debugging around the system did we figure
out what to do.

The VR routine re-enabled interrupts and continued doing video memory things.
If you interrupted it, for say comm I/O, and then re-enabled interrupts
yourself, and you did not return to it by the next VR interrupt, it would
corrupt itself as it wasn't written for reentrancy.
How we dealt with this, changed over time, as some of my team got
"cleverer" in later releases. But even if it could be made re-entrant, you
really want it to run to completion instead of stack up anyways. A
semaphore shell on that interrupt routine, and cross-checking this flag in
our other interrupts, would make sure it was done before we did any major
time consuming work with interrupts re-enabled.

ohh gawd, you woke the forgotten memory of the shared HW/SW interrupt
vector.... noooo ... I won't go there..... <shreeking>

>I do recall some severe stack-depth problem, I had to switch stack
>pointers in the I/O drivers somewhere I recall. I think. Wish I had the
>code!
>
> > The Rainbow at least had a decent UART with a multicharacter FIFO. I had
> > no problem doing 19.2kbs using C routines. That stupid XT UART could
> > barely do 9600 with an optimized state driven assembly routine. UART
> FIFOs
> > didn't appear until the IBM PS/2 Model 50.
>
>Yes, when DEC applied themselves without weird non-functional agendas
>they made really nice stuff. It made a nice Fido bulletin board (umm but
>not the 100A's... :-(

I ran a FIDOnet on one replacing my S-100 CP/M CBBS system... The later of
which I just sold on eBay a few weeks ago.

Dave.
Received on Thu Nov 20 2003 - 21:36:11 GMT

This archive was generated by hypermail 2.3.0 : Fri Oct 10 2014 - 23:36:20 BST