Ruby gem to support INTERLNK/INTERSVR communications.


Ruby class/gem to handle INTERLNK/INTERSVR communications, to communicate with DOS machines.


  • Supports client-side communications (emulates INTERLNK)
  • Supports serial channel type over TCP transport (for use with e.g. VirtualBox serial ports)
  • Able to read lists of available drives, names and specifications of the drives
  • Provides an IO-compatible object to perform IO against
  • Basic caching functionality to avoid transfering data over slow links as much as possible


  • Actual serial port support
  • Parallel port support
  • Support baud rates other than 115200
  • Support server-side communications (emulate INTERSVR)
  • More graceful error handling, should retry rather than giving up in many places


require 'interlnk'

# connect to INTERSVR over a TCP serial port (e.g. to VirtualBox)
interlnk =
  transport: Interlnk::Transport::Tcp,
  channel: Interlnk::Channel::Serial,
  connection_info: {host: 'localhost', port: 5000}
drives = interlnk.drives
p drives
interio = drives['C'].interio
# can now use interio just like you would a file, likely hooking it up to a FAT library

Full Documentation

YARD docs included, also available on