Dernière mise à jour: Mercreci
20/02/2008. Cliquez ICI pour voir
l'état d'avancement du projet.
1) Introduction
16 aout, jour J du lancement de mon nouveau projet DOTNIB.
Il y a eu 4 déclencheurs à
l’origine de ce projet :
- Les limitations de FASTDSK.
- Les points faibles des outils de création de
.NIB.
- L’enchère de Bob
Colbert,
l’auteur de SST.
- Les discussions sans suite dans le forum comp.sys.apple2
sur un nouveau
format de disk image.
Je détaille chacun de ces points dans les paragraphes qui
suivent.
2) Les limitations de FASTDSK
Après avoir créé un bon nombre de .DSK
à partir de mes disquettes avec l’outil FASTDSK,
plusieurs constats s’imposent :
- Il y a toujours un certain nombre de disquettes qui ne sont
pas au
format 16 secteurs et pour lesquelles FASTDSK ne peut pas
créer de .DSK.
- Certaines disquettes ont encore des markers de champs
(adresse et/ou données)
non standards. Dans la plupart des cas, FASTDSK
échoue car je n’ai pas encore ajouté
une option permettant de redéfinir complètement
les 64 disk bytes valides ($96-$FF) comme l'autorise par exemple Nibbles Away II. Les
valeurs peuvent être
mélangées dans la routine de décodage
d’origine d’un logiciel et la lecture avec FASTDSK
donne un .DSK rempli de n’importe quoi qui se plante au
démarrage.
- Il y a aussi des disquettes en 16 secteurs qui passent
impeccablement
avec FASTDSK mais qui crashent sur les
émulateurs
disponibles. La plupart du temps, il y a soit un problème
avec la routine de lecture (utilisation de softswitchs non standards -
le cas classique avec les disks signés ACS),
soit le logiciel utilise le numéro du volume comme
identifiant de face (c’est par exemple le cas pour la plupart
des jeux signés Sierra.
Pour ces softs au format .DSK, il
n’est pas possible de démarrer une partie car les
programmes se bloquent au tout début). Pour rappel, le
format .DSK ne contient que les champs datas et c’est
l’émulateur qui reconstruit le champ adresse en
prenant des valeurs standards (les numéros de face sont donc
perdus pour ces jeux qui alors perdent les pédales).
Même si au final, il n’y a pas des tonnes de
disquettes à problème, c’est tout de
même gênant d’en laisser de
côté.
3) Les points faibles des outils de création de
.NIB
Au lieu d’utiliser le format .DSK, il est toujours possible
de créer des images en .NIB qui contiennent aussi les champs
adresse des disquettes originales.
Je connais 2 programmes permettant de créer des .NIB :
- NIB2FILE 1.0 de Ron
Kneusel.
- SST (Saltine's
Super Transcopy) de Bob
Colbert.
Mais aucun de ces 2 programmes ne me donnent satisfaction.
Bien que NIB2FILE tourne
sous ProDOS, soit dans le domaine public et
est téléchargeable avec son source assembleur, il
a un potentiel
évolutif faible par rapport à SST.
SST est un logiciel sous DOS
(tout au moins le lancement car ensuite le
DOS est écrasé par des routines).
Comme il est basé sur la routine de lecture de piste d'EDD 4
(Essential Data Duplicator 4
de la société américaine
- aujourd’hui disparue - Utilico
Microware), il inclut toutes les routines de ce copieur y
compris celles prévues pour traiter des 1/2 pistes,
les 1/4 de pistes, la synchro des pistes,
...
Ses gros défauts sont :
- l’incompatibilité avec ProDOS.
- son source indisponible.
- La nécessité d’avoir 2
lecteurs de
disquettes car le .NIB est écrit sur 2 faces de disquettes
supplémentaires
(il faut ensuite créer 2 .DSK à partir de ces
disquettes avec un autre outil puis les reconstituer sur une machine
moderne, ce qui est vraiment lourdingue).
En théorie SST
est bien plus puissant que NIB2FILE
mais
souffre d'inconvénients rendant son utilisation
pénible.
Note du 10/10/2007: Gerard Putter,
auteur de
l'émulateur Virtual
][ pour mac a fait une version
modifiée d'ADT nommée A2V2 permettant le
transfert de datas et la création de .nib sur mac.
Il a par ailleurs créé un nouveau format
contenant les 1/2 pistes: .v2d
4) L’enchère de Bob Colbert,
l’auteur de
SST.
On pouvait toujours espérer que SST
évolue car
son auteur avait fait quelques apparitions sur le forum comp.sys.apple2.
Mais il est survenu récemment un
évènement qui me laisse penser qu'il ne faut pas
y compter.
En effet, Saltine a vendu son
manuel d'utilisation du logiciel EDD.
Son annonce est parue sur comp.sys.apple2.marketplace il y a quelques
mois et le manuel a
été vendu sur ebay avec un lot d'autres
documentations.
J'ai tenté de lui acheter ses docs mais il avait
verrouillé la vente aux USA et n'a pas souhaité
changer cette restriction (à son tord d'ailleurs car le prix
n'a pas décollé - pourtant certaines de ces docs
sont rares).
Nous avons échangé quelques mails quand je lui ai
dit que je voulais travailler sur SST
et que je cherchais le code
source de son programme par la même occasion ainsi que le
source d'EDD qu'il avait
acheté à
l'époque.
Nous avions convenu qu'il essaierait de m'envoyer ce qu'il pourrait (un
PDF du manuel et le source de SST
- le source d'EDD sur
disquette étant
perdu: il avait prêté sa disquette
originale à un gars que ça intéressait
mais ce dernier ne lui a jamais renvoyé. Je cite: "I'd love
to see you continue the work. I'll try scanning it today. I do not have
the source that I bought from the company any more. I sent it to
someone years ago who was going to copy it and send it back, but he
never did :( I'll try scanning the book today").
C'était
en avril/mai 2007 mais depuis que ce soit à cause de La
Poste ou parce que Bob n'a
pas trouvé le temps, je n'ai rien
reçu.
J'en ai conclu que je devrais me débrouiller seul...
5) Les discussions sans suite dans le forum comp.sys.apple2
sur un
nouveau format de disk image
Régulièrement, on voit
s'étaler sur le forum comp.sys.apple2 des
messages sur le souhait de voir apparaître un
nouveau format de disk image qui soit plus complet que le .NIB.
A chaque fois il est souligné qu'il manque telle ou telle
caractéristique dans le .NIB, qu'il faudrait aussi tel ou
tel truc en
plus pour faire en sorte que l'on puisse exécuter des
programmes originaux même plombés, mais ces
discussions ne débouchent sur rien.
Je constate néanmoins que les discussions concluent
souvent
qu’il faudrait partir de SST
pour faire
évoluer le format .NIB mais personne ne s’y colle
et pour cause: le source est introuvable sur internet.
Note du 10/10/2007: ça y est, CE SOURCE EST DISPONIBLE ICI. Un
grand merci à Paul Guertin
(Canadien francophone), auteur
d'ADT, pour m'avoir
aiguillé dans la bonne direction et à Ed Eastman (USA) qui m'a
envoyé les .dsk de SST
correspondant aux originaux de
Saltine.
A noter toutefois que ce source prévu pour l'assembleur LISA
est très dépouillé au niveau des
commentaires aussi pour l'aspect documentation, il reste beaucoup de
travail à réaliser.
Bien entendu les créateurs ou les personnes assurant la
maintenance des émulateurs ne s'amusent pas à
supporter un format s'il n'y a pas d'outils capables de produire de
tels
fichiers sur l'Apple II.
Il faut que le point de départ soit un
outil sur
l'Apple II. A partir de
là, les responsables d’émulateurs
suivront en adaptant leurs programmes.
6) DOTNIB
Mon projet DOTNIB serait une
première étape dans
la création d'un format plus complet.
Mais avant même de commencer à
programmer DOTNIB,
il faut satisfaire quelques
prérequis:
- Fournir la documentation complète d’EDD
4 (le
manuel utilisateur).
- Fournir le code source complet et commenté
d’EDD
4. Pour ce dernier, on s’appuiera une version
crackée (la 4.2 ou la 4.9 voire les 2) et sur le PDF du code
source disponibles sur le site de Dave Touvell. On pourra
aussi lire
avec attention les informations communiquées par Jean-Pierre
au sujet d'Edd 4 plus et de son crack
sur son super site HackZapple.
Voici la liste des caractéristiques souhaitées
de DOTNIB:
- Compatible ProDOS.
- Lancement via un SYS.
- Utilisation que d'un seul drive (avec la disquette
à traiter).
- Choix du volume/répertoire cible où
seront
stockés les .NIB créés (idem FASTDSK). Exemple: un sous
répertoire de la carte CFFA.
- Possibilité d'avoir une option de nommage
automatique des .NIB (idem FASTDSK).
- Possibilité d'avoir une log incluant les
informations de chaque création de .NIB (ok ou erreur de
type "piste trop longue", informations de début, de fin et
de taille de piste, etc...)
- Possibilité d'utiliser une carte ram type slinky
avec un
volume ProDOS comme buffer pour que la phase de lecture de la disquette
dure le moins longtemps possible.
- Inclusion des routines d'EDD 4
en prévision de
l'évolution du format des disks images et surtout
de l'évolution des émulateurs pour la
prise en charge des ces formats (.FDI, .BST = la proposition de format
d'Ed Eastman pour avoir un
Apple 2 Bit Stream format, autres
formats à inventer...)
- Code source disponible pour tous.
J'ai de quoi m'occuper un bon moment ;-)
7) Histoire d'Utilico Microware
Informations trouvées sur le net ici et
recopiées sur cette page.
L'inventeur de la carte EDD PLUS
(hardware) est Charles J. Rosenberg.
Il raconte l'histoire de sa carte et l'association avec Utilico
Microware.
Le responsable du manuel EDD
et du software s'appelle Donald A. Schnapp
(Don).
DOK, Hewlett, NY, March 1985 - September 1996
Entrepreneur
- Designed EDD Plus hardware card for the Apple 2 computer.
- Started and ran
business to produce and sell EDD Plus Card.
- Sold over 4500
units.
The Rest of The Story
This project started during my senior year of high school. First some
background. At the time, the Apple 2 series of computers was very
popular. Pirates and software vendors were in an escalating war of copy
protection schemes, disk copying programs and cracking schemes. Many of
these schemes took advantage of the flexibility of the floppy disk
controller card hardware. To make the Apple 2 floppy system cheap, a
lot of the decoding of the bit stream from sectors was done in
software. What this meant is that it was possible to come up with a
disk format which was incompatible with the standard Apple 2 DOS floppy
disk format. This made it impossible to copy disks using the standard
DOS copy software.
So a bunch of people wrote copy programs which were more generic than
the standard DOS copy and could copy these disks, for example
Locksmith, Copy II Plus, and EDD. They treated the disk as a series of
bytes and didn't rely on as much of the underlying structure. How did
they get away with selling these programs? These programs were sold as
a means of a genuine user making archival copies of their software. Of
course, these programs themselves were pirated and used to distribute
and copy pirated software.
Of course once certain protection schemes were defeated, a new
protection scheme was invented. The one which I decided to attack was
one which took advantage of how the disk hardware worked. One of the
main tasks of the floppy disk controller card was chopping the bit
stream from the disk drive up into bytes. The way this was done was
that every byte had to start with a one bit, the hardware threw away
all leading zero bits. By writing a particular sequence of bits to the
disk, you could always guarantee that the controller would sync up.
Well, certain protection schemes were written which would write out
extra zero bits when writing bytes to disk. This software would then
time how long it took the disk controller to decode a byte and detect
the presence of these bits. The problem for copy programs was that the
hardware removed those bits before they could see them. A protected
disk knew where the "magic" bytes were and therefore could check those
bytes multiple times and average the time to read them over multiple
tries. Copy programs could try to do the same thing, but they didn't
have the luxury of knowing where these bits were.
My idea was to implement an auxiliary disk drive controller. This
controller would intercept the data stream before it reached the drive
controller and pass the raw bitstream onto the computer. So I
implemented hardware to do exactly this. The card ended up being a
simple set of 8 TTL chips with a pass through connector. The floppy
disk drive would plug into this card and a secondary cable would run
over to the regular controller card.
Once I had a functioning prototype I tried to convince the makers of
the current copy programs to modify their software to be able to read
data from my card. After a couple of months, I was able to convince Don
Schnapp, the author of EDD (Essential Data Duplicator) to offer a
special version of his software packaged with my card. I had the cards
manufactured, and shipped them to Don, and he modified his software and
dealt with all of the customer issues. He also continued to sell the
version of his program without the card.
All, in all the card was reasonably successful and provided me with
some income during my years at college. Because the Apple 2 market is
pretty much dead now (it mostly only lives on in emulation) and
therefore there were no more sales, Don and I decided to stop selling
the system.
8) Avancement du projet
16/08/2007 : Date début projet.
10/10/2007 : La documentation (manuel EDD
4.2
) est disponible ici
en version draft (photos).
28/10/2007 : La documentation finalisée du manuel d'EDD
4.2 convertie en texte grâce à
l'aide de Jonno Downes, Shaun Olson et Jerry
Penner est
achevée. Cliquez ici pour y accéder.
20/02/2008 : longue période de
rétro-ingénieurie destinée
à produire le source complet de SST pour Merlin 8. Cliquez
ici
pour accéder à : SST Technical Reference Page.
à suivre...