* cormen book
[mascara-docs.git] / i86 / mtx-16-bit / mtx / samples / LAB5_FS / int.c
blobdb065d184fffa23f628445df413cc1517a3fe8f0
1 int color = 0x000A;
3 int kmode()
5 body();
9 int do_ps()
11 // YOUR do_ps code
14 int chname(y) char * y;
16 // YOUR chname code
19 int kcinth()
21 u16 seg, off;
22 u32 position;
23 u16 x, y, z, w, ww;
24 int r;
26 seg = running->uss; off = running->usp;
27 x = get_word(seg, off + 2*13);
28 y = get_word(seg, off + 2*14);
29 z = get_word(seg, off + 2*15);
30 w = get_word(seg, off + 2*16);
31 ww= get_word(seg, off + 2*17);
33 switch(x){
34 case 0 : r = running->pid; break;
35 case 1 : r = do_ps(); break;
36 case 2 : r = chname(y); break;
37 case 3 : r = kmode(); break;
38 case 4 : r = tswitch(); break;
39 case 5 : r = do_wait(y); break;
40 case 6 : do_exit(y); break;
42 case 7 : r = ufork(); break;
43 case 8 : r = exec(y); break;
46 case 10: r = kputc(y); break;
47 case 11: r = kgetc(); break;
49 case 21: r = kmkdir(y,z); break;
50 case 22: r = krmdir(y,z); break;
51 case 23: r = kcreat(y,z); break;
52 case 24: r = krm(y,z); break;
54 case 25: r = kchdir(y,z); break;
55 case 26: r = kgetcwd(y,z); break;
56 case 27: r = kstat(y,z); break;
58 case 28: r = kopen(y,z); break;
59 case 29: r = kclose(y,z); break;
61 case 30: r = kread(y,z,w); break;
62 case 31: r = kwrite(y,z,w); break;
64 case 32: position = w;
65 position = position << 16;
66 position += z;
67 r = mylseek(y,position,ww); break;
69 case 33: r = kchmod(y,z); break;
70 case 34: r = kchown(y,z); break;
72 case 35: r = kdup(y,z); break;
73 case 36: r = kdup2(y,z); break;
75 case 99: do_exit(y); break;
77 default: printf("invalid syscall # : %d\n", x);
78 break;
80 put_word(r, seg, off + 2*8);