[SharpMZ] Stare projekty (Unikarta) + mk3

Martin Lukasek martin.lukasek na artax.cz
Úterý Listopad 26 20:56:05 CET 2013


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

[cid:image001.png na 01CEEAE9.EB359540]

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 (sharpemu na pandora.cz) [mailto:ordoz na ordoz.com]
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 (sharpemu na pandora.cz<mailto:sharpemu na pandora.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
------------- daląí část ---------------
HTML příloha byla odstraněna...
URL: http://mail.ordoz.com/pipermail/sharpmz/attachments/20131126/ce4648bd/attachment-0001.html 
------------- daląí část ---------------
Netextová příloha byla odstraněna...
Jméno: image001.png
Typ: image/png
Velikost: 44402 bytes
Popis: image001.png
Url : http://mail.ordoz.com/pipermail/sharpmz/attachments/20131126/ce4648bd/attachment-0001.png 


Daląí informace o konferenci SharpMZ