Konference: Počítač SHARP MZ-800 a emulátory
Od: | Michal Hučík |
Datum: | 26.9.2011 06:49 |
Předmět: | Re: Navrh specifikace MZFREPO rozhrani |
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 (sharpemu tu byla ta zakroucena vec pandora.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.
---
Ostatní příspěvky vlákna:
[2011/1 (52)] [2011/2 (9)] [2011/3 (2)] [2011/4 (9)] [2011/5 (8)] [2011/7 (1)] [2011/8 (40)] [2011/9 (146)] [2011/10 (116)] [2011/11 (29)] [2011/12 (110)]