Calculator Extension Board
This extension board turns MyNOR into a calculator that can perform the basic math functions.
When I started developing my other project "MyCPU"
I just wanted to build a simple calculator out of discrete logic gates. But in the end the
project became a fully equipped, self-made computer system. With this extension board MyNOR
is now the calculator that MyCPU should became 20 years ago ;-)
The display and keypad are controlled in a multiplexed manner. This not only reduces
the number of components required, but also the number of needed I/O pins from MyNOR.
When the board is connected to MyNOR, MyNOR automatically detects the presence of the
board and enters the program loop to control the display and read the keys.
No application program needs to be uploaded to MyNOR, the calculator program is already
included in the EPROM.
Internally, MyNOR calculates with a 15-digit fixed point BCD number, with 8 digits
before and 7 digits after the decimal point. Additions and subtractions are performed directly
with the BCD number, while multiplication and division are performed with 48-bit binary
numbers. Converting BCD to binary, performing the calculation, and converting back to BCD
requires fewer ADD instructions than if the multiplication and division were
performed directly on the BCD numbers.
The calculator extension board can be populated in two ways: The usual method is
to populate all parts on the top side (component side) of the PCB (see the picture above).
This looks good, but it makes it difficult to integrate the two PCBs into a housing.
For this reason I have prepared the PCB so that the display and buttons can also be placed
on the solder side (see the picture below).
This makes it easier to attach a front panel to the board with openings for the display
and the buttons. I also added the ability to solder a different type of buttons to the
back side of the PCB. This enables a simple keyboard design, where you can simply place a
printed foil on top of the keys. The housing only needs to have a rectengular opening for
the foil, the buttons are operated through the foil.
MyNOR detects the type of assembly by sensing diode D3 or D4.
If you want to build your own calculator, please make sure to only populate one
of the diodes at the appropriate location, depending on which side of
the board you want to populate the display and the buttons.
Schematics and BOM
Click on the schematics to see it in full resolution (PDF).
You can get the design files in the download section.
All components can be sourced from
A great PCB manufacturer is JLCPCB (China).
All you have to do is upload the zip-file that contains the Gerber data to JLCPCB.
|C1||100µF / 16V|
|D1 D2||LED 3mm, red (only one LED needed)|
|D3 D4 D5 D6 D7 D8||BAT41|
|J1 J2||Header 2x10 pin, 2.54mm|
|Q1 Q2 Q3 Q4||BC327|
|R17 R18 R19 R20 R21||1 kOhm|
|R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16||150 Ohm|
|SW1 SW2 SW3 SW4 SW5 SW6 SW7 SW8 SW9 SW10 SW11 SW12 SW13 SW14 SW15 SW16 SW17 SW18 SW19 SW20||push button 6x4.3mm|
|SW21 SW22 SW23 SW24 SW25 SW26 SW27 SW28 SW29 SW30 SW31 SW32 SW33 SW34 SW35 SW36 SW37 SW38 SW39 SW40||If SW1-SW20 are not used:|
push button 11.4x11.4mm (Schurter 1241.1600.11)
|U1 U2 U3 U4 U5 U6 U7 U8||SA39-11SRWA|
Finally, this is the calculator I wanted to build 20 years ago: