HTML

IDDQD

Félkomoly játékblog azoknak, akik tudják, mi az IDDQD, és azoknak, akik nem. Kazuárokat is szívesen látunk.

Itt támogathatsz minket

PayPal:

Patreon:

 patreon_fejlec_kicis.png

Utolsó kommentek

Heti retro: Commodore 64

2012.09.07. 08:42 Stöki

Tudom, a Jetpac következne a rovatban, de hadd előzzön be egy hardvertéma, aminek nemrég volt aktualitása. Augusztusi pihenőnk alatt ugyanis szép csendben harmincéves lett a Commodore 64 (1982 augusztusában jelent meg), és bármilyen hihetetlen, erről a gépről nem volt még nagyobb cikk a blogon. Na majd most. (A posztban részben támaszkodom visszatérő vendégszerzőnk, Sam. Joe Computerworldben megjelent írására, átemelve abból bekezdéseket az engedélyével, részben pedig saját korábbi C64-es cikkeimre).

Először is gyorsan tisztázzuk, hogy a Commodore 64 a világ játékpiacának diktáló Amerikában hamar lefutott. A nyolcvanas évek elején ugyan sokan szórakoztak a géppel az USA-ban is, de aztán jött a NES és a többi sikeres tömegkonzol, és hamar háttérbe szorították a masinát az amerikai piacon (annyira, hogy rövid időre le is állították a gyártását). Európában viszont csak 1984-85 körül kezdett igazán felfutni a Commodore-láz, részben azért, mert a szovjet blokk több országában ekkor már korlátozottan ugyan, de be lehetett szerezni nyugati termékeket, illetve szabadabban lehetett külföldre utazni. Magyarországon is ekkortájt kezdődött a Commodore-gépek (és persze a Spectrum-gépek) sikere, ebben az időszakban vert gyökeret a hazai játékkultúra. Persze a C64 népszerűségéhez sokat hozzátett, hogy a programokat a gombamód burjánzó crackercsapatoknak hála könnyű volt másolni hagyományos magnókazettákon, illetve öthuszonötös mágneslemezeken (ennek a múltnak a hatásait ma is érezni). A C64 közel harmincmilliós eladásaival mai napig az egyik legsikeresebb számítógép.

gaming_commodor_64_4.jpg

Sajnos a Commodore cég alapítója, Jack Tramiel nem érhette meg az idei évfordulót, áprilisban elhunyt. Az Auschwitzot megjárt túlélő lengyel emigráns (születési nevén Idek Tramielski) 1952-ben szerelt le az amerikai hadseregnél, ezután egy írógépjavító műhelyben helyezkedett el. Két évvel később beindította saját vállalkozását Bronxban, 1955-ben pedig Torontóba költözött, ahol megalapította a Commodore International Limitedet, hogy csehszlovák írógépeket szereljen össze. (A cég neve azért lett Commodore - azaz sorhajókapitány -, mert Tramiel valamilyen katonás hangzásút szeretett volna és a magasabb rangok már foglaltak voltak.) Nem sokkal ezután a Commodore átvett egy berlini írógépgyártó konszernt, hogy végre a saját gépeit értékesíthesse a tengerentúlon. Akkoriban kezdtek beszivárogni a piacra az olcsó, elektromechanikus összeadógépek japánból. Tramiel felismerve az igényt, ezeket az eszközöket is elkezdte gyártani. A cégvezető érdeklődött az elektronika újdonságai iránt, ezért később a vállalat kínálatába bekerültek a digitális órák, a szövegszerkesztő gépek, és az első üzleti számítógépek is.

Jack-Tramiel.jpgA hetvenes évek második felében Tramiel már saját számítógép készítésén gondolkozott, és 1976-ban jelentős hitelből megvásárolta a MOS Technologies nevű csipgyártót. A céggel egy akkor ismeretlen mérnök is érkezett: Chuck Peddle. Ő és Motorolától elpártolt mérnökökből álló csapata egy évvel a cég átvétele előtt elkészült a Motorola 6800-as processzor továbbfejlesztett, olcsó változatával, amit 6502-nek hívtak. Az Apple I-ben, az Apple II-ben, a nyolcbites Atari gépekben, de még a NES-ben is ez a mikroprocesszor dolgozott. A 6502 egy órajelciklus alatt több feladatot is képes volt elvégezni, így 1 megahertzes órajelen gyakorlatilag azonos teljesítményt nyújtott, mint a 4 megahertzes Intel i8086. A processzorra épülő első Commodore-gép, a PET (Personal Electronic Transactor) 1977-ben debütált, és ekkor már lehetett érezni, hogy a cég agresszív üzletpolitikájának jelentős eleme a konkurenciánál jóval olcsóbbnak lenni: a gép 595 dollárba került akkor, amikor egy Apple II 1295-be, monitor nélkül.

A PET után a következő jelentős Commodore-gép az 1981-ben piacra dobott, 299 dolláros VIC-20 volt. Az új masina lelke a még mindig olcsó és kellően nagy tudású 6502 lett, ami mellé 5 kilobájt memóriát helyeztek, valamint beépítették a MOS által készített VIC-et (Video Interface Chip), amely képes volt színes grafika és egyszerű hanghatások előállítására. A felbontás 176*184 pixel lett, de alaphelyzetben csupán szöveges üzemmód volt elérhető – grafikus üzemmódhoz egy extra cartridge-re volt szükség. A VIC-20 átütő sikert hozott, volt olyan időszak, amikor naponta kilencezer darabot készítettek belőle. És persze Tramiel megint árversenybe kezdett, aminek a végén már csak 55 dollárba került egy VIC-20. A fejlesztés tovább dübörgött, és 1982 augusztusának végén – más források szerint szeptemberének elején – piacra került a Commodore 64 (amit 1982 januárjában már bemutatták az akkori CES-en).

A küllemében a VIC-20-szal megegyező, a geek folklórban kenyértartónak becézett gép szíve a 6510 volt, a 6502 egy hatbites belső I/O kapuval bővített változata. 64 kilobájt memóriájából 38 volt hozzáférhető a Commodore BASIC 2.0 számára. VIC-II grafikus lapkája többek közt 16 színt, 8 hardver sprite-ot támogatott, és két bitmap-es grafikus üzemmódja is volt. A játék és demóprogramozók hamar megtanulták, hogy hogyan aknázzák ki a VIC-II nem dokumentált, vagy egzotikus képességeit, például hogyan tegyenek egyszerre nyolcnál több sprite-ot a képre, illetve hogyan jelenítsenek meg a gyári 16-nál több színt. A hanghatások keltéséért felelős háromcsatornás SID csip valamennyi csatornájának saját ADSR jelforma-generátora volt, számos különböző hullámforma, modulációs és szűrési képességgel. Ezt a három csatornán, kilenc oktávot, három hullámformát és a modulációs képességet is felvonultató megoldást igazi csodaként kell értékelnünk, különösen annak fényében, hogy az első valamire használható pc-s megoldás 1987-ig váratott magára az AdLib csip megjelenéséig. A C64-ben minden megtalálható volt ahhoz, hogy felvegye a versenyt a korabeli nyolcbites ellenfelekkel és sokszor maga mögé is utasítsa azokat.

A gép 595 dolláros áron került a boltokba, a piacon az Atari 400-as és 800-as modelljei, illetve az IBM PC és az Apple II voltak a legfontosabb riválisok. Az IBM gépét és az Apple II-t négyszámjegyű összegért lehetett megkapni, az Atari 800 pedig 899 dollárba került ekkor, ráadásul ezek a gépek grafika és zene tekintetében is elmaradtak a Commodore üdvöskéjétől. A C64 olcsóságának titka az volt, hogy Tramiel igyekezett a termelési folyamat minden szintjén képviselnie magát: a MOS mellé vásárolt egy félvezetőgyárat és több kisebb üzemet, míg végül sikerült a C64 gyártási költségét 135 dollárra szorítania. Ráadásul a C64-et legtöbb riválisával ellentétben nemcsak szaküzletekben, hanem játékboltokban és szupermarketekben is lehetett kapni, és mivel tévére lehetett kötni, monitort sem kellett venni hozzá. A széleskörű értékesítés miatt 1983 januárjában – tehát csak pár hónappal a megjelenése után – már 400 dollárért meg lehetett venni a gépet, néhány hónappal később azonban a cég olyan akcióval állt elő, ami alapjaiban rengette meg a piacot: minden C64-et vásárló vevőnek 100 dollárért beszámították a régi számítógépét. Néhány leleményes forgalmazó ezt kihasználta, és olcsóbban adta a C64-et, ha a vevő vitt mellé egy 100 dollárnál olcsóbb kifutó modellt is. A vevő örült, a forgalmazó lefölözte a különbözetet, de az akció hozzájárult a híres-hírhedt Nagy Videojátékkrachhoz, amiből csak a Commodore jött ki jól, megsemmisítve olyan konkurenseket, mint a Texas Instruments. 1983 júniusában már csak 200-230 dollár körül mozgott a gép ára - kevesebb mint egy évvel a premier után!

A C64 ekkor már sínen volt, havi több százezer gépet gyártottak, a Commodore pedig a piac 40 százalékán terpeszkedett. A ZX Spectrum miatt ugyan a C64 az első években nehezebben tudta bevenni Európát (hazai pályán 399 font volt a kezdőár, a Spectrumot pedig már 175 fontért lehetett kapni), de hosszú távon a gyorsan csökkenő ár és a szoftverkínálat eldöntötte a versenyt. Szoftverben pedig a C64 verhetetlen volt: összesen több mint húszezer különböző, kereskedelmi forgalomba került program készült rá, ezek többsége természetesen játék volt. Érdemes ugyanakkor megemlíteni egy úttörő szolgáltatást is, ami Magyarországon kevésbé ismert. Az America Online jogelődje, a Quantum Computer Services 1985 és 1994 között működtetett egy online szolgáltatást kifejezetten a C64 és a C128, később pedig az Amiga tulajdonosok részére. A Quantum Link – népszerűbb nevén Q-Link – a tengerentúlon roppant népszerű eszköz volt a felhasználók közötti kapcsolattartásra és játékra, valamint különböző információk – hírek, moziműsorok és egyebek – beszerzésére, továbbá demók letöltésére.

Nálunk persze nem volt Q-Link, viszont Magyarországon számtalan kisebb-nagyobb cég használta könyvelőgépként, attól a téveszmétől félrevezetve, hogy az egyértelműen hobbicélokra kifejlesztett gép rendelkezett minden olyan perifériával – lemezmeghajtó, nyomtató, monokróm, vagy színes monitor –, amivel egy „felnőtt” számítógép is. Az is magyar sajátosság volt, hogy egész iparág alapult a C64 konfigurációk importjára a közeli Ausztriából. A Bizományi Áruház Vállalat üzleteiben az Átvétel feliratú ajtó előtt azok álltak sorban, akik becsempészték a gépeket, hogy aztán az Eladás feliratú ajtó előtt sorban állók így legalizálva megvehessék azokat a nyugati piaci ár többszöröséért. Egy C64 alapgép ára a Bizományiban 1984-ben körülbelül 70 ezer forint volt, míg a Merkúrnál 60 ezer forintért Trabantot, 80 ezer forintért pedig Zsigulit vásárolhattunk. (UPDATE: Egy volt bizományis kommentelőnk szerint nem volt 70 ezer a gép, csak 40 ezer. Ez persze így is baromi sok, egy autó árának fele volt akkoriban.) Nehezítette a gépek beszerzését még az is, hogy szocialista országként ránk is érvényes volt az úgynevezett CoCoM lista, melynek értelmében csúcstechnológia a vasfüggöny országaiba nem, vagy csak igen szigorú feltételekkel juthatott el.

Szerencsére a nyolcvanas években már sok dolgot lehetett a szocialista Magyarországon, amit korábban csak bajosan, például nyugatra utazni és ott vásárolni. Igaz, Ausztriába például csak fejenként pár ezer schillinget volt szabad kivinni, ezért sokan azt csinálták, hogy felpakolták a nagymamát, nagypapát, hogy több valutát vihessenek magukkal. A soproni határátkelőnél az érkezési oldalon akkoriban gyakori látvány volt a hűtőládákkal, videomagnókkal, és persze C64-ekkel túlterhelt, elkínzott arcú családtagokat szállító, magyar rendszámú Trabantok és Zsigulik kígyózó sora, a családfők pedig azért álltak sorba, hogy visszaigényelhessék a Mehrwertsteuert (az osztrák ÁFA neve volt akkoriban). Soproni születésűként természetesen én is így kaptam a C64-emet egy eisenstadti boltban, ami a kirakatán óriási táblán hirdette: BESZÉLÜNK MAGYAR! De mint Sam. Joe találóan rámutat, ahhoz, hogy a gép az otthonokba is beszivárogjon, nem csupán az kellett, hogy az ára csökkenjen és meg lehessen vásárolni – jelentős szerepet kapott az akkoriban szárnyait bontogató, végfelhasználókhoz szóló hazai sajtó. Valószínűleg sokaknak ismerősen cseng a Mikrovilág, az Ötlet Magazin mellékleteként megjelenő BitLet, illetve a Commodore Világ neve (ez utóbbiról majd egyszer külön posztban emlékezünk meg).

Amikor a C64 elterjedt itthon, Tramiel már nem volt a cég élén. 1983 végén távozott, főként azért, mert módszereivel kivívta a cég főrészvényese, Irving Gould ellenszenvét. A C64 viszont annyira meghatározta a Commodore profilját, hogy Tremiel távozása után a cég sokáig nem is tudta jól (vagy inkább: jó érzékkel) követni az iparág fejlődését. A C64 inkább a játékosok gépe volt, mint a hobbiprogramozóké, az 1984-ben megjelent Commodore Plus/4 ezen segített volna, de stratégiai baklövésnek bizonyult, hogy a gép nem volt kompatibilis a C64-gyel. Zsákutca volt a Commodore 16 is (százdolláros tanulógépnek szánták, de a vásárlók inkább kétszer ennyiért vettek C64-et), és rövid életű volt SX-64 modell is, ami az első színes képernyős, hordozható számítógép volt. Az emberek ekkor még nem akartak laptopot – főleg olyat nem, aminek öthüvelykes a monitora, viszont több mint tíz kiló és 1600 dollárért annyit tud, mint egy C64. A Commodore végül 16-bites gépekkel, az Amiga sorozattal ért még el jelentősebb sikereket, de sorozatos rossz piaci döntések után 1994-ben becsődölt. A C64 négy évvel élte túl legnagyobb egykori riválisát, az 1990-ben leállított ZX Spectrumot. A platform azonban még ma is, 30 év után is él, lelkes és népes közösség szerveződött köré, aminek tagjai új programokat is fejlesztenek rá (legközelebbi példa ugye a 4emelet című, készülő magyar C64-játék).

4emelet.jpgÉs még rengeteg dologról lehetne írni a C64 kapcsán. Arról, hogy akkoriban még sokkal könnyebben érvényesültek a magányos fejlesztők vagy a kisebb csapatok. Arról, hogyan születtek olyan csodák, mint a Last Ninja, az Impossible Mission, a Defender of the Crown vagy a C.R.E.A.T.U.R.E.S. Rátkai István kalandjátékairól, a magnófejállítás miatti szívásról, esetleg a Quickshot joystickokról. Jerri Ellsworthről és a C64DTV-ről, vagy a demoscene születéséről. A C64-zenék kultuszáról, a Machinae Supremacyről, a Press Play On Tape-ről. A felszállásról a Raid Over Moscowban és a "kooperatív" kétszemélyes Wizard of Wor-meccsekről. A Csokiról, a pecsás copypartikról, vagy éppen az Árok Partyról. Szerencsére ezekről nagyrészt már volt szó a blogon, illetve a kommentekbe is hagynék nektek muníciót. Legkedvesebb C64-es emlék, szívás, vagy csak a poszt kiegészítése – bármi jöhet. Egy indexes kommentelő szavaival búcsúznék: „Neki köszönhetem, hogy ma ott tartok ahol.”

330 komment

Címkék: retro c64 heti retro hardver

A bejegyzés trackback címe:

https://iddqd.blog.hu/api/trackback/id/tr494760629

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Johnfive 2012.09.08. 22:38:05

@Bambano: Az világos, csak soha nem hallottam róla, hogy a stock-ROM-jában van ilyesmi.

Adani 2012.09.08. 22:56:10

A Palik-Héder féle Ötöd-ölős tévés amőbázás megvan? Azt is C64-el csinálták, egy közismert amőbás programmal. És ,akik Palikékat akarták szívatni azok ,a C64-et játszatták ellenük nehéz fokozaton. Palikék ha valaki legyőzte őket sőt még a gépet is (ami ritkán történt meg) szinte mindig jött az "ugye számítástechnikus?" kérdés, ami náluk azt jelentette, hogy van otthon számítógép.

Johnfive 2012.09.08. 23:00:54

@Phrascarica: "Azt mondtam hogy egy PC-s program jóval több helyet foglal, és egy ZX81-en 1K-n is volt sakkprogram."
Na de, jóval több dolgot, jóval több féle képen meg is lehet vele csinálni. A C64 vs. PC, almát a körtével SZVSZ.

Johnfive 2012.09.08. 23:09:37

@Androsz: "Ha az ilyen utasítás szerkezete olyan összetett, hogy két-három lépést is magába foglal, elvileg hely- és időnyereséget hozva a programozó számára, akkor meg mitől olyan hosszúak a PC-s programok?"
Ez nem így megy. Most eltekintve attól, hogy a méretnövekedés nagy része a kezelhető adatok mennyiségének és ezáltal az adat méretének növekedését jelenti a valóságban:
szóval a kód, i386 jóval több dolgot "kell megmondani", hogy pontosan mi történjen (lsd. utasítás prefixek 16/32 bites szegmensek esetén, szegmens címzés, stb.) OS: driver architektúra, memória-címzési módok, mind-mind egy halomnyi kódot implikál. Ezek nem is értelmezhetők a 8bites platformokra. És ez csak pár példa, és ennél sok-ezerszer több ok van, amiért egy bonyultabb rsz. bonyoltabb/nagyobb kódot is igényel.

CodeKiller 2012.09.08. 23:47:23

@Johnfive: Én ezt máshogy közelíteném meg. Volt vala az ős szám(ító)ológép, fix prg-vel, majd az átmadzagolható, aztán mikor már lyukszalagon ment a programozás, elkezdték egymás kódjait is használni az programozók - include/szubrutin. Később ezt gatyába rázva megszülettek a magas(abb) programnyelvek, és a móka megismétlődött, de ekkor már ugye nem az asm/bináris megoldást, hanem a forráskódot másolták. Aztán így szépen el kezdtek tornyosulni a library-k, beépítve minden okossággal. (néha voltak újraértelmezések, elágazódások, de lényegében hasonlóak) Ma egy PC-s program elkészítésénél gyakran elég sok rétegen kell keresztülfordítani a forrást, hogy bináris formája legyen, miközben olyan maradvány is bekerül, amit nem is használ.
Ez nem csak azért van, mert a programozó lusta (jó, persze azért is) de mikor a főnök folyton azzal jön, hogy ez és az már tegnapra kell nem lehet azon agyalni, hogy márpedig ez a kiíró rutin túl lassú, vagy túl nagy, mennyivel jobbra meg tudnám írni egy pár asm betéttel (minek hatására esetleg egyes gépeken nem is futna) hanem össze kell kalapálni, hogy legalább a tesztek 99%-ában ne fagyjon le.

Hasonlóan mint építkezésnél is, manapság nem nagy favorit a tégla, mert kicsi, keveset bír, és sok vele a meló - vagy kiöntik (vas)betonból, vagy veszik a nagyobb kockákat (beton-blokk / ytong /...).
Mert az idő az pénz! És a pénz mindig számít!

rosettif · http://istennyila.hu/ 2012.09.09. 01:04:25

@Johnfive: De, nagyon de. :) Mind a kettőt programoztam konkrétan (mind a kettőt Assembly-ben természetesen). Ami viszont igaz: tényleg nem azonos a kettő, hanem a helyes fogalmazás az, hogy a VDC a CGA szabvány Commodore-os implementációja. Szó szerint ezt itt mondják ki így konkrétan:

commodore64.se/wiki/index.php/Commodore_128_assembly_programming#80-column_mode

"The VDC chip is actually a Commodore implementation of a CGA chip."

(Igazad van, nem voltam elég egzakt, ez a valós helyzet... ;-))

A VIC-II chip a C64-ben és a C128-ban (fizikailag is) tökazonos volt. Az általad is megemlített "VIC-féle megközelítés" kb. azt jelenti, hogy a RAM elérésen közösködve osztozik a CPU és VIC chip, és a 64k RAM-ba belapozva látható a képernyőmemória, a szín-RAM és a regiszterek ($d000-tól) stb. A rasztermegszakítás, sprite-ok... stb. mind ugyanaz volt.

A VDC chip ezzel szemben: saját belső memóriát tartalmazott (a C128 esetén ez 16 vagy 64 kB volt, kiépítéstől függően), és saját belső regisztereket (szám szerint ez 37 db.). Sem a memóriát, sem a regisztereket nem lehetett viszont közvetlenül elérni, hanem mindösszesen kettő (azaz 2) db. I/O porton keresztül. Volt egy parancs- és egy adatregiszter: először a parancsregiszterbe beírtad az elérendő belső VDC/CGA regiszter számát, majd pedig az adatregiszterben lehetett azt írni/olvasni. Eléggé lassú és körülményes volt, a C128 esetén ez kettő db. memóriacímet jelentett; míg a PC-s x86 Assembly-ben pedig IN és OUT utasításokkal kellett programozni ugyanezt a CGA kártya esetén.

A VDC-ben nyoma sem volt raszterinterruptnak, sprite-oknak. A 16 szín sem volt azonos a VIC-kel (hanem 1-1-1 bit R/G/B, és +1 bit fényerősség á la CGA), a (80-oszlopos) karakteres üzemmódban lehetett egy karakter- és attribútummemóriát definiálni (aláhúzás, inverz stb. attribútumokkal), plusz mellé egy karaktergenerátort, megint éppen á la CGA. A C128 RGB-I kimenetére (azt hiszem) pontosan egy CGA monitort (is) lehetett rákötni.

Androsz · http://wikipedia.blog.hu/ 2012.09.09. 02:22:07

@neoteny: "»Az érdekel hogy van-e 8 kb-os sakk«

Milyen igaz: szinte lehetetlen mai napság minőségi pattintott kőkést találni, mindenki a gusztustalan Swiss Army késeket árulja."

Nagyon rossz példa. @Phrascarica: Nem azt szeretné, hogy ma írjanak 8 kilóban egy sakkprogramot, hanem hogy PC-n van-e már olyan. Írhatták azt húsz éve is. Írtak-e? Lehetett volna-e írni?

Mellesleg: minden kőfaragó-tanuló levizsgázik abból, hogyan csinál meg egy mészkőkockát. Aztán amikor már mester lesz, akár világraszóló csodát is fabrikálhat, de először nem árt, ha megmutatja, hogy egy pattintott kőkést is megcsinál. Amiről egyébként drámai félreértés azt gondolni, hogy olyan sima ügy.

Egy sakkprogram lelke egyébként nem az 1 gigányi figurakészlet, hanem a játékalgoritmus. Ha azt elém teszed, sakkprogramot már én is csinálok belőle, valószínűleg rövid idő alatt, mert a figurák mozgatása meg az idő számlálása nem súlyos feladat. Kérdés, hogy egy ilyen algoritmus mekkora kódot igényel, de a Colossus Chess 2 23 és fél kibyte, szép rajzolatú figurákkal, monokróm bittérképes táblán. Egyszer összeeresztem egy PC-s sakkprogrammal, csak kíváncsiságból.

Ha a kérdés már itt van, én tudok egy elég közeli példát: Chess-It 3.0, 1085846 byte, egyetlen exe, 400 kilóra zipelhető.

"MOV [BX+SI+0x1234],0x5678 ...
a 6502-n ... biztos hogy több mint 7 byte lett volna."

Szerintem is. Amit az utasítások szerkezetéről írtál, azzal nem vitázom, maradjuk csak ennyinél. Mutattál egy példát arra, hogy a PC-n 7 byte-ban meg lehet csinálni azt, amit a C64 7-nél több byte-ból csinálna meg. Tudjuk, hogy a C64-en 40-50 kilóban mi mindent meg tudtak valósítani. A PC utasításkészlete takarékosabb, de akkor a PC-n futó programok mellé MIÉRT IS KELL EKKORA MEMÓRIA? :-)))

Azt természetesen én is tudom, hogy a memória az adatokhoz is kell, és a PC programjai nagyobb adathalmokkal dolgoznak. De nem mindig. Itt hever előttem a Norton Utilities 8.0 FileSize parancsára írt COM, 13273 byte. Kilistázza a megadott alkönyvtár tartalmát, nevek, méretek, összesen. Hát, ez emlékeztet a LOAD "$",8: LIST utasításpárra, de én is írtam nem egészen 1 kilóban programot, amely megcsinálja ugyanezt, pici ráadásokkal, és azzal a kiegészítéssel, hogy tárolni és lekérdezni is lehet benne minden fájlbejegyzés mellé egy időpontot, ahogy a PC-n is van, csak sajnos a fájl írásakor az időpont automatikus tárolásához a 1541 memóriájában kellene megfűznöm a rendszert, ahol viszont nincs óra, szóval ne ezt nézzük. A NU programjai elég hatékony kódolással készültek, mégis ekkora lett ez a program egy miniatűr feladatra. Levonhatunk ebből tanulságokat, ha akarunk.

"»Hogy aztán ez mivé burjánzott, azt már tudjuk.«
Oda burjánzott hogy a neten keresztül rá tudok kattintani egy PDF-re és már olvashatom is teljes szépségében (akár facsimile formátumban). Ehhez sok-sok utasítás kell ami sok-sok adatot dolgoz fel"

A PDF fájl megjelenítését nem a gigabyte-os oprendszer és driverei csinálják, tehát arra a méretre ez nem is lenne magyarázat, nálam a PDF-et a Foxit Reader nyitja meg, amelynek az exéje 11 mega. Hogy C64-en mekkora kód kellene ehhez, azt nem számolgatom, mert lehet, hogy sok. A kódolva tárolt adatok szerint szövegek megjelenítése különféle fontokkal, rugalmasan, közéjük szúrva objektumok, képek, megjegyzések, görgethető és lapozható, szóval ez valóban nem kevés utasítás.

Van ezzel egy gondom. Volt egyszer (1994) egy Works 3.0 nevű program, amelynek a telepítőcsomagja 5.4 mega. Ez a program tudta a következőt: a kódolva tárolt adatok szerint szövegek megjelenítése különféle fontokkal, rugalmasan, közéjük szúrva objektumok, képek, megjegyzések, görgethető és lapozható. Továbbá szerkeszteni is lehetett vele a dokumentumot, valamint van benne egy táblázatkezelő és egy adatbáziskezelő alkalmazás is. Levonhatunk ebből tanulságokat, ha akarunk.

Androsz · http://wikipedia.blog.hu/ 2012.09.09. 02:22:42

@neoteny: "... és pár programozó-évezredbe kifejleszteni a kódot, még ha lenne is egy C fordító a 6502-re (ami egyébként létezett; egy ex-kollégám írt egyet). Assembly-ben meg örökké + egy napba tartana."

Amiket írsz, abból úgy néz ki, hogy programozó vagy. Akkor viszont nem értem, miért kellene szerinted pár évezred megcsinálni valamit az egyik nyelven, és pár hónap egy másikon. Az assemblyről pedig különösen rossz véleményed van, pedig a C64-en rengeteget dolgoztam egy assemblerrel, amely már makró néven valójában rutinkönyvtárat is tudott kezelni. Ha a C64 memóriáját megnövelhetjük akkorára, amennyi a PDF megjelenítéséhez és a kellően gazdag rutinkönyvtár használatához technikailag szükséges, akkor maga a program egyáltalán nem évezredekig készülne. A híres strukturálási elv, amit a C programozói a saját nyelvük számára kisajátít, az assemblyre is érvényes. Mindenre érvényes, hiszen úgy szól a szabály, hogy bontsd a feladatot az alapelemekig. Az olyan alapelem, mint egy ciklus, assemblyben is létezik, akkor is, ha nincs DO ciklus.

Ha a pofás megjelenéshez szükséges környezetet hiányoljuk, akkor szólok, hogy a GEOS sem évezredekig készült, és lényegében csak az erőforrásokban különbözött a Macintoshok rendszerétől.

A PC-n nem olyan sokkal könnyebb programozni, ahogy azt ma sokan hihetik, sőt, ahogy egyre "programozóbarátabb" fejlesztőrendszereket tesznek divattá, objektumorientáltsággal segítve az addig változókon nyammogni kényszerült programozót, azóta ötször annyi kódszót kell ismerni, és minden szarért tele kell nyomni a programot osztálydeklarációkkal és a többi fölösleges dologgal. Holott állítólag így könnyebben, azaz gyorsabban lehet programot írni. Nagyon örülnék, ha láthatnám, hogy ma egy programozó, a mai fejlesztőrendszerek birtokában, mennyi idő alatt írna meg egy Wordöt. Hiszen tulajdonképpen minden készen áll.

@Johnfive: "És ez csak pár példa, és ennél sok-ezerszer több ok van, amiért egy bonyultabb rsz. bonyoltabb/nagyobb kódot is igényel."

Hát ez az. Másnak is feltűnik, hogy vajon miért kell bonyolultabbnak lennie annak, ami állítólag fejlettebb. A processzor izomból sokkal többet elvállalhat, az oprendszer önmagában is már elmegy egy egész estés kalandtúrának, főleg ha megpróbálja a látogató megkeresni, hogy hol lehet kikapcsolni a dokumentumfájlok szüntelen és erőforrásgyilkos indexelését. Akkor miért bonyolultabb ezt a programozónak felhasználni? Miért kell sokkal többet megmondani a rendszernek, mint régen. A C64-en is ott voltak a KERNAL beszúrási pontjai, ott volt az interpreter, valamint ott voltak a portok, és minden megoldható. Ma miért kell ezeken kívül egy csomó más dolgot is közölnöm az állítólag halálosan fejlett rendszerrel, ha szeretnék megcsinálni egy sakkprogramot? A kérdés félig-meddig költői, de levonhatunk ebből tanulságokat, ha akarunk. :-)

neoteny · http://word.blog.hu 2012.09.09. 05:12:30

@Androsz:

"Nem azt szeretné, hogy ma írjanak 8 kilóban egy sakkprogramot, hanem hogy PC-n van-e már olyan. Írhatták azt húsz éve is. Írtak-e? Lehetett volna-e írni?"

Hogyne:

www.atarimagazines.com/compute/issue64/chess.php

Habár ez vegyes machine code / BASIC(A) program. Nekem volt egyszer nagyon régen egy CHESS (talán .COM) programom a PC-re; sajnos már nem találom. Persze ott is kérdés hogy mekkora volt a kód és mekkora a figurák grafikája.

"Tudjuk, hogy a C64-en 40-50 kilóban mi mindent meg tudtak valósítani."

Minden olyat ami megvalósítható volt max. 40-50,000 utasítással -- ha csupa egybyte-os utasításokat használtak. Mivel nem tudom a 6502 átlagos utasításhosszát, a "legjobb" esetet feltételeztem; a 40-50K-ba beleférő valós programok utasításainak száma vszínűleg ennek a fele környékén járhatott -- átlagosan 2 byte-ot feltételezve egy utasításra.

"De nem mindig."

Kivéve amikor igen. A nagyobb címtartományt pontosan azért tervezték bele a 8086/88-ba (még az igen durva szegmentálást is megvalósítva) hogy több memóriát tudjon megcímezni... és hogy nagyobb programok nagyobb méretű adatokat tudjanak kezelni.

"Norton Utilities 8.0 FileSize parancsára írt COM, 13273 byte"

... amit minden valószínűség szerint valamilyen magas szintű nyelven írtak (Turbo C? Turbo Pascal?). Ez könnyen leellenőrizhető: ha megkeresed az összes string-et a COM-ban, vszínűleg található benne egy copyright string ami a használt fordító runtime library-ját azonosítja. Amiből két dolog fakad: a korai fordítók nem voltak olyan jók optimizálásban (sem méret, sem végrehajtási idő) mint mai napság, ill. a runtime könyvtárakból gyakran beszerkesztésre kerültek olyan rutinok is amik egyszer sem kerültek futtatásra... elég volt ha egy könyvtári modul egy rutinjára szükség volt, beszerkesztésre került a másik 5-8, a modulba tartozó rutin is.

"A PDF fájl megjelenítését nem a gigabyte-os oprendszer és driverei csinálják, tehát arra a méretre ez nem is lenne magyarázat, nálam a PDF-et a Foxit Reader nyitja meg, amelynek az exéje 11 mega."

És az a 11 mega (ami nem mind kód) meghív egy rahedli Windows funkciót (nem utolsósorban a display driver-t) meg DLL-t stb. stb.; és azoknak a funkcionalitása is szükséges ahhoz hogy egy böngészőn belül a PDF reader program kirakja a fájl tartalmát. _Mindezt_ biztosítani egy 6502-őn lenne a hatalmas feladat.

"kkor viszont nem értem, miért kellene szerinted pár évezred megcsinálni valamit az egyik nyelven, és pár hónap egy másikon."

Nem pár évezred: pár programozó-évezred. 100 programozó 10-20 év alatt meg is tudná csinálni, feltéve hogy mindent elölről kezdenek (tehát nem a Windows és a FireFox meg az Acrobat Reader forráskódját tennék 6502-n futtathatóvá).

"Az assemblyről pedig különösen rossz véleményed van [...] A híres strukturálási elv, amit a C programozói a saját nyelvük számára kisajátít, az assemblyre is érvényes."

Én még 1995-ben (jó) fizetést kaptam azért hogy assembly-ben programozzak grafikus rutinokat. Hogy a CV-mből idézzek:

Utilizing VESA capabilities of SuperVGA video cards, I wrote several highly optimized routines for BitBLT, including on-the-fly RLE8 decoding/skip color/depth code/clipping.
Developed a SuperVGA video page switching routine by 'thunking' 32 bit protected mode code to 16 bit protected mode, so the need for relatively slow real mode interrupts were eliminated from page switching code.

Viszont ez a kód méretében talán 1%-a volt a teljes (játék)programnak (habár vszínűleg az idő felében ez futott): ha az _egész_ program assembly-ben került volna kifejlesztésre (C helyett), nem másfél évig tartott volna a project hanem jóval tovább... és nem lehetett volna portolni az egész programot a Mac-ra is azon a másfél éven belül.

Vagy egy másik példa: 2009-ben írtam egy sin/cosin rutint inline assembly-ben egy hard realtime beágyazott rendszer (RISC processzora) számára ami a _teljes_ rendszer futásidejét megjavította 3%-al (és ezáltal lehetővé tette más funkcionalitás beépítését). Ott még talán 1 tízezreléket sem tett ki ez a teljes kódmérethez képest; az egész rendszert (elektromos kormányrásegítés) megírni assembly-ben egyrészt gyakorlatilag lehetetlen lett volna, másrészt nem is engedte volna a megrendelő: a C forráskód különféle statikus és dinamikus programellenőrzéseken esett át, amire nincsenek eszközök assembly forrásnyelv esetén. (Az inline rutinban nem volt ugrás, tehát "nem tévedhetett el" a program, ill. numerikus analízissel bizonyítanom kellett hogy a worst case eltérés a könyvtári rutintól 0,11% volt.)

"úgy szól a szabály, hogy bontsd a feladatot az alapelemekig."

És egy magas szintű programozási nyelv -- és annak fordítója -- sokkal jobban végzi a lebontás mechanikus részét mint az ember. Egy DO-WHILE ciklushoz szükség van egy címkére a cikusltörzs tetején, egy tesztre a végén és egy feltételes ugrásra vissza a címkére. A modulon belüli egyedi címkegenerálást elvégzi a fordító és odarakja a tesztet is meg a feltételes ugrást is. Persze hogy meg lehet csinálni mindent assembly-ben is (hiszen egyes korai fordítók nem is közvetlenül gépi kódot generáltak hanem assembly outputot amit aztán az assembler megcsócsált), csak kérdés hogy melyik módon hatékonyabb.

"objektumorientáltsággal segítve az addig változókon nyammogni kényszerült programozót"

Én egy nagyon jó C programozó vagyok és legfeljebb egy átlagos C++ programozó, de azt a kódot amit összerakok -- a kollégáimmal -- C++ nyelven egy fél év alatt tiszta C-ben vszínűleg másfél év alatt csinálnánk meg... ha. Arról nem is beszélve hogy a könyvtár, amire támaszkodunk, szintén jóval tovább tartott volna kifejleszteni.

Összefoglalva: még ma is szükség van assembly-re egy-két jól meghatározott helyen: pl. beágyazott rendszerek bootloader-jében vagy olyan helyeken ahol a fordító nem képes speciális utasításokat generálni vagy pl. egy többszörös ciklus belsejében olyan sokat fut a kód hogy érdemes kioptimalizálni az utolsó órajelig a néhány utasítást. Flow control-t írni assembly-ben viszont teljesen fölösleges; azt a magas szintű nyelvben könnyebben és biztonságosabban lehet megtenni.

A C nyelv is hasznos tud lenni pl. hard realtime rendszerekben, ahol nem lehet dinamikus memória-allokálást végezni ugyanis nem ismert előre hogy mennyi ideig fog tartani amíg egy malloc() lefut (lévén az függ a heap állapotától) -- ill. ha az allokáció hibája (esetleg fel nem szabadított memória bug miatt) programhibához vezetne.

Ugyanakkor mezei alkalmazási programokhoz teljesen jó az objektumorientált paradigma: ha valaki jól ismeri a C++ (vagy bármelyik más objektumorientált) nyelvet, jóval hatékonyabban tud fejleszteni mint pl. C-ben.

Celtic 2012.09.09. 10:43:37

@Johnfive: Igy van. CISC procik. Anno a CoV/PCU-ban volt egy PC Assembly, azt elokeresve, meg lehet latni, mennyi volt a leghosszabb 8086 utasitas es hany ciklus kellett a vegrehajtashoz. De sztem egy google kereses is kiadna.

peterszky 2012.09.09. 10:58:57

@Adani: Nekünk a 286-os / 486-os gépen volt kulcsos hardverzár! :D Ment is a kutatás a lakásban, mikor szüleink házon kívül voltak. Általában olyan helyre került, amit kis tökösökként még nem értünk el, de szerencsére volt létra itthon :)

Phrascarica 2012.09.09. 12:17:22

@peterszky: manapság pedig elég egy ujjlenyomat olvasós notebook, aztán megoldva a gyerek kizárása ;)

Johnfive 2012.09.09. 12:42:11

@Isten Nyila: Hm, akkor ezt benéztem. A VIC-féle megközelítés alatt ezt az attribútum-memóriás szöszölést értettem, ami grafikus módban is megmaradt pl. rasztermegszakítás/sprite valóban nincs támogatva.
De SZVSZ a grafika köszsönőviszonyban sincs azzal, amit én CGA-ként megismertem.

Johnfive 2012.09.09. 12:44:37

@Androsz: "Tudjuk, hogy a C64-en 40-50 kilóban mi mindent meg tudtak valósítani."
Mindent?! Mutass egy vállalat-irányítási rsz.-t C64-re. :D

Johnfive 2012.09.09. 12:50:39

@Androsz: "ásnak is feltűnik, hogy vajon miért kell bonyolultabbnak lennie annak, ami állítólag fejlettebb. "
A természetéből fakad. :D
Pl. C128-ban ha használni akartad a felső 64k-t, akkor bizony meg kellett írnod a kódot, hogy váltogathass a két bank között, másolgass innen-oda, stb., de egyszerűbb volt, ha már előre megírt lib-et használtál hozzás egy csomó egyéb feature-el.

Johnfive 2012.09.09. 12:53:47

@Androsz: "A processzor izomból sokkal többet elvállalhat,"
És ezt is teszi, vö.: menedzselt memória: a memória-felszabadítás a programok legnagyobb részénél teljesen automatizálható. Minek a programozóra hagyni? Előbb-utóbb úgyis hibázik, ha ezzel is törödnie kell.
+1 ok a menedzselt-környezetek/nyelvek mellett.

Johnfive 2012.09.09. 12:55:21

@Androsz: Egyébként mi számít 8Kb-os programnak: a fájl-méret, vagy a memória-foglalása?

Johnfive 2012.09.09. 13:00:34

@Celtic: húú, az hogy hány ciklus, az nagyon nem triviális, egy csomó mindentől függött. Egy dolog biztos volt: amit leírtak arra nem volt szabad hagyatkozni, ki kellett mérni az adott szituációban és akkor hozzávetőleg lehetett tudni. És az persze máshol máskor már megint nem volt érvényes. :)

Rudymester · http://retrofaktor.blog.hu 2012.09.09. 13:11:24

Köszönöm ezt a remek írást, sokat megtudtam az egész C64 bizniszről. Jöhetne ilyen minden ős konzolról. :-)
Sajnos maga a gép kimaradt, de emulátoron kipróbáltam pár játékot és megnéztem pár demo klipet. Mindet nagyon élveztem, valódi vassal is kipróbálnám őket.

rosettif · http://istennyila.hu/ 2012.09.09. 17:11:49

@Johnfive: Ebben igazad lehet (grafikus módban sosem használtam - gyanítom, hogy mások se nagyon). Mindenesetre az implementáció fogalmában benne van, hogy nem biztos, hogy pontosan ugyanazokat a funkciókat valósítják meg benne, és ugyanúgy. A lényeg, hogy a technológiája jellegében, tudásában kb. azt nyújtja, vagy hasonlót. (A VIC-hez viszont garantáltan semmi köze nincs.)

Persze, amúgy is az egész C128 tervezése elbaltázott volt: egymásra hegesztettek egy halom különböző technológiát, ami aztán nem állt össze szerves egésszé - mindenhol bug és logikátlanság, az egyes összetevők sokszor mintha egymás ellen dolgoznának benne. (Ha bekapcsoltad a 2 MHz-et, elromlott a VIC; 64-es módból nem lehetett elérni a második 64k-t sehogy sem; a két CPU-t nem lehetett egyidőben használni stb.) Tovább kellett volna gondolni, és tervezni egy újat (ez addigra már nem ment nekik, úgy látszik).

Johnfive 2012.09.09. 17:16:04

@Isten Nyila: Közben ránéztem a CGA regiszter-kiosztásra: tényleg ua., mint a VDC. :)
Igen C128 tervezési baklövéseiről én is sokat hallottam.

Celtic 2012.09.09. 17:54:15

@Johnfive: Persze, az utasitashossz es a vegrehajtasi ido kozott nyilvan nicns egyertelmu megfeleltetes. Leggyorsabbak az INC/DEC es bitmozgato utasitasok voltak, leglassabb (aszem) a MUL (szorzas), de a leghosszabbnak mar a neve sem volt teljesen normalis :) Bar, a leghosszabb talan valami ugroutasitas volt, tavoli ugrassal.

C64-en nyolcbites volt egy utasitas, 8086-on meg 16 bites, bar ez lehet, hogy nem befolyasolta a sebesseget (utana kellene nezni vagy gondolkodni)

Mindenesetre a RISC-eknel ugye jellemzo a 8 bites utasitashossz, sok load/store utasitas, de ezenkivul keves extra utasitas es a sok regiszter. Ezert lehetettek kisebb frekin is sokkal hatekonyabbak - bar ez nyilvan fuggott a forditoprogramtol is...

Szoval, tenyleg nem egyszeru eldonteni, pontosan mitol volt jobb vagy rosszabb egy proci vagy gep, nagyon soktenyezos.

Celtic 2012.09.09. 17:59:44

@thinkEdem: Lattam en az mplayer-es sracok altal irt 4k demot:
fekete-feher szinben dolt betukkel az mplayer felirat futott rajta. Nem tudom, honnan lehetne leotlteni, sztem dosboxban futna. Ja, ugy emlekszem, tobb peldanyban futott a felirat, lentrol felfele.

Celtic 2012.09.09. 18:05:59

@Isten Nyila: Azert erosen elcsesztek az inkompatibilitassal :( Ma ugye meg mindig a 8086-os kompatibilitas terhet cipeljuk (nem 100%-osan, nyilvan, bar mar hallottam Linuxot 8086-on elinditani, holott min. 386 kell neki)
De az, hoyg a c128-on sem indultak el a c64 programok, az durva huzas volt :( Nyilvan a plus4/vc20/vc16 sem volt igazan kompatibilis se egymassal, se a 64-essel.

Adani 2012.09.09. 18:12:59

A legleső demó, amit életemben láttam az sztem az atom.exe volt még 386-os PC-n. Volt valami 20 k és villódzó betűk meg digitalizált hang is volt benne.

www.youtube.com/watch?v=sGAvYqLHsv0

Közben villogtatta flopi drive-ok led-jeit is, meg a billentyűzeten a gombokat.

Celtic 2012.09.09. 18:27:06

@neoteny: "Oda burjánzott..."

Koszi, megfogalmaztad a velemenyemet. Szep volt, jo volt, de nem mennek vissza megint a 80-as, 90-es evekbe, hogy semmi informaciot ne vagy csak alig talaljak meg. Neha belegondolok, hoyg mennyi mindennek most _utolag_ keresek utana, mert eloveszek egy regi konyvet/ujsagot es amit akkor nem ertettem, most konnyen megnezem.

Vagy egyszer a vonaton talaltunk egy napilapot, benne egy riporttal, ami olyan volt, mint egy Monty Python-jelenet (bar a riportalany komolyan gondolta), evekig idezgettuk, de nem tudom, mi volt az ujsag es melyik szama. Pedig most milyen jo lenne utananeuni a neten.

Szep volt, jo volt, de szerencsere elmult.

wowerman 2012.09.09. 18:40:11

Valahogy Tramiel nevét mindig Tamrielnek olvastam :D Amúgy szomorú történet az hogy tud pár év alatt becsődölni egy ilyen sikertermék gyártója. És sok ehhez hasonló sztori van. A következő lehet hogy a Zynga

dr. vuvuzelafan 2012.09.09. 19:13:46

@Androsz: Nagyon rá vagytok kattanva erre a 8k-s sakkra:) Igen, van, ha nem is 8k, de valami 9xxx byte-os .com program sakk volt anno, amivel játszottunk nem is keveset még XT-n. Roppant primitív grafikjája volt, de lehetett használni, és a méretéhez képest meglehetősen jól játszott. Még az is lehet, hogy valamelyik első CD-men el van téve az archívumba...

dr. vuvuzelafan 2012.09.09. 19:32:56

@Celtic: Igen, manapság nekem is eszembe jut néha, hogy akkoriban milyen kincs volt egy olyan ismerős, akinek a cégnél voltak különböző gyártói alkatrész-katalógusai, mert máshonnan nem lehetett még azt sem megismerni, hogy mi az az alkatrész, amit keressek a boltban:) Ma meg már a neten mindent megtalálunk, és valóban van olyan, hogy egy 25 éve megszerzett kacatról most találok normális infókat, ezért tervbe veszem, hogy akkor csinálni is kellene belőle valamit:) A mi gyerekeinknek ez az információhiány egyszerűen elképzelhetetlen lenne már.

Johnfive 2012.09.09. 19:36:02

@Celtic: Azt hiszem, ha nem %2 byte-ra volt igazítva az utasítás, akkor az 2 fetch-be került. PCjr.-nál minden utasítás két fetch-et "vont maga után".

Johnfive 2012.09.09. 19:37:38

@Celtic: "Szoval, tenyleg nem egyszeru eldonteni, pontosan mitol volt jobb vagy rosszabb egy proci vagy gep, nagyon soktenyezos."
Pontosan. Nagyban függött a szituációtól, hogy melyik architektúra bizonyult jobbnak.

rosettif · http://istennyila.hu/ 2012.09.09. 20:05:52

@Celtic: Dehogynem, a 64-es módban majdnem minden program futott rajta ugyanúgy. Ami igazából elcsesződött rajta, az az, hogy nem nagyon indult be a szoftverfejlesztés a 128-as üzemmódra később sem, azaz végül is a többlettulajdonságai csak parlagon maradtak, és minden 128-tulaj egyszerűen csak egy C64-ként használta a gépet. Alig-alig készült olyan program, ami kihasználta volna efölött a tudását - támogatás nélkül maradt végül is.

Celtic 2012.09.09. 21:52:02

@Isten Nyila: Egyrol beszelunk. Nativ 128-as modban nem volt ertelme hasznalni. '89 korul vettem a sajatot (sajnos, nekem senki sem hozott se Nyugatrol, apam meg mindig jobban szerette az italt, mint barmi mast), 39e volt 1571-es floppyval. _Akkoriban_ azt hittem, erdemesebb azt venni, mint c64-et. Nem volt az. Csak C64-kent hasznaltam.

Egyebkent regota eltunodok azon, ha nincs olyan elcseszett BASIC a C64-ben (grafika es hang teljes hianya), maskent bele van integralva egy Simon's, vajon akkor is ilyen kultikus gep lesz, akkor is ennyi program keszul ra? Elvegre, ha minimalis grafikat/hangot akartal belole kihozni, mar peek/poke kellett, ergo nem teljesitmenykenyszer volt, hogy assemblyt hasznaljon az ember, hanem az egyetlen lehetoseg. Vajon ha 2.0 Basic tamogatja (mint a 7.0 c128-on) a fenti dolgokat, akkor is ennyi nagy program keszul? Vagy egy darabig keszulgettek volna a hasznalhatatlan sebessegu fercmuvek es par nagy alkotas? De erre sose tudom meg a valaszt :)

ionsrác 2012.09.09. 22:31:33

istenem, a mai napig emlékszem arra, amikor először villantottunk fel a "rasztert" a "borderban". :)
visítottunk örömünkben, kb. 9-10 évesek lehettünk, az egyik első "gépi kódú" programunk ezt volt képes bemutatni. figyeltük a "raszterszámlálót", és 1 sorra időzítve minden képkockán megváltoztattuk a képernyő és a border színét, aztán vissza. ez volt a "raszter". :)

aztán onnantól már mentek a sprite-ok is ki a borderba, ahogy kell, meg előregyártott színes rasztereink voltak. jaj de szép volt. :)

valami olyan rémlik, hogy az FA-sorban (a 250.) kellett "összehúzni" a 25-soros képet 24-essé (vagy fordítva), ekkor arra képre kirajzolta az alsó és felső borderbe kitett sprite-okat. így aztán szép kis 50 herzes amatőr programocskákat írtunk. "demókat". :)

gyakorlatilag megterveztük, hogy minden képkocka kirajzolásánál melyik rasztersorban éppen mivel kell foglalkoznia a programnak (raszterszámláló!:), így darabokból, alrutinokból raktuk össze kis demóinkat. egy ciklus egy képkocka volt.
a késleltető 1 bájtos utasítás száma EA volt, ha jól rémlik. :))

a "színskálákat" és a 2 hatványait persze tudtam kívülről, és az iskolában kínomban kockás füzetben terveztem a sprite-okat és a 8x8-as karaktereket, még megvannak ezek a füzetek. :)

mennyire imádtam én ezt! az egész életérzést, amit ez a gép adott nekem. a játékokat, zenéket is. haverom rendes magnókazettán is hallgatta a c64-zenéket, amikor nem volt szabad bekapcsolnia a gépet. :)

nekem is meghatározó élmény lett, bár én végül vegyészmérnök lettem.
azt hiszem, be kell szereznem egy c64-konfigot, és elő kell vennem néha.

egyik kedvenc zeném (és játékom):

www.youtube.com/watch?v=Hm5Hjsm5NZ4

egyik kedvenc játékom:

www.youtube.com/watch?v=o1J7BPMhrAY

rosettif · http://istennyila.hu/ 2012.09.09. 23:33:19

@Celtic: Közvetetten tehát Bill Gates tette naggyá... ;-)

Karvaly 2012.09.10. 00:23:20

@Isten Nyila: hát ize - a portolásokbol az derült ki, hogy a Z80 kb. annyit tud, mint a 6510, a PC meg már egész más kategória volt: 10MHz-es XT-n (8088) folyamatos volt az Elite a fillezett vektorgrafikájával.

rosettif · http://istennyila.hu/ 2012.09.10. 02:35:19

@Karvaly: Szerintem a portolásokból csak annyi derül ki, hogy a portolást végző programozók mennyire voltak tehetségesek és szorgalmasak ott az adott környezetben épp.

rosettif · http://istennyila.hu/ 2012.09.10. 06:55:24

@Karvaly: Ha jól tudom, a Freescape engine-eket is pl. gyorsabbra tudták kicsiszolni Z80-as gépeken: a 3D számításnak jobban kedvezett az a platform. Egy-egy adott esetben ez sokmindentől függhet.

Adani 2012.09.10. 08:36:38

Nálatok is volt olyan játék, amit inkább a zenéje miatt töltöttetek be mint a játék miatt?

Nálam a Krakout meg az Aztech Challenge ilyen volt.

wowerman 2012.09.10. 09:45:15

@ionsrác: hű :)

hát ez a sztori :))

tök :)
jó :)
volt :)

Sic2 2012.09.10. 10:25:47

@lutria: Hali! Mivel haverom ott dolgozott akkor, megkérdeztem, hogy mi volt a szupertitok, de nem emlékszik...
:-)

"Igen, itt dolgoztam és valóban c64-en "dolgoztam", de nem emlékszem arra, hogy kilincsnélküli titkos ajtó lett volna, talán csak zárni kellett mindig, ha elmentünk, de a legtöbb irodával így volt ez akkoriban (ez az openoffice még nem volt divat). A programozókra már nem emlékszem, de szerintem semi különös nem volt bennük. Igaz, én 4 órát voltam csak."

Scagnetti 2012.09.10. 10:31:49

@Stöki: Azért a játék sem volt rossz. :) De a zenéje tényleg nagyon jó lett.

Karvaly 2012.09.10. 10:44:51

@Isten Nyila: jó, akkor mondjuk azt, hogy Z80-on csupa istenáldotta zseni, míg 65xx-en csupa fakezű dilettáns programozott, velem meg lehet egyezni :)

Celtic 2012.09.10. 12:07:36

@Isten Nyila: Hatigen, aranykeze van a sracnak...Hoygan adjuk el a szart jopenzert :( (Mas kerdes, hoyg jo ideje mar igen jo dolgokat gyart a cege, de nem is 3-4 fos, mint a c64 basic meg a dos 1.0 idejen)

De ez csak gondolat volt, kivancsi lennek, mas hoyg latja.

mnandy 2012.09.10. 13:28:22

Nahát, nagyon köszönöm Edmenek - ezúton is -, hogy elküldte ezt a linket, hiába, a fiatalságom! (ámbár az én fetőzésemet egy saját összeszerelésű PRIMO indította, de ez lényegtelen)

Viszont ide illik egy történet, amit egy Miskolcon továbbtanuló osztálytársamtól hallottam.

A németországi (NSZK!) testvéregyetem - mivel új, nagyobb teljesítményű és korszerűbb anyagvizsgálati szakítógéphez jutott, a régebbi, de még jó és jól használható gépét a miskolci egyetemnek ajándékozta. (Ha valakinek nem lenne világos, ezzel különféle fémek és ötvözetek, anyagok szilárdságát vizsgálják, befogják a mintát a gépbe, és az nyújtja (húzza), vagy nyomja, míg a darab el nem szakad, vagy össze nem roppan. Közben mérni kell egy halom paramétert, és utána azokból következtetni lehet az anyag viselkedésére, különböző terhelések mellett.)

Szóval, el is érkezett a miskolci átadás napja, beszédek, kis ünnepség, és a protokoll részeként a német küldöttség látogatást tett a gépműhelyben, ahova a kapott monstrum került (vagy kerülni fog, erre már nem emlékszem). A lényeg az, hogy a műhelyben éppen anyagvizsgálat zajlott, a miskolci "régi" géppel, tehát amit a miskolciak az adományozás előtt használtak.

Nézik a németek, egy jóval kisebb gép, mint amit ők adományoztak, de a maga kategóriájában teljesen korrekt. Közben épp elszakadt a minta, és kisvártatva megjöttek az eredmények is, egy a gép mellett álló sornyomtatóra.

Ez nagyon tetszett a németeknek, főleg a reszponzivitás, és kérték, hogy ha már itt járnak, szeretnének látogatást tenni abban a számítóközpontban is, ahol az eredményeket foldolgozták és a vizsgálat helyére továbbították.

Erre mondták a miskolciak, hogy nem értik, hát itt nincsen semmiféle számítóközpont, ott van a számítógép is, a nyomtató mellett (ami egy MPS-802, csak ha előbb írom, lelövöm a poént.)..

A németek először besértődtek, hogy palira veszik őket, nehogy má' egy ilyen nyolcbites hajszárítóvezérlővel lehessen olyan futásidejű és felbontású eredményt produkálni, amihez ők egy komplett klimatzált, nagygégpes géptermet használnak!

Aztán borult a protokoll, szünetet kértek a vizsgálatokban, és végignyálazták a kábelezést, a szakítógépet, a C64-et, a programot, és egyfolytában hitetlenkedtek..

Hiába, szegény ember akkor is kénytelen volt vízzel főzni, vagy abból megélni, ami van. Kreatív időszak volt, illetve másfajta kreativitást igányelt, mint manapság.

TrueY · http://qltura.blog.hu 2012.09.10. 14:42:10

@Adani: "Jajj! :) De amúgy igen, sokan voltak ,akik megkapták a kiképzést az akkori világújdonság telefaxból is, pl. anyáéknál is, aki akkor a SZÜV-ben dolgozott és bizony volt, aki a van kérdés?-nél megkérdezte, hogy csak azt nem értem ,hogyan megy át a dróton a papír."

Ennél régebbi ilyen anekdóta is van. A parasztbácsinak hosszan magyarázzák, hogy a modern izzólámpa hogyan működik. Bólogat, bólogat, majd a végén megkérdezi: "Ezt mind értem. De hogy folyik oda a petróleum?" ;)

Adani 2012.09.10. 15:32:05

@TrueY:

Vicc is van róla ugyebár a cigánysorra bevezetett áramról, ahol a poén az, hogy dróton dzsável a petró

Amúgy sok gond volt a nagyflopival is, sok telefont kaptak ügyfelektől, hogy nem megy, olyan ügyfél nem volt sok ,de megesett, aki kicsomagolta a tokból a lemezt és úgy rakta be a meghajtóba. De fordítva sokan berakták, meg ugye derékszögben elforgatva, sajnos több rossz megoldás is volt ,megváltás volt a kisflopi elterjedése, aminél csak akkor kattan be a helyére ha jól rakta bele, ott már élt a hülyebiztos mód. Nagyflopis élmény volt még, mikor mondták az ügyfélnek ,hogy miután betette a lemezt csukja be az ajtót is. Telefont félrerak ,ajtócsapás hang telefonba behallatszik. :) Meg az, akinek a gépe eszi a flopiakt, ez már PC-s korszakból. Ezt nem tudták mire vélni ,de pont anya volt a szerencsés ,aki "megnyerte" a helyszíni kiszállást így ő látta a flopit evő gépet. Régi PC-s ház és volt egy lyuk a meghajtó helyén meghajtó nélkül, oda tologatta be a flopit a júzer, és az meg leesett a gépház aljára. Volt is csodálkozás mikor egy előkerült csavarhúzóval szétszedték a gépet és ott volt soksok flopilemez. :) Letört pohártartóval nem találkoztak, az máshol történhetett meg, meg ugye a CD-s korszak később jött.

TrueY · http://qltura.blog.hu 2012.09.10. 16:51:24

@Adani: :)

Megtörtént eset volt, amikor a szupportos kollégám mondta egy hölgynek windows 3.11 termék támogatása közben, hogy csukja be az ablakot. Hallatszott a telefonban a tűsarkak kopogása és az ablak becsukása... :)

A 11"-os floppynál még az volt a jó, hogy azt még csak szakemberek használták, így nem nagyon tettük be elforgatva. :) A mágnes szalagról nem is beszélve...

Walter Hartwell White 2012.09.10. 16:52:23

@Adani: Nálam egy Scorpion nevű együgyű platformjáték, viszont a zenéje Maniacs of Noise volt.

Adani 2012.09.10. 17:49:55

@TrueY:

Vállalati informatikai biztonsági oktatáson hangzott el az oktatótól ( kötelező mindenkinek belépéstől számítva 3 hónapon belül, igen még az infósoknak is), az a történet, hogy a számítógép kiírta, hogy nem látja a nyomtatót, és még akkor is ezt írja ki mikor a monitor elé tettem, pedig most nem igaz ,hogy nem látja. Falióra generálissal meg mindenki találkozott, ugyebár mikor a Generális Falióra a lemezemet olvassa (General Faliura read drive a:).

Az viszont bizonyítottan megtörtént valahol, ahol faterom könyvelt hogy befészkelte magát az egyik gépre a One-Half vírus (tényleg erről sztem külnö retro-t lehetne írni ,mert tuti mindenki legalább egyszer találkozott vele, és nem volt kellemes élmény). Naszóval a One-Half tette a dolgát kódolgatta el a winyó szektorait és mikor már megvolt a fele, ahogy az lenni szokott Bootnál kiírta, hogy "this is one half". A titkárnők gyöngye féle okos, nélkülözhetetlen Gizike meg külső segítséget kérve, lefordította úgy ,hogy "van egy fél" ezt gondosan felírta, monitorra post-iten kiragaszt és a továbbiakban szart rá. Az One-Half a saját otthoni könyvelőgépre is rákerült, nem kis erőfeszítés volt levakarni, miután a vírusgazdáéknál már leállt a komplett rendszer, bizony órákig próbálkoztam a gép működőképesség tételével meg nézegettük mi mindent lehetne még megmenteni, mi van kimentve máshová és mi nincs. Ráadásul volt olyan gép ,ahol fogták a jó öreg F-Protot, és leszedették vele a vírust a majdnem teljesen átkódolt winyóról, az adatoknak meg ugye béke poraira. Egyrészt az volt a mázli ,hogy volt egy részéről mentés másrészt meg, volt már akkor dekódolóprogi, ami ilyenkor is tudott segíteni. Nálunk még nem volt nagy a baj ment nélküle is, és én tudtam ,hogy nem szabad leirtani,azonnal.

Phrascarica 2012.09.10. 17:53:49

@TrueY: ez már PC-s korszak, jön a faszi a boltba, hoz egy joyticket, hogy nem jó!
Kolléga: mi a baja
vevő: ha jobbra tolom balra megy, és fordítva, ha előre tolom hátra megy, stb
Kolléga: (gondolkozik 5 mp-et) és megfordítja a joyt, ... ...talán így próbálja meg :)

Dukefazon 2012.09.10. 19:17:53

Nekem ez a Donal Kacsa játszótér építős játék az első emlékem a C64-ről. Nagyon szerettük, csak az a fránya joystick port (asszem a 2-es) romlott el sokunknak. Meg persze a quickshot joy rugói :) A Creatures 2-t a mai napig a kedvenc játékaim között merem mondani. És IMÁDTAM az Amiga 500-asunkat! :D

Adani 2012.09.10. 19:26:54

@Dukefazon:

Az mekkora játék volt ,nagyon eltalálták. 5-6 évesen jó kis oktató játék volt, ugyebár a kasszából neked kellett kivenned a pénzt, kiszámolni, mennyi jár, mennyi játékot vehetsz belőle stb. Meg ugye mikor átmegy a játszótérre a síneken akkor jól láthatóan körülnéz előtte. A legjobb a vonatos munka volt, amivel a legtöbb suskát kereshetted, de a kedvencem a gyümölcsös volt ,ahol ha elbaxtad viccesen hápogott Donald. :)

Még homevideó is van róla, mikor 1993 tavaszán ezzel játszunk. A másik nagy kedvenc a David's Midnight Magic volt, jó kis családi flipperbajnokságok és sosem sikerült 5-ös szorzónál jobban felverni a pontokat, vagyis hát nem volt több 6-nél ,de sosem tudtam meg mi lesz, ha hatodjára is sikerül belőni a szorzóba. Meg ugye a felső bugyorba lövés, ahova ha hármat sikerül belőni kijön az összes. Asszem oylan 6-700 ezres pontokat gyártottam, aztán mikor a kikapcsolt 1541 drive miatt nem tudta kiirni a High score-t és a családi top listán csúcsot döntöttem, és emiatt nem lett meg az utókornak később meg nem tudtam bizonyítani.
Régi szép idők.

Phrascarica 2012.09.10. 19:30:44

@Adani: "a David's Midnight Magic"
Az a valaha volt legjobb flipper. Nálunk a cégnél még a PCs időkben is volt egy ('90.es évek elején) C64 David's flipperrel, melyen bárki játszhatott lazításképpen.

Adani 2012.09.10. 19:43:24

@Phrascarica:

És igen, az nagy játék volt.

Annál jobbat csak PC-n találtam az Epic Pinball sorozat, ahol összesen 12 asztal volt, köztük az Enigma, amit sokan utáltak, de én imádtam. A másik kedvenc a tengeres volt, meg az autós.

Stöki · http://iddqd.blog.hu 2012.09.10. 20:13:38

@Dukefazon: @Adani: És azt tudjátok, hogy a Larry-sorozat készítője, Al Lowe fejlesztette? :)

www.allowe.com/More/download.htm

dr. vuvuzelafan 2012.09.10. 21:01:43

@Phrascarica: Én most játszottam vele a nyáron szabi alatt pár estét igazi vason:) Jó volt, amikor a gimiben ott maradtunk este ketten-hárman flipperezni vele, és alig bírtak este kitenni minket, hogy zárnák az épületet:D

flea 2012.09.10. 21:31:33

@Adani: David's Midnight Magic nálunk is nagy családi kedvenc volt. Az 5x szorzó után a (játékindítás előtt is látható) cirkalmas Shoot Again feliratot lehetett "megnyerni", ami azzal járt, hogy mikor leestél, még egyszer te jöttél. Mai napság az ilyet leginkább Extra ball-nak hívják (pl. a WinXP-hez adott Space Cadetben is ez a neve... és sokkal, de sokkal könnyebb elérni :))

Amúgy VICE-n tökéletesen megy, még a késleltetések is ugyanazok. :)

Adani 2012.09.10. 21:58:45

@flea:

Azóta rájöttem, igen kaptál egy extra golyót. Volt mikor még anno 90 fölé ment a kis kockában a szám, de az istennek sem akart a szorzóba menni. Akkor kaptam idegbajt, máskor meg lazán akár 4x is egymás után be a szorzóba.

A másik nagy kedvenc volt a Burger Time, a hamburger összerakó.

Karl Friedrich Drais der Freiherr von Sauerbronn · http://darazskarcsi.blog.hu 2012.09.10. 22:34:14

@Adani: David's ben láttam egyszer kétmilliós high score-t. OLyan 2,6 M körül lehetett.

www.youtube.com/watch?v=KQaJ9sLMvmc

Nem tudom 99x5-nél miért engedi el....

dr. vuvuzelafan 2012.09.11. 10:14:34

A street-ponghoz nem tudok hozzászólást küldeni, "Hiba történt a komment elküldése során, kérjük, próbáld meg újra!"...

Stöki · http://iddqd.blog.hu 2012.09.11. 10:22:32

@dr. vuvuzelafan: Blog.hu mondjon le.
Rámentettem megint, próbáld meg újra. Nekem most ment.

Meridian74 2012.09.11. 10:47:38

Én '85-ös árra emlékszem, 29900Ft volt, karácsony előtt... nem is kaptam meg. '87-ben is ~25ezer volt még, ezért C+4-et kaptam, ami 17900Ft körül volt.

Meridian74 2012.09.11. 10:52:43

Ja, és '84-ben emlékeim alapján 20 Ft volt egy dollár... azaz 250$ akkoriban 5000 Ft volt, ehhez képest - mivel csempészáru volt - 40ezerért adták, szép kis summát lehetett leakasztani akkoriban ezzel.

Meridian74 2012.09.11. 11:02:25

egyébként valahol szkennelve nem lehet fellelni ezekt a régi újságokat, mint pl Mikrovilág, Bit-Let, stb?
Van néhány példány belőlük, nagyon feelinges visszaolvasgatni mik voltak akkoriban a szenzációs hírek, újdonságok :)

Pl a "Commodore Újság" megvan '86-'94-ig... Meg a Mikroszámítógép Magazin is, de az ami nagyon-nagyon hiányzik az a 2 hetente(?) megjelent Mikorvilág című újság... esetleg könyvtárban, ahol esetleg be lehet szkennelni ezeket?

ultravox 2012.09.11. 11:02:43

Azért a 3.5-es floppyt is tönkre tudták tenni:
Egyik ismerősöm, kicsomagolta a 10-es csomagot nagy lendülettel kivett belőle 1 3.5" floppy-t majd a "vasat" is letépte a floppyról "kicsomagolva" azt.
Szóhoz sem tudtam jutni hirtelen. Drága TDK floppy volt asszem. De nekem adta utánna és anélkül is működött nálam :)

Valandil 2012.09.11. 11:33:36

@Stöki: Azt a zenét külön felvettem magnóra. :)
(Még ma is el tudom dúdolni/fütyülni!)

TrueY · http://qltura.blog.hu 2012.09.11. 11:47:17

@Adani: Ó, a régi szép idők! Nem hiszem, hogy a felhasználók jobbak lettek... :)

@Phrascarica: A PCs joystick-ek azért sokkal jobbak voltak, mint a C64-es laprugós érintkezős izék! Mennyit forrasztottuk, meg csere-beréltük réz érintkezőre! Pedig volt 2 potméter bemenete, lehetett volna jobbat is csinálni.

Adani 2012.09.11. 11:47:31

@ultravox:

Az a kis vaslemez csak azért volt ,hogy védje a lemezt, de anélkül is ment, nekem is volt olyan flopim, ahol ez lötyögött és a meghajtóban maradt a vége, de nem oda Buda, kiszedtem belőle és a lemezt még használtam. A suliban volt pár gép anno, ahol Zip meghajtó volt flopi helyett, amihez tartoztak 120 megás lemezek, de mivel drága is volt meg szar is volt nem volt senkinek, meg persze ki venne 20k-ért olyan meghajtót, akkor már inkább +10-15k és CD-író. Ezek olyanok voltak, hogy egy motor adogatta ki a lemezt meg húzta be nem mechanikusan mint a régi jó flopi meghajtóknál. Szép is volt mikor áramszünet miatt bentragadtak a lemezek.

Meridian74 2012.09.11. 13:05:20

@Phrascarica: ez a demo 64K mérte nem elrugaszkodott sztem. Csak a kódrész összesen 64K, ami rendszerrutinokat hív meg DirextX alatt.

A legtöbb helyett a 3D-s objektek fogllahatnak el, de ott is lehet trükközni, ha szimetrikus az objektum, akkor elég csak a negyedét nyolcadát eltárolni, és amikor elindul a program, akkor a memóriában szépen felépíti a teljes objektet és utána már a megjelenítéskor az egészet számolja ki.

A zenében a hangminták sem igazi minták, hanem szinus, háromszög, fűrészfog, és négszögjelek, meg fehérzaj, amit hasonlóan pl a c-64 hangcsipjéhez ADSR-el és frekvenciával piszkálgatják. Ahhoz meg pár tucat byte is elég.

Meridian74 2012.09.11. 15:44:45

@ultravox: ismerem, innen vannak a meglévő részek :)

flea 2012.09.11. 15:51:22

@Meridian74: a DirectX meg maga több száz K, csak a dxgi.dll 643K Win7 alatt (SxS-ben talált korábbi változata 493 K).

Ezek a cuccok nem hasonlíthatók össze olyasmivel, ami egy 64K teljes megcímezhető memóriájú gépen fut úgy, hogy ha ki akarod használni mind a 64 K-t, akkor a gépi kódon kívül semmid nincs, még oprendszer sincs alattad, nemhogy grafikus könyvtár. (Cserébe ugye 320x200 a felbontása például.)

Meridian74 2012.09.11. 18:00:48

@flea: ez így van, de a programot valamin és valamilyen környezetben futtatod. Windowsos programot értelemszerűen winfos környezetben, ahol rendelkezésre áll sok-sok szolgáltatás. Mint pl. a DX. Ezt nem kell újból lekódolnia a programozónak, mert akkor a hardver drivereit is meg kellene írnia, és akkor is csak azon a gépen futna el, amin megírta. Egy másik PC-n, ahol más a vidkártya, merevlemez, hangkártya stb. stb. már nem.

MAGA a (futattható) PROGRAM és az ADATAI az, ami csupán 64K-ba elfér. Ez a compo erről szól.

Régen a DOS-os időkben volt is épp elég szívás ezzel, és mivel GUS-ra tolták a zenét, így SB-s kártyákkal pl hang nélkül lehett csak megnézni a demókat - ha egyáltalán hajlandó volt úgy elindulni...

flea 2012.09.11. 21:43:15

@Meridian74: ez mind rendben van, csak vannak, akik nem fogják fel, hogy a C64-re írt bármi nem úgy 64k, mint egy Windowson futó 64k-s demo... és ebbe a vitába kapcsolódtál be.

Adani 2012.09.11. 23:20:27

Na igen a gépi kódú programozás az már külön kategória, az nekem sosem ment, C64-en is leragadtam a BASIC-nél, gépi kódban regisztereket tologat az ember ide-oda, meg oldalakt gépel tele 3 betűs gépi kódokkal, Basicban meg 6 éves fejjel is tudtam tankönyvekbl tanulva hülyeségeket írni (10 print "hulye, aki elolvassa" 20 goto 10 RUN Meg sima összeadogató meg számláló programok, de csináltamvalami vérprimitív 21-ezőt is , persze semmi extra csak randomozással jöttek a számok és ha elérte a 21-et a lapod kiírta, hogy buktad. A gép meg mindig kért lapot, mert if-es volt vagyis addig kért ,ameddig kisebb vagy egyelő volt mint 21, igen 20-nál is kért. Nálad meg megkérdezte ,hogy kérsz-e még. Ennél komolyabb progit C64-re asszem nem írtam.

dr. vuvuzelafan 2012.09.12. 08:26:00

@flea: Erről az jut eszembe, amikor MCS51-es mikrovezérlőhöz illesztettünk VGA kártyát (8 bites ISA busz, Cirrus Logic és Trident 8900 volt az áldozat). Ott olyan szinten voltunk rákényszerülve a bitbuherációra, hogy még a kártyán lévő BIOS-t sem tudtuk használni, gyakorlatilag hetekig a BIOS visszafejtésével foglalkoztunk, mert a kártya felinicializálása a nulláról sehol nem volt dokumentálva, és persze típusonként különbözik is. Az init után már Kánaán volt, mert a Tech help-ből (ha még emlékszik rá valaki), meg a korabeli PC-s könyvekből kibányászott regiszterkiosztások szerint lehetett már kezelni szabványos VGA-ként ezeket is. A hardvert és a kártyainitet gyakorlatilag én raktam össze nulláról, de a "platformot" egy csoporttársam felhasználta később, írt rá egy jó kis blackjack progit, ha jól emlékszem ebből lett a diplomamunkája.

Dinkainka 2012.09.12. 21:29:11

PC-én a legkisebb méretű demo 128 byte volt.
www.youtube.com/watch?v=ElrZ9TFvySg
Forrás is van hozzá, ha valakit érdekel.
;rim
;128 byte intro
;
;by frag
;fsqrt.blogspot.com/
;pzagrebin@gmail.com
;30-04-2012

;Have no time for more.
;Enjoy!

org 100h
mov al, 13h
int 10h
push 0a000h
pop es

L: mov ax, di
xor dx, dx
mov si, 320
div si
sub ax, 100
sub dx, 160
mov bp, sp
pusha
fild word [bp-14]
fild word [bp-8]
fdiv st0, st1 ;t
fsincos ;cos(t)
fild word [bp-2] ;y
fild word [bp-6] ;x
fld st0
fmul st0, st0 ;x^2
fld st2
fmul st0, st0 ;y^2
faddp st1, st0 ;x^2 + y^2
fsqrt ;r
fist word [bp-12] ;bp <- r
fxch st0, st2
fpatan ;f
fld st0
fmul st0, st5
fistp word [bp-14] ;si <- f
fadd st0, st2 ;cos(t) + f
fsincos
fdiv st0, st2 ;cos(cos(t) + f)/r
faddp st4, st0 ;X_TEXTURE = sin(t) + cos(cos(t) + f)/r
fdivrp st1, st0 ;sin(cos(t) + f)/r
faddp st1, st0 ;Y_TEXTURE = cos(t) + sin(cos(t) + f)/r
fmul st0, st2
fistp word [bp-6]
fmulp st1, st0
fistp word [bp-2]
popa
test bl, 32
jnz B
sub al, bl
B: mul dl ;texture function
and al, 00011111b
jz Z
lea dx, [si+bp] ;background spiral
sub dx, bx
add dl, dl
cwd
mov dl, 16
Z: xchg ax, dx
adc al, 0
stosb
loop L
inc bx
in al, 60h
dec ax
jnz L
ret
Ha valakit érdekel, 128 bájtos játékot is írtak PC-re.

Dukefazon 2012.09.12. 22:01:01

@Stöki: Wow, nem is tudtam! Köszi! :)

CargoSGR 2012.09.13. 00:39:58

Akinek van jó kis 80-as évekbeli C64 scene anyaga, az adja át, nehogy felkopjon az állunk a Tehernapló blogon! ;)

Jöhet nyugodtan a privi!

Mc Master 2012.09.16. 19:57:04

@Dinkainka: köszi, ez elég látványos!

pc guru-e vagyok (törölt) 2012.09.19. 10:47:01

Az én szüleim eléggé le voltak maradva és vannak most is számítógép téren. Emlékszem, olyan '97 környékén vett apám egy commodore 64-et 5000 Ft-ért. Addig Commodore 16-unk volt, engem mondjuk nem hozott lázba az sem. De én akkor még kislány voltam.

algi 2012.09.19. 16:41:47

@pc guru-e vagyok: Akkor a Plus/4 kimaradt neked? Nekem az volt a kedvencem.

Bobby Newmark 2012.09.21. 14:34:34

@Adani: Win95 mondott olyat, hogy "Not ready olvasni a meghajtót A:". Azon sokat röhögtünk.

Egy haveromnak volt onehalf, ő is csak akkor vette észre, mikor már bootolásnál írta. De ő is simán le tudta irtani, meg visszaszerezni az adatait.

Én meg anno fogtam vírust "kézzel". Fogtam egy biztosan vírusmentes, rövid exe-t lemezről, asszem pkunzip.exe. Megfertőztettem a vírussal a fájlt, megnéztem, mivel lett nagyobb, aztán rákerestem DosNavigatorral egy szakaszára. Aztán töröltem mindent, amiben az a vírusszakasz benne volt. Kézzel megkeresni az ugrás parancsot a gépi kódban visszafordítás nélkül azért nem ment... :P

Adani 2012.09.21. 16:40:23

@Bobby Newmark:

Nincs kész olvasás meghajtó A: én ilyenre is emlékszem, ill. a "kompatíbilis" is ha jól emlékszem a Win95-nél mindenhol el lett baszarintva és így hosszú í-vel lett írva mindenhol a súgóban.

rosettif · http://istennyila.hu/ 2012.09.21. 19:31:13

Aki visszasírná a régi jó zéikszes, komondoros, geoszos... stb. időket (amikor még mindent Assembly-ben csináltak és szénné optimalizálva a hardverhez), és kíváncsi rá, milyen lenne mindez mai környezetbe átültetve, annak jó hír, hogy ma is van egy ilyen operációs rendszer PC-re, a MenuetOS (vagy rövidítve MeOS). Teljesen modern (64-bites, multiprocesszoros stb.), ugyanakkor full Assembly-ben készülget, kitartóan több, mint egy évtizede már. (Utóbbira kellő magyarázat az, hogy hobbi projekt, kevés fejlesztővel, szabadidővel...)

Még mindig csupán félkész állapotú béta verziós, de már így is csomó mindent tud: modern GUI, átlátszó ablakokkal, drag'n'drop, meg minden, ami kell. Preemptív multitaszk, webböngésző, DVD- és mp3-lejátszás, játékok (pl. Quake, Doom). Lehet vele tévét nézni, webkamerákat, USB eszközöket támogat. Plusz a hozzávaló fejlesztőrendszer, a FASM.

És ami a slusszpoén: jelenleg az egész elférhet egy floppy lemezen. Úgy is mondhatjuk, hogy ez a méret hozzávetőlegesen a 0.01%-a (az egy-tízezrede) a Windows-nak.

Érdemes lesz ránézni majd pár év múlva, hová fejlődik... A honlapja:

menuetos.net/

Itt pedig egy elég régi (három évvel ezelőtti) interjú a készítőivel:

egalizer.hu/informatika/nyilt/menuetos.htm

narghil 2012.09.22. 23:05:10

@Bobby Newmark: Én a PifPaf vírust "fedeztem fel" így... és még vissza is tudtam állítani a fertőzött COM állományokat egy Pascal progi segítségével! :) Az EXE-ket már nem tudtam, azokat nekem is törölni kellett...

Serio (törölt) 2012.10.11. 12:02:54

"Magyarországon számtalan kisebb-nagyobb cég használta könyvelőgépként, attól a téveszmétől félrevezetve, hogy az egyértelműen hobbicélokra kifejlesztett gép rendelkezett minden olyan perifériával..."

Látszik hogy nem értetted meg Tramiel gondolkodásmódját.
Ő kifejezetten "mindenkinek" szánta a gépet, egy az egyben J.D. Rockefeller, illetve a Standard Oil üzletfilozófiáját (minél olcsóbban, minél többet, mindenkinek) ültette át a számítástechnika területére.

A C64 nem "egyértelműen hobbicélra" kifejlesztett gép volt, a fénykorában tökéletesen felvette a versenyt olyan gépekkel, amiket munkacélra gyártottak, igazi különbség csak az árban (és a szoftverellátásban) volt, illetve abban, hogy ezekkel a "felnőtt" gépekkel ellenben a C64 képes volt arra, hogy videojáték-színvonalú grafikát, és szintetizált zenét állítson elő.

Idővel persze lehagyták a "komolyabb" gépek, de a nyolcvanas évek elején ez egy nagyon is felnőtt konfiguráció volt. (Amikor Magyarországra bekerült, akkor pedig itthon még nem voltak elérhetők, vagy a hazai pénztárcák számára megfizethetetlenek voltak az IBM PC és Apple számítógépek, amik addigra valóban magasan túlszárnyalták a C64 képességeit.)

Szóval semmiféle téveszméről vagy félreértésről nincs szó. Ez egy teljesen tisztességes gép volt, és sokak számára - gondoljuk a nyolcvanas években teret nyerő családi kisvállalkozásokra, "maszek" boltokra - az egyetlen, amit meg tudtak fizetni.

Serio (törölt) 2012.10.11. 12:09:36

@Isten Nyila: Azt azért nem árt nem elfelejteni, hogy a mai C fordítók gyakran optimálisabb kódot állítanak elő, mint egy átlagos ASM kóder, pláne ha siet és épp koffeinhiánya (vagy túladagolása) van.

rosettif · http://istennyila.hu/ 2012.10.11. 14:53:23

@Serio: Természetesen ezt nem tagadja senki. Sőt, a mai világban meg még inkább, amikor az x86 eredeti utasításkészletéhez képest olyan elképesztő mennyiségű bővítések vannak (a többedik generációjú SSL, MMX stb.), hogy a sokezernyi lehetséges utasítást és szintaxist még megtanulni és fejbentartani sem képes már egy ember, ezt egy C fordító jobban végzi helyette. Mikor utoljára programoztam benne 486-oson, már akkor kvázi ufónak néztek miatta, hogy fejlesztéskor fejben optimalizáltam az utasítások sorrendjét, hogy minél kisebb legyen közöttük a dependencia (akkoriban volt újdonság, hogy a Pentium procik több utasítást tudnak végrehajtani egy óraciklusban, így gyorsulhat a kód, ha nem függenek egymástól), pedig akkor szó sem volt még több magról és többszálúságról.

És mégis... Milyen megdöbbentő látni, hogy míg ma egy Windows olyan 10-15 GB, addig ez a MenuetOS 1.5 MB-ban benne van. Nemcsak néhányszoros, hanem több nagyságrend a különbség. Ez az egész fejlesztői szemléleten múlik, melynek nyilván csak az egyik eleme az alkalmazott programnyelv.

Mc Master 2012.10.11. 15:14:41

@Isten Nyila: először csak azt láttam, hogy "nagyságrend különbség"?? tízszeres: 15 - 1,5...aztán feltűnt hogy GB és MB. Szurkoljunk nekik, egy ilyen erőforrásokkal takarékoskodó OS azt jelentené, hogy nem kéne egy darabig gépet vennie az embereknek... Windows, LOL

Serio (törölt) 2012.10.16. 16:42:58

@Isten Nyila: Naja, azt mondjuk nem árt nem elfelejteni, hogy a Windows mitől 5-10 giga.
Mert nem a szigorúan vett oprendszer az ami annyi belőle, hanem a "körítés".

Ugyanez van az OSX illetve a Linux rendszerekkel is. Egy OSX Mountain Lion install jó 10 gigát megeszik, de egy használható minimális rendszer karakteres interfésszel (PureDarwin) már csak megabájtokban mérhető. Linuxból a mai napig tudsz olyan installációt összerakni, ami elfér egy floppy lemezen, de az átlag installáció abból is gigabájtos méretű.

Nagyon érdekes kísérlet a MenuetOS ettől függetlenül... Csak épp azt példázza, hogy manapság nem a számítógép kapacitása, teljesítménye a szűk keresztmetszet, hanem a fejlesztő. :)

DocBulywood 2013.06.01. 21:27:14

@Isten Nyila:
Azt hiszem, h a $D030-ba írogattak egyes programok, ami ugye a 64-es üzemmódban a VICII-nél elrontotta a képet, mert ez a 2MHz-es üzemmód ki/be kapcsolója volt.
Ez volt az egyik ok, amiért nem 100%-os volt a C-64-es üzemmód.

Egyébként meg assembly-ben el lehetett érni a VDC-t C-64 alól, temp-ként használni, illetve le lehetett olvasni a numpad-et is.

Például milyen jól mutatna C-128-on játszva C-64 üzemmódban mondjuk a Lands Of Lore, mert akkor a numpad-ról lehetne jobbra-balra menni, a VDC-ben meg eltárolni a következő pálya/képernyő adatait, a sprite-okat, oda előre betölteni az adatokat a floppy-ról. Némi gyorsulást okozna, mint natív C-64-en játszani.

Mondjuk érdekel, hogy az Ultimate Newcomer-t C-128-on játszva vajon kezeli a numpad-et? Ugyanis könnyebb lenne "közlekedni" a játékban vele, mint (Angelina) Jo(l)y-val.
süti beállítások módosítása