Blog parlant de rétrocomputing (paleo informatique). J'aime utiliser les nouvelles technologies au service de nos vieux ordinateurs. J'apprecie particulièrement les marques suivantes: Oric, Apple, Atari, Commodore, MSX, Vectrex & les vieux PC (IBM, Tandy , Compaq, ..)
Pour faire suite à l'article précèdent sur les BBS, je vais vous parler de Modem WIFI (!). Le WiModem pour Commodore 8 bits et le WiModem232, pour les machines possédant un port RS232 (Apple II, Atari ST, Commodore Amiga, IBM PC, ....).
Le WiModem (a gauche) et le WiModem232 ( à droite)
Les 2 sont très similaire, seul change la connectique. Aussi pour le reste de l'article je parlerai d'un seul et même produit (c'est le cas).
Pour le WiModem, et donc les Commodore 8bits (C64, Plus/4, C128, SX64, ...) la connexion se fait via le port utilisateur (user port) avec l'avantage de ne pas nécessiter d'alimentation externe. Seul inconvénient, vous ne pourrez pas utiliser un lecteur SD2IEC de ce fait. Il faudra vous tourner vers d'autres solutions type pi1541, U2+, KFF, EasyFlash, ou une vrai drive, pour charger vos softs, selon la machine.
Pour le WiModem232, la connexion se fait via le port RS232 mais nécessite une alimentation de type mini usb en plus afin d'alimenter le modem. Rien de fou mais il faut le préciser.
A noter les modems existent en version avec ou sans écran. Personnellement, j'ai opté pour les versions sans écrans et je ne ressent pas un manque à l'usage.. L'écran servant à afficher l'état de la connexion wifi entre le modem et votre reseau. Dernier point, les produits sont livrés sans boitier. C'est dommage. Il existe des modèles 3D du WiModem232, pour l'impression, mais bon j'aurais aimé avoir le choix d'acheter un boitier directement et avoir ainsi un produit fini.
Voila pour les différences, du coup rentrons dans le détail des spécifications qui sont similaires entre les 2 modèles :
- Modem Internet WIFI
- émule un modem Hayes standard
- fonctionne de 75 à 230400 bauds
- utilise les standard Hayes, Rx/Tx, RTS/CTS, DTR/DSR, et DCD, permettant de faire fonctionner un BBS.
- mise à jour du firmware en ligne.
- Led d'état de connexion
Mon C64-N, son Utimate II+ et le WiModem (en haut)
La led est rouge, il n'est pas connecté
Un des intérêts majeurs de ce hardware est que le modem retranscrit (émule) les commandes Hayes, notamment lors du dial pour atteindre une BBS connecté sur internet, via une résolution de nom DNS ou son IP. Et ceux même si votre soft n'est pas prévu pour. Pour le coup c'est vachement bien. Les commandes qui ne servent pas comme la gestion du son (volume du hp du modem) sont également présentes pour assurer une compatibilité parfaite avec les logiciels. Bien entendu, des commandes spécifiques sont également implantés afin de gérer les différents aspects du hardware mais aussi de la gestion IP du modem. La liste est affichable en faisant un at*help et at*help! pour la version complète.
Avant d'aller plus loin, je vous conseille de lire la doc, dispo sur le site, qui est très bien faite. Idéalement avoir une première connaissance des modems, des protocoles, des émulations de terminal est un vrai plus. Si vous ne savez même pas de quoi je viens de parler, vous risquer de galérer un peu, voire beaucoup.
Mais commençons pas la mise en œuvre. Rien de plus simple. Vous dégainez votre plus beau logiciel d'émulation de terminal, vous le configurez en 300bps, N81 (le classique), vous calez une petite émulation ascii et ensuite vous tapez une petit ATI (pour afficher des informations).
Si tout vas bien le modem doit vous répondre et affichez des informations. Pour info, la commande ATI possède plusieurs niveaux de détail, le ATI simple et les ATI1 à ATI5, pour afficher différents types d'informations. cf la doc.
Bon maintenant connectons le modem au WIFI ... Facile. Un petit AT*N, va scanner le wifi et afficher les SSID en mettant un numéro devant chacun. Ensuite un petit AT*NS[numéro du SSID],[passphrase] devrait vous connecter. Il est également possible de saisir manuellement le SSID et le mot de passe directement via un AT*SSID[nomduwifi],[passphrase], ne pas mettre d'espace entre SSID et le nom du wifi. ex : AT*SSIDMONWIFI,monmdp.
Si tout se passe bien la led doit passer de rouge (non connecté) à Jaune (connecté). Un nouveau ATI devrait afficher le wifi connecté et l'adresse ip de la machine sur le réseau local.
Un C64-N connecté sur un réseau IP :)
Led verte - connecté en wifi ET a un site
Une fois passé cette étape, le mieux est de lancer une petite mise à jour du firmware via un AT*UPDATE . Auparavant, je vous conseille de booster un peu la vitesse de connexion à au moins 9600bps via un AT*B9600 (ou plus), n'oubliez pas de modifier la vitesse dans votre logiciel également sinon ca va moins bien marcher.
L'update se télécharge et met à jour automatiquement le firmware. Facile et top.
WiModem - update en cours
Firmware MAJ sur ATARI ST en Monochrome. Le modem est plus puissant que la machine :)
Ensuite un petit ATD nomdubbs:port, vous connectera sur votre BBS favoris ou sur un autre pc de votre LAN, les possibilités sont nombreuses.
Sur Amiga 1200 et Term 4.8
Il est également possible d'héberger un BBS, le modem sachant répondre aux appels entrants (gestion du ATA,..).
Sans trop rentrer dans les détails, c'est un très bon produit, que j'ai pour l'instant testé sur C64, Atari ST et Amiga 1200. Je n'ai pas identifié de réel défaut, et il fonctionne bien.
Bref je recommande très fortement !!
A commander chez CBMSTUFF.COM. Par contre, attention aux frais de ports et de douane, ca pique un peu.
Vous souhaitez avoir une super qualité d'image sur votre magnifique Apple IIgs ? Le mieux un bon vieux cable péritel (scart) en RGB. Voici le brochage:
Cela faisait bien longtemps .... c'est un vrai plaisir de revoir cette période de transition entre les 8 bits et les 16/32 bits qui s'annoncent .. Au programmes pas mal d'actualités et de bons jeux ...
L'excellent logiciel de transfert de disquettes entre un ordinateur moderne (PC, Mac,..) et un Apple II vient de sortir en version 1.2.9.
Voila l'historique des versions 2013 :
1.2.9 - December 25, 2013
New functionality:
[Client] Disk II drives turn on a little early to reduce spin-up delay
Bug fixes:
Nibble sends work correctly in batch mode
[Client] Nibble sends retry (more) correctly
[VDrive] Virtual disks are loaded once at initialization time, making it much faster for huge drives (but much less dynamic)
[VDrive] Serial driver installer quits to where it came from, allowing an invocation from the launcher to return there, this time with the driver in place.
1.2.8 - July 9, 2013
New functionality:
[VDrive] Added the ability to serve a second virtual drive
Restricted most opportunities to change baud rates from defaults
Bug fixes:
[Server] Severe slowdown on bootstrapping under Windows was cured by removing what should have been a harmless yielding of the CPU.
1.2.7 - April 18, 2013
New functionality:
[VDrive] Added the ability to bootstrap into ProDOS with VSDrive active
[Server] Added a command-line invoker for AppleCommander
Bug fixes:
[Server] 5-1/4" disk images with unrecognized filesystems are always written with DOS-ordered physical interleaving
[Server] Start the numerical part of batch name at 1, not 0; reset the counter when a batch name changes
Elle n'est pas toute fraîche la nouvelle version d'AppleWin mais elle est toujours excellente. Inutile de discutailler, c'est pour moi le meilleur émulateur Apple II, en constante amélioration.
Quoi de neuf ? Je cite :
1.23.0 - 26 Apr 2013 Significant changes since 1.20.0: [Feature #003272 and #005335] Support 2x windowed mode:
Toggle between 1x and 2x by using Resize button (or F6).
Full screen now enabled by CTRL+Resize button (or CTRL+F6).
[Feature #4399] Allow Z80 SoftCard to be inserted into slot 4 or 5. (Allows CP/M v3 to work)
Reworked Configuration (property sheets) to allow multiple hardware changes.
Added Troubleshooting section to help file.
Fixes:
HDD firmware: Added support for SmartPort entrypoint.
"Prince of Persia (Original 3.5 floppy for IIc+).2mg" now boots
Fixed HDD firmware to allow epyx_californiagames_iicplus.2mg to boot.
Debugger: [Bug #018455] Improved rendering speed of debugger view.
Ça se passe toujours sur le site "BerliOS" ! On clique, on clique ...
Combattez Draxx le sorcier, et ses acolytes, pour secourir la princesse Mariana (aux formes, il faut bien le dire très avantageuses;) ). Un très bon jeu de combat, ici dans sa version US, licenciée de Palace Software. Un des premiers jeux de combat digne de ce nom. Tous les coups, d'épée, mais pas seulement, sont permis. Et surtout, ne vous privez pas du plaisir de couper la tête de votre adversaire, afin de faire gicler le sang comme il se doit.
Une très belle version pour Apple II, en graphismes DHGR magnifiques, et une non moins superbe animation.
Excellent !!!
Attention votre Apple II doit avoir 128ko et la double haute résolution (ex //c) pour que le jeu fonctionne.
Plutot rigolo comme concept .. David Finnigan vient d'écrire un nouveau livre utilisateur de l'APPLE II. Le livre semble couvrir tout les aspects du II, allant du basic au prodos en passant par le IIgs, le reseau et ADT (dont je ne saurais que trop vous recommander la lecture de l'excellent article du 12 Aout 2011 sur ce même Blog ;) ).
Bref tout ce qu'il convient de savoir pour utiliser un Apple II de nos jours, en 800 pages (!). Table des matières et quelques exemples de chapitre sont en ligne afin de vous donner un avant gout. Le tout est vendu $20, ramené au kilo c'est un bon rapport qualité prix.
Ce n'est pas franchement une mega news mais Richard DREHER vient de terminer la fabrication de la première fournée de sa nouvelle carte compact flash /usb (CFFA 3000) pour Apple II. Pour plus d'infos sur la version 2, cf article précédent sur le blog.
Principales caractéristiques de la bête :
A CompactFlash / USB flash drive interface for Apple II family of computers
Support 1 to 13 partitions under ProDOS and GS/OS, and 2 virtual floppy drives
Virtual Floppy image support allows the use of almost any non-copy-protected floppy disk image, including .dsk, .2mg, and .nib files. Note: .nib files of protected floppies will not work with the CFFA3000
Allows storage of thousands of floppy and smartport disk images
User configurable partition count
Boot from either device and any partition
Allow booting from Dos3.3, Pascal, CPM, Contiki, ProDOS or GS/OS directly from the Interface card (for a floppy-less system)
Configurable as a CFFA smart port controller (i.e. a mass storage device) or as a floppy controller, or both. When configured as both, requires 2 slots in your Apple II, one for the physical card, and one for the virtual floppy controller.
Hardware supports DMA, although v1.0 software does not currently support DMA. Future support is planned, but not guaranteed.
La principale avancée étant le lancement des images disks directement depuis la carte. A noter une limitation, il n'est possible que de stocker 255 fichiers à la racine de la carte. Cela laisse une bonne marge quand même.
Si la CFFA 3000 est aussi bien finie que la v 2.0, ruez vous dessus !!!!!
Allez, je profite des congés pour ressortir mon bon vieil Apple //c et faire un petit tutorial pour les transferts d'images de disquettes. La méthode utilisée sera via port serie, en utilisant le logiciel ADT dans sa version PC Windows. Vous ne devriez pas trouver beaucoup de difference avec les versions Dos ou Mac ou la version ADT PRO qui est plus recente. Le principe et les réglages à faire restant sensiblement identiques.
Le but du bazard, pour ceux qui n'ont pas encore compris (passez votre chemin du coup) est bien de recreer des disquettes avec des logiciels Apple II de l'époque à partir de fichiers images, que l'on trouve en grande quantité sur le Net, sur notre PC, ou inversement d'ailleurs. Les fameux fichiers etant souvent au format .dsk et utilisables avec votre émulateur Apple II préféré. Nous en profiterons pour comprendre un peu mieux comment fonctionne le port serie du //c, et des Apple II en général.
Si vous n'avez toujours pas compris de quoi je parle alors ne vous pourrissez pas l'esprit avec tout cela et passez votre chemin.....
Heuuuuu, il reste du monde ? Ok alors on continue ...
La base de chez base ...
Le principe est de connecter les 2 machines, via leur ports série respectifs, puis, en utilisant un logiciel serveur coté machine récente (PC ou Mac), et un logiciel client coté Apple II, de restaurer les images de disquette.
Pour commencer, il nous faut, en vrac :
Un PC sous Windows (ou Mac) avec un port serie (DB9 / 25 ou USB fonctionnel !!)
Un cable serie croisé (null modem)
Un Apple II (+,e,c, gs, ..) avec 64Ko de Ram et un port serie (interne ou carte)
Le logiciel ADTWin 2004
Des connaissances Apple II
Des connaissances en communication par port serie
Un poil de patience
Un bon vieil Apple //c
2. les trucs rapides
Depuis votre PC sous Winwdows, téléchargez ADTwin 2004 via un coup de google et on en parle plus. Toujours histoire d'en terminer avec les trucs rapides, verifiez que votre port com (qu'il soit DB9, DB25 ou USB) fonctionne en lui collant un bon vieux modem au cul par exemple.
A cette étape nous devons donc avoir un PC sous Windows disposant, d'un port serie fonctionnel (com1 au format DB9 pour ma part) et du logiciel ADTwin 2004.
If "pas certain" goto "La base de chez base ...".
Les trucs un poil plus compliqués
Coté Apple II, j'ai utilisé, pour le tutorial, un //c qui à l'avantage de disposer d'une carte serie intégrée. Seul inconvenient le port serie est au format Din 5 broches. Il faudra donc jouer un peu du fer à souder pour avoir notre cable null modem (croisé) DB9 <=> Din 5.
Il est cependant tout à fait possible d'utiliser un Apple II (+,e, ,,) classique mais il faudra lui adjoindre les services d'une carte serie (et de sa doc au passage), à mettre plutot dans le slot 2. En effet sur ces modeles la carte serie n'est pas intégrée. Le cable à utiliser sera un classique DB9 (ou DB 25 coté PC) <=> DB 25 (Apple II).
Pour terminer il est également possible d'utiliser un IIgs, qui dispose lui aussi d'une carte serie intégrée et facilement configurable via le panel du bios. Par contre prévoir un cable DB9 <=> mini-din 8 broches car coté Apple IIgs c'est ce format qui est utilisé. Je me suis déja servi d'un cordon PC <=> MAC (68x00 des 90's ;) ) qui fonctionne trés bien pour cet usage.
Vous avez le choix des armes.
Le câblage
Bon, la, on rentre dans le vif du sujet. Tout le principe de fonctionnement tournant autour des ports série et du cable. Attaquons par le hardware.
Coté cable il faut surtout savoir que 3 pins nous interressent particulierement RX (reception des données) , TX (transmissions des données) et la masse. Le principe du cable croisé (ou null modem) est de croiser RX avec TX entre les 2 machines, la masse ne changeant pas. Cela revient à dire je branche l'emission (du PC) sur la reception de l'Apple II, et vice versa. La masse servant pour le courant. Et oui !! Croiser les flux ce n'est pas toujours mal ;).
Comme je vous fais cela aux petits oignons , voici le brochage du port serie coté PC (DB 25 et DB9) et Apple II DB25 :
Apple II et PC - connecteur DB 25
PC - connecteur DB 9
TXD
2
3
Transmitted Data
RXD
3
2
Received Data
RQS ou RTS
4
7
Request To Send
CTS
5
8
Clear To Send
DSR
6
6
Data Set Ready
SG
7
5
Masse du signal
DTR
20
4
Data Terminal Ready
CD
8
1
Carrier Detect
RI
22
9
Ring Indicator
Nous utilisons les pins 2/3 et 5 ou 7, selon le type de connecteur coté PC et 2/3/7 coté Apple II avec carte série.
Coté Apple //c et Din 5 Broches, le site support (!) de la pomme (et oui les docs sont la !!) nous donne ces informations :
-----
Apple //c External Pinouts
Article : TA30794
Old article : 1419
Last Modified : 10/04/2008
Printer/Modem port
----------------
The serial ports on the Apple IIc are standard 5 pin DIN, however, they are not labeled as standard DIN. Therefore, when looking at the back of the Apple IIc, the pinouts are as follows:
5 Pin DIN Position Signal Name
1............ 4 O'Clock ... Data Terminal Ready
2............ 5 O'Clock ... Transmit Data
3............ 6 O'Clock ... Signal Ground
4............ 7 O'Clock ... Receive Data
5............ 8 O'Clock ... Data Set Ready
PINOUT EXPLANTION
Pin 1 (DTR) becomes active when the IIc is ready to go on line.
Pin 2 (TD) conveys serial data sent from the IIc.
Pin 3 (SG) is used to provide a common ground reference for the electronics in both the IIc and the device it is connected to.
Pin 4 (RD) receives serial data sent from the device to the IIc it is connected to.
Pin 5 (DSR) is asserted by the device the IIc is connected to when it is ready to go on line.
NOTE: The serial ports on an Apple IIc are essentially identical, the pin connections being the same on both. The main difference being that the printer port is pre-configured for 9600 baud and the communication port is preconfigured for 300 baud. The printer port appears to the software as slot 1, the communication port as slot 2. The settings of these ports can be changed with the Apple IIc System Utilities disk. Please see the System Utilities manual for precise details.
CHARACTERISTICS AT STARTUP
The Apple IIc's ports are configured with keyboard commands instead of DIP switches. After power-up, the IIc sets the printer port to the default configuration given below:
- 9600 baud
- 8 data bits and no parity
- 2 stop bits
- 80 chars per line
- LF after CR
- Command character is CTRL-I
- Hardware (DTR flow control protocol) handshake.
-----
Nous utiliserons les pins 2-3-4 coté Apple //c.
Trés concretement entre un DB9 coté PC et la Din 5 coté //c, le schéma de cablage sera le suivant :
DB9 DIN5
2 (RX) <====> 2 (TX ou TD)
3 (TX) <====> 4 (RX ou RD)
5 (GND) <====> 3 (GND ou SG)
Voila je peux pas mieux faire maintenant à vous de jouer du fer à souder, à moins, que , coup de bol vous ayez tout sous la main .....
Attention pour les config Apple II et carte serie : Le brochage DB25 est idem à celui du PC (norme) et il y a trés certainement une position Modem ou Teminal sur votre carte. C'est le Jumper Block, un gros bloc avec une fleche qui pointe sur Terminal ou Modem à droite de la carte (vue de face).Ce dernier élément à un impact sur la cable. Oui, mon bon monsieur, faudra lire la doc de votre carte. Si vous etes en position Terminal il faut un cable "droit", cad RX sur RX et RX sur TX, si vous etes en mode Modem il faut un cable croisé ou null-modem comme décrit ici. Donc verifiez bien ce dernier point et mettez vous de preference en mode Modem (fleche vers le haut). Attention lorsque vous inversez le bloc, les petites papattes sont assez fragiles.
Allez voici quand meme une doc de la carte Super Serial (SSC) :
-----
Name: Apple SSC
Type: Super Serial Card
Short description:
The SSC gives the Apple ][ a serial port (RS232). Up to
19200 baud are possible. Full handshake is supported.
Installation:
The card plugs into Slot 1, 2 or 3 of the Apple. Slot 1 is
usually for a serial printer (Imagewriter), Slot 2 for a
modem and Slot 3 for a terminal.
The DB25 connector goes to the printer/modem/terminal line,
the 10-pin connector on the other side of the cable goes
into the cable socket at the rear side of the card.
Jumper settings:
The card has two jumpers and a additional jumper block.
The jumper block can be installed two ways:
1) Arrow pointing towards the word TERMINAL
2) Arrow pointing towards the word MODEM
Jumpered as MODEM, it will wire thru, jumpered as TERMINAL,
it will twist 2-3, 4-5 and 6-20 (called null modem).
The jumper switches are called SW1 and SW2, the switches
are numbered SW1-1 to SW1-7 and SW2-1 to SW2-7 from left
to right.
SW1-1 SW1-2 SW1-3 SW1-4
off off off off 19200 baud
off off off on 9600 baud
off off on off 7200 baud
off off on on 4800 baud
off on off off 3600 baud
off on off on 2400 baud
off on on off 1800 baud
off on on on 1200 baud
on off off off 600 baud
on off off on 300 baud
on off on off 150 baud
on off on on 135 baud
on on off off 110 baud
on on off on 75 baud
on on on off 50 baud
SW2-1 off 2 stopbits
SW2-1 on 1 stopbit
SW2-2 off no delay on carriage return
SW2-2 on 1/4 sec delay
SW2-3 SW2-4
off off 132 chars/line, apple screen off
off on 80 chars/line, apple screen off
on off 72 chars/line, apple screen off
on on 40 chars/line, apple screen on
SW2-5 off no line feed after carrigae return
SW2-5 on line feed
SW2-6 off ignore interrupts
SW2-6 on generate interrupts
SW1-7 on and SW2-7 off pin 4 or 20 (clear to send)
SW1-7 off and SW2-7 on in 19 (secondary clear to send)
Coté Mini din (pour les IIgs ou Iic+) cela nous donnerait :
-----
8 Pin Mini-DIN Connector
1 NC Not Connected (de face en bas à gauche)
2 NC Not Connected (de face en bas à droite)
3/ TXD Transmit Data (Inverted}
4 GND Ground
5/ RXD Receive Data (inverted)
6 TXD Transmit Data
7 NC Not Connected
8 RXD Receive Data
-----
Donc :
AppleMiniDIN8 DB-9 ou DB-25 ------------ ------- --------5 <=====> 3 ou 2 TxD3 <=====> 2 ou 3 RxD
4 <=====> 5 ou 7 GND
Nous en avons terminé avec les différents câblages possibles.
La config software
Maintenant que nous avons tout ce qu'il faut coté hardware passons sur les machines ... Bien entendu vous avez connecté votre cable serie sur le port com du PC (le 1 pour moi) et le port serie de l'Apple II (pour moi le port 2, celui avec le modem).
Coté PC nous allons lancer le vieil HyperTerminal, il a l'avantage d'être fourni avec Windows et il est relativement complet. Pour commencer nous allons lui donner comme config de base :
Se connecter en utilisant COM1, dans les parametres du COM1, indiquer : 300 bits par seconde / 8 Bits de données / Aucune Parité / 1 Bit d'arret / Aucun controle de flux et on valide. Dans l'onglet parametres, modifier la configuration ASCII et cocher "envoyer les fins de lignes avec saut de ligne", cochez egalement "Reproduire localement les carateres entrés". Si besoin par la suite augmentez les delais de ligne et caractere.
En language clair : 300 8-N-1, "echo local" et "CR=CR+LF".
Pourquoi ces parametres ? Si vous lisez la doc plus haut vous constaterez que ce sont les reglages par defaut (à l'allumage) du port modem (2) du //c. L'echo local et la modification du CR servant à avoir un affichage optimal sur le PC.
Bien entendu si vous utilisez une carte serie type Apple Super Serial il faudra configurer les dips switches (et le pc) en conséquence.
Pour le IIgs allez dans le control panel en appuyant sur les touches CTRL + Option + Reset puis le menu ad-hoc.
Une bonne config de base étant 9600 8-N-1 ou 19200 8-N-1.
Passons maintenant coté Apple IIc, apres le boot tapez un petit
] IN #2
en clavier QWERTY
ou
§ IN £2
en clavier AZERTY
Pour la suite du tutorial, nous nous mettrons en clavier QWERTY donc si vous utilisez le clavier AZERTY pensez à faire la correspondance (ou à vous mettre en QWERTY ;).
Pour le clavier US ou FR, regardez du coté de la touche Keyboard ..
A partir de ce moment, si vous tapez qq chose dans la console Hyperterminal, la meme chose doit s'afficher sur l'écran du //c.
Un tutorial complètement dingue !
Félicitation votre PC vient de se transformer en un terminal d'Apple //c !!!!!!! Enfin, presque, car si vous lancez un catalogue du disk, la commande sera prise en compte sur le //c mais l'affichage se fera sur son écran et non pas dans l'Hyperterminal du PC.
Avant de continuer expliquons que la commande IN# permet de recevoir des informations depuis le slot indiqué. Nous avons tapé IN #2 ce qui se traduit par accepte les informations en provenance du port N° 2. Le port N° 2 etant un port serie avec les bon reglages (vitesse / parité etc ...) l'Apple affiche ce qu'il reçoit comme si cela provenait de son clavier. La grande classe !!!
Petite digression : En cherchant bien avec un PR#2 (opération inverse du IN#2) pour rediriger la sortie écran vers le port serie, la bonne émulation de terminal coté PC, on doit arriver à faire qq chose de marrant......
Je vous aide ..
Dans l'onglet parametres de la connexion de l'hyperterminal, choisir type de terminal VT100, puis dans la config ASCII, cocher "Envoyer les fins de lignes avec saut de lignes", "ajout de saut de lignes à la fin des lignes entrantes", "forcer les données entrantes en 7 bits" et "retour automatique à la ligne".
Ne PAS cocher "Reproduire localement les caracteres entrés". En effet, comme nous avons redirigé la sortie ecran texte vers le port serie (PR#2), cela nous afficherait 2 fois les caracteres que nous tapons (1 fois l'émulateur de terminal si cette option est cochée et une fois l'Apple II).
Donc :
Boot Apple //c puis
] IN#2 ; authorise entrée signaux depuis le port serie 2
] PR#2 ; redirige sortie ecran texte vers port serie 2
Transforme votre Apple II en serveur serie. Attention seul le texte est redirigé vers le PC. Mais c'est quand meme magique !!
Apple //c en mode serveur série !
Fin de la digression (et pas de la digestion !!! ).... on se réveille !
Bon OK, revenons à nos moutons, 300 bauds, c'est bien mais c'est pas la lune non plus, surtout que si on regarde les specs de nos ports series on voit bien qu'on en a sous le pied (19200 bds). Et bien la magie continue .... en tapant CTRL + A (attention aux claviers FR/US) vous remarquerez que le cursueur se transforme en "?" (ou prompt "Apple SCC:" si vous utilisez une carte Apple Super Serial). A partir de ce moment notre petit Apple //c attend des commandes pour les réglages incroyable non ?
Les voici (toujours sur le site support d'Apple) :
-----
Apple IIc: Serial port interfacing
Last Modified: October 04, 2008
Article: TA38851
Old Article: 310
Setting up the printer port from within a program on the IIc is essentially the same as changing the settings on previous interface cards: after first directing output to the serial port (using PR#1 and PR#2 for Ports 1 and 2, respectively), the commands can then be sent to the serial port. Each command for Port 1 must be preceded by CTRL-I. The commands for Port 1 are:
Cmd -- Description
nnn -- Set line width( from 001 through 255): This command must be followed by an 'N' or a .
nnB -- Set baud rate to value corresponding to nn.
nn -- Rate
01 -- 50
02 -- 75
03 -- 110
04 -- 135
05 -- 150
06 -- 300
07 -- 600
08 -- 1200
09 -- 1800
10 -- 2400
11 -- 3600
12 -- 4800
13 -- 7200
14 -- 9600
15 -- 19200
nB -- Set Data Format to values corresponding to n.
n -- Format
0 -- 8 data 1 stop
1 -- 7 data 1 stop
2 -- 6 data 1 stop
3 -- 5 data 1 stop
4 -- 8 data 2 stop
5 -- 7 data 2 stop
6 -- 6 data 2 stop
7 -- 5 data 2 stop
I -- Echo output to screen.
K -- Disable after .
L -- Generate after .
nP -- Set Parity corresponding to n.
n -- Parity
0 -- none
1 -- odd
2 -- none
3 -- even
4 -- none
5 -- mark (1)
6 -- none
7 -- space (0)
R -- Reset Port 1 and exit from serial port 1 firmware.
S -- Send a 233 millisecond Break character
Z -- Zap (ignore) further command characters (until CTRL-Reset or PR#1). Do not format output or insert carriage returns into output stream.
Differences between ports:
Listed below are the differences between commands for Port 1 and Port 2 of the Apple IIc.
Port 2 uses the same commands, with the differences and additions listed below. Each command for Port 2 must be preceded by a CTRL-A.
nnn -- same
nnB -- same
nD -- same
I -- same
K -- same
L -- same
nP -- same
Q -- Quit Terminal Mode
R -- same
S -- same
T -- Enter Terminal Mode. Use this command after IN#2 only. If you follow this command by PR#2, the IIc will echo input to output. (NOTE: If the other device is also echoing input to output, entering the first character will cause an infinite loop. Use CTRL-RESET to get out.
Z -- same
CTRL-T -- When issued from a remote device, this command puts the IIc in terminal mode if IN#2 is already in effect. The command is the same as CTRL-T typed locally.
CTRL-R -- When issued from a remote device, this command undoes the terminal mode command. If IN#2 and PR#2 are in effect, the remote keyboard and display become the input and output devices of the local IIc. The command is the same as CTRL-A Q typed locally.
-----
Attention: selon que vous utilisiez le port 1 (port serie imprimante) ou 2 (port serie modem), lisez bien les docs "Apple //c External Pinouts" et "Apple IIc: Serial port interfacing" ci dessus, vous verrez que la config par defaut n'est pas la meme (9600 ou 300 bds, CTRL + I ou CTRL + A pour acceder au mode config, ...) et j'imagine l'utilisation d'un cable droit sur port imprimante et d'un croisé pour le port modem (cette derniere affirmation étant à confirmer ou pas).
Mais reprenons sur notre port modem n° 2 avec notre cable croisé :
] IN#2
Suivi de CTRL + A (le curseur devient un ? clignotant)
Taper un I, pour activer l'affichage local des caracteres (c'est toujours bien de voir ce que l'on tape), puis un 14B et dans la foulée (soit I14B) vous propulse à 9600 Bds , un 15B à 19200 Bds.......
De la meme maniere pour les autres parametres (parité, format,..) mais, hormis la vitesse, vous ne devriez pas avoir besoin de les changer. Le I ne sert qu'a afficher ce que vous tapez (cf doc plus haut) , vous pouvez entrer directement 14B ou 15B en aveugle.
On s'emballe, on s'emballe mais dans le feu de l'action, n'oubliez pas de changer la vitesse du port serie, de maniere identique, coté PC sinon cela ne fonctionnera pas.
Il est donc trés facile de transformer l'Apple //c en serveur serie (vu plus haut) et avec des vitesses comme 9600 ou 19200 bauds cela devient trés exploitable. Il est également possible d'imaginer d'autres applications comme transformer son Apple II en Terminal Unix (prévoir carte 80 colonnes si pas incluse) ou meme attaquer son Apple II en @IP, en passant par le PC et un petit programme qui redirige le port com du PC vers TCP/IP (type serial to ethernet), éditer des sources sur le PC et les envoyer sur l'Apple II, etc ... Les applications sont nombreuses.
Mais pour l'instant restons à 300 bds ....
Nos 2 machines arrivent à dialoguer comme il convient. Vous allez me dire que c'est trés bien tout ça mais, hormis en tapant le listing complet de "Choplifter", en dump hexadécimal, vous ne risquez pas encore d'y jouer. Et vous aurez complement raison tout en me donnant une excellente transistion.
La magie du port serie ... et pas que ...
Maintenant que vous avez aperçu les fonctionnalités etendues des cartes series sur Apple II, et plus particulierement celle du //c, nous allons pouvoir les mettre en oeuvre avec, une autre merveille de cette machine, le moniteur. Mais non couillon, pas l'écran... mais voyons par nous meme.
L'Apple II integre un moniteur / desassembleur en rom. Le genre d'outil que bien d'autre micros auraient aimé avoir dans leur petites puces. Il permet d'afficher, modifier, executer, charger / sauvegarder etc.. le contenu de la mémoire. Bref tout ce que l'on peux attendre d'un moniteur digne de ce nom. Si son fonctionnement n'est pas hyper convivial, il est trés puissant et à grandement contribué au succés de la machine auprés des bidouilleurs.
Pour acceder au moniteur :
]CALL-151
Le curseur devient une *
D'une maniere générale les instructions sont du type (adresse mémoire)(instruction). Pour faire un listage assembleur de la mémoire on tape adresse de départ suivi de L.
Ex : *C600L vous affichera en assembleur (L) le programme de boot de la rom P5 du controlleur de disquette qui commence en $C600.
un L (L=List) continuera à dumper la mémoire ..
*C600D (D=Dump) vous affichera le dump en hexadécimal ....
*C600G (G= Go) executera le programme debutant en $C600 soit... ici, un boot disquette ;) .
Pressez sur CTRL + B suivi de Entrée pour sortir sous le basic en remettant tout en ordre (mémoire et registres) alors que CTRL + C suivi de Entrée conserve les modifications effectuées.
Décidement je vous materne un peu trop ... Voila la liste de commandes :
-----
Summary of Apple II Monitor Commands
Examining Memory.
•{adrs}
Examines the value contained in one location.
•{adrs1}.{adrs2}
Displays the values contained in all locations between {adrs1} and {adrs2}.
•[RETURN]
Displays the values in up to eight locations following the last opened location.
Changing the Contents of Memory.
•{adrs}:{val} {val} ...
Stores the values in consecutive memory locations starting at {adrs}.
•:{val} {val}
Stores values in memory starting at the next changeable location.
Moving and Comparing.
•{dest}<{start}.{end}M
Copies the values in the range {start}.{end} into the range beginning at {dest}. (M=move)
•{dest}<{start}.{end}V
Compares the values in the range {start}.{end} to those in the range beginning at {dest}. (V=verify)
Saving and Loading via Cassette Tape.
•{start}.{end}W
Writes the values in the memory range {start}.{end} onto tape, preceded by a tensecond leader.
•{start}.{end}R
Reads values from tape, storing them in memory beginning at {start} and stopping at {end}. Prints "ERR" if an error occurs.
Running and Listing Programs.
•{adrs}G
Transfers control to the machine language program beginning at {adrs}. (G=go)
•{adrs}L
Disassembles and displays 20 instructions, starting at {adrs}. Subsequent L's will display 20 more instructions each. (L=list)
Miscellaneous.
•{adrs}S
Disassemble, display, and execute the instruction at {adrs}, and display the contents of the 6502's internal registers. Subsequent S's will display and execute successive instructions. (S=step)
•{adrs}T
Step infinitely. The TRACE command stops only when it executes a BRK instruction or when you press RESET. (T=trace)
•ContrlE
Displays the contents of the 6502's registers. (E=examine)
•ISet Inverse display mode.
•NSet Normal display mode. Also useful as a delimiter for putting multiple commands on one line.
•ControlB
Enter the language currently installed in the Apple's ROM (cold start at $E000).
•ControlC
Reenter the language currently installed in the Apple's ROM (warm start at $E003).
•{val1}+{val2}
Add the two values and print the result.
•{val2}{val1}
Subtract the second value from the first and print the result.
•{slot} ControlP
Divert output to the device whose interface card in in slot number {slot}. If {slot}=0, then route output to the Apple's screen.
•{slot} ControlK
Accept input from the device whose interface card is in slot number {slot}. If {slot}=0, then accept input from the Apple's keyboard.
•ControlY
Jump to the machine language subroutine at location $03F8. This lets you add your own commands to the Monitor.
The Mini-Assembler.
•F666G
Invoke the Mini-Assembler.
${command}
Execute a Monitor command from the Mini-Assembler.
•FF69G
Leave the Mini-Assembler.
-----
Les choses sérieuses commencent
Pourquoi ce bref passage par le moniteur de l'Apple II ? Vous allez comprendre. En effet nous avons maintenant besoin de charger un bout de code (un programme quoi) qui va nous permettre de mettre notre Apple II en mode client de notre machine récente (qui fera office de serveur).
Aprés s'etre bien assuré que le PC est connecté à l'Apple II en tapant une petite commande pour le faire réagir ... n'importe quoi juste histoire de provoquer au moins un "syntax error" nous allons charger via le PC notre programme client.
Comme l'auteur d'ADT est un gars bien, il a pensé à nous. Et comme il sait, également, que nous sommes de grosse feignasses, il nous a fourni les sources au format dump dans le package ADT.
Dans le répertoire ADT2004 vous trouverez 3 sous répertoires : ADTcc, ADTgs et ADTssc.
Le premier (ADTcc) correspond à la carte Serie Apple Communication Card et dérivés.
Le second (ADTgs) est pour le IIgs
Le troisieme (ADTssc) est pour la carte Super Serial (et compatibles comme le //c)
Dans chaque répertoire vous trouverez un fichier ADTXX.DMP correspond à la source de votre carte.
Allons dans le repertoire ADTssc et ouvrons le fichier ADT.DMP. Et, hoooooo, surprise (!), un joli ch'ti listing avec en 3eme ligne un appel au moniteur.
Petite explication de texte :
3D0G ; sert sur les anciennes machines à passer en mode basic
NEW ; efface la mémoire au cas ou ...
CALL-151 ; lance le moniteur
803:4C 0E 08 05 00 ;début du programme en hexadécimal à l'adresse 803
:01 05 01 00 00 00 D8 20
:84 FE 20 2F FB 20 89 FE
:20 93 FE A9 00 85 08 8D
....... ; j'ai pas tout mis hein ....
:60 01 00 01 EF D8 00 00 ;Fin du programme
:00 00 00 00 00 00 00
BSAVE ADT,A$803,L$A14,S6,D1 ; sauvegarde du disquette au format binaire
; (BSAVE) avec le nom ADT, adresse de départ
; mémoire A$803, Longueur L$A14 sur le slot 6 drive 1
Vous constaterez que pour les 3 1ere lignes, j'ai sauté une ligne entre chaque instructions (3D0G, NEW, CALL-151), c'est voulu, je me suis rendu compte que pour la suite cela fonctionnait mieux. Je vous conseille donc de faire de meme et de sauvegarder le fichier.
Si vous avez lancé votre Apple II sans systeme (Dos, Prodos etc ..) supprimez la derniere ligne (BSAVE ....). En effet elle sera sans interet, par contre notez bien l'adresse $803 qui est l'adresse de début du programme ADT en mémoire. Cela nous servira par la suite.
Ok et bien maintenant, le plus simplement du monde nous allons envoyer le fichier vers l'Apple //c en faisant, depuis l'HyperTerminal "Transfert / Autolargue" ...NON... Mais presque en fait !! "Transfert / envoyer un fichier texte". Selectionnez le fichier adtssc.dmp (attention au filtre .txt) et cliquez sur ouvrir.
Et la, tel Moise faisant s'ouvrir la mer rouge, le dump du programme se charge depuis le PC sur l'Apple. Comme nous sommes resté en 300 bauds cela va prendre qq minutes mais c'est toujours mieux que de se le palucher à la main non ?
Dump en cours du PC vers le //c
Si vous aviez booté depuis une disquette (et laissé le bsave a la fin du programme) il s'enregistre sur la disquette. Vous pourrez donc le relancer directement par la suite par un :
] BRUN ADT
tout simplement
si vous n'aviez pas booté depuis une disquette (et supprimé ou pas le BSAVE), il faudra transférer le fichier ADT122.DSK présent dans le répertoire. Sous peine d'avoir à refaire la manipulation de chargement à chaque fois.
A la fin du transfert et de retour sur le moniteur vous devez avoir quelque chose comme ceci :
:CF 00 D9 C5 D3 00 CE CF
:00 05 00 01 05 01 00 00
:00 01 60 01 00 00 00 0A
:12 00 20 00 00 01 00 FE
:60 01 00 01 EF D8 00 00
:00 00 00 00 00 00 00
BSAVE ADT,A$803,L$A14,S6,D1 *
Lançon ADT par un 803G. On a vu que le programme commence en $803 (cf bsave) donc nous allons dire au moniteur "execute le programme (G) à partir de l'adresse mémoire $803.
ADT est lancé sur l'Apple //c
et voila .. ADT se lance sur l'Apple II !!!
8. On termine en beauté
Lancez le "ADT.EXE" sur le PC en ayant pris le soin de sortir d'HyperTerminal avant.
Choisissez le bon port serie et cliquez sur connect.
Le reste n'est plus que routine ...
Configure : permet de modifier la configuration des drives et du port serie (vitesse etc..).
Dir : affiche le contenu du repertoire dans lequel se trouve adt.exe.
Receive : permet de dire quel fichier .dsk on veut restaurer sur disquette.
Send : est l'inverse de receive et permet de generer un fichier dsk sur le PC à partir d'une disquette Apple II.
Par défaut la vitesse est réglé sur le //c et le PC à 19200 Bds ... Inutile de toucher ...
Le mieux pour commencer est de se lancer une restauration d'ADT, histoire de ne pas refaire tout le temps ces manipulations. Copiez le fichier "adt122.dsk" du répertoire "ADTssc" dans le repertoire ou se trouve "adt.exe" et faire un (R)eceive puis "adt122.dsk" en ayant pris soin de mettre une disquette vierge dans le drive.
La restauration se lance façon Locksmith.
Vous n'avez plus qu'a enchainer les disquettes :) la larme à l'oeil !!!
Notez que cette procedure fonctionne avec les version Dos et PRO d'ADT. Si vous avez compris le fonctionnement vous pouvez sans probleme adapter la machine recente (Dos / Windows / Linux / Mac ...). Le tout étant plutôt de comprendre le fonctionnement du port série Apple.
En esperant que cela vous aura donné envie d'aller plus loin dans les méandres du port serie et du moniteur. Décidément, l'Apple II est bien la machine des bidouilleurs !
PS du 18/09/11 :
1) J'ai fais des essais avec ADT PRO 1.1.9, Meme config que ci dessus, pensez à cocher cable Apple //c avec Imagewriter dans la config du port serie. Le 115 200 Bds fonctionne (!!) => Images disques restaurées en 45 secs.
2) Utilisez de préférence des disquettes double densité (DD) plutôt que des Hautes Densités (HD), vous aurez moins de problemes. Simple (SS) ou Double Face (DS) ...
3) Pensez à trouer l'autre coté de la disquette, vous pourrez ainsi utiliser les 2 faces de la disquette. ;) ..