freebsd-ports/emulators/pcemu/files/patch-ad
Joerg Wunsch 869622ad38 This is David Hedley's pcemu 8086 PC emulator.
Technically, i consider this an excellent work.

I've made some efforts to make it easier for people get it actually up
& running.  This would have required an image of a DOS boot floppy,
which we cannot provide.  Instead, i wrote a small bootstrap loader
(basically a small more(1) clone with builtin text) that can be
``booted'' from.  It instructs the user how to get the image of a
bootable DOS floppy, and where to find the various files.

(The bootstrap loader requires bcc to be recompiled, but i'm providing
a gzip'ed/uuencoded version in the files directory as well.)

The pkg directory is not yet done.  Will follow RSN. :)
1995-03-27 21:35:21 +00:00

95 lines
1.9 KiB
Plaintext

*** main.c.orig Wed Jun 22 16:24:50 1994
--- main.c Tue Jan 24 18:37:18 1995
***************
*** 39,44 ****
--- 39,56 ----
exit(0);
}
+ static char *set_keymap(char *buf)
+ {
+ char c;
+ int code;
+
+ if(sscanf(buf, " %*s %i=%c", &code, &c) != 2)
+ return "usage: keymap code=char";
+ if(put_scan_table(code, (unsigned char)c))
+ return "bad value for keymap";
+ return 0;
+ }
+
void check_error(char *msg, int line)
{
***************
*** 89,94 ****
--- 101,108 ----
check_error(set_update_rate(strtol(value, NULL,10)), line);
else if (strcasecmp(keyword,"cursorspeed") == 0)
check_error(set_cursor_rate(strtol(value, NULL,10)), line);
+ else if (strcasecmp(keyword,"keymap") == 0)
+ check_error(set_keymap(buffer), line);
else
check_error("Syntax error in .pcemu file", line);
}
*** xstuff.c.orig Wed Jun 22 16:24:51 1994
--- xstuff.c Tue Jan 24 18:37:19 1995
***************
*** 316,322 ****
}
! static BYTE scan_table1[] =
{
0x39, 0x02,
#ifdef KBUK /* double quotes, hash symbol */
--- 316,322 ----
}
! static BYTE scan_table1[256 - 0x20] =
{
0x39, 0x02,
#ifdef KBUK /* double quotes, hash symbol */
***************
*** 360,365 ****
--- 360,366 ----
#else
0x29,
#endif
+ 0
};
***************
*** 458,463 ****
--- 459,474 ----
return (scan_table2[i].scan_code);
return 0;
+ }
+
+
+ int put_scan_table(BYTE code, unsigned char c)
+ {
+ /* interface to overload scan_table1 from .pcemurc */
+ if(c < ' ' || c >= ' ' + sizeof scan_table1)
+ return 1;
+ scan_table1[c - ' '] = code;
+ return 0;
}
*** xstuff.h.orig Wed Jun 22 16:24:51 1994
--- xstuff.h Tue Jan 24 18:37:19 1995
***************
*** 17,22 ****
--- 17,23 ----
void start_X(void);
void end_X(void);
+ int put_scan_table(BYTE, unsigned char);
void process_Xevents(void);
void flush_X(void);