ECL Format: differenze tra le versioni
m (→Header) |
m (→Usages) |
||
Riga 18: | Riga 18: | ||
=Usages= | =Usages= | ||
− | I file ''.em'' contenenti le funzioni di sistema importati con la direttiva | + | I file ''.em'' contenenti le funzioni di sistema importati con la direttiva '''use''' sono specificate immediatamente dopo l'header. Ogni blocco '''use''' ha una dimensione variabile. |
+ | |||
+ | I primi 6 bytes sono 01 00 00 00 00 00, segue un blocco di 13 bytes così suddiviso: | ||
* bytes 1-9: contengono il nome dell'usage sotto forma di stringa a lunghezza fissa | * bytes 1-9: contengono il nome dell'usage sotto forma di stringa a lunghezza fissa | ||
* byte 10: indica il numero di funzioni utilizzate da questo file | * byte 10: indica il numero di funzioni utilizzate da questo file |
Versione delle 22:46, 22 feb 2015
Il file ECL sembra avere una struttura a blocchi. Di seguito sono elencati quelli noti, riportati nello stesso ordine in cui compariranno all'interno del file.
Header
L'header sembra essere fisso: 43 45 02 00 00 00, 6 bytes.
I primi due bytes rappresentano il magic number del formato ("CE").
Il terzo byte probabilmente è il numero di versione (02 per POL093).
Program
Questo blocco definisce la direttiva program.
Non è sempre presente: ad esempio, non è usato nello script generale di startup start.ecl.
I primi 6 bytes sono 04 00 10 00 00 00 dopodiché segue un blocco di 13 bytes di cui solo il primo sembra essere usato ed indica il numero di argomenti accettati dal blocco program (01, 02, etc...).
Gli altri bytes sono lasciati a NULL.
Usages
I file .em contenenti le funzioni di sistema importati con la direttiva use sono specificate immediatamente dopo l'header. Ogni blocco use ha una dimensione variabile.
I primi 6 bytes sono 01 00 00 00 00 00, segue un blocco di 13 bytes così suddiviso:
- bytes 1-9: contengono il nome dell'usage sotto forma di stringa a lunghezza fissa
- byte 10: indica il numero di funzioni utilizzate da questo file
- bytes 11-13: sempre NULL
Segue la lista delle funzioni utilizzate da questo file, sotto forma 34 bytes ripetuti per il numero di volte indicato dal byte 10. Di questi 34 bytes, i primi 32 rappresentano una stringa a lunghezza fissa contenente il nome della funzione, mentre gli ultimi due sono sempre 00 01.
"basic" e "basicio" sembrano essere sempre i primi due usages e sono inclusi implicitamente anche se non dichiarati nello script.