From 2bd44dac3f3dfafca8583a467b775c2a6a318776 Mon Sep 17 00:00:00 2001 From: wiz Date: Fri, 9 Jul 2004 12:45:23 +0000 Subject: Make build with gcc3; from FreeBSD ports (joerg). --- emulators/pcemu/distinfo | 16 +++-- emulators/pcemu/patches/patch-ab | 150 ++++++++++++++++++--------------------- emulators/pcemu/patches/patch-ah | 13 ++++ 3 files changed, 93 insertions(+), 86 deletions(-) create mode 100644 emulators/pcemu/patches/patch-ah diff --git a/emulators/pcemu/distinfo b/emulators/pcemu/distinfo index 3f45c944e28..1a52737113d 100644 --- a/emulators/pcemu/distinfo +++ b/emulators/pcemu/distinfo @@ -1,11 +1,15 @@ -$NetBSD: distinfo,v 1.3 2001/10/25 20:50:39 agc Exp $ +$NetBSD: distinfo,v 1.4 2004/07/09 12:45:23 wiz Exp $ SHA1 (pcemu1.01alpha.tar.gz) = 4c0cf9b3b197e890fbc85dc85ca0d7c75eb145b3 Size (pcemu1.01alpha.tar.gz) = 316257 bytes SHA1 (patch-aa) = f53e918695b8929688b375c1af6f003b02ffa4ca -SHA1 (patch-ab) = adb327b827d80d275509c8057a1d877d19b8fbc7 -SHA1 (patch-ac) = 1e1f9ca92dc6c1c09ddcb8c77f4536a02c752f6e -SHA1 (patch-ad) = 7adb1245e8bb9369b50cc1339337908660b8ebfb -SHA1 (patch-ae) = 953a1aed49026acab609b8944424bdb9ba387de0 -SHA1 (patch-af) = 84f85b5d74a4c27203e0a3183d89af42504ed89f +SHA1 (patch-ab) = 6636736f76b956a2beb6490785b63f4a131c9c25 +SHA1 (patch-ac) = 0ff6e3057b7b23d606256baf95e6efb742e79257 +SHA1 (patch-ad) = 5b4c50d591eb5060276015e8b178475de38293fd +SHA1 (patch-ae) = c641955b80afabb688739fca411f3c31c2aa16a7 +SHA1 (patch-af) = d36be5e25896ebc66bb2cc11135d61053a7e57ff SHA1 (patch-ag) = 95ee8354783af38e43eb966a991c7a87823b7ce7 +SHA1 (patch-ah) = 37e8e4af38a4a66e4c5f3e57e682ca793b735732 +SHA1 (patch-ai) = 797d2d6b03f4c4b4e014bb1f8931313fddafd3a8 +SHA1 (patch-aj) = 6df6fb6fc9b8f9a9c551f5152325fde7aab986c6 +SHA1 (patch-ak) = e04ac57d8a51016bd1e449141a33a7c793b6aab0 diff --git a/emulators/pcemu/patches/patch-ab b/emulators/pcemu/patches/patch-ab index 0a6d3047b76..63ca983d882 100644 --- a/emulators/pcemu/patches/patch-ab +++ b/emulators/pcemu/patches/patch-ab @@ -1,80 +1,70 @@ -$NetBSD: patch-ab,v 1.2 1999/12/29 01:45:39 wiz Exp $ -*** cpu.c.orig Wed Jun 22 16:24:50 1994 ---- cpu.c Tue Jan 24 18:37:17 1995 -*************** -*** 1127,1132 **** ---- 1127,1133 ---- - - static INLINE2 void i_daa(void) - { -+ /* Opcode 0x27 */ - if (AF || ((*bregs[AL] & 0xf) > 9)) - { - *bregs[AL] += 6; -*************** -*** 1300,1305 **** ---- 1301,1330 ---- - c_ss = SegToMemPtr(SS); - } - -+ static INLINE2 void i_das(void) -+ { -+ /* Opcode 0x2f */ -+ if (AF || ((*bregs[AL] & 0xf) > 9)) -+ { -+ *bregs[AL] -= 6; -+ AF = 1; -+ } -+ else -+ AF = 0; -+ -+ if (CF || (*bregs[AL] > 0x9f)) -+ { -+ *bregs[AL] -= 0x60; -+ CF = 1; -+ } -+ else -+ CF = 0; -+ -+ SetPF(*bregs[AL]); -+ SetSFB(*bregs[AL]); -+ SetZFB(*bregs[AL]); -+ } -+ - - /* most XOR instructions go here */ - -*************** -*** 4140,4146 **** - { - fprintf(stderr,"Error: Unimplemented opcode %02X at cs:ip = %04X:%04X\n", - c_cs[ip-1],sregs[CS],ip-1); -! exit(1); - } - - ---- 4165,4171 ---- - { - fprintf(stderr,"Error: Unimplemented opcode %02X at cs:ip = %04X:%04X\n", - c_cs[ip-1],sregs[CS],ip-1); -! /* exit(1); */ - } - - -*************** -*** 4218,4224 **** - case 0x2c: i_sub_ald8(); break; - case 0x2d: i_sub_axd16(); break; - case 0x2e: i_cs(); break; -! case 0x2f: i_notdone(); break; - case 0x30: i_xor_br8(); break; - case 0x31: i_xor_wr16(); break; - case 0x32: i_xor_r8b(); break; ---- 4243,4249 ---- - case 0x2c: i_sub_ald8(); break; - case 0x2d: i_sub_axd16(); break; - case 0x2e: i_cs(); break; -! case 0x2f: i_das(); break; - case 0x30: i_xor_br8(); break; - case 0x31: i_xor_wr16(); break; - case 0x32: i_xor_r8b(); break; +$NetBSD: patch-ab,v 1.3 2004/07/09 12:45:23 wiz Exp $ + +--- cpu.c.orig 1994-06-22 16:24:50.000000000 +0200 ++++ cpu.c +@@ -253,7 +253,7 @@ static INLINE2 void i_ ## name ## _axd16 + + + #define JumpCond(name, cond) \ +-static INLINE2 void i_j ## name ## (void) \ ++static INLINE2 void i_j ## name (void) \ + { \ + register int tmp = (int)((INT8)GetMemInc(c_cs,ip)); \ + if (cond) ip = (WORD)(ip+tmp); \ +@@ -1127,6 +1127,7 @@ static INLINE2 void i_es(void) + + static INLINE2 void i_daa(void) + { ++ /* Opcode 0x27 */ + if (AF || ((*bregs[AL] & 0xf) > 9)) + { + *bregs[AL] += 6; +@@ -1300,6 +1301,30 @@ static INLINE2 void i_cs(void) + c_ss = SegToMemPtr(SS); + } + ++static INLINE2 void i_das(void) ++{ ++ /* Opcode 0x2f */ ++ if (AF || ((*bregs[AL] & 0xf) > 9)) ++ { ++ *bregs[AL] -= 6; ++ AF = 1; ++ } ++ else ++ AF = 0; ++ ++ if (CF || (*bregs[AL] > 0x9f)) ++ { ++ *bregs[AL] -= 0x60; ++ CF = 1; ++ } ++ else ++ CF = 0; ++ ++ SetPF(*bregs[AL]); ++ SetSFB(*bregs[AL]); ++ SetZFB(*bregs[AL]); ++} ++ + + /* most XOR instructions go here */ + +@@ -4140,7 +4165,7 @@ static INLINE2 void i_notdone(void) + { + fprintf(stderr,"Error: Unimplemented opcode %02X at cs:ip = %04X:%04X\n", + c_cs[ip-1],sregs[CS],ip-1); +- exit(1); ++/* exit(1); */ + } + + +@@ -4218,7 +4243,7 @@ void execute(void) + case 0x2c: i_sub_ald8(); break; + case 0x2d: i_sub_axd16(); break; + case 0x2e: i_cs(); break; +- case 0x2f: i_notdone(); break; ++ case 0x2f: i_das(); break; + case 0x30: i_xor_br8(); break; + case 0x31: i_xor_wr16(); break; + case 0x32: i_xor_r8b(); break; diff --git a/emulators/pcemu/patches/patch-ah b/emulators/pcemu/patches/patch-ah new file mode 100644 index 00000000000..8da1b630ccc --- /dev/null +++ b/emulators/pcemu/patches/patch-ah @@ -0,0 +1,13 @@ +$NetBSD: patch-ah,v 1.1 2004/07/09 12:45:23 wiz Exp $ + +--- mfs_link.h.orig 1994-06-22 16:24:51.000000000 +0200 ++++ mfs_link.h +@@ -41,7 +41,7 @@ extern unsigned char *memory; + + + #define REGS vm86s.regs +-#define REG(reg) (REGS.##reg) ++#define REG(reg) (REGS.reg) + + #define CF (1 << 0) + #define TF (1 << 8) -- cgit v1.2.3