| |
Suite à une entrevue de Steve Wozniak avec Charles T. "Dr. Tom" Turley qui est parue dans le numéro été 1997 II de "II Alive".
Retour sur le passé, Woz raconte : "Comment Je L'ai fait!"
La bourrasque récente (nota: on est en 1997) des spéculations entourant le futur de Apple inc. semble avoir remué bien des questions au sujet de la naissance de Apple II. Quelques auteurs ont rapporté que le codage premières ROM des II était une affaire assez simple puisque, "naturellement", Steve Wozniak a eu accès à un assembleur et à un terminal. Les commentaires tels que "évidents" et "faciles" ont conduit à se poser des question au sujet des décisions pour employer la RAM dynamique et pour inclure un interprèteur BASIC. J'ai donc décidé d'interroger Woz sur tous ces faits.
CT : Vous avez vu le rapport, dans quelle mesure est-il exact ?
L'auteur du rapport que j'ai reçu de vous a tort quand il dit qu'aucune ROM de grande taille n'a été assemblée à la main. Je n'aurais jamais pu me permettre un assembleur pour des 6502 que j'avais achetés pour $20.
D'abord, j'ai relié les 6502 à la RAM statique et à un terminal vidéo de ma propre conception. J'ai alors écrit un programme court, un "moniteur" pour observer le clavier et pour afficher des caractères, à la fois par interruption et par scan. Nous n'avons pas eu de PROMS 256 octets, juste des 256 x 4 à ce moment-là. J'ai employé deux d'entre elles que nous avions programmées pour le développement d'une calculatrice chez HP. La première mise en marche du matériel a été quelques heures de frustration mais j'ai obtenu une fonctionnement en scan avec le clavier cette nuit là.
J'ai alors écrit un programme de "moniteur" de 256 bytes qui observait le clavier pour la saisie de données en hexadécimal ( address: data data data) qui affichait en hexadécimal et qui lançait le programme ("Run"). Je suis devenu très bon pour la saisie au clavier en hexadécimal et très très bon pour vérifier la saisie des données caractère par caractère. Je ne peux pas encore lire un numéro de carte bleue sans erreur, mais j'ai de bonnes habitudes à ce jour.
CT : Même le Vic20 de commodore, qui est apparu plusieurs années après, emploie des RAM de mémoire statiques plus faciles à utiliser. Qui était derrière la décision d'employer la RAM dynamique ?
J'ai commuté aux RAM dynamiques quand quelqu'un de notre club en a vendu quelques dollars. Après tout, dans 1975 c'étaient les premières RAM meilleur marché que la mémoire à tores, la dynamique 4K. J'ai acheté quelques AMI 22 pins qui étaient fabriquées par trois fournisseurs.
Pratiquement aucun des autres ordinateurs amateurs de cette époque n'a employé les RAM dynamiques, j'ai pensé que c'était en raison du caractère de technicien amateur de la plupart des fans que j'ai rencontrés, ils n'étaient pas de véritables ingénieurs. En outre, ils étaient familiers avec les achats peu coûteux comme dans les magasins de surplus de l'armée où la RAM préférée était la RAM statique 2102. Mais pour moi, concevoir avec de la RAM dynamique était facile et j'ai eu plaisir à cela
Steve Jobs m'a demandé ce que je pensais des RAM dynamiques d'Intel. Je lui ai dit je sentais qu'elles étaient les meilleures. Bien qu'elles aient eu besoin de plus de circuits pour piloter l'adressage en rangées et en colonnes (pas simplement un fil de l'unité centrale pour chaque ligne d'adresse) et elles étaient plus petites. J'ai pris du temps pour mesurer la validité de mes conceptions en termes place et de nombre de circuits. Ainsi la RAM 16 pins d'Intel, plus les multiplexeurs et le circuits des signaux de synchronisation prennaient réellement moins d'espace que les RAM22 pins d'AMI. J'ai également économisé quelques drivers d'horloge.
J'ai senti que nous ne pourrions jamais nous permettre n'importe quel circuit d'Intel, ayant entendu que les 8080 étaient à $370. Mais Steve a obligé un représentant à nous donner 16 échantillons. Ainsi l'Apple I que j'ai mis sur pied par le meilleur choix de RAM, avant même de savoir comment le reste serait assorti aux RAM. Quand les 16K dynamliques sont apparue dans le format compatible d'Intel nous étions chanceux d'être sur la bonne voie.
CT : Comment le BASIC est apparu comme partie du premier ordinateur Apple?
Le livre "101 jeux de BASIC" m'a incité à penser que le langage de haut niveau pour ces ordinateurs à prix réduit était BASIC, quoique je ne l'aie jamais employé. Je me suis référé à un manuel DE BASE de HP pour développer mes diagrammes de syntaxe. Espérant être le premier avec un BASIC 6502, j'ai laissé tombé la virgule flottante. Mais ce que je voulais c'était des jeux, des simulations de logique, des solutions de puzzles etc... et les nombres entiers c'est très bien. La majeure partie de ma programmation en université avec des numériques était faite avec des opérations de nombre entier seulement pour une grande exactitude.
J'ai écrit entièrement le BASIC à la main sans l'assembleur. J'ai gardé des milliers de pages de mon travail à la main depuis le premier jour. Le code final de la ROM Apple II a été entièrement fait à la main et est dans un cahier. Apple II était le premier produit avec les ROM 2K de Synertek pour un total de 4K de code. J'ai construit un désassembleur et ai écrit un mini-assembleur (aucun symbole, seulement de l'hexadécimal) qui a été installé dans l'Apple II sur une version postérieure de ROM
CT : Que diriez-vous des périphériques comme les interfaces de la cassette de l'imprimante, et du disque ? Je devine que ceux-ci tous ont été codés en utilisant un assembleur, exact ?
La carte imprimante a été faite avec une ROM de 256 bytes j'ai pu l'avoir codée à la main ou avec notre premier assembleur. Il est peu commun à ce jour que vous branchiez une imprimante sur un système au moyen d'undriver dans la ROM sur la carte d'imprimante. Véritable 'Plug'n Play". Possible à ce jour mais rarement fait (j'ai entendu parler de Newton comme exception ).
La ROM de Apple II a pu piloter les entrées et sorties de n'importe lequel des 7 slots. Les medias peuvent être lus ou écrit sur une cassette entière.
Le disque souple a necessité une conception très fine du matériel, très étroitement couplée aux sous-programmes d'accès du niveau le plus bas que j'ai écrit sans assembleur. Wiggington a écrit les routines "Read Write Tractor Sector", une étape plus haut. Randy et moi avons commencé un système d'exploitation mais nous avons confié sa réalisation aux associés à "Shepardson associates". Inutile de dire, rien de cela n'a été fait à la main !
|