> For the complete documentation index, see [llms.txt](https://knifour.gitbook.io/dos-program-saviour/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://knifour.gitbook.io/dos-program-saviour/chapter04.md).

# 環境設定

## DOSBox-X與DOSBox的設定方法並沒有甚麼不同，所以以下的文章除非必要，不然我不會刻意強調是在DOSBox或是在DOSBox-X裡面

進入DOSBox以後，就是你所熟悉的DOS命令環境，DOSBox會有一個內定磁碟Z:，所以當你進入DOSBox以後看到的就是Z:\\>，在Z:\裡面有一些DOSBox的內部命令，在這裡我只會列出一些常用的指令及設定，完整的指令參考及設定請參考[DOSBox Manual](http://www.dosbox.com/DOSBoxManual.html)。

## MOUNT指令

這個指令是DOSBox裡面最重要的指令，當你進入DOSBox以後，它會是一個Windows的視窗，視窗裡面是你熟悉的DOS環境，有一個預設磁碟Z:，除此之外，甚麼都沒有。

要怎麼讓你的舊DOS商業應用程式與DOSBox產生連結呢？答案就是MOUNT指令，MOUNT的指令格式如下

MOUNT 磁碟機代號 資料夾路徑

舉例來說，當你在以前的DOS環境，應該會有一堆常用的程式，如ET3、COBOL等執行程式，這些我習慣上會把它放在C槽裡面，真正的商業應用程式(資料庫程式)我會把它放在D槽裡面(這個沒有為什麼，純屬個人習慣，你要把所有東西都放在同一個磁碟槽裡面也可以)，所以我會在Windows環境的C:\底下建立一個資料夾叫做DOS，我會把ET3、RM85、RMC85等資料夾的內容拷貝進去DOS資料夾裡面(不用管RM85、RMC85裡面有甚麼，因為這是執行COBOL程式要用到的程式，如果你用其他資料庫請自行準備該資料庫會用的的程式)，然後我會在Windows環境的D:\底下建立一個資料夾叫做COBOL(我會用這個資料夾名稱，是因為我的程式都是用COBOL寫的，如果你用其他的資料庫，請使用自己習慣的資料夾名稱)，然後把我原來的商業應用程式拷貝進去COBOL資料夾裡面。

## 版權聲明：倚天中文版權屬於倚天資訊股份有限公司所有，如果你沒有原版的倚天中文，可以與他們聯絡取得授權，避免侵權，以下所有與倚天中文有關的畫面，其版權為倚天資訊股份有限公司所有

要下達MOUNT指令之前，先回顧一下我們之前準備好的東西 1. C:\DOS 之下放有倚天中文及要執行資料庫的應用程式 2. D:\COBOL 之下放有商業應用程式 習慣上，我會把一般程式放在C槽，商業應用程式放在D槽，所以我會下達兩個MOUNT指令(無論指令或參數都沒有大小寫的差別)

MOUNT C C:\DOS

MOUNT D D:\COBOL

執行畫面如下 ![003](/files/-M4BjV05-8TFs1se0BZ0)

下達以上兩個MOUNT指令以後，你的DOSBox就會多出C槽和D槽，C槽對應到Windows的C:\DOS，D槽對應到Windows的D:\COBOL，你可以打C:切換到C槽，再打DIR就可以看到原來你放在C:\DOS底下的東西，執行畫面如下 ![004](/files/-M4BjV07xTXn-kzo3ibI)

如上圖所示，你會看到我COPY進入C:\DOS資料夾的東西，另外一個是我額外建立的BAT資料夾，這個資料夾是用來存放批次處理程式的資料夾

## 設定PATH

你可以打入PATH指令看看原來的設定 ![005](/files/-M4BjV09HexxHSnWZv9i)

如上圖所示，原來的PATH設定只有Z:\而已，主要就是讓你隨時可以執行DOSBox提供的內部指令，為了在DOSBox裡面方便的執行你自己的程式，所以一定要修改PATH的路徑，以我的例子而已，我的PATH會這樣設定

PATH C:\BAT;C:\ET3;C:\RM85;C:\RMC85;Z:\\;

以上的指令懂DOS的人一定看得懂，我就不多做解釋了，重要的是原來的Z:\一定要加入PATH的路徑設定裡面，不然你會無法隨意執行DOSBox的內部命令。

## 倚天中文設定

## 原始版本的DOSBox無法正常執行倚天中文，一定要使用DOSBox-X才可以正常執行倚天中文

倚天中文的設定程式是ETSETUP，當我下載好DOSBox-X並將所需的程式MOUNT好以後便迫不及待地執行ETSETUP，如以下畫面 ![006](/files/-M4BjV0BCjYS5FLf_bZi)

執行ETSETUP後看到的畫面如下 ![007](/files/-M4BjV0DpdDWXu58Jee7)

到以上畫面都還正常，當我按\[ENTER]鍵以後，看到的畫面如下 ![008](/files/-M4BjV0FdF3HePkIc1Dr)

你沒看錯，我也沒有錯置畫面，當我按\[ENTER]鍵以後真的就只看到這個黑畫面，第一個感覺是失望，心想連DOSBox-X也無法執行倚天中文，看來是沒有希望在64 bits的Windows環境執行倚天中文了，失望之餘，心想先試看看可否直接執行倚天中文程式(先不要設定倚天中文)，倚天中文的主程式是ET16V-16，執行以後終於看到以下熟悉的畫面(太感動了!) ![009](/files/-M4BjV0HxStGF4vH5swx)

這個時候你就可以正常執行ETSETUP了，執行的畫面如下 ![010](/files/-M4BjV0JUOb5MWMY5AYr)

設定好倚天中文環境以後，以後只要打ET3就可以執行倚天中文了(還記得前面有特別把ET3的資料夾加入PATH環境設定嗎？這樣你才能夠隨時打ET3這個指令執行倚天中文)，設定倚天中文時記得改掉以下設定

* W).印表機型態設定 (這裡改成不使用)
* Z).字形及其他驅動程式設定 (進入這個選項以後選"平滑字型驅動程式"，並取消這個驅動程式載入)

因為以上兩個選項都和列印有關，到目前為止，DOSBox還是無法處理倚天中文直接列印的問題，載入這兩個驅動程式只是浪費記憶體而已，依照我的設定在執行倚天中文之後大概還有560KB的記憶體供你的商業應用程式使用(不要小看這個560KB的記憶體空間，在那個記憶體被限制在640KB的DOS年代，執行倚天中文以後還有560KB的空間，簡直可以讓你感動的流下眼淚)。

## 網路

如果你的系統是多人使用環境該怎麼處理呢？DOSBox雖然有提供網路連線的能力，但是我並沒有特別去研究，在我舊DOS程式的年代，最常見的網路系統是Novell的Netware(我當時使用的是3.12版)，現在真的很少人使用Netware了，而且因為年代久遠也完全忘記要如何設定了，但是我相信還是會有人需要用到網路，這時該如何處理？

在還沒有發現DOSBox-X以前，我使用VMware或是VirtualBox等模擬器模擬Windows 98環境，利用Windows的連線網路磁碟機功能連線到檔案伺服器，然後再進入ET2000環境執行原來的DOS商業應用程式，我已經這樣用了十幾年了，這樣做也沒有甚麼不好，主要的缺點有：1.進入系統較慢。2.執行速度很慢，即使我使用Intel i7處理器，在模擬器裡面的DOS程式還是像烏龜一樣慢。3.進入ET2000以後所剩記憶體只有480KB左右，使我的程式很容易因為記憶體不足跳出來。

如果你在DOSBox環境需要使用到網路，你不需要使用DOS的網路連線程式，因為DOS的網路連線程式都非常老舊，你不一定找得到，即使找得到，使用DOS網路連線程式也會佔用掉大約80KB的記憶體，在DOS環境下，80KB的記憶體真的非常珍貴，最好的方式就是因為你的DOSBox是在Windows 7, 8, 10的64 bits環境底下執行的，你可以使用Windows的連線網路磁碟機功能連線到檔案伺服器，然後在DOSBox裡面用MOUNT指令把這個網路磁碟機MOUNT成DOSBox裡面的一個磁碟機就可以間接連線到檔案伺服器了。

## 列印

列印是一個頭痛的問題，DOSBox可以設定攔截LPT1, LPT2的輸出資料轉給Windows印表機輸出，我測試的結果是可以攔截輸出到任何一個Windows印表機(包括虛擬的PDF Creator)，但是無法輸出中文。

從Windows 98的年代(包括使用模擬器)我個人就一直使用[漢書](http://www.stone.com.tw/)來當作我的列印工具，我習慣在執行我的商業應用程式之前加一個指令：

SET LPT1=檔名

如果你的程式原來是輸出到第二台印表機則需要把LPT1改成LPT2，這樣我的程式執行列印工作時會把所有的列印工作存成一個文字檔，檔名就是你在使用SET指令時設定的檔名，我會使用漢書打開這個檔案再列印

註：[漢書](http://www.stone.com.tw/)在DOS時代因為太好用了，以至於大部分的人都使用盜版的，如果現在你還用得到的話，建議大家到官網去訂購原版的來用吧！


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://knifour.gitbook.io/dos-program-saviour/chapter04.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
