Přejít na obsah
ARCHIVEKArchiv e-mailových konferencí o 8bitových počítačích Archiv Pandory 1999 až 2013

Zpět na zprávu

Celé vlákno · 5 zpráv

Navrh specifikace MZFREPO rozhrani

Michal Hučík SHARP MZ-800

Ahoj,

pokusil jsem se konecne udelat nejaky navrh specifikace komunikacniho rozhrani unikarty. 

http://duna.ordoz.com/unikarta_MZFREPO_2011-09-23-01.html

Bylo by fajn, kdyby se na to alespon jeste nekdo podival a pripadne dal vedet jestli ho napadne neco dalsiho co by tam nemelo chybet. Privitam navrhy na zmeny ve zpusobu reportovani statusu, predavani parametru atd.

BTW: uplacal jsem to v excelu, kterym jsem ten list vyexportoval do html, tak kdyby si nekdo chtel uzit prijemne odpoledne, tak si to muze prejmenovat na txt ;)

Michal

 

Re: Navrh specifikace MZFREPO rozhrani

Jakub Ladman SHARP MZ-800

Dne pátek 23 Září 2011 10:54:57 Michal Hučík (sharpemupandora.cz)
 napsal(a):
Zobrazit citovaný text (13 řádků)
> Ahoj,
> pokusil jsem se konecne udelat nejaky navrh specifikace komunikacniho
> rozhrani unikarty. 
> http://duna.ordoz.com/unikarta_MZFREPO_2011-09-23-01.html
> Bylo by fajn, kdyby se na to alespon jeste nekdo podival a pripadne dal
> vedet jestli ho napadne neco dalsiho co by tam nemelo chybet. Privitam
> navrhy na zmeny ve zpusobu reportovani statusu, predavani parametru atd.
> BTW: uplacal jsem to v excelu, kterym jsem ten list vyexportoval do html,
> tak kdyby si nekdo chtel uzit prijemne odpoledne, tak si to muze
> prejmenovat na txt ;) Michal
>  
> 
> ---

Na jedno precteni to ma hlavu a patu.
Jakub

Re: Navrh specifikace MZFREPO rozhrani

Martin Lukasek SHARP MZ-800

Ahoj,

mne to prijde uplne super, je bezva to mit prehledne sepsany. Mozna bych tam jen doplnil, kde je CMD Port a DATA Port. Nasel jsem si, ze 0x50 a 0x51.

Hned jsem narychlo neco zkusil, ale narazil jsem. Zkusil jsem to v Pascalu, protoze mi to prislo nejrychlejsi, ale bud mam nekde trivialni chybu nebo TurboPascal neumi korektne Port[] nebo nevim. Vraci mi to vsude samy 0. Je chyba ve mne nebo v Pascalu?

var b : Byte;
    i : Integer;

begin
  WriteLn('Unicard test program');
  WriteLn;
  WriteLn('Reset, SHARP ASCII, RTCGETT');
  Port[$50] := $00;
  Port[$50] := $02;
  Port[$50] := $63;

  Write('Data port = ');
  for i := 1 to 3 do
    begin
      b := Port[$51];
      Write(b, ' ');
    end;
  WriteLn;

  Write('Status = ');
  for i := 1 to 4 do
    begin
      b := Port[$50];
      Write(b, ' ');
    end;
  WriteLn;

end.

Ahoj, Martin.

Re: Navrh specifikace MZFREPO rozhrani

Radek Suk SHARP MZ-800

Podle mne je to dobry dokument, urcite by to bylo vhodne doplnit o 
priklady. Pascal nebo jazyk symbolickych adres bych uprednostnil.

Martine zatim nevim jak to funguje ale mozna budes muset dokolecka 
snimat Status do doby nez bude 4 bit v 1 a pak az precist ty tri 
parametry. Alespon takto to chapu z textu.


Radek


Dne 26.9.2011 0:04, Martin Lukasek (sharpemupandora.cz) napsal(a):
Zobrazit citovaný text (46 řádků)
> Ahoj,
>
> mne to prijde uplne super, je bezva to mit prehledne sepsany. Mozna bych tam
 jen
> doplnil, kde je CMD Port a DATA Port. Nasel jsem si, ze 0x50 a 0x51.
>
> Hned jsem narychlo neco zkusil, ale narazil jsem. Zkusil jsem to v Pascalu,
> protoze mi to prislo nejrychlejsi, ale bud mam nekde trivialni chybu nebo
> TurboPascal neumi korektne Port[] nebo nevim. Vraci mi to vsude samy 0. Je
chyba
> ve mne nebo v Pascalu?
>
>      var b : Byte;
>      i : Integer;
>
>      begin
>      WriteLn('Unicard test program');
>      WriteLn;
>      WriteLn('Reset, SHARP ASCII, RTCGETT');
>      Port[$50] := $00;
>      Port[$50] := $02;
>      Port[$50] := $63;
>
>      Write('Data port = ');
>      for i := 1 to 3 do
>      begin
>      b := Port[$51];
>      Write(b, ' ');
>      end;
>      WriteLn;
>
>      Write('Status = ');
>      for i := 1 to 4 do
>      begin
>      b := Port[$50];
>      Write(b, ' ');
>      end;
>      WriteLn;
>
>      end.
>
> Ahoj, Martin.
>
>
> ---
>

Re: Navrh specifikace MZFREPO rozhrani

Michal Hučík SHARP MZ-800



Ahoj, Pascalem sice nevladnu, nicmene hlavni problem bude asi v tom, ze ten dokument co jsem zverejnil je "Navrh komunikace", zatimco v unikarte mas firmware, ktery jeste komunikuje postaru ;)
Stahni si Jakubuv UCONTROL http://ordoz.com/sharp/ ... tam je i ceckovy zdrojak ve kterem je zrejme jak se komunikuje se soucasnym firmwarem ... Pripadne ve zdrojacich unikarty je v adresari rdloader priklad v assembleru.

Jinak ten status je sice k dispozici vzdy, ale prijde mi zbytecne jej po uplne kazde operaci testovat.  Stavajici firmware vraci ve statusu 1B binarni kod, a pak retezec, ktery rika status v ASCII. Za normalnich okolnosti tam prectes vzdy 0x01,"OK",0x00,0x00......

Co se tyka toho navrhu, tak jsem to o vikendu zacal konecne implementovat. Udelal jsem drobne zmeny v prikazech, neco malo jsem pridal a musel jsem prozatim zrusit prikazy ktere by vracely info o tom jaky soubor/adresar je prave otevreny pro RW operace - nenasel jsem totiz zpusob jak to ve FatFS osetrit primo z toho filehandle, takze bych si kvuli tomu musel nekde pamatovat filename a path, coz se mi moc nelibi. Pak se k tomu jeste vratim, ale ted je potreba dopsat dulezitejsi prikazy.

Az bude hotovo, tak k tomu samozrejme dopisu i nejakou dokumentaci s priklady. (no a pak by jsme se mohli vrhnout na ten RS232 v unikarte ;)

Michal
 

Dne 26.9.2011 0:04, Martin Lukasek (sharpemupandora.cz) napsal(a):

Ahoj,

mne to prijde uplne super, je bezva to mit prehledne sepsany. Mozna bych tam jen doplnil, kde je CMD Port a DATA Port. Nasel jsem si, ze 0x50 a 0x51.

Hned jsem narychlo neco zkusil, ale narazil jsem. Zkusil jsem to v Pascalu, protoze mi to prislo nejrychlejsi, ale bud mam nekde trivialni chybu nebo TurboPascal neumi korektne Port[] nebo nevim. Vraci mi to vsude samy 0. Je chyba ve mne nebo v Pascalu?

var b : Byte;
    i : Integer;

begin
  WriteLn('Unicard test program');
  WriteLn;
  WriteLn('Reset, SHARP ASCII, RTCGETT');
  Port[$50] := $00;
  Port[$50] := $02;
  Port[$50] := $63;

  Write('Data port = ');
  for i := 1 to 3 do
    begin
      b := Port[$51];
      Write(b, ' ');
    end;
  WriteLn;

  Write('Status = ');
  for i := 1 to 4 do
    begin
      b := Port[$50];
      Write(b, ' ');
    end;
  WriteLn;

end.

Ahoj, Martin.


---