Overview

This is a graphing calculator based on a modern variant of the classic 6502 processor. Graphing calculators have been produced by companies like Texas Instruments that use classic processors like the Z80 and M68000 but never with a 6502. The Z80 needs about three times more cycles than a 6502 to accomplish the same work, so hopefully this calculator running at about 10MHz will be more powerful than one of TI's Z-80 based calculators running at 6 or 14MHz.

Software

All of the software will be in written in assembly. My plan is to use my 6502 Virtual Trainer to test the code as I write it. The calculator will use RPN and algebraic modes. Calculations will be done in BCD format with floating decimal point using the 6502's BCD mode. On board programming will probably be similar to BASIC or Forth.

Hardware

Along with the 65C02 there will be an ATF1508 CPLD for memory mapping and buffering signals for peripherals. The memory map will look something like this:

0000-07E8: Bank 0 of SRAM (~2k)

07E9-07FF: Memory mapped peripherals

0800-7FFF Bank A of SRAM (30k)

8000-F7FF Bank B of SRAM (30k)

F800-FFFF EEPROM (2k)

The first 2k of memory will map to bank 0 so that there will always be common scratch memory, zero page, and stack. Banks A and B will point to 32k pages of SRAM and their address will be controlled as memory mapped peripherals. Hopefully having two different windows into the SRAM will be a convenient way to copy data without losing speed by switching the page between copies. It will also be possible to use one window for different data accesses and another for program memory.

In addition to peripherals that will control the RAM pages, there will be buffers for reading the keypad and LCD as well as communicating with an SD card. The keypad will have between 40 and 60 multiplexed keys. The LCD is color and 3.2 inches with 320x240 resolution.