Konference: Počítač SHARP MZ-800 a emulátory

Od: Martin Lukasek
Datum: 19.10.2013 20:38
Předmět: RE: Stare projekty (Unikarta)


Ahoj,

 

parada, o necem podobnem relativne jednoduchem jmse mluvili i s Bohousem a klukama na Bytefestu. Otazka zni, jestli ma cenu vubec psat to UDP, protoze neprojde pres NAT, a malokdo bude mit na Sharpu verejnou IP ;-) Moc prilezitosti na setkani taky neni, kde bychom to vyuzili. Takze ja myslim, ze TCP staci. Ja bych k tomu pak treba napsal nejaky server, ktery by umoznil jednoduche pripojeni vice klientu soucasne a vsechno posilal vsem. Strcil bych to pak na pevnou IP. Takto by se dalo zagamesit sitove nabo zachatovat apod.

 

Je nekde ta nova verze Ushellu?

 

Krasny vecer

 

Martin

 

 

From: Michal Hučík (sharpemu tu byla ta zakroucena vec pandora.cz) [mailto:ordoz tu byla ta zakroucena vec ordoz.com]
Sent: Saturday, October 19, 2013 12:25 AM
To: Konference "Počítač SHARP MZ-800 a emulátory"
Subject: Stare projekty (Unikarta)
Importance: Low

 

Ahoj,

po par mesicich jsem se opet dostal k Unikarte. Chvili jsem blbnul s webserverem, ve kterem mi bezela aplikace pro spravu Unikarty, ale v zapeti jsem jej zavrhnul, protoze pameti nemame nazbyt. Proto jsem akorat priohnul stavajici USARTshell tak, aby jej bylo mozne prepnout  bud na RS232, nebo na TCP a  prejmenoval jsem jej na Ushell :)

Uz mam i jakousi ucelenejsi predstavu o tom jak by melo vypadat API.

Fyzicka vrstva je na sharpu dle meho nazoru zbytecna. Omezil bych se asi jen na funkci, ktera precte z registru ENC29J60 stav linky up/down.

Aplikacni vrstva - na tu tam nemame uz prilis mnoho pameti. Pokud nejaka bude nadbyvat, tak tam chci dat dns resolver a dhcp klient ... Kdyz se mi podari carovat s volnym mistem, tak treba i http a smtp klient, atp...

Samotne API pro praci se siti bude realizovano v duchu zjednodusenych BSD sockets. Bude mozne otevrit omezene mnozstvi UDP, nebo TCP socketu. Dale bude mozne otevrit anonymni socket, ktery bude naslouchat na urcenem TCP portu a umozni Sharpu zareagovat na prichozi TCP spojeni.

( U protokolu UDP neni v tuto chvili zadny anonymni listening mozny. Mam predstavu jak to tam dopsat, nicmene potrebuje nekdo psat serverovou UDP aplikaci?)

S otevrenym socketem bude mozne pracovat jako se souborem. Pri zapisu (odesilani packetu) jsme vsak limitovani pameti - Unikarta se musi starat i o retransmit v pripade nedoruceni packetu. K tomuto ucelu bude zrejme potreba vymyslet vice odesilacich rezimu, ktere budou odesilat data jak automaticky po naplneni bufferu, tak i manualne - dle potreby. Nasledne si bude muset Sharp pockat na to az od protistrany prijde ACK - potvrzeni o prijeti packetu. Do te doby se nebude smet ze Sharpa na odesilaci buffer vubec sahat (pokud tedy pro konfort neobetujeme vice pameti tak, aby velikost bufferu prevysovala max velikost odesilaneho packetu).
Bude tam tedy muset existovat nejaky transportni semafor. K tomuto ucelu bude samozrejme fajn mit moznost naprogramovat si interrupt system v Unikarte tak, aby nas zatahal za rukav jakmile bude mit opet volno.
Mam uz i jakousi predstavu o tom, ze by jsme tam mohli mit nejaky dynamicky buffer, jehoz rozlozeni by si kazdy mohl nastavit dle vlastnich preferenci a ovlivnovat tak potom cinnost jednotlivych periferii. Jen aby z toho pak nevzniknula pouze komplikovana programatorska hricka :)

Dnes jsem tedy kroutil maticky a dotahoval sroubky na Ushellu. Zde je report z prenosu dat Unikarta (SD) -> PC :

# ./a.out tcp:192.168.167.80:23 read sdmgr_cpm.DSK /tmp/sdmgr_cpm.DSK
    Unicard - TCP Shell
Sending Reset...
    OK:RESET
Sending Read...
    READ sdmgr_cpm.DSK
    OK:READ sdmgr_cpm.DSK
Receiving FSIZE: 0x000bdf00
Receiving Data.............
    OK:CLOSE 0x29a8fa20

*************************
* Size:        777984 B *
* Speed:   29640.87 Bps *
*************************

Tedy cca 230 kbps ...


Michal


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


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

 
[2013/1 (17)] [2013/2 (52)] [2013/3 (60)] [2013/4 (68)] [2013/5 (60)] [2013/6 (42)] [2013/7 (9)] [2013/8 (48)] [2013/9 (1)] [2013/10 (40)] [2013/11 (45)]


[1999 (1)] [2000 (168)] [2001 (733)] [2002 (459)] [2003 (654)] [2004 (224)] [2005 (105)] [2006 (182)] [2007 (201)] [2008 (294)] [2009 (363)] [2010 (782)] [2011 (522)] [2012 (642)] [2013 (442)]