Autor projektu zawsze był zafascynowany rozwojem technologii komputerowych, projekt emulatora pokazuje jak wydajne są obecne mikrokontrolery, na płytce Arduino Uno udało się zrealizować emulację 8 bitowego komputera z lat '80.
Autorem Apple II był Steve Wozniak, konstrukcja została zaprojektowana w 1977 oraz miała zapewnić tani komputer osobisty na rynek konsumencki.
Pierwsze wersje Apple II wyposażone były w 4kB RAM dzielonej z systemem graficznym oraz CPU 6502 taktowany zegarem 1MHz. System graficzny pozwalał na wyświetlanie tekstu w 40 kolumnach i 24 wierszach a także grafikę w rozdzielczości 280x192 pikseli.
Pierwszym krokiem autora w budowie emulatora było zapewnienie emulacji procesora 6502. Emulowanie 6502 było znacznym wyzwaniem, kod został napisany w czystym C, aby zapewnić wydajność i oszczędność pamięci. Zestaw instrukcji 6502 jest dość prosty, każdy opcode jest długości 8 bit, jest 56 różnych instrukcji i 13 trybów adresowania. Większość instrukcji działa w większości trybów adresowania.
Po sprawdzeniu poprawności emulacji 6502 autor przeszedł do kolejnego kroku, systemu generowania grafiki z wykorzystaniem mikrokontrolera na płytce Arduino Uno, który w standardowym zastosowaniu wykorzystywany jest do komunikacji USB (więcej o pomyśle w opisie wcześniejszego projektu GhettoVGA).
Autor wykorzystał starą klawiaturę PS/2, zamiast pamięci taśmowej został zastosowany smartfon z aplikacją nagrywającą oraz odtwarzającą dźwięki, obsługa interfejsu pamięci masowej została napisana natywnie w kodzie dla AVR.
Emulator oparty o Arduino Uno pracował 5 - 8x wolniej niż MOS 6502 taktowany zegarem 1 MHz.
Ostatecznym testem było uruchomienie na emulatorze programu wyświetlającego fraktal.
Autor zaprezentował działanie emulatora w krótkim filmie,
http://static.dpeckett.com/apple/stream.mp4
więcej informacji znajdziecie w materiale źródłowym.
Źródło:
http://dpeckett.com/turning-the-arduino-uno-into-an-apple
Fajne? Ranking DIY
