1 /**************************************************************************** 2 3 THIS SOFTWARE IS NOT COPYRIGHTED 4 5 HP offers the following for use in the public domain. HP makes no 6 warranty with regard to the software or it's performance and the 7 user accepts the software "AS IS" with all faults. 8 9 HP DISCLAIMS ANY WARRANTIES, EXPRESS OR IMPLIED, WITH REGARD 10 TO THIS SOFTWARE INCLUDING BUT NOT LIMITED TO THE WARRANTIES 11 OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 12 13 ****************************************************************************/ 14 15 /* Interrupt Vector Table entry macros */ 16 17 #define cstring(Len,String) .byte Len !\ 18 .string String 19 20 #define cstringz(Len,String) .byte Len !\ 21 .stringz String 22 23 AdvancePCOQ .macro 24 mtctl %r0,%pcoq ; throw away iiaoq head pointer, tail->head 25 mfctl %pcoq,%r1 ; get tail pointer 26 mtctl %r1,%pcoq ; insert tail pointer 27 ldo 4(%r1),%r1 ; advance tail pointer 28 mtctl %r1,%pcoq ; insert new tail pointer, former tail->head 29 .endm 30 31 #ifdef PRINTSTRING_LED 32 PrintString .macro NString,Num 33 bl put_led,%mrp 34 ldi Num+0xa0,%arg2 35 addil L%NString-$global$,%dp 36 bl puts,%rp 37 ldo R%NString-$global$(%r1),%arg0 38 b,n . 39 nop 40 .endm 41 #endif 42 43 #ifdef HALT 44 45 PrintString .macro NString,Num 46 bl,n save_state,%r25 47 nop 48 bl print_intr,%rp 49 ldi NString-Str01,%arg0 50 bl print_state,%rp 51 nop 52 b,n halt 53 nop 54 .endm 55 56 #endif 57 58 #ifdef RECOVER 59 60 PrintString .macro NString,Num 61 bl,n save_state,%r25 62 nop 63 bl print_intr,%rp 64 ldi NString-Str01,%arg0 65 bl print_state,%rp 66 nop 67 b,n recover 68 nop 69 .endm 70 71 #endif 72 73 PrintString .macro NString,Num 74 bl,n save_state,%r25 75 nop 76 bl print_intr,%rp 77 ldi NString-Str01,%arg0 78 #ifdef FULL_REPORT 79 bl print_state,%rp 80 #else 81 nop 82 #endif 83 nop 84 b restore_to_STUB 85 ldi Num,%r1 86 .endm 87 88 89 /* IVA register array offets */ 90 91 #define R_sr0 0 92 #define R_sr1 4 93 #define R_sr2 8 94 #define R_sr3 12 95 #define R_sr4 16 96 #define R_sr5 20 97 #define R_sr6 24 98 #define R_sr7 28 99 100 #define R_gr0 32 101 #define R_gr1 36 102 #define R_gr2 40 103 #define R_gr3 44 104 #define R_gr4 48 105 #define R_gr5 52 106 #define R_gr6 56 107 #define R_gr7 60 108 #define R_gr8 64 109 #define R_gr9 68 110 #define R_gr10 72 111 #define R_gr11 76 112 #define R_gr12 80 113 #define R_gr13 84 114 #define R_gr14 88 115 #define R_gr15 92 116 #define R_gr16 96 117 #define R_gr17 100 118 #define R_gr18 104 119 #define R_gr19 108 120 #define R_gr20 112 121 #define R_gr21 116 122 #define R_gr22 120 123 #define R_gr23 124 124 #define R_gr24 128 125 #define R_gr25 132 126 #define R_gr26 136 127 #define R_gr27 140 128 #define R_gr28 144 129 #define R_gr29 148 130 #define R_gr30 152 131 #define R_gr31 156 132 133 #define R_rctr 160 134 #define R_cpu0 164 135 #define R_pidr1 168 136 #define R_pidr2 172 137 #define R_ccr 176 138 #define R_sar 180 139 #define R_pidr3 184 140 #define R_pidr4 188 141 #define R_iva 192 142 #define R_eiem 196 143 144 #define R_itmr 200 145 #define R_pcsqH 204 146 #define R_pcoqH 208 147 #define R_iir 212 148 #define R_pcsqT 216 149 #define R_pcoqT 220 150 #define R_isr 224 151 #define R_ior 228 152 #define R_ipsw 232 153 #define R_eirr 236 154 155 #define R_tr0 240 156 #define R_tr1 244 157 #define R_tr2 248 158 #define R_tr3 252 159 #define R_tr4 256 160 #define R_tr5 260 161 #define R_tr6 264 162 #define R_tr7 268 163 164 #define R_SIZE 272 165