Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

IMP interface for ISI and ANTS #11

Open
larsbrinkhoff opened this issue Oct 29, 2021 · 4 comments
Open

IMP interface for ISI and ANTS #11

larsbrinkhoff opened this issue Oct 29, 2021 · 4 comments

Comments

@larsbrinkhoff
Copy link
Owner

larsbrinkhoff commented Oct 29, 2021

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
Copy link
Owner Author

larsbrinkhoff commented Oct 29, 2021

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
Copy link
Owner Author

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

@slcasner
Copy link

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

@larsbrinkhoff
Copy link
Owner Author

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants