title: Casio FX-850P
text: # Casio FX-850P
  
  The Casio FX-850P is a scientific calculator introduced in 1987 and sold until 1999.
  
  ## Specifications
  
  * 2 lines with 32 5×7 characters LCD
     * (some indicators and a 5 digit 7-segment display)
  * 8 KB RAM (FX-860P: 24 KB, FX-880P: 32 KB)
  * CPU: VLSI at 1.228 MHz. Hitachi HD62002A01 (FX-860P, FX880P: HD62002A03)
  * Integrated speaker
  * Internal slot for memory expansion (32 KB)
  * Connector with support for RS232 and Centronics (only level converter for RS232, Centronics needed)
  * LCD Driver: 2 x HD66100F
  * 2x 3V CR2032 lithium batteries as main power supply
  * 1x 3V CR1220 lithium battery as memory backup (RAM power supply)
  
  User's manual at http://www.usersmanualguide.com/casio/calculators/fx-850p
  
  The calculator had a BASIC interpreter, MEMO function, a formula library. The built-in 8 kB memory could be expanded using the optional Casio RP-8 (8 kB) or RP-33 (32 kB) RAM expansion modules. An optional Casio FA-6 interface board provided a cassette tape recorder connector, a Centronics printer connector and an RS-232C port. The calculator could print data and listings on any Centronics printer; printing graphics required the Casio FP-100 plotter-printer.
  
  Later, Casio released the FX-880P, which had 32 kB built-in memory. With a RP-33 expansion module, this model could be upgraded to a total of 64 kB.
  
  The memory layout is:
  
  * 0000-00FF Screen memory
  * 0100-01FF Reserved for internal functions
  * 0200-02FF INPUT Buffer
  * 0300-03FF CALCJMP, VALF Buffer
  * 0400-04FF Reserved for IN/OUT/CALC modes (CALC$)
  * 0500-074A Reserved for internal functions
  * 074B-0752 Reserved for storing the user PASSWORD
  * 0753-175A Reserved for internal functions
  * 175B-175C Vector pointing to MEMO memory start
  * 175D-1FE4 Reserved for internal functions
  * 1FE5-1FFF Vectors pointing to P0-P9 memory start
  * 2000-9FFF User memory (shared by MEMO and P0-P9)
  * A000-BFFF Repetition of 0000-1FFF
  * C000-DFFF Repetition of 0000-1FFF
  * E000-FFFF Repetition of 0000-1FFF
  
  Memory area A000-FFFF was either available as user memory (if expansion was present), or would simply repeat the contents of 0000-1FFF
  
  A few glitches are:
  
  * POKE 1867,0 → would delete any user PASSWORD
  * POKE PEEK(8027)+256*PEEK(8028),32 → would recover contents of MEMO after a RESET ALL
  * POKE PEEK(8027)+256*PEEK(8028),26 → would hide contents of MEMO, much like a RESET ALL would do, but without losing the programs
  
  The internal function library was programmed in BASIC itself and could be extracted with a BASIC decompiler.
  
  Any function in the library can be executed from a regular BASIC program by using GOTO "LIB0:NNNN" where NNNN is the function number (e.g. 5010 for prime factorization). The command GOTO "LIB0:0400" executes a self-test program.
  
  Characters 252 to 255 were user defined. They could be defined by issuing the command DEF CHR$(n)="HHHHHHHHHH" where n ranges from 252 to 255 and the H's are 10 hexadecimal digits (5 bytes). Every byte defines the pixel pattern for a column. Since a column is 7 pixels high, the least significant bit of every byte is ignored.
  
  The CHR$(26) would activate a different character set for Katakana and Kanji characters. CHR$(27) would deactivate Kanji.
  
  Via a serial cable the calculator could connect to a PC or to another Casio FX-850P, allowing the transfer to MEMO and stored programs.
  
  