Atom Nieuws jaargang 1999 nummer 2

pagina 5


Atomic Windows
I2C met Wouter's emulator v1.33
 

Inleiding:
De nieuwste Acorn Atom emulator, versie 1.33 van Wouter Ras, kan de I/O adressen van de PC rechtstreeks aanspreken (zie artikel over emulator v1.33 elders in Atom News). Dit bied weer meer nieuwe mogelijkheden voor dit prachtig stukje programmeerwerk.

I/O:
De PC I/O adressen #000 t/m #3FF worden doorgegeven op Atom adressen #B400 t/m #B7FF. Ik wil even iets dieper ingaan op de printerpoorten van de PC. Normaal gesproken zit LPT1 op PC adressen #378, #379 en #37A en LPT2 op adressen #3BC, #3BD en #3BE. Ik wil verder alleen LPT1 bespreken omdat LPT2 verder identiek is, op de adressen na.
LPT1 is dus met de emulator via de adressen #B778, #B779 en #B77A aan te spreken. Voor de I2C interface, beschreven in het vorige nummer van Atom News, heeft men 2 inputs en 2 outputs nodig. De printer poort bevat voldoende in- en output poorten en is dus geschikt om de I2C interface te besturen. Hieronder volgt een beschrijving van de 3 adressen en welke signalen er bij horen. De pin nummers verwijzen naar de 25 polige D-connector welke op de PC zit.


 

Hardware:
De hardware is een stekker waarin de volgende onderdelen zitten: een 25-polige male D-connector voor op de printerpoort van de PC, een 74LS05, 4 weerstanden en een flatcableconnector voor de I2C-bus. Verder word het geheel gevoed door een externe voeding van 5V omdat de printerpoort niet voldoende vermogen kan leveren. Ik heb hiervoor een vrije voedingsplug van de PC voor gebruikt. Het schema staat hieronder:

 

Software:
De aanpassingen in de software zijn minimaal. Alleen de VIA adressen in het originele programma worden verzet naar de printerpoort adressen. Bijgevoegd op de clubschijf is het demo programma wat in de vorige Atom News beschreven en in Sittard gedemonstreerd werd.
Ik heb de volgende lijnen gebruikt voor de signalen tussen de PC en I2C Bus:
 

PC

I2C

D0

SDA-out

D1

SCL-out

Select

SCL-in

Paper out

SDA-in


 

Tot de volgende keer.
Kees van Oss