Konference: SAPI-1 a československé mikropočítače

Od: Jiri Biba
Datum: 5.9.2012 09: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)]


[2010 (676)] [2011 (586)] [2012 (976)] [2013 (538)]