Tartalomjegyzék:

A KIM Uno - egy 5 eurós mikroprocesszoros eszközkészlet -emulátor: 13 lépés (képekkel)
A KIM Uno - egy 5 eurós mikroprocesszoros eszközkészlet -emulátor: 13 lépés (képekkel)

Videó: A KIM Uno - egy 5 eurós mikroprocesszoros eszközkészlet -emulátor: 13 lépés (képekkel)

Videó: A KIM Uno - egy 5 eurós mikroprocesszoros eszközkészlet -emulátor: 13 lépés (képekkel)
Videó: Последние новости из текущих дел! Последние новости! 📰 Давайте узнаем все вместе на YouTube. 2024, Június
Anonim
Image
Image
A KIM Uno - 5 eurós mikroprocesszoros fejlesztőkészlet -emulátor
A KIM Uno - 5 eurós mikroprocesszoros fejlesztőkészlet -emulátor
A KIM Uno - 5 eurós mikroprocesszoros fejlesztőkészlet -emulátor
A KIM Uno - 5 eurós mikroprocesszoros fejlesztőkészlet -emulátor

A KIM Uno egy hordozható, szoftverrel meghatározott fejlesztői készlet (retro) mikroprocesszorokhoz. De hadd mutassam be a gondolatot úgy, hogy visszamegyünk az időben:

Még 2018 végén jutott eszembe, hogy szeretnék egy kis hordozható mikroprocesszoros fejlesztői készletet építeni, akárcsak a MOS Technology, Inc. híres KIM-1-jét, és Chuck Peddle tervezte, aki szintén részt vett a 6502 CPU létrehozásában.

De a diszkrét logikai komponensekkel rendelkező "csupasz csont" fejlesztői készlet nem volt választható, mivel nagy tápellátásra volt szüksége (mivel ezek az ősi eszközök általában komoly áramot vesznek fel), és a fejlesztés is nagyon időigényes lenne. És most akarom!

Ezért a KIM Uno -t hordozható eszköznek terveztem, amely egy kézben elfér, és két CR2032 elemmel működik. A 8 MHz -en futó ATMega328p ("Arduino") mikrokontrollert használja a kívánt CPU emulálásához (vagy szimulálásához). Ez az architektúra gondoskodik arról is, hogy az emulált CPU -k bármivel felcserélhetők legyenek, ami a mikrokontroller flash memóriájába illeszkedik. Tehát ez egy többcélú eszköz.

Később véletlenül néztem egy nagyon jó előadást - The Ultimate Apollo Guidance Computer Talk (34C3) - a YouTube -on, ahol "One Instruction Set Computers" vagy OISC szerepel. Nem tudtam róluk, és ezt a tökéletes jelöltnek találtam a megvalósításhoz.

A KIM Uno egyetlen utasítással emulálja a CPU -t: subleq - kivonás és elágazás, ha kisebb vagy egyenlő nullával.

Ha követi velem ezt az utasítást, pillanatok alatt elkészítheti saját KIM Uno -ját. És a legjobb az egészben - azon kívül, hogy ízlés szerint módosíthatja - az, hogy elkészítése mindössze 4,75 euróba kerül (2018 végén).

Egy tipp: van egy Git adattár, amely tartalmazza az utasítás minden lépése által biztosított összes fájlt. Abban az esetben, ha módosítani szeretne néhány forrást, és megosztaná velünk mindazt, PR -t készíthet. De az összes fájlt egyszerre letöltheti onnan. Egyszerűen a https://github.com/maxstrauch/kim-uno oldalra. Kösz!

Van még egy nagyon érdekes projekt, ugyanaz (KIM Uno), amely a 6502 KIM Uno valódi mását készíti el. Nézze meg itt. Az alkotó még a készletet is értékesíti. Tehát, ha érdekli a 6502 és tetszik ez a projekt, akkor nézzen meg ott!

1. lépés: A NYÁK beszerzése

A NYÁK beszerzése
A NYÁK beszerzése
A NYÁK beszerzése
A NYÁK beszerzése

Amint láthatja, kihasználtam az alkalmat, és megterveztem egy NYÁK -t, és hagytam, hogy professzionálisan készüljön. Mivel a külső gyártás és a szállítás sok időt vesz igénybe (attól függően, hogy hol van a világon;-)), ezért az első lépés a megrendelés. Ezután folytathatjuk a többi lépést, amíg a NYÁK -t elkészítik és elküldik Önnek.

A PCBWay -n rendeltem PCB -ket Kínában, mindössze 5 dollárért. Nem részesülök semmilyen előnyből, ha a PCBWay -t bemutatom a PCB -k goto -gyártójaként, csak nekem jól működött, és lehet, hogy az Ön számára is. De megrendelheti őket bármely más helyen, például a JLCPCB -ben, az OSH Parkban vagy bármely helyi PCB -cégnél.

De ha hajlandó megrendelni őket a PCBWay-n, akkor letöltheti a mellékelt ZIP-fájlt "kim-uno-rev1_2018-12-12_gerbers.zip", és változtatás nélkül feltöltheti közvetlenül a PCBWay-re. Ez az eredeti fájl, amellyel megrendeltem a képeken látható PCB -ket.

Ha más gyártótól rendeli őket, előfordulhat, hogy újra kell exportálnia őket az eredeti KiCad forrásokból, mert ezeket a PCBWay specifikációi alapján készítettem. Az eredeti KiCad forrásokhoz töltse le a "kim-uno-kicad-sources.zip" fájlt, és bontsa ki.

De van még egy másik módszer is: ha nem akarja megrendelni a NYÁK -t, akkor saját verziót készíthet a perfboard vagy akár a kenyérlap segítségével.

Mindenesetre: mivel a PCB -k most úton vannak, a többi részre koncentrálhatunk! Gyere, kövess engem.

2. lépés: Az összetevők beszerzése

Az alkatrészek beszerzése
Az alkatrészek beszerzése
Az alkatrészek beszerzése
Az alkatrészek beszerzése
Az alkatrészek beszerzése
Az alkatrészek beszerzése

Most meg kell szereznie az alkatrészeket. Ehhez talál egy átfogó képet az összes szükséges alkatrészről és mennyiségről, ehhez a lépéshez csatolva, valamint egy BOM -ot (anyagjegyzék).

A BOM tartalmaz linkeket az eBay -hez. Bár ezeket az ajánlatokat le lehet zárni, amikor ezt elolvassa, kiindulópontként használhatja. A használt alkatrészek meglehetősen szabványosak.

A következőkben elmagyarázom az összes szükséges összetevőt:

  • 7x 1 kΩ ellenállás a hét szegmenses kijelzőhöz. Csökkentheti az értéket (pl. 470 Ω -ra), hogy ragyogóbb legyen, de ne csökkentse túlságosan, különben a LED -ek meghalnak, vagy az akkumulátor nagyon gyorsan lemerül. Rájöttem, hogy ez az érték működik nálam
  • 1x 10 kΩ, mint felhúzó ellenállás a mikrokontroller RESET vonalához
  • 1x 100nF kondenzátor az esetleges feszültségcsúcsok kiegyenlítésére (aminek nem szabad megtörténnie, mivel elemeket használunk, igaz, de jó mérésre …)
  • 1x ATMega328P a DIP-28 csomagban (általában ATMega328P-PU néven)
  • 1x a fő NYÁK - lásd az előző lépést; akár megrendelt, akár saját készítésű
  • 2x CR2032 elemtartó
  • 1x SPDT (egypólusú, dupla dobás) kapcsoló, amely alapvetően három érintkezővel rendelkezik, és mindkét állapotában (be vagy ki) két érintkezőt csatlakoztat
  • 20x tapintható nyomógomb a billentyűzethez. A NYÁK hátoldalának használatához SMD tapintható nyomógombokat használtam (a szabványos 6x6x6 mm -es gombokat) - elég könnyen forraszthatók, ahogy látni fogod
  • Választható: 1x 1x6 tűs fejléc a programozó csatlakoztatásához, de ez opcionális, amint később látni fogja
  • 1x hét szegmenses 4 számjegyű kijelző és 1x 7 szegmenses 2 számjegyű kijelző - a tábla csak 0,36 hüvelykes (9,14 mm) elemeket tartalmaz, közös anódos kábelezéssel. Mindkét követelmény fontos a működő egység megszerzéséhez. De ez a hét szegmenses kijelző is nagyon gyakori

Ehhez a lépéshez csatolva megtalálhatja a "komponent-datasheets.zip" fájlt, amely pontosabb információkat tartalmaz a használt alkatrészek méreteiről és típusairól. De a legtöbb alkatrész nagyon szabványos, és könnyen beszerezhető kis pénzért.

Most várnia kell, amíg minden alkatrész készen áll a forrasztás folytatására. Ez idő alatt már a végére ugorhat, és olvashat egy kicsit a KIM Uno használatáról, ha úgy tetszik.

3. lépés: A forrasztóeszköz áttekintése

A forrasztószerszám áttekintése
A forrasztószerszám áttekintése
A forrasztószerszám áttekintése
A forrasztószerszám áttekintése

A KIM Uno forrasztásához és elkészítéséhez szüksége van a képeken látható eszközökre:

  • Huzalvágó (az alkatrészhuzalok végének vágásához)
  • Lapos fogó
  • Csipeszpár
  • (tisztességes) Forrasztás, amely nem túl vastag - 0,56 mm -es forrasztót használok
  • Forrasztópáka - nem kell csúcskategóriás forrasztópáka (mert mi itt nem is rakéta tudományt folytatunk) - Én már régóta használom az Ersa FineTip 260 -at, és nagyon jó
  • Fluxus toll: fluxus hozzáadásával az alkatrészekhez és a párnákhoz sokkal könnyebb a forrasztásuk, mivel a forrasztóanyag önmagában "áramlik" a megfelelő helyre*
  • Opcionálisan: szivacs (fémgyapotból) a forrasztópáka számára

A KIM Uno későbbi programozásához szüksége lesz:

  • egy számítógépet az AVR-GCC eszköztárral és avrdude a firmware feltöltéséhez
  • internetszolgáltató (programozó) - amint az a képen is látható, az Arduino Uno -t használom internetszolgáltatóként egy speciális vázlattal -, így nincs szükség divatos hardver vásárlására

* szükség van némi emberi útmutatásra;-)

Kész vagy? A következő lépésben megkezdjük a KIM Uno összeszerelését.

4. lépés: Forrasztás #1: Ellenállások és kondenzátorok hozzáadása

Forrasztás #1: Ellenállások és kondenzátorok hozzáadása
Forrasztás #1: Ellenállások és kondenzátorok hozzáadása
Forrasztás #1: Ellenállások és kondenzátorok hozzáadása
Forrasztás #1: Ellenállások és kondenzátorok hozzáadása
Forrasztás #1: Ellenállások és kondenzátorok hozzáadása
Forrasztás #1: Ellenállások és kondenzátorok hozzáadása
Forrasztás #1: Ellenállások és kondenzátorok hozzáadása
Forrasztás #1: Ellenállások és kondenzátorok hozzáadása

Először mindig a legkisebb (az alkatrészek magasságát tekintve) alkatrészektől kezdve a legmagasabb alkatrészekig kell dolgoznia. Ezért kezdjük az ellenállások hozzáadásával és a hátul lévő lábak fölé hajlítással, hogy az ellenállások könnyen forraszthatók és a helyükön maradjanak. Ezután vágja le a hosszú vezetékeket.

Ezenkívül a képeken nem látható módon ugyanúgy adja hozzá a kis 100 nF kondenzátort.

Egy tipp: tartsa ezeket a drótlábakat egy kis tartályban, néha jól jönnek.

5. lépés: Forrasztás #2: A billentyűzet összeszerelése

Forrasztás #2: A billentyűzet összeszerelése
Forrasztás #2: A billentyűzet összeszerelése
Forrasztás #2: A billentyűzet összeszerelése
Forrasztás #2: A billentyűzet összeszerelése
Forrasztás #2: A billentyűzet összeszerelése
Forrasztás #2: A billentyűzet összeszerelése

A következő lépés a 20 SMD tapintható kapcsoló forrasztása. Mivel ez a munka kissé nehézkes, most csináljuk, amikor a NYÁK laposan fekszik a munkaasztalon.

Fentről lefelé (vagy balról jobbra, ha a nyomtatott áramkör a fényképeken látható módon) dolgozunk, és az első sorral kezdjük: válasszon egyet a négy párna közül minden egyes kapcsolóhoz, és nedvesítse meg a fluxustollal.

Ezután csipesszel ragadjon meg egy kapcsolót, és helyezze óvatosan a négy párnára. Ezután csak a kapcsoló lábát kell forrasztani, amely a kiválasztott és fluxussal készített párnán van. Ehhez az indulás előtt "meg kell ragadnia" egy vasalót a vasalóval. Ezzel a módszerrel végezze el az egész kapcsolósort, csak az egyik lábát forrasztva.

A nyilakkal ellátott kép nagyításban mutatja, hogyan történt pontosan a forrasztás.

Miután beforrasztotta az egész sort (csak egy csap), kis módosításokat végezhet úgy, hogy felmelegíti a csapot, és újra pozícionálja a kapcsolót. Győződjön meg arról, hogy a kapcsolók a lehető legjobban vannak beállítva.

Ha elégedett az igazítással, nedvesítse meg az összes többi tüskét a fluxustollal, majd forrasztja őket a forrasztópáka megérintésével, és egy kis forrasztással. Látni fogja, hogy a forraszanyagot közvetlenül a párnára szívják.

Körülbelül egy sor forrasztása után észre fogja venni, hogy felfogja, és nem olyan kemény, de ismétlődő. Tehát csak a többit végezze el, és pillanatok alatt kész billentyűzetet kap.

6. lépés: Forrasztás #3: Hét szegmenses kijelző, kapcsoló és csapfej

Forrasztás #3: a hét szegmenses kijelző, kapcsoló és csapfej
Forrasztás #3: a hét szegmenses kijelző, kapcsoló és csapfej
Forrasztás #3: a hét szegmenses kijelző, kapcsoló és csapfej
Forrasztás #3: a hét szegmenses kijelző, kapcsoló és csapfej
Forrasztás #3: a hét szegmenses kijelző, kapcsoló és csapfej
Forrasztás #3: a hét szegmenses kijelző, kapcsoló és csapfej

Most hozzáadhatja a kapcsolót és a tűfejlécet (opcionális) úgy, hogy az ujjával tartja, és forrasztja az egyik tüskét, hogy a PCB -hez tartsa, így forraszthatja a többi csapot, és végül hozzáérhet a kezdeti tartócsaphoz.

Vigyázzon arra, hogy ne égesse meg magát a forró forrasztópáka segítségével. Ha nem érzi jól magát, használhat egy kis szalagot (pl. Festő szalagot) az alkatrész rögzítéséhez. Így mindkét keze szabadon mozoghat.

A hét szegmenses kijelzőt ugyanúgy forrasztják (lásd az ábrát): behelyezi, kézzel vagy szalaggal fogja, és két ellentétes tűt forraszt, hogy a helyén maradjon, míg a többi csap forrasztható.

De legyen óvatos, és tegye a hét szegmenses kijelzőt a megfelelő irányba (a tizedespontokkal a billentyűzet felé). Különben bajban vagy…

7. lépés: Forrasztás #4: A mikrokontroller forrasztása

Forrasztás #4: A mikrokontroller forrasztása
Forrasztás #4: A mikrokontroller forrasztása

Most, hogy sok gyakorlata van, lépjen előre, és tegye be a mikrokontrollert úgy, hogy a tetején lévő bevágás (vagy az első csap) a kapcsoló felé nézzen. A lapos fogóval óvatosan kissé behajlíthatja a mikrokontroller lábait, hogy illeszkedjenek a NYÁK -on található lyukakhoz.

Mivel szorosan illeszkedik, szükség van némi szabályozott erőre a mikrovezérlő behelyezéséhez. Előnye, hogy nem esik ki. Ez azt jelenti, hogy időt szakíthat rá, és hátulról forraszthatja.

8. lépés: Forrasztás #5: Az elemtartók hozzáadása (utolsó lépés)

Forrasztás #5: Adja hozzá az elemtartókat (utolsó lépés)
Forrasztás #5: Adja hozzá az elemtartókat (utolsó lépés)
Forrasztás #5: Adja hozzá az elemtartókat (utolsó lépés)
Forrasztás #5: Adja hozzá az elemtartókat (utolsó lépés)
Forrasztás #5: Adja hozzá az elemtartókat (utolsó lépés)
Forrasztás #5: Adja hozzá az elemtartókat (utolsó lépés)

Végül hozzá kell adni az elemtartókat a hátlaphoz. Ehhez egyszerűen használja a fluxus tollat, és nedvesítse meg mind a négy párnát, majd tegyen forrasztást a vasalóra. Óvatosan igazítsa az elemtartót mindkét párnához. Az érintkezők mindkét végén azonos mennyiségű NYÁK lapnak kell láthatónak lennie. A vasalóval érintse meg a NYÁK lapot és az elemtartó lábát. A forrasztóanyag a párna alatt és fölött fog folyni, és a képen látható módon rögzíti a helyén. Ha problémái vannak ezzel, akkor további fluxust adhat hozzá a tollal.

9. lépés: Az emulátor villogása

Az emulátor villogása
Az emulátor villogása
Az emulátor villogása
Az emulátor villogása
Az emulátor villogása
Az emulátor villogása

A csatolt "kim-uno-firmware.zip" zip archívumban megtalálja az emulátor forráskódját, valamint egy már összeállított "main.hex" fájlt, amelyet közvetlenül feltölthet a mikrokontrollerre.

Mielőtt ténylegesen használhatná, be kell állítania a mikrovezérlő biztosítékbiteit úgy, hogy a belső 8 MHz -es órát használja, anélkül, hogy azt felére osztaná. A feladatot a következő paranccsal végezheti el:

avrdude -c stk500v1 -b 9600 -v -v -P /dev/cu.usbmodem1421 -p m328p -U lfuse: w: 0xe2: m -U hfuse: w: 0xd9: m -U efuse: w: 0xff: m

Ha nem ismeri az avrdude -t: ez egy program a programok mikrokontrollerre való feltöltésére. Itt többet megtudhat róla. Alapvetően telepíti, majd készen áll a használatra. A beállításhoz előfordulhat, hogy a "-P" argumentumát másik soros portra kell cserélnie. Kérjük, ellenőrizze számítógépén, hogy melyik soros portot használja (például az Arduino IDE -n belül).

Ezt követően ezzel a paranccsal villanhatja fel a firmware -t a mikrokontrollerre:

avrdude -c stk500v1 -b 9600 -v -v -P /dev/cu.usbmodem1421 -p m328p -U vaku: w: main.hex

Ismét: ugyanaz vonatkozik a "-P" -re, mint fent.

Mivel nem rendelkezem "professzionális" internetszolgáltatóval (rendszerbeli programozó), mindig az Arduino UNO-t (lásd a képet) és a csatolt vázlatot használom ("arduino-isp.ino", Randall Bohn). Tudom, hogy van újabb verzió is, de ezzel a verzióval nulla problémám volt az elmúlt öt évben, ezért megtartom. Csak működik. A vázlat fejlécében található megjegyzés segítségével megkapja a pinoutot az Arduino UNO -n, és a KIM Uno vázlatát (lásd a mellékeltet) megkaphatja a KIM Uno 1x6 ISP fejlécének pinoutját. A négyszögű csap a hét szegmenses kijelző közelében az 1 -es (GND). A következő csapok (a megfelelő sorrendben): RESET, MOSI, MISO, SCK, VCC. A VCC -t 3V3 -ra vagy 5V -ra is csatlakoztathatja.

Ha nem adta hozzá az 1x6 tűs fejlécet, használhat kenyeretábla vezetékeket, és behelyezheti őket a csatlakozólyukakba, és az ujjával megdöntheti őket - ahogy a képen is látható. Ez elegendő kapcsolatot teremt a firmware villogásához és a biztosítékok beállításához. De ha egy tartósabb beállítást szeret, feltétlenül hozzá kell adnia az 1x6 tűs fejléceket.

Két eszközöm van: a pin -fejlécek nélküli gyártási verzió és a pin -fejlécekkel ellátott fejlesztői verzió, amelyeket csatlakoztatva hagyok, és a fejlesztés során újra és újra használok. Ez sokkal kényelmesebb.

10. lépés: Kész

Befejezett
Befejezett
Befejezett
Befejezett

Most befejezte és elkezdheti papírra írni saját subleq programjait, összeszerelni, majd beírni a memóriába.

A KIM Uno előre programozott Fibonacci számítással érkezik, amely a 0x0a memóriahelyről indul. Alapértelmezés szerint n = 6 -ra van állítva, tehát 8 -as értéket kell eredményeznie. Nyomja meg a "Go" gombot a számítás elindításához.

11. lépés: PCB tervezési elemzés

PCB tervezési elemzés
PCB tervezési elemzés
PCB tervezési elemzés
PCB tervezési elemzés

A projekt befejezése után találtam néhány olyan pontot, amelyek figyelemre méltóak, és amelyekkel a testület új felülvizsgálata során foglalkozni kell:

  • az ATMega328p selyemképernyőjén nincs a szokásos bevágás, ahol az első csap található. A DIP-28 lábnyomnak nincs négyzet alakú párnája, ahol az első csap található. Ezen mindenképpen javítani kell egy részletesebb selyemszitán, hogy elkerüljük a zavart
  • az internetszolgáltató fejlécén nincsenek csatlakozási címkék a selyemképernyőn. Ez megnehezíti annak felismerését, hogyan kell csatlakoztatni az internetszolgáltatóhoz
  • az internetszolgáltató fejléce 2x6 tűs fejléccé változtatható, szabványos tűelrendezéssel, az esetleges összetévesztések elkerülése érdekében

Ezeket a pontokat leszámítva nagyon örülök, hogy hogyan sikerült és működött az első próbálkozás.

12. lépés: Hogyan programozható az SUBLEQ?

Image
Image
Hogyan programozható a SUBLEQ?
Hogyan programozható a SUBLEQ?
Hogyan programozható a SUBLEQ?
Hogyan programozható a SUBLEQ?

Amint azt az elején említettük, a KIM Uno jelenlegi firmwareje emulálja az One Instruction Set Computer (OISC) számítógépet, és megadja a subleq utasítást a számítás végrehajtásához.

A subleq utasítás kivonást és elágazást jelent, ha kisebb vagy egyenlő nullával. Az álkódban ez a következőképpen néz ki:

subleq A B C mem [B] = mem [B] - mem [A]; if (mem [B] <= 0) goto C;

Mivel a KIM Uno 8 bites gépet emulál, az összes A, B és C argumentum 8 bites érték, és így képes a teljes 256 bájtos fő memóriára. Nyilvánvalóan ezt ki lehet terjeszteni az A, B és C többbájtos értékeivel. De most legyünk egyszerűek.

A KIM Uno "perifériákkal" is rendelkezik: a kijelzővel és a billentyűzettel. Memórialeképezett architektúrát használ a perifériák illesztéséhez, bár a memória térkép nagyon egyszerű:

  • 0x00 = a Z regiszter (nulla), és nullában kell tartani.
  • 0x01 - 0x06 = hat bájt, amelyek az összes megjelenítési szegmens értékét jelzik (jobbról balra). 0xf érték - további részletekért lásd a forráskódot (main.c).
  • 0x07, 0x08, 0x09 = három bájt, ahol minden bájt két hét szegmenses megjelenítést jelent (jobbról balra). Ezek a memóriahelyek lehetővé teszik az eredmény egyszerű megjelenítését anélkül, hogy az eredményt két részre bontanák, és a 0x01 - 0x06 egyjegyű memóriahelyekre helyeznék.
  • 0x0a+ = Egy program 0x0a -tól indul. Jelenleg a "Go" billentyű 0x0a fixről fut.

Ezekkel az információkkal most lehet programot írni az assemblerben, és beírni az utasításokat a memóriába, majd végrehajtani. Mivel csak egy utasítás van, csak az argumentumokat (A, B és C) kell megadni. Tehát három memóriahely után a következő utasítás argumentumok kezdődnek és így tovább.

Ehhez a lépéshez csatolja a "fibonacci.s" fájlt, valamint a kézzel írt program képét, amely a Fibonacci példamutatása. De várjon: három utasítást használnak - különösen az ADD, a MOV és a HLT -, amelyek nem subq. "Mi az üzlet? Nem azt mondta, hogy csak egy utasítás van, subleq?" kérdezed? Ez nagyon egyszerű: a subleq segítségével nagyon könnyen utánozhatja ezeket az utasításokat:

A MOV a, b - adatok másolása az a -b helyen a következőkből állhat:

  1. subleq b, b, 2 (következő utasítás)
  2. subleq a, Z, 3 (következő utasítás)
  3. subleq Z, b, 4 (következő utasítás)
  4. subleq Z, Z, pl. 5 (következő utasítás)

A subleq kivonási funkciójának használatával, amely mem - mem [a] memóriát végez, és felülírja a mem memóriát az eredménnyel, az érték a nulla regiszter segítségével másolódik. És "subleq Z, Z,…" egyszerűen visszaállítja a nulla regisztert 0 -ra, függetlenül Z értékétől.

HOZZÁADÁS a, b - hozzáadja az a + b értékeket, és tárolja az összeget b -ben:

  1. subleq a, Z, 2 (következő utasítás)
  2. subleq Z, b, 3 (következő utasítás)
  3. subleq Z, Z, pl. 4 (következő utasítás)

Ez az utasítás egyszerűen kiszámítja a mem - (- mem [a]) mem -et, amely mem + mem [a], a kivonás funkció használatával is.

HLT - leállítja a CPU -t és befejezi a végrehajtást:

Értelemszerűen az emulátor tudja, hogy a CPU le akar állni, ha 0xff értékre ugrik (vagy -1, ha be van kapcsolva). Tehát egy egyszerű

suqq Z, Z, -1

elvégzi a munkát, és jelzi az emulátornak, hogy véget kell vetni az emulációnak.

E három egyszerű utasítás segítségével a Fibonacci algoritmus megvalósítható és jól működik. Ez azért van, mert az OISC mindent kiszámíthat, amit egy "igazi" számítógép csak a subleq utasítással tud kiszámítani. De természetesen sok kompromisszumot kell végrehajtani - például a kód hosszát és sebességét. Mindazonáltal ez egy nagyszerű módja annak, hogy megtanuljon és kísérletezzen az alacsony szintű programozással és a számítógépekkel.

Ehhez a lépéshez csatolva megtalálhatja a "kim_uno_tools.zip" zip archívumot is. Tartalmaz néhány alapvető összeszerelőt és szimulátort a KIM Uno számára. NodeJS nyelven íródtak - győződjön meg róla, hogy telepítette.

Programok összeállítása

Ha megnézi a "fibonacci/fibonacci.s" oldalt, azt találja, hogy ez a tárgyalt fibonacci megvalósítás forráskódja. Ha össze szeretné állítani és programot szeretne készíteni belőle, amelyet a KIM Uno futtathat, írja be a következő parancsot (a kibontott "kim_uno_tools.zip" archívum gyökerében):

csomópont összeszerelése.js fibonacci/fibonacci.s

és vagy hibát nyomtat, ha hibázott, vagy kiszórja a kapott programot. A mentéshez másolja a kimenetet, és mentse el egy fájlba, vagy egyszerűen futtassa ezt a parancsot:

csomópont összeszerelése.js fibonacci/fibonacci.s> saját fájl.h

A kimenet úgy van formázva, hogy közvetlenül beilleszthető a KIM Uno firmware -be C fejléc fájlként, de a szimulátor is használhatja a szimulációhoz. Egyszerűen írja be:

csomópont sim.js yourfile.h

A kijelzőn megjelenik a szimuláció eredménye és a KIM Uno -tól elvárt kimenet.

Ez egy nagyon rövid bevezető volt az eszközökhöz; Javaslom, hogy játsszon velük, és nézze meg, hogyan működnek. Így mély ismereteket szerezhet és megismerheti a CPU-k, utasítások, összeszerelők és emulátorok működési elveit;-)

13. lépés: Outlook

Outlook
Outlook
Outlook
Outlook
Outlook
Outlook

Gratulálunk

Ha ezt elolvassa, valószínűleg végigment ezen az utasításon, és elkészítette saját KIM Uno -ját. Ez igazán szép.

De az utazás itt még nem ér véget - végtelen sok lehetőség van arra, hogyan módosíthatod a KIM Uno -t, és testreszabhatod az igényeidnek és ízlésednek megfelelően.

Például a KIM Uno -t fel lehet szerelni egy "valódi" retro CPU emulátorral, amely a híres MOS 6502 vagy Intel 8085, 8086 vagy 8088 modelleket emulálná. Akkor az első elképzelésemhez vezetne, mielőtt megismerkedtem az OISC -kkel.

De vannak más felhasználási lehetőségek is, mivel a hardver kialakítása meglehetősen általános. A KIM Uno használható…

  • … Egy távirányító pl. CNC -khez vagy más eszközökhöz. Lehet, hogy vezetékes vagy infravörös diódával vagy más vezeték nélküli küldővel van felszerelve
  • … Egy (hexadecimális) zsebszámológép. A firmware nagyon könnyen adaptálható, és a kártya kialakítását nem kell nagyon megváltoztatni. Lehet, hogy a szitanyomás alkalmazkodik a matematikai műveletekhez, és eltávolítható a szegmensek közötti rés. Ettől eltekintve már készen áll erre az átalakításra

Remélem, ugyanolyan jól szórakozott a KIM Uno követésében és remélhetőleg építésében, mint én terveztem és terveztem. És ha meghosszabbítja vagy módosítja - kérjük, tudassa velem. Egészségére!

NYÁK -verseny
NYÁK -verseny
NYÁK -verseny
NYÁK -verseny

Második hely a NYÁK -versenyen

Ajánlott: