🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.sys.next.programmer
Article #2158

Re: 8 bits AND parity, please

#2158
From: Derek Taubert
Date: Sat, 19 Dec 1992 22:05
45 lines
2779 bytes
> of the hardware.  The DSP and serial ports are the easiest IMO to write drivers
> for, as all you need is in header files hanging around on the system.

That WERE hanging around.  Read on...

> /usr/include/nextdev/zscom.h has the kernel entry points for a driver to
> acquire and install interrupts for each of the serial ports. At driver open
> you call zsacquire(0 or 1 (a or b), ZCUSER_LOADABLE, intrsw) with
> intrsw filled in (see zscom.h) with a tx/rx and line state change interrupt
> routine. 'chan' would be the device port (0 or 1).  and zsrelease is done
> when the device is close'd.
> /usr/include/nextdev/zsreg.h has all the defines you probably need for
> accessing the 8530 hardware directly. ZSADDR_A = serial port A's hardware
> registers. ZSADDR_B = serial port B's hardware registers. An 8530 manual
> would be a must at this stage...  ZSREAD_A et al are handy macros for accessing
> the hardware and such.

Great.  Except for one thing.  Under 3.0, zscom.h has disappeared, and zsreg.h
has this to say:

 * 22-May-91  Gregg Kellogg (gk) at NeXT
 *	Split out public interface.

No ZSADDR_A anywhere in all of /usr/include, no P_SCC in any of the cpu.h.
Anybody have suggestions so that I don't have to set up all of the 2.x header
files?  Thank you NeXT, for making it this much harder for me to hack into
your kernel segments!!!  I would really like an ACCEPTABLE explanation for
this from them.

struct zs_intrsw {              /* interrupt switch */
        int (*zi_xint)(int chan);       /* transmitter interrupt routine */
        int (*zi_rint)(int chan);       /* receiver interrupt routine */
        int (*zi_sint)(int chan);       /* status change interrupt routine */
};

I assume the interrupt routines are passed the SCC channel that generated them
(same as unit in the zsacquire call?), but what to return from them?

> And disassembling the MIDI driver and kernel is a good idea for pointers...

Yup.  HAD I spoken to anybody at NeXT about this, they MIGHT just have said
this as well (ahem).  Is there a 68040 disassembler shipped with NS, if not,
where to get one?  I assume not, since no man page for 'dis'.

Derek
Technical Details
Message-ID: <1992Dec19.220522.2234@slab.slip.uiuc.edu>
Path: arc1-ca.pugleaf.net!sparky!uunet!spool.mu.edu!sdd.hp.com!cs.utexas.edu!usc!sol.ctr.columbia.edu!news.unomaha.edu!slab.slip.uiuc.edu!derek
References: <1992Dec15.182315.6970@zetetic.uucp> <BzE0qx.559@nic.umass.edu> <1992Dec17.182417.28639@netcom.com> <BzFuCK.9G3@nic.umass.edu>

Show Full Headers
Complete Article Headers
Newsgroups: comp.sys.next.programmer
Path: arc1-ca.pugleaf.net!sparky!uunet!spool.mu.edu!sdd.hp.com!cs.utexas.edu!usc!sol.ctr.columbia.edu!news.unomaha.edu!slab.slip.uiuc.edu!derek
From: derek@slab.slip.uiuc.edu (Derek Taubert)
Subject: Re: 8 bits AND parity, please
Message-ID: <1992Dec19.220522.2234@slab.slip.uiuc.edu>
Reply-To: derek@slab.slip.uiuc.edu (Derek Taubert)
Organization: Damage, inc.
References: <1992Dec15.182315.6970@zetetic.uucp> <BzE0qx.559@nic.umass.edu> <1992Dec17.182417.28639@netcom.com> <BzFuCK.9G3@nic.umass.edu>
Date: Sat, 19 Dec 1992 22:05:22 GMT
Lines: 45