9.0 TOTAL SCORE

Olimex NEO6502

STEM
Kvalitet izrade 8
Implementirana tehnologija 8
Ease-of-use 10
Odnos cena/performanse 10
Pros
  • Pravi 6502 procesor obezbeđuje verne tajminge i procesorsku kompatibilnost na nivou bita
  • RP2040 podmađuje periferije modernim HDMI i USB-A portovima
  • Cena je veoma konkurentna za ono što platforma pruža
  • Odličan NeoBasic
  • Laka zamena firmvera prostim kopiranjem uf2 fajla
  • UEXT konektor za RP2040 GPIO signale i 40 pinski za sve 6502 pinove
Cons
  • Dodatni USB HUB je neophodan i treba da bude deo kompleta
  • Literatura je i za open source comunity ipak previše raštrkana po internetu
Bottomline

Olimex NEO6502 je u isto vreme retro računar baziran na WDC W65C02 procesoru sličan legendarnom Apple ][, Commodore PET ili VIC-20 sa modernim periferijama poput HDMI i USB-A portovima,  ali i razvojnog sistema za 6502 procesore zbog prisustva 40 pinskog GPIO porta na kome su izvedeni svi pinovi procesora.

Sećate li se dana u drugoj polovini 80-tih prošlog veka kada se programiralo u BASIC-u? Tada su samo izabrani „hakeri“ posedovali poneku tajnu knjigu, po pravilu fotokopiranu, sa specifikacijom procesora i njegovim mašinskim komandama. Pisali smo tada introe i brojali svaki takt procesora ne bismo li u njega ukodovali još jednu komandu. 64 KB memorije smatralo se prihvatljivo, a 128 KB zaista puno, dovoljno da se smesti i operativni sistem i BASIC i korisnički program. Obožavali smo i plašili se gotovo sujeverno komandi SYS, PEEK i POKE i brojeve koji su sledili čuvali smo i krili od drugih. Naše programerske neuspehe pravdali smo nedostatakom jakog računara na kome bismo mogli da pokrenemo emulatore naših ljubimaca da bismo iskompajlirali programe. Jedna od urbanih legendi računarstva koje je prvi put postalo dostupno masama. A onda je Intel svojom X86 arhitekturom i idejom hardverske otvorenosti pokvario svu romantičnu kreativnost i standardizacija je pobedila. I kao što obično i biva izgubili smo svaku lepotu individualne raznolikosti zarad napretka koji je obećavao jednakost koja se pretvorila u oponašanje. Olimex NEO6502 je beg u trenutak pre unifikacije. On nas vraća tehnologijom procesora u 1975. godinu kada je mali MOS Technology tim izdao prvi 6502 procesor, kao pojednostavljenu verziju Motorola 6800. Bio je to osmobitni procesor, u isto vreme brži i jeftiniji od svog uzora, idealan za predstojeću eru omasovljenja kućnih računara. Prvi hrabri korak bila je izgradnja Apple I računara, pa već sledeće 1976. pojavila su se dva poznatija: Commodore PET i Apple ][. Oni su bili samo uvod u niz koji je ispisivao istoriju kućnih kompjutera: Atari 8-bit computers, Acorn Atom, BBC Micro i VIC-20. Ovaj potonji je 1982. poklonio svoj dizajn i zamenio procesor sa tada inovativnim 6510 kako bi nastao najprodavaniji kućni računar svih vremena, legendarni Commodore 64.

Od tada je proteklo pet decenija i u razvoj računarske tehnologije uloženo je beskrajno mnogo sredstava i ljudskih resursa. Sve tehnološke specifikacije tadašnjih procesora danas nisu uporedive ni sa čipovima u USB habovima, digitalnim olovkama ili kontrolerima gejmerskih miševa, a kamoli sa moćnim jezgrima procesora modernih AMD64, ARM ili RISC-V arhitektura. Olimex pri stvaranju NEO6502 ipak nije ostao potpuno veran starom putu i inženjerska sloboda njegovog tima iskoristila je istorijsko sećanje koristeći pravi hardverski 6502 procesor u novoj W65C02 i bržoj verziji i spojila ga sa aktuelnim kumunikacionim i multimedijalnim tehnologijama koje je implementirao na RP2040 mikrokontroleru. Dobili su kompaktan retro računar izbegavši da podvale emulaciju hardvera procesora. Hardverska kompatibilnost je time zagarantovana na nivou bita.

Hardver NEO6502

Glavni mikroporcesor je The Western Design Center INC W65C02S6TQG-14. WDC je kompanija iz Arizone koja se još od 1978. godine bavi 65xx arhitekturom. Ovaj čip je 44 pinskom PLCC kućištu i poseduje sve hardverske karakteristike originalnog 6502 čipa: 8 bitnu data magistralu, 16 bitnu adresnu magistralu koja može adresirati do 64 KB memorije i I/O prostora koristeći 16 adresnih modova, ali i brzinu od 6.25 MHz sa mogućnošću overkloka čak na 16 MHz. Implementirano je 69 komandi promenjive dužine, a Data Sheet se može preuzeti sa WDT sajta. Na sajtu se mogu pronaći i razvojni sistemi za celu liniju WDC 65xx. Savetujemo da proučite priču ove kompanije, jer ona sama jeste neodovjivi deo računarske istorije.

W65C02 procesor

photo: magazin Mehatronika

Prisustvo pravog 6502 procesora sa mogućnošću varijabilnog softverski kontrolisanog takta u rasponu od 1 MHz do 6.25 MHz garantuje da će se svaka komanda izvršavati sa identičnim tajmingom kao na originalnom hardveru u zavisbosti od njegove brzine. Ideal kome FPGA emulirani procesori teže ovde je zadat početnim uslovima. Može biti zbunjujuće što je originalni CPU u svoje vreme pakovan u 40 pinski PDIP, dok je iskorišćeni procesor u 44 pinskom PLCC-u. Četiri dodatna pina, od kojih su dva NC nisu iskorišćena nigde. Dva preostala su PHI2O koji se generiše iz ulaznog signala sistemskog takta PHI2, a PHI1O je njemu invertovan signal. Ova tri međusobno izvedena signala su se koristila u starijim sistemima gde se za sistemski tajming i rad unutrašnjeg oscilatora koristio spoljni kristal. Jasno je što se Olimax odlučio da ova dva signala ne poveže, niti da ih izvede na 40 pinski 6502 BUS heder.

screen shot: WDC & Olimex datasheet pdf

Olimex NEO6502 ploča

photo: magazin Mehatronika

40 pinski heder se proteže celom dužinom jedne strane ploče i standardne je veličine, kao kod Raspberry Pi-a, što znači da ćete moći da koristite ne samo pojedinačne kablove, već i 40 pinske trakaste kablove kojima sve signale sa 6502 procesora možete da razvedete na proto ploču pri realizaciji vašeg projekta. U edukativne svrhe, ukoliko želite da se upoznate sa pravim 6502 na ovaj način možete koristiti NEO6502 kao razvojni sistem i pristupiti svim pinovima ovog procesora. Jedna napomena ovde mora da se da: pinovi 2 i 4, sa oznakama SWDIO i SWCLK ne pripadaju 6502, već RP2040 i to su pinovi za pristup Serial Wire Debug multi-drop bus-u kojim se pristupa RP2040 procesoru i služe za download koda. Jasne oznake svih pinova date su na poleđini ploče.

Puno informacija na poleđini Olimex NEO6502

photo: magazin Mehatronika

Još jedan heder se nalazi na ploči, manji je, ima svega 10 pinova i nosi oznaku UEXT. I on je označen sa donje strane ploče, a izbor funkcija nekih od njih može se vršiti prebacivanjem četvorostrukog dip prekidača sa gornje strane ploče. Ovaj heder je vezan za RP2040, a ne za 6502 i pored dva napojna pina čini ga još osam I/O pinova sa UART, SPI i I2C signalima koji se koriste za povezivanje većeg broja Olimex UEXT ekspanzionih modula. Uglavnom su u pitanju različiti tipovi senzora, LCD, LED matrica, Bluetooth, ZigBee, Wi-Fi, GPS, GSM modula, releja, RFID, RTC i drugih ulazno/izlaznih uređaja, a pregled na Olimex sajtu je zaista impresivan.

RP2040 je 32-bitni ARM Cortex-M0+ procesor na 133 MHz sa hardverski implementiranim state mašinama sa 2 MB FLASH-a u koji je moguće smastiti čak 20 nekadašnjih disketa koje je recimo koristio Apple ][ računar. Zbog svoje snage i realizacije hardvera, odlične softverske i hardverske podrške i velikog broja korisnika koji doprinose razvoju prilagođenih rešenja ovaj MCU je odličan izbor u ovom slučaju. Nekadašnji kućni računari, a jedan takav upravo i treba da oponaša NEO6502, bili su bazirani na procesoru kao što je 6502 i velikoj količini hardvera koji je obezbeđivao kontrolu ulaznih uređaja, pre svega tastature i džojstika, audio i video izlaze za prikaze na ekran i linije za povezivanje skladišta podataka, što su u to vreme obično bile kompakt kasete, a kasnije i disk jedinice. Neke specifičnosti tadašnjih računara mogle su biti i MIDI linije, posebni portovi za EEPROM kertridže, ali i serijski ili paralelni konektor za povezivanje štampača. Sve ove funkcije, u ovom slučaju poverene su RP2040. Zanimljivo je da je i manipulacija memorijom poverena RP2040 iako 6502 može obavljati taj posao.

RP2040 na Olimex NEO6502

photo: magazin Mehatronika

Olimex na jednom mestu navodi, da je jedan od glavnih razloga za izbor baš ovog MCU što se u mejkerskoj zajednici pojavio Bitbanged DVI rešenje pocoHDMI za prikaz slike preko HDMI-a  sa rezolucijom 640×480 tačaka i 16 bita za kodovanje boja. Za ovaj posao koristi se jedno od dva M0+ jezgra RP2040 sa oko 60% snage. Generalno govoreći, MCU nemaju video izlaz i gotovo rešenje je ovde dobrodošlo. Olimex NEO6502 je i inače otvoreni hardver, čiji razvoj podržava zajednica otvorenog koda i takvo rešenje je u skladu sa filozofijom deljenja znanja.

Na HDMI izlazu se u NeoBasic-u dobija može dobiti recimo 800×600 piksela pogodno za Apple ][ ili 960×540 piksela za emulaciju Oric Atmos-a. Sledeći je USB-A konektor pogodan za povezivanje eksternog diska za smeštaj programa, ali i za prebacivanje uf2 fajla sa kernelom za RP2040. RP2040 je i ovde dobro rešenje jer u sebi ima hardverski USB kontroler.

Zvuk se može dobiti preko bazera na ploči, ali i preko ugrađenog 3,5 mm audio izlaza. Bazer označen sa SPK1 može se isključiti prebacivanjem dip prekidača sa donje strane ploče. picoSID je softver koji pokrenut na RP2040 generiše zvuk nalik SID čipu, tako da je iskorišćena softverska emulacija muzičkog čipa.

Na kraju ploče nalazi se USB-C konektor koji služi za povezivanje 5 VDC napajanja.

photo: magazin Mehatronika

Ako se odlučite za nabavku ovog retro računara, već pri prvom korišćenju uvidećete da vam je jedan USB-A port dovoljan samo za tastaturu. Svako korišćenje eksternog diska i u slučaju retro gejminga jednog ili dva kontrolera zahtevaće USB HUB. Sam Olimex tim na sajtu napominje da nisu svi USB HUB-ovi kompatibilni i predlažu da prvo isprobate neki koji imate, a ukoliko kupujete, kupite njihov. Mi smo u kompletu sa NEO6502 i kućištem sa plavim logom za potrebe ove recenzije od proizvođača dobili i njhov USB razdelnik. Povezuje se USB-A na USB-C kablom i kada je pod naponom iznutra sija lepa zelena LED. Veoma ukusno rešenje. Cena NEO6502 je $30, kućište je dodatnih $8, a USB HUB je još $8. Ukupno sistem u punoj verziji košta $46 što ga čini jednim od nejjeftinijih retro računara na tržištu. Zanimljiv je i novi kompakan model sa 7″ LCD ekranom rezolucije 800×480 piksela, ugrađenom baterijom i tastaturom po ceni od $128.

photo: magazin Mehatronika

Softver

Osnovna ideja retro računara je da oponaša originalne računare na hardverskom nivou toliko verno da originalni softver radi identično kao na uzoru. Dva su pristupa tom problemu. Jedan je hardverska emulacija na nekoj od FPGA ploča. Koliko god bio kvalitetan FPGA model, on ipak oponaša rad pravog hardvera i smatra se kompromisom. Deo hardverske verodostojnosti žrtvovan je zarad mogućnosti da se na istom hardveru emulira veći broj različitih procesora prostom zamenom FPGA modela.

Korišćenje originalnog procesora, ovde modernog klona 6502 sa varijabilnim softverski kontrolisanim taktom, obezbeđuje potpuno identičan rad, tajminge i oponaša svako ponašanje originala na nivou bita. Kompromis na ovom modelu je u pratećem hardveru, jer se umesto složenih kola koristi jedan RP2040. Ako idemo u detalje, jedini način da imate verni osećaj rada na nekadašnjem kučnom računaru je da posedujete jedan takav primerak. Ugođaj nije samo u procesoru, već i u osećaju dok se koristi tastatura, premotava kompakt kaseta eksternog drajva ili sluša zvuk iz SID čipa. I tako za svaki model nekog od retro računara. Kompromis da na jednoj platformi možete pokrenuti nekoliko različitih softverskih emulatora sa operativnim sistemima ili igricama iz davnina i zahtev da ponašanje procesora bude autentično je ono što ćete dobiti ovim, ali i gotovo svim drugim modelima modernih retro računarskih platfromi.

Olimex Neo6502 dolazi sa Bitsy Bye program lančerom koji se može pokrenuti na svim računarima sa 6502, 65c02 i 65816 računarima. Pored ProDOS-a koji se pokretao na Apple ][ računaru, tu je nekoliko igrica za ovu platformu.

screenshot: NEO6502 BITSY BYE

Možda je jedna od najpoznatijih Donkey Kong koga smo toliko puta igrali u luna parkovima koji su posećivali gradove tih dalekih godina i zbog kojih smo kupovali veliku količinu žetona.

screenshot: NEO6502 game

Na sajtu NEO6502 može se naći još nekoliko dobrih emulatora, kao što je Mad-Pascal, CP/M 65, TalyForth2, EHBasic koga je uradio Rien Matthijsse, kao i već pomenuti Apple ][ i Oric Atmos emulator iza koga stoji Veselin Sladkov. No ono što je najveća zvezda među njima je Paul Robson-ov Neo6502 BASIC i online emulator za njega (link na sajtu nije ispravan, koristite naš).

Ovde moramo istaći jednu veliku prednost koja proizilazi iz korišćenja RP2040. Naime, zamena firmvera se svodi na tri jednostavna koraka. U prvom NEO6502 skinete sa USB-C napajanja i pritisnete BOOT dugme. U drugom, držeći i dalje dugme povežete NEO6502 preko USB-A kabla za USB-A port vašeg računara. Time će se platforma prijaviti kao dodatni USB disk na vašem PC-u. Treći korak je najjednostavniji, samo prekopirajte uf2 fajl u root tog USB diska i on će se sam restartovati u novom ruhu. Koristite USB-A na USB-A kabl, a ako na računaru imate samo USB-C portove, koristite USB-C na USB-A konvertor na koji treba povezati kabl. Mi nismo uspeli da sistem prijavimo na PC ukoliko bi koristili USB-C na USB-A kabl, jednostavno ta „direktna“ veza ne radi.

Za razliku od današnjih računara, prvi kućni kompjuteri su po pravilu dolazili sa operativnim sistemom koji bi pokretao BASIC i koji se obično nalazio u ROM-u na ploči ili eksternom EEPROM-u. Ali, postojali su i EEPROM-i sa programima i igricama koji bi se startovali automatski prilikom uključenja. Kod NEO6502 za tu svrhu koristi se 2 MB FLASH povezan sa RP2040.NeoBasic ili EHBasic u ovom slučaju se smeštaju upravo tamo. Kopiranjem njihovog uf2 fajla u root platforme, oni analogno današnjim operativnim sistemima podižu računar i startuju se omogućavajući da korisnik u njima radi do sledećeg gašenja računara.

Screen shot: NeoBASIC

NeoBASIC se nametnuo kao zvaničan BASIC ove platforme. Dobro je dokumentovan, a što je mejkerima veoma bitno implementirane su komande za kontrolu pinova. Da bi pravilno radio, potrebno je priključiti ili USB disk, ili modul sa SD karticom koji se povezuje preko UEXT porta i kupuje zasebno. Veći broj programa već je u direktorijumu sa primerima i oni će svakako olakšati sve nedoumice. Nas je u prošlost vratio dobro poznati Raytrace programčić. Radi sporo, kako i može u interpreteru na ovako tanušnom procesoru, ali je rezultat nama bio očaravajuće poznat već četrdesetak godina.

Screenshot: Raytrace demo

Zaključak

Korišćenje poznate RP2040 platforme, nalik na Raspberry Pi Pico 2 je odlična startna tačka za razvoj sopstvenog proizvoda. U ovom slučaju iskorišćena je prednost brojne zajednice otvorenog koda koja je do sada rešila gotovo sve izazove na ovom MCU-u, pa čak i način da se dobije video izlaz na dodatnom HDMI portu bez ikakvog integrisanog GPU-a u ovom mikrokontroleru.

WDC, budući da je bitan deo istorije 65xx procesora potvrđuje sentimentalnom autentičnošću da je izbor njihovog W65C02 pravi za izradu retro računarske platforme. Ona je time divan spoj modernog i arhaičnog u svakom smislu.

Dopada nam se dvojnost ove platforme. U istom trenutku to je retro računarska platforma, a opet i razvojni sistem za 6502 procesor sa svim izvedenim pinovima pogodan za razvoj prilagođenog hardverskog rešenja. Možete ga iskoristiti za edukativne svrhe i ući u detalje istorijski bitnog 6502 procesora na pravom primerku istog. Možete čak za tu platformu pisati programe u Mad-Pascal-u na vašem PC-u, kroskompajlirati ih i startovati na originalnom hardveru i time ispuniti onu urbanu legendu sa početka teksta, ali ga možete koristiti i za retro gejming i podsećanje na dane računarskih zanosa kada su se računari po prvi put spustili u narod koji je umeo da živi bez njih, za razliku od nas danas.

Aleksandar Dakić
Follow me