Vlákno názorů k článku Radost z programování od Arthur Dent - se mi vrátila před pár měsíci, kdy jsem...

  • Článek je starý, nové názory již nelze přidávat.
  • 22. 3. 2005 10:56

    Arthur Dent (neregistrovaný)
    se mi vrátila před pár měsíci, kdy jsem začal programovat RISCové jednočipy... v assembleru... a v tom assembleru si teď píšu interpret FORTHu... Masové využití asi možné není, ale mě to baví a mám z toho radost - jak na ZX, když se mi podařilo udělat nápis v BORDERu. Doporučuju!
  • 22. 3. 2005 11:01

    kubik (neregistrovaný)
    Ja je uz programuju v C, neb tim vyrazne stoupla ma produktivita, ale souhlasim, ze to je asi tak nejvetsi zabava, kterou si v dnesni dobe muzete s programovanim uzit, a ma to docela blizko k osmibitovym casum :-)
  • 22. 3. 2005 11:13

    Arthur Dent (neregistrovaný)
    Produktivita je jedna věc, druhá je "psaní pro radost"... A psát v C, když mám k dispozici 4kB paměti, se mi moc nelíbí. Tam jste ochuzen o ten báječný pocit "Mám 56 bajtů volných - co by se do nich dalo ještě naprogramovat?" :)
  • 23. 3. 2005 11:37

    kubik (neregistrovaný)
    Podle me se produktivita a psani pro radost nevylucujou. Svuj prvni projekt pro AVR 90S1200 jsem psal v assembleru a zabralo mi to minimalne mesic. Obdobnej projekt pro ATMega8 v C byl otazkou dvou odpoledni a od te doby, co jsem narazil na AVRlib, si nemuzu WinAVR (GCC pro AVR) vynachvalit. Nemusim se zabejvat opakovanym vynalejzanim kola (obsluha LCD, casovace, UART) a muzu se soustredit na vlastni aplikaci. Assembler se obcas hodi (SW implementaci slave portu jsem psal v asm), ale muj dalsi hobby projekt zahrnuje i MMC kartu a psat v asm obsluhu FAT16/FAT32 se mi fakt nechce :-)
    4KB vetsinou postaci - do 8KB se mi vesla obsluha LCD, seriovyho portu, casovace/PWM, jednoducha implementace printf() a asi pulsekundovej .WAV soubor.
  • 23. 3. 2005 15:25

    Arthur Dent (neregistrovaný)
    Samosebou, na "vymyšlená kola" (UART, LCD apod.) mám přeci odladěné rutiny v ASM :)

    Ale na psaní obsluhy FAT v ASM bych taky (už) neměl žaludek. :)
  • 23. 3. 2005 0:35

    Michal Kubeček (neregistrovaný)
    Nápis v borderu? To už trochu přeháníte, pane kolego, není-liž pravda? :-)
  • 23. 3. 2005 1:19

    Zedik (neregistrovaný)
    Neprehani, je to docela elementaritka. Daleko horsi je plynuly scroll, kde se musi casovat opravdu po T-ckach. Viz Sentinel od Mika Follina.
  • 23. 3. 2005 10:51

    Michal Kubeček (neregistrovaný)
    Byl bych rád, pokud byste mi to předvedl. Spočítejte si, jak rychle byste musel tu barvu přepínat, abyste dokázal pozicovat horizontálně. Pak si zkuste vzpomenout, jaká byla frekvence časovače Spectra. Pak si vezměte kalkulačku a počítejte: samotný obdélníkový obraz měl 256x192 pixelů, ale pokrýval relativně malou oblast obrazovky, takže asi Spectrum moc neošidím, když budu předpokládat, že velikost celého obrazu bude tak 400x300. To je 120000 pixelů, tedy (při 50 Hz) 6000000 pixelů za sekundu. Vzhledem k tomu, že frekvence procesoru byla 3.5MHz, vychází mi to asi půl taktu na pixel. Nejlevnější instrukce měly tři takty, na přepnutí barvy jste navíc potřeboval OUT, tedy relativně drahou (tady už mi paměť nesloutí, ale bylo to asi 15-20 taktů) a navíc ještě nějaký LD, protože OUT fungoval jen s akumulátorem. Budu-li počítat nízko, nepřepnete barvu rychleji než za 20 taktů, což vám dává nějakých 35 pixelů.

    Takže vodorovné proužky určitě, s tím jsme si hráli asi všichni. Ale nápis, tomu prostě nevěřím.

  • 23. 3. 2005 11:14

    re076 (neregistrovaný)
    Napis v borderu bylo na Spectru skutecne mozne naprogramovat. Vase pocty docela sedi, takovy napis mohl mit jen par znaku. Nejak se mi zastesklo, asi oprasim krabici na skrini :)
  • 23. 3. 2005 11:51

    Arthur Dent (neregistrovaný)
    Ale tomu klidně věřte... Stáhněte si emulátor RealSpectrum (nebo oprašte to co máte na skříni) a stáhněte si MDA demo od Busysofta... A uvidíte...
  • 23. 3. 2005 12:05

    Michal Kára (neregistrovaný)
    Proc neverite - vzdyt Vam to vychazi :-)

    Uvedomte si, ze nejste omezen hranicemi tech pixelu, ty muzete posouvat jemneji. Takze se do 5-ti pixelu na pismenko vlezete. To dava 7 zobrazenych znaku. A ty napisy byly skrolovaci :-)
  • 23. 3. 2005 12:10

    Michal Kubeček (neregistrovaný)
    Očividně si pod termínem nápis představujeme každý něco jiného…
  • 23. 3. 2005 13:56

    PaJaSoft (neregistrovaný)
    Kolego, zabruste na www.worldofspectrum.org a opraste gumaka, byl-li jste jeho vlastnikem, pak pokracujte v diskusi...

    A cto radsi nevytahuji dalsi efektovou rovinu s dvema videoram (taktez ovladane na jeden OUT) na 128+

  • 23. 3. 2005 8:04

    Jirka22 (neregistrovaný)
    Pozor neplest bordeR a bordeL !!
    Pro nezasvecene: border byla okrajova cast obrazu na monitoru (spise TV) ktera oklopovala vlastni zobrazovanou grafiku. Bylo mozne pouze nastavovat jeji barvu poslanim prislusne hodnoty na vystupni port. Umeni spocivalo v tom, ze bylo nutne tu barvu rychle prepinat v realnem case tak, aby tam vykreslovaci paprsek televize vytvoril nejaky napis, ktery navic plynule rotoval. To byla skutecna frajerina.
    Jirka
  • 23. 3. 2005 10:52

    Michal Kubeček (neregistrovaný)
    Ha ha ha. Máte mne za blbce? Zjevně máte… váš problém. Jinak viz odpověď pro Zedika.
  • 23. 3. 2005 13:53

    PaJaSoft (neregistrovaný)
    Kolego, koukam, ze mate docela zasadni mezery ve vzdelani...:-)

    Dalsi vyuziti, krome psani a kresleni (nepamatujete si predelane Busyho demo s carama na demo s carama, ale vcetne borderu?!) byl treba indikator volume pro AYcko apod... trochu mi to pripada, ze pokud jste nevidel, tak neexistuje, bacha na tento pristup...:-)

    Co treba dalsi dodelana kravinka do borderu pri nahravani z kazetaku... dokonce i hry se daly behem toho (loadu) hrat... joj, to byly casy...:-)

    PS: Nemluvim o emulatorech a lepsich strojich s CPU Z80 uvnitr (treba SamCoupe), mluvim o klasickem gumakovi, pripadne 128+2 (nikoli A varanta)...

  • 23. 3. 2005 14:52

    Michal Kubeček (neregistrovaný)
    Mezery ve vzdělání nemám. Čáry v borderu samozřejmě znám (třeba autorův Podraz 2) a hrál jsem si s nimi samozřejmě taky. Jako ostatně každý, kdo Spectrum nepoužíval jen na hraní her. Ale nápis je něco úplně jiného, viz např. můj dnešní příspěvek z 10:51. Pokud ovšem myslíte nápisem obří písmena, ze kterých je vidět malinký kousek, pak ano, to by šlo. Jen v tom nevidím smysl, je mi líto.
  • 23. 3. 2005 15:14

    PaJaSoft (neregistrovaný)
    Nezlobte se na mne, ale dneska mi pripadate trosku zvlastni...

    Pokusim se objasnit. Stejne jako plynuly obraz neni ve skutecnosti plynuly, je to jen iluze, kdy se ukazalo, ze obraz menici se dostatecne rychle (za obvykle se povazuje 24 snimku) je vniman lidskym okem jako plynuly pohyb - samozrejme, je to iluze, stejne jako je iluze 3D projekce, kdyz je vysokou rychlosti rotovan nejaky utvar...

    Chcete rici, ze to, co jste dlouha leta videl na televiznim prijimaci, pripadne na CRT obrazovce nebyl obraz, napis, ale pouze nejaka nedokonalost, ktera ma od krasnych malovanych hieroglifu daleko.

    Ale zpet tedy k tomu obrazu, co jsme generovali via ULA... Pro zacatek Vam doporucuji shlednout treba jiz zminene MDA demo od BusySofta. Jako dalsi Vam mohu uprimne sdelit, ze v BORDERu se nejen psalo velkym pismem, ale i podstatne mensim (ano, nebylo to 80 znaku na radek), do BORDERu se zobrazovalo kde co... - temi carami, ktere jsem minule zminil jsem samozrejme nemyslel chaotickou, byt barevnou, smesici vodorovnych pruhu, ale skutecne to, ze byla opticky zobrazena cara z leveho horniho rohu do praveho spodniho tak, ze neco jako BORDER neexistovalo. Dalsi, co mne napada, byl treba svisly Volume Bar vpravo nahore (VSECHNY 3 kanaly!!!) o sirce asi tak 2 standardni znaky na kazdy kanal! Dalsi vychytavka byla variace na predchozi, ale ve stredni casti obrazovky - jeden kanal vlevo v BORDERu, druhy kanal uprostred (v radnem SCREENu), treti v pravem BORDERu. Dalsi treba scrolling znaku zprava do leva, rychlost jste ovladal na klavesnici a mohl jste hybat vlevo vpravo bez ohledu, ze by neco jako BORDER existovalo (ano nebylo to pismenko 8x8 pixelu!) Takto bych mohl dost dlouho pokracovat... ze jste to nevidel na vlastni bulvy mne moc nezajima, asi jste se o tuto oblast ne zrovna peclive zajimal.

    Dalsi soudek, kteremu asi nebudete verit je fakt, ze SCREEN spectra (od 128cky vyse) nemel (byt technicky deklarovane) pouhych 192x255 bodu, ale presne dvojnasobek bud v X nebo Y smeru (ale ne v obou soucasne), stejne jako davno padlo dogma, ze ULA umi jen 8, resp. 16, barev... omyl, tato ULA byla schopna vykouzlit tisice barevnych odstinu a to dokonce lepe nez SVGA v te dobe..., ale to je zase na delsi povidani.

    Pokud Vam odhadem asi tak 6-8 pismen pripada jako obri za situace, kdy standardne je na obrazovce na radku 32 znakovych pozic (tedy 3-4x zvetseni) - casto fikane puleno (ano kazdy znak lze vykreslit do 8x4 pixely), pak se neshodneme, stejne tak rikam, ze ty pismena byla jeste hooodne hruba na to, co a jak presne se dalo do BORDERu kreslit - viz zminene volume bary, scrolling, nikoli vodorovne cary apod.

  • 23. 3. 2005 23:09

    Michal Kubeček (neregistrovaný)
    Mimochodem, když o tom teď zpětně přemýšlím, nejsem si ani tak úplně jistý, jestli opravdu stačil na přepnutí barvy borderu jeden OUT a nemusely být dva. Ale i kdybych vzal těch vašich dvanáct taktů, máme to 21 (spectrovních) pixelů, takže i kdybych se na hlavu postavil, budu na písmeno potřebovat minimálně 63 pixelů (dvě svislé nožičky a mezera mezi nimi, a to některá písmena budou vyžadovat hodně fantazie), což odpovídá osmi klasickým znakům, ne čtyřem, jak se snažíte tvrdit.

    Všechny ty úžasnosti, o kterých tak samolibě předpokládáte, že si je nedokážu představit, si nejen představit dokážu, ale je mi i celkem jasné, jak bych je udělal. Jen u toho nápisu (má-li to být něco, co lze skutečně označit za nápis a nemá-li toho kus být mimo border) si lehce spočítám, že to není možné. Dokonce si nejen dokážu představit, ale ve svých programech jsem prakticky používal, písmena o jiných šířkách než osm nebo čtyři pixely (kterými se mne snažíte ohromit). A nebyl jsem sám, třeba taková ta databáze/kartotéka od 602 (jméno mi vypadlo) umožňovala přepínat mezi všemi šířkami od čtyř do osmi. Takže, prosím, vezměte na vědomí, že opravdu nepoučujete ubožáka, který nikdy Spectrum neviděl ani z rychlíku.

  • 24. 3. 2005 7:23

    Arthur Dent (neregistrovaný)
    Víte co je na Vás fascinující? Jistý si nejste, sám přiznáváte, co všechno vám už vypadlo (ta databáze byla pd Petra Adámka a jmenovala se Datalog), ale hádal byste se do roztrhání klávesnice... :) Jestlipak jste si, místo psaní komentářů, počítání, že "to prostě nejde" a definic slova "nápis", zkusil stáhnout to MDA demo a spustit ho?

    Emulátor s přesným časováním máte tady: http://www.ramsoft.bbk.org/realspec.html

    MDA demo máte tady: http://www.worldofspectrum.org/infoseek.cgi?regexp=^MDA+Demo$&pub=^Busy+Software$
  • 24. 3. 2005 11:19

    Michal Kubeček (neregistrovaný)
    No tak sorry, že nejsem jako vy, supermani, a na rovinu přiznám, že si po patnácti letech nepamatuji všechno úplně dokonale. Jinak jsem na vaše naléhání podlehl, po několika měsících opět spustil Windows jinak než pod vmware a zkusil to demo. Za prvé mne poněkud překvapuje, že mi jako ukázku možností Spectra předhazujete věc, která vyžaduje Spectrum se 128 KB paměti, tedy poněkud speciální záležitost, očekával bych něco pro normální Spectrum (měl jsem celou dobu pocit, že se bavíme o něm). Na první pokus mi to zavěsilo Windows, na druhý už to běží.

    Je to hezké, to ano. Ale při nejlepší vůli nevidím nic, co by odporovalo něčemu z toho, co jsem napsal. Ta písmena jsou ještě větší a zdeformovanější, než jsem očekával, na šířku obrazovky (včetně borderu) se vejdou přesně čtyři. Takže, je mi líto, nic uznávat nebudu, s nápisem v borderu jste to přehnal.

  • 24. 3. 2005 11:26

    PaJaSoft (neregistrovaný)
    Krome toho, ze MDA demo je ve dvou variantach (coz jste taktne nepodchytil:-r) - 48 verze je nahravana na nekolikrat, 128 verze se nahraje cela, to NAPROSTO A VUBEC NIC NEMENI na tom, ze po HW strance a efektech, o kterych se tu bavime je to identicka zalezitost... az na drobnosti, ale urcite vite co znamena, ze potrebujeme na 128 mit 48 rezim s povolenym strankovanim (hint - print usr 0)... - a pokud se nepletu, tak i to MDA demo PRESNE TENTO REZIM vyzaduje (on jde +- detekovat).

    Samozrejme nemohu vedet, zda-li MDA demo dostupne na www.worldofspectrum.org je obsazeno v obou variantach, kdyz je to dnes zbytecne...

  • 24. 3. 2005 13:44

    Arthur Dent (neregistrovaný)
    Pokud si nepamatuji, tak nevynáším kategorické soudy že něco "nelze" a že někdo někoho považuje za nedouka. Mohlo by se mi totiž stát, že bych se blamoval. Podobně jak jste to předvedl Vy. Ale zpět k věci:

    Není potřeba 128k paměti. MDA Demo běží na ZX128 proto, že používá AY hudbu a je napsáno pro frekvenci procesoru ZX128, rutina na scroll v borderu zabírá asi 4kb. Na "gumáku" byl podobný efekt vidět na začátku hry Sentinel (už to tu někdo psal, dokonce i F. Fuka se nad tím rozplýval ve svých Počítačových hrách).

    Ale jinak máte pravdu: Nápis to nebyl! Stejně jako Palm není počítač (nestrčím do něj disketu) a dřeváky nejsou boty... Na mé radosti z programování (o kterou tu šlo) to ovšem nic nemění. :) Hezký den.
  • 23. 3. 2005 15:18

    Arthur Dent (neregistrovaný)
    A vracíme se obloukem na začátek... Já psal o "radosti z programování" - a radost mohu mít často i z něčeho, co naprosto postrádá v cizích očích smysl.

    Mimochodem, bez impertinencí o vzdělání a podobně: Když jsem psal "nápis v borderu", tak jsem měl za to, že se "mezi námi Spectristy" ví, o čem se mluví. Asi jako když řeknu "Udělal jsem multicolorový efekt" - a Vy se budete hádat, že byly jen dvě barvy na čtverec 8x8 a že "pseudografika" 4x4 pixely NENÍ multicolorový obrázek tak jak si ho Vy představujete... Nebo když napíšu "64 znaků na řádek" - budete se hádat, že pak na jeden znak připadají na šířku tři pixely a to podle Vás není znak?

    A k tomu příspěvku z 10:51, kde píšete: "Nejlevnější instrukce měly tři takty, na přepnutí barvy jste navíc potřeboval OUT, tedy relativně drahou (tady už mi paměť neslouží, ale bylo to asi 15-20 taktů) a navíc ještě nějaký LD, protože OUT fungoval jen s akumulátorem. Budu-li počítat nízko, nepřepnete barvu rychleji než za 20 taktů, což vám dává nějakých 35 pixelů."

    Nejkratší instrukce měla čtyři takty. OUT má samosebou i tvar OUT (C),r (12 taktů), takže "OUT jen s akumulátorem" není pravda. Žádné LD před OUTem není taky potřeba, věřte nebo ne, takže přepnu barvu každých 12 taktů. Mezi námi - to že nevíte jak to udělat ještě neznamená, že to udělat nelze.
  • 23. 3. 2005 15:40

    Michal Kubeček (neregistrovaný)
    Nejkratší instrukce měla čtyři takty. OUT má samosebou i tvar OUT (C),r (12 taktů), takže "OUT jen s akumulátorem" není pravda. Žádné LD před OUTem není taky potřeba, věřte nebo ne, takže přepnu barvu každých 12 taktů.

    Dobrá, trochu mne zklamala paměť. Měl jsem pocit, že zatímco na 8080 měly nejkratší instrukce 4 takty, na Z80 některé měly tři, asi tedy ne. Taktování OUT jsem si samozřejmě nepamatoval přesně a to, že Z80 jako rozšíření zavedla OUT i jiného registru než A, to mi uniklo (8080 to určitě neměla, takže samosebou určitě není na místě).

  • 23. 3. 2005 15:46

    Arthur Dent (neregistrovaný)
    Pokud se bavíme o ZX Spectru, které mělo od začátku procesor Z80 a OUT (C),reg používalo např. i na procházení klávesnice, tak "samosebou" samosebou na místě je...

    8080 neměla víc věcí, ale taky nikdy nebyla ve Spectru, takže mi poněkud uniká smysl té závorky.
  • 23. 3. 2005 22:53

    Michal Kubeček (neregistrovaný)
    Smysl té závorky je v tom, že se snažím vysvětlit, proč jsem předpokládal nutnost použití instrukce navíc. Protože na rozdíl od privilegovaných jedinců jsem získal Spectrum až relativně pozdě a do té doby jsem musel vystačit s PMD-85 na kroužku, byl jsem nucen pracovat i s assemblerem 8080. S odstupem let už si detailní rozdíly mezi těmi dvěma procesory nepamatuji tak přesně. Slovo samosebou na místě není proto, že nebyla-li ta instrukce v 8080, jejímž rozšířením Z80 je, pak ji rozhodně nelze považovat za přirozenou a samozřejmou výbavu tohoto typu procesoru.
  • 24. 3. 2005 7:15

    Arthur Dent (neregistrovaný)
    Nechápu popravdě důvod, proč do toho všeho stále mícháte 8080, když jde řeč o Spectru. I já jsem na něm začínal, ale ve Spectru jsem měl Z80. A u Z80 ta instrukce byla samozřejmá, stejně jako u něj byl samozřejmý R registr a instrukce EXX. A Z80 není definován jako "rozšířený 8080", je to jiný procesor, s 8080 kompatibilní na úrovni instrukčního kódu. Rozšířený 8080 má označení 8085.

    Vaší terminologií řečeno: Instrukci MOVE.L D7,D6 u procesoru 68000 rozhodně nelze považovat za samozřejmou, protože u jeho předchůdce, procesoru 6800, nebyla. Člověče, uznejte že jste se sekl a nesnažte se obhájit takovouhle demagogií...
  • 24. 3. 2005 10:37

    Michal Kubeček (neregistrovaný)
    Proboha, vy jste jak navedený. Byl tu dotaz, jak jsem mohl předpokládat, že kromě OUT je potřeba ještě nějaký LD. Odpověděl jsem, že protože jsem pracoval i s 8080, vypadla mi za těch patnáct let z hlavy existence té druhé varianty OUT (která nebyla v základní instrukční sadě, ale existovala jen jako rozšíření Z80). Myslel jsem, že to bude srozumitelné a pochopitelné vysvětlení. Pokud to pochopit nemůžete nebo nechcete (to spíš), nedá se nic dělat…
  • 24. 3. 2005 11:26

    PaJaSoft (neregistrovaný)
    Michel sorry, ale tentokrat mi pripadnete natvrdly Vy. Bez urazky. Instrukce, stejne jako spousta jinych, nebyla zadym rozsirenim, ale byla v zakladni instrukcni sade vyrobku, ktery se jmenoval PROCESOR (CPU) Zilog Z80. Ano, tento procesor mel mnoho napodobovacu (treba Didaktik pouzival ukradeny klon z NDR), nektere kvalitni (jako zmineny z NDR), jine nedokonale (protoze navrhari opomneli nejake instrukce) - urcite si pamatujete na chyby nekterych programu na nejakych procesorech, kde byly pouzity (ku prospechu veci) vsechny moznosti prefixovani, kdy z registru HL jste vyrobil indexni prefix IX nebo IY.

    Procesor Zilog Z80 nebyl jen konstrukcne jiny (a tedy to nebylo rozsireni Intel I8080, on to byl v mnoha ohledech 16-ti bitovy pocitac... neco na zpusob toho, ze I80386SX je ocesana verze 32-bitoveho CPU (umel 16-ti bitove adresovat, pocitac, indexovat - co mu k 16-bitum chybelo?), potazmo jeho historie zacala u I4004), on mel spoustu jinych veci, jako treba 3 mody preruseni (kdepak najdu na I8080 IM2?!), navrh ZXS si sproste vzal cely jeden CPU registr na zcela jinou funkcni - ano mluvim o registru R (ten na I8080 taktez nebyl), ktery se pouzival na nutne obcerstvovani DRAMu, aby nezapomnely svuj obsah, mluvim o zpomalenych dolnich 32kB RAM, protoze do toho kafrala ULA (a mela VZDY prednost) atd... - proste jeden keca o voze a druhy o koze...

    Vasi uvahou a logickym smerem, ktery zde prednasite je aktualni chip Motorola jen ubohe rozsireni 30 let stareho procesoru, v pripade Intelu se jedna jen o pouhe rozsireni dnes jiz vice jak 40 (!!!!) let stareho procesoru I4004, ktery mel odhadem asi 3 nebo 4 tisice tranzistoru... - nemyslite si, ze to je kravina?!

  • 24. 3. 2005 15:08

    Michal Kubeček (neregistrovaný)
    S názorem, že Z80 bylo něco principiálně úplně jiného než 8080, jsem se setkal už mnohokrát. Ale nemohu s ním souhlasit. Z80 bylo funkčně jen a jen rozšíření 8080. Nic principiálně nového totiž nepřinesl, snad jen tu šestnáctibitovou adresaci portů (která se stejně nepoužívala) a krátký relativní skok. Skutečně zásadní změnu si představuji spíše jako přechody v posloupnosti 8080 - 8086 - 80286 - 80386. Ale už třeba 80386 - 80486 byla zase záležitost spíše kosmetická. Takže zásadně odmítám to, co mi podsouváte, jen důsledně rozlišuji principiální změny a vedlejší vylepšení.

    Větší rejstřík registrů a bohatší instrukční sada, to byly samozřejmě příjemné prvky, ale nestačí na to, abych procesor označil za něco zásadně nového. Nemluvě o tom, že jakkoli byl Z80 v mnoha ohledech praktičtější než 8080 (třeba co se týká hodinového signálu), byl to neuvěřitelný bastl. Asi byste musel dlouho hledat procesor, který by měl tak obrovský podíl nedokumentovaných funkcí. To, že najdete u Z80 drobnosti, které neměla ani 8086, nemůže na věci nic změnit.

  • 24. 3. 2005 16:06

    PaJaSoft (neregistrovaný)
    Co to vykladate za blbosti? Uz jsem zminoval IM2 - to je rozsireni ceho? Uz jsem zminoval adresaci a vypocty pomoci indexoveho registru (HL, IX, IY) - na I8080 mame jaky zakladni ekvivalent?, 16-ti bitova adresace se setsakramentsky vyuzivala v pripade, ze jste nebyl limitovany cenou soucastek (a tedy jste tu adresne detekcni cast neudelal pouze na 8-mi bitech)... - co treba radice... chcete rici, ze DMA, IDE, ctecky flash apod. to dneska ctou osmibitove, kdyz by to 16-ti bitove dle Vas nebylo k nicemu? Vami zminene skoky mezi I80286 a I80386 byly zasadne v cem vyjma rozsireni na 32-bitu, postupny odklon od segmentu (ale stale podporovane) a virtualni x86 mod? Vsechny zakladni mety byly polozeny u I80286, to ze to neumely vyuzit radne OS je vec druha... - a pokud mi chcete omlatit o hlavu HW ochrana pametovych segmentu, tak si ji strcte nekam, protoze v te dobe (a jeste nejakou petiletku pote) padaly programy jak hrusky ze stromu a to casto i s OS a to jen diky tomu, jak 'dobre' se to pouzivalo...

    Muzete mi krome tohoto mlzeni ozrejmit, o kterych to nedokumentovanych funkcich mluvite? To, ze nedolehly Vasemu sluchu je _VAS_ problem, provozni dokumentace firmy Zilog z te doby mluvi naprosto jasne, to ze napoobovaci byli bastliri je fakt, mel jste si koupit original a ne nedokonalou napodobeninu s mizernou dokumentaci...:-r

  • 24. 3. 2005 17:43

    Michal Kubeček (neregistrovaný)
    1. Jenže šestnáctibitová adresace nebyla něčím, s čím by Z80 přišel jako s novinkou, pouze měl víc registrů, které šly takto využít. V tom vidím zásadní rozdíl: šestnáctibitový registr pro nepřímé adresování je kvalitativní skok, tři místo jednoho jsou skok kvantitativní.

    2. Zásadní rozdíly mezi 286 a 386: za prvé zavedení stránkování a všeho, co s tím souviselo, zejména prakticky použitelné implementace virtuální paměti. U 286 to sice teoreticky šlo také (na úrovni segmentů), ale protože segmenty jsou různě velké a mohou se překrývat, bylo by praktické využití příliš komplikované. Za druhé 32-bitová adresová sběrnice a 32-bitové adresování, tedy i segmenty větší než 64 KB. Za třetí: 32-bitové datové registry a operace s nimi. Za čtvrté: podpora pro ladění na úrovni procesoru. Za páté: adresování s využitím měřítka.

    3. Nedokumentované instrukce Z80 mému sluchu samozřejmě dolehly, jinak bych se o nich nezmiňoval. Oficiální dokumentace se o nich nezmiňovala. Aby bylo jasno: nemluvím teď o standardních instrukcích pro práci s registry IX a IY, i když třeba už instrukce pro práci s jejich půlkami (vzniklé použitím prefixu 0xDD nebo 0xFD před instrukcí pracující s registry L nebo H) AFAIK oficiálně dokumentované nebyly. Ale existovalo i dost dalších instrukcí, které dokumentované nebyly zcela určitě. Zkuste Google na "undocumented Z80 instructions", třeba tuto stránku (soubor z80.zip).

    P.S. v mém Spectru byl originál od firmy Zilog.

  • 24. 3. 2005 20:07

    PaJaSoft (neregistrovaný)
    Spojim-li body 1 a 2, tak castecne s Vami souhlasim, ale stale nevim kam zaradit prerusovaci mod IM2, kdy v jednom registru po prichodu preruseni (50Hz) se vezme cast adresy v pameti, na teto adrese se nachazi fyzicka adresa kam se ma skocit a teprve zde je kod obsluhy tohoto preruseni - tento zpusob je znacne inovativni a velmi silne pripomina obsluhu via IRQ tabulku (at uz fyzickou v pripade I8086 nebo LIT/GIT u I80386 a vyse - mozna uz u I80286) a to prosim v dobe, kdy si o podobnem zpusobu externiho ovladani CPU mohl nechat Intel jen zdat, ten se zmohl jedine na RST...

    Jinak dekuji za ten zajimavy odkaz, urcite se sikne, bohuzel nerika vubec nic zajimave, resp. neco co by bylo tak mystericke.... Naopak zajimavejsi vypada odkaz http://www.geocities.com/SiliconValley/Peaks/3938/z80undoc.htm, bohuzel jen vypada... - jednak sam v 3/4 jasne pise - cituji: "Everything said so far is pretty much common knowledge, well-documented by Zilog, the Z-80 manufacturer." - a to bohuzel vcetne prace s polovinami IX a IY (kupodivu kazdy, kdo trosku mysli na to prisel sam, protoze kdyz jde pracovat s HL a take z H a L, a kdyz je jasne, ze IX ci IY se tvori jen prefixem, tak to slo docela trivialne dovodit). Vyuziti instrukci typu LD LX,LX je opravdu vite na co... (a bohuzel ani na presne casovani via takt procesoru), finta XOR A,A, pripadne XOR AX,AX misto loadovani 0 (a tedy pomalejsi, sbernicove narocne, na pametovy radic stresujici instrukce) je snad znama kazdemu... Na druhou stranu, kdo nekdy absolvoval kurzu okolo logickych obvodu, tak mu je jasne, ze je daleko drazsi aby tato 'instrakce' neexistovala nez ji vzit jako prirozeny dusledek dobreho navrhu.

    Mel jsem k dispozici patricne osuntelou ORIGINALNI dokumentaci od Zilog Z80 primo od firmy Zilog, mohu Vam rici, ze ty pulky IX a IY tam BYLY normalne dokumentovane. Stejne jako jsem ve sve dobe mel kompletni komentovany vypis CP/M 2.2 (a proto vim proc do dnes maji DOSovske programu na zacatku (u COMu je to napadnejsi) pomerne podivnou 'nevyuzitou' oblast nebo co do dnes provede dlouhy nepodmineny skok na 'virtualni adresu' 0x5h) nebo kompletni popis I8072A, moc zajimave cteni....

Upozorníme vás na články, které by vám neměly uniknout (maximálně 2x týdně).