Naopak, díky moc, tohle přesně potřebuju - člověka to hned nakopne k přemýšlení!

Pokud jde o ten akumulátor, mám za to, že akumulátor je zkrátka druh registru. Ano, stejně jako u PMD se registr A používá k vytištění znaku.
Hexadecimální soustava se používá v Prometheovi tak, že před číslo se dá znak #. Pokud je tedy číslo 22 uvedeno bez toho znaku, je to opravdu 22 v desítkové soustavě, muselo by být uvedeno jako #22.
Ta knížka je docela dobrá (asi nejlepší co mám k dispozici), ale taky mi připadá, že příklady na začátek jsou příliš složité a (viděno mýma očima laika) naprosto neprůhledné. Takové to šachování s registrama by chtělo nějak objasnit. Pokud mi někdo napíše, že nastavení barvy papíru je: ld a,c ... atd., pak musím vědět, proč zrovna obsah C přesouvá do A, k čemu je to dobré a proč se zrovna jako programátor musím rozhodnout, že obsah C přesunu do A. To přece není samo sebou - to musí mít nějaký důvod

Proto je spousta těch příkladů, které tento důvod neuvádějí, dost k ničemu, neboť je člověk (skoro jako vždy) odkázán na vlastní experimentování.
No, ale abych se vrátil k věci...
Znak jsem se pokusil vytisknout zjednodušeným algoritmem:
ent $
ld a,2
call #1601
ld a,"x"
rst 16
ret
Tenhle kód vytiskne znak "x" nahoru na obrazovku. Většina věcí v kódu se dělá automaticky:
ent $ je startovací instrukce;
ld a,2 se napsat musí pokaždý - do registru A musí přijít kanál 2, což supluje basicovský PRINT;
call #1601 - o tom se zase nemusí přemýšlet, zkrátka zavolání podprogramu v ROM na adrese #1601=5633, aby se otevřel kanál a zobrazilo se to, co je obsahem A. Teď ale do toho registru A něco dáme a vystikneme pomocí
rst 16, tedy
ld a,"x" a
rst 16. Nakonec jsem dal příkaz
ret - nějak moc nevím sice proč, ale bez toho ret se to provede, ale nezůstane na obrazovce, takže je to asi věčná smyčka, která nám umožňuje vidět ten znak na obrazovce(?).
To je prosté vytištění jednoho znaku. Jednu věc na tom programu však nechápu - pokaždé, když se spustí, se vytištěný znak posune o 1 místo doprava, dojede-li na konec obrazovky, jede na další řádce zase zleva. Ačkoli není určená pozice, kvůli něčemu se to posouvá. A i kdybych věděl kvůli čemu, tak proč nezůstává "x" i na předchozím místě? Není zde ani CLS, a obsah registrů se v programu nikde nenuloval...?! Ale asi jsem vedle

Složitější případ jsem si vymyslel, když jsem chtěl umístit znak někam konkrétně na obrazovku (tedy jako v Basicu pomocí PRINT AT nebo LOCATE ... PRINT ap.).
K tomu by měl být funkční tehle kód:
ent$
ld a,2
call #1601
ld a,22
rst 16
ld a,14
rst 16
ld a,2
rst 16
ld a,"x"
rst 16
ret
Přibylo tu akorát na začátku
ld a,22 - což by měl být podle knihy kód pro funkci AT, kde se nejprve zadává řádek a potom sloupec. Nevím ale pořád, proč za každým příkazem musím dělat
rst 16 ? Když to vynechám, napíší se třeba před znak otazníky... Tím tedy docílím toho, že na řádek 2 a sloupec 16 dostanu znak "x".
Ještě si s tím zkusím pohrát, ale to je zatím všechno, co jsem z toho dostal - a ačkoli už se mi daří vytisknout znak, dokonce přesně ho lokalizovat a časem mu dát i jiné atributy, mám pocit, že je to všechno moc komplikované na to, že je to vlastně pořád to samé co v Basicu, akorát složitějším způsobem... Možná je to ale tím, že jsem úplně na začátku
