Próbapanelen összehuzalozott Z80 számítógép

 ( trey | 2018. szeptember 9., vasárnap - 8:26 )

Dokumentáció megtalálható a GitHub-on.

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

Kis nosztalgia ... régen és ma:

1980-as évek:
7 MHz-es órajel, lassítva azzal, hogy több órajel/utasítás az architektúra hatékonysága.
128 kB RAM és 16 kB ROM
8 bites CPU ... 32 bites integeres ill. float-os szorzás főleg hardverszorzó hiányában lassú folyamat.
Lásd még 8 bites és 16 bites szorzást: http://sgate.emt.bme.hu/patai/publications/z80guide/part4.html
(Megjegyzem, C64 1 MHz alatti órajele ennél is lassabb számolást tett lehetővé.)

3 évtizeddel később:
32 bites, integeres és floating pointos hardverszorzó
200 MHz feletti órajel, gyorsítva azzal, hogy több utasítás/órajel az architektúra hatékonysága
512 kbyte RAM, 2 MByte Flash

És ez utóbbi "csak" egy egytokos mikrovezérlő: https://www.st.com/en/microcontrollers/stm32f7-series.html

Azt kihagytad, hogy a 30 évvel későbbi változat kb. 50-ed annyit fogyaszt és vagy 200× olcsóbban előállítható. De ekkora fejlődés el is várható ennyi idő alatt. Igazából még nagyobb fejlődés volt, az első, 1976-os Z80-as csak 2,5 MHz-en ment, és gondolom így 2018-ra, 42 évvel később vannak már 200 MHz-nél gyorsabb klónok is, bár az ilyenek nem mindig kompatibilisek 100%-ban. Amit linkeltél, az egy ARM proci.

Sokkal hatékonyabb egy tetszőleges ARM, x86, x64-es rendszeren SIMH, ZEMU, z80pack vagy hasonló Z80/8080 kompatibilis emulátorban szoftveresen futtatni ezeket. Akkor lesz 64 bites integer meg 80 bites double precision floating point, akár 2-5 GHz órajel, több mega CPU cache, meg sok giga RAM/SSD. Bár az ilyen Z80-as projekteknek nem kell sok kraft, a modern klónokon is több százszor gyorsabban futnak, egy modern x64-es procin már milliószor. Ha annyira a kódon kell gyorsítani, érdemes újraimplementálni a Z80-as kódot natív, nem emulált kóddá, úgy meg akkor akár az is megoldható, hogy az egész egy modern CPU L1 cache-be beleférjen (L2-be emulátorostól együtt). Ha olyan kód, akár modern GPU-ra átültetve még tovább is gyorsítható. Az egész maximum cirkuszi mutatványnak jó, hogy hány milliószorosára gyorsítható a kód, gyakorlati haszna nincs. Legfeljebb a fejlődést lehet vele pontosabban lemérni. Főleg, ha a teljesítmény/W vagy teljesítmény/nm, MIPS vagy MFLOPS per ár, stb. mutatókat nézed.

Már nem csak a 1976-os Z80-at haladták túl ilyen brutálisan, de pl. az 1975-ös Cray1 szuperszámítógép szintjét is több ezerszeresen egyszerű desktop/szerver gépeken, itt most szándékosan nem is mai szuperszámítógépet írok, tisztességtelen lenne az összehasonlítás. De a Cray1 szintjét már 25 évvel ezelőtti asztali/workstation procik is verték, a maiak meg az utóbbiakhoz is négyzetesnél erősebben viszonyulnak.


No keyboard detected... Press F1 to run the SETUP

A szoftveres emulátorok órajelciklusra kompatibilisek? Mert nem egy alkalmazás olyan, hogy ezt is tudnia kell az alatta lévő hardvernek. És ez sokszor fontosabb, mint a futási sebesség (azaz adott kód futásának a valós ideje).

Z80-as ciklusra tökéletes emulátorok vannak jó ideje, meg FPGA implementáció is. Sőt, 6502 is van (bár ez utóbbi némileg egyszerűbb CPU, könnyebb emulálni).

"némileg" egyszerűbb :-) De finoman fogalmaztál... :-D

Hát igen, ebben nincsenek dupla opkódú utasítások, külön IO vezérlés, viszont van kezdetleges pipeline (egy utasítás utolsó ciklusa általában behívja a következő utasítás opkódját, tehát nincs szükség egy plusz M1 utasításlehívó ciklusra, mint a Z80-on).

Szerintem ebben nem kompatibilisek, de ennek csak annyi gondot kéne, hogy okozzon, hogy ha az adott alkalmazás ilyen órajelciklus alapján alkalmaz időzítő rutint, akkor nem a megfelelő sebességgel fog futni. De a megfelelő sebességgel futás már akkor kiment az ablakon, amikor mai procin próbáljuk az egészet futtatni.


No keyboard detected... Press F1 to run the SETUP

Viszont C64, Spectrum, CPC demok futtatásához elég fontos, hogy az eredeti időzítéseknek megfelelő legyen az a CPU :)

+1 :-)

A C64 demók szoktak működni C64 emulátoron. Nem tudom azért, mert támogatja ezt az órajelciklusos azonosságot, vagy mert valahogy máshogy kiküszöbölték. Spectrumot, CPC-t nem tudom, azoknak a demoit nem ismerem.


No keyboard detected... Press F1 to run the SETUP

Nyilván órajelazonos bennük a 6502, meg a VIC-II is.

Azért az emulátoroknál alapvető, hogy az adott utasítást ugyan annyi „virtuális” órajel ciklus alatt végezzen el, mint amennyin az emulált vason futott.
Pl. az INC $D020-nak is illik 6 órajel ciklus alatt lefutni (ha jól emlékszem :), mert 11 ilyen adta ki egy rasztersor 66 órajel ciklusát.
És enélkül nem szép a konstans border szivárvány. :)))

(Anno a Digger nevű XT-re készített játék a Videoton VT16-osán olyan elképesztő tempóban futott, hogy az elindulás utáni első másodpercben bármelyik játékos elhalálozott - pont azért, mert a VT16 némileg gyorsabb volt az eredeti XT-nél. Régi szép idők, amikor a munkaidőben játék volt a géptesztelés fontos lépése.)

=====
tl;dr
Egy-két mondatban leírnátok, hogy lehet ellopni egy bitcoin-t?

Ehhez kapcsolódóan egy érdekes emlékkönyv: http://tvc.homeserver.hu/doc/konyvek/videoton/videoton1987.pdf

Bakker!
Ebben még én is benne vagyok. ;)

Ebben az az érdekes, hogy a VIFI dolgozói is ott vannak a névsorban, holott nem Székesfehérvár, és nem Számítástechnikai Gyár. Csak a nyomtatókat, a VT32-t, meg még néhány dolgot ott fejlesztettek.

Pl. az USOS-t :-) Amúgy mi ott a Hűvösvölgyi úton (izé: Vörös Hadsereg útján) azt hittük, hogy mink is a Videotonban dolgozunk.

=====
tl;dr
Egy-két mondatban leírnátok, hogy lehet ellopni egy bitcoin-t?

Elég közel lehettél a hUSOSfazékhoz! :-)
(Ezt le kellett ütni!)
Aminek a forrása eredetileg a repülőtérről érkezett. Meg Furulya vót a'! Azt nehezebben tudták lefordítani az amcsik. :)
Láttam még a VIDEOTON Távlati Kutató Központot is - vagy valami hasonlót. Újpesten, Angyalföld határán volt kirakva a tábla egy régi, földszintes házsorból álló kis utca egyik bejárata mellé. Senki sem tudta megmondani mi is az.

Azért pontosítanék. Az USOS-t azt valóban a Furulyában fejlesztették. Amire te gondolsz, az a DMOS volt (az USOS kereskedelmi forgalomba kerülő utóda).

=====
tl;dr
Egy-két mondatban leírnátok, hogy lehet ellopni egy bitcoin-t?

Tökmindegy, két épülettel előrébb dolgoztam. ;)
Csak arra utaltam, hogy azt is lopták akkoriban. :-D

Stimt, én is ezt mondtam, h az USOS saját gyártású volt, de nem került forgalomba, ami forgalomba került és repülőn került az országba, az a DMOS volt.

=====
tl;dr
Egy-két mondatban leírnátok, hogy lehet ellopni egy bitcoin-t?

Diggerre emlékszem, az tényleg csak a 4,7MHz-es XT-n ment jól.
De itt jó:
https://js-dos.com/getting-started/
Csak szerintem másik palettát használt az eredeti.

azt a kábel menedzsmentet! gyönyörű!

--
GPLv3-as hozzászólás.

+1. Nekem is ez volt az elso gondolatom!

Bár a csávó kimagyarázta, de a wirewrap az alkatrészoldalon elég gáz. Ezzel a "menedzsmenttel" pont az előnye (legrövidebb összekötés == legkisebb induktivitás, látszólag össze-vissza összekötés == legkisebb kapacitás) és a használhatósága (könnyű javíthatóság) veszik el. Ráadásul néhol még a kondenzátor is lemaradt a táp mellől.

Próbapanel? Több mint 20 éve egyoldalas saját tervezésű, és készítésű (Alphasettel fóliára "rajzolva", nyákra fotózva, maratva) nyákba építettem hasonló Z80-as gépet. Asm-ben saját program írása volt csak igazán a móka! A kész programot epromba égetve, tesztelve, hiba esetén UV fénnyel törölve, majd javítás után újraégetve. Hiába, régen még mindenre több ideje volt az embernek...

Hát én meg ugyanezt kb. 30 éve 68010-es processzorral.

> A kész programot epromba égetve, tesztelve, hiba esetén UV fénnyel törölve, majd javítás után újraégetve.

Egy darabig én is ezzel szenvedtem, de meguntam, írtam egy kis programot, ami nem csinált sokat, leginkább soros vonalon kommunikált a PC-vel. Amikor valamit ki akartam próbálni, lefordítottam, soros vonalon RAM-ba töltöttem, így a fejlesztés sokkal kényelmesebbé vált. Bármit változtattam, gyorsan tudtam tesztelni. Amikor végeztem az egésszel, és a kütyü azt csinálta, amit akartam, akkor ment csak a végleges változat az EPROM-ba. Így kicsit többet kellett a hardverrel foglalkozni az elején, de nem sokkal, és bőven megérte.