Grande Alessandro!
Mi sa che tu leggi l'esadecimale come io leggo il Corriere della Sera! :-)
Comunque sì, sono d'accordo anch'io che lo Spectrum non avrebbe grossi
problemi col protocollo ICMP (ping & C.), ma con applicazioni appena più
avanzate, quelle che si appoggiano al TCP/IP, si andrebbe incontro a limiti
pesanti. I 200 KB al secondo che citi, pur essendo eccezionali per lo ZX,
sicuramente sono quasi insignificanti per un'applicazione internet moderna.
But.... ehi!, we are talking about retrocomputing, right?!
Ciao e in bocca al lupo per i tuoi ambiziosi progetti "gommosi"!
Paolo
2008/4/27 Alessandro <apoppi@xxxxxxxx>:
> Si, ammetto che il pentium non scherza, pero` guarda questi dati:
>
> quello che segue e` un ping che ho appena fatto fra due macchine windows:
> ci sono 6 bytes di mac address destinazione, 6 mac address sorgente, 14
> bytes di pacchetto IP vero e proprio (di cui gli ultimi due bytes, ovvero A0
> 1E sono il checksum), poi segue l'indirizzo IP sorgente (192.168.0.3), IP
> destinazione (192.168.0.1), il codice del pacchetto (08 = ping request),
> qualche altra menata ed infine un po` di bytes (lettere abcdefg....) che la
> macchina pingata dovra` rispedire indietro:
>
> 00 11 D8 59 AC 32 00 50 04 67 F1 79 08 00 45 00
> 00 3C 19 4E 00 00 80 01 A0 1E C0 A8 00 03 C0 A8
> 00 01 08 00 3F 5C 02 00 0C 00 61 62 63 64 65 66
> 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76
> 77 61 62 63 64 65 66 67 68 69
>
> ...e questa e` la risposta: i due mac address invertiti (infatti bisogna
> rispondere a chi ha mandato la richiesta), struttura abbastanza identica a
> prima, codice del pacchetto = 00 (ping reply) seguito dallo stesso blocco
> dati (abcdefg....).
>
> 00 50 04 67 F1 79 00 11 D8 59 AC 32 08 00 45 00
> 00 3C 43 8E 00 00 80 01 75 DE C0 A8 00 01 C0 A8
> 00 03 00 00 47 5C 02 00 0C 00 61 62 63 64 65 66
> 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76
> 77 61 62 63 64 65 66 67 68 69
>
> Non calcolo quanti cicli macchina impiega uno Z80 programmato in assembler
> ad interpretare e rispondere ad una richiesta del genere, ma penso che sia
> nell'ordine di grandezza di alcune centinaia di microsecondi. Ovvio che poi
> bisogna vedere quanto e` efficiente il trasferimento da e verso l'hardware,
> ma si stava facendo una mera considerazione sulla potenza di calcolo di un 8
> bit.
> Il problema a quel punto diventa l'eventuale collo di bottiglia
> rappresentato dalla lettura dei dati da trasmettere, alla fine il grosso del
> lavoro consiste nello spostamento di dati fra una memoria di massa ed il
> chip ethernet. La capacita` dello Z80 a 3,5MHz non e` poi cosi` schifosa,
> considera che un gommoso con la zxmmc o zxmmc+ legge una sdcard ad oltre
> 200KB al secondo (kbytes), anche grazie a Paolo Ferraris che ha proposto di
> usare il code unrolling (16 istruzioni INI da 16 cicli di clock invece di
> una INIR da 21), in pratica un byte disponibile ogni 16 clock Z80 compreso
> il salvataggio in memoria. Ogni 16 bytes c'e' un ritardo dovuto al salto nel
> loop.
>
> Ciao!
>
>
>