Nº133 (5/2001)







  Download :
Confirmation : La prochaine visu du CEO aura lieu le samedi 9 juin de 14 heures à 18 heures dans la salle habituelle du 17, rue des Petits-Hôtels 75010 PARIS (à côté des gares de l?Est, du Nord et du bd Magenta). Ouvert à tous, le petit mâchon optionnel aura lieu comme d?habitude, avant la visu c?est à dire vers 12H30, au «Relais des Deux Gares», sur le bd Magenta, en face de la rue des Petits Hôtels.

Metro Cross : Avec cette nouvelle technique, lancez-vous dans l’animation.  
Monsieur Spock donne des explications sur le Synthétiseur Vocal.

Le Programme du Mois : Enigma de Roger Barbier, versions Jasmin et Sedoric, pour crypter vos texte et surtout pour vous amuser !  
Finalement et grâce à Fabrice, il arrive enfin et pour de bon : lOric Portable !


sommaire

Adresses CEO / Sommaire / Editorial   Page 2
Courrier Oricien   Page 3-4
Petites Annonces   Page 5-6
Sortie CD-audio : Le Stockage «Infini» pour Oric   Page 7
Utilitaires K7 : LCAT / K7 et SCAT   Page 7
La Libairie Oric (24)   Page 8-10
Aide pour Rush Hour (levels 21-26)   Page 11
Divertissements Mathématiques et Logiques   Page 12-13
Le Coin Jasmin : Enigma   Page 14-17
L?Oric Portable : 1 - Les Batteries   Page 18-21
Metro Cross : La Routine Movhaut   Page 22-23
Le Synthétiseur Vocal de Micro-Systèmes (4)   Page 24-27
Réponses (13)   Page 28-29
Abonnements / Anciens Numéros / Anciennes Disquettes   Page 30




ENIGMA était le nom de la machine à encrypter et décrypter les messages, utilisée par les Allemands pendant la seconde guerre mondiale. Son fonctionnement fut analysé par le mathématicien Alan Turing, ce qui permit de renverser la situation et de gagner la guerre sous-marine. Alan Turing est par ailleurs un des fondateurs de l?informatique.



Ce programme effectue un cryptage par substitution pseudo-aléatoire à l?aide de la fonction RND de l?Oric. Le texte traité est impossible à décrypter sans la clef et sans un Oric ou une machine générant les mêmes séries que la fonction RND.

Les textes sont stockés en :

#3000 - Texte en clair en entrée.

#4000 - Texte encrypté.

#5000 - Texte décrypté.



L?adresse de fin de fichier se trouve dans les deux premiers octets.

Ce programme est sous FTDOS. Modifiez les lignes 4160 et 5180 pour adaptation Sedoric.

Devinette : En guise d?essai, charger le fichier ESSAI.TXT (distribué avec le fichier ENIGMA.BAS sur la disquette trimestrielle de juin) et le décrypter, mais avec quelle clef ? Allons voyons, un mot de quatre lettres ! Sur ce clavier rouge et noir, c?est simple !



0 'ENIGMA 9911

1 ' R.Barbier

10 CLS:PAPER0:INK7

20 HIMEM#2FFF:AT=#3000:AC=#4000:AA=#5000:EF$=CHR$(8)

30 DIMTT(37)

40 FORI=0TO11:TT(I)=I+46:NEXT

50 FORI=12TO37:TT(I)=I+53:NEXT

60 TT(1)=47

70 GOSUB9000

99 '--------MENU

100 CLS:PRINT:PRINTCHR$(27);"J ENIGMA"

110 PRINTCHR$(27);"J ENIGMA":PRINT

120 PRINT" ENCRYPTAGE ET DECRYPTAGE

130 PRINT" DE MESSAGES":PRINT

140 PRINT:PRINT"T -TEXTE. Saisir en clair ou encrypt{

150 PRINT:PRINT"E -ENCRYPTER le texte en m{moire

160 PRINT:PRINT"D -DECRYPTER le texte en m{moire

170 PRINT:PRINT"C -CHARGER TEXTE (disque)

180 PRINT:PRINT"S -SAUVER TEXTE (disque)

190 PRINT:PRINT"L -LIRE TEXTE entr{/encrypt{/d{crypt{

200 PRINT:PRINT"I -IMPRIMER

205 PRINT:PRINT"N -NOTICE

210 PRINT:PRINT"Q -QUITTER

220 PRINT:PRINT"Votre choix ";

230 GETCH$

240 IFCH$="T"THENGOSUB1000:GOTO100

245 IFCH$="E"THENGOSUB1169:GOTO100

250 IFCH$="D"THENGOSUB2000:GOTO100

260 IFCH$="C"THENGOSUB4000:GOTO100

270 IFCH$="S"THENGOSUB5000:GOTO100

280 IFCH$="N"THENGOSUB6000:GOTO100

290 IFCH$="L"THENGOSUB3000:GOTO100

300 IFCH$="I"THENGOSUB3000:GOTO100

310 IFCH$="Q"THENCLS:END

320 GOTO230

330 GOTO1140

1000 CLS'-------ENTREE TEXTE

1010 PRINT"Voulez vous:":PRINT

1030 PRINT" (C) Entrer un texte a crypter

1040 PRINT" (D) Entrer un texte a d{crypter

1050 GETA$

1060 IFA$="D"THEN 2080

1070 IFA$<>"C"THEN1010

1100 CLS:PRINT SPC(10);"ENTREZ LE TEXTE

1110 PRINT"Sont admis: Lettres majuscules, Point

1120 PRINT"Espace et Chiffres"

1125 PRINT"Les caract}res ill{gaux seront supprim{s"

1126 PRINT"Terminer par RETURN":PRINT:PRINT:PRINT

1130 A=AT+2:ER=0

1140 GOSUB5330:IFA$="*"THEN1160

1150 GOTO1140

1160 DOKEAT,A:DOKEAC,AC:DOKEAA,AA

1162 POKEAC+2,42:POKEAA+2,42

1164 CLS:PRINT"Encrypter maintenant (E) ou Menu (M) ?"

1165 GETA$:IFA$="M"THEN RETURN

1166 IFA$<>"E"THEN1164

1168 '----------ENCRYPTER

1169 CLS:GOSUB5230:CLS:PRINT"PATIENTEZ. Je ne suis qu'un Oric !

1170 ES=0:AE=AC+2:LG=0:PRINT

1180 FORI=AT+2TODEEK(AT)

1190 C=PEEK(I)

1200 IFC=42THENPING:POKEAE,42:GOTO1290

1210 IFC=32 THENCT=1:GOTO1260

1220 IFC<46ORC>90THENER=ER+1:I=I+1:GOTO1190

1230 IFC<58THENCT=C-46:GOTO1260

1240 IFC<65THENER=ER+1:I=I+1:GOTO1190

1250 CT=C-53

1260 CT=CT+INT(RND(1)*38):IFCT>37THENCT=CT-38

1265 PRINTCHR$(TT(CT));

1270 POKEAE,TT(CT):AE=AE+1

1280 ES=ES+1:IFES=5THENES=0:LG=LG+1:POKEAE,32:PRINT" ";:AE=AE+1:CALL#FB2A

1281 IFLG=6 THENLG=0:PRINT

1290 NEXT

1300 PRINT:PRINT"Texte encrypt{.(De ";HEX$(AC);" @ ";HEX$(AE)")"

1310 IFER<>0THENPRINT"Caract{res ill{gaux supprim{s:"ER

1320 DOKEAC,AE

1321 PRINT:PRINT"Relire (R) ou Menu (M) ?"

1322 GETC$:IF C$="R" THENA$="E":GOTO3090

1323 RETURN

2000 '--------DECRYPTER

2010 CLS:GOTO2140

2080 CLS:PRINT"Entrez le texte @ d{crypter.

2090 PRINT:PRINT"Les espaces peuvent etre omis.":PRINT

2100 A=AC+2

2110 GOSUB5330

2120 IFA$<>"*"THEN2110

2130 PRINT:PRINT"Fin du texte":PRINT:PRINT

2132 DOKEAT,AT:DOKEAA,AA:DOKEAC,A

2133 POKEAT+2,42:POKEAA+2,42

2134 PRINT"D{crypter maintenant (D) ou Menu (M) ?"

2135 GETA$:IFA$="M"THEN RETURN

2136 IFA$<>"D"THEN2134

2140 PRINT:PRINT:GOSUB5230

2150 PRINT:PRINT

2160 AI=AA+2:FF=DEEK(AC)

2170 FORI=AC+2TOFF

2180 C=PEEK(I)

190 IFC=42THENPING:POKEAI,42:I=FF:GOTO2270

2200 IFC=32THENCALL#FB2A:GOTO2270

2210 IFC<58THENCT=C-46

2220 IFC>64THENCT=C-53

2230 CT=CT-INT(RND(1)*38):IFCT<0THENCT=CT+38

2240 CD=(TT(CT)):IFCD=47THENCD=32

2250 POKEAI,CD:PRINTCHR$(CD);

2260 AI=AI+1

2270 NEXT

2280 PRINT:PRINT:PRINT"Texte d{crypt{ (De ";HEX$(AA);" @ "HEX$(AI)")":DOKEAA,AI

2290 A$="D"

2293 PRINT:PRINT"Relire (R) ou Menu (M) ?"

2294 GETC$:IF C$="R" THENJ=AA:GOTO3090

2295 RETURN

3000 '-------VISUALISER-IMPRIMER

3010 CLS:IFCH$="L"THEN P$=" lire "

3020 IFCH$="I"THEN P$=" imprimer "

3030 PRINT:PRINT"Voulez vous";P$;"le texte:"

3040 PRINT:PRINT" C-Clair

3050 PRINT:PRINT" E-Encrypt{

3060 PRINT:PRINT" D-D{crypt{

3070 PRINT

3080 GETA$

3090 CLS:TX$="-Arret/Reprise:Espace -Menu:autre":GOSUB5300

3100 IFA$="C"THENJ=AT:GOTO3130

3110 IFA$="E"THENJ=AC:GOTO3130

3120 IFA$<>"D"THENPING:GOTO3080ELSEJ=AA

3130 AF=DEEK(J):K=0:PRINT

3140 IFCH$="I"THENCALL#C816

3150 FORI=J+2TOAF

3160 PRINTCHR$(PEEK(I));:K=K+1

3165 IFA$="E" AND K=36 THEN PRINT:K=0

3170 IFKEY$<>""THEN3210

3180 NEXT:PRINT:PRINT:CALL#C82F

3190 TX$=" ":GOSUB5300:GOSUB5290

3200 RETURN

3210 GETA$:IFA$=" "THEN3180

3220 I=AF:GOTO3180

4000 '-------DISQUETTE

4010 CLS

4020 PRINT:PRINT"Charger un texte:

4030 PRINT" 1- En clair

4040 PRINT" 2- Encrypt{

4050 PRINT:PRINT:PRINT"Votre choix";

4060 GETCH$

4070 IFCH$="2"THENDC=AC:GOTO4100

4080 IFCH$<>"1"THENPING:GOTO4060

4090 DC=AT

4100 PRINT:PRINT"Nom du fichier @ charger"

4110 PRINT" sans l'extension"

4120 INPUT"(abandon par '/' )";NM$

4130 IFLEN(NM$)>8THENNM$=LEFT$(NM$,8)

4140 IFNM$="/"THENRETURN

4150 NM$=NM$+".TXT,"+HEX$(DC)

4160 'Si SEDORIC modif 4150 par 4170

4170 'NM$=NM$+".TXT,A"+HEX$(DC)

4180 !LOAD NM$

4190 PRINT:PRINT:PRINT"Fichier ";NM$;" Charg{

4192 IF CH$="2" THEN A$="E"

4194 IF CH$="1" THEN A$="C"

4200 PRINT:PRINT"Lire maintenant (L) ou Menu (M) ?"

4202 GETC$:IF C$="L" THEN3090

4204 RETURN

5000 '-------

5010 CLS

5020 PRINT:PRINT"Sauver un texte:

5030 PRINT" 1- En clair (original)

5040 PRINT" 2- Encrypt{

5050 PRINT" 3- En clair d{crypt{

5060 PRINT:PRINT:PRINT"Votre choix";

5070 GETCH$

5080 IFCH$="3"THENDC=#5000:GOTO5120

5090 IF CH$="2"THENDC=#4000:GOTO5120

5100 IFCH$<>"1"THENPING:GOTO5070

5110 DC=#3000

5120 PRINT:PRINT"Nom du fichier @ sauver"

5130 PRINT" sans l'extension"

5140 INPUT"(abandon par '/' )";NM$

5150 IFLEN(NM$)>8THENNM$=LEFT$(NM$,8)

5160 IFNM$="/"THENRETURN

5170 NM$=NM$+".TXT,"+HEX$(DC)+","+HEX$(DEEK(DC))

5180 'Si SEDORIC modif 5170 par 5190

5190 'NM$=NM$+".TXT,A"+HEX$(DC)+",E"+HEX$(DEEK(DC))

5200 !SAVENM$

5210 PRINT:PRINT:PRINT"Fichier ";NM$;" Sauv{

5220 GOSUB5290:RETURN

5230 '---------CLEF

5240 PRINT"Entrez votre clef"

5250 INPUT"4 lettres ou chiffres";CS$

5260 POKE#FA,#80

5270 FORI=1TO4:POKE#FA+I,ASC(MID$(CS$,I,1)):NEXT

5280 RETURN

5290 PRINT"Presser une touche";:PING:GETA$:RETURN

5300 LL=LEN(TX$):LP=#BB80

5310 FORK=1TOLL:POKELP+K,ASC(MID$(TX$,K,1)):NEXT

5320 RETURN

5330 '--------ENTREE TOUCHE

5340 PRINT" ";:PRINTEF$;:GETA$:CA=ASC(A$)

5350 IFCA=13THENA$="*":POKEA,42:GOTO5380

5360 IFCA=127THENA=A-1:GOTO5380

5370 POKEA,CA:A=A+1

5380 PRINTA$;

5390 RETURN

6000 '--------EXPLICAT

6010 CLS:PRINT" EXPLICATIONS

6020 PRINT:PRINT

6030 PRINT" ENIGMA {tait le nom de la machine @

6040 PRINT"encrypter et d{crypter les messages"

6050 PRINT"utilis{e par les Allemands pendant la 2me Guerre Mondiale.

6060 PRINT" Son fonctionnement fut analys{ par lemath{maticien Alan ";

6070 PRINT"Turing,ce qui per- mit de renverser la situation et de gagner la ";

080 PRINT"guerre sous-marine.

6090 PRINT" Alan Turing est par ailleurs un des fondateurs de l'informatique.

6100 PRINT:PRINT" Ce programme effectue un cryptage parsubstitution pseudo-al{atoire";

6110 PRINT" a l'aidede la fonction RND de l'Oric.

6120 PRINT"Le texte trait{ est impossible @ d{crypter sans la clef et sans ";

6130 PRINT" un Oric ou une machine g{n{rant les m}mes s{ries que la fonction RND.

6140 PRINT:PRINT:GOSUB5290

6150 CLS:PRINT:PRINT" Les textes sont stock{s en:":PRINT

6160 PRINTTAB(5);HEX$(AT);TAB(12);"- Texte en clair en entr{e.

6170 PRINTTAB(5);HEX$(AC);TAB(12);"- Texte encrypt{.

6180 PRINTTAB(5);HEX$(AA);TAB(12);"- Texte d{crypt{.

6190 PRINT:PRINT" L'adresse de fin de fichier se trouvedans les 2 premiers octets.

6200 PRINT:PRINT" Ce programme est sous FTDOS. (Lignes 4160 et 5180 pour ";

6210 PRINT"adaptation SEDORIC)

6215 PRINT:PRINT" Il a {t{ {crit par R.Barbier pour le Club Europe Oric."

6220 PRINT:PRINT"DEVINETTE: En guise d'essai, charger

6225 PRINT"le fichier ESSAI et le d{crypter, mais

6230 PRINT"avec quelle clef ? Allons voyons, un

6235 PRINT"mot de quatre lettres! sur ce clavier

6240 PRINT"rouge et noir, c'est simple !

6250 PRINT:PRINT:GOSUB5290:RETURN

8000 '--------

9000 'Reconfig accentu{s r{duite

9010 RESTORE

9020 FORI=1TO3

9030 READA$:C=ASC(A$)

9040 FORN=0TO7:READB

9050 POKE46080+8*C+N,B

9060 NEXT:NEXT

9070 RETURN

9080 DATA@,8,4,28,2,30,34,30,0

9090 DATA{,4,8,28,34,62,32,30,0

9100 DATA},16,8,28,34,62,32,30,0



Adaptation de Enigma pour Sedoric

La version Jasmin propose aux lignes 4150 à 4190 et 5170 à 5210 une adaptation pour Sédoric, mais celle-ci peut être améliorée de la manière suivante :



Version Jasmin :

4150 NM$=NM$+«.TXT,»+HEX$(DC)

4180 !LOAD NM$

5170 NM$=NM$+«.TXT,»+HEX$(DC)+«,»+HEX$(DEEK(DC))

5200 !SAVE NM$



Version Sedoric :

4150 NM$=NM$+«.TXT»

4180 !LOAD NM$,ADC

5170 NM$=NM$+«.TXT»

5200 !SAVE NM$,ADC,EDEEK(DC)


BROWSE

NUMEROS
 [140] - [139] - [138] - [137] - [135] - [134] - [133] [132] - [131] - [130] - [129] 

YEAR
2013 - 2012 - 2011 - 2010 - 2009 - 2008 - 2007 - 2006 - 2005 - 2004 - 2003 - 2002 - 2001 - 2000 - 1999 - 1998 - 1997 - 1996 - 1995 - 1994 - 1993 - 1992 - 1991 - 1990



Hosted By oric.org server www.oric.org V 2.6 CNIL ID : 872370 Write to Webmaster © 2000-2024 Built in 0.02 Seconds