Viser innlegg med etiketten Elektronikk. Vis alle innlegg
Viser innlegg med etiketten Elektronikk. Vis alle innlegg

torsdag 26. oktober 2017

Flashing av Gotek

Jeg startet så godt, det skulle bare bli et kort innlegg om flashing av alternativ firmware på en Gotek-diskettstasjon. Som alt annet så endte det opp med et absurd langt innlegg om de ulike alternativene, og jeg kom aldri frem til den praktiske delen. Da er det bare å brette opp armene, lete frem loddebolten og sette i gang.

Nesten - i tillegg til en funksjonbibel loddebolt, noen header pins, litt kabling med hunn-kontakt i begge ender og en seriell adapter så skal alt være krute godt. Det meste her er enkelt, seriell adapteren kan være litt skummelt å finne ut av selv om det kan være det meste så lenge som den ikke kun er 5v av frykt for å svi av noen kretser på diskettstasjonen. Den jeg bruker heter så mye som USB 2.0 to TTL UART 6PIN CP2102 Module Serial Converter T1 og kostet rundt 15 kroner, passende tregt levert fra onkel Kina (jeg var nødt til å manuelt installere drivere for den).

For å programmere Gotek-en må man lodde på en del kontakter, det er disse som er ved siden av den hvite strømkontakten - for å komme noen vei må vi lodde på headere for disse. Når jeg først skulle forsøke meg på dette så ble jeg litt bekymret over at antallet punkter på raden nærmest strømkontakten så ut til å variere alt etter hvilken enhet jeg så på, de jeg har varierer mellom 2 og 4 mens guiden tilhørende firmware fra Cortex har 3!


Når det gjelder kobling av kabler mellom så er bilder vanskelige å finne, men har tatt noen i full fart som jeg har inkludert nedenfor - det meste skulle være overkommelig på dette stadiet, legg merke til at jeg har satt en ekstra jumper på de to pin-ene til venstre i den øverste raden samt at TX/RX er byttet om fra enhet til adapter.


Med det fysiske unna vei så er det bare å koble adapteren til PC-en, det er nå på tide å bruke programvaren Flash Loader Demo - du finner denne på hjemmesiden til produsenten (helt nederst, krever registrering). Ved oppstart vil du få et skjermbilde lik det vist nedenfor til venstre, velg rett Port Name fra listen - nummeret på denne vil variere alt etter hvor mange enheter av denne typen du tidligere har hatt tilkoblet, men på en moderne maskin så er det sannsynligvis kun det ene korrekte valget du sitter igjen med (ved ingen valg, sjekk driver). Klikk neste.


Forhåpentligvis fikk du ingen feilmeldinger, med mindre du regner det vist ovenfor til høyre. Slapp av, det betyr at alt har fungert så langt. Alt denne meldingen betyr er at firmware som er på den fra før av er kryptert og kan ikke kopieres ut, med andre ord ingen vei tilbake - ser heller ingen grunn til å gjøre det heller, så klikk Remove protection og lev lykkelig i alle dine dager!

Klikk next noen ganger til du kommer til dialogen nedenfor til venstre, sørg for at Download to device er valgt og bla deg frem til filen hex-filen du fikk som en del av nedlastingspakken til Flash Floppy, Cortex eventuelt annet du måtte ha snublet over i tiden siden jeg skrev dette innlegget. Det er en håndfull alternativer, men personlig så vil jeg anbefale Flash Floppy for førstegangsreisende, det er også den jeg kommer til å referere til videre i innlegget. Trykk neste, når du har kommet til 100% så vet du hvorvidt det hele gikk bra eller du har fått deg en ny brevvekt (slapp av, krever sikkert bare en reset av enheten)!


Akkurat nå så er jeg usikker på om det er noe mer å si egentlig - annet enn at man nå må huske å fjerne jumper... vel, med mindre man skal bruke Flash Floppy på en Amiga for det er den jeg prøvde på først. For Cortex, så trenger du bare å lese de siste avsnittene på innlegget Gotek-diskettstasjon for Amiga 500 så skiller vi lag her.

Det første du trenger å vite om Flash Floppy, HxC for den saks skyld også siden Flash Floppy kopierer mye av oppførselen  her er at den har ulike moduser. Med en Amiga som utgangspunkt og en vag kjennskap til Gotek, start med autoboot-mode og her kan du følge instruksjonene fra hjemmesiden da de sikkert er mer oppdatert enn mine.

Fortsatt her? Du trenger en USB-minnepenn, selvsagt. Du trenger essensielt sett to filer som må plasseres på roten av denne minnepennen, den ene er konfigurasjonen til Flash Floppy og det andre er et stykke programvare tilhørende maskinen diskettstasjonen skal inn i. Mest trolig vil den be deg om å laste ned filen HXCFEUSB_HFE_beta_firmware.zip, de du må kopiere til roten av minnepennen er følgende:

  1. Next_WIP_Alpha_Firmware_And_Tools\File_Selector\Amiga\AUTOBOOT.HFE
  2. Next_WIP_Alpha_Firmware_And_Tools\HXCSDFE_Config_Files\Autoboot_Fileselector_mode\HXCSDFE.CFG

Monter diskettstasjonen i Amiga-en, sett minnepinnen inn i diskettstasjonen (hvem ville tro det skulle bli en fornuftig ting å si) og skru på maskinen. Gitt at alt fungerer så vil den starte opp en ny programvare automatisk som lar deg velge hvilke ADF-filer som skal tilsvare de ulike numrene på diskettstasjonen.

Finn noe bra og nyt retro-følelsen, helt til du må opp av sofaen igjen for å bytte disketter! I det minste så vet du i det minste nå at alle diskettene til spillet fungerer... ingenting som å oppdage at den tre-hodede apekatten fra Monkey Island er på den manglende disketten, men nå kan du bare kopiere dem inn på plass i en fei.

søndag 15. oktober 2017

MP32C64 Datasette Emulator

Da jeg kjøpte min Commodore 64G så fulgte det ikke med en datasette, det vil si den vi gjennom alle år har kalt kassett-spilleren ettersom det var det den gjorde. Det fulgte derimot med en kassett-spiller, men kun av den varianten man kun kan bruke til musikk og slikt - en datasette har en del digitale funksjoner som Commodere-en kan bruke for å kontrollere den.

Med andre ord hadde jeg ingen måte å få lastet inn noe programvare på den, vel... sett bort fra en datasette tilhørende en Commodore 64C jeg også har, men den er i et annet fylke. Uansett, det ser ut til at det er en hel del alternativer og felles for de fleste av dem er at de koster en del penger i innkjøp, ikke det at ikke komponentene som inngår i dem rettferdiggjør prisen. Du har to alternativer i tillegg til å kjøpe en brukt datasette/diskettstasjon, generelt sett en emulert diskettstasjon i form av SD2IEC eller en emulert datasette i form av MP32C64 (eller en variant av den).

I og med at MP32C64 kostet en femtedel av en SD2IEC så kjøpte jeg inn en av disse, for å spare enda mer kjøpte jeg den i kit-form (det vil si at man må lodde den sammen på egen hånd). Ingen SMD-komponenter i sikte, så med en OK loddebolt for hånden så er dette kjappe kvarteret å "skru" sammen.


Med detaljene unna vei så er det bare å grave frem Commodore-en, plugge denne i datasette-kontakten på baksiden og så koble mikrofon-inngangen på enheten sammen med hodetelefon-utgangen på mobiltelefonen. Velg en av de medfølgende MP3 filene og så...

... irritasjon. I og med at enheten ikke har noen måte å kommunisere med telefonen din på, så er den mer eller mindre nødt til å gjette oppførselen. Dette gir en del utslag som i første omgang betyr at når man trykker SHIFT + RUN på Commodore-en så får man ikke den vanlige "Press play on tape", den skipper rett til en blå skjerm - dette er helt normalt.

Du må nå bytte til telefonen og spille av MP3-filen (uten noe som helst filtrering aktivert), i og med at kommunikasjonen mellom enhetene mangler så du nå holde inne SPACE inntil du ser skjermen blinke en gang - blink sakte en gang i løpet av 20 sekunder og du har mistet vinduet ditt.

Forhåpentligvis så begynner den nå å laste inn, hvis ikke må du prøve ut ulike volum-nivåer på telefonen din - vanligvis en plass i det høyeste sjiktet for å se hvorvidt det gjør en forskjell, alternativt så kan det være lurt å prøve en annen kabel (mono-kabler skal visstnok fungere bedre). Funker det? Isåfall, spill en av de medfølgende spillene du fikk sammen med enheten (mest trolig som en del av delt mappe på Google Drive eller Dropbox).


Ghostbusters og Boulder Dash var alltid noen av mine favoritter, ikke det at jeg forsto så mye av Ghostbusters i den tiden; jeg hadde ikke en gang lært alle bokstavene mine på det tidspunktet, så Engelsk og håndtering av budsjett var litt utenfor min rekkevidde. Vel, strengt tatt forsto jeg budsjettering og var svært økonomisk med ukelønnen min, men ikke ikke i spill og sånt. Boulder Dash var bare moro for alle involverte, ingenting som å miste et av livene sine ved å få en diamant i hodet mens noen ser på!

I teorien skal man kunne App-er slik som TAPdancer på mobilen for å lese inn .TAP-filer direkte, men jeg fikk aldri noen av disse til å fungere. Prøvde også en av de medfølgende guider om konvertering av TAP-filer til lyd fra laptop-en, men fikk heller ikke disse til å fungere skikkelig. Det eneste jeg kan tenke meg er at samtlige av MP3-filene jeg fikk inkludert var av kopierte spill som var komprimert ned og dermed lastet inn i en smell, TAP-filene jeg hadde liggende var mer som originalene og hadde dermed langt mer interaksjon med selve kassettspilleren og det var dermed vanskeligere å "treffe" den magiske kombinasjon som skulle få ting til å fungere.

Uansett, når det kommer til MP32C64 så er den en morsom ting å lodde sammen som et lite ettermiddags-prosjekt, men dersom du ser etter en måte å få en Commodore 64 til å fungere uten å slite underveis så er den vanskelig å anbefale. Ser antydningen til at jeg sikkert blir å investere i en SD2IEC en gang i fremtiden.

onsdag 4. oktober 2017

Venstre! Venstre for ...

... helvete (man er da nordlending)! Jepp, etter 25-30 år med røff behandling gjennom utallige sesjoner i Summer Games og mye mer av hva enn annet Joystick-er måtte ha mareritt om, så har den fått et handikap.

Hva jeg snakker om? Den langt fra ergonomisk utformede svarte saken til venstre i bildet til høyre. Du vet, gledelses-pinnen fra barndommen vår? Avbildet ved siden av en deilig hjemmelaget og overdimensjonert porsjon av Panna Cotta. Referansen til temaet? Ingen sammenheng, ville bare skryte av å ha laget den. Og, den var deilig. Panna Cotta-en altså.

Erm! Jepp, til helvete med Norsk språkråd og fornorsking av fornuftige og allerede etablerte navn! Da var det ute av systemet, for denne gang. Denne Joystick-en er en såkalt Zipstick og var svært vanlig under juletrærne på starten av 90-tallet, og heldigvis var det en tid da man bygde ting for å vare og ikke minst repareres. Demontering gir raskt rotte-reiret vist nedenfor til venstre, så her bør man sørge for å ta gode bilder for å være sikker på hva som gikk hvor. Som man kan se av bildet nedenfor til høyre, så var det ikke spesielt rart at all venstre-vridd aktivitet ikke fungerte slik man skulle forvente. 


Den feilende delen kalles en micro switch, søk etter "mikrobrytere" og se hvor mange resultater du får! En hel del, vel - du får ikke lov til å kalle dem det! I alle fall ikke av meg. Akkurat så mikroskopisk er de nok ikke, disse er på rundt 27.3x15.5 mm så jeg vil regne dem som svært store i dagens målestokk selv om de nok var ganske så små da teknologien kom på markedet.

Komponenter slik som akkurat disse kan være svindyre i innkjøp, men da er det fordi man har sett på de seriøse sidene for elektroniske komponenter - sånn man håper SAS og Widerøe betaler for, ikke sånn man stapper inn i en Joystick. Fant dermed frem til en 10-pakning av disse på AliExpress til under 30 kroner, så da har man ekstra i reserve pluss en måned på å tvinne tomler mens man venter på å få dem levert fra Kina. Jeg har noen ekstra, og du kan få dem for 30 kroner stykket! Se, nå vet du også hvordan Finn/Ebay fungerer i praksis!

Som man kan se på skissen svakt tydelig i bildet ovenfor til venstre, så har disse i tillegg til COM (Common), to ulike tilkoblingsmuligheter; NC (Normally Closed) og NO (Normally Open). Vet ikke om du ville brukt den første i noe som har noe som helst med en Joystick å gjøre, så koble til på NO og ignorer NC helt - med mindre du trenger den ekstra utfordringen, men da burde du vel bare latt være å reparere den. Som man kan se av bildet nedenfor til venstre så valgte jeg å bytte ut samtlige av dem, dette for å sørge for at hver av retningene føles likedan og dermed krever like mye styrke uavhengig av retning. Anbefaler å bytte ut en og en, da har du mindre ledninger å forveksle til slutt.


Ovenfor til høyre ser man undersiden av Joystick-en etter at skruene var på plass igjen, og som man kan se så manglet alt av sugekopper - et trist og så altfor vanlig syn på utstyr tidligere eid av folk som ikke satte pris på dem, eventuelt hadde eldre søsken som ikke gjorde det og du var for liten til å gjøre noe med den saken (denne var kjøpt via finn.no, så hvem vet?). Prøvde meg på bruk av noen bumpon (betydning av ordet: uvisst), generelt sett gummi-føtter med en diameter på 13mm og de passet helt perfekt, såpass perfekt at de burde vært der i utgangspunktet. Sugekopper er uansett juks, skal man spille Summer Games så er tennis-albue en del av moroa!

Får avslutte med enda et bilde av den ferdige og nå fullt ut fungerende Joystick-en. Samt Panna Cotta-en, må for all del ikke glemme den i all sin prakt (en plass under bringebær-sausen). Mmmm....


lørdag 30. september 2017

Reparere fabrikkfeil på Amiga 1200 (1D4)

Strengt tatt er ikke dette den generelle guiden man skulle forvente, hovedkortet på maskinen min fungerer jo strengt tatt. Nei, dette handler mer om det faktumet at når veldig mange av hovedkortene som står i en Amiga 1200 ble satt sammen på fabrikken ble det gjort del feil som jeg nå er tvunget til å gjøre et forsøk på å reparere. Bakgrunnen for dette er at jeg har sett på muligheten, egentlig allerede kjøpt og betalt, for bruk av en akselererer i maskinen og da må problemene være sortert ut først.

Revisjonen av hovedkortet mitt er 1D4 og eventuell informasjon her vil relatere til denne spesifikke versjonen av hovedkortet. Visstnok har ikke revisjon 1D1 disse spesifikke problemene, men som alt annet fra den tiden så er det umulig å vite hva man har uten å skru opp maskinen og se hvilken revisjon og eventuelle problemer man har.

Problemene som vi må håndtere er 2-4 ekstra kapasitatorer montert på undersiden av hovedkortet, disse skaper problemer for klokken på maskinen og vil nok forårsake en del Guru Meditations. Legger man til en akselerator forsterkes problemet til den grad at maskinen mest trolig ikke vil fungerer i hele hele tatt. Den jeg har bestilt for bruk er ACA1221ec og sammen med dokumentasjonen til denne finner man bildet gjengitt ovenfor til høyre, de som er sirklet må fjernes.

Nedenfor er et bilde av mitt eget hovedkort. Som man kan se så er den mindre alvorlige feilen, i henhold til dokumentasjonen, ved å montere E121C og E122C ikke gjort på min maskin så det er i det minste noe. Den mer alvorlige feilen som ødelegger klokkesignalet, det vil si E123C og E125C var selvsagt montert så da må jeg dessverre trekke frem loddebolten for å få reparert dette.


Jeg har aldri gjort noe arbeide på et så gammelt kretskort før, så jeg må si at jeg totalt undervurderte nøyaktig vanskelig det skulle være å bli kvitt kapasitatorene. Visstnok av det jeg har sett av omtaler så mangler disse kortene varmeseperasjon, noe som betyr at varmen fra loddebolten spres utover alt istedenfor å smelte loddetinnet på den aktuelle komponenten... Betyr at man må bruke mye tid og varme for å få noe som helst til å løsne, selvsagt og forhåpentligvis den rette tingen!

Etter mye kjefting, brannsår og dessverre en håndfull tårer så fikk jeg bort kapasitatorene fra kortet. Som man kan se nedenfor så løsnet E123C slik som den skulle, men for E125C så endte jeg opp med å røske med meg deler av selve kretskortet. En skikkelig amatørblunder, strengt tatt så er jeg en amatør på området med selvtilliten til noen som en gang i blant har fått ting til (dårlig kombinasjon).


Tror at en del av årsaken til at dette skjedde var at loddebolten jeg brukte var litt under-skalert for å håndtere oppgaven, med sine annonserte 35w så hadde det ikke kapasitet til å levere fra seg nok varme i tråd med tålmodigheten. Neste gang jeg forsøker meg på noe slikt så må jeg heller vurdere bruk av to loddebolter fra hver side og så løfte den forsiktig ut på den måten, eventuelt spørre noen med litt mer spesifikk kompetanse på området. Må også bli kjent med noen med mer spesifikk kompetanse.

Så da var problemene håndtert, og utover å ha gjort en kvalmende dårlig jobb på området så er komponentene permanent fjernet. Permanent i den grad at i alle fall den ene aldri vil kunne monteres på plass igjen, men visstnok i forhold til interne notater hos Commodore så var det aldri ment å skulle være noe montert der i det hele tatt så da er man i det minste på den trygge siden. Likevel verdt å notere seg erfaringen hvis man skulle prøve seg på noe der man ønsker å kunne angre på senere.

mandag 25. september 2017

Britisk strømforsyning, norsk stikkontakt, hammer?

Har kjøpt en haug med Amiga-er. En Amiga 500, en Amiga 600 og måtte lommeboken tilgi meg for å ha kjøpt en Amiga 1200. Fellesnevneren for alle maskinene er at selgeren har kvittet seg med alt av tilbehør, eventuelt kastet det, og kun tatt vare på selve maskinene for så å selge dem dyrt til meg. Fikk etter hvert fatt i det man trengte, deriblant en strømforsyning fra Storbritannia med tilhørende bisarr plugg (til venstre i bildet).

Tenkte jeg skulle hamre den til for å få den inn i egen stikkontakt, eventuelt kunne man bare bruke en adapter - kjøpt inn fra Kina selvsagt. Den fungerer, men man vet aldri hvor sikker de er i lengden, eller i det hele tatt på kort sikt for den saks skyld. Spør man om CE-godkjennelse får man bare til svar; Yes, yes! I make sure put on sticker!

I Storbritannia har de den samme spenningen i veggen som den vi har, så en endring av kontakt krever ikke annet enn å bare flytte ledningene fra en plass til en annen. Grunnen til at vi har forskjellige plugger er at strømmen i et hus legges opp på en annen måte, de har et system kalt Ring Final Circuit - essensielt sett så koblet de alt sammen i en enkel ring, på den måten skulle man komme seg unna med bruk av billigere kabling i veggene. For å unngå at noe trakk mer enn det som var forventet av strøm så la man inn sikringer i hver plugg slik at disse feiler før kablene i veggen tar fyr.

Her i Norge gikk vi derimot for kabling som var så dyr som mulig, hvorfor spare på noen få kroner når det kunne spare en for å måtte bytte ut kablingen inne i veggen etter få år. Uansett, vi trenger ikke noe sånt da vi har skalert for det. Det grønne kabelen er koblet til en av de andre fasene gjennom sikringen, hos oss kobler vi den rett til jord - plasseringen av de andre to gjør det lite fra eller til på hos oss så lenge de ikke kortsluttes sammen eller til jord.


Siste steget er å plugge den i veggen, holde for ørene og skru på bryteren. Ingenting som eksploderte? La oss feire det med å spille noen spill! En langt bedre måte å sjekke at man ikke har noen kortslutninger er å bruke et multimeter satt til kontinuitet!

OBS! Commodore hadde en del tilsynelatende fargeblinde ansatte i sine siste, med andre ord så bør man ikke stole på at fargene stemmer overens med det man skulle forvente i disse dager. Det er derfor jeg avbildet dem side om side, selv om jordingen her hadde forventet fargekoding.

onsdag 20. september 2017

Eksternt CMOS-batteri for PC

En ting man bør vite om gamle datamaskiner er at så og si alle av de som er mulig å få fatt i, er at de har et batteri montert på seg. Selvsagt gjaldt ikke dette de aller eldste av dem, men er det en IBM PC eller kompatibel maskin - helt enkelt det vi i dag kaller en PC - så har den et av disse. Hva vet vi om 25-30 år gamle batterier?

Generelt sett at de lekker. Det de lekker er ofte en svak syre som over tid etser bort kopper-tråder og det meste annet av metall som måtte være i nærheten, hvis du ser tegn til lodne eller metall som har fått grønn farge så er det mest trolig allerede for sent - i dag er det knapt mulig å oppdrive en Amiga 500 Plus som ikke har strøket med på denne måten.

Selvsagt er det flere varianter av batterier, der noen er tryggere enn andre - batterier basert på Lithium og NiMh er rimelig trygge, men med mindre du har sjekket så er det et sjansespill med dårligere odds. Uansett om de måtte klippes vekk fordi de var gift på boks eller om de bare har vært tomme de to siste tiårene, så må man erstatte dem med et eller annet for å få maskinen til å fungere skikkelig. På en Amiga mister man bare tid og dato, knapt noe tap hvis man ikke bruker den på noe annet enn spill - på en PC derimot, der trenger man også informasjon lagret om harddisker, diskettstasjoner og eventuell annen informasjon for at maskinen i det hele tatt skal kunne fungere.

Når det kommer til å bytte dem ut må man fjerne dem først og så sjekke påskriften og så finne noe med omtrent samme oppgitt spenning eventuelt identisk, men pass på at med mindre det eksplisitt står oppgitt at det eksisterende batteriet ikke kan lades opp så vil det være en risiko i å bytte dette ut med mynt-celler - kombinering av lade-kretser og ikke-ladbare batterier gir varmgang og etter hvert forbrent elektronikk. Mange 286/386/486 maskiner har også tilkobling for eksternt batteri, denne går alltid utenom en eventuell lade-krets og kan trygt brukes - min Copam 386SXM/16 en av disse og denne er dokumentert i manualen som vist nedenfor til venstre.


Mange lignende maskiner vil potensielt også ha denne plukken, selv uten å være dokumentert i tilhørende manual - noen ganger er pin 2 manglende for å hindre reversering av tilkoblingen, men den er så og si alltid plassert innenfor 3-4 cm av selve batteriet. Når det kommer til spenningen som kreves så er den, selv når den som her er oppgitt til 5 volt, kun en indikasjon - nye batterier vil alltid ha en spenning som er høyere enn det som er angitt og så falle over hele sin levetid. Personlig vil jeg anbefale å starte med lav spenning, slik som avbildet ovenfor til høyre, med en batteripakke tilsvarende 4.5v (3 * 1.5v) og så gå opp til 6v dersom man får problemer. Eksempler på problemer som kan oppstå ved for lav spenning er at klokken ikke går eller taper tid mens maskinen er slått av.

Hvis pin 1 ikke er angitt på hovedkortet, så kan man enkelt gjøre dette ved å identifisere pin 3/4 ved bruk av multimeter satt til kontinuitet - begge er jord og dermed koblet sammen. Hvis man er usikker på hvilken spenning kretsen egentlig forventer og eventuelt tåler så kan man finne ut dette ved å gjøre søk på navnene til de største av de integrerte kretsene (IC) rundt det tidligere batteriet, vanligvis må man ikke se lenger enn 5 cm unna, og så se etter noe med funksjon beskrevet som RTC (Real Time Clock).


På Copam-maskinen min så er brikken avbildet ovenfor til venstre den eneste av de større brikkene i nærheten, et raskt søk på google gir et datasheet som inneholder alt det vi trenger av informasjon. Utsnittet ovenfor til høyre viser at brikken fungerer så lenge spenningen til batteriet er mellom 0.3v og 7.0v - med andre ord så vil den tåle en batteri-pakke basert på 4 nye AA-batterier!

Batteri-pakken festes enkelt og greit på innsiden av maskinen ved bruk av dobbeltsidig tape, dersom maskinen skal settes tilbake på lager fjerner man bare batteriene fra holderen først. Endte opp med å kjøpe tilstrekkelige komponenter for å lage en haug av disse, så la ut en annonse på finn.no dersom du har behov for noe slikt.

onsdag 9. august 2017

MiniPro TL866CS

For alle som har prøvd å legge inn eller hente ut data fra en eller annen ROM-brikke, enten det er snakk om PROM/EPROM/EEPROM, så finner man raskt ut at dette er en relativt smertefull prosess så lenge man ikke har egnede verktøy tilgjengelig.

Prøvde tidligere å snekre sammen et slikt verktøy ved bruk av en Arduino og noen ekstra integrerte kretser, men som man ser av innlegget jeg skrev om saken så endte det opp i form av "Fra breadboard til PCB" fremfor "Se min fantastiske ROM-programmerer" - det som skjedde i mellomtiden var eksponeringen for kompleksiteten involvert. Klarte å skrive til en og annen EEPROM-brikke, men kun enkelte serier og manglet totalt muligheten til å skrive til PROM og EPROM ettersom disse krever 27v for skriving.

Det siste man trenger når man skal bytte ut ROM på en RC2014-maskin, en Amiga eller annet er tilfeldigheter involvert i skriving av data så startet raskt å se etter alternativer. Strengt tatt så er dette verktøy som ordinært sett koster ganske mange tusen i innkjøp, men snublet over et rimeligere alternativ tilgjengelig fra AliExpress samt via Ebay - MiniPro TL866CS.

MiniPro TL866CS

Personlig så har jeg vært litt skeptisk når det kommer til å legge igjen mer enn småpenger på slike produkter fra Kinesiske kilder da det ikke er alt som fungerer like bra hvis det i det hele tatt fungerer ved mottak, men 400 kroner veid opp mot utilgjengelige priser så følte jeg at jeg måtte prøve. Produktet virker profesjonelt satt sammen og pakket, så det er lite her som virker billig hvis man ser bort fra det tilnærmet totale fraværet av brukbar engelsk dokumentasjon og en nettside kun tilgjengelig bak kommunikasjonsmuren i Kina - den fungerer, men du vil hele tiden ha følelsen av å sitte på en modem-forbindelse igjen (nettsiden http://www.deviceprog.co.uk/ hadde heldigvis også en kopi av filene).


MiniPro TL866 kommer i to utgaver - CS-utgaven, den jeg kjøpte, kommer uten ICSP-mulighetene som A versjonen har. Denne er nødvendig for å programmere en del mikrokontrollere mens de er montert på maskinvaren med tilhørende tilgjengelig ICSP-header, men strengt tatt er ikke denne nødvendig ettersom du finner andre verktøy som gjør dette til en rimeligere sum sammenlignet med kostnadshoppet på et par hundrelapper for å få denne funksjonen. Hvis dette ikke sa deg stort så har du ikke bruk for den, og får du bruk for den senere vil du  nok raskt finne andre alternativer - det man ser etter her vil allerede være inkludert i CS-utgaven.

Bruk av MiniPro TL866CS

Enheten er enkel i bruk, du åpner Zif-sokkelen og legger inn brikken med pin 1 i retning av hendelen - som illustrert rett på enheten. Gjorde et par uhell ved å legge brikken i andre enden ettersom teksten da var rett vei opp i forhold til teksten på enheten, men utover at den klaget på å gjenkjenne brikken så la jeg ikke merke til noen varige men.

Programvaren MiniPro Programmer bærer preg av å være utviklet av og for ingeniører, her finner man en hel mengde knapper, menyer og alt dem man måtte ønske av spesial-funksjonalitet. Til å starte med må man angi hvilken brikke det er snakk om, så man starter med å klikke på knappen øverst til venstre i skjermbildet (se nedenfor til venstre) - den vil ha navn fra nåværende valgt brikke og man vil få en dialog lik den nedenfor til høyre.



Programvaren og enheten i seg selv støtter mange hundre ulike brikker med hver sin måte å fungere på ved programmering og uthenting av data så her må man ha tungen rett i munnen og være sikker på at man finner den rette varianten av brikken. Undersøk brikken med forstørrelsesglass to ganger, forsøk skriving en gang.

Programvaren vil operere ut fra et buffer, dette vil være vist i midten av vinduet og vil i utgangspunktet ikke reflektere det som faktisk er på brikken akkurat nå. For å hente data ut av brikken og inn i bufferet må du gå på nedtrekksmenyen Device(D) og velge Read... (R) - du vil få en dialog om plassering av brikken i enheten, når du er klar trykker du Read for å lese data til buffer.

For lagring av buffer til disk må du lagre til fil via File(F) og Save(S), du kan velge mellom å lagre innholdet direkte som binær data eventuelt lagre dem på Intel Hex-format (dette er ofte formatet du får når du får innholdet fra andre).

Skal du skrive til en brikke så er det igjen bufferet som skrives, med andre ord må du først lese inn programvare-informasjonen fra fil via File(F) og Open(O) til buffer først. Skriv til brikken via Device(D) og Program(P). Klikk Program for å faktisk skrive til brikken - dette kan kanskje virke noe omstendelig, men man kan på denne måten raskt skrive det samme innholdet til en hel mengde brikker uten så veldig mye mas.

Konklusjon

Det er ikke alle som trenger verktøy som disse, men når man trenger dem så er det deilig å slippe kompleksiteten av å mangle dem. Det er morsomt å holde på med gamle datamaskiner og leke seg med utbytting av ROM på disse, men dette kan være vanskelig nok enn at man skal slite med verktøykassen samtidig. For prisen og funksjonaliteten som denne pakken gir så er det en absolutt anbefaling fra min side, så får de profesjonelle bare ha sine fancy verktøy for jeg klarer meg fint med denne.

tirsdag 8. august 2017

RC6502 Apple 1 Replica SBC

Dette er et innlegg relatert til RC6502, mitt forsøk på å bygge en fungerende replika av den første Apple maskinen som ble laget. Det som trengs av tegninger og programvare for bruk av maskinvaren er lagt ut på https://github.com/tebl/RC6502.

RC6502 State of art

Mine opprinnelige mål med RC6502-maskinen min var å lage en maskin som var i stand til å fungere tilsvarende som en av de opprinnelige Apple 1 datamaskinene, eller i det minste så langt som det er praktisk å gjøre dette i dag (få av oss arbeider frivillig med en CRT-monitor, så denne biten er erstattet av en Arduino Nano som trer inn i rollen som tastatur og skjerm sett fra datamaskinens side).

Alt gikk selvsagt ikke på skinner, slik som man kan lese ut av gjennomgangen i innlegget Montering og feilsøking - konklusjonen for eventuelle lesere som aldri nådde frem til konklusjonen, var at maskinen fungerer uten endringer i maskinvaren. 

Mål oppnådd!

Hva gjør man når har oppnådd målene sine innenfor IT-sektoren? Det... Det skal jeg fortelle deg så snart jeg har luktet på muligheten til å i det hele tatt komme i nærheten. Historisk sett ut fra tidsalderen maskinen stammer fra så var svaret å lage dem enda mindre.

Challenge accepted!

RC6502 Apple 1 Replica SBC

Det neste logiske skrittet var vel egentlig det de fleste egentlig starter med, det vil si å lage en versjon av maskinen der alt av funksjonalitet er lagt ut på en enkel PCB. Disse versjonene er gjerne de som senere blir lagt ut for salg og blir da referert til som en Single Board Computer - SBC. Disse blir langt mer kompakte enn maskinen jeg så langt har bygd - borte er behovet for en backplane samt at eventuell logikk som tidligere var gjengitt på flere av kortene nå er begrenset til det minimale.

Den komplette tegningen over hvordan alle komponentene henger sammen, essensielt sett alle modulene komprimert ned til en enkel sammenhengende skisse uten overlapp, er gjengitt nedenfor. Det er relativt mye som foregår her, men mye må kunne sies om å det å se en komplett fungerende datamaskin på en enkelt A3-side.

(Last ned i PDF-format)

Det eneste som er nytt her er fire hull lagt inn for å sette inn "føtter" for maskinen, den andre er at det er lagt inn en 3.3K resistor fra CPU pin 36 til +5v. Kan ikke se at dette gjorde noen forskjell på maskinens funksjon, men det er dette som ser ut til å være anbefalt ved bruk av 65c02 prosessorer fra Western Design - ikke det at jeg har fått disse til å fungere så langt, men det får være en sak for mitt fremtidige jeg. Kortet fungerer med de langt billigere og langt mer tidsriktige versjonene av 6502-prosessoren, så er fornøyd så langt.

Slet kraftig med å få alt inn på en PCB med størrelse under 10 ganger 10 centimeter i og med at dette er nåværende grenser for å få produsert en PCB innenfor grensene til lommeboken min (konstant for lite penger, og alltid altfor lite tid til å bruke alt jeg likevel kjøper). Endte opp med å måtte gjemme en del av resistorene under pluggene for å koble til Arduino Nano-en. Resultatet kan du se nedenfor, og til tross for at noen med mer erfaring utvilsomt ville klart det langt bedre så er resultatet overraskende bra.


Man ser her også skruene for de allerede nevnte føttene, har her brukt hex-avstandsskruer tilsvarende de man gjerne vil bruke mellom pc-kabinett og hovedkort. Nederst er det også inkludert tilkoblingsmuligheter slik at man kan bruke SBC-modulen sammen med en eventuell backplane for bruk av andre tilleggs-moduler - her kan man selvsagt også bruke en 40 pins sokkel kuttet ned til 39 for bruk av en enkelt modul uten behov for backplane. Muligheter så langt øyet ser...

I og med at jeg først startet med å bygge slike maskiner for å lære om hvordan disse fungerer så tenkte jeg at det var på sin plass å bruke baksiden av kortet til noe fornuftig, derfor har jeg nærmest skrevet inn dokumentasjonen på selve kortet. På den måten skal det ikke være nødvendig å bla så veldig mye i notatene, de mest brukte kommandoene finner man ved å snu på kortet! Praktisk.


Den nevnte resistoren som ble lagt med i diagrammet kom selvsagt ikke inn i PCB-en, men den ble slengt inn på baksiden istedenfor.

SBC-versjonen av maskinen fungerer, så da har man gjort det også! Har fortsatt en håndfull av dem liggende, så dersom andre ønsker å bygge sin egen versjon av maskinen så er det gode muligheter for det. Muligens i bytte mot en Amiga 500, men den delen forblir nok bare en gammel teknologs drøm så får heller bare avslutte med et action-foto av maskinen i bruk!


mandag 5. juni 2017

RC6502 Montering og feilsøking

Dette er et innlegg relatert til RC6502, mitt forsøk på å bygge en fungerende replika av den første Apple maskinen som ble laget. Det som trengs av tegninger og programvare for bruk av maskinvaren er lagt ut på https://github.com/tebl/RC6502.

Montering

Da var det store øyeblikket kommet, PCB-ene er her og da er alt som gjenstår å brette opp ermene, skru på loddebolten og glede seg til å se hvordan maskinen yter. Ytelse er selvsagt begrenset, men det skal bli morsomt å se hvordan det blir å arbeide med en maskin som i utgangspunktet har en hastighet på 1 Mhz. Laptop-en min har en hastighet på 2.3 millioner ganger dette, men har liten tro på at den er like morsom i bruk som denne!


Bildene over viser henholdsvis PCB-ene slik de ble levert, fulgt av et bilde av maskinen der alt et loddet sammen og montert opp. Alt ser pent og flott ut, så da er det på tide å få på plass programvaresiden av prosjektet - det vil si koden som skal kjøre på Arduino Nano-enheten man ser montert på Seriell IO-modulen bakerst.

Gitt at jeg hadde store mengder logikk innenfor 74 LS-serien liggende i en skuff så tenkte jeg det kunne være greit å få brukt opp noen av disse. Strengt tatt så skal man selvsagt ikke bruke disse for nyere design siden de bruker langt mer strøm og skal visstnok være vanskelige å få til å fungere stabilt når man passerer 5-6 Mhz, men de koster en tiendedel og så virker det tilnærmet tidsriktig.

Prosessoren jeg har brukt er en Unicorn Microelectronics UM6502 - finnes langt nyere varianter, men betalte knapp femtilappen for fem av disse. Dessuten, enhjørning! RAM benyttet er standard HM62256 av en eller annen type, disse var knappe femmeren per stykk og fortsatt raskere enn det jeg trengte. Designet ROM for AT28C256B, så det var denne jeg brukte - innholdet skrevet til brikken finnes på github-repositoriet mitt (den du vil ha er den sier 8K, den andre var bare for å slippe mental omregning av adresser).



Første livstegn

En kraftig fordel, om ikke jeg egenhendig skal kalle det en genistrek fra min egen side, når det kommer til design av maskinvare er å begrense områdene der man kan få feil - spesielt på nybegynner-prosjekter slik som dette. Det vil si, at ved å ta utgangspunkt i en eksisterende maskin slik som Apple 1 så kan jeg konsentrere meg om å få maskinvaren til å fungere mens programvaren som kjører på maskinen i seg selv allerede er kjent og verifisert fungerende.

Tilbake til Arduino-koden. I og med at Apple 1 hadde et svært simplistisk oppsett der alt av data som skulle ut til skjerm gikk Port A på PIA-kontrolleren, keyboard var koblet opp via Port B, så skulle det være relativt enkelt å skrive litt kode som flytter tegn inn og ut av maskinen. Skissen under viser hvordan alt dette henger sammen, her har jeg brukt en MCP23S17-brikke for å utvide mengden IO-tilgjengelig for Nano-en.


I dag er vi vant til at et enkelt tegn må uttrykkes ved med alt fra 8 til 32 bit for å uttrykke alle verdens tegn, men på den tiden var 7-bit ASCII som ble brukt og dermed hadde man en til overs uten at dette hadde noen innvirkning på maskinen. Denne siste linjen tok Steve Wozniak i bruk for å indikere til de ulike komponentene hvorvidt man hadde data som skulle henholdsvis leses inn (fra tastatur) eventuelt hvorvidt "skjermkortet" var opptatt med å vise data allerede mottatt.

Uansett, tiden for å koble til strømmen var kommet. Kobler til strømmen, og absolutt ingenting skjer!

Strengt tatt så skulle det ikke skje noe i den positive retningen siden koden for å kommunisere enda ikke var skrevet (den ferdige koden ligger nå på github). På dette stadiet er man bare glad så lenge ingenting freser og kaster røyk i ansiktet ditt, dermed må alt så langt kunne regnes som en suksess.

Med mye frem og tilbake for å skrive koden, inkludert å grille en PIA-brikke siden jeg brukte feil innstillinger på Nano-en brøkdelen av et sekund (fint for meg at jeg kun fikk kjøpt dem i en 10-pakning), så fikk jeg endelig en enkelt '\' ut av den. For de som ikke kjenner forhistorien til Apple 1, så betyr dette at Woz-monitor programvaren kjører og jeg kan kommunisere med den!

Kortvarig glede

Glad og lykkelig over at den svarer, noe som dermed betyr at en måneds ettermiddager på tegninger, studering av manualer og en håndfull hundrelapper for å få PCB-ene produsert ikke har vært bortkastet! Sett bort fra...

At det er det eneste tegnet jeg får ut fra maskinen hver gang den resettes, klarer ikke å sende den noe og uansett hva jeg gjør så får jeg ingen annen respons - og ikke alltid at jeg får det heller! Noen ganger får jeg ingenting innen jeg napper ut strømmen og setter den i igjen.

Etter en uke med feilsøking, det vil si å tilfeldig endre på ting for å se om det gjør noen forskjell (det var her jeg svidde den ene PIA-brikken), så er det bare å krype til korset. Jeg trenger hjelp, men tror ikke Jesus har spesielt mye input på design av Apple-maskiner så da var det eneste som gjensto å lete etter et forum med likesinnede eksentriske sjeler med en fascinasjon for sære ting. Endte opp med å få mye hjelp fra gutta på forum.6502.org.

Det de hjalp meg med er å få gått gjennom de ulike linjene som finnes på prosessoren og så benytte meg av et enkelt Oscilloskop (DSO-138, byggesett kjøpt fra Kina det også) jeg hadde liggende for å se på hvorvidt maskinen hadde en regelmessig puls. Vi kan se at klokkelinjen oscillerer stabilt, den forskjøvne klokkelinjen Phi 2 ser normalt ut samt at RDY-signalet gjør noe lignende.


Så hva forteller alt dette meg? Svært lite, utover at tilsynelatende så fungerer alt slik det skal.

Desperate handlinger

Etter å nå ha med dette i snart en uke, så er det på tide å gjøre noe desperat. Første forsøk var å designe et kort som ved hjelp av noen MC14495P1-brikker i kombinasjon med noen 7-segment display (brikkene oversetter fra binært til hex) for å i realtime vise hva som foregår på databussen, og det viste seg å være en relativt teit ide (mulig jeg plukker den opp igjen på et senere tidspunkt). Grunnen til dette er at det fortsatt er snakk om 1 Mhz, noe som da vil si at informasjonen jeg ser på potensielt sett kan endre seg noen hundre tusen ganger i sekundet - alt man da ser er bare en smørje av hva som foregår.

Andre forsøk var å programmere en Arduino Uno til å gjøre dette for meg, men kun skrive ut adressene til en loggfil hver gang den endrer seg og med en filtrering på sånn omtrent hvilken enhet det er som "prater". Det jeg fant ut av dette var at tilsynelatende så ser jeg nesten data tilsvarende '\'-tegnet, det var alltid en eller annen feil i bitmønstret og etter en stund så gikk alt til helvete... Det vil si at alt som ble skrevet ut så ut som tilfeldig crap, inkludert forsøk på å skrive til ROM og gudene må vite hva!

Natten etter våkner jeg av et mareritt der jeg er fulgt av tilfeldig data uten mål og mening, men en snill kjempe sa noe om at det var noe jeg hadde glemt! Første regel når det kommer til design av datamaskiner er å ikke la mer enn en ting snakke sammen av gangen, det betyr tilfeldig data ettersom flere snakker i munnen på hverandre - litt for ofte fulgt av rykende varme silikon-brikker, en sjelden gang fulgt av flammer!

En av de tingene jeg hadde gjort var at RAM-modulen var ment å skulle ha en NAND-gate montert, det er den vist til venstre i bildet nedenfor - denne skulle tross alt ikke være tilgjengelig ikke være nødvendig siden jeg ikke trengte funksjonaliteten, men la oss likevel prøve å montere den likevel (hadde ikke flere DIP 14 sokler, det er derfor den ser ut til å være mindre enn den skal være).


Nå sluttet alt å fungere!

Tydeligvis må det ha påvirket noe til tross for at skissen eksplisitt ikke trenger den, sjekk tegningen ovenfor til høyre - gitt at minne plassert på rett plass, det vil si i den lavere (LOW) delen av adresserommet så skal signalet ikke gå via NAND-gaten i det hele tatt!

Sjekker kontinuitet ved hjelp av multimeteret... Adresselinjen A15 skal gå direkte til CS via jumperen, og jeg får ikke et eneste pip. La meg teste hvor den går, og sånn passe tilfeldig ender jeg opp med å få et pip på jumperen som angir plasseringen av minnet (HIGH) - feilen er altså den at med alt som kunne bli koblet galt så hadde jeg egentlig koblet alt rett, jeg hadde bare skrevet feil på forsiden av PCB-en - fungerende konfigurasjon er altså den vist i bildet ovenfor til venstre, til tross for at indikasjonene på forsiden antyder at det er helt komplett galskap.

Det burde lære meg å designe ting når man er dødstrøtt og klokken er for meget, men det er en del av utfordringen og objektivt sett så har man fått gjort MYE rart underveis.