| /**************************************************************************** |
| |
| 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 |