]> wirehaze git hosting - BOS.git/blob - kernel/krl_incs/isr.inc

wirehaze git hosting

made it assemble under os x, moved loading position of kernel + install script for osx
[BOS.git] / kernel / krl_incs / isr.inc
1 ;----------------------------------------------------------;
2 ; BOS 0.04 Christoffer Bubach, 2004. ;
3 ;----------------------------------------------------------;
4 ; ;
5 ; ISR (Interrupt Service Rutines). ;
6 ; ;
7 ;----------------------------------------------------------;
8
9
10
11 ;------------------------;
12 ; Unhandled Interrupt ;
13 ;------------------------;
14 u_isr:
15 mov [dbg_keypress], 0 ; in debug.inc
16 mov [dbg_error], 'U'
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], ' '
30 mov [dbg_error+14], 0
31 call dump_regs
32
33
34 ;-------------------------------;
35 ; Exception Interrupt no. 00 ;
36 ;-------------------------------;
37 isr00:
38 mov [dbg_keypress], 0
39 mov [dbg_error], 'D'
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], ' '
53 mov [dbg_error+14], 0
54 call dump_regs
55
56
57 ;-------------------------------;
58 ; Exception Interrupt no. 01 ;
59 ;-------------------------------;
60 isr01:
61 mov [dbg_keypress], 0
62 mov [dbg_error], 'D'
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], ' '
76 mov [dbg_error+14], 0
77 call dump_regs
78
79
80 ;-------------------------------;
81 ; Exception Interrupt no. 02 ;
82 ;-------------------------------;
83 isr02:
84 mov [dbg_keypress], 0
85 mov [dbg_error], 'N'
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], ' '
99 mov [dbg_error+14], 0
100 call dump_regs
101
102
103 ;-------------------------------;
104 ; Exception Interrupt no. 03 ;
105 ;-------------------------------;
106 isr03:
107 mov [dbg_keypress], 0
108 mov [dbg_error], 'B'
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
123 call dump_regs
124
125
126 ;-------------------------------;
127 ; Exception Interrupt no. 04 ;
128 ;-------------------------------;
129 isr04:
130 mov [dbg_keypress], 0
131 mov [dbg_error], 'O'
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
146 call dump_regs
147
148
149 ;-------------------------------;
150 ; Exception Interrupt no. 05 ;
151 ;-------------------------------;
152 isr05:
153 mov [dbg_keypress], 0
154 mov [dbg_error], 'B'
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
169 call dump_regs
170
171
172 ;-------------------------------;
173 ; Exception Interrupt no. 06 ;
174 ;-------------------------------;
175 isr06:
176 mov [dbg_keypress], 0
177 mov [dbg_error], 'I'
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
192 call dump_regs
193
194
195 ;-------------------------------;
196 ; Exception Interrupt no. 07 ;
197 ;-------------------------------;
198 isr07:
199 mov [dbg_keypress], 0
200 mov [dbg_error], 'N'
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
215 call dump_regs
216
217
218 ;-------------------------------;
219 ; Exception Interrupt no. 08 ;
220 ;-------------------------------;
221 isr08:
222 mov [dbg_keypress], 0
223 mov [dbg_error], 'D'
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
238 call dump_regs
239
240
241 ;-------------------------------;
242 ; Exception Interrupt no. 09 ;
243 ;-------------------------------;
244 isr09:
245 mov [dbg_keypress], 0
246 mov [dbg_error], 'C'
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
261 call dump_regs
262
263
264 ;-------------------------------;
265 ; Exception Interrupt no. 10 ;
266 ;-------------------------------;
267 isr0A:
268 mov [dbg_keypress], 0
269 mov [dbg_error], 'I'
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
284 call dump_regs
285
286
287 ;-------------------------------;
288 ; Exception Interrupt no. 11 ;
289 ;-------------------------------;
290 isr0B:
291 mov [dbg_keypress], 0
292 mov [dbg_error], 'N'
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
307 call dump_regs
308
309
310 ;-------------------------------;
311 ; Exception Interrupt no. 12 ;
312 ;-------------------------------;
313 isr0C:
314 mov [dbg_keypress], 0
315 mov [dbg_error], 'S'
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
330 call dump_regs
331
332
333 ;-------------------------------;
334 ; Exception Interrupt no. 13 ;
335 ;-------------------------------;
336 isr0D:
337 mov [dbg_keypress], 0
338 mov [dbg_error], 'T'
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
353 call dump_regs
354
355
356 ;-------------------------------;
357 ; Exception Interrupt no. 14 ;
358 ;-------------------------------;
359 isr0E:
360 mov [dbg_keypress], 0
361 mov [dbg_error], 'P'
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
376 call dump_regs
377
378
379 ;-------------------------------;
380 ; Exception Interrupt no. 16 ;
381 ;-------------------------------;
382 isr10:
383 mov [dbg_keypress], 0
384 mov [dbg_error], 'C'
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
399 call dump_regs
400
401
402 ;-------------------------------;
403 ; Exception Interrupt no. 17 ;
404 ;-------------------------------;
405 isr11:
406 mov [dbg_keypress], 0
407 mov [dbg_error], 'A'
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
422 call dump_regs
423
424
425 ;-------------------------------;
426 ; Exception Interrupt no. 18 ;
427 ;-------------------------------;
428 isr12:
429 mov [dbg_keypress], 0
430 mov [dbg_error], 'M'
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
445 call dump_regs
446
447
448 ;-------------------------------;
449 ; Exception Interrupt no. 19 ;
450 ;-------------------------------;
451 isr13:
452 mov [dbg_keypress], 0
453 mov [dbg_error], 'S'
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
468 call dump_regs
469
470
471
472 ;--------------------------;
473 ; ISR 20. The timer. ;
474 ;--------------------------;
475 isr20:
476 pusha
477 push gs
478 push fs
479 push ds
480 push es
481
482 call timer ; in timer.inc
483
484 pop es
485 pop ds
486 pop fs
487 pop gs
488 popa
489 iret
490
491
492 ;--------------------------;
493 ; Keyboard IRQ. ISR 21. ;
494 ;--------------------------;
495 isr21:
496 pusha
497 push gs
498 push fs
499 push ds
500 push es
501 push esi
502
503 call keyboard_isr ; Located in keyboard.inc
504
505 pop esi
506 pop es
507 pop ds
508 pop fs
509 pop gs
510 popa
511 iret
512
513
514 ;---------------------;
515 ; Interrupt no. 50 ;
516 ;---------------------;
517 isr32:
518 push gs
519 push fs
520 push ds
521 push es
522
523 call interrupt_32 ; Located in sys_ints.inc
524
525 pop es
526 pop ds
527 pop fs
528 pop gs
529 iret