x8086NetEmu
几乎有效的8086仿真器的VB.NET实现。
尽管它仍然有一些错误,但它是一个相当稳定且功能强大的8088/86/186模拟器:
- 完整的8086架构仿真:CPU,内存,标志,寄存器和堆栈
- 外围设备:PIC/8259,PIT/8254,DMA/8237和PPI/8255
- 主要是工作适配器:CGA,扬声器和键盘
- 部分工作适配器:VGA,Adlib,Soundblaster和Mouse
- 不需要BIOS黑客攻击
- Winforms和控制台样品包括
- 通过单声道的跨平台支持(模拟器已在Windows,MacOS,Linux和RaspberryPi下进行了测试)
- 支持软盘和硬盘图像
- 硬盘和软盘图像检查员 /磁盘探索器(FAT12,FAT16和FAT16B / BIGDOS支持)
- 支持拖动文件到/从磁盘资源管理器和主机拖动文件
- 支持将文本复制到仿真器和主机的文本
- 可以通过按RCTRL+HOME访问模拟器菜单。在Windows下,您还可以右键单击窗口的标题栏。控制台版本中没有菜单可用。要更改控制台版本的模拟器设置,您可以使用任何文本编辑器编辑settings.dat文件
- 支持使用TrueType Mono字体,用户提供的字体位图文件,或者如果使用视频ROM文件,请使用此类ROM中提供的Charset。
- 集成调试器和控制台
目前,由于错误的错误(或错误?),该开发被停滞不前,该错误阻止了模拟器正常工作。可以通过启动到DOS 6.X并运行编辑,QBASIC,DEFRAG或MEMMAKER来复制该错误。很可能,这也是相同的错误,也可以阻止它运行Windows 1.01(尽管Windows 2.03几乎可以使用)。
多亏了@Tomharte的惊人工作,我终于找到了影响太多程序的错误!因此,在间接模式下,测试OpCode(0x84)使用不正确的寄存器。就是这样…解决这个愚蠢的错误已经解决了上面提到的所有错误。
模拟器中代码的一部分是由“ Fake86”(CGA/VGA/ADLIB和Soundblaster仿真),“ PCE -PC仿真器”(第2组,DIV,DIV,IDIV,MUL和IMUL OPCODES模拟和Flags Manage)和“ Retro”(Scheduler,Scheduler,Chipset和Keyboard和Keyboard Chandliting)进行了调整或启发的。
现在可以从发布部分下载预编译的二进制文件。
编译非窗口平台
扬声器仿真使用了Naudio,该Naudio仅在Windows下工作。因此,为了编译在非Windows平台下工作的X8086版本,必须将解决方案中所有项目的项目属性中的Win32自定义构建常数设置为false。
如果可以解决上述错误或错误,我将将声音后端支持切换到跨平台库贝斯。
实验网络UI
自从提交248以来,可以通过浏览器来查看和控制模拟器,通过将Winforms视频适配器之一初始化为enableWebui参数设置为true。
cpu.adapters.Add(新CGawinForms(CPU,videoport,,,true))
这将在http:// localhost:8086上创建一个Web服务器,该服务器使用简单的脚本渲染模拟器的显示并捕获关键事件,该事件将发送回模拟器进行处理。鼠标支持当前尚无可用。
