> compile NEMU
221220000 张三 Linux zzy 5.15.146.1-microsoft-standard-WSL2 #1 SMP Thu Jan 11 04:09:03 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux 23:42:52 up 7 days, 23:43, 1 user, load average: 0.70, 0.75, 0.90
This commit is contained in:
@ -27,18 +27,24 @@ size_t events_read(void *buf, size_t offset, size_t len) {
|
||||
if (kb.keycode == AM_KEY_NONE) {
|
||||
return 0;
|
||||
}
|
||||
return snprintf(buf, len, "%s %s\n", kb.keydown ? "kd" : "ku", keyname[kb.keycode]);
|
||||
// TRACE("events_read: %s keyname=%s", kb.keydown ? "kd" : "ku", keyname[kb.keycode]);
|
||||
|
||||
// WARNING MUST ADD 1 IS '\0'
|
||||
return snprintf(buf, len, "%s %s\n", kb.keydown ? "kd" : "ku", keyname[kb.keycode]) + 1;
|
||||
}
|
||||
|
||||
size_t dispinfo_read(void *buf, size_t offset, size_t len) {
|
||||
AM_GPU_CONFIG_T gconf = io_read(AM_GPU_CONFIG);
|
||||
return snprintf(buf, len, "WIDTH : %d\nHEIGHT : %d\n", gconf.width, gconf.height);
|
||||
// TRACE("dispinfo_read: width=%d height=%d", gconf.width, gconf.height);
|
||||
|
||||
// WARNING MUST ADD 1 IS '\0'
|
||||
return snprintf(buf, len, "WIDTH : %d\nHEIGHT : %d\n", gconf.width, gconf.height) + 1;
|
||||
}
|
||||
|
||||
size_t fb_write(const void *buf, size_t offset, size_t len) {
|
||||
int w = io_read(AM_GPU_CONFIG).width;
|
||||
offset /= sizeof(uint32_t);
|
||||
// TRACE("fb_write: offset=%d len=%d\n", offset, len);
|
||||
// TRACE("fb_write: offset=%d len=%d", offset, len);
|
||||
io_write(AM_GPU_FBDRAW, offset % w, offset / w, (void*)buf, len / sizeof(uint32_t), 1, true);
|
||||
return len;
|
||||
}
|
||||
|
@ -53,28 +53,34 @@ int fs_open(const char *pathname, int flags, int mode) {
|
||||
|
||||
size_t fs_read(int fd, void *buf, size_t len) {
|
||||
assert(fd >= 0 && fd < LENGTH(file_table));
|
||||
size_t ret;
|
||||
if (file_table[fd].read != NULL) {
|
||||
return file_table[fd].read(buf, file_table[fd].open_offset, len);
|
||||
ret = file_table[fd].read(buf, file_table[fd].open_offset, len);
|
||||
goto END;
|
||||
}
|
||||
|
||||
if (file_table[fd].size < file_table[fd].open_offset + len) {
|
||||
len = file_table[fd].size - file_table[fd].open_offset;
|
||||
}
|
||||
size_t ret = ramdisk_read(buf, file_table[fd].disk_offset + file_table[fd].open_offset, len);
|
||||
ret = ramdisk_read(buf, file_table[fd].disk_offset + file_table[fd].open_offset, len);
|
||||
END:
|
||||
file_table[fd].open_offset += ret;
|
||||
return ret;
|
||||
}
|
||||
|
||||
size_t fs_write(int fd, const void *buf, size_t len) {
|
||||
assert(fd >= 0 && fd < LENGTH(file_table));
|
||||
size_t ret;
|
||||
if (file_table[fd].write != NULL) {
|
||||
return file_table[fd].write(buf, file_table[fd].open_offset, len);
|
||||
ret = file_table[fd].write(buf, file_table[fd].open_offset, len);
|
||||
goto END;
|
||||
}
|
||||
|
||||
if (file_table[fd].size < file_table[fd].open_offset + len) {
|
||||
len = file_table[fd].size - file_table[fd].open_offset;
|
||||
}
|
||||
size_t ret = ramdisk_write(buf, file_table[fd].disk_offset + file_table[fd].open_offset, len);
|
||||
ret = ramdisk_write(buf, file_table[fd].disk_offset + file_table[fd].open_offset, len);
|
||||
END:
|
||||
file_table[fd].open_offset += ret;
|
||||
return ret;
|
||||
}
|
||||
|
@ -26,7 +26,7 @@ void init_proc() {
|
||||
|
||||
// load program here
|
||||
void naive_uload(PCB *pcb, const char *filename);
|
||||
naive_uload(NULL, "/bin/bmp-test");
|
||||
naive_uload(NULL, "/bin/nslider");
|
||||
|
||||
}
|
||||
|
||||
|
@ -28,7 +28,7 @@ int SDL_WaitEvent(SDL_Event *event) {
|
||||
event->type = SDL_KEYUP;
|
||||
}
|
||||
for (int i = 0; i < 83; i ++ ) {
|
||||
if (strncmp(buf + 3, keyname[i], strlen(keyname[i])) == 0) {
|
||||
if (strncmp(buf + 3, keyname[i], strlen(buf) - 4) == 0) {
|
||||
// printf("SDL_WaitEvent Got %s\n", keyname[i]);
|
||||
event->key.keysym.sym = i;
|
||||
return 1;
|
||||
|
@ -23,6 +23,7 @@ int NDL_PollEvent(char *buf, int len) {
|
||||
exit(-1);
|
||||
}
|
||||
size_t ret = fread(buf, 1, len, fd);
|
||||
if (ret) printf("NDL_PollEvent read %d bytes is %s", ret, buf);
|
||||
fclose(fd);
|
||||
return ret;
|
||||
}
|
||||
|
@ -7,7 +7,7 @@
|
||||
int main() {
|
||||
NDL_Init(0);
|
||||
int w, h;
|
||||
void *bmp = BMP_Load("/share/pictures/test.bmp", &w, &h);
|
||||
void *bmp = BMP_Load("/share/pictures/projectn.bmp", &w, &h);
|
||||
assert(bmp);
|
||||
NDL_OpenCanvas(&w, &h);
|
||||
NDL_DrawRect(bmp, 0, 0, w, h);
|
||||
|
Reference in New Issue
Block a user