casio fx-700p

this was a real classic. one of the first basic programmables and very versatile too.

only 1536 bytes of program storage, they were useful enough for a large repertoire of programs. there were program shortcuts like IF x>=0 THEN 20. rather than GOTO 20. all keywords tokenised and were on actual keys to accelerate program entry.

26 memories by default (ram could be partitioned) labelled A thru' Z.


interestingly, the named memories A-Z could be addressed using the array operator, so A(0) = A, A(1) = B, A(2)=C and B(1)=C and so on. at first, this seems weird, but pretty soon this trick could be used to save a lot of storage by using the appropriate letter whenever the array index was constant.

here's an example program:

20 H=1:A=-1:B=2
30 N=EXP 5.5/SQR 5.5
40 W=N/2:Y=.5:X=1:U=1
50 X=X*(Z+(1-U))/(Z+U)
60 N(U)=Y*EXP(U+5.5-LN(U+5.5)*(U+.5)):Y=Y*(U+.5)
70 FOR V=0 TO U:W=W+X*A(V)*N(V):NEXT V
80 IF U=6 THEN 130
90 T=A:FOR V=0 TO U
100 H(V)=2*T-H(V):T=B(V)
110 B(V)=2*H(V)-B(V):NEXT V
120 A=-A:U=U+1:GOTO 50
130 T=Z+.5:T=2*W*EXP(T*LN(T+5)-T-5)/Z

this computes the gamma function of the prompted input. it uses all 26 memories and exploits memory aliasing heavily.