Tableau de comparaison des mots clefs en BASIC

Ici, on fait dans le petit, le LCD qui déchire sa race, on y cause même calculatrices quand on est en manque !

Modérateur : Politburo

Répondre
Avatar du membre
charognard
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 4412
Enregistré le : 06 juin 2007 19:28
Localisation : Indre et loire
Contact :

Message par charognard »

Xerxes a écrit :
Marcus von Cube a écrit :Je cherche l'instruction de FX-730P/FX-795P correspondant à VALF() du FX-850P.
The equivalent command to valf() on the FX-795P is MODE20.

An example:

Code : Tout sélectionner

10 $="1+1"
20 MODE 20,A
30 PRINT A
MODE20 seems to work on the FX-795P only. I think the reason is that
the FX-795P is the only 4-bit Casio pocket with built-in math library.
ça ne marche pas sur le FX-790 :cry:
Avatar du membre
Marcus von Cube
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 914
Enregistré le : 20 avr. 2006 13:48
Localisation : Wehrheim, Allemagne
Contact :

Message par Marcus von Cube »

Merci a C.Ret pour les infos sur le PC-1211. J'ai pas trouvé le manuel. :(

Est-ce qu'il y a une version PDF à télécharger?

Comment fonctionne USING? Seulement avec PRINT ou aussi comme commande?
Avatar du membre
pir2
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 4647
Enregistré le : 31 oct. 2006 15:08
Localisation : 67310 Westhoffen
Contact :

Message par pir2 »

Marcus von Cube a écrit :Merci a C.Ret pour les infos sur le PC-1211. J'ai pas trouvé le manuel. :(

Est-ce qu'il y a une version PDF à télécharger?

Comment fonctionne USING? Seulement avec PRINT ou aussi comme commande?
C.Ret m'a griller ! (je voulais mettre à jour pour cette machine, mais je suis trop lent :) )

Un .pdf pour le 1212 (sauf couleur de l'écran) est disponible : http://www.usersmanualguide.com/sharp/c ... or/pc-1212

A+
Image
Image
Avatar du membre
Paul Tergeist
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 2417
Enregistré le : 15 oct. 2007 15:50
Localisation : 3ème planète après le soleil

Message par Paul Tergeist »

BubbleBobble a écrit :Ah, bien ça.
Il y avait autrefois de tels tableaux dans des magazines de listing, pour les différents Basic des ordinateurs personnels.
Pierre
Oui il y en a un beau dans un numéro HS de l'Ordinateur Individuel
telechargeable sur abandonware magazine.

Paul - HS depuis 1664
(mais où se trouve le service après vente ?)
Il y a 10 catégories de personnes dans le monde. Celle qui connait le binaire et l'autre.
Avatar du membre
Paul Tergeist
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 2417
Enregistré le : 15 oct. 2007 15:50
Localisation : 3ème planète après le soleil

Message par Paul Tergeist »

Marcus von Cube a écrit :Merci a C.Ret pour les infos sur le PC-1211. J'ai pas trouvé le manuel. :(
Est-ce qu'il y a une version PDF à télécharger?
Comment fonctionne USING? Seulement avec PRINT ou aussi comme commande?
Hi Marcus, here some link but it's in french : (to translate with Babel fish FE)
http://destroyedlolo.homeunix.org/sharp/basic.html
http://pockemul.free.fr/magazines.htm

And here (on the third page) you can find a german manual on PC-1212
wich is quite similar to PC-1211
http://esupport.sharp.de/html/om/index. ... n&iStart=0

And felicitation for all your work concerning pocket calculators.

Paul - linked since 1664
(yes, no error 404 since 1664!)
Il y a 10 catégories de personnes dans le monde. Celle qui connait le binaire et l'autre.
Avatar du membre
Marcus von Cube
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 914
Enregistré le : 20 avr. 2006 13:48
Localisation : Wehrheim, Allemagne
Contact :

Message par Marcus von Cube »

Merci Paul!

J'ai téléchargé le manuel en allemand. À propos les magazines : J lire français, je n'ai pas besoin de Babelfish. ;)
Avatar du membre
gege
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 7148
Enregistré le : 31 janv. 2008 14:24
Localisation : Banlieue Paârisienne
Contact :

Message par gege »

J'ai l'impression que tu as oublié le module 8K RAM pour le HP75, qui étend la RAM interne (merge).

Bravo encore, ça fait réviser ses notions !!
Sans compter les trucs inconnus comme MODE110 et autres...

G.E.
Avatar du membre
Marcus von Cube
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 914
Enregistré le : 20 avr. 2006 13:48
Localisation : Wehrheim, Allemagne
Contact :

Message par Marcus von Cube »

gege a écrit :J'ai l'impression que tu as oublié le module 8K RAM pour le HP75, qui étend la RAM interne (merge).
Mon problème: Je n'ai pas un HP-75, que les docs. Si tu veux, explique MERGE et je vais intégrer l'infos.

EDIT: MERGE est seulement pour les fichiers. ???
gege a écrit :Bravo encore, ça fait réviser ses notions !!
Sans compter les trucs inconnus comme MODE110 et autres...
:oops:
Avatar du membre
gege
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 7148
Enregistré le : 31 janv. 2008 14:24
Localisation : Banlieue Paârisienne
Contact :

Message par gege »

Euh, je veux dire que le HP75 accepte un module en interne qui étend sa mémoire (interne aussi) de 16 à 24 K.
A ne pas confondre avec les modules d'application (ROM) qui s'enfichent dans les 4 logements devant la machine.

Bref, tu mets le module et hop ! 24K.
Je ne sais pas si la mémoire est effacée (sûrement) lorsqu'on l'insère ou qu'on l'enlève.

La mémoire supplémentaire est toujours ajoutée à la mémoire RAM, pas comme sur le HP71.

Voilà,
G.E.
Avatar du membre
Xerxes
Fonctionne à 300 bauds
Fonctionne à 300 bauds
Messages : 292
Enregistré le : 02 avr. 2007 13:41
Localisation : Allemagne
Contact :

Message par Xerxes »

Marcus von Cube a écrit :Sera-t-il possible d'analyser le logiciel préprogrammé d'un FX-795P ? Peut-on faire une liste?
Usually the 4-bit CASIO pockets have no external ROM. The complete firmware is
hidden in the internal CPU ROM but the FX-795P seems to be the exception.
Due to the limited internal ROM, an external ROM was added to hold a part of
the math library. In contrast to the FX-880P some math routines are coded in
assembly and not in BASIC only. This external ROM can be accessed by MODE18
(=PEEK).

Thanks to Piotr, the complete BASIC part of the FX-795P math library:

Code : Tout sélectionner

1 ERASE D$:DIM D$(8)
2 SET N:A=0:B=0:C=0:D=0:E=0:F=0:G=0:H=0:I=0:J=0:K=0:L=0:M=0:N=0
3 O=0:P=0:Q=0:R=0:S=0:T=0:U=0:V=0:W=0:X=0:Y=0:Z=0:$="":ERASE D
4 PRINT :PRINT "Mat/Comp/Newt/Sim/HexBin";:MODE 21,F,G
5 PRINT :IF (G-64)*(89-G)>=0 THEN G=G-32
6 ON G-32GOTO 3100,1010,,,,,3700,,,,,5000,7000,,,,,6000
7 GOTO 4
8 MODE 18(521,O):RETURN
9 PRINT :PRINT "FX error";:MODE 21,F,G:PRINT :RETURN
10 GOSUB 9:IF G=235 THEN 1
11 GOTO 5025
15 PRINT :PRINT "Impossible";:MODE 21,F,G:PRINT :RETURN
16 MODE 20,W:GOSUB 8:RETURN
20 MODE 18(K,O):L=VAL(O$):K=K+1:MODE 18(K,O):U=VAL(O$)
25 IF FRAC (U/5)=0 THEN L=L-100
27 RETURN
30 Z=0:S=0:V=A:W=B:K=N-168:IF V<>0 THEN GOSUB 20
35 I=L:K=N-176:IF W<>0 THEN GOSUB 20
40 J=L:V=V/10^I:V=RND(V,-6):V=V*10^I:W=W/10^J:W=RND(W,-6)
42 W=W*10^J:IF B=0 THEN $=STR$(V):RETURN
47 IF A=0 THEN 57
50 IF ABS (B)=1 THEN 65
52 IF B<0 THEN F$="":GOTO 56
55 F$="+"
56 $=STR$(V)+F$+STR$(W)+"i":RETURN
57 IF ABS (B)<>1 THEN $=STR$(W)+"i":RETURN
60 IF B<0 THEN $="-i":RETURN
62 $="i":RETURN
65 IF B<0 THEN $=STR$(V)+"-i":RETURN
67 $=STR$(V)+"+i":RETURN
80 MODE 18(156,U):MODE 18(157,O)
81 O$=O$+U$:N$="&H"+O$:N=VAL(N$):RETURN
90 MODE 95,P:GOSUB 8:RETURN
91 MODE 95,$:GOSUB 8:RETURN
100 GOSUB 9:IF G=235 THEN 1
101 P=A:GOTO 3530
110 PRINT :MODE 28,P:MODE 18(521,O):IF O$<>"00" THEN 100
120 Q$="":B=0:GOTO 3130
130 PRINT :Q$="(Dec) ":B=0:GOTO 3530
140 PRINT :MODE 29,P:MODE 18(521,O):IF O$<>"00" THEN 100
150 Q$="(Hex) ":B=0:GOTO 3725
210 IF (Q-0)*(R-0)=0 THEN 1215
215 R=R-1:GOTO 270
260 R=R+1:IF R>=Q THEN 1040
270 X=POL(E,M):A=X^(1/Q)*COS ((Y+ACS (-1)*2*R)/Q)
290 B=X^(1/Q)*SIN ((Y+ACS (-1)*2*R)/Q):GOTO 1210
400 PRINT :PRINT MID$(17,16);" ";F$;:INPUT $:RETURN
410 PRINT :PRINT A;" ";F$;:INPUT P:P=SGN P*INT (ABS (P)):RETURN
420 PRINT :PRINT $;" ";F$;:INPUT $:RETURN
600 P=C:PRINT :PRINT $;STR$(C);",";STR$(D);") i";
601 MODE 95,P:GOSUB 8:P=INT (P):IF O$<>"00" THEN PRINT :Z=0:RETURN
605 IF P<1 THEN 600
606 IF P>9 THEN 600
607 IF Z=1 THEN IF A<>P THEN ERASE A:DIM A(P-1,B-1):A=P:RETURN
608 IF Z=2 THEN IF P<>M THEN ERASE B:DIM B(P-1,N-1):M=P:D=P
609 RETURN
610 P=D:PRINT :PRINT $;STR$(C);",";STR$(D);") j";
611 MODE 95,P:GOSUB 8:P=INT (P):IF O$<>"00" THEN PRINT :Z=0:RETURN
615 IF P<1 THEN 610
616 IF P>9 THEN 610
617 IF Z=1 THEN IF B<>P THEN ERASE A:DIM A(A-1,P-1):B=P:RETURN
618 IF Z=2 THEN IF P<>N THEN ERASE B:DIM B(M-1,P-1):N=P
619 RETURN
620 FOR I=0 TO C-1:FOR J=0 TO D-1
625 PRINT :ON ZGOTO 630,635,670
630 PRINT E$;STR$(I+1);",";STR$(J+1);")=";A(I,J);
632 MODE 95,A(I,J):GOTO 640
635 PRINT E$;STR$(I+1);",";STR$(J+1);")=";B(I,J);:MODE 95,B(I,J)
640 GOSUB 8:IF O$<>"00" THEN PRINT :GOTO 650
645 NEXT J:NEXT I:RETURN
650 IF I=0 THEN IF J=0 THEN Z=0:RETURN
655 IF J=0 THEN I=I-1:J=D
660 J=J-1:GOTO 625
670 PRINT E$;STR$(I+1);",";STR$(J+1);")=";X(I,J);
671 MODE 21,F,G:PRINT :IF G=246 THEN 650
672 ON G-234GOTO 1,,,,645
675 GOTO 625
690 ERASE X:DIM X(A-1,B-1):MODE 90,A,X,F:RETURN
1010 GOSUB 80
1030 IF Q<>0 THEN 260
1040 Q=0:R=0:PRINT :PRINT "a+bi a";:INPUT A
1050 PRINT :PRINT "a+bi b";:INPUT B
1210 GOSUB 30
1215 PRINT $;
1220 MODE 21,F,G:PRINT :IF (G-64)*(89-G)>=0 THEN G=G-32
1230 ON G-234GOTO 1,,,,1030
1235 ON GGOTO 1310,1310,1310,1310
1240 ON G-204GOTO 1410,1410
1241 IF G=183 THEN 1420
1245 ON G-136GOTO 1415
1250 ON G-54GOTO 1505,1508
1270 IF G=246 THEN 210
1280 GOTO 1215
1310 Q=0:R=0:PRINT :PRINT F$;"(c+di) c";:INPUT C
1317 PRINT :PRINT F$;"(c+di) d";:INPUT D
1328 GOTO (G*10+1320)
1330 H=A+C:B=B+D:A=H:GOTO 1210
1340 H=A-C:B=B-D:A=H:GOTO 1210
1350 H=A*C-B*D:B=A*D+B*C:A=H:GOTO 1210
1360 IF C=0 THEN IF D=0 THEN 1800
1365 H=(A*C+B*D)/(C^2+D^2):B=(B*C-A*D)/(C^2+D^2):A=H:GOTO 1210
1410 Q=0:R=0:PRINT :H=G-203:GOTO 1430
1415 PRINT :H=1/2:Q=2:R=0:GOTO 1430
1420 PRINT :H=1/3:Q=3:R=0
1430 IF A=0 THEN IF B=0 THEN Q=0:R=0:GOTO 1215
1440 X=POL(A,B):E=A:M=B
1450 A=X^H*COS (H*Y):B=X^H*SIN (H*Y):GOTO 1210
1505 IF A=0 THEN IF B=0 THEN X=0:GOTO 1665
1508 IF A=0 THEN IF B=0 THEN 1800
1510 X=POL(A,B)
1655 IF G=56 THEN 1670
1665 S=1:PRINT :PRINT "X(r)=";X;:GOTO 1680
1670 S=2:PRINT :PRINT "Y(arg)=";Y;
1680 MODE 21,F,G:PRINT :IF (G-64)*(89-G)>=0 THEN G=G-32
1690 ON G-54GOTO 1505,1508
1700 IF G=235 THEN 1
1705 IF G=239 THEN 1215
1708 IF S=1 THEN 1665
1709 GOTO 1670
1800 GOSUB 9:IF G=235 THEN 1
1810 GOTO 1210
3100 Q$="":PRINT :PRINT "Bin";:INPUT $
3110 IF $="" THEN 3130
3120 MODE 26,P:MODE 18(521,O):IF O$<>"00" THEN 3100
3130 MODE 28,P
3140 A=P:R$="<":S$="(Lower)":M=17
3190 PRINT :PRINT R$;MID$(M,16);S$;
3200 MODE 21,F,G:PRINT :IF (G-64)*(89-G)>=0 THEN G=G-32
3210 ON G-234GOTO 1,,,,3100,,3140,3420
3220 IF (G-1)*(4-G)>=0 THEN 3300
3230 ON G-31GOTO 3340,,3370,130,,,,150
3240 ON G-42GOTO 3380,,3375,3360,,,3385,,,,,,3365
3260 GOTO 3190
3300 GOSUB 400:IF $="" THEN P=B:GOTO 3307
3305 MODE 26,P:GOSUB 8:IF O$<>"00" THEN P=A:MODE 28,P:GOTO 3300
3307 B=P:IF P=0 THEN IF G=4 THEN 3450
3310 $="A"+F$+"P":MODE 20,P:MODE 28,P:GOSUB 8:IF O$<>"00" THEN 3450
3315 MODE 26,P:GOTO 3140
3340 F$="AND":GOSUB 400:IF $="" THEN P=B:GOTO 3355
3350 MODE 26,P:GOSUB 8:IF O$<>"00" THEN P=A:MODE 28,P:GOTO 3340
3355 B=P:MODE 96,2,A,P,P:GOTO 3130
3360 F$="OR":GOSUB 400:IF $="" THEN P=B:GOTO 3363
3362 MODE 26,P:GOSUB 8:IF O$<>"00" THEN P=A:MODE 28,P:GOTO 3360
3363 B=P:MODE 96,3,A,P,P:GOTO 3130
3365 F$="XOR":GOSUB 400:IF $="" THEN P=B:GOTO 3368
3367 MODE 26,P:GOSUB 8:IF O$<>"00" THEN P=A:MODE 28,P:GOTO 3365
3368 B=P:MODE 96,4,A,P,P:GOTO 3130
3370 PRINT :MODE 96,0,A,P:GOTO 3130
3375 PRINT :MODE 96,1,A,P:GOTO 3130
3380 PRINT :$=MID$(2,31)+"0":MODE 26,P:GOTO 3140
3385 PRINT :$="0"+MID$(1,31):MODE 26,P:GOTO 3140
3420 S$=">":R$="(Upper)":M=1:GOTO 3190
3450 GOSUB 9:IF G=235 THEN 1
3455 P=A:GOTO 3130
3510 PRINT :PRINT "Dec";:INPUT P
3530 MODE 28,P:MODE 18(521,O):IF O$<>"00" THEN 100
3535 MODE 26,P:A=P:PRINT :PRINT Q$;A;
3540 MODE 21,F,G:PRINT :IF (G-64)*(89-G)>=0 THEN G=G-32
3550 IF (G-1)*(4-G)>=0 THEN 3600
3555 ON G-31GOTO 3620,110,3660,,,,,140,,,,3670
3560 ON G-44GOTO 3650,3630,,,3680,,,,,,3640
3565 ON G-234GOTO 1,,,,3510
3570 GOTO 3530
3600 P=B
3610 GOSUB 410:B=P:IF P=0 THEN IF G=4 THEN 100
3617 $="A"+F$+"P":MODE 20,P:GOTO 3530
3620 F$="AND":P=B:GOSUB 410:B=P:MODE 96,2,A,P,P:GOSUB 8
3627 IF O$<>"00" THEN 100
3628 GOTO 3530
3630 F$="OR":P=B:GOSUB 410:B=P:MODE 96,3,A,P,P:GOSUB 8
3637 IF O$<>"00" THEN 100
3638 GOTO 3530
3640 F$="XOR":P=B:GOSUB 410:B=P:MODE 96,4,A,P,P:GOSUB 8
3647 IF O$<>"00" THEN 100
3648 GOTO 3530
3650 PRINT :MODE 96,1,A,P:MODE 18(521,O):IF O$<>"00" THEN 100
3655 GOTO 3530
3660 PRINT :MODE 96,0,A,P:MODE 18(521,O):IF O$<>"00" THEN 100
3665 GOTO 3530
3670 PRINT 
3672 MODE 28,P:MODE 18(521,O):IF O$<>"00" THEN 100
3675 $=MID$(2,31)+"0":MODE 26,P:GOTO 3530
3680 PRINT 
3682 MODE 28,P:MODE 18(521,O):IF O$<>"00" THEN 100
3685 $="0"+MID$(1,31):MODE 26,P:GOTO 3530
3700 Q$="(Hex) ":PRINT :PRINT "Hex";:INPUT $
3710 IF $="" THEN 3725
3720 MODE 27,P:MODE 18(521,O):IF O$<>"00" THEN 3700
3725 MODE 29,P
3730 A=P:PRINT :PRINT Q$;$;
3740 MODE 21,F,G:PRINT :IF (G-64)*(89-G)>=0 THEN G=G-32
3750 IF (G-1)*(4-G)>=0 THEN 3800
3755 ON G-31GOTO 3820,120,3860,130
3760 ON G-42GOTO 3870,,3850,3830,,,3880,,,,,,3835
3765 ON G-234GOTO 1,,,,3700
3770 GOTO 3730
3800 GOSUB 420:IF $="" THEN P=B:GOTO 3809
3807 MODE 27,P:GOSUB 8:IF O$<>"00" THEN P=A:MODE 29,P:GOTO 3800
3809 B=P:IF P=0 THEN IF G=4 THEN 3900
3810 $="A"+F$+"P":MODE 20,P:MODE 29,P:GOSUB 8:IF O$<>"00" THEN 3900
3812 MODE 27,P:GOTO 3730
3820 F$="AND":GOSUB 420:IF $="" THEN P=B:GOTO 3829
3828 MODE 27,P:GOSUB 8:IF O$<>"00" THEN P=A:MODE 29,P:GOTO 3820
3829 B=P:MODE 96,2,A,P,P:GOTO 3725
3830 F$="OR":GOSUB 420:IF $="" THEN P=B:GOTO 3833
3832 MODE 27,P:GOSUB 8:IF O$<>"00" THEN P=A:MODE 29,P:GOTO 3830
3833 B=P:MODE 96,3,A,P,P:GOTO 3725
3835 F$="XOR":GOSUB 420:IF $="" THEN P=B:GOTO 3838
3837 MODE 27,P:GOSUB 8:IF O$<>"00" THEN P=A:MODE 29,P:GOTO 3835
3838 B=P:MODE 96,4,A,P,P:GOTO 3725
3850 PRINT :MODE 96,1,A,P:GOTO 3725
3860 PRINT :MODE 96,0,A,P:GOTO 3725
3870 PRINT :MODE 28,P:$=MID$(2,31)+"0":MODE 26,P:GOTO 3725
3880 PRINT :MODE 28,P:$="0"+MID$(1,31):MODE 26,P:GOTO 3725
3900 GOSUB 9:IF G=235 THEN 1
3910 P=A:GOTO 3725
5000 PRINT :MODE 97,A,A,B:IF A<1 THEN ERASE A:DIM A(1,1):A=2:B=2
5020 MODE 97,B,M,N:IF M<1 THEN ERASE B:DIM B(1,1):M=2:N=2
5025 $="A/B/X/F/ 1:X>A / 2:A<>B"
5030 PRINT :PRINT $;:MODE 21,F,G:PRINT :IF (G-64)*(89-G)>=0 THEN G=G-32
5040 ON GGOTO 5460,5500,5550
5050 ON G-31GOTO 5200,5300,,5600,5650,5100,,,5700,,5750
5060 ON G-50GOTO 5800,,,,5400
5070 ON G-234GOTO 1,,,,5025,,,,,,,5025
5072 ON G-16GOTO 5440,5850
5080 GOTO 5030
5100 $="Det/Inv/Tra/Equ/K/+/-/*":GOTO 5030
5200 $="A(i,j)=(":E$="A("
5202 Z=1:C=A:D=B:GOSUB 600:IF Z=0 THEN 5025
5204 Z=1:C=A:D=B:GOSUB 610:IF Z=0 THEN 5202
5210 Z=1:C=A:D=B:GOSUB 620:IF Z=0 THEN 5204
5220 GOTO 5025
5300 $="B(i,j)=(":E$="B("
5302 Z=2:C=M:D=N:GOSUB 600:IF Z=0 THEN 5025
5304 Z=2:C=M:D=N:GOSUB 610:IF Z=0 THEN 5302
5310 Z=2:C=M:D=N:GOSUB 620:IF Z=0 THEN 5304
5320 GOTO 5025
5400 PRINT :MODE 97,X,Q,R:IF Q<1 THEN 5025
5410 $="X(i,j)=(":E$="X(":C=Q:D=R
5415 Z=3
5417 PRINT :PRINT $;STR$(Q);",";STR$(R);")";
5420 MODE 21,F,G:PRINT :IF G=246 THEN 5025
5422 IF G=235 THEN 1
5425 IF G<>239 THEN 5417
5430 GOSUB 620:IF Z=0 THEN 5415
5435 GOTO 5025
5440 PRINT :MODE 97,X,Q,R:IF Q<1 THEN 5025
5455 ERASE A:DIM A(Q-1,R-1):MODE 92,X,A:A=Q:B=R:GOTO 5025
5460 Z=1:MODE 99,1
5500 Z=2
5505 PRINT :IF A<>M THEN 10
5510 IF B<>N THEN 10
5515 ERASE X:DIM X(A-1,B-1)
5520 FOR I=0 TO A-1:FOR J=0 TO B-1
5530 IF Z=1 THEN X(I,J)=A(I,J)+B(I,J):MODE 99,1
5535 X(I,J)=A(I,J)-B(I,J)
5536 NEXT J:NEXT I:GOTO 5025
5550 PRINT :IF B<>M THEN 10
5555 ERASE X:MODE 94,A,B,X:GOTO 5025
5600 PRINT :IF A<>B THEN 10
5605 MODE 91,A,,D
5610 PRINT "Det=";D;:MODE 21,F,G:PRINT :IF G=235 THEN 1
5620 GOTO 5025
5650 PRINT :IF A<>B THEN 10
5651 IF B<>M THEN 10
5652 GOSUB 690:IF F=0 THEN 10
5660 MODE 94,X,B,D:ERASE X:DIM X(A-1,N-1):MODE 92,D,X:ERASE D:I=0
5685 PRINT :PRINT "X(";STR$(I+1);",1)=";X(I,0);
5690 MODE 21,F,G:PRINT :IF G=246 THEN IF I=0 THEN 5685
5692 IF G=246 THEN I=I-1
5694 IF G=235 THEN 1
5695 IF G=239 THEN I=I+1:IF I=A THEN 5025
5696 GOTO 5685
5700 PRINT :IF A<>B THEN 10
5710 GOSUB 690:IF F=0 THEN 10
5720 GOTO 5025
5750 K=1:PRINT :PRINT "k*A k";:MODE 95,K:GOSUB 8
5752 IF O$<>"00" THEN PRINT :GOTO 5025
5755 ERASE X:DIM X(A-1,B-1):FOR I=0 TO A-1:FOR J=0 TO B-1
5760 X(I,J)=K*A(I,J):NEXT J:NEXT I:GOTO 5025
5800 PRINT :ERASE X:DIM X(A-1,B-1):MODE 92,A,X:MODE 93,X:GOTO 5025
5850 DIM D(M-1,N-1):ERASE D
5855 PRINT :DIM D(A-1,B-1):MODE 92,A,D:ERASE A:DIM A(M-1,N-1)
5860 MODE 92,B,A:ERASE B:DIM B(A-1,B-1):MODE 92,D,B
5870 G=A:A=M:M=G:G=B:B=N:N=G:ERASE D:GOTO 5025
6000 E=1E-3:MODE 5
6010 PRINT :PRINT "F(X)/S/Err";
6020 MODE 21,F,G:PRINT :IF (G-64)*(89-G)>=0 THEN G=G-32
6025 ON G-35GOTO 6500,6100
6032 IF G=50 THEN 6700
6035 IF G=235 THEN 1
6040 GOTO 6010
6100 J=LEN($)/7:$="":FOR I=0 TO J:$=$+D$(I):NEXT I
6105 PRINT :PRINT "F(X)=";MID$(1,18);
6110 GOSUB 91:IF O$<>"00" THEN PRINT :GOTO 6010
6115 IF $="" THEN IF D$(0)="" THEN 6100
6120 IF $="" THEN FOR I=0 TO J:$=$+D$(I):NEXT I:GOTO 6140
6125 J=LEN($)/7:FOR I=0 TO J:D$(I)=MID$(I*7+1,7):NEXT I
6140 PRINT :PRINT "[a,b] a=";A;:P=A:GOSUB 90
6142 IF O$<>"00" THEN PRINT :GOTO 6100
6150 A=P:PRINT :PRINT "[a,b] b=";B;:P=B:GOSUB 90:PRINT 
6152 IF O$<>"00" THEN 6140
6200 B=P:PRINT :PRINT " *";:X=B:MODE 20,U
6205 X=A:GOSUB 16:IF O$="09" THEN 6100
6215 R=W+U:Q=0:H=0:N=4
6230 C=(B-A)/N:K=0:T=0:H=A
6240 FOR I=1 TO N-2 STEP 2:H=H+C:X=H:MODE 20,W
6250 K=K+W:H=H+C:X=H:MODE 20,W:T=T+W:NEXT I
6265 H=H+C:X=H:MODE 20,W:K=K+W:S=C*(R+4*K+2*T)/3
6270 IF N=4 THEN 6350
6280 D=ABS (S-Q):IF D<=E THEN 6600
6295 IF N=6 THEN N=22
6300 IF N=26 THEN N=62
6310 IF N=66 THEN N=142
6320 IF N=146 THEN 6800
6350 N=N+2:Q=S:GOTO 6230
6500 PRINT :PRINT "Err=";E;:P=E:INPUT P:IF P<=0 THEN 6500
6520 E=P:GOTO 6010
6600 PRINT :GOSUB 80:K=N-32:GOSUB 20:S=RND(S,L-1)
6700 PRINT :PRINT "S=";S;:MODE 21,F,G:PRINT :IF G=235 THEN 1
6705 GOTO 6010
6800 GOSUB 15:IF G=235 THEN 1
6810 GOTO 6010
7000 M=20:E=1E-3:H=1E-5
7020 PRINT :PRINT "F(X)/X/H( )/Err";
7030 MODE 21,F,G:PRINT :IF (G-64)*(89-G)>=0 THEN G=G-32
7035 ON G-35GOTO 7400,7100,,7300
7042 IF G=55 THEN 7605
7045 IF G=235 THEN 1
7050 GOTO 7020
7100 J=LEN($)/7:$="":FOR I=0 TO J:$=$+D$(I):NEXT I
7105 PRINT :PRINT "F(X)=";MID$(1,18);
7110 GOSUB 91:IF O$<>"00" THEN PRINT :GOTO 7020
7115 IF $="" THEN IF D$(0)="" THEN PRINT :GOTO 7100
7120 IF $="" THEN FOR I=0 TO J:$=$+D$(I):NEXT I:GOTO 7150
7125 J=LEN($)/7:FOR I=0 TO J:D$(I)=MID(I*7+1,7):NEXT I
7150 PRINT :PRINT "X0=";S;:P=S:GOSUB 90
7160 IF O$<>"00" THEN PRINT :GOTO 7100
7170 S=P:U=S:PRINT :PRINT " *";
7180 FOR I=1 TO M
7190 X=U:GOSUB 16:IF O$="09" THEN 7100
7200 Q=W:X=U+H:MODE 20,W:R=W:IF R=Q THEN 7250
7210 T=U-Q*H/(R-Q)
7220 Z=ABS (Q*H/(R-Q)):IF Z<=E THEN 7600
7240 U=T:NEXT I
7250 X=T:GOSUB 15:IF G=235 THEN 1
7260 GOTO 7020
7300 PRINT :PRINT "h( )=";H;:P=H:INPUT P
7310 IF P<=0 THEN 7300
7320 H=P:GOTO 7020
7400 PRINT :PRINT "Err=";E;:P=E:INPUT P:IF P<=0 THEN 7400
7420 E=P:PRINT :PRINT "Maxloop=";M;:INPUT M
7430 M=INT (M)
7440 IF M<=0 THEN 7420
7450 GOTO 7020
7600 PRINT :GOSUB 80:K=N-32:GOSUB 20:X=RND(T,L-1)
7605 PRINT :PRINT "X=";X;:MODE 21,F,G:PRINT :IF G=235 THEN 1
7610 GOTO 7020
The used MODE commands are: 18,20,21,26,27,28,29,90,91,92,93,94,95,96,97,99
Avatar du membre
Marcus von Cube
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 914
Enregistré le : 20 avr. 2006 13:48
Localisation : Wehrheim, Allemagne
Contact :

Message par Marcus von Cube »

Thanks for the listing. Piotr told me how he got to it: Not with PEEK but with help of a dead FX-795P as a donator for the ROM chip which he read out with a prommer device. He is a hardware guy! ;)

The listing has been created by my Casio utilities. International collaboration, I would say.

Pour les lecteurs qui préférent lire français: Pardonnez mois! :)
jxano
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 2362
Enregistré le : 16 févr. 2008 23:34
Localisation : Paris 20ème

Message par jxano »

Xerxes a écrit :The used MODE commands are: 18,20,21,26,27,28,29,90,91,92,93,94,95,96,97,99
Vielen Dank, Marcus !
Thanks a lot, Xerxes !

Il ne reste plus qu'à éplucher le programme et essayer toutes ces commandes inédites (à tous les sens du terme !) pour en déterminer le sens...

Chose étrange : il est établi que MODE 20 ne marche que sur 795... mais sur 790, MODE 20 donne ERROR 5 et non ERROR 2, comme MODE 10, par exemple...
Programmeur abscons.
Avatar du membre
Xerxes
Fonctionne à 300 bauds
Fonctionne à 300 bauds
Messages : 292
Enregistré le : 02 avr. 2007 13:41
Localisation : Allemagne
Contact :

Message par Xerxes »

Marcus von Cube a écrit :Piotr told me how he got to it: Not with PEEK but with help of a dead FX-795P as a donator for the ROM chip which he read out with a prommer device. He is a hardware guy! ;)
Yes indeed, Piotr did some excellent work especially the PB-1000/2000C emulator.
It's remarkable that he managed it to read out the internal ROM of the HD61700 CPU
what is even impossible in assembly. My respect for his work for making it possible
what seems impossible for a long time. :-)

But there is another way to read out the FX-795P external ROM: It's possible to copy
the BASIC program from ROM to RAM as an usual BASIC program by using MODE18 and MODE19.


More about the MODE commands:

MODE 99 controls the ERROR stop of a program.

An example:

10 MODE 99,1
20 PRINT 1/0
30 MODE 99,0
40 PRINT 1/0

gives "ERROR in 40" and not in 20.
jxano
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 2362
Enregistré le : 16 févr. 2008 23:34
Localisation : Paris 20ème

Message par jxano »

Après lecture des premières lignes du code de la bibliothèque mathématique du FX-795P :

Code : Tout sélectionner

10 MODE 21,A,B
20 PRINT A$;B;"  ";
30 GOTO 10
Ce MODE donne les caractères tapés au clavier avec leur code interne. Ça peut très avantageusement remplacer l'instruction KEY$ : pas de boucle à implanter, et la possibilité de tester numériquement la touche :

Code : Tout sélectionner

5 PRINT :IF (G-64)*(89-G)>=0 THEN G=G-32 
Programmeur abscons.
Avatar du membre
Marcus von Cube
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 914
Enregistré le : 20 avr. 2006 13:48
Localisation : Wehrheim, Allemagne
Contact :

Tableau mis à jour!

Message par Marcus von Cube »

Commands: program flow, subroutines, error handling

J'ai aussi mis à jour les fonctions statistiques du HP-71.
Répondre

Retourner vers « Tous les Pockets »