Enterprise Forever

:HUN => Programozás => Topic started by: Povi on 2015.April.21. 21:04:50

Title: Intel 8008 és SCELBAL
Post by: Povi on 2015.April.21. 21:04:50
Az Altair Basic után újabb legendás BASIC értelmező fut az ENTERPRISE-on: az Intel 8008 alapú SCELBI (http://en.wikipedia.org/wiki/SCELBI)-re írt SCELBAL!

Ez az egyetlen BASIC, ami Intel 8008-on, a világ legelső 8 bites mikroprocesszorán fut! Érdekessége, hogy könyvben adták ki a forráskódot, otthon kellett bepötyögnie a user-nak, így ez az első freeware program.

Az EP-n egy kezdetleges (nem pontos az időzítés) Intel 8008 emuláció fut, nagyjából hasonló sebességen (kicsit lassabban), mint egy 500kHz-es 8008. A 8008 és a Z80 assembly-je kompatibilis egymással (hasonlóan, mint a 8080 és 8086 asm-je), de az opcode-ok mások. Viszont az asm hasonlósága miatt nagyon egyszerű emulálni, pl. az emulált 8008 regiszterei a Z80 vesszős regisztereiben vannak tárolva.
Title: Re: Intel 8008 és SCELBAL
Post by: Povi on 2015.April.22. 08:29:17
Egyébként marha érdekes a 8008-as proci, olyan, mint egy lebutított 8080, vagy Z80 (ami persze nem meglepő). Ugyanazok a regiszterek vannak: A, B, C, D, E, H, L. Flag regiszter nincs, a négy flag bit (parity, zero, sign, carry) az csak úgy van valahol...
A verem csak 8 word mélységű (vagy hogy mondják ezt szakszerűen), a 8 bites PIC mikrokontroller-családnál van ilyen. Persze nincs POP és PUSH utasítás se, a vermet csak a CALL és RET használja. Szóval nem a rekurzív híávsok nagy barátja a proci.
A 8080-hoz és a Z80-hoz hasonlóan a HL regiszterrel lehet indirekt módon írni és olvasni a memóriából. Annyi a különbség, hogy a 8008 címbusza 14 bites (16kB memóriát lát), így a H regiszter felső két bitjét nem veszi figyelembe indirekt címzésnél.
Viszon nincs utasítás 16 bites regiszterek kezelésére (INC, DEC, LD stb.). Emiatt kicsit nehézkes a HL regiszter manipulálása. Pl. értékadás két utasítás egy helyett. A DEC HL és INC HL utasítások helyett már makrókat, vagy szubrutinokat kell írni. Szóval nem valami hatékony, de akár azt is mondhatnánk, hogy RISC proci :-)
Title: Re: Intel 8008 és SCELBAL
Post by: Zozosoft on 2015.April.22. 09:16:13
Izgalmas cucc! A következő a 4004 lesz? :-)
Title: Re: Intel 8008 és SCELBAL
Post by: lgb on 2015.April.22. 09:33:56
makrókat, vagy szubrutinokat kell írni. Szóval nem valami hatékony, de akár azt is mondhatnánk, hogy RISC proci :-)

Jo vicc, csak eppen a RISC azon az aron egyszeru, hogy legalabb az egyszeru utasitasa "elegge" gyorsak is :) No de, nem kotekedem, tudom hogy viccnek szantad :) Amugy cool project, szerintem az ilyeneket :)
Title: Re: Intel 8008 és SCELBAL
Post by: Povi on 2015.April.22. 09:40:07
Izgalmas cucc! A következő a 4004 lesz? :-)
Tervben van az is, de az urban legend, miszerint a 8008-as proci két darab 4004-es egy tokban nem igaz, hiszen a 4004-es harvard architektúrájú. Teljesen más csapat tervezte, mint a 8008-at, és értelemszerűen teljesen máshogy is működik.
Ha az meg van, akkor lehetne emulálni a 4004-re épülő Busicom számológépet (http://en.wikipedia.org/wiki/Busicom).

Persze az is egy érdekes dolog, hogy magát a 8008 architektúráját nem az Intel találta ki, hanem a Computer Terminal Corporation rendelte meg az Intel-től a chip-et. Csak aztán az Intel nem készült el vele határidőre, ezért a CTC a Datapoint 2200 terminált (http://en.wikipedia.org/wiki/Datapoint_2200) megépítette TTL áramkörökből az Intel 8008 helyett. Vagyis magyarul az az architektúra, amit jelenleg is használunk az x86-os vonalon egy ebből a terminálból ered... :-)

Na jó, ez most elég zavaros, de azért remélem, érthető... :-)
Title: Re: Intel 8008 és SCELBAL
Post by: lgb on 2015.April.22. 10:22:47
Persze az is egy érdekes dolog, hogy magát a 8008 architektúráját nem az Intel találta ki, hanem a Computer Terminal Corporation rendelte meg az Intel-től a chip-et. Csak aztán az Intel nem készült el vele határidőre, ezért a CTC a Datapoint 2200 terminált (http://en.wikipedia.org/wiki/Datapoint_2200) megépítette TTL áramkörökből az Intel 8008 helyett. Vagyis magyarul az az architektúra, amit jelenleg is használunk az x86-os vonalon egy ebből a terminálból ered... :-)

Nekem ugy remlik, hogy azt irtak vhol, hogy a datapoint 2200 ihlette a 8008 felepiteset. Mig a 6800-aset a PDP11 (es igy a 65xx-et is, ami ugye eleg erosen kb cost reduced 6800 tortenelmileg legalabbis).
Title: Re: Intel 8008 és SCELBAL
Post by: Povi on 2015.April.22. 21:13:46
ki lehet próbálni :-)

mielőtt programot kezd el valaki írni bele, legelső parancsként SCR-t kell írni (már megtettem), különben lefagy! ez kb. az IS-BASIC NEW parancsával egyenértékű.

töltés, mentés (még) nincs benne
Title: Re: Intel 8008 és SCELBAL
Post by: lgb on 2015.May.12. 09:26:53
Lehet, kicsit Off-topic, de erdekes szerintem: http://www.righto.com/2015/05/the-texas-instruments-tmx-1795-first.html (http://www.righto.com/2015/05/the-texas-instruments-tmx-1795-first.html)
Title: Re: Intel 8008 és SCELBAL
Post by: Povi on 2015.May.12. 14:47:04
marha jó, bírom a fickó írásait...

azt pl. nem is tudtam, hogy TTL-ből megépített "8008 pótló" a Datapoint terminálban gyorsabb volt, mint a 8008 egy tokban.

egyébként vicces, hogy pont most akartam én is hozzászólni a topic-hoz, hogy feltöltsem a forrásfájlt, most már olyan állapotban van, hogy közszemlére merem tenni... :-)
Title: Re: Intel 8008 és SCELBAL
Post by: Lacika on 2015.May.16. 23:38:41
Ez még fejlesztés alatt van?
Kimentés, betöltés tervbe van véve?
Title: Re: Intel 8008 és SCELBAL
Post by: Povi on 2015.May.17. 00:22:16
tervbe van véve, de végül is ez is tekinthető végleges verziónak, az eredeti SCELBAL-ban se volt LOAD és SAVE
Title: Re: Intel 8008 és SCELBAL
Post by: Zozosoft on 2015.May.17. 00:49:17
És akkor lesz extended version is? :-)
Title: Re: Intel 8008 és SCELBAL
Post by: Povi on 2015.May.17. 08:43:39
igen, tervezem