larsbrinkhoff / old-simh

Adding Arpanet, Imlac, and TT2500 to SIMH
http://bitsavers.trailing-edge.com/pdf/bbn/imp/BBN1822_Jan1976.pdf
7 stars 2 forks source link

IMP interface for ISI and ANTS #11

Open larsbrinkhoff opened 3 years ago

larsbrinkhoff commented 3 years ago
Address Name Meaning
170 IMPIVI Interrupt vector, input
174 IMPIVO Interrupt vector, output
164000 IMPSPI DMA input start pointer
164002 IMPEPI DMA input end pointer (ANTS)
164002 IMPBCI DMA input byte count (ISI)
164004 IMPS1I Input status register 1
164006 IMPS2I Input status register 2
164010 IMPSPO DMA output start pointer
164012 IMPEPO DMA output end pointer (ANTS)
164012 IMPBCO DMA output byte count (ISI)
164014 IMPS1O Output status register 1
164016 IMPS2O Output status register 2

Input status register 1

Name Value Meaning
IMPERR 100000 IMP error
NEXMEM 040000 Nonexistent memory
BCEQ0 010000 Byte count = 0
BUYSY 004000 Busy
ENDMSG 000400 End of message
BUFULL 000200 Input buffer full
INTENA 000100 Interrupt enable
NOSWAP 000020 Suppress byte swapping
MEMEX 000006 Memory address extenstion (ISI)

Input status register 2

Name Value Meaning
TSTINC 002000 Test increment
LOCK 001000 Lock interface (don't start when BCI/EPI is loaded)
LOOP 000400 Loop output to input
IMPRDY 000200 IMP master ready
SCOSYN 000001 Scope sync

Output status register 1

Name Value Meaning
NEXMEM 040000 Nonexistent memory
BCEQ0 010000 Byte count = 0
BUSY 004000 Busy
DONE 000200 Done
INTENA 000100 Interrupt enable
NOSWAP 000020 Suppress byte swapping
MEMEX 000006 Memory address extension (ISI)
DISEOM 000001 Disable end of message

Output status register 2

Name Value Meaning
IRESET 000400 Interface reset
HOSRDY 000001 Host master ready
larsbrinkhoff commented 3 years ago

The protocol used to talk to an emulated IMP is based on UDP packets. See the SIMH files H316/h316_udp.c and H316/h316_hi.c for details.

Field Size in octets Value
Magic 4 ASCII "H316"
Sequence 4 Packet sequence number in network byte order.
Size 2 Payload size including flags.
Flags 2 Flag bits. 001 is end of message, 002 is IMP/host ready.
Payload Message as per BBN Report 1822.
larsbrinkhoff commented 3 years ago

FYI @slcasner, these are the ISI/ANTS IMP host interface definitions found in ELF. Most of them look very straightforward.

slcasner commented 3 years ago

164012 should be "output" rather than "input". I agree that the interface should not be hard to simulate.

larsbrinkhoff commented 3 years ago

Thanks, fixed typos. I'll have this on a back burner for now.