Annotation of xinu/h/intvectors_7300.h, revision 1.1.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.