CATHODE
> A text-mode web browser for DOS. Sort of.
NetISA suite app. Renders HTML to the text mode buffer, fetches over the NetISA card’s TLS path, follows links, keeps bookmarks. Forms work poorly. CSS does not work at all. v0.2 builds clean under Open Watcom V2; 8088 is the floor.
Status
2026-04-25. v0.2. Builds clean under Open Watcom V2 at 40 KB. 12 of 12 fixture tests green. Three parser bugs fixed in the last sweep. Source migrated to cathode/ at the NetISA repo root.
Two binaries:
CATHODE.EXE: stub backend, runs on any DOS without a NetISA card. For development and demos.CATHODE_HW.EXE: real INT 63h backend, links the NetISA TSR client. Requires the card.
Features
- Text-mode UI with a green-on-black phosphor aesthetic.
- HTML tokenizer and flow renderer with line wrapping at the terminal width.
- URL bar with history.
- Bookmarks, persistent across runs.
- In-page find with
Ctrl+F. - UTF-8 input collapsed to CP437 for display.
- Shortcuts:
Tabnext link,F5reload,Ctrl+Ffind,Escquit. - Stub pages (
about:home,about:blank) for development without network.
Source layout
Lives at cathode/ in the NetISA repo.
src/main.c: entry point, DOS init.src/browser.c: navigation, history, error handling.src/render.c,src/page.c: rendering and page state.src/htmltok.c,src/htmlout.c: HTML parser, output emitter.src/input.c,src/urlbar.c: keyboard handling.src/fetch.c: NetISA TLS session client (calls into the INT 63h API).src/stub_pages.c: canned pages for development.src/url.c,src/utf8.c: URL parsing, UTF-8 transcode.src/search.c,src/bookmark.c: in-page find, bookmarks.../lib/screen.c,../lib/netisa.c,../lib/netisa_stub.c: shared suite library.
Building
Hardware
The 8088 floor is real: -0 -fpi -ms in the Makefile. CATHODE runs on XT-class hardware with a NetISA card. EGA and VGA give a wider terminal (80x43, 80x50) but CGA 80x25 works too.
Suite context
CATHODE is one of nine NetISA suite apps. Shared screen lib at /lib/screen.c, shared INT 63h API definition at /lib/netisa.h. Cmdline conventions match the rest of the suite (/SAFE, /STUBNET).
Out of scope
No JavaScript. No CSS rendering. No image display in text mode. Forms are partially implemented and rough. The browser does not pretend to be modern.
Links
- cathode/ in the NetISA repo
- cathode/README.md
- NetISA project page (the hardware that CATHODE_HW.EXE depends on)
- Build log