1.4 KiB
1.4 KiB
FreeDOS resident TCP agent
TCPAGENT.EXE is a foreground resident automation process. It uses the mTCP
packet-driver stack and maintains an outbound connection to the QEMU host at
10.0.2.2:5558.
The Windows-only Python ferro-vm daemon owns that listener. It logs metadata
and decoded command output to .qemu/ferro-vm.log; it does not expose an
observer/controller TCP port or emit binary payloads to the log. Local host
control uses a Windows named pipe.
Build in FreeDOS
- Obtain the GPLv3 mTCP source tree (tested with the jhpyle/mTCP 2022 fork).
- Copy this directory to
MTCP\APPS\TCPAGENTinside that tree. - Set
WATCOMfor Open Watcom and runBUILD.BAT. - Run
INSTALL.BAT; it installs the executable and adds startup lines after the existing packet-driver setup inC:\FDAUTO.BAT.
The build uses mTCP's compact memory model and Open Watcom C++16. The agent is therefore distributed under GPLv3 when linked with mTCP.
Protocol
PING, READ, WRITE, LIST, and EXEC use text commands. Fast transfer
commands are:
PUT <hex DOS path> <byte length>\n<raw bytes>->OK\r\nGET <hex DOS path>\n->DATA <length>\r\n<raw bytes>HASH <hex DOS path>\n->STAT <length> <FNV1A32>\r\n
The host invokes them through:
uv run ferro-vm put host-file 'C:\DOS\FILE'
uv run ferro-vm get 'C:\DOS\FILE' host-file
No DOS-side change is required for the Python host automation.