惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

J
Java Code Geeks
Stack Overflow Blog
Stack Overflow Blog
B
Blog RSS Feed
C
Check Point Blog
D
Docker
Y
Y Combinator Blog
Recent Announcements
Recent Announcements
Google DeepMind News
Google DeepMind News
MongoDB | Blog
MongoDB | Blog
博客园_首页
Apple Machine Learning Research
Apple Machine Learning Research
量子位
有赞技术团队
有赞技术团队
IT之家
IT之家
大猫的无限游戏
大猫的无限游戏
D
DataBreaches.Net
M
MIT News - Artificial intelligence
B
Blog
阮一峰的网络日志
阮一峰的网络日志
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
腾讯CDC
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
V
V2EX
月光博客
月光博客

纸鹿摸鱼处

北京实习300天 | 纸鹿摸鱼处 实习后买了一堆东西 | 纸鹿摸鱼处 谈谈不受欢迎的博客技术特征 | 纸鹿摸鱼处 我们的设备被拿来做了什么:软件的背景行为 | 纸鹿摸鱼处 生成式AI正在生成 | 纸鹿摸鱼处 前端字体二三事 | 纸鹿摸鱼处 深色模式开发的最佳实践 | 纸鹿摸鱼处 寻不回手工油糕 | 纸鹿摸鱼处 一些数码外设的评价和“捡垃圾”心得 | 纸鹿摸鱼处 朋友的 Vivado 和 Modelsim 装上了吗 | 纸鹿摸鱼处 迟到三月的年末博客杂谈:动力、文章和内容 | 纸鹿摸鱼处 VitePress 不完全优化指南 | 纸鹿摸鱼处 给电脑新手的笔记本开荒指南导读 | 纸鹿摸鱼处 再谈考试时钟:技术之外的思考 | 纸鹿摸鱼处 今日校园见闻:我已经出离高兴了 | 纸鹿摸鱼处 配置并差点运行不了 Java Applet | 纸鹿摸鱼处 Windows 上的开源软件入门 | 纸鹿摸鱼处 博客进化:从 Hexo 到 Nuxt Content | 纸鹿摸鱼处 祖母的90年代南昌差旅之险 | 纸鹿摸鱼处 Linux 下通过 Samba 共享文件夹 | 纸鹿摸鱼处 从“端口无法访问”到本地环境问题——朋友的博客踩坑记录 | 纸鹿摸鱼处 Windows 空间管理/清理指南 | 纸鹿摸鱼处 遭遇APP乱象:老人的「钱袋子」开线了 | 纸鹿摸鱼处 封面被 Linux QQ 官方用了,但是有一些小缺陷 | 纸鹿摸鱼处 Windows 终端体验优化指南 | 纸鹿摸鱼处 有问题,就要讲出来。 | 纸鹿摸鱼处 从 CSS 排序折腾到 Stylelint 和 pnpm | 纸鹿摸鱼处 今日有「假」 | 纸鹿摸鱼处 把博客文章按年份放在子文件夹中了 | 纸鹿摸鱼处 写过的奇妙代码。 | 纸鹿摸鱼处
使用 DOSBox 的多种方式 | 纸鹿摸鱼处
纸鹿本鹿, hi@zhilu.cyou · 2024-05-11 · via 纸鹿摸鱼处

学校开展了计算机科学导论、微型计算机原理与接口技术相关课程,要求学生使用 DOSBox 模拟 DOS 环境进行汇编。但网上看到的教程不全,遂撰写此文。

在 Windows 上安装 DOSBox

优化体验

使用以下方式之一打开配置文件,版本号可能有所不同:

  • 在开始菜单中搜索“DOSBox 0.74-3 Options”打开。
  • 在“开始菜单>所有应用>DOSBox 0.74-3”中找到“DOSBox 0.74-3 Options”打开。
  • CMD>

    notepad %LocalAppData%\DOSBox\dosbox-0.74-3.conf

  • PS>

    code $env:LOCALAPPDATA\DOSBox\dosbox-0.74-3.conf

修改显示大小

Alt-Enter 组合键可以切换全屏和窗口模式,但是全屏后任何焦点变化(打开开始菜单、切换窗口)都会导致退出全屏。

切换全屏和窗口模式时,会伴有屏幕分辨率切换,会短暂黑屏几秒,并且其他窗口大小会受到影响(未最大化的窗口缩小到640*400,即受到全屏时的分辨率限制)。因此建议通过修改配置文件来避免使用全屏模式。

找到配置文件开头的这两行:

doxbox-0.74-3.confini
windowresolution=original
output=surface
  • 想要放大画面,可以修改 windowresolution 为以下值:
    • 1280x800(2倍)
    • 960x600(1.5倍)
  • 如果修改了 windowresolutionoutput 方式也要修改。
    • 网上的多数教程都改成了 opengl,这种方式会导致缩放模糊。并且多数学生使用的笔记本同时具有核显和独显,OpenGL 引擎启动时会调用独立显卡,增加耗电
    • 在这里,本人推荐改成 overlay 或者 ddraw,这些输出方式使用临近(Nearest)缩放算法,字体边缘更清晰,不会出现模糊。

自动挂载

在配置文件末尾,[autoexec] 一节下添加以下内容,参数中的文件夹路径可以随自己喜好修改:

doxbox-0.74-3.confini
[autoexec]
# 将 Windows 系统 D:\Software\MASM 文件夹挂载到 DOS 虚拟磁盘 C:
MOUNT C D:\Software\MASM
# 设置 C: 为 PATH,使得 MASM 文件夹中的程序在任何目录下都可调用
SET PATH=C:
# 将【已经创建的】本地代码目录挂载到 DOS 虚拟磁盘 D:
MOUNT D D:\CodeXUPT\Assembly
# 切换到 D:
D:

这样,启动 DOSBox 后,就会自动挂载 MASM 文件夹和代码文件夹。并且可以在代码目录下,直接通过 masm debug 等指令操作文件。

Playground - An x86 assembly playGround in JSDos environment

dosasm.github.io

这个网站通过 js-dos 模拟 DOS 环境,提供了 DOS 编程练习功能,还附有一份 帮助文档。网站托管在 GitHub Pages 上,有概率无法访问。

你也可以在CO导航的“校友推荐”板块中找到这个网站。

在 VS Code 中使用 DOSBox

  • 在 VS Code 中安装 MASM/TASM 插件
  • 在扩展设置中,将“Masmtasm.ASM: Assembler(选择使用的汇编工具)”项更改为“MASM”。
    • 也可以直接在配置文件中添加以下内容:
      %APPDATA%/Code/User/settings.jsonjson
      {
        "masmtasm.ASM.assembler": "MASM",
      }
      
  • .asm 文件的编辑界面右键,可以看到运行调试相关的选项。

如果遇到问题,可以查看 帮助文档