Ho capito
Però ho visto che in hex non c'è 00 come da specifica, bensì 20...
30 30 30 20 20 E2 04 30 30 30 ... 30 30 20 E0 22 02 30 30 ...
come mai?
Il passo successivo è trovare il modo di comprimere molto i .TAP.
Ho dato un occhio alla proposta per il formato .TMG, ma mi sono incasinato. Inoltre non ho capito come faccia a distinguere differenti sessioni nello stesso file :huh:
Ho pensato ad un formato semplificato ma reversibile:
Proposta per comprimere i .TAP v1.0
4 bytes header "CTAP" Compressed TAP
1 byte versione
2 byte numero puntatori a blocchi (N)
N*4 bytes (32-bit per ogni puntatore)
4 bytes per l'indirizzo di fine file
all'indirizzo di ciascun blocco:
1 byte marker che può essere "2"=codifica a 2 livelli oppure "3"=codifica a 3 livelli
3 bytes per definire la durata degli impulsi L,M,S
4 bytes per il valore di pausa iniziale
4 bytes puntatore fine blocco corrente
seguono i dati compressi come segue:
Codifica a 2 livelli: binario (rapporto di compressione 8:1)
Codifica a 3 livelli: coppie di bit per impulso (rapporto di compressione 4:1)
All'indirizzo di fine blocco:
4 bytes CRC32
All'indirizzo di fine file:
4 bytes CRC32 sull'intero contenuto del file, header incluso.
4 bytes "C=64" come tributo al biscottone
Cosa ne pensate?