Unified · Split
| @@ -16,6 +16,10 @@ dev · 15 unmodified lines | |||
| 16 | cmd cmd | 16 | cmd cmd |
| 17 | indir | 17 | indir |
| 18 | 18 | ||
| 19 | draw screen | ||
| 20 | pointer | ||
| 21 | # snarf | ||
| 22 | |||
| 19 | ip ipif6-posix ipaux | 23 | ip ipif6-posix ipaux |
| 20 | eia | 24 | eia |
| 21 | # audio audio | 25 | # audio audio |
| @@ -23,7 +27,13 @@ dev · 1 unmodified line | |||
| 23 | 27 | ||
| 24 | lib | 28 | lib |
| 25 | interp | 29 | interp |
| 30 | tk | ||
| 31 | freetype | ||
| 26 | math | 32 | math |
| 33 | draw screen | ||
| 34 | |||
| 35 | memlayer | ||
| 36 | memdraw | ||
| 27 | keyring | 37 | keyring |
| 28 | sec | 38 | sec |
| 29 | mp | 39 | mp |
| @@ -34,12 +44,16 @@ link · 4 unmodified lines | |||
| 34 | 44 | ||
| 35 | mod | 45 | mod |
| 36 | sys | 46 | sys |
| 47 | draw | ||
| 48 | |||
| 49 | tk | ||
| 37 | math | 50 | math |
| 38 | srv srv | 51 | srv srv |
| 39 | keyring | 52 | keyring |
| 40 | crypt | 53 | crypt |
| 41 | ipints | 54 | ipints |
| 42 | loader | 55 | loader |
| 56 | freetype | ||
| 43 | 57 | ||
| 44 | port | 58 | port |
| 45 | alloc | 59 | alloc |
| @@ -69,8 +83,8 @@ port · 23 unmodified lines | |||
| 69 | uqid | 83 | uqid |
| 70 | 84 | ||
| 71 | code | 85 | code |
| 72 | void setpointer(int x, int y){USED(x); USED(y);} | 86 | # void setpointer(int x, int y){USED(x); USED(y);} |
| 73 | ulong strtochan(char *s){USED(s); return ~0;} | 87 | # ulong strtochan(char *s){USED(s); return ~0;} |
| 74 | 88 | ||
| 75 | init | 89 | init |
| 76 | emuinit | 90 | emuinit |
| @@ -6,7 +6,7 @@ · 5 unmodified lines | |||
| 6 | 6 | ||
| 7 | #include "emu-g.root.h" | 7 | #include "emu-g.root.h" |
| 8 | 8 | ||
| 9 | ulong ndevs = 25; | 9 | ulong ndevs = 27; |
| 10 | 10 | ||
| 11 | extern Dev rootdevtab; | 11 | extern Dev rootdevtab; |
| 12 | extern Dev consdevtab; | 12 | extern Dev consdevtab; |
| @@ -22,6 +22,8 @@ extern Dev capdevtab; · 9 unmodified lines | |||
| 22 | extern Dev fsdevtab; | 22 | extern Dev fsdevtab; |
| 23 | extern Dev cmddevtab; | 23 | extern Dev cmddevtab; |
| 24 | extern Dev indirdevtab; | 24 | extern Dev indirdevtab; |
| 25 | extern Dev drawdevtab; | ||
| 26 | extern Dev pointerdevtab; | ||
| 25 | extern Dev ipdevtab; | 27 | extern Dev ipdevtab; |
| 26 | extern Dev eiadevtab; | 28 | extern Dev eiadevtab; |
| 27 | extern Dev memdevtab; | 29 | extern Dev memdevtab; |
| @@ -40,6 +42,8 @@ Dev* devtab[]={ · 12 unmodified lines | |||
| 40 | &fsdevtab, | 42 | &fsdevtab, |
| 41 | &cmddevtab, | 43 | &cmddevtab, |
| 42 | &indirdevtab, | 44 | &indirdevtab, |
| 45 | &drawdevtab, | ||
| 46 | &pointerdevtab, | ||
| 43 | &ipdevtab, | 47 | &ipdevtab, |
| 44 | &eiadevtab, | 48 | &eiadevtab, |
| 45 | &memdevtab, | 49 | &memdevtab, |
| @@ -58,23 +62,27 @@ void links(void){ · 12 unmodified lines | |||
| 58 | } | 62 | } |
| 59 | 63 | ||
| 60 | extern void sysmodinit(void); | 64 | extern void sysmodinit(void); |
| 65 | extern void drawmodinit(void); | ||
| 66 | extern void tkmodinit(void); | ||
| 61 | extern void mathmodinit(void); | 67 | extern void mathmodinit(void); |
| 62 | extern void srvmodinit(void); | 68 | extern void srvmodinit(void); |
| 63 | extern void keyringmodinit(void); | 69 | extern void keyringmodinit(void); |
| 64 | extern void cryptmodinit(void); | 70 | extern void cryptmodinit(void); |
| 65 | extern void ipintsmodinit(void); | 71 | extern void ipintsmodinit(void); |
| 66 | extern void loadermodinit(void); | 72 | extern void loadermodinit(void); |
| 73 | extern void freetypemodinit(void); | ||
| 67 | void modinit(void){ | 74 | void modinit(void){ |
| 68 | sysmodinit(); | 75 | sysmodinit(); |
| 76 | drawmodinit(); | ||
| 77 | tkmodinit(); | ||
| 69 | mathmodinit(); | 78 | mathmodinit(); |
| 70 | srvmodinit(); | 79 | srvmodinit(); |
| 71 | keyringmodinit(); | 80 | keyringmodinit(); |
| 72 | cryptmodinit(); | 81 | cryptmodinit(); |
| 73 | ipintsmodinit(); | 82 | ipintsmodinit(); |
| 74 | loadermodinit(); | 83 | loadermodinit(); |
| 84 | freetypemodinit(); | ||
| 75 | } | 85 | } |
| 76 | 86 | ||
| 77 | void setpointer(int x, int y){USED(x); USED(y);} | ||
| 78 | ulong strtochan(char *s){USED(s); return ~0;} | ||
| 79 | char* conffile = "emu-g"; | 87 | char* conffile = "emu-g"; |
| 80 | ulong kerndate = KERNDATE; | 88 | ulong kerndate = KERNDATE; |
| @@ -23,6 +23,7 @@ OBJ=\ · 22 unmodified lines | |||
| 23 | osp.$O\ | 23 | osp.$O\ |
| 24 | kproc-pthreads.$O\ | 24 | kproc-pthreads.$O\ |
| 25 | segflush-$OBJTYPE.$O\ | 25 | segflush-$OBJTYPE.$O\ |
| 26 | framebuffer.$O\ | ||
| 26 | $CONF.root.$O\ | 27 | $CONF.root.$O\ |
| 27 | lock.$O\ | 28 | lock.$O\ |
| 28 | $DEVS\ | 29 | $DEVS\ |
| @@ -610,6 +610,7 @@ nrand(int n) · 609 unmodified lines | |||
| 610 | randn = randn*1103515245 + 12345 + osusectime(); | 610 | randn = randn*1103515245 + 12345 + osusectime(); |
| 611 | return (randn>>16) % n; | 611 | return (randn>>16) % n; |
| 612 | } | 612 | } |
| 613 | |||
| 613 | /* | 614 | /* |
| 614 | int | 615 | int |
| 615 | rand(void) | 616 | rand(void) |
| @@ -618,6 +619,7 @@ rand(void) · 2 unmodified lines | |||
| 618 | return randn; | 619 | return randn; |
| 619 | } | 620 | } |
| 620 | */ | 621 | */ |
| 622 | |||
| 621 | ulong | 623 | ulong |
| 622 | truerand(void) | 624 | truerand(void) |
| 623 | { | 625 | { |
| @@ -73,6 +73,14 @@ mousetrack(int b, int x, int y, int isdelta) · 72 unmodified lines | |||
| 73 | x += mouse.v.x; | 73 | x += mouse.v.x; |
| 74 | y += mouse.v.y; | 74 | y += mouse.v.y; |
| 75 | } | 75 | } |
| 76 | if(x < 0) | ||
| 77 | x = 0; | ||
| 78 | else if (x > Xsize) | ||
| 79 | x = Xsize; | ||
| 80 | if(y < 0) | ||
| 81 | y = 0; | ||
| 82 | else if (y > Ysize) | ||
| 83 | y = Ysize; | ||
| 76 | msec = osmillisec(); | 84 | msec = osmillisec(); |
| 77 | if(0 && b && (mouse.v.b ^ b)&0x1f){ | 85 | if(0 && b && (mouse.v.b ^ b)&0x1f){ |
| 78 | if(msec - mouse.v.msec < 300 && mouse.lastb == b | 86 | if(msec - mouse.v.msec < 300 && mouse.lastb == b |
| @@ -100,7 +108,7 @@ mousetrack(int b, int x, int y, int isdelta) · 21 unmodified lines | |||
| 100 | ptrq.put++; | 108 | ptrq.put++; |
| 101 | Wakeup(&ptrq.r); | 109 | Wakeup(&ptrq.r); |
| 102 | /* drawactive(1); */ | 110 | /* drawactive(1); */ |
| 103 | /* setpointer(x, y); */ | 111 | setpointer(x, y); |
| 104 | } | 112 | } |
| 105 | 113 | ||
| 106 | static int | 114 | static int |
| @@ -227,6 +235,8 @@ pointerread(Chan* c, void* a, long n, vlong off) · 120 unmodified lines | |||
| 227 | return n; | 235 | return n; |
| 228 | } | 236 | } |
| 229 | 237 | ||
| 238 | extern void drawPointer(int, int); | ||
| 239 | |||
| 230 | static long | 240 | static long |
| 231 | pointerwrite(Chan* c, void* va, long n, vlong off) | 241 | pointerwrite(Chan* c, void* va, long n, vlong off) |
| 232 | { | 242 | { |
| @@ -251,6 +261,8 @@ pointerwrite(Chan* c, void* va, long n, vlong off) · 18 unmodified lines | |||
| 251 | else | 261 | else |
| 252 | b = mouse.v.b; | 262 | b = mouse.v.b; |
| 253 | /*mousetrack(b, x, y, msec);*/ | 263 | /*mousetrack(b, x, y, msec);*/ |
| 264 | mouse.v.x = x; | ||
| 265 | mouse.v.y = y; | ||
| 254 | setpointer(x, y); | 266 | setpointer(x, y); |
| 255 | USED(b); | 267 | USED(b); |
| 256 | break; | 268 | break; |
| @@ -262,7 +274,8 @@ pointerwrite(Chan* c, void* va, long n, vlong off) · 5 unmodified lines | |||
| 262 | */ | 274 | */ |
| 263 | if(n == 0){ | 275 | if(n == 0){ |
| 264 | cur.data = nil; | 276 | cur.data = nil; |
| 265 | drawcursor(&cur); | 277 | //drawcursor(&cur); |
| 278 | drawPointer(cur.hotx, cur.hoty); | ||
| 266 | break; | 279 | break; |
| 267 | } | 280 | } |
| 268 | if(n < 8) | 281 | if(n < 8) |
| @@ -276,7 +289,8 @@ pointerwrite(Chan* c, void* va, long n, vlong off) · 7 unmodified lines | |||
| 276 | if(cur.maxx%8 != 0 || cur.maxy%2 != 0 || n-4*4 != (cur.maxx/8 * cur.maxy)) | 289 | if(cur.maxx%8 != 0 || cur.maxy%2 != 0 || n-4*4 != (cur.maxx/8 * cur.maxy)) |
| 277 | error(Ebadarg); | 290 | error(Ebadarg); |
| 278 | cur.data = (uchar*)va + 4*4; | 291 | cur.data = (uchar*)va + 4*4; |
| 279 | drawcursor(&cur); | 292 | //drawcursor(&cur); |
| 293 | drawPointer(cur.hotx, cur.hoty); | ||
| 280 | break; | 294 | break; |
| 281 | default: | 295 | default: |
| 282 | error(Ebadusefd); | 296 | error(Ebadusefd); |