| ofs | hex dump | ascii |
|---|
| 0000 | 6d 61 69 6e 2e 63 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | main.c.......................... |
| 0020 | ce 1b 00 00 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 69 6e 74 2e 68 3e 0a 23 69 6e 63 6c 75 64 65 | ....#include.<stdint.h>.#include |
| 0040 | 20 3c 73 74 64 69 6f 2e 68 3e 0a 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 6c 69 62 2e 68 3e 0a 23 | .<stdio.h>.#include.<stdlib.h>.# |
| 0060 | 69 6e 63 6c 75 64 65 20 22 66 70 75 2e 68 22 0a 23 69 6e 63 6c 75 64 65 20 22 67 64 74 2e 68 22 | include."fpu.h".#include."gdt.h" |
| 0080 | 0a 23 69 6e 63 6c 75 64 65 20 22 67 66 78 2e 68 22 0a 23 69 6e 63 6c 75 64 65 20 22 67 66 78 5f | .#include."gfx.h".#include."gfx_ |
| 00a0 | 66 6f 6e 74 2e 68 22 0a 23 69 6e 63 6c 75 64 65 20 22 69 64 74 2e 68 22 0a 23 69 6e 63 6c 75 64 | font.h".#include."idt.h".#includ |
| 00c0 | 65 20 22 69 6e 69 74 72 64 2e 68 22 0a 23 69 6e 63 6c 75 64 65 20 22 69 73 72 2e 68 22 0a 23 69 | e."initrd.h".#include."isr.h".#i |
| 00e0 | 6e 63 6c 75 64 65 20 22 69 72 71 2e 68 22 0a 23 69 6e 63 6c 75 64 65 20 22 6c 6f 67 2e 68 22 0a | nclude."irq.h".#include."log.h". |
| 0100 | 23 69 6e 63 6c 75 64 65 20 22 6d 75 6c 74 69 62 6f 6f 74 2e 68 22 0a 23 69 6e 63 6c 75 64 65 20 | #include."multiboot.h".#include. |
| 0120 | 22 70 61 67 69 6e 67 2e 68 22 0a 23 69 6e 63 6c 75 64 65 20 22 70 61 6e 69 63 2e 68 22 0a 23 69 | "paging.h".#include."panic.h".#i |
| 0140 | 6e 63 6c 75 64 65 20 22 70 63 73 70 6b 72 2e 68 22 0a 23 69 6e 63 6c 75 64 65 20 22 70 73 32 6b | nclude."pcspkr.h".#include."ps2k |
| 0160 | 62 64 2e 68 22 0a 23 69 6e 63 6c 75 64 65 20 22 66 70 75 2e 68 22 0a 23 69 6e 63 6c 75 64 65 20 | bd.h".#include."fpu.h".#include. |
| 0180 | 22 74 69 6d 65 72 2e 68 22 0a 23 69 6e 63 6c 75 64 65 20 22 76 65 72 73 69 6f 6e 2e 68 22 0a 23 | "timer.h".#include."version.h".# |
| 01a0 | 69 6e 63 6c 75 64 65 20 22 76 67 61 74 65 78 74 2e 68 22 0a 0a 76 6f 69 64 20 67 70 66 28 73 74 | include."vgatext.h"..void.gpf(st |
| 01c0 | 72 75 63 74 20 72 65 67 73 5f 74 20 2a 72 65 67 73 29 0a 7b 0a 20 20 20 20 67 66 78 5f 72 65 73 | ruct.regs_t.*regs).{.....gfx_res |
| 01e0 | 65 74 28 29 3b 0a 20 20 20 20 70 72 69 6e 74 66 28 22 47 65 6e 65 72 61 6c 20 70 72 6f 74 65 63 | et();.....printf("General.protec |
| 0200 | 74 69 6f 6e 20 66 61 75 6c 74 21 5c 6e 22 29 3b 0a 20 20 20 20 70 72 69 6e 74 66 28 22 45 49 50 | tion.fault!\n");.....printf("EIP |
| 0220 | 20 62 65 66 6f 72 65 20 66 61 75 6c 74 3a 20 30 78 25 78 5c 6e 22 2c 20 72 65 67 73 2d 3e 65 69 | .before.fault:.0x%x\n",.regs->ei |
| 0240 | 70 29 3b 0a 20 20 20 20 70 72 69 6e 74 66 28 22 45 72 72 6f 72 20 63 6f 64 65 3a 20 30 78 25 78 | p);.....printf("Error.code:.0x%x |
| 0260 | 5c 6e 22 2c 20 72 65 67 73 2d 3e 65 72 72 5f 63 6f 64 65 29 3b 0a 20 20 20 20 70 61 6e 69 63 28 | \n",.regs->err_code);.....panic( |
| 0280 | 22 47 50 46 21 22 29 3b 0a 7d 0a 0a 76 6f 69 64 20 69 6e 74 38 30 28 73 74 72 75 63 74 20 72 65 | "GPF!");.}..void.int80(struct.re |
| 02a0 | 67 73 5f 74 20 2a 72 65 67 73 29 0a 7b 0a 20 20 20 20 73 77 69 74 63 68 28 72 65 67 73 2d 3e 65 | gs_t.*regs).{.....switch(regs->e |
| 02c0 | 61 78 29 0a 20 20 20 20 7b 0a 20 20 20 20 63 61 73 65 20 30 3a 0a 20 20 20 20 20 20 20 20 70 61 | ax).....{.....case.0:.........pa |
| 02e0 | 6e 69 63 28 28 63 6f 6e 73 74 20 63 68 61 72 2a 29 72 65 67 73 2d 3e 65 62 78 29 3b 0a 20 20 20 | nic((const.char*)regs->ebx);.... |
| 0300 | 20 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 20 20 63 61 73 65 20 31 3a 0a 20 20 20 20 20 20 20 20 | .....break;.....case.1:......... |
| 0320 | 70 75 74 73 28 28 63 6f 6e 73 74 20 63 68 61 72 2a 29 72 65 67 73 2d 3e 65 62 78 29 3b 0a 20 20 | puts((const.char*)regs->ebx);... |
| 0340 | 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 20 20 7d 0a 7d 0a 0a 76 6f 69 64 20 64 69 76 30 28 | ......break;.....}.}..void.div0( |
| 0360 | 73 74 72 75 63 74 20 72 65 67 73 5f 74 20 2a 72 65 67 73 29 0a 7b 0a 20 20 20 20 28 76 6f 69 64 | struct.regs_t.*regs).{.....(void |
| 0380 | 29 20 72 65 67 73 3b 0a 20 20 20 20 70 61 6e 69 63 28 22 44 69 76 69 64 65 20 62 79 20 7a 65 72 | ).regs;.....panic("Divide.by.zer |
| 03a0 | 6f 21 5c 6e 22 29 3b 0a 7d 0a 0a 76 6f 69 64 20 6e 6f 74 68 69 6e 28 73 74 72 75 63 74 20 72 65 | o!\n");.}..void.nothin(struct.re |
| 03c0 | 67 73 5f 74 2a 20 72 65 67 73 29 0a 7b 0a 20 20 20 20 28 76 6f 69 64 29 20 72 65 67 73 3b 0a 7d | gs_t*.regs).{.....(void).regs;.} |
| 03e0 | 0a 0a 76 6f 69 64 20 66 6c 61 73 68 5f 6c 65 64 73 28 76 6f 69 64 29 0a 7b 0a 20 20 20 20 70 72 | ..void.flash_leds(void).{.....pr |
| 0400 | 69 6e 74 66 28 22 54 65 73 74 69 6e 67 20 6b 65 79 62 6f 61 72 64 20 4c 45 44 27 73 22 29 3b 0a | intf("Testing.keyboard.LED's");. |
| 0420 | 0a 20 20 20 20 69 6e 74 20 6e 20 3d 20 30 3b 0a 20 20 20 20 69 6e 74 20 73 20 3d 20 31 3b 0a 0a | .....int.n.=.0;.....int.s.=.1;.. |
| 0440 | 20 20 20 20 77 68 69 6c 65 28 31 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 70 73 32 6b 62 | ....while(1).....{.........ps2kb |
| 0460 | 64 5f 73 65 74 5f 6c 65 64 73 28 50 53 32 5f 4e 55 4d 5f 4c 4f 43 4b 29 3b 0a 20 20 20 20 20 20 | d_set_leds(PS2_NUM_LOCK);....... |
| 0480 | 20 20 74 69 6d 65 72 5f 64 65 6c 61 79 28 48 5a 2f 34 29 3b 0a 20 20 20 20 20 20 20 20 69 66 28 | ..timer_delay(HZ/4);.........if( |
| 04a0 | 73 20 3c 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 75 74 63 68 61 72 28 27 5c 62 27 29 | s.<.0).............putchar('\b') |
| 04c0 | 3b 0a 20 20 20 20 20 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 75 74 63 68 | ;.........else.............putch |
| 04e0 | 61 72 28 27 2e 27 29 3b 0a 20 20 20 20 20 20 20 20 6e 2b 3d 73 3b 0a 20 20 20 20 20 20 20 20 69 | ar('.');.........n+=s;.........i |
| 0500 | 66 28 6e 3c 3d 30 20 7c 7c 20 6e 3e 3d 33 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 3d 2d 73 | f(n<=0.||.n>=3).............s=-s |
| 0520 | 3b 0a 20 20 20 20 20 20 20 20 70 73 32 6b 62 64 5f 73 65 74 5f 6c 65 64 73 28 50 53 32 5f 43 41 | ;.........ps2kbd_set_leds(PS2_CA |
| 0540 | 50 53 5f 4c 4f 43 4b 29 3b 0a 20 20 20 20 20 20 20 20 74 69 6d 65 72 5f 64 65 6c 61 79 28 48 5a | PS_LOCK);.........timer_delay(HZ |
| 0560 | 2f 34 29 3b 0a 20 20 20 20 20 20 20 20 69 66 28 73 20 3c 20 30 29 0a 20 20 20 20 20 20 20 20 20 | /4);.........if(s.<.0).......... |
| 0580 | 20 20 20 70 75 74 63 68 61 72 28 27 5c 62 27 29 3b 0a 20 20 20 20 20 20 20 20 65 6c 73 65 0a 20 | ...putchar('\b');.........else.. |
| 05a0 | 20 20 20 20 20 20 20 20 20 20 20 70 75 74 63 68 61 72 28 27 2e 27 29 3b 0a 20 20 20 20 20 20 20 | ...........putchar('.');........ |
| 05c0 | 20 6e 2b 3d 73 3b 0a 20 20 20 20 20 20 20 20 69 66 28 6e 3c 3d 30 20 7c 7c 20 6e 3e 3d 33 29 0a | .n+=s;.........if(n<=0.||.n>=3). |
| 05e0 | 20 20 20 20 20 20 20 20 20 20 20 20 73 3d 2d 73 3b 0a 20 20 20 20 20 20 20 20 70 73 32 6b 62 64 | ............s=-s;.........ps2kbd |
| 0600 | 5f 73 65 74 5f 6c 65 64 73 28 50 53 32 5f 53 43 52 4f 4c 4c 5f 4c 4f 43 4b 29 3b 0a 20 20 20 20 | _set_leds(PS2_SCROLL_LOCK);..... |
| 0620 | 20 20 20 20 74 69 6d 65 72 5f 64 65 6c 61 79 28 48 5a 2f 34 29 3b 0a 20 20 20 20 20 20 20 20 69 | ....timer_delay(HZ/4);.........i |
| 0640 | 66 28 73 20 3c 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 75 74 63 68 61 72 28 27 5c 62 | f(s.<.0).............putchar('\b |
| 0660 | 27 29 3b 0a 20 20 20 20 20 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 75 74 | ');.........else.............put |
| 0680 | 63 68 61 72 28 27 2e 27 29 3b 0a 20 20 20 20 20 20 20 20 6e 2b 3d 73 3b 0a 20 20 20 20 20 20 20 | char('.');.........n+=s;........ |
| 06a0 | 20 69 66 28 6e 3c 3d 30 20 7c 7c 20 6e 3e 3d 33 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 3d | .if(n<=0.||.n>=3).............s= |
| 06c0 | 2d 73 3b 0a 20 20 20 20 20 20 20 20 70 73 32 6b 62 64 5f 73 65 74 5f 6c 65 64 73 28 50 53 32 5f | -s;.........ps2kbd_set_leds(PS2_ |
| 06e0 | 43 41 50 53 5f 4c 4f 43 4b 29 3b 0a 20 20 20 20 20 20 20 20 74 69 6d 65 72 5f 64 65 6c 61 79 28 | CAPS_LOCK);.........timer_delay( |
| 0700 | 48 5a 2f 34 29 3b 0a 20 20 20 20 20 20 20 20 69 66 28 73 20 3c 20 30 29 0a 20 20 20 20 20 20 20 | HZ/4);.........if(s.<.0)........ |
| 0720 | 20 20 20 20 20 70 75 74 63 68 61 72 28 27 5c 62 27 29 3b 0a 20 20 20 20 20 20 20 20 65 6c 73 65 | .....putchar('\b');.........else |
| 0740 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 75 74 63 68 61 72 28 27 2e 27 29 3b 0a 20 20 20 20 20 | .............putchar('.');...... |
| 0760 | 20 20 20 6e 2b 3d 73 3b 0a 20 20 20 20 20 20 20 20 69 66 28 6e 3c 3d 30 20 7c 7c 20 6e 3e 3d 33 | ...n+=s;.........if(n<=0.||.n>=3 |
| 0780 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 3d 2d 73 3b 0a 20 20 20 20 7d 0a 7d 0a 0a 62 6f 6f | ).............s=-s;.....}.}..boo |
| 07a0 | 6c 20 62 6f 6f 74 28 73 74 72 75 63 74 20 6d 75 6c 74 69 62 6f 6f 74 5f 69 6e 66 6f 5f 74 20 2a | l.boot(struct.multiboot_info_t.* |
| 07c0 | 68 64 72 2c 20 75 69 6e 74 33 32 5f 74 20 6d 61 67 69 63 29 0a 7b 0a 20 20 20 20 66 70 75 5f 65 | hdr,.uint32_t.magic).{.....fpu_e |
| 07e0 | 6e 61 62 6c 65 28 29 3b 0a 0a 20 20 20 20 2f 2a 20 6c 6f 61 64 20 69 6e 69 74 72 64 20 69 66 20 | nable();....../*.load.initrd.if. |
| 0800 | 61 6e 79 2c 20 74 68 69 73 20 77 69 6c 6c 20 61 6c 73 6f 20 70 72 65 76 65 6e 74 20 6d 6f 64 75 | any,.this.will.also.prevent.modu |
| 0820 | 6c 65 73 20 66 72 6f 6d 20 62 65 69 6e 67 20 63 6c 6f 62 62 65 72 65 64 20 62 79 20 6b 6d 61 6c | les.from.being.clobbered.by.kmal |
| 0840 | 6c 6f 63 20 2a 2f 0a 20 20 20 20 69 6e 69 74 72 64 5f 69 6e 69 74 28 68 64 72 29 3b 0a 0a 20 20 | loc.*/.....initrd_init(hdr);.... |
| 0860 | 20 20 2f 2a 20 74 68 69 73 20 73 68 6f 75 6c 64 20 67 6f 20 74 6f 20 70 6f 72 74 20 65 39 2c 20 | ../*.this.should.go.to.port.e9,. |
| 0880 | 77 68 69 63 68 20 69 73 20 74 68 65 20 42 6f 63 68 73 20 64 65 62 75 67 20 70 6f 72 74 20 2a 2f | which.is.the.Bochs.debug.port.*/ |
| 08a0 | 0a 20 20 20 20 70 72 69 6e 74 66 28 22 54 65 73 74 69 6e 67 20 65 61 72 6c 79 20 49 2f 4f 5c 6e | .....printf("Testing.early.I/O\n |
| 08c0 | 22 29 3b 0a 0a 20 20 20 20 70 72 69 6e 74 66 28 22 47 46 58 20 69 6e 69 74 5c 6e 22 29 3b 0a 20 | ");......printf("GFX.init\n");.. |
| 08e0 | 20 20 20 62 6f 6f 6c 20 67 66 78 5f 73 74 61 74 75 73 20 3d 20 67 66 78 5f 69 6e 69 74 28 28 73 | ...bool.gfx_status.=.gfx_init((s |
| 0900 | 74 72 75 63 74 20 76 62 65 5f 69 6e 66 6f 5f 74 2a 29 68 64 72 2d 3e 76 62 65 5f 6d 6f 64 65 5f | truct.vbe_info_t*)hdr->vbe_mode_ |
| 0920 | 69 6e 66 6f 29 3b 0a 20 20 20 20 2f 2f 62 6f 6f 6c 20 67 66 78 5f 73 74 61 74 75 73 20 3d 20 66 | info);.....//bool.gfx_status.=.f |
| 0940 | 61 6c 73 65 3b 0a 20 20 20 20 70 72 69 6e 74 66 28 22 47 46 58 20 69 6e 69 74 20 64 6f 6e 65 2e | alse;.....printf("GFX.init.done. |
| 0960 | 5c 6e 22 29 3b 0a 0a 20 20 20 20 2f 2a 20 69 66 20 67 72 61 70 68 69 63 61 6c 20 69 6e 69 74 69 | \n");....../*.if.graphical.initi |
| 0980 | 61 6c 69 7a 61 74 69 6f 6e 20 66 61 69 6c 73 2c 20 66 61 6c 6c 20 62 61 63 6b 20 74 6f 20 74 65 | alization.fails,.fall.back.to.te |
| 09a0 | 78 74 20 6d 6f 64 65 20 2a 2f 0a 20 20 20 20 69 66 28 21 67 66 78 5f 73 74 61 74 75 73 29 0a 20 | xt.mode.*/.....if(!gfx_status).. |
| 09c0 | 20 20 20 7b 0a 20 20 20 20 20 20 20 20 76 67 61 74 65 78 74 5f 69 6e 69 74 28 29 3b 0a 20 20 20 | ...{.........vgatext_init();.... |
| 09e0 | 20 20 20 20 20 70 72 69 6e 74 66 28 22 47 72 61 70 68 69 63 73 20 69 6e 69 74 20 66 61 69 6c 65 | .....printf("Graphics.init.faile |
| 0a00 | 64 2c 20 66 65 6c 6c 20 62 61 63 6b 20 74 6f 20 56 47 41 20 74 65 78 74 20 6d 6f 64 65 2e 5c 6e | d,.fell.back.to.VGA.text.mode.\n |
| 0a20 | 22 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 69 66 28 6d 61 67 69 63 20 21 3d 20 30 78 32 42 41 | ");.....}......if(magic.!=.0x2BA |
| 0a40 | 44 42 30 30 32 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 70 61 6e 69 63 28 22 4d 75 6c 74 | DB002).....{.........panic("Mult |
| 0a60 | 69 62 6f 6f 74 20 6d 61 67 69 63 20 69 6e 76 61 6c 69 64 22 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 | iboot.magic.invalid");.....}.... |
| 0a80 | 20 20 2f 2a 20 74 68 65 6e 20 74 68 65 20 64 65 73 63 72 69 70 74 6f 72 20 74 61 62 6c 65 73 20 | ../*.then.the.descriptor.tables. |
| 0aa0 | 73 6f 20 77 65 20 63 61 6e 20 64 6f 20 6d 6f 72 65 20 75 73 65 66 75 6c 20 73 74 75 66 66 20 2a | so.we.can.do.more.useful.stuff.* |
| 0ac0 | 2f 0a 20 20 20 20 67 64 74 5f 69 6e 69 74 28 29 3b 0a 20 20 20 20 69 64 74 5f 69 6e 69 74 28 29 | /.....gdt_init();.....idt_init() |
| 0ae0 | 3b 0a 0a 20 20 20 20 2f 2a 20 69 6e 73 74 61 6c 6c 20 61 6c 6c 20 74 68 65 20 69 6e 74 65 72 72 | ;....../*.install.all.the.interr |
| 0b00 | 75 70 74 20 73 74 75 62 73 20 2a 2f 0a 20 20 20 20 69 73 72 5f 69 6e 69 74 28 29 3b 0a 20 20 20 | upt.stubs.*/.....isr_init();.... |
| 0b20 | 20 69 72 71 5f 69 6e 69 74 28 29 3b 0a 0a 20 20 20 20 2f 2a 20 69 6e 69 74 69 61 6c 69 7a 65 20 | .irq_init();....../*.initialize. |
| 0b40 | 6f 74 68 65 72 20 64 72 69 76 65 72 73 20 2a 2f 0a 20 20 20 20 74 69 6d 65 72 5f 69 6e 69 74 28 | other.drivers.*/.....timer_init( |
| 0b60 | 48 5a 29 3b 0a 20 20 20 20 70 73 32 6b 62 64 5f 69 6e 69 74 28 29 3b 0a 0a 20 20 20 20 73 65 74 | HZ);.....ps2kbd_init();......set |
| 0b80 | 5f 69 6e 74 65 72 72 75 70 74 5f 68 61 6e 64 6c 65 72 28 30 2c 20 64 69 76 30 29 3b 0a 20 20 20 | _interrupt_handler(0,.div0);.... |
| 0ba0 | 20 73 65 74 5f 69 6e 74 65 72 72 75 70 74 5f 68 61 6e 64 6c 65 72 28 30 78 64 2c 20 67 70 66 29 | .set_interrupt_handler(0xd,.gpf) |
| 0bc0 | 3b 0a 20 20 20 20 73 65 74 5f 69 6e 74 65 72 72 75 70 74 5f 68 61 6e 64 6c 65 72 28 30 78 38 30 | ;.....set_interrupt_handler(0x80 |
| 0be0 | 2c 20 69 6e 74 38 30 29 3b 0a 20 20 20 20 73 65 74 5f 69 6e 74 65 72 72 75 70 74 5f 68 61 6e 64 | ,.int80);.....set_interrupt_hand |
| 0c00 | 6c 65 72 28 36 2c 20 6e 6f 74 68 69 6e 29 3b 0a 0a 20 20 20 20 70 61 67 69 6e 67 5f 69 6e 69 74 | ler(6,.nothin);......paging_init |
| 0c20 | 28 29 3b 0a 0a 20 20 20 20 70 72 69 6e 74 66 28 22 50 61 67 69 6e 67 20 65 6e 61 62 6c 65 64 2e | ();......printf("Paging.enabled. |
| 0c40 | 5c 6e 22 29 3b 0a 0a 20 20 20 20 61 73 6d 28 22 73 74 69 22 29 3b 0a 0a 20 20 20 20 70 72 69 6e | \n");......asm("sti");......prin |
| 0c60 | 74 66 28 22 42 6f 6f 74 20 66 69 6e 69 73 68 65 64 2e 5c 6e 22 29 3b 0a 0a 20 20 20 20 70 72 69 | tf("Boot.finished.\n");......pri |
| 0c80 | 6e 74 66 28 22 4b 65 72 6e 65 6c 20 76 65 72 73 69 6f 6e 20 25 73 3a 20 5c 22 25 73 5c 22 5c 6e | ntf("Kernel.version.%s:.\"%s\"\n |
| 0ca0 | 22 2c 20 4b 41 50 50 41 5f 4b 45 52 4e 45 4c 5f 56 45 52 53 49 4f 4e 2c 20 4b 41 50 50 41 5f 4b | ",.KAPPA_KERNEL_VERSION,.KAPPA_K |
| 0cc0 | 45 52 4e 45 4c 5f 43 4f 44 45 4e 41 4d 45 29 3b 0a 0a 20 20 20 20 72 65 74 75 72 6e 20 67 66 78 | ERNEL_CODENAME);......return.gfx |
| 0ce0 | 5f 73 74 61 74 75 73 3b 0a 7d 0a 0a 76 6f 69 64 20 72 75 6e 5f 67 66 78 5f 62 65 6e 63 68 6d 61 | _status;.}..void.run_gfx_benchma |
| 0d00 | 72 6b 28 76 6f 69 64 29 0a 7b 0a 20 20 20 20 63 6f 6e 73 74 20 69 6e 74 20 77 69 64 74 68 20 3d | rk(void).{.....const.int.width.= |
| 0d20 | 20 2a 67 66 78 5f 77 69 64 74 68 3b 0a 20 20 20 20 63 6f 6e 73 74 20 69 6e 74 20 68 65 69 67 68 | .*gfx_width;.....const.int.heigh |
| 0d40 | 74 20 3d 20 2a 67 66 78 5f 68 65 69 67 68 74 3b 0a 0a 20 20 20 20 67 66 78 5f 72 65 73 65 74 28 | t.=.*gfx_height;......gfx_reset( |
| 0d60 | 29 3b 0a 0a 20 20 20 20 69 6e 74 20 73 74 61 72 74 70 69 78 20 3d 20 2a 63 75 72 72 65 6e 74 5f | );......int.startpix.=.*current_ |
| 0d80 | 74 69 63 6b 3b 0a 20 20 20 20 66 6f 72 28 69 6e 74 20 69 3d 30 3b 69 3c 31 30 30 30 30 30 30 3b | tick;.....for(int.i=0;i<1000000; |
| 0da0 | 2b 2b 69 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 6e 74 20 72 78 20 3d 20 72 61 6e 64 | ++i).....{.........int.rx.=.rand |
| 0dc0 | 28 29 20 25 20 77 69 64 74 68 3b 0a 20 20 20 20 20 20 20 20 69 6e 74 20 72 79 20 3d 20 72 61 6e | ().%.width;.........int.ry.=.ran |
| 0de0 | 64 28 29 20 25 20 68 65 69 67 68 74 3b 0a 0a 20 20 20 20 20 20 20 20 67 66 78 5f 73 65 74 5f 66 | d().%.height;..........gfx_set_f |
| 0e00 | 6f 72 65 67 72 6f 75 6e 64 28 72 61 6e 64 28 29 20 25 20 30 78 31 30 30 30 30 30 30 29 3b 0a 20 | oreground(rand().%.0x1000000);.. |
| 0e20 | 20 20 20 20 20 20 20 67 66 78 5f 64 72 61 77 70 69 78 65 6c 28 72 78 2c 20 72 79 29 3b 0a 20 20 | .......gfx_drawpixel(rx,.ry);... |
| 0e40 | 20 20 7d 0a 20 20 20 20 69 6e 74 20 65 6e 64 70 69 78 20 3d 20 2a 63 75 72 72 65 6e 74 5f 74 69 | ..}.....int.endpix.=.*current_ti |
| 0e60 | 63 6b 3b 0a 0a 20 20 20 20 67 66 78 5f 72 65 73 65 74 28 29 3b 0a 0a 20 20 20 20 69 6e 74 20 73 | ck;......gfx_reset();......int.s |
| 0e80 | 74 61 72 74 66 69 6c 6c 20 3d 20 2a 63 75 72 72 65 6e 74 5f 74 69 63 6b 3b 0a 20 20 20 20 66 6f | tartfill.=.*current_tick;.....fo |
| 0ea0 | 72 28 69 6e 74 20 69 3d 30 3b 69 3c 31 30 30 30 3b 2b 2b 69 29 0a 20 20 20 20 7b 0a 20 20 20 20 | r(int.i=0;i<1000;++i).....{..... |
| 0ec0 | 20 20 20 20 67 66 78 5f 73 65 74 5f 62 61 63 6b 67 72 6f 75 6e 64 28 72 61 6e 64 28 29 20 25 20 | ....gfx_set_background(rand().%. |
| 0ee0 | 30 78 31 30 30 30 30 30 30 29 3b 0a 20 20 20 20 20 20 20 20 67 66 78 5f 63 6c 65 61 72 28 29 3b | 0x1000000);.........gfx_clear(); |
| 0f00 | 0a 20 20 20 20 7d 0a 20 20 20 20 69 6e 74 20 65 6e 64 66 69 6c 6c 20 3d 20 2a 63 75 72 72 65 6e | .....}.....int.endfill.=.*curren |
| 0f20 | 74 5f 74 69 63 6b 3b 0a 0a 20 20 20 20 67 66 78 5f 72 65 73 65 74 28 29 3b 0a 0a 20 20 20 20 69 | t_tick;......gfx_reset();......i |
| 0f40 | 6e 74 20 73 74 61 72 74 74 65 78 74 20 3d 20 2a 63 75 72 72 65 6e 74 5f 74 69 63 6b 3b 0a 20 20 | nt.starttext.=.*current_tick;... |
| 0f60 | 20 20 66 6f 72 28 69 6e 74 20 69 3d 30 3b 69 3c 31 30 30 30 30 30 30 3b 2b 2b 69 29 0a 20 20 20 | ..for(int.i=0;i<1000000;++i).... |
| 0f80 | 20 7b 0a 20 20 20 20 20 20 20 20 69 6e 74 20 72 78 20 3d 20 72 61 6e 64 28 29 20 25 20 77 69 64 | .{.........int.rx.=.rand().%.wid |
| 0fa0 | 74 68 3b 0a 20 20 20 20 20 20 20 20 69 6e 74 20 72 79 20 3d 20 72 61 6e 64 28 29 20 25 20 68 65 | th;.........int.ry.=.rand().%.he |
| 0fc0 | 69 67 68 74 3b 0a 20 20 20 20 20 20 20 20 67 66 78 5f 73 65 74 5f 66 6f 72 65 67 72 6f 75 6e 64 | ight;.........gfx_set_foreground |
| 0fe0 | 28 72 61 6e 64 28 29 20 25 20 30 78 31 30 30 30 30 30 30 29 3b 0a 20 20 20 20 20 20 20 20 67 66 | (rand().%.0x1000000);.........gf |
| 1000 | 78 5f 64 72 61 77 63 68 61 72 28 72 78 2c 20 72 79 2c 20 72 61 6e 64 28 29 25 31 32 37 2b 31 29 | x_drawchar(rx,.ry,.rand()%127+1) |
| 1020 | 3b 0a 20 20 20 20 7d 0a 20 20 20 20 69 6e 74 20 65 6e 64 74 65 78 74 20 3d 20 2a 63 75 72 72 65 | ;.....}.....int.endtext.=.*curre |
| 1040 | 6e 74 5f 74 69 63 6b 3b 0a 0a 20 20 20 20 67 66 78 5f 72 65 73 65 74 28 29 3b 0a 0a 20 20 20 20 | nt_tick;......gfx_reset();...... |
| 1060 | 69 6e 74 20 73 74 61 72 74 68 6c 69 6e 65 20 3d 20 2a 63 75 72 72 65 6e 74 5f 74 69 63 6b 3b 0a | int.starthline.=.*current_tick;. |
| 1080 | 20 20 20 20 66 6f 72 28 69 6e 74 20 69 3d 30 3b 69 3c 31 30 30 30 30 30 30 3b 2b 2b 69 29 0a 20 | ....for(int.i=0;i<1000000;++i).. |
| 10a0 | 20 20 20 7b 0a 20 20 20 20 20 20 20 20 67 66 78 5f 73 65 74 5f 66 6f 72 65 67 72 6f 75 6e 64 28 | ...{.........gfx_set_foreground( |
| 10c0 | 72 61 6e 64 28 29 20 25 20 30 78 31 30 30 30 30 30 30 29 3b 0a 20 20 20 20 20 20 20 20 67 66 78 | rand().%.0x1000000);.........gfx |
| 10e0 | 5f 68 6c 69 6e 65 28 72 61 6e 64 28 29 20 25 20 77 69 64 74 68 2c 20 72 61 6e 64 28 29 20 25 20 | _hline(rand().%.width,.rand().%. |
| 1100 | 77 69 64 74 68 2c 20 72 61 6e 64 28 29 20 25 20 68 65 69 67 68 74 29 3b 0a 20 20 20 20 7d 0a 20 | width,.rand().%.height);.....}.. |
| 1120 | 20 20 20 69 6e 74 20 65 6e 64 68 6c 69 6e 65 20 3d 20 2a 63 75 72 72 65 6e 74 5f 74 69 63 6b 3b | ...int.endhline.=.*current_tick; |
| 1140 | 0a 0a 20 20 20 20 67 66 78 5f 72 65 73 65 74 28 29 3b 0a 0a 20 20 20 20 69 6e 74 20 73 74 61 72 | ......gfx_reset();......int.star |
| 1160 | 74 76 6c 69 6e 65 20 3d 20 2a 63 75 72 72 65 6e 74 5f 74 69 63 6b 3b 0a 20 20 20 20 66 6f 72 28 | tvline.=.*current_tick;.....for( |
| 1180 | 69 6e 74 20 69 3d 30 3b 69 3c 31 30 30 30 30 30 30 3b 2b 2b 69 29 0a 20 20 20 20 7b 0a 20 20 20 | int.i=0;i<1000000;++i).....{.... |
| 11a0 | 20 20 20 20 20 67 66 78 5f 73 65 74 5f 66 6f 72 65 67 72 6f 75 6e 64 28 72 61 6e 64 28 29 20 25 | .....gfx_set_foreground(rand().% |
| 11c0 | 20 30 78 31 30 30 30 30 30 30 29 3b 0a 20 20 20 20 20 20 20 20 67 66 78 5f 76 6c 69 6e 65 28 72 | .0x1000000);.........gfx_vline(r |
| 11e0 | 61 6e 64 28 29 20 25 20 68 65 69 67 68 74 2c 20 72 61 6e 64 28 29 20 25 20 68 65 69 67 68 74 2c | and().%.height,.rand().%.height, |
| 1200 | 20 72 61 6e 64 28 29 20 25 20 77 69 64 74 68 29 3b 0a 20 20 20 20 7d 0a 20 20 20 20 69 6e 74 20 | .rand().%.width);.....}.....int. |
| 1220 | 65 6e 64 76 6c 69 6e 65 20 3d 20 2a 63 75 72 72 65 6e 74 5f 74 69 63 6b 3b 0a 0a 20 20 20 20 67 | endvline.=.*current_tick;......g |
| 1240 | 66 78 5f 72 65 73 65 74 28 29 3b 0a 0a 20 20 20 20 69 6e 74 20 73 74 61 72 74 72 65 63 74 20 3d | fx_reset();......int.startrect.= |
| 1260 | 20 2a 63 75 72 72 65 6e 74 5f 74 69 63 6b 3b 0a 20 20 20 20 66 6f 72 28 69 6e 74 20 69 3d 30 3b | .*current_tick;.....for(int.i=0; |
| 1280 | 69 3c 31 30 30 30 30 3b 2b 2b 69 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 6e 74 20 78 | i<10000;++i).....{.........int.x |
| 12a0 | 20 3d 20 72 61 6e 64 28 29 20 25 20 77 69 64 74 68 3b 0a 20 20 20 20 20 20 20 20 69 6e 74 20 79 | .=.rand().%.width;.........int.y |
| 12c0 | 20 3d 20 72 61 6e 64 28 29 20 25 20 68 65 69 67 68 74 3b 0a 20 20 20 20 20 20 20 20 69 6e 74 20 | .=.rand().%.height;.........int. |
| 12e0 | 77 20 3d 20 72 61 6e 64 28 29 20 25 20 28 77 69 64 74 68 20 2d 20 78 29 3b 0a 20 20 20 20 20 20 | w.=.rand().%.(width.-.x);....... |
| 1300 | 20 20 69 6e 74 20 68 20 3d 20 72 61 6e 64 28 29 20 25 20 28 68 65 69 67 68 74 20 2d 20 79 29 3b | ..int.h.=.rand().%.(height.-.y); |
| 1320 | 0a 20 20 20 20 20 20 20 20 67 66 78 5f 73 65 74 5f 66 6f 72 65 67 72 6f 75 6e 64 28 72 61 6e 64 | .........gfx_set_foreground(rand |
| 1340 | 28 29 20 25 20 30 78 31 30 30 30 30 30 30 29 3b 0a 20 20 20 20 20 20 20 20 67 66 78 5f 66 69 6c | ().%.0x1000000);.........gfx_fil |
| 1360 | 6c 72 65 63 74 28 78 2c 20 79 2c 20 77 2c 20 68 29 3b 0a 20 20 20 20 7d 0a 20 20 20 20 69 6e 74 | lrect(x,.y,.w,.h);.....}.....int |
| 1380 | 20 65 6e 64 72 65 63 74 20 3d 20 2a 63 75 72 72 65 6e 74 5f 74 69 63 6b 3b 0a 0a 20 20 20 20 67 | .endrect.=.*current_tick;......g |
| 13a0 | 66 78 5f 72 65 73 65 74 28 29 3b 0a 0a 20 20 20 20 69 6e 74 20 73 74 61 72 74 6c 69 6e 65 20 3d | fx_reset();......int.startline.= |
| 13c0 | 20 2a 63 75 72 72 65 6e 74 5f 74 69 63 6b 3b 0a 20 20 20 20 66 6f 72 28 69 6e 74 20 69 3d 30 3b | .*current_tick;.....for(int.i=0; |
| 13e0 | 69 3c 31 30 30 30 30 30 30 3b 2b 2b 69 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 6e 74 | i<1000000;++i).....{.........int |
| 1400 | 20 78 31 3d 20 72 61 6e 64 28 29 20 25 20 77 69 64 74 68 3b 0a 20 20 20 20 20 20 20 20 69 6e 74 | .x1=.rand().%.width;.........int |
| 1420 | 20 78 32 3d 20 72 61 6e 64 28 29 20 25 20 77 69 64 74 68 3b 0a 20 20 20 20 20 20 20 20 69 6e 74 | .x2=.rand().%.width;.........int |
| 1440 | 20 79 31 3d 20 72 61 6e 64 28 29 20 25 20 68 65 69 67 68 74 3b 0a 20 20 20 20 20 20 20 20 69 6e | .y1=.rand().%.height;.........in |
| 1460 | 74 20 79 32 3d 20 72 61 6e 64 28 29 20 25 20 68 65 69 67 68 74 3b 0a 20 20 20 20 20 20 20 20 67 | t.y2=.rand().%.height;.........g |
| 1480 | 66 78 5f 73 65 74 5f 66 6f 72 65 67 72 6f 75 6e 64 28 72 61 6e 64 28 29 20 25 20 30 78 31 30 30 | fx_set_foreground(rand().%.0x100 |
| 14a0 | 30 30 30 30 29 3b 0a 20 20 20 20 20 20 20 20 67 66 78 5f 64 72 61 77 6c 69 6e 65 28 78 31 2c 20 | 0000);.........gfx_drawline(x1,. |
| 14c0 | 79 31 2c 20 78 32 2c 20 79 32 29 3b 0a 20 20 20 20 7d 0a 20 20 20 20 69 6e 74 20 65 6e 64 6c 69 | y1,.x2,.y2);.....}.....int.endli |
| 14e0 | 6e 65 20 3d 20 2a 63 75 72 72 65 6e 74 5f 74 69 63 6b 3b 0a 0a 20 20 20 20 67 66 78 5f 72 65 73 | ne.=.*current_tick;......gfx_res |
| 1500 | 65 74 28 29 3b 0a 0a 20 20 20 20 70 72 69 6e 74 66 28 22 2d 2d 2d 20 47 72 61 70 68 69 63 73 20 | et();......printf("---.Graphics. |
| 1520 | 62 65 6e 63 68 6d 61 72 6b 20 72 65 73 75 6c 74 73 20 2d 2d 2d 5c 6e 22 29 3b 0a 20 20 20 20 70 | benchmark.results.---\n");.....p |
| 1540 | 72 69 6e 74 66 28 22 54 69 63 6b 73 20 66 6f 72 20 31 2c 30 30 30 2c 30 30 30 20 72 61 6e 64 6f | rintf("Ticks.for.1,000,000.rando |
| 1560 | 6d 20 70 69 78 65 6c 73 3a 20 25 64 5c 6e 22 2c 20 65 6e 64 70 69 78 2d 73 74 61 72 74 70 69 78 | m.pixels:.%d\n",.endpix-startpix |
| 1580 | 29 3b 0a 20 20 20 20 70 72 69 6e 74 66 28 22 54 69 63 6b 73 20 66 6f 72 20 31 2c 30 30 30 20 72 | );.....printf("Ticks.for.1,000.r |
| 15a0 | 61 6e 64 6f 6d 20 66 69 6c 6c 73 3a 20 20 20 20 20 20 25 64 5c 6e 22 2c 20 65 6e 64 66 69 6c 6c | andom.fills:......%d\n",.endfill |
| 15c0 | 2d 73 74 61 72 74 66 69 6c 6c 29 3b 0a 20 20 20 20 70 72 69 6e 74 66 28 22 54 69 63 6b 73 20 66 | -startfill);.....printf("Ticks.f |
| 15e0 | 6f 72 20 31 2c 30 30 30 2c 30 30 30 20 72 61 6e 64 6f 6d 20 63 68 61 72 73 3a 20 20 25 64 5c 6e | or.1,000,000.random.chars:..%d\n |
| 1600 | 22 2c 20 65 6e 64 74 65 78 74 2d 73 74 61 72 74 74 65 78 74 29 3b 0a 20 20 20 20 70 72 69 6e 74 | ",.endtext-starttext);.....print |
| 1620 | 66 28 22 54 69 63 6b 73 20 66 6f 72 20 31 2c 30 30 30 2c 30 30 30 20 72 61 6e 64 6f 6d 20 68 6c | f("Ticks.for.1,000,000.random.hl |
| 1640 | 69 6e 65 73 3a 20 25 64 5c 6e 22 2c 20 65 6e 64 68 6c 69 6e 65 2d 73 74 61 72 74 68 6c 69 6e 65 | ines:.%d\n",.endhline-starthline |
| 1660 | 29 3b 0a 20 20 20 20 70 72 69 6e 74 66 28 22 54 69 63 6b 73 20 66 6f 72 20 31 2c 30 30 30 2c 30 | );.....printf("Ticks.for.1,000,0 |
| 1680 | 30 30 20 72 61 6e 64 6f 6d 20 76 6c 69 6e 65 73 3a 20 25 64 5c 6e 22 2c 20 65 6e 64 76 6c 69 6e | 00.random.vlines:.%d\n",.endvlin |
| 16a0 | 65 2d 73 74 61 72 74 76 6c 69 6e 65 29 3b 0a 20 20 20 20 70 72 69 6e 74 66 28 22 54 69 63 6b 73 | e-startvline);.....printf("Ticks |
| 16c0 | 20 66 6f 72 20 31 30 2c 30 30 30 20 72 61 6e 64 6f 6d 20 72 65 63 74 73 3a 20 20 20 20 20 25 64 | .for.10,000.random.rects:.....%d |
| 16e0 | 5c 6e 22 2c 20 65 6e 64 72 65 63 74 2d 73 74 61 72 74 72 65 63 74 29 3b 0a 20 20 20 20 70 72 69 | \n",.endrect-startrect);.....pri |
| 1700 | 6e 74 66 28 22 54 69 63 6b 73 20 66 6f 72 20 31 2c 30 30 30 2c 30 30 30 20 72 61 6e 64 6f 6d 20 | ntf("Ticks.for.1,000,000.random. |
| 1720 | 6c 69 6e 65 73 3a 20 20 25 64 5c 6e 22 2c 20 65 6e 64 6c 69 6e 65 2d 73 74 61 72 74 6c 69 6e 65 | lines:..%d\n",.endline-startline |
| 1740 | 29 3b 0a 20 20 20 20 70 72 69 6e 74 66 28 22 54 69 63 6b 73 20 70 65 72 20 73 65 63 6f 6e 64 3a | );.....printf("Ticks.per.second: |
| 1760 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 25 64 5c 6e 22 2c 20 48 5a 29 3b 0a 20 20 | ..................%d\n",.HZ);... |
| 1780 | 20 20 70 72 69 6e 74 66 28 22 52 65 73 6f 6c 75 74 69 6f 6e 3a 20 25 64 78 25 64 78 25 64 5c 6e | ..printf("Resolution:.%dx%dx%d\n |
| 17a0 | 22 2c 20 2a 67 66 78 5f 77 69 64 74 68 2c 20 2a 67 66 78 5f 68 65 69 67 68 74 2c 20 2a 67 66 78 | ",.*gfx_width,.*gfx_height,.*gfx |
| 17c0 | 5f 62 70 70 20 2a 20 38 29 3b 0a 7d 0a 0a 73 74 61 74 69 63 20 76 6f 69 64 20 6b 65 79 68 61 6e | _bpp.*.8);.}..static.void.keyhan |
| 17e0 | 64 6c 65 72 28 63 6f 6e 73 74 20 73 74 72 75 63 74 20 70 73 32 5f 6b 65 79 65 76 65 6e 74 20 2a | dler(const.struct.ps2_keyevent.* |
| 1800 | 65 76 29 0a 7b 0a 20 20 20 20 69 66 28 65 76 2d 3e 61 73 63 69 69 29 0a 20 20 20 20 7b 0a 20 20 | ev).{.....if(ev->ascii).....{... |
| 1820 | 20 20 20 20 20 20 69 66 28 65 76 2d 3e 73 70 65 63 69 61 6c 5f 6b 65 79 73 2d 3e 63 74 72 6c 29 | ......if(ev->special_keys->ctrl) |
| 1840 | 0a 20 20 20 20 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 75 74 63 68 61 72 28 27 | .........{.............putchar(' |
| 1860 | 5e 27 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 75 74 63 68 61 72 28 74 6f 75 70 70 65 72 | ^');.............putchar(toupper |
| 1880 | 28 65 76 2d 3e 61 73 63 69 69 29 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 | (ev->ascii));.........}......... |
| 18a0 | 65 6c 73 65 0a 20 20 20 20 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 75 74 63 68 | else.........{.............putch |
| 18c0 | 61 72 28 65 76 2d 3e 61 73 63 69 69 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 7d | ar(ev->ascii);.........}.....}.} |
| 18e0 | 0a 0a 76 6f 69 64 20 6d 61 69 6e 28 73 74 72 75 63 74 20 6d 75 6c 74 69 62 6f 6f 74 5f 69 6e 66 | ..void.main(struct.multiboot_inf |
| 1900 | 6f 5f 74 20 2a 68 64 72 2c 20 75 69 6e 74 33 32 5f 74 20 6d 61 67 69 63 29 0a 7b 0a 20 20 20 20 | o_t.*hdr,.uint32_t.magic).{..... |
| 1920 | 62 6f 6f 6c 20 67 66 78 5f 73 74 61 74 75 73 20 3d 20 62 6f 6f 74 28 68 64 72 2c 20 6d 61 67 69 | bool.gfx_status.=.boot(hdr,.magi |
| 1940 | 63 29 3b 0a 20 20 20 20 69 6e 69 74 72 64 5f 72 65 61 64 28 29 3b 0a 20 20 20 20 67 66 78 5f 73 | c);.....initrd_read();.....gfx_s |
| 1960 | 65 74 5f 66 6f 72 65 67 72 6f 75 6e 64 28 30 78 38 30 46 46 38 30 29 3b 0a 20 20 20 20 70 72 69 | et_foreground(0x80FF80);.....pri |
| 1980 | 6e 74 66 28 22 48 65 6c 6c 6f 2c 20 77 6f 72 6c 64 21 5c 6e 22 29 3b 0a 20 20 20 20 67 66 78 5f | ntf("Hello,.world!\n");.....gfx_ |
| 19a0 | 73 65 74 5f 66 6f 72 65 67 72 6f 75 6e 64 28 47 46 58 5f 57 48 49 54 45 29 3b 0a 0a 20 20 20 20 | set_foreground(GFX_WHITE);...... |
| 19c0 | 70 73 32 6b 62 64 5f 73 65 74 5f 68 61 6e 64 6c 65 72 28 6b 65 79 68 61 6e 64 6c 65 72 29 3b 0a | ps2kbd_set_handler(keyhandler);. |
| 19e0 | 0a 20 20 20 20 77 68 69 6c 65 28 31 29 61 73 6d 28 22 68 6c 74 22 29 3b 0a 0a 20 20 20 20 2f 2f | .....while(1)asm("hlt");......// |
| 1a00 | 63 68 61 72 20 2a 70 74 72 20 3d 20 30 78 41 30 30 30 30 30 3b 0a 20 20 20 20 2f 2f 70 75 74 63 | char.*ptr.=.0xA00000;.....//putc |
| 1a20 | 68 61 72 28 2a 70 74 72 29 3b 0a 0a 20 20 20 20 70 72 69 6e 74 66 28 22 53 74 61 72 74 69 6e 67 | har(*ptr);......printf("Starting |
| 1a40 | 20 6c 69 6e 6b 65 64 2d 69 6e 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 58 52 61 63 65 72 2e 2e 2e | .linked-in.application.XRacer... |
| 1a60 | 5c 6e 22 29 3b 0a 20 20 20 20 2f 2f 70 72 69 6e 74 66 28 22 52 75 6e 6e 69 6e 67 20 67 72 61 70 | \n");.....//printf("Running.grap |
| 1a80 | 68 69 63 73 20 62 65 6e 63 68 6d 61 72 6b 2e 2e 2e 5c 6e 22 29 3b 0a 20 20 20 20 73 72 61 6e 64 | hics.benchmark...\n");.....srand |
| 1aa0 | 28 34 32 29 3b 0a 0a 20 20 20 20 67 66 78 5f 72 65 73 65 74 28 29 3b 0a 0a 20 20 20 20 65 6e 75 | (42);......gfx_reset();......enu |
| 1ac0 | 6d 20 70 6c 75 67 69 6e 5f 73 74 61 74 75 73 3b 0a 20 20 20 20 73 74 72 75 63 74 20 70 6c 75 67 | m.plugin_status;.....struct.plug |
| 1ae0 | 69 6e 5f 61 70 69 3b 0a 20 20 20 20 65 78 74 65 72 6e 20 65 6e 75 6d 20 70 6c 75 67 69 6e 5f 73 | in_api;.....extern.enum.plugin_s |
| 1b00 | 74 61 74 75 73 20 78 72 61 63 65 72 5f 6d 61 69 6e 28 63 6f 6e 73 74 20 73 74 72 75 63 74 20 70 | tatus.xracer_main(const.struct.p |
| 1b20 | 6c 75 67 69 6e 5f 61 70 69 2a 29 3b 0a 20 20 20 20 65 78 74 65 72 6e 20 76 6f 69 64 20 70 6c 75 | lugin_api*);.....extern.void.plu |
| 1b40 | 67 69 6e 5f 6c 6f 61 64 28 65 6e 75 6d 20 70 6c 75 67 69 6e 5f 73 74 61 74 75 73 20 28 2a 66 75 | gin_load(enum.plugin_status.(*fu |
| 1b60 | 6e 63 29 28 63 6f 6e 73 74 20 73 74 72 75 63 74 20 70 6c 75 67 69 6e 5f 61 70 69 2a 29 29 3b 0a | nc)(const.struct.plugin_api*));. |
| 1b80 | 0a 20 20 20 20 2f 2f 70 6c 75 67 69 6e 5f 6c 6f 61 64 28 78 72 61 63 65 72 5f 6d 61 69 6e 29 3b | .....//plugin_load(xracer_main); |
| 1ba0 | 0a 0a 20 20 20 20 69 66 28 67 66 78 5f 73 74 61 74 75 73 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 | ......if(gfx_status).....{...... |
| 1bc0 | 20 20 20 72 75 6e 5f 67 66 78 5f 62 65 6e 63 68 6d 61 72 6b 28 29 3b 0a 20 20 20 20 7d 0a 20 20 | ...run_gfx_benchmark();.....}... |
| 1be0 | 20 20 66 6c 61 73 68 5f 6c 65 64 73 28 29 3b 0a 7d 0a | ..flash_leds();.}. |