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

Re: [SharpMZ] Stare projekty (Unikarta) + mk3

Martin Lukasek <martin.lukasek@[doména skryta]> SHARP MZ-800

Super, kdyby slo to CR+LF poresti nejakym nastavenim, bylo by to bezva. Na druhou stranu, poprat se s tim da nastavenim vetsiny terminalu. Bohuzel, ne vsechny to umi. Na Linuxu je problem, kdybys posilal oba znaky? Bez nastaveni terminalu telnet na Woknech vypada takto

 

 

Kdyz budes mit nejakou dalsi betaverzi, tak posli, rad vyzkousim. Jeste by mozna bylo fajn, kdyby sel nastavit timeout, ted mi to prijde docela rychle, zvlast kdyz clovek dela pokusy a necha to chvili trcet.

 

To API pro DNS resolver mi prijde dost detailni, je otazka, zda je to vubec potreba. Aby Ti brzo nedosly cisla prikazu ;-) Treba ty Lookupy nebo ta prace s implicitni domenou mi z pohledu aplikace na Sharpovi neprijdou dulezite.

 

Hezky vecer

 

Martin

 

 

 

From: Michal Hučík (sharpemupandora.cz) [mailto:ordoz[doména skryta]]
Sent: Monday, November 25, 2013 10:38 AM
To: Konference "Počítač SHARP MZ-800 a emulátory"
Subject: Re: Stare projekty (Unikarta) + mk3
Importance: Low

 


Martine, je super, ze mam konecne nejakou zpetnou vazbu o tom, jak novy firmware funguje na ostatnich Unikartach.

S temi CR a LF je to docela mrzeni a myslim, ze se k tomu jeste budu muset vratit a nejak to umravnit. Zrejme by si to mel kazdy konfigurovat primo na sve Unikarte a to samostatne jak pro Ushell rs232/tcp, tak i pro debugovaci vypisy.
Take jsem premyslel, zda tam nenaimplementovat i nejaky debug stream, ktery by mi ty ladici informace posilal treba pres UDP nekam do terminalu.

Momentalne mam hotovou aplikacni vrstvu pro DHCP, HTTP GET, DNS resolver a FTP klient. O vikendu jsem zacal psat a testovat API. Je to zatim jen tak cvicne a je velmi pravdepodobne, ze se to zmenni. Tady je na ochutnavku aktualni popis API pro DNS resolver:


DNS Resolver:
//
// Pro DNS dotazy mame v multitasku k dispozici nekolik vlaken.
// Kazde vlakno se muze nezavisle dotazovat bud na domenove jmeno, nebo na IP adresu.
//
// Vlozeni dotazu probiha prikazem cmdRLSVQUERYA, nebo cmdRLSVQUERYN. Po jeho uspesnem vlozeni
// obdrzime cislo vlakna, ktere vyrizuje nas dotaz. Pokud dotaz nelze spustit, tak obdrzime
// hodnotu -1 (0xff) pokud DNS resolver nebezi, nebo -2 (0xfe) pokud neni k dispozici zadne volne vlakno.
//
// U kazdeho jednotliveho dotazu se nastavuje jeho interrupt mode. Jestlize ma vlakno v interrupt mode
// hodnotu 1, tak jakmile je tento dotaz zodpovezen, nebo ukoncen s chybou, tak Unikarta posle do Sharpa interrupt.
// Zaroven hodnota interrupt mode 1 zajisti uzamceni vlakna proti tomu, aby bylo prepsano jinym dotazem drive,
// nez bude precten vysledek.
//
// Precteni vysledku vlakna se provede prikazem cmdRLSVTHREAD. Tento prikaz deaktivuje interrupt
// vytvoreny timto vlaknem a odemkne vlakno pro dalsi pouziti.
//
// Vlakna u kterych neni nastaven interrupt mode mohou byt okamzite po dokonceni dotazu opet pouzita.
//
//
#define cmdRSLVSTRT     0x80    // Zapne, nebo prekonfiguruje DNS resolver.
                                //
                                // Vstup:       4B - IP adresa DNS serveru (a.b.c.d):
                                //              1. a
                                //              2. b
                                //              3. c
                                //              4. d
                                //
                                // Pokud jiz resolver bezi, tak se pouze zmeni adresa DNS serveru.
                                // Jestlize pri teto zmene prave probihaly nejake dotazy, tak samozrejme skonci jako STATE_ERROR.


#define cmdRSLVSTOP     0x81    // Vypne DNS resolver.


#define cmdRSLVGCFG     0x82    // Precteni konfigurace DNS resolveru.
                                //
                                // Vystup: 4B - ipadresa
                                //
                                // Pokud nameserver nebezi (viz cmdRSLVSTATUS), vraci 00 00 00 00


#define cmdRSLVGDOMAIN  0x83    // Precteni implicitni domeny.
                                //
                                // Vystup: string, 0x0d

#define cmdRSLVSDOMAIN  0x84    // Nastaveni implicitni domeny.
                                //
                                // Vstup: string, 0x0d

#define cmdRSLVSTATUS   0x85    // Sdeli status DNS resolveru:
                                //
                                // Vystup:
                                //
                                //      1B - pocet vlaken,
                                //           nebo 0x00 pokud DNS resolver nebezi
                                //     
                                //      Pokud 1. bajt nebyl 0x00, tak nasleduje tabulka ve ktere je kazde vlakno zastoupeno jednim bajtem.
                                //      Jsou razeny postupne od vlakna s ID 0 az po posledni.
                                //
                                //      0. - 3. bit:
                                //              0 - STATE_UNUSED
                                //              1 - STATE_NEW
                                //              2 - STATE_ASKING
                                //              4 - STATE_DONE
                                //              8 - STATE_ERROR
                                //
                                //      7. bit - interrupt mode
                                //              Pokud je bit nastaven, tak to znamena, ze po vyrizeni vlakna (STATE_DONE, nebo STATE_ERROR)
                                //              bude poslan do Sharpa interrupt.


#define cmdRLSVQUERYA   0x86    // Zadost o preklad jmena na IP adresu (query):
                                //
                                // Vstup:
                                //      1B - interrupt mode:
                                //              0x00 - rezim interruptu je pro tento dotaz vypnuty
                                //              0x01 - jakmile prejde vlakno s timto dotazem do STATE_DONE,
                                //                      nebo STATE_ERROR, tak posle do Sharpa interrupt
                                //
                                //      string. 0x0d - domenove jmeno (pokud je v resolveru nakonfigurovana
                                //                      implicitni domena, tak staci pouzit jen prvni cast domenoveho
                                //                      jmena a resolver si za nej sam prida tecku a nazev domeny)
                                //
                                // Vystup: 1B cislo vlakna, ktere vyrizuje tento dotaz, nebo:
                                //      0xff - resolver nebezi

#define cmdRLSVQUERYN   0x87    // Zadost o preklad IP adresy na jmeno (query):
                                //
                                // Vstup:
                                //      1B - mode:
                                //              1. bit je nastaveni interruptu
                                //                      0 - interrupt neni aktivovan
                                //                      1 - po dokonceni posleme do Sharpa interrupt
                                //      4B - IP adresa
                                //
                                // Vystup: 1B cislo vlakna, ktere vyrizuje tento dotaz, nebo:
                                //      0xff - resolver nebezi
                           
                           
#define cmdRLSVTHREAD   0x88    // Precte vlakno z resolveru.
                                //
                                // Vstup - 1B cislo vlakna                               
                                //
                                // Vystup:
                                //      1B status (viz. cmdRSLVSTATUS), nebo:
                                //              0xff - resolver nebezi
                                //              0xfe - pokud cislo vlakna neni validni
                                //
                                //      Nasledujici data budou validni jen v pripade, ze 1. bajt mel hodnotu STATE_DONE.
                                //
                                //      1B typ dotazu:
                                //              0x00 - podle jmena se resolvovala IP
                                //              0x01 - podle IP se hledalo jmeno
                                //
                                //      4B - IP adresa
                                //
                                //      1B - delka domenoveho jmena + 0x0d
                                //
                                //      string, 0x0d - domenove jmeno
                                //
                                // Pokud byl pri dotazu u vlakna pozadovan interrupt, tak se timto prikazem pro dane vlakno deaktivuje.
       
       
#define cmdRLSVLOOKA    0x89    // Lookup - prohledne jiz uspesne dokoncene thready, zda se se v nich nenachazi preklad domenoveho jmena na IP adresu
                                //
                                // Vstup:
                                //
                                //      string. 0x0d - domenove jmeno (pokud je v resolveru nakonfigurovana
                                //                      implicitni domena, tak staci pouzit jen prvni cast domenoveho
                                //                      jmena a resolver si za nej sam prida tecku a nazev domeny)
                                //
                                // Vystup: 1B - odpoved, zda byl lookup uspesny, nebo:
                                //      0xff - resolver nebezi
                                //
                                //              0 - nenalezeno
                                //              1 - nalezeno 
                                //
                                //      Pokud bylo nalezeno, tak nasleduji 4B s IP adresou.
                           
                                                     
#define cmdRLSVLOOKN    0x8A
                                // Lookup - prohledne jiz uspesne dokoncene thready, zda se se v nich nenachazi preklad IP adresy na jmeno.
                                //
                                // Vstup:
                                //
                                //      4B - IP adresa
                                //
                                // Vystup:
                                //      1B - delka domenoveho jmena, nebo
                                //              0x00 - nenalezeno
                                //
                                //      string, 0x0d
                           
                           
#define cmdRLSVIP2TXT   0x8b    // Prevod IP adresy na text - "192.168.0.1\x0d"
                                //
                                // Vstup: 4B - IP adresa
                                //
                                //
                                // Vystup:
                                //
                                //      1B delka retezce
                                //      string, 0x0d
                                //


#define cmdRLSVTXT2IP   0x8c    // Prevod textu - "192.168.0.1\x0d" na IP.
                                //
                                // Vstup: string + 0x0d
                                //
                                //
                                // Vystup:
                                //
                                //      1B - uspesnost prevodu
                                //              0 - nepovedlo se
                                //              1 - povedlo se a nasleduje IP
                                //
                                //      4B - IP adresa




Dne 25.11.2013 0:45, Martin Lukasek (sharpemupandora.cz) napsal(a):

Cau chlapi,

 

tak jsem se konecne dostal k otestovani sitovani na Unikarte a vse e mi slape na obou kartach v pohode. Na puvodni Michalove a Vaskove Unikarte chodi shell, LANINFO, NETSTAT, APR, LISTEN a samozrejme pinga ;-) Naprogramovani pres Flash Loader slo naprosto hladce. Jak Michal pise, sviti jen jedna LEDka. Asi bych i uvital CR+LF misto jen LF, protoze jedu na widlich, ale to je otazka na flame ;-) Mam to zatim bez propojky z ENC signal /INT do pinu c.52 v STM32 (PC11) a slape to v pohode. Ushell pro Win jsem zatim neupravoval, ale urcite to udelam.

 

Na Bohousove unikarte je zatim jen LANINFO, ale zase je navic web server, kde je super featurka zobrazeni obrazovky ;-) To je moc pekne. Co takhle live stream i s ovladanim klavesnice, proste Remote Console? Ehmm, jo, vim, uz mlcim ;-)

 

Uz se tesim na nejakou tu API podporu. S temi sitovymi hrami bych nebyl tak skepticky. Urcite neco osobne zkusim napsat.

 

Krasny vecer

 

Martin

 


---
POZOR! Provoz systému Pandora.cz bude k 30. listopadu 2013 ukončen.
Více informací: http://goo.gl/b99cI

 


---
POZOR! Provoz systému Pandora.cz bude k 30. listopadu 2013 ukončen.
Více informací: http://goo.gl/b99cI

Zobrazit původní podobu

Vlákno · 2 zprávy

Zobrazit celé vlákno na jedné stránce

  1. Re: [SharpMZ] Stare projekty (Unikarta) + mk3 Martin Lukasek <martin.lukasek@[doména skryta]>
  2. Re: [SharpMZ] Stare projekty (Unikarta) + mk3 Michal Hucik - ORDOZ <ordoz@[doména skryta]> Přílohy: 1