Díky za článek, je to super dokonce jsem si vzpoměl na hex kody některých instrukcí na Z80, CD = CALL, C3 = JMP, C9 = RETURN atd. Domnívám se se Z80 a jí podobné je ideální školící příklad, je to skutečně ještě z doby kdy se lecos nekompikolavo ...
Desitkovou soustavu maji obcas pro tento ucel zafixovanu lide, kteri sazeli instrukce do pameti ZX Spectra z vestaveneho interpreteru Basicu. Velmi casto se v casopisech uverejnovaly programy "v Basicu", kde klicovou casti programu byla cimsi vyplnena radka 0 REM, nasledoval cyklus, ktery ten radek 0 REM vyplnil kodem a pod nim prikazy DATA se spoustou dekadickych cisel - samotny kod. A pak pochopitelne RANDOMIZE USR XXXXX, kde XXXXX je adresa o neco vetsi nez 16384, kterou jsem uz zapomel, ale tenkrat jsem ji pochopitelne z pameti znal (obecne samozrejme nemusela byt vzdy stejna).
Ach jo. Kde jsou ty casy.
Jinak autor zminuje procesor Z80. Spousta lidi se bude asi divit, ale kod pro tento procesor se dnes stale pise a nejsou to jen nostalgicka dema pro historicke pocitace. Obcas opravdu prekvapi, kde se to stale jeste pouziva - casto tam, kde by to clovek necekal - treba i v leckterem MP3 prehravaci (netvrdim, ze to tam dekoduje vlastni data).
To ja asi dam Z80 do Ronji. Koukal jsem se na PIC ale to je hruza - to ja harwardska architektura dovedena ad absurdum. Jsou specialni adresne prostory na data, kod, zasobnik, ten ma 7 urovni a neda se dostat na stack pointer. Strankovane a ruzne obezlickovane je co se da, zcela zbytecne. Jak kdyby to cele navrhoval Microsoft.
Z80-tina se koupi na kazdem rohu, stoji par slupek, dela se v PLCC takze se to trafopajkou letne
rychle, jsou na to free software tooly, je mi sympaticka, neobsahuje obezlicky a hlavne, hlavne:
BEZI NA TOM JET SET WILLY!!!!
PIC je shit, jak by řekl náš premiér. Když už jednočip, tak AVR. Jinak když Z80, tak doporučuju ty nadupanější verze (Z180) - 100% kompatibilita na úrovni strojového kódu se Z80, akorát to navíc obsahuje poměrně vymakanou MMU pro správu až 1 MB paměti (kéž by takovou MMU býval měl 8088; sice na první pohled vypadá obskurně, ale na ten druhý je to docela použitelná věcička), řadič DMA, čítače, řadič IRQ a jiné serepetičky a trochu to popohnali (některé verze až 30 MHz). Nejsou problémy se sehnáním v kusovém množství i u nás za rozumnou cenu, pro domácí bastliče se dělají i v DIL provedení.
No jasně, tam se vkládal assemblerovský program přes příkazy BASICu, tedy POKE addr, hodnota. No a ta hodnota byla desítkově :-) Jojo, to byla zlatý časy :-) Správnej hacker nabouchal program přímo v decimálních číslech ze zdrojáku :-) Chicht!
Jeste se na to podivam. Omlouvam se - neuvedomil jsem si videoRAM (6912 B), takze samozrejme adresa byla vetsi nez 16384, ale take pochopitelne az za VideoRAM a systemovymi promennymi. Radek 0 REM nesel editorem Basicu vytvorit - delalo se to treba modifikaci pomoci POKE.
Jo samozrejme, ze se sirily programy take tak, ze slo zdanlive pouze o BASIC, ve kterem byl v prvnim radku (0 REM) jiz hotovy kod. Ve vlastnim Basicu pak bylo jen samotne odstartovani. Nebylo treba to tam v cyklu napred "pokovat" - to uz udelal nekdo jiny (autor). Samozrejme se kod nemusel kodovat jen do radku Basicu...
Vetsinou se to ale delalo tak, ze se aplikace skladala z vice bloku. Prvni byl kratky Basic - cosi jako zavadeci script, ktery obsahoval prikazy pro natazeni uvodniho obrazku a za nim natazeni vlastniho strojoveho kodu nekam do pameti a pak start.
V radku 0 REM byl obcas napr. kod nestandardnich loaderu - delaly ruzne efekty behem nahravani kodu aplikace atd...
Ale to vy asi znate. Pisu to pro lidi, kteri ZX Spectrum nezazili :-)