libc/libgloss/hp74x/iva_table.h

165 lines
3.1 KiB
C

/****************************************************************************
THIS SOFTWARE IS NOT COPYRIGHTED
HP offers the following for use in the public domain. HP makes no
warranty with regard to the software or it's performance and the
user accepts the software "AS IS" with all faults.
HP DISCLAIMS ANY WARRANTIES, EXPRESS OR IMPLIED, WITH REGARD
TO THIS SOFTWARE INCLUDING BUT NOT LIMITED TO THE WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
****************************************************************************/
/* Interrupt Vector Table entry macros */
#define cstring(Len,String) .byte Len !\
.string String
#define cstringz(Len,String) .byte Len !\
.stringz String
AdvancePCOQ .macro
mtctl %r0,%pcoq ; throw away iiaoq head pointer, tail->head
mfctl %pcoq,%r1 ; get tail pointer
mtctl %r1,%pcoq ; insert tail pointer
ldo 4(%r1),%r1 ; advance tail pointer
mtctl %r1,%pcoq ; insert new tail pointer, former tail->head
.endm
#ifdef PRINTSTRING_LED
PrintString .macro NString,Num
bl put_led,%mrp
ldi Num+0xa0,%arg2
addil L%NString-$global$,%dp
bl puts,%rp
ldo R%NString-$global$(%r1),%arg0
b,n .
nop
.endm
#endif
#ifdef HALT
PrintString .macro NString,Num
bl,n save_state,%r25
nop
bl print_intr,%rp
ldi NString-Str01,%arg0
bl print_state,%rp
nop
b,n halt
nop
.endm
#endif
#ifdef RECOVER
PrintString .macro NString,Num
bl,n save_state,%r25
nop
bl print_intr,%rp
ldi NString-Str01,%arg0
bl print_state,%rp
nop
b,n recover
nop
.endm
#endif
PrintString .macro NString,Num
bl,n save_state,%r25
nop
bl print_intr,%rp
ldi NString-Str01,%arg0
#ifdef FULL_REPORT
bl print_state,%rp
#else
nop
#endif
nop
b restore_to_STUB
ldi Num,%r1
.endm
/* IVA register array offets */
#define R_sr0 0
#define R_sr1 4
#define R_sr2 8
#define R_sr3 12
#define R_sr4 16
#define R_sr5 20
#define R_sr6 24
#define R_sr7 28
#define R_gr0 32
#define R_gr1 36
#define R_gr2 40
#define R_gr3 44
#define R_gr4 48
#define R_gr5 52
#define R_gr6 56
#define R_gr7 60
#define R_gr8 64
#define R_gr9 68
#define R_gr10 72
#define R_gr11 76
#define R_gr12 80
#define R_gr13 84
#define R_gr14 88
#define R_gr15 92
#define R_gr16 96
#define R_gr17 100
#define R_gr18 104
#define R_gr19 108
#define R_gr20 112
#define R_gr21 116
#define R_gr22 120
#define R_gr23 124
#define R_gr24 128
#define R_gr25 132
#define R_gr26 136
#define R_gr27 140
#define R_gr28 144
#define R_gr29 148
#define R_gr30 152
#define R_gr31 156
#define R_rctr 160
#define R_cpu0 164
#define R_pidr1 168
#define R_pidr2 172
#define R_ccr 176
#define R_sar 180
#define R_pidr3 184
#define R_pidr4 188
#define R_iva 192
#define R_eiem 196
#define R_itmr 200
#define R_pcsqH 204
#define R_pcoqH 208
#define R_iir 212
#define R_pcsqT 216
#define R_pcoqT 220
#define R_isr 224
#define R_ior 228
#define R_ipsw 232
#define R_eirr 236
#define R_tr0 240
#define R_tr1 244
#define R_tr2 248
#define R_tr3 252
#define R_tr4 256
#define R_tr5 260
#define R_tr6 264
#define R_tr7 268
#define R_SIZE 272