とりあえず起動画面もどきを作った。
何かキーを押すと続行しますよ~
@@ -21,6 +21,24 @@ | ||
21 | 21 | |
22 | 22 | system.draw.init_screen(system.sys.sht.desktop_buf, system.sys.sht.taskbar_buf, *system.sys.sht.mouse_buf); |
23 | 23 | |
24 | + for(;;){ | |
25 | + system.io.cli(); | |
26 | + if(system.data.fifo.status(&system.sys.fifo) == 0){ | |
27 | + task_sleep(system.sys.task.main); | |
28 | + system.io.sti(); | |
29 | + } else { | |
30 | + i = system.data.fifo.get(&system.sys.fifo); | |
31 | + i -= SYS_FIFO_START_KEYB; | |
32 | + if(i == 0x1c){ | |
33 | + sheet_updown(system.sys.sht.core, -1); | |
34 | + sheet_updown(system.sys.sht.desktop, 1); | |
35 | + sheet_updown(system.sys.sht.taskbar, 2); | |
36 | + sheet_updown(system.sys.sht.mouse, 3); | |
37 | + break; | |
38 | + } | |
39 | + } | |
40 | + } | |
41 | + | |
24 | 42 | sheet_refresh_full(system.sys.sht.desktop); |
25 | 43 | sheet_refresh_full(system.sys.sht.taskbar); |
26 | 44 | sheet_refresh_full_alpha(system.sys.sht.mouse); |
@@ -46,11 +64,9 @@ | ||
46 | 64 | console_task->tss.ds = 1 * 8; |
47 | 65 | console_task->tss.fs = 1 * 8; |
48 | 66 | console_task->tss.gs = 1 * 8; |
49 | - task_arguments(console_task, 1, console_win); | |
67 | + task_arguments(console_task, 2, console_win); | |
50 | 68 | task_run(console_task, 2, 2); |
51 | 69 | |
52 | - draw_chnos_logo(testwin->buf, testwin->winxsize, 30, 80, 80); | |
53 | - refresh_window(testwin); | |
54 | 70 | |
55 | 71 | for(;;){ |
56 | 72 | system.io.cli(); |
@@ -96,6 +96,14 @@ | ||
96 | 96 | |
97 | 97 | system.draw.sht.init(system.sys.vram, system.sys.xsize, system.sys.ysize, system.sys.bpp); |
98 | 98 | |
99 | + system.sys.sht.core = system.draw.sht.alloc(); | |
100 | + system.sys.sht.core_buf = system.io.mem.alloc(system.sys.xsize * system.sys.ysize * (system.sys.bpp / 8)); | |
101 | + system.draw.sht.set(system.sys.sht.core, system.sys.sht.core_buf, system.sys.xsize, system.sys.ysize, INV_COL32); | |
102 | + system.draw.boxfill(system.sys.sht.core_buf, system.sys.xsize, 0x000000, 0, 0, system.sys.xsize, system.sys.ysize); | |
103 | + draw_chnos_logo(system.sys.sht.core_buf, system.sys.xsize, 30, 80, 80); | |
104 | + system.draw.sht.updown(system.sys.sht.core, 1); | |
105 | + | |
106 | + | |
99 | 107 | system.sys.sht.desktop = system.draw.sht.alloc(); |
100 | 108 | system.sys.sht.mouse = system.draw.sht.alloc(); |
101 | 109 | system.sys.sht.taskbar = system.draw.sht.alloc(); |
@@ -108,11 +116,11 @@ | ||
108 | 116 | system.draw.sht.set(system.sys.sht.taskbar, system.sys.sht.taskbar_buf, system.sys.xsize, system.sys.ysize, INV_COL32); |
109 | 117 | |
110 | 118 | system.draw.sht.slide(system.sys.sht.desktop, 0, 0); |
111 | - system.draw.sht.updown(system.sys.sht.desktop, 1); | |
119 | + system.draw.sht.updown(system.sys.sht.desktop, -1); | |
112 | 120 | system.draw.sht.slide(system.sys.sht.taskbar, 0, system.sys.ysize - TASKBAR_HEIGHT); |
113 | - system.draw.sht.updown(system.sys.sht.taskbar, 2); | |
121 | + system.draw.sht.updown(system.sys.sht.taskbar, -1); | |
114 | 122 | system.draw.sht.slide(system.sys.sht.mouse, system.sys.xsize / 2, system.sys.ysize / 2); |
115 | - system.draw.sht.updown(system.sys.sht.mouse, 3); | |
123 | + system.draw.sht.updown(system.sys.sht.mouse, -1); | |
116 | 124 | |
117 | 125 | system.data.fifo.init(&system.sys.fifo, SYS_FIFOSIZE, system.sys.fifo_buf, 0); |
118 | 126 | system.data.fifo.init(&system.sys.keycmd, KEYCMD_FIFOSIZE, system.sys.keycmd_buf, 0); |
@@ -383,9 +383,11 @@ | ||
383 | 383 | } app; |
384 | 384 | struct SYS_SYS { |
385 | 385 | struct SYS_SYS_SHT { |
386 | + struct SHEET32 *core; | |
386 | 387 | struct SHEET32 *desktop; |
387 | 388 | struct SHEET32 *mouse; |
388 | 389 | struct SHEET32 *taskbar; |
390 | + unsigned int *core_buf; | |
389 | 391 | unsigned int *desktop_buf; |
390 | 392 | unsigned int mouse_buf[24][24]; |
391 | 393 | unsigned int *taskbar_buf; |