Format
Sauvegarde es el format en que clients francesos tenen alguns els dissenys. Es veu que es el format natiu del programa de perçage com ells li diuen. Aquest programa el fan servir a uns ordinadors molt antics (SORD M68). En algun cas necessiten escriure en aquest format per enviar el disseny a la màquina, com es el cas de Laude quan envia dissenys a Bracq.
Disquet Sauvegarde
El disquet de sauvegarde està escrit en un format molt antic, de manera que les disqueteres modernes no l'entenen. Per això necessitem un dispositiu Catweasel per llegir-los i escriure'ls. Veure l' apartat relatiu a aquest format per a més informació.
Sistema de fitxers
A diferència del format ROMi, aquest disquet no conté les dades escrites a un offset fixat, sinó que conté un sistema de fitxers on s'hi troben els fitxers que conformen un o més dissenys sauvegarde. Aquest sistema de fitxers es diu CP/M, segurament versió 2.2, encara que te diferencies respecte a la documentació que s'hi pot trobar a internet. Tenim un programa amb el que hem pogut llegir tots els disquets sauvegarde que han passat per les nostres mans. Es troba al directori dump dins del repositori de la llibreria libsgarde.
Fitxers Sauvegarde
FICHIER
Un disquet de sauvegarde conté diversos fitxers. Un d'ells es obligatori, es diu FICHIER, i només hi trobem un dins el disquet. Aquest fitxer fa la feina d'index, contenint una llista dels diversos dissenys que s'hi troben al disquet, fins a un màxim de 10. El nom de cada disseny pot tenir una longitud de fins a 6 caràcters, i només s'admeten xifres, no lletres.
Dins el fitxer també hi apareix opcionalment una clau de seguretat, que es farà servir al carregar el disseny en diversos programes, per permetre o no la càrrega. La llibreria libsgarde ignora aquesta clau a l'hora de carregar i no n'escriu cap a l'hora d'importar.
Fitxer de disseny
Aquest fitxer te el mateix nom que el disseny, i no te extensió. Te una mida fixa de 1664 bytes i conté molta informació relativa al disseny. Nom del dissenyador, número de passades i agulles, descripció dels cartrons, stops, etc. Es pot trobar informació detallada sobre aquest fitxer al document 'doc/format.txt' dins el repositori de libsgarde. Es important llegir aquest fitxer correctament per poder interpretar la resta, al menys la informació de número de passades i la mida i descripció dels cartrons.
Fitxer de grosfil
Aquest fitxer conté els cartrons de grosfil. Te l'extensió FIL. Conté 2+<número de passades> records. Cada record conté la descripció del cartró GF1, seguida de la descripció del cartró GF2, si existeix.
El primer record conté, per cada columna, un espai (char. 0x20) si la barra relativa a aquella columna no té mitjos; o un valor 0x1f si té mitjos.
El segon record conté la categoria de cada barra: Un valor binari que indica el desplaçament màxim d'aquella barra. 7 per els stums, 31 per algunes barres, etc. Quan una columna del cartró no te cap barra associada, o es una barra buida, hi apareix un espai (32).
A partir del tercer cartró comencen les passades. Cal destacar que, a diferencia del format ROMi, en sauvegarde al cartró hi trobem el valor de la barra a aquella passada, i no els forats. Per tant no necessitem conèixer la configuració de dropes.
Fitxer de finebarre
Conté la finabarra. S'identifica amb l'extensió FIB. Es similar al fitxer de grosfil, sense cap record extra, només un cartró per passada.
Problemes
Finabarra
El problema que tenim amb la lectura de la finabarra ve donat per la falta de una llista de gaits. La descripció del cartró dins elfitxer de disseny te aquest format (exemple):
| Codi | Significat |
|---|---|
| D | Debut carton |
| 3 | droites impaires |
| 4 | gauches impaires |
| C | Centrage |
| 1 | Droites paires |
| 2 | gauches paires |
| F | Fin carton |
Part de la configuració de gaits ens la donen aquestes seccions '1'..'4':
- agulles 2,6,10,etc. i després 4,8,12,etc. dreta
- agulles 2,6,10,etc. i després 4,8,12,etc. esquerra
- agulles 1,5,9,etc. i després 3,7,11,etc. dreta
- agulles 1,5,9,etc. i després 3,7,11,etc. esquerra
En teoria amb aquesta informació ja podem muntar els gaits, amb certes restriccions, per exemple no podem començar un bloc de agulles (2,4...) o (4,8,...) sense deixar forats en blanc fins a l'inici d'una nova columna. Encara i així ens falta el levier. Abans de la descripció del cartró de FB i ha un valor anomenat levier. Es veu que es un número de forats extra que es deixa entre bloc i bloc. Per tant al final d'un bloc hem de sumar el levier i llavors arrodonir a 8.
Si no ho hem complicat suficientment, encara hi hem d'afegir un altra variable. El tipus de muntatge.
- Alçada complerta (pleine hauteur)
- Es tal com ho hem explicat, cada codi '1'..'4' indica dos blocs d'agulles.
- Mitja alçada (1/2 hauteur)
- Cada bloc d'agulles està dividit en dos, per exemple, '1' = agulles 2,6,10,...(h/2) <levier + arrodoniment> (h/2)+4,.....(h) <levier + arrodoniment> 4,8,...(h/2) etc.
- Montatge especial de Bracq/Laude
- Hem trobat que alguns muntatges que fa Laude o que fa servir Bracq a les seves màquines no es correspon amb cap dels dos anteriors.
No hi ha cap indicació al format sobre si s'està fent servir un tipus de muntatge o un altre. Aquesta informació l'hem extret del programa recupdes.c que ens va deixar Bracq. Aquest programa només pot processar els dos primers tipus de muntatge, no contempla cap muntatge especial. Com que necessitem conèixer el muntatge per llegir els cartrons correctament (concretament la mida del cartró), la llibreria libsgarde primer intenta detectar el tipus de muntatge (Muntatge=AUTO). Se li pot forçar un dels dos muntatges coneguts, o se li pot demanar que faci servir el muntatge a Carta (només agafa la mida del cartró). Cal prestar especial atenció a possibles errors a l'hora d'autodetectar el format. En cas de que algun client no pugi carregar dissenys amb AUTO se li ha de demanar que configuri els cartrons i gaits correctament al Carta. No s'ha d'intentar endevinar el muntatge i adaptar la llibreria, es perdre el temps.
Levier
En general es un valor una mica absurd, per exemple de vegades tenim levier 3 quan per arrodonir a 8 necessitem més de 3 forats. D'aquesta manera el valor de levier no canvia res. Sembla que simplement es un valor que ells posen amb el programa i que pot tenir més significat a la màquina que pròpiament al fitxer.
Tipus de disseny
Dins el fitxer de disseny hi ha un identificador que pot ser 'FINEBARRE' o '4 BARRES'. El primer cas es el que em explicat en aquest document. El segon, '4 BARRES', es un cas especial i menys freqüent. Quan trobem aquest identificador, el fitxer no te finabarra (no existeix el fitxer .FIB o es buit), però sí te stums. La finabarra fa només la feina per defecte. Per tant tampoc tenim descripció de cartrons.
Clients
Bracq
Te un programet de conversió (recupdes.c) d'aquest format al seu format Caoleavers. Aquest programa es el que hem fet servir com a referència per estudiar el format sauvegarde.
Laude
Te molts dissenys antics en format sauvegarde i també vol exportar des de Carta en aquest format per enviar els dissenys a Bracq. Alguns dels seus muntatges son especials i diferents a la resta, per tant poden donar error al carregar sense configurar el cartró correctament.
Sophie Hallette, Magniez
Estaven interessats en poder llegir i escriure el format. Ens van donar uns disquets de exemple i els hem carregat bé doncs fan servir els muntatges descrits en aquest document.
Més informació
Al repositori de libsgarde hi ha informació més detallada del format:
- Fitxer format.txt dins doc/. Format de cartrons i camps del fitxer de disseny.
- Fitxer recupdes.c dins doc/. Codi (horrible) que parseja un disquet sauvegarde per transformar-lo a Caoleavers.
- Fitxer cpmdump.c dins dump/. Format del sistema de fitxers.