[{"data":1,"prerenderedAt":350},["ShallowReactive",2],{"content:\u002F2024\u002Fdosbox-setup":3,"surround:\u002F2024\u002Fdosbox-setup":338},{"id":4,"title":5,"body":6,"categories":312,"date":314,"description":315,"draft":316,"extension":317,"image":318,"meta":319,"navigation":321,"path":322,"permalink":318,"published":318,"readingTime":323,"recommend":318,"references":318,"seo":328,"sitemap":329,"stem":330,"tags":331,"type":335,"updated":336,"__hash__":337},"content\u002Fposts\u002F2024\u002Fdosbox-setup.md","使用 DOSBox 的多种方式",{"type":7,"value":8,"toc":299},"minimark",[9,13,18,75,79,82,101,105,114,117,128,195,198,206,212,227,231,237,246,249,254,258,292],[10,11,12],"p",{},"学校开展了计算机科学导论、微型计算机原理与接口技术相关课程，要求学生使用 DOSBox 模拟 DOS 环境进行汇编。但网上看到的教程不全，遂撰写此文。",[14,15,17],"h2",{"id":16},"在-windows-上安装-dosbox","在 Windows 上安装 DOSBox",[19,20,21,44],"ul",{},[22,23,24,25],"li",{},"下载 DOSBox 并安装。\n",[19,26,27,36],{},[22,28,29],{},[30,31,35],"a",{"href":32,"rel":33},"https:\u002F\u002Fwww.dosbox.com\u002Fdownload.php#:~:text=Windows",[34],"nofollow","官网下载",[22,37,38,39],{},"如果你电脑具有较好的国际互联网接入环境，可以通过 WinGet 一键安装。\n",[40,41],"copy",{"code":42,"prompt":43},"winget install dosbox","PS>",[22,45,46,47,51,52],{},"在以下地址之一下载 MASM 套件，解压到 ",[48,49,50],"code",{"code":50},"D:\\Software\\MASM","。\n",[19,53,54,61,68],{},[22,55,56],{},[30,57,60],{"href":58,"rel":59},"https:\u002F\u002Fgithub.com\u002Fdosasm\u002Fdosrun\u002Ftree\u002Fmain\u002Fbundles\u002Fsrc\u002FMASM-v5.00\u002Fmasm",[34],"dosasm\u002Fdosrun MASM-v5.00",[22,62,63],{},[30,64,67],{"href":65,"rel":66},"https:\u002F\u002Fgithub.com\u002Fdosasm\u002Fdosrun\u002Ftree\u002Fmain\u002Fbundles\u002Fsrc\u002FMASM-v6.11\u002Fmasm",[34],"dosasm\u002Fdosrun MASM-v6.11",[22,69,70],{},[30,71,74],{"href":72,"rel":73},"https:\u002F\u002Fgithub.com\u002Ffroginwell\u002Fassembly\u002Ftree\u002Fmaster\u002Fsoftware",[34],"froginwell\u002Fassembly",[76,77,78],"h3",{"id":78},"优化体验",[10,80,81],{},"使用以下方式之一打开配置文件，版本号可能有所不同：",[19,83,84,87,90,96],{},[22,85,86],{},"在开始菜单中搜索“DOSBox 0.74-3 Options”打开。",[22,88,89],{},"在“开始菜单>所有应用>DOSBox 0.74-3”中找到“DOSBox 0.74-3 Options”打开。",[22,91,92],{},[40,93],{"code":94,"prompt":95},"notepad %LocalAppData%\\DOSBox\\dosbox-0.74-3.conf","CMD>",[22,97,98],{},[40,99],{"code":100,"prompt":43},"code $env:LOCALAPPDATA\\DOSBox\\dosbox-0.74-3.conf",[102,103,104],"h4",{"id":104},"修改显示大小",[106,107,108,111],"blockquote",{},[10,109,110],{},"Alt-Enter 组合键可以切换全屏和窗口模式，但是全屏后任何焦点变化（打开开始菜单、切换窗口）都会导致退出全屏。",[10,112,113],{},"切换全屏和窗口模式时，会伴有屏幕分辨率切换，会短暂黑屏几秒，并且其他窗口大小会受到影响（未最大化的窗口缩小到640*400，即受到全屏时的分辨率限制）。因此建议通过修改配置文件来避免使用全屏模式。",[10,115,116],{},"找到配置文件开头的这两行：",[118,119,126],"pre",{"className":120,"code":122,"filename":123,"language":124,"meta":125},[121],"language-ini","windowresolution=original\noutput=surface\n","doxbox-0.74-3.conf","ini","",[48,127,122],{"__ignoreMap":125},[19,129,130,153],{},[22,131,132,133,136,137],{},"想要放大画面，可以修改 ",[48,134,135],{"code":135},"windowresolution"," 为以下值：\n",[19,138,139,146],{},[22,140,141,145],{},[48,142,144],{"className":143,"code":144,"language":124},[121],"1280x800","（2倍）",[22,147,148,152],{},[48,149,151],{"className":150,"code":151,"language":124},[121],"960x600","（1.5倍）",[22,154,155,156,158,159,162,163],{},"如果修改了 ",[48,157,135],{"code":135},"，",[48,160,161],{"code":161},"output"," 方式也要修改。\n",[19,164,165,182],{},[22,166,167,168,172,173,177,178,181],{},"网上的多数教程都改成了 ",[48,169,171],{"className":170,"code":171,"language":124},[121],"opengl","，这种方式会导致",[174,175,176],"strong",{},"缩放模糊","。并且多数学生使用的笔记本同时具有核显和独显，OpenGL 引擎启动时会调用独立显卡，",[174,179,180],{},"增加耗电","。",[22,183,184,185,189,190,194],{},"在这里，本人推荐改成 ",[48,186,188],{"className":187,"code":188,"language":124},[121],"overlay"," 或者 ",[48,191,193],{"className":192,"code":193,"language":124},[121],"ddraw","，这些输出方式使用临近（Nearest）缩放算法，字体边缘更清晰，不会出现模糊。",[102,196,197],{"id":197},"自动挂载",[10,199,200,201,205],{},"在配置文件末尾，",[48,202,204],{"className":203,"code":204,"language":124},[121],"[autoexec]"," 一节下添加以下内容，参数中的文件夹路径可以随自己喜好修改：",[118,207,210],{"className":208,"code":209,"filename":123,"language":124,"meta":125},[121],"[autoexec]\n# 将 Windows 系统 D:\\Software\\MASM 文件夹挂载到 DOS 虚拟磁盘 C:\nMOUNT C D:\\Software\\MASM\n# 设置 C: 为 PATH，使得 MASM 文件夹中的程序在任何目录下都可调用\nSET PATH=C:\n# 将【已经创建的】本地代码目录挂载到 DOS 虚拟磁盘 D:\nMOUNT D D:\\CodeXUPT\\Assembly\n# 切换到 D:\nD:\n",[48,211,209],{"__ignoreMap":125},[10,213,214,215,221,222,226],{},"这样，启动 DOSBox 后，就会自动挂载 MASM 文件夹和代码文件夹。并且可以在代码目录下，直接通过 ",[48,216,219],{"className":217,"code":219,"language":220},[218],"language-sh","masm","sh"," ",[48,223,225],{"className":224,"code":225,"language":220},[218],"debug"," 等指令操作文件。",[14,228,230],{"id":229},"使用网页版-dosbox","使用网页版 DOSBox",[232,233],"link-card",{"icon":234,"link":235,"title":236},"https:\u002F\u002Fdosasm.github.io\u002Fdosrun\u002Ffavicon.ico","https:\u002F\u002Fdosasm.github.io\u002Fdosrun\u002F","Playground - An x86 assembly playGround in JSDos environment",[10,238,239,240,245],{},"这个网站通过 js-dos 模拟 DOS 环境，提供了 DOS 编程练习功能，还附有一份 ",[30,241,244],{"href":242,"rel":243},"https:\u002F\u002Fdosasm.github.io\u002Fdocs\u002Ftutorial-playGround\u002FplayGround",[34],"帮助文档","。网站托管在 GitHub Pages 上，有概率无法访问。",[10,247,248],{},"你也可以在CO导航的“校友推荐”板块中找到这个网站。",[232,250],{"icon":251,"link":252,"title":253},"https:\u002F\u002Fcooo.site\u002Ffavicon.ico","https:\u002F\u002Fcooo.site\u002F","CO导航 - 西邮导航服务",[14,255,257],{"id":256},"在-vs-code-中使用-dosbox","在 VS Code 中使用 DOSBox",[19,259,260,268,285],{},[22,261,262,263,181],{},"在 VS Code 中安装 ",[30,264,267],{"href":265,"rel":266},"https:\u002F\u002Fmarketplace.visualstudio.com\u002Fitems?itemName=xsro.masm-tasm",[34],"MASM\u002FTASM 插件",[22,269,270,271],{},"在扩展设置中，将“Masmtasm.ASM: Assembler（选择使用的汇编工具）”项更改为“MASM”。\n",[19,272,273],{},[22,274,275,276],{},"也可以直接在配置文件中添加以下内容：\n",[118,277,283],{"className":278,"code":280,"filename":281,"language":282,"meta":125},[279],"language-json","{\n  \"masmtasm.ASM.assembler\": \"MASM\",\n}\n","%APPDATA%\u002FCode\u002FUser\u002Fsettings.json","json",[48,284,280],{"__ignoreMap":125},[22,286,287,288,291],{},"在 ",[48,289,290],{"code":290},".asm"," 文件的编辑界面右键，可以看到运行调试相关的选项。",[10,293,294,295,181],{},"如果遇到问题，可以查看 ",[30,296,244],{"href":297,"rel":298},"https:\u002F\u002Fdosasm.github.io\u002Fdocs\u002Ftutorial-masm-tasm\u002Fvsce-basic",[34],{"title":125,"searchDepth":300,"depth":300,"links":301},4,[302,310,311],{"id":16,"depth":303,"text":17,"children":304},2,[305],{"id":78,"depth":306,"text":78,"children":307},3,[308,309],{"id":104,"depth":300,"text":104},{"id":197,"depth":300,"text":197},{"id":229,"depth":303,"text":230},{"id":256,"depth":303,"text":257},[313],"技术","2024-05-11 16:05:40","DOSBox 放大画面、自动挂载、网页版和 VS Code 插件。",false,"md",null,{"slots":320},{},true,"\u002F2024\u002Fdosbox-setup",{"text":324,"minutes":325,"time":326,"words":327},"4 min read",3.96,237600,792,{"title":5,"description":315},{"loc":322},"posts\u002F2024\u002Fdosbox-setup",[332,333,334],"DOSBox","兼容运行","教程","tech","2024-05-30 16:42:29","At3SnLfCFPiZW-lkhzPIrQr-37fG5Zm83P5ugicSmac",[339,345],{"title":340,"path":341,"stem":342,"date":343,"type":344,"children":-1},"今日有「假」","\u002F2024\u002Ffake-today","posts\u002F2024\u002Ffake-today","2024-05-03 12:22:31","story",{"title":346,"path":347,"stem":348,"date":349,"type":335,"children":-1},"从 CSS 排序折腾到 Stylelint 和 pnpm","\u002F2024\u002Fcss-sort","posts\u002F2024\u002Fcss-sort","2024-05-21 22:44:44",1782091375823]