10 ' * AMSAISIE par Denis JARRIL *
20 MEMORY &2000:DIM O$(18):MODE 1:BORDER 0:INK 0,0:INK 1,13:CLS:PRINT:PRINT" I pour changer l'adresse courante":PRINT" S pour sauver les donnees":PRINT" Tapez les caracteres sans espace ni     return (tout se fait automatiquement).":PRINT
30 PRINT:INPUT" ADRESSE DE DEPART : ",A$:D$=A$:IF A$="" THEN 30
40 A=VAL("&"+A$)
50 I=0:A$=HEX$(A,4):PRINT:PRINT A$;":";:C=VAL("&"+LEFT$(A$,2))+VAL("&"+RIGHT$(A$,2))
60 T$="":WHILE T$="":CALL &BB8A:T$=INKEY$:CALL &BB8D:WEND:T$=UPPER$(T$)
70 IF T$="I" THEN CLS:RUN
80 IF T$<>"S" THEN 110 ELSE D=VAL("&"+D$):IF D>0 AND A<0 THEN A=A+65536
90 PRINT:PRINT:INPUT"  NOM : ",N$:IF N$<>"" THEN SAVE N$,B,D,A-D+1
100 GOTO 50
110 IF T$<>CHR$(127) THEN 130 ELSE IF I=0 THEN 60 ELSE I=I-1:PRINT CHR$(8);" ";CHR$(8);:IF I/2<>ROUND(I/2) THEN PRINT CHR$(8);" ";CHR$(8);
120 GOTO 60
130 IF T$<"0" OR T$>"F" THEN SOUND 7,150,20:GOTO 60
140 IF T$<"A" AND T$>"9" THEN SOUND 7,150,20:GOTO 60
150 PRINT T$;:IF I=15 THEN PRINT":"; ELSE IF I/2<>ROUND(I/2) THEN PRINT" ";
160 O$(I)=T$
170 I=I+1:IF I<18 THEN 60
180 FOR I=0 TO 15 STEP 2:X=VAL("&"+O$(I)+O$(I+1)):POKE A,X:A=A+1:C=C+X:NEXT:C=C AND &FF
190 IF C=VAL("&"+O$(I)+O$(I+1)) THEN 50
200 SOUND 7,50,10:SOUND 7,500,10:PRINT"ERREUR!";:GOTO 40