Logicielsmoto.com

Nous sommes le 19 Mar 2024, 07:55

Heures au format UTC + 1 heure




Poster un nouveau sujet Répondre au sujet  [ 4 messages ] 
Auteur Message
 Sujet du message: Programme buggé
MessagePosté: 14 Jan 2024, 21:10 
Hors ligne

Inscription: 21 Aoû 2006, 09:06
Messages: 1800
Localisation: Brest
Heeelp :cry:

J'ai un programme tout en basic de moins de 10ko qui est supposé marcher aussi bien sur les TO que les MO. Il est sous forme de fichier K7 et se lance avec un classique
Code:
RUN"
sur toutes les machines ou émulateurs.

Très bien me direz-vous, mais voilà que ce programme a un bug. :L

Quelqu'un pourrait-il m'aider à le débusquer dans le source ? :voyons: (10k de basic ca doit pas être bien dur.)


Fichiers joints:
bug.zip [5.69 Kio]
Téléchargé 31 fois

_________________
Good morning, that's a nice Tnetennba
Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Programme buggé
MessagePosté: 15 Jan 2024, 09:23 
Hors ligne
M. DCMOTO

Inscription: 06 Juin 2004, 08:23
Messages: 681
Localisation: Provence (France)
Le challenge n'est pas facile. Je connais un peu le BASIC Thomson mais je ne suis pas sûr d'avoir bien identifié le bug. J'hésite entre Ensifera et Caelifera.

[EDIT] Après réflexion (et quelques recherches sur internet) je penche pour Mantidae. C'est un bug encore plus méchant, il faut absolument l'éradiquer, mais je ne sais pas comment faire.

Pour aider les autres membres du forum voici le listing :
Code:
10 DEFINTA-Z:LOCATE0,0,0:COLOR0,0:SCREEN,,0:CLS:COLOR7
20 K!=786-FRE(0):IFK!>0THENPRINTK!;"bytes missing.":END
30 I=BANK>0:DIMA(301):FORJ=0TO92:READA$:K!=VAL("&H"+A$):IFK!>32767THENK=K!-65536ELSEK=K!
40 A(J+I*(2*J-301))=K:NEXT
50 DATAAFA8,B527,0B34,02DC,22ED,A8B5,33CB,3502,C67F,6FA5,5AC1,1F26,F933,C6E6,C24A,A7A5,26F9,30A9,0080,AFA8,121F,B884,4027,4E86,81A7,A817,8E60,38AF,A815,2041,12CE,0000,318C,56AE,B8E5,A6C4,A7E2,EE41,33C9,0000,E6A8,2026,ABEC,C0A6,A681,3B2C,0F81,382C,211F
60 DATA8984,0754,5454,CB02,2021,10BE,5555,804B,8D35,3001,318C,206A,E426,D8BF,5555,3582,6AE4,3341,E6A5,C3E5,11A6,A643,318D,0087,31A6,10AF,8C06,10AE,9CD2,A689,5555,8D07,3001,5A26,F520,CDA7,8955,55B7,2029,3F90,7EE8,0F12,0002,03FF
70 A(-239*I+31)=VARPTR(A$):A(-191*I+55)=VARPTR(J):A(-175*I+63)=VARPTR(I):A(-119*I+91)=1280:A(-117*I+92)=767:A$="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_`~.-+=*<>[](){}$%#?&@;!|/0123456789^\'":EXECVARPTR(A(301ANDI))+61
80 I=0:J=0
90 READA$:EXEC:IFI<320THEN90ELSEI=0:J=J+1:IFJ<200THEN90
100 GOTO100
110 DATA;wI||CNCI-'-'-cGBdSINC;SwI,;wI/iDVCI-'-'-WGB`lywI,;wI11iI-H+'-'wg;`lC;SINSQGo,;w|iDya;SI-'-'-ASDyKINC;SI`w;,;wI/y/Dq;='-'-LDya;=Fw,;wg1`SDa+'-'-J;S;QNSDawQ;w,;wI|`SDaId;NCNCI-'-5SDaId;FCI-Hw,;wI/`lSD``CI-'-5SDq;`CI-Hw,;w1KQd;NDNUFGBNI-Z+'-s;`C;S
120 DATAINSDaI-Cw,;wg|-DSDaINC;SI-^=HINySI`tiI`tSDaINC;SI-TY,;wI/=QDq;='-|Dq;=dw,;w1K+F;BSINSDa+'-?;S;yKDC+T;w,;wI|-PSDaId;NDNU-'-oGBdSINC;SI-Zw,;wI/-VSD`VIc-'-oGBdi;VIc-aw,;w1KQ-Q;IcFGaI-H+'-U;`C;yDaI-aw,;wg|-VqDyINC;SI-_=[DCI`K;SI-lY,;wI/=lDyC;='-fDya
130 DATA;=sw,;w11K+Z;S;SINSDC+'-g;S;yDa+l;w,;wI|-nSDaINC;SI-'-FSQ`K;SI-rw,;wI/-nSDti;SI-'-F/DCI`K;SI-rw,;w1KQ-k;NDNi+'-Y;S;dSwo;vww;-Hw,;wg|-tSDCg;S;SI-c=`DCw|;ByyINiI-fY,;wI/=_DaINC;='yqwY;B=*w,;w11K+x;BaDa+'-I;a+>;w,;wI|-+SQ`CIc-5|DCw;;KI->w,;wI/-+SQ`
140 DATACIc-5/DCw;;KI->w,;w1KQ-rwQ;yIl+'o;v-p;-Hw,;wg|-]|DCw|;BQ-E=`DCg;B=aI-fY,;w/=#DCw/;B=0DCg;B=;w,;w1KDC+'-'-];w,;wI|-@Gag;Ic-*Sw|;;KI-@w,;wI/-@Gag;Ic-*Sw/;;KI-@w,;wI11iI-T+'-'wg;-Hw,;wI|aI-o=Rw|;;KIN=LDq;`=EDCg;B=vI-TY,;w/=7w/;;=UDya;`yqDCg;B=5w,;w
150 DATA1KDC+'-'-];w,;wI|-7GCg;BQNSQl+f;v|;Ic-2w,;wI/-3SDCg;BQ/GBN+o;v/;Ic-2w,;wI1Q-Z+'-'A;-Tw,;wI|='|+$;S;=*I-HY,;w/='S+?;B=5w,;w1KDC+'-m;v-'-A;w,;wI|-+=LDa+E;-kg;`lC;`CI->w,;wI/-+SD-GIl+T;-AwQ;vwA;`C;`lCI-.w,;w1KQ-Z+7;S;dSIlg;v-);-Nw,;w|=@Da+N;=k+c;B
160 DATA=sI`w;,;w/=}Dy+f;`=BINi+c;B=-w,;w11K+'wY;yy;=JDViDC+'wA;w,;wI|-hyyD`dS+K;cdGS;dSw|;-DC;dSINi+Q;S;SI-rw,;wI/=DI`=GD-IS+P;;mywo;-AY;;LaIl+W;ByCI-EiI-Hw,;w1KQ-Z+`;AMOKI1Gaw1;S;dSIF;QNSIVK+};-Hw,;w|=>+X;BCNK;dSw|;`lyi;dyC+W;S;=pIlY,;w/=>+X;yi+Q;`yQN
170 DATAK+Z;B=vw,;w11K+'g;;yQN1DaINKw1;S;=GDC+K;yC;d+v;w,;wI|=TD-S+Q;`C;`Q`tiINC;di;yQ-B+H;cNC`yQ-Zw,;wI/=TD-S+W;`C;NI-Y;NiIl+T;`C;`lyINySI-Bw,;w1KQ-N+f;S;dSwo;S;SINSIVC`tCINSLw11Cl+C;cNCdIcFGC+T;-Hw,;w|=rDtS+Q;yy;aDaIN=S;dyCIl+H;yC;`l=bIlY,;w/=lDtyC+c;
180 DATAS;dSwo;`ySIN=B+W;yC;`l=bw,;w11i+=;S;yD=C;Sw;11y;`=BDVCI`CDyIlI;S;yaw;1+s;w,;wI||C-x+I;-DC;`NSI-QC;-ASIlwQ;`lC;yD-FCI-Nw,;wI//C-lyC+Q;-DC;dSIlg;`w/;cNiI-B+B;`C;-P=DI`wQ,;w1KDa+_;S;`ySD`Swo11Clo;`w;;Kw;1ySDdI`K;SIlw;1K+X;-Bw,;w|=ZDt=F+K;=F;dyyINyS
190 DATAINa;aD=D+B;yC;yiDq;`=Vw,;w/=ZD=J+N;`iIN=BwQ;ywQ;=DIl+B;yy;yDq;`=Vw,;w1KDa+x;yC;yCINyCDN+B1KDCIF;yDCIF;+F1KDyy;yC+B11K+l;w,;wI||C-rS+K;`MNiMNy;di;-cINiwo;S;`lCI|GB-JCINiI`wQ,;wI//C-Z=F+K;`liI`tiIN=BINC;`tINiwo;S;`lCI/Gya;`l=DIlw,;w1KDa+x;BC`VCI-a
200 DATAec`lm+A1ySD`SIl+B11K+T;-Bw,;w|=NDt=R+D;;Lya;d=f;=DDyK+B;Bo|yg|KDya;`=Pw,;w/=HDt=X+E;yy;d=l;yD=A+B;BQNyo/KDya;`=Pw,;w1KDa+q;;LVyK+H1yIl+H1v-F1=BDS;S+K1K+m;w,;wI||C-fSI`qw|;cFCI|GB`iQNC;-A=B;`iD`dyCw|;cFCI-CGaINC;-DyI`wQ,;wI//C-N=FI`qwg;;KI/GB`tI`
210 DATAtiI-EC;-ASINiwg;;KI-CGaINy;`lyiIlw,;w1KDa+o;BQ-B+B1lGBSIlg1-G+B1`yCDlIc+I11K+T;-Bw,;w|=BDt=RINC;dSw|;BQNSDVy|Dyy;di;`Ni;`ySD=AINa;wA|`g||=G;`=Jw,;w/=BDt=RINC;dwY;BQNSDq;aD=j;yDtyCwo;BwA/yg//=G;`=Jw,;w1KDa+p;w1v-O1yiwQ1vQ1`+K1=A+Q11K+l;w,;wI||C-Z
220 DATASI`l;aDaINC;SI|GB`CI|Gya;di;-kSINy;SI-CQ`K;-DyiIlw,;wI//C-HyyI-D;aDaINC;SI/GB`iDaId;dG`C;di;-MyCI`K;SI-CQ`tC;-DyiwI,;w1KDa+q;wA1v-L1yiw;1-MwQ1`ySIl+N1+d;`Vw,;w|=BDt=LI`UFiDya;=GD=L;yD`=DD=I;yCIlg|KDCINyi;`=Jw,;w/iD`d=Rwg;;qDya;yDVy/DyINiIN=D;yD`
230 DATAd=K;yaI`CDCIN=D;=Lw,;w1KDC+s;+e1yKw;1`w;1`+K1y+W1K+p;w,;wI||C-TSI-E;IMSD-FCItGaINC;di;-JiD-XCI`tSQ`tC;-DyIlw,;wI//C-HyCI-HI;IMSD-FySDaI-EC;-Yi;-DCI`tSQ`ty;`lyiwI,;w1KQl+o;+c1yiI-Tg1`liIl+N1i+d;`Vw,;w|ySDt=LIlwQ;BQ`=IIN|DyINyi;-D=HDV=D+B|KDaIN=D;
240 DATA=Lw,;w/iD`d=L+E;B=bDyIN=P;yDVySDV=DIlw;/KDCg;`yi;`=Dw,;w1KDC+u;+c1yKw;1`w;1v-L1v-X1+s;w,;wI||C-NSI-M;FCI-UGBNINC;-P=HDVCI-UGaI`tC;-DyIlw,;wI//C-HyCI-BwI;;KI-UGaINiINy;-PiDVyiI-IGaI`ty;`lyiwI,;w1KQl+p;+b1`iI-N+H1`+W11K+f;`Vw,;w|ySDt=LIlwo;B+C|-D|
250 DATADyC;di;`=nIl+B|KDCI`tyi;=Lw,;w/ySD=S+H;BwY/-J/DyINyi;`l=h+E/KDCwo;yy;`=Dw,;w1KDC+x;+Z1yK+^1K+v;w,;wI||C-NSI-Hw|;Ic-LSDti;-JyI`tSLNU-CwQ|iQ-EC;-DyIlw,;wI//C-ByyI`+I;Ic-LSDdINy;-JiDVCINSDVCI-Bg/`/DCw/;`ly;`lyiwI,;w1K+.;+X1-Gg1`+Q1v-R1KDC+i;`Vw,;w|
260 DATAySDt=FI`+H;;K+N|KDtyBd=H;=LIl+H|iww;`yi;=Lw,;w/ySD=MIl+J;;K+H/lG=m;=L+K/i+F;yy;`=Dw,;w1KDC+~;+R1aINKw;1yiI`+y11K+x;w,;wI||C-NSI-HwQ;BQlg|`lSDtSMNy;-JCI`qI`ww|`SwA;-DC;-DyIlw,;wI//C-HyCI`+L;BQlg/`lSDtSMNiINC;-DCI`qI`ww/`Sww;`ly;`lyiwI,;w1K+*;B+R1
270 DATA`iI-T+l1i+p;`Vw,;w|ySDt=FI`+L;Bq+B|KDS;aDVKDyC;`lyI`qI`+C|y|ww;`=D;=Lw,;w/ySDt=FIl+N;Bqwo/iDq;NIN=J;yyIN=B+B/y/+F;`yi;`=Dw,;w1KDC+=;+N1yIlg1-G+u1K+-;w,;wI||C-NSI-H+B;BQlg|lGB`liDq;`lyiI-Ng|`Sww;-DC;`lCINiIlw,;wI//C-HyCI`+R;BQlg/lGq;`NSI`K;-DCI-N
280 DATAg/`S+F;`ly;`lyiwI,;w1KDa+=;B+F1yI-f+f1i+v;`Vw,;w|=BD=MIl+N;Bqw;|=HDya;`yiI-B+H|i+F;`yi;`=Jw,;w/ySDt=FIl+T;Bqw;/KDS;`KD=F;=FINiIl+B/i+L;=F;=Lw,;w1KDC+(;+B1yINKg1yI`+y1K+[;w,;wI||C-NSI-ZY;;KI`aDViLdP-ICI-Tg|`V+F;-DC;`lyiIlw,;wI//C-HyCI-B+M;;KI`aDV
290 DATAiLdya;-DCI-g+L;`ly;`lyIlw,;w1KDa+];wY1`w;1`iI-H+f1l+`;`Vw,;w|=BDt=FI`+Q;;=EIlI|KDVySDVyi+W|lGC+H;`yi;`=Jw,;w/ySDt=LIl+S;;yaDVCI/GBQ/G=F;yyINKg/vww/lGC+N;yy;`=Jw,;w1KDa+{;wY1vQ1vQ1vwA1v-p11K+(;w,;wI||C-TSI-d;ALSDVCINiI|GB-JCI-Ng|`VGC+B;-F;NC`tyiI
300 DATAlw,;wI//C-NSI-N+B;TALSDVCINSLdq;-DCI-Ng/`VGC+H;-DC;`lyiIlw,;w1KDa+$;+D1-Y+f1lGC+.;`Vw,;w|=BDt=LI-W;IM=LDViD`yCI-B+B|`|+O;`yi;`=Jw,;w/=BDt=LI`+L;KIMyyDViDq;`Ni;yCI`+F/`/+U;yy;`=Jw,;w1KDy+$;+P1vQ1`+o1K+?;w,;wI||C-TSI-j;ALyyDViD`di;SI-Hg|`l|+C;-JC;
310 DATA-DyI`wQ,;wI//C-NyCI-j;ALyaDS;-Gi;SI-Hg/`VGC+H;-Dy;`lyiIlw,;w1KDyK+$;wg1-PiIl+Z1K+-;-Bw,;w|=HDt=XI-HY;;qDVyiI`CDCINC;SI`+F|iDC+N;`=D;=Rw,;w/ySD`d=XI-NY;;qDq;yCI`CDCINC;SINi+E/iDC+T;=F;`=Jw,;w1KDyi+$;wg1v-F1y+c1K+/;w,;wI|iD-aSI-ZY;;qD`SI`aDaMNCNCI
320 DATA-Bg|`Sww;-PC;-DyI`wQ,;wI//C-TyyI-ZY;;SDS;`CI`CDCI`K;SI-QS+F;-Jy;`lyiIlw,;wI11ClSIl+);w1`+E1-A+N1vQ1+`;-Hw,;w|=HDt=vwQ;BaDV=BDyy;yC+E|`SDC+B;`l=D;`=Pw,;w/=BD`d=vwQ;BaDq;yiD=C;q+E/`qDC+K;=L;=Rw,;w1iDyi+};B+O1yK+W1aw;11K+@;w,;wI|iD-[SIlg;S;`liDdPNy
330 DATA;`CIlwQ|`yCww;-JC;-DyiI`wQ,;wI//C-f=XIlY;;L``iDdI`UNCNCI`wA/`iI/ww;-Jy;-DyiIlw,;wI11ClyC+$;w1-HeMiIl+H1`w;11K+x;-F;w;,;w|=NDt=pwQ;BCLNKDS;`NyCINC;yC+K|`|DCwo;`=J;=Xw,;w/=BD`d=vw/;BaLNKDS;`NyCINa;q+K/`Sww;`=J;`=Pw,;w1ySDyK+];+C1`lyS+l1K+v;vwA;Bqw
340 DATA;wI|ySD-<IlY;;LlINya;`QNC;`CI-Bg|`VGaw|;`ly;-JyI-Bw,;wI/iD-[SwQ;BCNaIN=C;NId;NCNCI-Bg/`l/DCw/;-Dy;-DyiI`wQ,;wI11C`VSIl++;wA1`lySINiIl+Z1KDC+o;``;FywI,;w|=ND-C=dw|;BaDViDti;dyS;Sw;|`w;|yg|KDCg;`=J;`=Vw,;w/=HD-C=jw/;BaDViDaINySINa;wA/`w;/yg/KDCg;`
350 DATA=J;`=Vw,;w1ySD=A++;+C1`iINi+o1K+m;`lC;yyw,;wI|ySD-<I`K;`liDq;`Ni;SI-c|DCI`tC;-PyiI-Bw,;wI/iD-[Sw/;S;`liDya;NINC;VIc-FiI`aQ`ty;-J=DI`wQ,;wI1iD`dSI`+v;Bww1-Y+c1K+j;`lC;yywI,;w|=ZD-Uyyw|;BaDq;yiDVKDS;Swo|vo|yKw;||iIN=D;`=hw,;w/=ND-O=Rg;ByDq;yiDti;q
360 DATAwQ/vo/yKw;/KDCI`=E;`=bw,;w1=BD=M+l;+Q1`i+o1KDC+W;yy;=Lw,;wI|`yyD-sSI`K;-VCI`wA|`w;|-DSQ`K;-PyiI-Hw,;wI/ySD--Sw/;S;`Ni;`LdPNIctg/`w;/-DSDaI`K;-J=DI-Bw,;wI1ySD`dyCI-N+M;;K+E11nQ1`+u11i+K;`iINC;=FIlw,;wI|=iD-OyCg;ByiDViDq;S+W|yIlg|KDCINyi;`=nw,;w/
370 DATA=ZD-Uyaw/;ByDya;`lC+W/yiI`CD=L;`=hw,;wg1=BDt=X+K;B+L1a+=1KDC+K;ya;=Xw,;wI|`lyyD-mSI`K;-FINPKI-yGaINC;-JyiI-Nw,;wI/`yyD-sSw;;L-CaINPKI-Bg/-ZGaINC;-PyiI-Hw,;wI1`lSD-USI-Bwo;+Q11n-L1`+Q1i+F;`C;`l=DI`wQ,;wI|=uD-CyCg;ByiD`yag|vwA|vQ|-Gg|iD=C;=vw,;wI/
380 DATA=iD-IyCw/;S;yD=C;qg/vwA/vQ/-PSD=C;`=nw,;wg1`=FD-C=Lwo;B+R1v-`11K+H;yC;=Xwg,;wI|-D=FD-aSw;;L-LCINiIlg|-hSQNC;-DyiI-Tw,;wI/`l=FD-gSw;;L-NIMiIlg/-hSDq;-JyiI-Nw,;wI1-JyCD-OSI`wA;K+W1vww1v-X1iDC+B;yC;`lyiI-Bw,;wg|=.DtSI`K;=awQ|awQ|vww|`SDya;`=tw,;wI/
390 DATA=uD-CSw/;S;-AyS;SINKwQ/awQ/`w;/`lSD=C;=vw,;+D1`=RD`d=Fg;B+s1v-d1KDCwo;yC;=RI`wo,;wI|-P=FD-OSw;;L`yiD`SIlg|-nSDq;-DyI-Zw,;wI/-J=FD-USg;BC-TCIlg/-nSDq;-DyiI-Tw,;wI1-bSD-ISINiIF;+p1v-j11iw1;yC;`lyI-Nw,;wg|`l=pDtSw|;S;=XIlI|vQ|a+W|iDq;=`w,;wI/=_D`dS
400 DATAw/;S;`l=Gg/v;/vQ/aIlg/`wo/KDyC;`=tw,;+P1`l=FD`dyyINC;+'wI1KDaw1;yC;=FI-HwI,;wI|-hyCD-GI`UNC`=KI-Bg|-fGB-DyI-fw,;wI/-byyD-GI`K;-JiDlIc`dg/-fGq;-DyI-Zw,;wI1-hyCD-AINiMFCIl+f1vQ1v-X1iDaINy;`yI-Tw,;wg|-J=dDtSw|;S;=X+W|-AwQ|iD`=jI-BY,;wg/`=vDtSw/;S;`
410 DATAiD`yy+K/vQ/-AwQ/iDq;=`w,;+h1`yyDtyyIN;+'wY1KD=C;=FI`+Q,;wI|-nyyD`NI`K;-PySDVCw;|-nSD``yI-fw,;wI/-hyCD-CSI`K;-dIco/-lGB-DyiI-Zw,;wI1-nyCD`dyS;SIl+T1`+u1iDya;`yI-Zw,;wg|-P=XDtSw|;S;yiD`=F+W|`wo|iD`=XI-NY,;wg/-D=jDyKw/;yC;`Ni;`yi+Q/-Gg/iD`=`w,;+n1`
420 DATAyyD`dyB+'-A1iDq;=FI`+W,;wI|-tyCDtSI`K;-PyiI-_SD`yCI-lw,;wI/-nyCD`dSw/;S;-byI-uSD`yyI-fw,;wI1-tSD-Ci;SIl+';1lGB-DCI-fw,;wg|-V=XDaI`K;-J=DIl+N|-J=ZI-ZY,;wg/-D=jDyKw/;=R;yyI-BwQ/-PyCDV=zw,;+h1`l=FDtyB+'-A1iDVyiI`+i,;wI|-tyCDtSI`K;-VCI-=SDVyI-rw,;wI
430 DATA/-nyyDtSI`tC;di;-JCI-_SD`SI-rw

J'aime bien, moi aussi, utiliser les pointeurs de variables. C'est plus élégant que de fixer "en dur" les adresses du code en langage machine.


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Programme buggé
MessagePosté: 15 Jan 2024, 20:43 
Hors ligne

Inscription: 21 Aoû 2006, 09:06
Messages: 1800
Localisation: Brest
C'est bien un bug de type Mantidae. Bravo ! :bien:

Ce programme basic est cependant très curieux:
  • Pas d'adresse fixe comme tu l'as vu Daniel
  • Pas de CLEAR pour réserver de la place mémoire
  • Pas de POKE
  • Un EXEC venu de nulle-part
  • Marche indifféremment en BASIC 1 (sur T9000 par exemple) ou 128 (sur MO6 si on veut) ou 256 ou 512
On peut légitimement se demander comment ca marche et si tout ceci ne serait pas intrinsèquement buggé à la base ???

_________________
Good morning, that's a nice Tnetennba


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Programme buggé
MessagePosté: 16 Jan 2024, 11:19 
Hors ligne
M. DCMOTO

Inscription: 06 Juin 2004, 08:23
Messages: 681
Localisation: Provence (France)
C'est la première fois que je vois le bug Mantidae sur mon MO5. Un antivirus pourrait peut-être le bloquer.

Ce programme BASIC est effectivement bourré d'astuces, toutes très ingénieuses, comme le test du modèle d'ordinateur et le stockage du langage machine dans des variables (qui permet entre autre d'éviter le CLEAR). A l'époque des deulignes on faisait aussi des prouesses de ce genre. Bien connaître le BASIC permet aussi d'améliorer les performances. Malheureusement les jeunes développeurs ne cherchent plus, comme nous, les optimisations. Ils n'ont pas connu les processeurs lents et limités et sont inconscients du gaspillage de ressources résultant de leur méconnaissance du langage. Au delà du bon choix des types de variables, des noms courts, de l'utilisation des GOSUB et autres recommandations de base, il y a plus subtil.

Avec mon premier MO5, en 1984, j'ai eu une expérience en BASIC dont je me souviendrai toujours. Il faut savoir qu'il y a une allocation dynamique des chaînes de caractères. Quand on diminue la taille d'une chaîne, l'espace libéré est provisoirement inutilisé. Quand il n'y a plus la place pour allouer de la mémoire à la suite de la dernière chaîne, le BASIC lance une réallocation de tout l'espace chaînes pour récupérer les octets inutilisés. Un peu comme la défragmentation d'un disque dur. S'il y a beaucoup de chaînes et beaucoup d'espaces inutilisés le traitement est très long, parfois plus d'une seconde. Si à ce moment précis on appuie sur le bouton Initialisation Programme c'est la catastrophe : des pointeurs sont perdus, le programme BASIC est corrompu et on ne peut pas le récupérer.

L'aventure m'est arrivée plusieurs fois, et à l'époque je n'en connaissais pas la cause. J'ai cru que le MO5 était en panne et j'étais prêt à le rapporter au vendeur. Avant de me décider j'ai fait plein de tests pour identifier précisément la panne, et c'est là que j'ai découvert la véritable raison du plantage.

Maintenant j'ai compris qu'il faut éviter de diminuer ou d'augmenter la taille d'une chaîne. S'il n'y a pas d'espace inutilisé il n'y a pas réallocation et on gagne beaucoup de temps (et aussi une erreur si l'espace chaîne est saturé). Peu de programmeurs le savent, et pourtant, dans certains cas, l'impact sur les performances est énorme.


Haut
 Profil  
Répondre en citant le message  
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 4 messages ] 

Heures au format UTC + 1 heure


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 4 invités


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages
Vous ne pouvez pas joindre des fichiers

Rechercher:
Aller à:  
cron
Développé par phpBB® Forum Software © phpBB Group
Traduction par phpBB-fr.com