Konference: SAPI-1 a československé mikropočítače
Od: | Jiri Biba |
Datum: | 5.9.2012 12:25 |
Předmět: | 6845 |
Jak se stouram v ty DBS-1 a programuju na ni ovladac, zacinam si byt jistej, ze to bude docela zradlo... Chtel jsem vyjit z toho, co je znamy z SAPI 1.5 ale uz to vypada ze tudy cesta nevede. Problem je v rastru zobrazeni. U SAPI 1.5 je rastr 64x20. 64 znaku na radek je to vse hrozne jednoduchy, 64 je „v rade“ a tak se po uriznuti hornich bitu kazdej radek chova adresove stejne. Jenze u CP/M zobrazeni 80x25 je problem, ze kazdy radek ma jinou adresu pocatku a konce. Neco jsem sice napsal, ale je v tom nasobeni a delani na vypocet pozice kurzoru. To je kupa instrukci a tim je to pomaly. Navic zobrazeni 64x20 neobsadi celou Videoram a tak se muzou v SAPI 1.5 pro rolovani pouzivat „neviditelny“ radky Videoram. Proste je to cely s 80x25 docela problem. Bud je to dlouhy monstrum, nebo to je pomaly.
Vcera se mi dostaly diky Martinovi do ruky zdrojaky od Sharpa a N8VEM. Pouzivaji zobrazeni 80x25 ale misto Motoroly MC6845 pouzivaji Synertec SY 6845. Ten je proti Motorole malinko upravenej, ma pridany 3 ridici registry. Efekt je, ze znaky se posilaji ne do pameti, ale do portu CRT a kde ma byt znak umisten se posle taky pres port do registu jeho pozice X a Y na displeji. Zadny pocitani adresy Videoram, zadny zabirani pametovyho prostoru 64 kb, zadny strankovani pameti, proste genialni!!! Ten ovladac je tak jednoduchy, vse, treba CR, LF, HT atd se resi jen prictenim do X nebo Y. No a kdyz se dojede na konec stranky, proste se posle do CRT ze se ma rolovat o „X*Y“ a je to. Ja s tim pristupem pres pamet to musim vse sahodlouze a pomalu pocitat.
Tak ted vaham, jestli se s tou DBS-1 patlat. Dala by se docela dobre upravit na SY6845. Akorat by se musel vyresit problem zapisu barevnych atributu do Videoram pres port. Neco jako je ve ZRMD-1. Pak by vycitaci cast DBS-1 pro generovani obrazu mohla zustat zachovana. A nebo to zjednodusit a udelat z toho jen klasiku monochrom 80x25.
Jirka
Ostatní příspěvky vlákna:
[2012/1 (114)] [2012/2 (102)] [2012/3 (30)] [2012/4 (9)] [2012/5 (18)] [2012/6 (32)] [2012/7 (143)] [2012/8 (197)] [2012/9 (161)] [2012/10 (43)] [2012/11 (90)] [2012/12 (37)]