Compatibility Between Models
#1
Posted 09 February 2007 - 06:00 PM
(When visiting pages hosted by Lycos, if adverts obscure the page then press the reload button on your browser.)
Limitations of Early 9850 Models
-------------------------------------
* On the early 9850G models the Plot command if used just prior to a Text command.
e.g. Plot 1,1: Text 10,10,"HELLO" will plot a point just above and to the right of "HELLO" instead of at 1,1.
* On the early 9850G models the Text command won't display anything until the next graphics command is
reached. Force it to display by adding PxlTest 1,1 or Text 1,1,"" after each occurance of a Text command.
* On the 9750G, 9850G and 9950G dimensioning a list or matrix from within a program required tricks with
the Seq( or Identity commands. The GB and later models can setup the dimension using the Dim command.
* The Drawstat command can speed up graphics but it behaves slightly differently on different models.
New Features shared by the Algebra FX 2.0 and 9860
-------------------------------------------------------------
* The Afx and the 9860 can accept user input into Vars Graph Y and f-mem.
* The Afx and the 9860 can append a new item to the end of a list simply by using the index of
the next element: e.g. 1->List 1 when only 3 elements currently exist. Similarly the Afx and the 9860
can add two lists together using Augment(. On previous models these things required tricks with the Seq(
command.
* Compared to the 9850, the 9860 has additional complex number capabilities:
The 9860 can store complex numbers in lists, and use them with log, ln, e^, 10^, sqrt, and ^.
The Afx can also store complex numbers in matrices and use them with the trig commands.
* Afx and 9860 programs can setup and convert the display format for fractions and for complex numbers,
and have the commands ClrMat, EngOn, EngOff, minX, maxX, minY, maxY, VarList, ZoomAuto,
and three sets of reccurance relations and predetermined lists of pseudo random numbers.
9860 Specific Features
--------------------------
* The main new 9860 commands are: logab(, RndFix(, spreadsheet cell commands and commands for
sketching different line styles: dot, broken, thick or normal.
* The 9860 runs much faster than previous models, so loops should contain dummy statements such as
For 1->A To 100, to slow it down to the same speed and allow Getkey to detect only one press at a time.
On the other hand this speed opens up new possibilities for a program to do calculations that previously
would have taken an unfeasibly long time.
-----
And finally ... the cfx models have colours while the 9750, Afx and 9860 are black and white.
The early 9850s had 32k ram, later models had 64k, the Afx has 128k and the 9860 has 64k.
#2
Posted 10 February 2007 - 04:51 PM
I never use a dummy FOR loop to allow getkey to detect only one press.* The 9860 runs much faster than previous models, so loops should contain dummy statements such as
For 1->A To 100, to slow it down to the same speed and allow Getkey to detect only one press at a time.
I use a double while loop :
Do LpWhile Getkey≠0 Do Getkey->A LpWhile A=0Then you don't have to wonder if your FOR loop is too long or too short AND you can use it with any calc, whatever its speed.
In the basic, there is a compatibility problem when you press twice EXE' /> to get a new line.
?->A
A
This will work on 9860, but not on 9850
#3
Posted 11 February 2007 - 11:09 AM
#4
Posted 11 February 2007 - 01:36 PM
#5
Posted 11 February 2007 - 08:22 PM
I've noticed the Ran# command is different on the 9860
Yes, the Ran# space was spotted by CFX Master.
Click on the above link about pseudo random numbers.
In the basic, there is a compatibility problem when you press twice EXE' /> to get a new line.
That's a curious feature. Checking the Afx, it turns out that it does this too.
Did casio deliberately introduce this feature or is it a bug?
About Getkey:
I wrote a game for the 9850 called Pax
where you move the character around which is detected by Getkey, but at the same time there is
a timer counting down to zero. On the 9860 when you move the character it zooms right across the screen instead of being able to control it one move at a time.
I haven't rewritten it yet, but I'll see if I can incorporate the LpWhile method.
There is also the problem that it was written for the 9850G which has the cursor keys on 4 separate buttons whereas the 9860 and most other models have a single button which makes things clumsy to control.
Need to introduce user-defined keys or just use the number keys instead.
#6
Posted 13 February 2007 - 03:25 PM
Do LpWhile Getkey≠0 Do Getkey->A LpWhile A=0
TyYann, that code gets stuck in the first loop. Did you mean LpWhile Getkey=0 ?
With this code you can see how many times a button is detected
if you leave your finger on the button too long:
Locate 1,1,"Getkey" Locate 1,4,"TIMES PRESSED" 0->X Lbl 1 ' Do LpWhile Getkey=0 Do Getkey->A LpWhile A=0 ' Locate 1,2,A Isz X Locate 1,5,X Goto 1
This code doesn't seem to work on the 9860 emulator though, because clicking and holding down on one
of the keys does not keep sending keypresses, and this behaviour also means that the emulator takes one click for the first loop and then another for the second loop and therefore doesn't display each keypress.
Btw, what about the new commands RclCapt and >DMS ?
What about the special characters? Does the AFX support those?
And don't forget the new setup things:
The Afx accepts "Test"?->fn1, one-sided intervals and has >DMS and all the setup stuff except for Y=DrawSpeed.. and has the same RclV-Win behaviour.
However, the special characters are 9860 only as is List 1[0] as is RclCapt.
#7
Posted 14 February 2007 - 04:34 AM
No, the first loop is meant to wait until no key is pressed, what people usually do with a For loop instead.TyYann, that code gets stuck in the first loop. Did you mean LpWhile Getkey=0 ?
On 9850, there is a Stat graph called MeanBox that doesn't exist any more on 9860...
#8
Posted 14 February 2007 - 12:20 PM
List ?[Mat ?[List ?[X],Mat ?[A,B]]]
That's a good one.
List or Matrix elements used as a List or Matrix index.
Checking the afx .... yes - the afx does this too.
---------
@ TyYann
Do LpWhile Getkey≠0
This code doesn't work on the cfx models that I've tested.
On the cfx Getkey≠0 doesn't evaluate to 0 when Getkey=0
so the loop is never exited.
Try this code to see what I mean:
Do Locate 1,1," " ; 2 spaces Locate 1,1,Getkey Locate 1,3,Getkey≠0 LpWhile Getkey≠0
Another bug in the cfx.
-----
The original 9750G/9850G/9950G did not have TVM Finance mode or the stats tests and distributions.
All the later plus, GB, GC etc models have Z,t,chi F tests and anov and distributions.
However on the 9850GC+ the VARS STAT menu has the submenus: PTS, TEST, RESLT
but the AFX2+ only has the submenu PTS,
and the 9860 doesn't have any of these submenus.
#9
Posted 14 February 2007 - 07:52 PM
I don't think so. Or I don't understant what you mean.On the cfx Getkey≠0 doesn't evaluate to 0 when Getkey=0
so the loop is never exited.
Another bug in the cfx.
Try your program, but when you launch it, keep the EXE' /> key depressed, then release it. After a few tries you will get some zeroes on your screen.
Let's test the Getkey value with this :
1->A
Do
(Getkey≠0)?1->A
LpWhile A≠0
A
You will see that Getkey≠0 evaluates to 0 when Getkey=0
Actually, you can event try this :
Do
LpWhile Getkey
(actually a better version for the loop)
Try it, and, the same, when you launch it, keep the EXE' /> key depressed, then release it.
The idea of the first loop is to empty the buffer, waiting until no key is pressed, then, let the second loop wait for a key to be pressed, avoiding this way unwanted repeating of a key. Of course, if no key is depressed, the first loop is skipped right away.
#10
Posted 14 February 2007 - 08:44 PM
Do
LpWhile Getkey
(actually a better version for the loop)
Yeaaaahhy !! This works on the cfx !
I understand now what you originally meant.
This allows one keypress at a time no matter how long you hold the key down.
-----------------------------------------------------------------------------------------------------------------------
Do
Getkey->A
LpWhile A≠0
This also works.
-----------------------------------------------------------------------------------------------------------------------
Do
LpWhile Getkey≠0
But this doesn't work on the cfx.
You don't believe me ? Try it.
-----------------------------------------------------------------------------------------------------------------------
#11
Posted 15 February 2007 - 02:57 PM
You are right, it doesn't work on my CFX-9850 . , althought it works on fx-9860. Does it work on fx-9750 ? Probably not, but I'd like to have confirmation.-----------------------------------------------------------------------------------------------------------------------
Do
LpWhile Getkey≠0
But this doesn't work on the cfx.
You don't believe me ? Try it.
-----------------------------------------------------------------------------------------------------------------------
Also, I have a tendency to put CFX and fx in the same category vs AFX, because between CFX-9850 and fx-9750 there is not much difference. But it's actually a mistake, everybody knows there is a huge difference between fx-9750 and fx-9860... I'll be more carefull
#12
Posted 18 February 2007 - 08:10 AM
* There are also the french models to consider.
* Scratty's FX-GL raised some compatibility issues. Need to go back and document them.
* Most of the time trailing brackets can be omitted:
e.g. {1,2->List 1
3->List 1 br /> Int (A+B
However on some models the Pol( and Rec( commands need to have closing brackets.
e.g.
Pol(1,1->List 1
produces different effects depending on
whether List 1 exists, if it has dim=2 and what the values in List 1 are,
but it doesn't actually alter List 1 or List Ans.
On the 7400 and cfx models there are weird effects.
On the 9860 and the Afx, Pol(1,1->List 1 works fine.
Another example where trailing brackets are required is List->Mat(
although again the 9860 and the Afx handle this with no problems.
#13
Posted 23 February 2007 - 11:31 AM
Also the Plot and Text bugs of the 9850G are not present in the 9750G.
#14
Posted 14 April 2007 - 11:11 AM
As does reaching the end of a subroutine after jumping out of a loop.
e.g.
---------------------------------------
Program "AA"
----------------
Prog "BB"
---------------------------------------
Program "BB"
----------------
Do
Goto J
LpWhile 1
Lbl J
---------------------------------------
This doesn't cause an error on later models such as the 7400G-Plus or 9750G.
#15 Guest_Guest_*
Posted 05 April 2009 - 04:22 PM
"DAT"->List 1 31337->List "DAT"[1] List "DAT" | <- Was this possible before OS 2.00?
#16
Posted 09 April 2009 - 06:13 PM
No it doesn't work on earlier 9860 versions.
"DAT"->List 1 works but List "DAT" doesn't.
I wonder if the new 9750GII and 7400GII will have 9860 style list functions like "DAT"->List 1, "DAT"->List 1[0]
and 77->List 1 when List 1 only has 1 element.
And if 'you know who' is reading this, then "HELLO AGAIN". The flow of this thread is a bit disrupted after you deleted your posts.
Edited by 2072, 09 April 2009 - 08:04 PM.
0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users