zoom.gif

AtoMMC2

Een SD/MMC interface kaartje voor Acorn Atom computers door Charlie Robson (SirMorris).

Introductie

AtoMMC2 voorziet in een eigentijdse oplossing voor programma opslag voor de Acorn Atom. Het is een combinatie van een hard- en software oplossing ontworpen om in de Atom kast gemonteerd te worden zonder aanpassingen / wijzigingen in de machine. Het voorziet tevens in volledige lees en schrijf mogelijkheden op een MMC of SD/SDHC kaartje in het FAT format vanaf v2.0. Het werkt in elke Atom computer en er is geen extra RAM, ROM of hardware uitbreiding nodig.

Lees verder of spring naar:

Installatie

De interface moet geplaatst worden op PL8, een 20 pens dubbele rij uitbreiding-bus op het moederbord van de Atom. De stekker voor PL8 op de bus wordt niet meegeleverd maar is zonodig eenvoudig aan te brengen. Denk er aan hem aan de toetsenbord kant te monteren op de plek waar de witte omtrek is aangegeven. Dus niet aan de componenten zijde want dan wordt de pin-nummering gespiegeld. Als de connector aan de verkeerde zijde is gemonteerd kan schade worden toegebracht aan de Atom en de interface.

De interface en PL8 in de Atom worden met een 20 draads bandkabel met elkaar verbonden. Let op bij het monteren van de connectors dat pin1 zowel op PL8 als op de interface goed zitten. Het kleine driehoekje op de connector geeft de plaats van pin nummer 1 aan. Pin 1 van PL8 wordt met een witte stip aangegeven. De bandkabel aansluiting van de SD-kaart dongle past slechts op een manier.

Er zijn 2 versies van Atom firmware beschikbaar. De eerste versie is een utilitie ROM op #Axxx. Voor de 2e versie moet er een mogelijkheid zijn om software op #Exxx te installeren. Er moeten ook 2 kleine patches in de #Fxxx ROM aangebracht worden. De mogelikheid om Atom DOS te gebruiken vervalt dan zonder het omwisselen van ROM's.

Installatie op #Axxx

Er moet in het voetje van IC24 een ROM geplaatst worden met de firware voor de AtoMMC interface. Let bij plaatsing op de juiste orientatie en of dat de pootjes niet gebogen zijn. Indien de pootjes niet geheel recht zijn, leg deze dan op een vlak hard oppervlak en verbuig ze voorzichtig. Er zal geen schade toegebracht worden als er een pen omgebogen is maar de software zal dan niet werken.

Om de firmware te initialiseren bij een reset is het noodzakelijk dat de Atom interrupts kan ontvangen die door de interface worden gegenereerd. Daarom moet een kleine draadverbinding (link) rechts van PL8, beter bekend als LK3, gemaakt worden. Zonder deze verbinding moet de firmware na elke reset handmatig worden geinitialiseerd door het volgende in te typen.

LINK #AFCC

De interface moet stevig binnen in de Atom kast worden bevestigd . Elke methode is goed; maar er moet een elektrisch isolatie materiaal tussen de interface en het moederbord worden aangebracht. Een stukje dubbel gevouwen bandkabel is is een uitstekende isolatie. De dongle kan zo gewenst toegankelijk blijven.

De software voor de Atom staat in een 2532 EPROM die in socket IC24 geplaatst moet worden. De juiste wijze van monteren wordt door de aanduiding op de eprom aangegeven. Let op dat de pootjes niet worden beschadigd met het plaatsen van het IC. Buig zo nodig de pootjes door ze tegen een vlak oppervlak te houden en voorzichtig er tegen te duwen. Als een pootje toch uitgebogen of krom is, zal het programma niet werken maar brengt geen schade toe aan de ROM of de interface.

Installatie op #Exxx

Indien je beschikt over een geheugenuitbreiding kun je een ROM op #Exxx plaatsen. Ook moet er een nieuwe OS ROM voor #Cxxx/#Fxxx geplaatst worden welke gepatched is. De gepatchte OS ROM zal de interface op de juiste tijd inititialiseren en er zijn dus geen interrupts nodig. LK3 kan dan verwijderd worden of interrupts kunnen uitgeschakled worden in de AtoMMC software. Zie het CFG commando.

Initialisatie

Als de interface en de service ROM zijn geplaatst kan de Atom aangezet worden en de bekende Atom begroeting staat op het scherm aangevuld met de aanwezigheid van de interface..

ACORN ATOM + ATOMMC2

Het gelijktijdig indrukken van onderstaande toetsen in combinatie met BREAK, heeft volgende gevolgen:

  • CTRL zal de interface firmware uitschakelen tot de volgende reset .
  • SHIFT zal proberen de file MENU te starten.*)
  • REPT zal aanvullende informatie tonen zoals de firmware versie en het type MMC of SD/SDHC kaartje dat aanwezig is.
*)Tenzij de werking van de SHIFT toets bij opstarten is geinverteerd in de configuratie. Zie het CFG commando.

Deze afbeelding toont wat u kunt verwachten als u REPT indrukt tijdens het resetten. De files op het kaartje waarvan de naam begint met een S worden op het scherm getoond. .

Software toevoegen aan het kaartje

Files kunnen op een eenvoudige manier op het SD-kaartje gecopieerd worden met het operating systeem van uw keuze. Subdirectories zijn niet voorzien.

Het 'ATM' format wordt gebruikt om de benodigde metadata aan de Atom files toe te voegen. Deze header is 22 bytes lang en is als volgt opgebouwd:

$00 - $0F : Filenaam tot 12 karakters lang + aangevuld met nullen
$10 - $11 : load adres
$12 - $13 : executie adres
$14 - $15 : Filelengte waarden in kleine endian notering.

Hier onder staat de header van Snapper. U ziet de 22 header bytes en de eerste 10 letters van het hoofd programma.

53 4E 41 50 50 45 52 00 00 00 00 00 00 00 00 00   SNAPPER.........
00 29 86 CE 00 13 0D 00 00 52 45 4D 2F 2F 20 53   .).......REM// S

ATOM Service ROM referentie

Alle numeriek parameters moeten hexadecimaal opgegeven worden.
De tekens # en $ zijn niet nodig.
Filenamen welke als parameter aan *-commando's zijn toegevoegd, hoeven niet tussen aanhalingstekens te staan. Bij de gepatchte OS routines LOAD en SAVE moet dat wel.
Optionele parameters worden tussen haakjes aangegeven.

Om de listing te zien van de files op het kaartje type

*CAT

na de prompt. Het commando mag op de gebruikelijke manier worden afgekort, bijvoorbeeld als

*CA., *C.

of eenvoudig

*.

Je kan ook wild-card tekens gebruiken om de output te filteren. Een enkele letter kan als parameter worden toegevoegd en slechts de files die beginnen met dat letterteken worden afgebeeld.

Files met het hidden attribute van DOS actief, worden nooit getoond. Druk SHIFT of REPT in om de listing te pauzeren. ESC breekt de listing af.

*INFO filenaam

zal de metadata die bij de file hoort tonen. Als de file niet aanwezig is, wordt er rommel getoond. Er is geen manier om te weten te komen of er data aanwezig is of niet. Je ziet iets zoals dit:

SNAPPER 2900 CE86 1300

Dit toont het load adres #2900, het executie adres is #CE86 en een file lengte van #1300 bytes.

*FATINFO filenaam

zal de info van de file in het FAT systeem tonen. De eerste waarde is hexadecimaal de filelengte, de volgende waarde is de startsector van de file op de SD-kaart, daarna volgt een 0 en dan het attribuut byte.

LOAD "filenaam"

Zal het programma laden op de gekozen tekst pagina.

*LOAD filenaam

zal het programma laden op het in de metadata vermelde adres.

*LO.filenaam (adres)

zal de data laden op het aangegeven adres in het geheugen. De firmaware staat toe de filenaam met of zonder quotes op te geven. De metadata wordt afgedrukt tenzij dat wordt belet door het commando *NOMON

*RLOAD filenaam adres

RAW load zal de file van de SD-kaart laden gebruik makende van de systeem filelengte ipv de metadata informatie.

*RUN filenaam

of kortweg

*filenaam

zal het programma laden en opstarten. De firmware zal trachten alle programma's te runnen zelfs als ze niet als auto-running zijn bedoeld. In sommige gevallen zal het een error genereren waardoor

LOAD "filenaam"
RUN

moet dan worden gebruikt. Programma's kunnen ook geladen worden in de Atom met gebruik van:

*EXEC filenaam

Dit voert de file inhoud uit alsof het ingetoetst wordt. Files die op deze manier worden ingelezen moeten ANSI tekst files zijn zoals die in Windows Notepad worden gemaakt. Dit is een handige manier om programma's in te voeren welke slechts bestaan als listings.

SAVE "filenaam"

slaat het nu aanwezige programma op. Als de file al bestaat, wordt er gevraagd om deze te overschreven.

*SAVE filenaam [start] [end](exec)

saved de opgegeven aantal geheugen blokken. Het eind adres is exclusief-, in andere woorden dat is het adres van het laatste byte welke geschreven moet worden + 1. Het executie adres zal het start adres zijn als dat niet apart wordt ingegeven.

*DELETE filenaam

zal de file wissen op de SD-kaart.

*HELP

Zal weergeven welke versies firmware je gebruikt.

De onderstaande commando's zullen de werking van de interface beinvloeden.

*CFG (waarde)

zal de huidige waarde van het configuratie register tonen indien geen waarde is opgegeven, anders zal waarde in het configuratie register geschreven worden. De standaard waarde is $FF. De volgende bits in het configuratie register hebben effect:

  • 5 ($0010 000) - Inschakelen interrupts
  • 6 ($0100 000) - SHIFT-BREAK inverteer actie
  • 7 ($1000 000) - Inschakelen bootloader
  • LET OP: uiterste oplettendheid is geboden bij het wijzigen van het configuratie register. Bepaalde combinaties hebben ongewenste resultaten op de werking van de hardware van de interface. De gevaarlijkste situatie is het uitschakelen van de bootloader terwijl er geen firmware is geinstalleerd. Dit resulteerd in een eindeloze loop welke niet kan worden onderbroken. De enige manier om deze wijziging weer ongedaan te maken is om de PIC controller uit de interface te halen en de desbetreffende bit mbv een PIC controller weer te programmeren.

    Wanneer je SHIFT-BREAK drukt bij een reset dan wordt de regel *MENU in de commando buffer geplaatst om het programma MENU uit te voeren. Het kan wenselijk zijn om dit bij elke reset te doen, daardoor kun je de werking van SHIFT-BREAK inverteren door bit 6 in het configuratie register te zetten. Op deze manier wordt iedere keer bij een reset het menu uitgevoerd totdat SHIFT-BREAK gebruikt wordt.

    Extra User poort

    De interface bevat een 8-bits bi-directionele gebruikers poort - Poort B. De datarichting van elk bit is onafhankelijk van elkaar in te stellen door de gebruiker.De instelling wordt opgeslagen in de EEPROM van de interface en is meteen na opstart weer ingesteld.

    *PBD (waarde)

    zal de datarichting van elk bit instellen. 1 = Input en 0 = output. Dus *PBD FF zal alle bits op input en *PBD 0 zal alle bits op output zetten.

    *PBV (waarde)

    zal de huidige waarde van Poort-B tonen of instellen.

    Wanneer een bit als input ingesteld is, zal deze gelatched worden maar verder geen effect hebben. Wanneer de status van een output bit gelezen wordt zal de gelatchte waarde getoond worden. De poort zal tijdens het lezen van waarde veranderen waardoor een open-collector signaal aanbevolen wordt. Wanneer een bit dus als input geschakeld is zal dit signaal dmv een pull-up weerstand hoog gehouden moeten worden. Wanneer een bit dus als output geschakeld is, zal deze laag gestuurd moeten worden.

    Hieronder staat een aanzicht van de pin bezetting van Poort-B. Het is gezien vanaf de bovenzijde.

    Wanneer je geinteresseerd bent om de interface hardware direct in een Atom programma aan te sturen, kan de source van de Atom-firmware bekijken.

    PIC controller firmware

    Het kan zijn dat er nieuwe firmware uitkomt voor de PIC controller op de AtoMMC interface. De nieuwe firmware kan op een eenvoudige manier in de PIC controller geflashed worden doordat deze controller een bootloader heeft. Het enigste wat men moet doen is de nieuwe firmware downloaden. Deze bestaat uit 3 files:

    ATOMMC20.BIN
    ATOMMC23.BIN
    ATOMMC25.BIN

    Werkwijze:
  • Ben er zeker van dat de firmware voor de Atom geschikt is,
  • De bootloader moet ingeschakeld zijn,
  • Gebruik de laatste PIC firmware files,
  • Formatteer een SD-kaart en copieer de 3 files erop,
  • Stop de SD-kaart in de interface en reset de Atom,
  • Beide leds gaan aan en de groene zal knipperen tijdens flashen,
  • De leds blijven uit na het flashen. Neem de SD-kaart eruit en reset de Atom.

  • De bootloader is zeer betrouwbaar maar het kan zijn dat je toch hulp nodig hebt. Vraag dit dan na bij de leverancier.

    Troubleshooting

    Wanneer er geen melding op het scherm verschijnt na een reset:

  • #Axxx versie: Controleer of de interrupts ingeschakeld zijn
  • #Exxx versie: Controleer of de #Exxx ROM goed geladen is en dat de OS ROM gepatcht is

  • De groene LED blijft aan:

  • Flash firmware opnieuw

  • CARD? error wordt geprint wanneer de SD-kaart aangesproken wordt:

  • Probeer een ander merk MMC/SD/SDHC-kaart

  • De interface reageert niet meer of hangt:

  • Controleer kabelaansluitingen van de Dongle en PL8 (pin1 ok)

  • Er komen vlammen uit de Atom:

  • Verwijder/bypass spanningsregelaars en gebruik een goede 5V voeding
  • Files / links

    Download een file om bestanden samen te voegen hier
    (PC utility ATOMTRUNC.EXE door Charlie Robson )

    En voor de aardigheid een blik op het Prototype ATOMMC2

    Klik hier voor het schema en hier voor de printlayout

    Download hier de firmware bestanden

    SDROM

    De SDROM v3.0 is een ROM welke samenwerkt met de AtoMMC2 interface. Deze ROM bevat een filesystem voor de SD kaart, compatibel met Atom DOS en werkt samen met diskimage bestanden op de SD-kaart. Deze disk image bestanden zijn sectorkopieen van een floppy (100 KB).
    Download hier de SDROM voor de AtoMMC2 interface

    Klik hier om een uitleg te zien van de SDROM v2.2 met een eigen interface op de VIA.