Qualche veloce premessa sul funzionamento dei microdrive.
Come è stata pensata e costruita la cassetta microdrive si è detto qui http://www.retrogaminghistory.com/sh...l=1#post108484
Come viene selezionata l'unità MDV1 o MDV2 si è detto qui http://www.retrogaminghistory.com/sh...l=1#post108596
Come il microdrive scrive e legge i dati lo si può leggere sul QL Service Manual, dal quale riporto qualche stralcio : "...i dati sono salvati su due tracce usando la tipica configurazione di una testina stereo per le audiocassette, e sono scritti in bytes, un byte su una traccia e il byte successivo sulla altra traccia. I dati sono letti nel medesimo modo..." ; Ciò vuol significare che il primo byte è scritto/letto sulla traccia 1, il secondo byte è scritto/letto sulla traccia 2, il terzo byte nuovamente sulla traccia 1 ed il quarto byte nuovamente sulla traccia 2 . E così via. Il segnale che veicola i dati da scrivere/leggere della traccia 1 e quello della traccia 2 sono generatati dalla ULA ZX8302 , e giungono alle unità microdrive , così come il segnale di che determina la modalità di scrittura o lettura. Il segnale di lettura/scrittura, opera nel seguente modo: se il livello logico è alto allora il microdrive è in modalità di lettura, viceversa se il livello logico è basso il microdrive esegue le operazioni di scrittura. Un altro segnale di controllo comanda la attivazione o meno della testina di cancellazione del nastro , la quale agisce su entrambe le tracce contemporaneamente.
Codifica del segnale dati di scrittura/lettura ; è usata la codifica a modulazione di frequenza secondo lo schema bifase : frequenza pari a n KHz per il valore "0" , e frequenza di 2*n KHz per il valore "1" (per i microdrive del QL siamo a 50 KHz per lo zero , e 100 KHz per l' uno)

Il funzionamento della unità Microdrive nel dettaglio
Per chi voglia cimentarsi nella realizzazione di un dispositivo hardware in grado di sostituire le unità microdrive e simularne il loro utilizzo, è necessario capirne il funzionamento fin nei minimi particolari , incominciando dalla parte più complessa : il processo di formattazione delle cartucce (poichè coinvolge simultaneamente sia le operazioni di scrittura che quelle di lettura, nonché la formattazione dei dati).
A tal fine sarebbe necessario interfacciare una scheda a microcontrollore alla ULA ZX8302 , per raccogliere i segnali dei dati della traccia 1 , traccia 2 , il segnale di controllo lettura/scrittura ed il segnale di cancellazione nastro.
Secondo il sistema di codifica dei dati sopra riportato, sia per la traccia 1 che per la traccia 2 , il valore di "zero" utilizza una frequenza di 50 KHz , raddoppiando a 100 KHz per il valore "uno" ; il fatto che non è presente un altro segnale a frequenza costante a cui fare riferimento per "agganciare" il segnale delle due tracce, unitamente al fatto che la lettura deve essere eseguita sia sul fronte di salita che sul fronte di discesa dei segnali di entrambe le tracce, è facile intuire che il sistema interfaccia debba per forza di cose avere una più che discreta potenza e velocità di calcolo, già solo per acquisire i segnali, senza processarli o memorizzarli.
Siccome volevo avventurarmi in questa impresa, avevo a disposizione due soluzioni : utilizzare un sistema di medio-alto livello (una MCU a 160 MHz capace processare di 40 milioni di istruzioni per secondo) , oppure un sistema di basso livello (MCU a 12 MHZ , con una media di 12 milioni di istruzioni per secondo). Manco a dirlo ho optato per la seconda, non fosse altro per pigrizia e perché avevo già tutto pronto. Questa scelta però ha comportato a dover rinunciare ad acquisire la seconda traccia, così leggendo solo la prima si ha a disposizione solo l'informazione dei bytes "dispari": metà dati sufficienti comunque per ricostruire il funzionamento dei microdrive. Per rendere più veloce ed efficiente l'esecuzione del programma , la MCU è stata programmata in assembler .
Il programma di acquisizione della traccia 1 , non utilizza timer particolari o sistemi di polling del segnale, ma semplicemente "conta" quanti passi di programma sono stati eseguiti ad ogni transizione del segnale di traccia (sia sul fronte di salita che su quello di discesa) per le sole operazioni di scrittura (quindi con il segnale scrittura/lettura allo stato basso). I passi contati sono memorizzati nella RAM interna della MCU da 4KBytes ; a fine lettura (o meglio a memoria esaurita), i dati raccolti sono presi dalla RAM ed inviati tramite una porta seriale ad un computer.
Con programma di acquisizione così concepito, si ottengono due tipi di dati : un dato ad 1 byte che riporta il numero di passi programma quando la traccia microdrive assume il valore uguale a zero (è 1 byte solo perché nella modulazione di frequenza bifase si ha 1 sola cresta o 1 sola gola) , oppure un dato a 2 bytes che riporta il numero di passi programma per la traccia con valore uguale a uno (sono di 2 byte perché in questo caso si ha 1 cresta seguita da 1 gola, o viceversa, e quindi viene letto il numero di passi programma sia della cresta che della gola).
Quando viene rilevato il segnale a 100 KHz (valore=1) sono necessari o 7 oppure 8 passi programma, mentre per il segnale a 50 KHz (valore=0) sono necessari 11 oppure 12 passi programma.
Siccome sono disponibili delle immagini (dump) di cartucce microdrive del QL, se questi dump vengono letti da un programma di editor esadecimale, si ottiene qualcosa simile a questo:

Con tanta pazienza e con l'aiuto del disassemblato del codice del sistema operativo del QL (rom Minerva 1.81) , si può intuire quale sia la formattazione dei dati sul nastro microdrive ; ho riportato alcune note a matita e con l'aiuto di colori diversi , per meglio visualizzare il layout.
Ora, con il dissasemblato della rom e con lo schema sopra riportato, è possibile trarre qualche informazione dai dati grezzi della traccia 1 appena acquisita :
Fine prima parte...
Come è stata pensata e costruita la cassetta microdrive si è detto qui http://www.retrogaminghistory.com/sh...l=1#post108484
Come viene selezionata l'unità MDV1 o MDV2 si è detto qui http://www.retrogaminghistory.com/sh...l=1#post108596
Come il microdrive scrive e legge i dati lo si può leggere sul QL Service Manual, dal quale riporto qualche stralcio : "...i dati sono salvati su due tracce usando la tipica configurazione di una testina stereo per le audiocassette, e sono scritti in bytes, un byte su una traccia e il byte successivo sulla altra traccia. I dati sono letti nel medesimo modo..." ; Ciò vuol significare che il primo byte è scritto/letto sulla traccia 1, il secondo byte è scritto/letto sulla traccia 2, il terzo byte nuovamente sulla traccia 1 ed il quarto byte nuovamente sulla traccia 2 . E così via. Il segnale che veicola i dati da scrivere/leggere della traccia 1 e quello della traccia 2 sono generatati dalla ULA ZX8302 , e giungono alle unità microdrive , così come il segnale di che determina la modalità di scrittura o lettura. Il segnale di lettura/scrittura, opera nel seguente modo: se il livello logico è alto allora il microdrive è in modalità di lettura, viceversa se il livello logico è basso il microdrive esegue le operazioni di scrittura. Un altro segnale di controllo comanda la attivazione o meno della testina di cancellazione del nastro , la quale agisce su entrambe le tracce contemporaneamente.
Codifica del segnale dati di scrittura/lettura ; è usata la codifica a modulazione di frequenza secondo lo schema bifase : frequenza pari a n KHz per il valore "0" , e frequenza di 2*n KHz per il valore "1" (per i microdrive del QL siamo a 50 KHz per lo zero , e 100 KHz per l' uno)

Il funzionamento della unità Microdrive nel dettaglio
Per chi voglia cimentarsi nella realizzazione di un dispositivo hardware in grado di sostituire le unità microdrive e simularne il loro utilizzo, è necessario capirne il funzionamento fin nei minimi particolari , incominciando dalla parte più complessa : il processo di formattazione delle cartucce (poichè coinvolge simultaneamente sia le operazioni di scrittura che quelle di lettura, nonché la formattazione dei dati).
A tal fine sarebbe necessario interfacciare una scheda a microcontrollore alla ULA ZX8302 , per raccogliere i segnali dei dati della traccia 1 , traccia 2 , il segnale di controllo lettura/scrittura ed il segnale di cancellazione nastro.
Secondo il sistema di codifica dei dati sopra riportato, sia per la traccia 1 che per la traccia 2 , il valore di "zero" utilizza una frequenza di 50 KHz , raddoppiando a 100 KHz per il valore "uno" ; il fatto che non è presente un altro segnale a frequenza costante a cui fare riferimento per "agganciare" il segnale delle due tracce, unitamente al fatto che la lettura deve essere eseguita sia sul fronte di salita che sul fronte di discesa dei segnali di entrambe le tracce, è facile intuire che il sistema interfaccia debba per forza di cose avere una più che discreta potenza e velocità di calcolo, già solo per acquisire i segnali, senza processarli o memorizzarli.
Siccome volevo avventurarmi in questa impresa, avevo a disposizione due soluzioni : utilizzare un sistema di medio-alto livello (una MCU a 160 MHz capace processare di 40 milioni di istruzioni per secondo) , oppure un sistema di basso livello (MCU a 12 MHZ , con una media di 12 milioni di istruzioni per secondo). Manco a dirlo ho optato per la seconda, non fosse altro per pigrizia e perché avevo già tutto pronto. Questa scelta però ha comportato a dover rinunciare ad acquisire la seconda traccia, così leggendo solo la prima si ha a disposizione solo l'informazione dei bytes "dispari": metà dati sufficienti comunque per ricostruire il funzionamento dei microdrive. Per rendere più veloce ed efficiente l'esecuzione del programma , la MCU è stata programmata in assembler .
Il programma di acquisizione della traccia 1 , non utilizza timer particolari o sistemi di polling del segnale, ma semplicemente "conta" quanti passi di programma sono stati eseguiti ad ogni transizione del segnale di traccia (sia sul fronte di salita che su quello di discesa) per le sole operazioni di scrittura (quindi con il segnale scrittura/lettura allo stato basso). I passi contati sono memorizzati nella RAM interna della MCU da 4KBytes ; a fine lettura (o meglio a memoria esaurita), i dati raccolti sono presi dalla RAM ed inviati tramite una porta seriale ad un computer.
codice:
$asm LDI R27 , $01 'fai puntare a X l'indirizzo sram $0100 (MBS) LDI R26 , $00 'fai puntare a X l'indirizzo sram $0100 (LBS) LDI R16,$00 'imposta il contatore passi =0 Main: SBIC pina,2 'se il segnale lettura/scrittura... JMP Main '...è settato per la lettura, allora torna a testarlo INCR R16 'incrementa di una unità il contatore passi CPI R27,$10 'se si è esaurita la memoria RAM... BREQ Finito 'allora vai a finito JMP Main 'torna all'inizio del programma Main Gestisci_int: 'interruzione sul fronte di salita o discesa della traccia ST X+,R16 'salva il contatore passi in RAM LDI R16,$00 'azzera il contatore passi RETI 'fine interruzione e ritorna al programma main $end Asm
codice:
Dati grezzi dalla traccia 1 (valori in esadecimale): 0000000000000000000000001A070808071212111211121112 12111211121112111212111211 12111212111211121112111212111211121112080708080708 08070808080708080708080708080807080807080807080808 071211080811121108081108 08070808081108071208071208070808070808081112070812 11121112110808111212111211120708121112080712070812 1108081112080712110808 11121112120708110808110642700407081211121112121112 11121112111212111211121112121112111211121112 12111211121112111212111207080808070808070808070808 07080808071208070808070808070808070812110808070812 1112111211121211121112 11121112121112111211121211121112070808080708080708 08070808080708110808110808110808110808110808110808 110808110808110808110807 12080712080712080712080712080712070812070812070812 07081207081207081207081108081108081108081108081108 0811080811080811080811 08071208071208071208071208071208071208071207081207 08120708120708120708120708120708110808110808110808 110808110808110808110808 11080811080712080712080712080712080712080712070812 07081207081207081207081207081207081108081108081108 0811080811080811080811 08081108081108071208071208071208071208071208071208 07120708120708120708120708120708120708120708110808 110808110808110808110808 11080811080811080811080712080712080712080712080712 08071208071207081207081207081207081207081207081108 0811080811080811080811 08081108081108081108081108081108071208071208071208 07120807120807120708120708120708120708120708120708 120708110808110808110808 11080811080811080811080811080811080712080712080712 08071208071208071208071207081207081207081207081207 0812070812070811080811 08081108081108081108081108081108081108081108071208 071208071208071208071208071207081207081207 08120708120708120708120708110808110808110808110808 11080811080811080811080811080712080712080712080712 080712080712080712070812 07081207081207081207081207081108081108081108081108 08110808110808110808110808110808110807120807120807 1208071208071208071207 08120708120708120708120708120708120708110808110808 11080811080811080811080811080811080811080712080712 080712080712080712080712 08071207081207081207081207081207081207081207081108 08110808110808110808110808110808110808110808110807 1208071208071208071208 07120807120807120708120708120708120708120708120708 11080811080811080811080811080811080811080811080811 080811080712080712080712 08071208071208071207081207081207081207081207081207 08120708110808110808110808110808110808110808110808 1108081108071208071208 07120807120807120807120807120708120708120708120708 12070812070812070811080811080811080811080811080811 080811080811080811080712 08071208071208071208071208071208071207081207081207 08120708120708120708110808110808110808110808110808 1108081108081108081108 07120807120807120807120807120807120807120708120708 12070812070812070812070812070811080811080811080811 080811080811080811080811 08081108071208071208071208071208071208071208071207 081207081207081207081207081207081108081108 08110808110808110808110808110808110808110808110807 12080712080712080712080712080712070812070812070812 0708120708120708120708 11080811080811080811080811080811080811080811080811 08071208071208071208071208071208071208071207081207 081207081207081207081207 08120708110808110808110808110808110808110808110808 11080811080712080712080712080712080712080712070812 0708120708120708120708 12070812070811080811080811080811080811080811080811 08081108081108071208071208071208071208071208071208 071207081207081207081207 08120708120708120708110808110808110808110808110808 11080811080811080811080712080712080712080712080712 0807120807120708120708 12070812070812070812070811080811080811080811080811 08081108081108081108081108081108071208071208071208 071208071208071207081207 08120708120708120708120708120708110808110808110808 11080811080811080811080811080811080712080712080712 0807120807120807120807 12070812070812070812070812070812070811080811080811 08081108081108081108081108081108081108081108071208 071208071208071208071208 07120708120708120708120708120708120708120708110808 11080811080811080811080811080811080811080811080712 0807120807120807120807 12080712080712070812070812070812070812070812070812 07081108081108081108081108081108081108081108 08110808110807120807120807120807120807120807120807 12070812070812070812070812070812070811080811080811 0808110808110808110808 11080811080811080811080712080712080712080712080712 08071207081207081207081207081207081207081207081108 081108081108081108081108 08110808110808110808110807120807120807120807120807 12080712080712070812070812070812070812070812070811 0808110808110808110808 11080811080811080811080811080811080712080712080712 08071208071208071207081207081207081207081207081207 081207081108081108081108 08110808110808110808110808110808110807120807120807 12080712080712080712080712070812070812070812070812 0708120708120708110808 11080811080811080811080811080811080811080811080712 08071208071208071208071208071208071207081207081207 081207081207081207081108 08110808110808110808110808110808110808110808110808 11080712080712080712080712080712080712070812070812 0708120708120708120708 12070811080811080811080811080811080811080811080811 08081108071208071208071208071208071208071208071207 081207081207081207081207 08120708110808110808110808110808110808110808110808 11080811080811080712080712080712080712080712080712 0708120708120708120708 12070812070812070811080811080811080811080811080811 080811080811080811080712080712080712080712 08071208071208071207081207081207081207081207081207 08120708110808110808110808110808110808110808110808 110808110807120807120807 12080712080712080712080712070812070812070812070812 07081207081108081108081108081108081108081108081108 0811080811080811080712 08071208071208071208071208071207081207081207081207 08120708120708120708110808110808110808110808110808 110808110808110808110807 12080712080712080712080712080712080712070812070812 07081207081207081207081108081108081108081108081108 0811080811080811080811 08081108071208071208071208071208071208071207081207 08120708120708120708120708120708110808110808110808 110808110808110808110808 11080811080712080712080712080712080712080712080712 07081207081207081207081207081207081207081108081108 0811080811080811080811 08081108081108081108071208071208071208071208071208 07120807120708120708120708120708120708120708110808 110808110808110808110808 11080811080811080811080712080712080712080712080712 08071208071207081207081207081207081207081207081207 0811080811080811080811 08081108081108081108081108081108071208071208071208 07120807120807120807120708120708120708120708120708 120708110808110808110808 11080811080811080811080811080811080811080712080712 08071208071208071208071207081207081207081207081207 0812070812070811080811 08081108081108081108081108081108081108081108071208 071208071208071208071208071208071207081207 08120708120708120708120708120708110808110808110808 11080811080811080811080811080811080712080712080712 080712080712080712070812 07081207081207081207081207081207081108081108081108 08110808110808110808110808110808110807080808070808 0708121112111208071208 07120708120708120708120708120708120708110808110808 11080811080811080811080811080811080811080811080712 080712080712080712080712 08071208071207081207081207081207081207081207081108 08110808110808110808110808110808110808110808110808 1108071208071208071208 07120807120807120708120708120708120708120708120708 12070811080811080811080811080811080811080811080811 080811080712080712080712 08071208071208071208071207081207081207081207081207 08120708110808110808110808110808110808110808110808 1108081108081108071208 07120807120807120807120807120708120708120708120708 12070812070812070811080811080811080811080811080811 080811080811080811080811 08071208071208071208071208071208071207081207081207 08120708120708120708110808110808110808110808110808 1108081108081108081108 08110807120807120807120807120807120807120807120708 12070812070812070812070812070811080811080811080811 080811080811080811080811 08081108081108071208071208071208071208070000000000 000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 0000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 000000000000000000000000 000000000000000000000046494E4520300D0A
Siccome sono disponibili delle immagini (dump) di cartucce microdrive del QL, se questi dump vengono letti da un programma di editor esadecimale, si ottiene qualcosa simile a questo:

Con tanta pazienza e con l'aiuto del disassemblato del codice del sistema operativo del QL (rom Minerva 1.81) , si può intuire quale sia la formattazione dei dati sul nastro microdrive ; ho riportato alcune note a matita e con l'aiuto di colori diversi , per meglio visualizzare il layout.
Ora, con il dissasemblato della rom e con lo schema sopra riportato, è possibile trarre qualche informazione dai dati grezzi della traccia 1 appena acquisita :
0000000000000000000000001A07080807 =GARBAGE DATA
12 11 12 11 12 11 12 12 (leggenda : valori contatore passi)
0 0 0 0 0 0 0 0 =$00 (valori singoli bit , e valore byte in esadecimale)
12 11 12 11 12 11 12 12
0 0 0 0 0 0 0 0 =$00
12 11 12 11 12 11 12 12
0 0 0 0 0 0 0 0 =$00
12 11 12 11 12 11 12 12
0 0 0 0 0 0 0 0 =$00
12 11 12 11 12 11 12 12
0 0 0 0 0 0 0 0 =$00
0807 0808 0708 0807 0808 0807 0808 0708
1 1 1 1 1 1 1 1 =$FF
0807 0808 0807 0808 0708 0807 0808 0807
1 1 1 1 1 1 1 1 =$FF
12 11 0808 11 12 11 0808 11
0 0 1 0 0 0 1 0 =$44 =D
0808 0708 0808 11 0807 12 0807 12
1 1 1 0 1 0 1 0 =$57 =W
0807 0808 0708 0808 11 12 0708 12
1 1 1 1 0 0 1 0 =$4F =O
11 12 11 12 11 0808 11 12
0 0 0 0 0 1 0 0 =$20 =spazio
12 11 12 11 12 0708 12 11
0 0 0 0 0 1 0 0 =$20 =spazio
12 0807 12 0708 12 11 0808 11
0 1 0 1 0 0 1 0 =$4A (1 casuale)
12 0807 12 11 0808 11 12 11
0 1 0 0 1 0 0 0 =$12 (1 CRC)
12120708110808110642700407081211 =GARBAGE DATA
12 11 12 12 11 12 11 12
0 0 0 0 0 0 0 0 =$00
11 12 11 12 12 11 12 11
0 0 0 0 0 0 0 0 =$00
12 11 12 12 11 12 11 12
0 0 0 0 0 0 0 0 =$00
11 12 11 12 12 11 12 11
0 0 0 0 0 0 0 0 =$00
12 11 12 11 12 12 11 12
0 0 0 0 0 0 0 0 =$00
0708 0808 0708 0807 0808 0708 0807 0808
1 1 1 1 1 1 1 1 =$FF
0807 12 0807 0808 0708 0807 0808 0708
1 0 1 1 1 1 1 1 =$FD
12 11 0808 0708 12 11 12 11
0 0 1 1 0 0 0 0 =$0C
12 11 12 12 11 12 11 12
0 0 0 0 0 0 0 0 =$00
11 12 11 12 12 11 12 11
0 0 0 0 0 0 0 0 =$00
12 11 12 12 11 12 11 12
0 0 0 0 0 0 0 0 =$00
0708 0808 0708 0807 0808 0708 0808 0708
1 1 1 1 1 1 1 1 =$FF
110808110808110808110808
0 1 0 1 0 1 0 1 =$AA
110808110808110808110808
0 1 0 1 0 1 0 1 =$AA
110808110807120807120807
0 1 0 1 0 1 0 1 =$AA
120807120807120807120708
0 1 0 1 0 1 0 1 =$AA
120708120708120708120708
0 1 0 1 0 1 0 1 =$AA
120708120708110808110808
0 1 0 1 0 1 0 1 =$AA
110808110808110808110808
0 1 0 1 0 1 0 1 =$AA
110808110808110807120807
0 1 0 1 0 1 0 1 =$AA
<in totale si hanno 256 bytes di valore $AA>
<ultimi dati di dump memoria MCU>
12080712080712080712080700000000000000000000000000 00000000000000000000000000
00000000000000000000000000000000000000000000000000 00000000000000000000000000
00000000000000000000000000000000000000000000000000 00000000000000000000000000
00000000000000000000000000000000000000000000000000 00000000000000000000000000
0000000000000000000000000000000000000000 46 49 4E 45 20 30 0D 0A
<messaggio di fine dump dalla MCU> F I N E _ 0 CR LF
12 11 12 11 12 11 12 12 (leggenda : valori contatore passi)
0 0 0 0 0 0 0 0 =$00 (valori singoli bit , e valore byte in esadecimale)
12 11 12 11 12 11 12 12
0 0 0 0 0 0 0 0 =$00
12 11 12 11 12 11 12 12
0 0 0 0 0 0 0 0 =$00
12 11 12 11 12 11 12 12
0 0 0 0 0 0 0 0 =$00
12 11 12 11 12 11 12 12
0 0 0 0 0 0 0 0 =$00
0807 0808 0708 0807 0808 0807 0808 0708
1 1 1 1 1 1 1 1 =$FF
0807 0808 0807 0808 0708 0807 0808 0807
1 1 1 1 1 1 1 1 =$FF
12 11 0808 11 12 11 0808 11
0 0 1 0 0 0 1 0 =$44 =D
0808 0708 0808 11 0807 12 0807 12
1 1 1 0 1 0 1 0 =$57 =W
0807 0808 0708 0808 11 12 0708 12
1 1 1 1 0 0 1 0 =$4F =O
11 12 11 12 11 0808 11 12
0 0 0 0 0 1 0 0 =$20 =spazio
12 11 12 11 12 0708 12 11
0 0 0 0 0 1 0 0 =$20 =spazio
12 0807 12 0708 12 11 0808 11
0 1 0 1 0 0 1 0 =$4A (1 casuale)
12 0807 12 11 0808 11 12 11
0 1 0 0 1 0 0 0 =$12 (1 CRC)
12120708110808110642700407081211 =GARBAGE DATA
12 11 12 12 11 12 11 12
0 0 0 0 0 0 0 0 =$00
11 12 11 12 12 11 12 11
0 0 0 0 0 0 0 0 =$00
12 11 12 12 11 12 11 12
0 0 0 0 0 0 0 0 =$00
11 12 11 12 12 11 12 11
0 0 0 0 0 0 0 0 =$00
12 11 12 11 12 12 11 12
0 0 0 0 0 0 0 0 =$00
0708 0808 0708 0807 0808 0708 0807 0808
1 1 1 1 1 1 1 1 =$FF
0807 12 0807 0808 0708 0807 0808 0708
1 0 1 1 1 1 1 1 =$FD
12 11 0808 0708 12 11 12 11
0 0 1 1 0 0 0 0 =$0C
12 11 12 12 11 12 11 12
0 0 0 0 0 0 0 0 =$00
11 12 11 12 12 11 12 11
0 0 0 0 0 0 0 0 =$00
12 11 12 12 11 12 11 12
0 0 0 0 0 0 0 0 =$00
0708 0808 0708 0807 0808 0708 0808 0708
1 1 1 1 1 1 1 1 =$FF
110808110808110808110808
0 1 0 1 0 1 0 1 =$AA
110808110808110808110808
0 1 0 1 0 1 0 1 =$AA
110808110807120807120807
0 1 0 1 0 1 0 1 =$AA
120807120807120807120708
0 1 0 1 0 1 0 1 =$AA
120708120708120708120708
0 1 0 1 0 1 0 1 =$AA
120708120708110808110808
0 1 0 1 0 1 0 1 =$AA
110808110808110808110808
0 1 0 1 0 1 0 1 =$AA
110808110808110807120807
0 1 0 1 0 1 0 1 =$AA
<in totale si hanno 256 bytes di valore $AA>
<ultimi dati di dump memoria MCU>
12080712080712080712080700000000000000000000000000 00000000000000000000000000
00000000000000000000000000000000000000000000000000 00000000000000000000000000
00000000000000000000000000000000000000000000000000 00000000000000000000000000
00000000000000000000000000000000000000000000000000 00000000000000000000000000
0000000000000000000000000000000000000000 46 49 4E 45 20 30 0D 0A
<messaggio di fine dump dalla MCU> F I N E _ 0 CR LF
Commenta