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