|
Download README.md from HelloSun/c_dos: direct link, hf CLI and curl.
- Browser
- Download file 4.85 kB
-
https://huggingface.co/spaces/HelloSun/c_dos/resolve/main/README.md
- Command line
-
hf download hf://spaces/HelloSun/c_dos/README.md
-
curl -L -o README.md https://huggingface.co/spaces/HelloSun/c_dos/resolve/main/README.md
4.85 kB
| title: 小貓中文 FreeDOS | |
| emoji: 🐱 | |
| colorFrom: blue | |
| colorTo: green | |
| sdk: static | |
| # 小貓中文 (XiaoMao Chinese) | |
| DOS 常駐(TSR)的 Big5 中文顯示與注音輸入外掛,在瀏覽器(含手機)中以 FreeDOS + js-dos 6.22 執行。載入後回到一般 DOS 提示字元,DOS 指令照常使用,並可直接輸入、顯示中文。全部元件皆為開源,建置時由上游下載並驗證雜湊。 | |
| ## 作者與授權 | |
| - 作者:**HelloSun** 版本:**1.0**(首版,2026-10-25) 版權:Copyright (C) 2026 HelloSun | |
| - 授權:GNU GPL-3.0-only,並依 GPLv3 第 7(b) 條**附加條款:複製或修改時必須保留作者聲明,不得移除**(見 `LICENSE`)。 | |
| - 程式啟動時會顯示作者與授權聲明,網頁頁尾也有;請勿移除。第三方元件(FreeDOS、HimemX、GNU Unifont、js-dos 等)維持各自授權,見 `NOTICE.md`。 | |
| ## 運作方式(傳統中文系統作法) | |
| - 程式看到的仍是 80×25 文字模式:文字畫面保存在 `B800:0000`(影子文字緩衝區),所以 **PE2 這類直接寫顯示記憶體的程式**與使用 INT 10h 的程式都能照常運作。 | |
| - 實際顯示是 640×400 的 16 色繪圖模式;常駐程式把影子文字畫成像素:英數用 ROM 8×16 字型,Big5 雙位元組用放在 XMS 的 16×16 字型。**畫面上不同漢字數量沒有上限**(整頁約 900 個不同漢字已測過)。 | |
| - 攔截 INT 10h:完整模擬文字模式 BIOS(模式設定、游標、捲動、讀寫字元、TTY、字串);程式要求繪圖模式時(例如 13h)直接交給 BIOS,回到文字模式時自動恢復。 | |
| - 攔截 INT 16h:`Ctrl+Space` 切換注音/英數,選好的字以兩個按鍵位元組交給程式,同時是畫面重繪的觸發點;注音候選列畫在最底列,用完即還原。 | |
| - `Ctrl+\` 切換 Big5 顯示(遇到使用 CP437 畫框字元的程式時關閉)。INT 2Fh `AX=D7A0h` 防重複載入。 | |
| - 常駐約 15 KB 傳統記憶體;字型與詞庫在 XMS(FreeDOS 開機片以 HimemX 提供)。載入時(及再次執行 `XIAOMAO`)顯示常駐大小、可用傳統記憶體與 XMS(即時 MEM)。 | |
| ## 附加軟體(開機片內) | |
| - `XEDIT.EXE`:仿 PE2 的全螢幕文字編輯器,直接寫 `B800` 並用 INT 10h/16h,可編輯中文(`XEDIT DEMO.TXT`;F2 存檔、F3/Esc 離開)。 | |
| - FreeDOS:`COMMAND.COM`(FreeCOM)、`MEM`、`MORE`、`XCOPY`、`ATTRIB`、`DELTREE`;`HIMEMX.EXE`(XMS)。 | |
| - `DEMO.TXT`:中文示範文字(`TYPE DEMO.TXT`)。 | |
| ## 操作 | |
| - 網頁上的 **「▶ 示範 Demo」** 按鈕會自動操作 DOS 並以字幕說明每一步(約 40 秒,字幕停留時間按閱讀速度設計):TYPE 顯示中文、開啟注音、輸入「你好電腦」、候選字分頁、XEDIT 編輯中文;可隨時按「■ 停止示範」。 | |
| - 點選 DOS 畫面後使用實體鍵盤,或用畫面下方的虛擬鍵盤(含 Shift、`\`、`:`、Tab)。 | |
| - `Ctrl+Space` 切換注音/英數(網頁有按鈕);`Ctrl+\` 切換 Big5 顯示(網頁有按鈕)。 | |
| - 注音採倚天鍵位;輸入音節後按聲調鍵(`6 3 4 7`)或空白鍵出候選字,按 `1`–`9` 選字。候選字超過 9 個時分頁(右側顯示 `2/7`):按空白鍵環形切換下一頁(最後一頁再按回到第一頁);只有一頁時空白鍵/Enter 選第一個。每個音最多 63 個候選字。 | |
| ## 限制 | |
| - 不支援直接改寫 CRTC/VGA 暫存器做文字模式特效(游標位置暫存器除外)、載入自訂字型、閃爍屬性(以高亮背景代替)。 | |
| - 文字畫面以約 18 次/秒更新(隨計時器),極快速的畫面動畫會有延遲。 | |
| - 只有注音輸入法,沒有詞組/聯想。 | |
| ## 一鍵建置與部署 | |
| 主機需有:`bash gcc make nasm mtools unzip curl gzip python3(含 venv)`。其餘(Open Watcom 1.9、JWasm、HimemX 原始碼、GNU Unifont、FreeDOS 1.4、js-dos 6.22.60、Python 套件)由 `build.sh` 自動下載、驗證、建置。 | |
| ```sh | |
| HF_TOKEN=hf_xxx HF_SPACE=user/space ./build.sh # 建置並上傳 | |
| ./build.sh # 只建置到 dist/ | |
| ``` | |
| `HF_TOKEN`、`HF_SPACE` 是 `build.sh` 開頭的變數(可用環境變數覆寫);token 絕不寫入專案。上傳內容含網頁、自架 DOSBox、開機映像,以及開發包 `dev/xiaomao-dev.zip` 與 `dev/HANDOFF.md`。 | |
| HF 靜態 Space 以無 CORS 的重新導向提供二進位檔,所以 DOSBox 核心與開機映像以 base64 文字放在 `emu.b64.js`/`dos.b64.js`,頁面載入後轉成 Blob 交給 js-dos,不依賴任何外部 CDN。 | |
| 接手開發請讀 `HANDOFF.md`。第三方授權見 `NOTICE.md`。 | |
| ## 授權 | |
| 本專案原始碼:GNU GPL-3.0-only(`LICENSE`、`LICENSE-GPL-3.0.txt`)。FreeDOS、HimemX、GNU Unifont、js-dos 各依其上游授權,詳見 `NOTICE.md`。 | |