Comment dumper à partir de rien
Cet article a pour but d'expliquer comment se débrouiller pour relier un A500 et un PC, alors que seulement les éléments qui vont suivre sont disponibles.

Matériel nécessité

Côté amiga Côté PC
Au moins un A500. Celui que j'ai utilisé possède 1Mo de RAM
Les disquettes WorkBench 1.3 et Extras 1.3
Une (ou plusieurs, au choix) disquette vierge
QBASIC de Microsoft téléchargeable ici.

Entre les deux
Un câble null-modem série

Manipulations côté Amiga


Avec le BASIC présent sur la disquette des Extras, tapez le code BASIC qui suit.
C'est une version légèrement modifiée de WarTrans, code BASIC écrit par Warlock ( amiga.nvg.org/warlock/wartrans ).

OPEN "com1:19200,n,8,1" AS #1
PRINT #1,"Hi";
PRINT "Test 1 : Envoi de Hi"
begining:
IF INPUT$(3,#1) = "Hei" THEN
PRINT "Hei reçu"
PRINT #1,"Nl";
NameLength = VAL(INPUT$(3,#1))
PRINT "longueur du nom : ";NameLength;" octets"
PRINT #1,"Nn";
FileName$ = INPUT$(NameLength,#1)
PRINT "Nom du fichier : ";FileName$
OPEN FileName$ FOR OUTPUT AS #2
PRINT #1,"Ll";
Tall = VAL(INPUT$(Tall,#1))
PRINT "Tall = ";Tall
PRINT #1,"Fl";
FileLength = VAL(INPUT$(Tall, #1))
PRINT "Longueur de fichier : ";FileLength;" octets"
PRINT #1,"Fb";
FOR i= 1 TO FileLength
Byte = VAL=(INPUT$(3,#1))
PRINT #2,CHR$(Byte);
PRINT #1,"ok";
NEXT i
PRINT "File transfer completed"
CLOSE #2
ELSE
PRINT #1,"Hi";
PRINT "Test ELSE : Envoi de HI"
GOTO begining
END IF
END

Comme vous pouvez le voir, ce code est très légèrement modifié :).
Enregistrez ce code sur la disquette vierge que vous aurez renommée à votre goût.


Côté PC avec votre QBASIC (sous DOS ou émulation DOS sous Windows), tapez le code source suivant:

CLS
OPEN "com1:19200,n,8,1" FOR RANDOM AS #1
INPUT "File to tranfer : "; fileinput$
INPUT "Destination File : "; fileoutput$
OPEN fileinput$ FOR APPEND AS #2
filesize = SEEK(2) - 1
PRINT filesize
CLOSE #2
PRINT #1, "Hei";

boucle1:
REM Send Number of chars in the dest FileName
variable$ = INPUT$(2, #1)
IF variable$ <> "Nl" THEN GOTO boucle1
PRINT "Longueur du nom de fichier : "; LEN(fileoutput$)
PRINT #1, LEN(fileoutput$);

boucle2:

REM Send the FileName
variable$ = INPUT$(2, #1)
IF variable$ <> "Nn" THEN GOTO boucle2
PRINT "Nom du fichier : "; fileoutput$
PRINT #1, fileoutput$;

boucle3:
REM Send the number of chars in the size of the file to send
variable$ = INPUT$(2, #1)
IF variable$ <> "Ll" THEN GOTO boucle3
PRINT "Nombre de car dans la taille du fichier : "; LEN(STR$(filesize))
PRINT #1, LEN(STR$(filesize));

boucle4:
REM Send the lenght of the file to send
variable$ = INPUT$(2, #1)
IF variable$ <> "Fl" THEN GOTO boucle4
PRINT "Taille fichier : "; STR$(filesize)
PRINT #1, STR$(filesize);


OPEN fileinput$ FOR BINARY AS #2
boucle5:
variable$ = INPUT$(2, #1)
IF variable$ <> "Fb" THEN GOTO boucle5
REM Sending bytes of file

FOR i = 1 TO filesize
CLS
PRINT i; " / "; filesize;
carac$ = INPUT$(1, #2)
REM PRINT " "; ASC(carac$)
REM GET #2, i, carac$

IF ASC(carac$) = 0 THEN
PRINT #1, "000";
ELSEIF ASC(carac$) < 10 THEN
PRINT #1, "00"; LTRIM$(STR$(ASC(carac$)));
ELSEIF ASC(carac$) < 100 THEN
PRINT #1, "0"; LTRIM$(STR$(ASC(carac$)));
ELSE
PRINT #1, LTRIM$(STR$(ASC(carac$)));
END IF

boucle6:
variable$ = INPUT$(2, #1)
IF variable$ <> "ok" THEN GOTO boucle6

NEXT i
CLOSE #1
END

J'ai choisi de refaire le programme en BASIC, car j'ai expérimenté des problèmes avec le programme de Warlock.
Mais peut-être que cela venait d'une fausse manip de ma part ?


Entre les 2
Si vous faites votre câble vous-même, suivez les instructions ici : www.technick.net/pincabnul_null_9_25.php ou ici : www.technick.net/pincabnul_null_25_25.php

Utilisation

Sur l'Amiga, contentez-vous de faire tourner le code.
Puis, sur le PC, lancez le programme et entrez, quand demandé, le nom de votre fichier à transférer, puis l'endroit où vous voulez le mettre sur l'amiga.

J'ai expérimenté des petits problèmes, avec les gros fichiers et ceux qui ont un nom plutôt long.

Voici donc la procédure que j'ai utilisée pour transférer :
J'ai un super programme Amiga sur mon PC appelé " SuperProgramme.lha " que je veux tranférer.
Je le copie dans le même répertoire que le script QBASIC.
Je le renomme en " a ". Tout simplement.
Je lance le programme BASIC sur Amiga.
Je lance le programme QBASIC sur PC..
Je lui donne le nom de mon fichier à transférer : " a ".
Je lui donne ensuite l'endroit où je veux qu'il soit sur l'Amiga, avec son nouveau nom : " RAM:a ".
Sur l'Amiga, je le renomme en " SuperProgramme.lha ", et le copie sur une disquette vierge.
De la même manière, je tranfère " lha ".
Je peux maintenant exploiter le Super Programme que j'ai transféré.

Pour la petite histoire, j'ai transféré de cette manière MultiDOS et lha. Pouvant maintenant lire les disquettes PC 720K, j'ai copié TransDisk sur l'Amiga.
Au final, j'ai copié, via disquette PC 720K, TransWarp et d'autres programmes qui m'ont permis de réaliser ma disquette ADFDump, disponible sur ce site, rubrique " download ", ADF/Domaine Public.

Bien sûr, La méthode de transfert décrite ici ne sert qu'une fois : le temps de passer un programme qui prendra le relais.
Aussi, si votre cas correspond à celui décrit dans cet article, vous pouvez utiliser cette méthode pour tranférer TransWarp (http://homepage.uibk.ac.at/homepage/c725/c72578/amiga ), avec lequel vous pourrez tranférer ensuite la disquette ADFDump sur un disque vierge, grâce auquel vous pourrez dumper et créer des disques Amiga à volonté.