]>
wirehaze git hosting - BOS.git/blob - kernel/int/isr.asm
f45357d45651f5ac9e7fe48a0ad5df7b66b5ad41
1 ;----------------------------------------------------------;
2 ; BOS 0.04 Christoffer Bubach, 2004. ;
3 ;----------------------------------------------------------;
5 ; ISR (Interrupt Service Rutines). ;
7 ;----------------------------------------------------------;
11 ;------------------------;
12 ; Unhandled Interrupt ;
13 ;------------------------;
15 mov [dbg_keypress
], 0 ; in debug.inc
17 mov [dbg_error
+1], 'n'
18 mov [dbg_error
+2], 'h'
19 mov [dbg_error
+3], 'a'
20 mov [dbg_error
+4], 'n'
21 mov [dbg_error
+5], 'd'
22 mov [dbg_error
+6], 'l'
23 mov [dbg_error
+7], 'e'
24 mov [dbg_error
+8], 'd'
25 mov [dbg_error
+9], ' '
26 mov [dbg_error
+10], 'I'
27 mov [dbg_error
+11], 'n'
28 mov [dbg_error
+12], 't'
29 mov [dbg_error
+13], ' '
34 ;-------------------------------;
35 ; Exception Interrupt no. 00 ;
36 ;-------------------------------;
40 mov [dbg_error
+1], 'i'
41 mov [dbg_error
+2], 'v'
42 mov [dbg_error
+3], 'i'
43 mov [dbg_error
+4], 'd'
44 mov [dbg_error
+5], 'e'
45 mov [dbg_error
+6], ' '
46 mov [dbg_error
+7], 'e'
47 mov [dbg_error
+8], 'r'
48 mov [dbg_error
+9], 'r'
49 mov [dbg_error
+10], 'o'
50 mov [dbg_error
+11], 'r'
51 mov [dbg_error
+12], ' '
52 mov [dbg_error
+13], ' '
57 ;-------------------------------;
58 ; Exception Interrupt no. 01 ;
59 ;-------------------------------;
63 mov [dbg_error
+1], 'e'
64 mov [dbg_error
+2], 'b'
65 mov [dbg_error
+3], 'u'
66 mov [dbg_error
+4], 'g'
67 mov [dbg_error
+5], ' '
68 mov [dbg_error
+6], 'f'
69 mov [dbg_error
+7], 'a'
70 mov [dbg_error
+8], 'u'
71 mov [dbg_error
+9], 'l'
72 mov [dbg_error
+10], 't'
73 mov [dbg_error
+11], ' '
74 mov [dbg_error
+12], ' '
75 mov [dbg_error
+13], ' '
80 ;-------------------------------;
81 ; Exception Interrupt no. 02 ;
82 ;-------------------------------;
86 mov [dbg_error
+1], 'M'
87 mov [dbg_error
+2], 'I'
88 mov [dbg_error
+3], ' '
89 mov [dbg_error
+4], 'i'
90 mov [dbg_error
+5], 'n'
91 mov [dbg_error
+6], 't'
92 mov [dbg_error
+7], 'e'
93 mov [dbg_error
+8], 'r'
94 mov [dbg_error
+9], 'r'
95 mov [dbg_error
+10], 'u'
96 mov [dbg_error
+11], 'p'
97 mov [dbg_error
+12], 't'
98 mov [dbg_error
+13], ' '
103 ;-------------------------------;
104 ; Exception Interrupt no. 03 ;
105 ;-------------------------------;
107 mov [dbg_keypress
], 0
109 mov [dbg_error
+1], 'r'
110 mov [dbg_error
+2], 'e'
111 mov [dbg_error
+3], 'a'
112 mov [dbg_error
+4], 'k'
113 mov [dbg_error
+5], 'p'
114 mov [dbg_error
+6], 'o'
115 mov [dbg_error
+7], 'i'
116 mov [dbg_error
+8], 'n'
117 mov [dbg_error
+9], 't'
118 mov [dbg_error
+10], ' '
119 mov [dbg_error
+11], ' '
120 mov [dbg_error
+12], ' '
121 mov [dbg_error
+13], ' '
122 mov [dbg_error
+14], 0
126 ;-------------------------------;
127 ; Exception Interrupt no. 04 ;
128 ;-------------------------------;
130 mov [dbg_keypress
], 0
132 mov [dbg_error
+1], 'v'
133 mov [dbg_error
+2], 'e'
134 mov [dbg_error
+3], 'r'
135 mov [dbg_error
+4], 'f'
136 mov [dbg_error
+5], 'l'
137 mov [dbg_error
+6], 'o'
138 mov [dbg_error
+7], 'w'
139 mov [dbg_error
+8], ' '
140 mov [dbg_error
+9], 'f'
141 mov [dbg_error
+10], 'a'
142 mov [dbg_error
+11], 'u'
143 mov [dbg_error
+12], 'l'
144 mov [dbg_error
+13], 't'
145 mov [dbg_error
+14], 0
149 ;-------------------------------;
150 ; Exception Interrupt no. 05 ;
151 ;-------------------------------;
153 mov [dbg_keypress
], 0
155 mov [dbg_error
+1], 'o'
156 mov [dbg_error
+2], 'u'
157 mov [dbg_error
+3], 'n'
158 mov [dbg_error
+4], 'd'
159 mov [dbg_error
+5], 's'
160 mov [dbg_error
+6], ' '
161 mov [dbg_error
+7], 'c'
162 mov [dbg_error
+8], 'h'
163 mov [dbg_error
+9], 'e'
164 mov [dbg_error
+10], 'c'
165 mov [dbg_error
+11], 'k'
166 mov [dbg_error
+12], ' '
167 mov [dbg_error
+13], ' '
168 mov [dbg_error
+14], 0
172 ;-------------------------------;
173 ; Exception Interrupt no. 06 ;
174 ;-------------------------------;
176 mov [dbg_keypress
], 0
178 mov [dbg_error
+1], 'n'
179 mov [dbg_error
+2], 'v'
180 mov [dbg_error
+3], 'a'
181 mov [dbg_error
+4], 'l'
182 mov [dbg_error
+5], 'i'
183 mov [dbg_error
+6], 'd'
184 mov [dbg_error
+7], ' '
185 mov [dbg_error
+8], 'o'
186 mov [dbg_error
+9], 'p'
187 mov [dbg_error
+10], 'c'
188 mov [dbg_error
+11], 'o'
189 mov [dbg_error
+12], 'd'
190 mov [dbg_error
+13], 'e'
191 mov [dbg_error
+14], 0
195 ;-------------------------------;
196 ; Exception Interrupt no. 07 ;
197 ;-------------------------------;
199 mov [dbg_keypress
], 0
201 mov [dbg_error
+1], 'o'
202 mov [dbg_error
+2], ' '
203 mov [dbg_error
+3], 'c'
204 mov [dbg_error
+4], 'o'
205 mov [dbg_error
+5], 'p'
206 mov [dbg_error
+6], '.'
207 mov [dbg_error
+7], ' '
208 mov [dbg_error
+8], 'a'
209 mov [dbg_error
+9], 'v'
210 mov [dbg_error
+10], 'a'
211 mov [dbg_error
+11], 'i'
212 mov [dbg_error
+12], 'l'
213 mov [dbg_error
+13], '.'
214 mov [dbg_error
+14], 0
218 ;-------------------------------;
219 ; Exception Interrupt no. 08 ;
220 ;-------------------------------;
222 mov [dbg_keypress
], 0
224 mov [dbg_error
+1], 'o'
225 mov [dbg_error
+2], 'u'
226 mov [dbg_error
+3], 'b'
227 mov [dbg_error
+4], 'l'
228 mov [dbg_error
+5], 'e'
229 mov [dbg_error
+6], ' '
230 mov [dbg_error
+7], 'f'
231 mov [dbg_error
+8], 'a'
232 mov [dbg_error
+9], 'u'
233 mov [dbg_error
+10], 'l'
234 mov [dbg_error
+11], 't'
235 mov [dbg_error
+12], ' '
236 mov [dbg_error
+13], ' '
237 mov [dbg_error
+14], 0
241 ;-------------------------------;
242 ; Exception Interrupt no. 09 ;
243 ;-------------------------------;
245 mov [dbg_keypress
], 0
247 mov [dbg_error
+1], 'o'
248 mov [dbg_error
+2], 'p'
249 mov [dbg_error
+3], 'r'
250 mov [dbg_error
+4], 'o'
251 mov [dbg_error
+5], '.'
252 mov [dbg_error
+6], ' '
253 mov [dbg_error
+7], 's'
254 mov [dbg_error
+8], 'e'
255 mov [dbg_error
+9], 'g'
256 mov [dbg_error
+10], 'm'
257 mov [dbg_error
+11], 'e'
258 mov [dbg_error
+12], 'n'
259 mov [dbg_error
+13], 't'
260 mov [dbg_error
+14], 0
264 ;-------------------------------;
265 ; Exception Interrupt no. 10 ;
266 ;-------------------------------;
268 mov [dbg_keypress
], 0
270 mov [dbg_error
+1], 'n'
271 mov [dbg_error
+2], 'v'
272 mov [dbg_error
+3], 'a'
273 mov [dbg_error
+4], 'l'
274 mov [dbg_error
+5], 'i'
275 mov [dbg_error
+6], 'd'
276 mov [dbg_error
+7], ' '
277 mov [dbg_error
+8], 'T'
278 mov [dbg_error
+9], 'S'
279 mov [dbg_error
+10], 'S'
280 mov [dbg_error
+11], '!'
281 mov [dbg_error
+12], ' '
282 mov [dbg_error
+13], ' '
283 mov [dbg_error
+14], 0
287 ;-------------------------------;
288 ; Exception Interrupt no. 11 ;
289 ;-------------------------------;
291 mov [dbg_keypress
], 0
293 mov [dbg_error
+1], 'o'
294 mov [dbg_error
+2], ' '
295 mov [dbg_error
+3], 's'
296 mov [dbg_error
+4], 'e'
297 mov [dbg_error
+5], 'g'
298 mov [dbg_error
+6], 'm'
299 mov [dbg_error
+7], 'e'
300 mov [dbg_error
+8], 'n'
301 mov [dbg_error
+9], 't'
302 mov [dbg_error
+10], '!'
303 mov [dbg_error
+11], ' '
304 mov [dbg_error
+12], ' '
305 mov [dbg_error
+13], ' '
306 mov [dbg_error
+14], 0
310 ;-------------------------------;
311 ; Exception Interrupt no. 12 ;
312 ;-------------------------------;
314 mov [dbg_keypress
], 0
316 mov [dbg_error
+1], 't'
317 mov [dbg_error
+2], 'a'
318 mov [dbg_error
+3], 'c'
319 mov [dbg_error
+4], 'k'
320 mov [dbg_error
+5], ' '
321 mov [dbg_error
+6], 'f'
322 mov [dbg_error
+7], 'a'
323 mov [dbg_error
+8], 'u'
324 mov [dbg_error
+9], 'l'
325 mov [dbg_error
+10], 't'
326 mov [dbg_error
+11], '!'
327 mov [dbg_error
+12], ' '
328 mov [dbg_error
+13], ' '
329 mov [dbg_error
+14], 0
333 ;-------------------------------;
334 ; Exception Interrupt no. 13 ;
335 ;-------------------------------;
337 mov [dbg_keypress
], 0
339 mov [dbg_error
+1], 'r'
340 mov [dbg_error
+2], 'i'
341 mov [dbg_error
+3], 'p'
342 mov [dbg_error
+4], 'l'
343 mov [dbg_error
+5], 'e'
344 mov [dbg_error
+6], ' '
345 mov [dbg_error
+7], 'f'
346 mov [dbg_error
+8], 'a'
347 mov [dbg_error
+9], 'u'
348 mov [dbg_error
+10], 'l'
349 mov [dbg_error
+11], 't'
350 mov [dbg_error
+12], '!'
351 mov [dbg_error
+13], ' '
352 mov [dbg_error
+14], 0
356 ;-------------------------------;
357 ; Exception Interrupt no. 14 ;
358 ;-------------------------------;
360 mov [dbg_keypress
], 0
362 mov [dbg_error
+1], 'a'
363 mov [dbg_error
+2], 'g'
364 mov [dbg_error
+3], 'e'
365 mov [dbg_error
+4], ' '
366 mov [dbg_error
+5], 'f'
367 mov [dbg_error
+6], 'a'
368 mov [dbg_error
+7], 'u'
369 mov [dbg_error
+8], 'l'
370 mov [dbg_error
+9], 't'
371 mov [dbg_error
+10], '!'
372 mov [dbg_error
+11], ' '
373 mov [dbg_error
+12], ' '
374 mov [dbg_error
+13], ' '
375 mov [dbg_error
+14], 0
379 ;-------------------------------;
380 ; Exception Interrupt no. 16 ;
381 ;-------------------------------;
383 mov [dbg_keypress
], 0
385 mov [dbg_error
+1], 'o'
386 mov [dbg_error
+2], 'p'
387 mov [dbg_error
+3], 'r'
388 mov [dbg_error
+4], 'o'
389 mov [dbg_error
+5], 'c'
390 mov [dbg_error
+6], 'e'
391 mov [dbg_error
+7], 's'
392 mov [dbg_error
+8], 's'
393 mov [dbg_error
+9], 'o'
394 mov [dbg_error
+10], 'r'
395 mov [dbg_error
+11], '!'
396 mov [dbg_error
+12], ' '
397 mov [dbg_error
+13], ' '
398 mov [dbg_error
+14], 0
402 ;-------------------------------;
403 ; Exception Interrupt no. 17 ;
404 ;-------------------------------;
406 mov [dbg_keypress
], 0
408 mov [dbg_error
+1], 'l'
409 mov [dbg_error
+2], 'i'
410 mov [dbg_error
+3], 'g'
411 mov [dbg_error
+4], 'n'
412 mov [dbg_error
+5], 'm'
413 mov [dbg_error
+6], 'e'
414 mov [dbg_error
+7], 'n'
415 mov [dbg_error
+8], 't'
416 mov [dbg_error
+9], ' '
417 mov [dbg_error
+10], 'c'
418 mov [dbg_error
+11], 'h'
419 mov [dbg_error
+12], 'k'
420 mov [dbg_error
+13], '.'
421 mov [dbg_error
+14], 0
425 ;-------------------------------;
426 ; Exception Interrupt no. 18 ;
427 ;-------------------------------;
429 mov [dbg_keypress
], 0
431 mov [dbg_error
+1], 'a'
432 mov [dbg_error
+2], 'c'
433 mov [dbg_error
+3], 'h'
434 mov [dbg_error
+4], 'i'
435 mov [dbg_error
+5], 'n'
436 mov [dbg_error
+6], 'e'
437 mov [dbg_error
+7], ' '
438 mov [dbg_error
+8], 'c'
439 mov [dbg_error
+9], 'h'
440 mov [dbg_error
+10], 'e'
441 mov [dbg_error
+11], 'c'
442 mov [dbg_error
+12], 'k'
443 mov [dbg_error
+13], '!'
444 mov [dbg_error
+14], 0
448 ;-------------------------------;
449 ; Exception Interrupt no. 19 ;
450 ;-------------------------------;
452 mov [dbg_keypress
], 0
454 mov [dbg_error
+1], 'I'
455 mov [dbg_error
+2], 'M'
456 mov [dbg_error
+3], 'D'
457 mov [dbg_error
+4], ' '
458 mov [dbg_error
+5], 'f'
459 mov [dbg_error
+6], 'l'
460 mov [dbg_error
+7], 'o'
461 mov [dbg_error
+8], 'a'
462 mov [dbg_error
+9], 't'
463 mov [dbg_error
+10], '.'
464 mov [dbg_error
+11], '-'
465 mov [dbg_error
+12], 'p'
466 mov [dbg_error
+13], '.'
467 mov [dbg_error
+14], 0
472 ;--------------------------;
473 ; ISR 20. The timer. ;
474 ;--------------------------;
482 call timer
; in timer.inc
492 ;--------------------------;
493 ; Keyboard IRQ. ISR 21. ;
494 ;--------------------------;
503 call keyboard_isr
; Located in keyboard.inc
514 ;---------------------;
516 ;---------------------;
523 call interrupt_32
; Located in sys_ints.inc