<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://gunkies.org/index.php?action=history&amp;feed=atom&amp;title=ANTS%2FISI_IMP_Interface</id>
		<title>ANTS/ISI IMP Interface - Revision history</title>
		<link rel="self" type="application/atom+xml" href="https://gunkies.org/index.php?action=history&amp;feed=atom&amp;title=ANTS%2FISI_IMP_Interface"/>
		<link rel="alternate" type="text/html" href="https://gunkies.org/w/index.php?title=ANTS/ISI_IMP_Interface&amp;action=history"/>
		<updated>2026-05-12T01:41:51Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.30.1</generator>

	<entry>
		<id>https://gunkies.org/w/index.php?title=ANTS/ISI_IMP_Interface&amp;diff=24693&amp;oldid=prev</id>
		<title>Jnc: What we've got for now</title>
		<link rel="alternate" type="text/html" href="https://gunkies.org/w/index.php?title=ANTS/ISI_IMP_Interface&amp;diff=24693&amp;oldid=prev"/>
				<updated>2021-11-12T21:27:43Z</updated>
		
		<summary type="html">&lt;p&gt;What we&amp;#039;ve got for now&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;The '''ANTS IMP Interface''' and '''ISI IMP Interface''' were two mostly-[[program compatible]] [[IMP interface]]s, the former produced as part of the [[ANTS terminal system|ARPA Network Terminal System]] project, the  latter at [[Information Sciences Institute|ISI]].&lt;br /&gt;
&lt;br /&gt;
Little is currently known of their physical implementation, and in particular if they shared a [[logic]] design, or just their programming interface specification. They provided an [[1822 interface]] for the [[UNIBUS]] which used [[Direct Memory Access|DMA]] to transfer data to/from [[main memory]].&lt;br /&gt;
&lt;br /&gt;
==Differences==&lt;br /&gt;
&lt;br /&gt;
The ANTS and ISI versions have only minor differences:&lt;br /&gt;
&lt;br /&gt;
* The [[register]] which specifies the extent of a transfer; the ANTS one gives the ending [[address]], the ISI one gives the transfer size &lt;br /&gt;
* The ISI one has two extra bits of transfer memory address; without those, the ANTS one is restricted to using [[buffer]]s in the lowest 64KB of memory&lt;br /&gt;
&lt;br /&gt;
==Registers==&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
! Register !! Abbreviation !! Address&lt;br /&gt;
|-&lt;br /&gt;
|Input Start Pointer Register              || IMPSPI || 0764000&lt;br /&gt;
|-&lt;br /&gt;
|Input End Pointer/Byte Count Register     || IMPEPI/IMPBCI || 0764002&lt;br /&gt;
|-&lt;br /&gt;
|Input Status Register 1                   || IMPS1I || 0764004&lt;br /&gt;
|-&lt;br /&gt;
|Input Status Register 2                   || IMPS2I || 0764006&lt;br /&gt;
|-&lt;br /&gt;
|Output Start Pointer Register             || IMPSPO || 0764010&lt;br /&gt;
|-&lt;br /&gt;
|Output End Pointer/Byte Count Register    || IMPEPO/IMPBCO  || 0764012&lt;br /&gt;
|-&lt;br /&gt;
|Output Status Register 1                  || IMPS1O || 0764014&lt;br /&gt;
|-&lt;br /&gt;
|Output Status Register 2                  || IMPS2O || 0764016&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===0764000: Input Start Pointer Register (IMPSPI)===&lt;br /&gt;
{{16bit-header}}&lt;br /&gt;
| colspan=16 | SP15 &amp;lt;---&amp;gt; SP00&lt;br /&gt;
{{16bit-bitout}}&lt;br /&gt;
&lt;br /&gt;
===0764002: Input End Pointer (IMPEPI) ANTS===&lt;br /&gt;
{{16bit-header}}&lt;br /&gt;
| colspan=16 | EP15 &amp;lt;---&amp;gt; EP00&lt;br /&gt;
{{16bit-bitout}}&lt;br /&gt;
&lt;br /&gt;
===0764002: Input Byte Count Register (IMPBCI) ISI===&lt;br /&gt;
{{16bit-header}}&lt;br /&gt;
| colspan=16 | BC15 &amp;lt;---&amp;gt; BC00&lt;br /&gt;
{{16bit-bitout}}&lt;br /&gt;
&lt;br /&gt;
===0764004: Input Status Register 1 (IMPS1I)===&lt;br /&gt;
{{16bit-header}}&lt;br /&gt;
| IMPERR || NEXMEM || Unused || BCEQ0 || BUSY || colspan=2 | Unused || ENDMSG || BUFULL || INTENA || Unused || NOSWAP || Unused || colspan=2 | MEMEX || Unused &lt;br /&gt;
{{16bitoctal-bitout}}&lt;br /&gt;
&lt;br /&gt;
*IMPERR - IMP error&lt;br /&gt;
*NEXMEM - Non-existent memory&lt;br /&gt;
*BCEQ0 - Byte count=0&lt;br /&gt;
*ENDMSG - End of message&lt;br /&gt;
*BUFULL - Buffer full&lt;br /&gt;
*INTENA - Interrupt enable&lt;br /&gt;
*NOSWAP - Suppress byte swapping&lt;br /&gt;
*MEMEX - Memory address extension (ISI only)&lt;br /&gt;
&lt;br /&gt;
===0764006: Input Status Register 2 (IMPS2I)===&lt;br /&gt;
{{16bit-header}}&lt;br /&gt;
| colspan=5 | Unused || TSTINC || LOCK || LOOP || IMPRDY || colspan=6 | Unused ||  SCOSYN&lt;br /&gt;
{{16bitoctal-bitout}}&lt;br /&gt;
&lt;br /&gt;
*TSTINC - Test increment&lt;br /&gt;
*LOCK - Lock interface (don't start when EPI/BCI is loaded)&lt;br /&gt;
*LOOP - Loop output to input&lt;br /&gt;
*IMPRDY - IMP master ready&lt;br /&gt;
*SCOSYN - Scope sync&lt;br /&gt;
&lt;br /&gt;
===0764000: Output Start Pointer Register (IMPSPO)===&lt;br /&gt;
{{16bit-header}}&lt;br /&gt;
| colspan=16 | SP15 &amp;lt;---&amp;gt; SP00&lt;br /&gt;
{{16bit-bitout}}&lt;br /&gt;
&lt;br /&gt;
===0764002: Output End Pointer (IMPEPO) ANTS===&lt;br /&gt;
{{16bit-header}}&lt;br /&gt;
| colspan=16 | EP15 &amp;lt;---&amp;gt; EP00&lt;br /&gt;
{{16bit-bitout}}&lt;br /&gt;
&lt;br /&gt;
===0764002: Output Byte Count Register (IMPBCO) ISI===&lt;br /&gt;
{{16bit-header}}&lt;br /&gt;
| colspan=16 | BC15 &amp;lt;---&amp;gt; BC00&lt;br /&gt;
{{16bit-bitout}}&lt;br /&gt;
&lt;br /&gt;
===0764004: Output Status Register 1 (IMPS1O)===&lt;br /&gt;
{{16bit-header}}&lt;br /&gt;
| Unused || NEXMEM || Unused || BCEQ0 || BUSY || colspan=3 | Unused || DONE || INTENA || Unused || NOSWAP || Unused || colspan=2 | MEMEX || DISEOM &lt;br /&gt;
{{16bitoctal-bitout}}&lt;br /&gt;
&lt;br /&gt;
*NEXMEM - Non-existent memory&lt;br /&gt;
*BCEQ0 - Byte count=0&lt;br /&gt;
*INTENA - Interrupt enable&lt;br /&gt;
*NOSWAP - Suppress byte swapping&lt;br /&gt;
*MEMEX - Memory address extension (ISI only)&lt;br /&gt;
*DISEOM - Disable end of message&lt;br /&gt;
&lt;br /&gt;
===0764006: Output Status Register 2 (IMPS2O)===&lt;br /&gt;
{{16bit-header}}&lt;br /&gt;
| colspan=7 | Unused || IRESET || colspan=7 | Unused || HOSRDY &lt;br /&gt;
{{16bitoctal-bitout}}&lt;br /&gt;
&lt;br /&gt;
*IRESET - Interface reset&lt;br /&gt;
*HOSRDY - Host master ready&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/larsbrinkhoff/elf-operating-system/blob/master/files/ucbmac.m11%5Btmp%2Ctvr%5D130 ucbmac.m11] - [[ELF operating system|ELF]] [[macro]] definitions, including registers&lt;br /&gt;
* [https://github.com/larsbrinkhoff/elf-operating-system/blob/master/files/elfnio.o11%5Btmp%2Ctvr%5D114 elfnio.o11] - ELF [[device driver]]&lt;br /&gt;
&lt;br /&gt;
[[Category: 1822 Interfaces‎]]&lt;br /&gt;
[[Category: UNIBUS Network Interfaces]]&lt;/div&gt;</summary>
		<author><name>Jnc</name></author>	</entry>

	</feed>