The MC4010 math coprocessor expands the limited MCxxxx family’s programming language by adding more complex mathematical operations.
In game description[]
Write a command sequence to any pin to instruct the MC4010 to perform a calculation. A command sequence (see table, right) consists of an operation code followed by one or two values. Once a complete command sequence is written to the MC4010, the result
register is updated with the result of the specified calculation.
Reading from any pin retrieves the value stored in the result
register. result
can be read any number of times.
In the following example, the command sequence 50 20 4
is sent to the MC4010 to perform the calculation 20 / 4 = __
. The result, 5
, is stored in the result
register and read back into the accumulator.
# x0 is connected to an MC4010 input pin mov 50 x0 # op code for division mov 20 x0 # write first value mov 4 x0 # write second value mov x0 acc # read back result (5)
Command List[]
Operation  Command sequence  result is set to:


Set  10 A 
A

Add  20 A B 
A + B

Subtract  30 A B 
A  B

Multiply  40 A B 
A x B

Divide  50 A B 
A / B

Remainder  51 A B 
(A / B) ;negative if A was negative

Modulus  60 A B 
A mod B ;negative if B was negative

Exponent  70 A B 
A^{B}

Square root  80 A 
Square root of A , rounded down

Min  90 A B 
Smaller of A and B

Max  91 A B 
Larger of A and B

Pin Configuration[]
Register  Purpose 

input

Holds operations and values until a complete command sequence has been sent. 
result

Holds the result of the last executed command. The value is limited to the range 999 to 999. 
Pricing[]
This part is for prototyping ONLY!
– Carl