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

Od: Jiri Biba
Datum: 16.8.2011 12:50
Předmět: RMD-1 zajimavost

RMD-1 zajimavost:

Pisu pres Pandoru a je mi divny, ze tu nejsou pristupny prispevky za srpen.
Tak jsem trochu pokrocil s 1Mb RMD-1. Protoze jsem chtel vedet, co se na nem deje v jednotlivych blocich, stopach, sektorech i datech v sektoru, hledal jsem a nasel pod CP/M program DDUMP, ktery to vse umi. Jenze byl skoro nepouzitelny, protoze byl napsany pro displej 80 znaku x 20 nebo 24 radku. Takze kazdy radek pretekl casti radku za 64 znakem do nasledujiciho. Program nahore vypise Disk, Blok, Stopa, Sektor a pak klasickou DUMP tabulku pro cely 128b sektor, na pocatku radku Hex a na konci Ascii. Takze ty udaje ktery to je Blok, Stopa a Sektor odrolovaly pryc z obrazovky. Tak jsem pouzil SLAP, coz je ladici program a ten DDUM jsem odkrokoval a asi po 2 hodinach nasel sekci, kde se provadi vypis ASCII vyznamu byte v sektoru. Kdyz jsem prisel na to, jak to chodi, tuhle cast jsem preskocil JMP. Ted uz je vse na obrazovce mimo tech Ascii vyznamu bytu sektoru.
Jak jsem to zprovoznil, hned jsem zjistil, ze ten muj inicializacni program pro RMD-1 chodi jen castecne. Zapis E5H jde, ale nechodi kontrolni cteni inicializace, proste vzdy zabloudilo. Po chvili jsem zjistil, ze jedna Dos sluzba narusuje mnou pouzivany registr B, tak jsem to vyresil PUSH a POP. Pak uz zacalo chodit, ale hlasilo to nahodily chyby, pokazdy nekde jinde. Ale vzdy to byla chyba u prvniho byte v sektoru! To mi bylo divny, protoze podle vypisu DDUMPem bylo vse na disku v poradku! Znova jsem prosel cely programovy cteni a kontrolu na E5H a nic jsem nenasel. Navic pri krokovani pod SLAPem to nedelalo, ale jak se dalo go s bodem preruseni, zase to delalo, a nacetlo obcas v prvnim byte sektoru FFH misto E5H. To mi bylo naprosto zahadou a tak jsem zacal premyslet o rychlostech na desce RMD-1. A prisel jsem na to!

$RRMD:                    ;cti sektor z RMD-1
      CALL ADRMD   ;nastav HL kam a BC kolik byte a na jaky port
      OUT (43H),A       ;nastav RMD-1 na cteni
      NOP
      NOP
      INIR
      XOR A
      RET

Mezi instrukci OUT (43H),A ktera prevraci RMD-1 na cteni a nasledujici instrukci INIR (nebo IN A pro 8080) musi byt 2 instrukce NOP, jinak RND-1 blbe cte 1. byte v sektoru!!! Tedy staci jen jedna, ale pro sichr jsem tam dal dve.  A dela to uplne stejne na obou RMD-1, co mam k dispozici jak na 256m kb tak na 1Mb! Musi to byt nejaka nahodna HW pomalost, nebo konflikt s refresh. Nejspis v tom ridicim sekvencaku kolem 74164, 7474 a 74193 na Petrovym schematku nahore uprostred. Ramkou to urcite neni, v 1Mb mam 120 ky a druhym dokonce 90 ky.
Je to zvlastni, tahle obsluha RMD-1 je napsana uz pres 20 let a zatim to nevadilo. ???
Odpoledne zkusim predelat Bios na oba RMD-1.
Jirka


Ostatní příspěvky vlákna:

 
[2011/2 (7)] [2011/3 (12)] [2011/5 (50)] [2011/6 (18)] [2011/7 (112)] [2011/8 (192)] [2011/9 (94)] [2011/10 (16)] [2011/11 (46)] [2011/12 (39)]


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