Konference: SAPI-1 a československé mikropočítače
Od: | Jiri Biba |
Datum: | 3.12.2012 13:05 |
Předmět: | CP/M 2.2/Z |
Tak jsem pred casem vyhrabal na netu zdrojaky ruznych uprav systemu CP/M 2.2. Zaujalo me, co se od dob, kdy to Garry stvoril zmenilo. Tak prvni me upoutalo, ze to je cely napsany v Z80 a jeho instrukce to skutecne pouziva (ne jen relativni skoky) a tim se system trochu pokratil. Postupne jsem se tim prokousaval a zkousel pochopit, co tim chtel autor rici. Bylo to docela potiz, zdrojak mel kupu odkazu na knihovny s definicema, ktery u toho nebyly. Takze preklad spoustu veci vubec nevyresil a muselo se domejslet co s tim. Taky v biosu bylo spousta provazanosti na HW neznamyho stroje, takze jsem si uzil. Napriklad parametry pro disky a datovy vstupy a vstupy byly predavany ne pres registry Z80 jako je to v CP/M bezny ale pres porty! Asi to je pro nejaky emulator Z80, mozna v PC nebo pod MAC. Dalsi problem byl, ze zdrojaky pouzivaly pri prekladu kupu podminek pro preklad a dost silene zacykleny macra, ktery vubec nemam rad, protoze se mi v tom dela zmatek. No nejak jsem to prelouskal a snad i pochopil. Mektery makra byly skutecne zajimavy. Stacilo zadat treba pocet disket a pocet HDD, a ono si to samo pri prekladu vygenerovalo pro ty pocty disket a HDD definicni tabulky, rezervovalo misto pro bufery a jeste to nakonec prekladu v M80 napsalo, ze se to vejde ci nevejde do mista pro syatem! To jsem zatim nikdy nevidel ani u Mercla, ktery makra a podminky prekladu docela fest pouzival!
Takze vysledek je, ze jsem z toho pouzil CCP a BDOS a BIOS jsem k tomu pridal svu,j co mi uz celkem nejakou dobu dobre slouzi. Vysledek jsem pojmenoval CP/M 2.2/Z. Ma oproti klasice hromadu vylepseni navic, co se veslo do mista, ktery se udelalo prevodem na Z80. Kupodivu hned prvni prelozena a poskladana verze chodila na 1. slapnuti, sam jsem tomu neveril.
CCP umi krome klasickych prikazu jeste navic prikazy:
LIST *.* – vypis na tiskarnu
DFU xx – definice druheho uzivatele pro kopirovani mezi dvema USER
JUMP xxxx – spusteni programu na definovany adrese
GO – znovuspusteni COM programu od 100H bez znovunacteni z disku
GET xxxx – nacteni programu z disku na zadanou adresu
Pak tam je jeste par prikazu na nastaveni delky stranky na tiskarne, jak ma byt vypisovan adresar a podobne.
I standard CCP prikazy jsou upraveny, treba po ERA se vytisknou nazvy vymazanych souboru, DIR se tiskne taky trochu jinak, prehledneji.
Dale CCP a BDOS umoznuje pri praci z USER 1-15, ze se zadanim prikazoveho radku hleda prvni zadana polozka (vlastni COM program) z aktualniho USER, pokud se nenajde tak z USER 0 na aktualnim disku a pokud se tam nenajde, zkusi to jeste na disku A: USER 0. Dalsi polozky v prikazovem radku to ale hleda uz jen v aktualnim disku a USER. Takze pokud se vsechny spustitelny programy nahrajou do disku A: USER 0, tak se v ramci cely CP/M neni potreba starat o to, aby byly programy v zrovna pouzivanem disku a USER. To usetri hodne mista na diskach a hlavne zjednodusi praci.
Aby byl vetsi prehled ve kterym USER se zrovna dela, tak pokud je USER 0, tak se disky pisou jako A: B: atd. Pri USER 1-15 se pise A1: B15: a pod.
Dalsi vylepseni je, ze prikaz SUBMIT (neco jako BAT pri MSDOS) chodi na jakymkoliv zvolenym disku. Driv to bylo mozny jen na A:
No a nakonec, byl odstranen problem s Ctrl C po vymene diskety. Uz neni potreba restart diskovyho systemu.
Docela dost zjednoduseni pro obsluhu. Budu to dal zkoumat, jeste jsem nevyskousel par prepinacu pri prekladu a tak nevim, co vse je tam jeste navic.
Az budu vedet, ze to je vse zcela bez problemu, dam to na Dropa.
Jirka
[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)]