diff options
author | Joerg Wunsch <joerg@FreeBSD.org> | 1995-03-27 21:35:21 +0000 |
---|---|---|
committer | Joerg Wunsch <joerg@FreeBSD.org> | 1995-03-27 21:35:21 +0000 |
commit | 869622ad387690d0689907e61b2eadd0cedaf7bc (patch) | |
tree | c63434170244083265d9ddf8c447e2a75c961f26 /emulators/pcemu/files/patch-ab | |
parent | Add MAINTAINER. Yes, I know I screwed up the Submitted by: line on the (diff) |
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. :)
Diffstat (limited to 'emulators/pcemu/files/patch-ab')
-rw-r--r-- | emulators/pcemu/files/patch-ab | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/emulators/pcemu/files/patch-ab b/emulators/pcemu/files/patch-ab new file mode 100644 index 000000000000..877cfdbaa53f --- /dev/null +++ b/emulators/pcemu/files/patch-ab @@ -0,0 +1,79 @@ +*** 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; |