dosllm / README.md
HelloSun's picture
小貓中文 v1.0 by HelloSun (2026-10-25): author attribution + GPLv3 section 7(b) term, startup notice, modified-version mark
aa96610 verified
|
Raw History Blame Contribute Delete
3.28 kB
---
title: DOS LLM
emoji: 💾
colorFrom: green
colorTo: blue
sdk: static
pinned: false
short_description: Ask an LLM in Chinese or English from inside FreeDOS
---
# DOS LLM — ask an AI from inside DOS (中文 / English)
Type a question, press the button: a **FreeDOS** machine (v86 x86 emulator, in your browser) runs `G <question>`.
**G.EXE** is a real DOS program that does its own **DNS, TCP and HTTP** through an emulated **NE2000** card and calls a public **Gradio Space**
(default `tencent/Hy3`) with Gradio's documented API. The **answer is printed on the DOS screen**.
1. `POST /gradio_api/call/chat` with the question -> `event_id`
2. `GET /gradio_api/call/chat/<event_id>` -> server-sent events (`generating` ... `complete`)
3. G.EXE decodes the `complete` frame and prints it as `A> ...`
The page then compares the text printed on the DOS screen with the text Gradio returned and shows `DOS = LLM` when they are identical.
## How the packets leave the browser
Inside DOS: Crynwr **NE2000 packet driver** -> mTCP **DHCP.EXE** (192.168.86.100) -> **G.EXE** (mTCP TCP/IP stack).
DOS has no TLS and browsers cannot open raw TCP, so v86 terminates the guest's TCP streams and `bridge.js` (a tiny in-page WISP server)
turns each HTTP request DOS sends on **port 80** into an HTTPS `fetch()`. It relays **only** `*.hf.space` hosts and paths starting with `/gradio_api/`
(GET/POST, body <= 8 KB, no credentials), so it is not an open proxy. DNS is answered by v86 using DNS-over-HTTPS.
## Things to know
- **Chinese and English both work.** DOS runs **小貓中文** (Big5 display + Zhuyin input), so the question and the answer are shown in Chinese on the DOS screen; type in DOS with `Ctrl+Space` (注音). Characters Big5 does not have (Simplified Chinese, emoji) show as `?`; Chinese questions ask the model for Traditional Chinese. Replies are limited to ~40 words / ~80 Chinese characters.
- The DOS screen is 640x400 (XiaoMao). The page presents it in device pixels, 4:3 like a real VGA monitor by default, sharp on HiDPI screens; the card has a zoom selector (fit width / integer / 2x scrollable) and a 4:3 checkbox.
- **小貓中文 v1.0 — author HelloSun, first version 2026-10-25.** It prints its notice every time it loads in DOS, `TYPE AUTHOR.TXT` shows the licence terms. Please keep the author notice (see `LICENSE`).
- The Big5 <-> UTF-8 conversion happens in the page (`big5.js`); DOS only ever sees Big5.
- Your question is sent to the chosen public Space (it is a third-party service). Do not type secrets.
- If DOS ever hangs, press **重新開機** (reboot). Another Space can be tried under "進階" if it exposes a `/chat` endpoint with the same 9 parameters as `tencent/Hy3`.
- Needs a modern browser (WebAssembly, `DecompressionStream`) and internet access.
## Developer package
`dev/dosllm-dev.zip` has the sources, build scripts, tests and the handover document `dev/HANDOFF.md`; it also contains the mTCP source archive that
G.EXE is linked against and the unmodified 小貓中文 package. Rebuild everything with `tools/build_all.sh`. Our code is GPL-3.0-or-later. 小貓中文 is by **HelloSun** (v1.0, 2026-10-25): GPL-3.0-only **plus a GPLv3 §7(b) term: the author attribution must be kept**; see `LICENSE` and `NOTICE.md`.