In a pleasant past, Aart Bik
learned programming on the
Casio FX-700P
programmable calculator (later followed by a
Commodore 64).
This calculator is powered by a 455KHz HD61913 processor and
features 2KB RAM, with exactly 1568 bytes available for BASIC programs.
Output can be printed with the Casio FP-12 mini thermal printer and
programs and data can be saved and loaded
using the Casio FA-3 cassette interface.
After more than 25 years, all these devices are still
functional. In fact, the FX-700P still serves as Aart's desktop calculator.
As can be seen on the picture, the built-in battery of the FP-12 was exhausted after so many years and had to be replaced by an improvised external battery holder. But after that, it still produces those cute little thermal print-outs!
The FA-3 also still functions, although
unfortunately Aart could not read back his programs from times
gone by. Time had taken its toll on those old cassettes.
Writing and reading new cassettes works fine though.
The BASIC of the FX-700P only supports one-dimensional arrays. Array elements are aliased onto 26 scalar
variables and other array elements in the following manner (DEFM 1 and up extends the memory for variables at
the expense of memory for BASIC programs; up to 222 variables, not counting the special $ variable). This
aliasing allows for interesting programs where array elements with a constant index are accessed through
a scalar variable.
DEFM 0 : A = A(0)
B = A(1) = B(0)
C = A(2) = B(1) = C(0)
.
.
X = A(23) = B(22) = C(21) . . = X(0)
Y = A(24) = B(23) = C(22) . . = X(1) = Y(0)
Z = A(25) = B(24) = C(23) . . = X(2) = Y(1) = Z(0)
-------------------------------------------------------------
DEFM 1 : A(26) = B(25) = C(24) . . = X(3) = Y(2) = Z(1)
.
.
DEFM 196: A(221) = B(220) = C(119) . . = X(194) = Y(195) = Z(196)