Annotation of xinu/h/intvectors_7300.h, revision 1.1

1.1     ! root        1: /* intvectors.h: header file for interrupt programming on att7300 */
        !             2: 
        !             3: typedef int (*intvec) ();      /* an intvec is a ptr to a fn */
        !             4: 
        !             5: /* each vector is at address = 4*(intvec slot #) */
        !             6: /* for ex. the console is at vec slot 29, at address 4*29=116=0x74 */
        !             7: /* All interrupts on the ATT7300 are "autovectored", so they have */
        !             8: /* fixed vector locations as follows--                            */
        !             9: 
        !            10: #define CLOCKVEC (*(intvec *)0x78)  /* clock interrupt */
        !            11: #define CLOCKLEV 6
        !            12: #define SLUVEC1 (*(intvec *)0x70)  /* the SLU1 int vec at addr 0x70 */
        !            13: #define SLU1LEV 4              /* interrupt level for SLU1 */
        !            14: #define SLUVEC3 (*(intvec *)0x6c) /* SLU3 int vec: keyboard */
        !            15: #define SLU3LEV 3              /* int lev for SLU3 */
        !            16: #define PIVEC (*(intvec *)0x68)  /* the parallel port, also floppy */
        !            17: #define PILEV 2
        !            18: 
        !            19: /*  Assembly language envelope routines are available in the att7300
        !            20: library for the interrupt handlers needed for each of the vectors
        !            21: defined above.   For example, for the console, SLU1, device, there
        !            22: is:
        !            23: .globl _slu1int                        | make _slu1int extern
        !            24:  
        !            25:  _slu1int: movel a0,sp@-               | save C scratch regs
        !            26:        movel a1,sp@-
        !            27:        movel d0,sp@-
        !            28:        movel d1,sp@-           | (or use movem for better performance)
        !            29:        jsr _slu1intc           | C will save other regs on entry to routine
        !            30:        movel sp@+,d1
        !            31:        movel sp@+,d0
        !            32:        movel sp@+,a1
        !            33:        movel sp@+,a0
        !            34:        rte                     | return from interrupt
        !            35: 
        !            36: Similar routines are available for:
        !            37: slu2int, calling slu2intc
        !            38: clockint, calling clockintc
        !            39: spurint, calling spurintc
        !            40: */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.