https://github.com/larsbrinkhoff/imp
New implementation of an Arpanet IMP
https://github.com/larsbrinkhoff/imp
arpanet computer-history emulator imp ncp retrocomputing
Last synced: 2 months ago
JSON representation
New implementation of an Arpanet IMP
- Host: GitHub
- URL: https://github.com/larsbrinkhoff/imp
- Owner: larsbrinkhoff
- Created: 2018-03-14T11:47:16.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2018-03-15T07:13:38.000Z (about 7 years ago)
- Last Synced: 2025-04-09T19:12:14.001Z (2 months ago)
- Topics: arpanet, computer-history, emulator, imp, ncp, retrocomputing
- Language: C
- Size: 9.77 KB
- Stars: 10
- Watchers: 6
- Forks: 3
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## Arpanet IMP implemented in C
This is part of the effort to add simulated IMP interfaces in SIMH.
See [BBN Report 1822](http://bitsavers.org/pdf/bbn/imp/BBN1822_Jan1976.pdf)
for the protocol used to communicate with the IMP.### API
First reset the IMP:
- t_stat imp_reset (IMP *imp)
Then set imp.receive_bit to a callback which is used to receive data
from the network. The callback will receive a boolean bit, and
another boolean to say whether the bit was the last in a message. The
callback has this type:- t_stat (*) (int bit, int last)
The IMP accepts data from a host using one of these two APIs:
- t_stat imp_send_bits (IMP *imp, uint64 data, int n, int last)
- t_stat imp_send_packet (IMP *imp, void *octets, int n)The first function accepts input in the lower n bits of data. Message
bits accumulate until last is true.The second function can be used to send a complete packet with n bits.
