-
1Using the calculators without compiling the code
1. Connect the hardware as depicted on second image
2. Download the sys0800.bit file
3. Set all switches on the baseboard to "off" (== closer to the edge of the board)
4. Use https://www.micro-nova.com/mercury-programmer to upload the .bit file to Mercury board
--- at this point you should see "logo" at the bottom of VGA screen, and red 0 at random location in the black band above --5. Press BTN3 to start calculator in TI mode. Keys are mapped as:
+ = A
- = B
* = C
/ = D
= = E
. = F
BTN3 = single step next
BTN2 = C[lear]
BTN1 = C[lear]E[ntry]
BTN0 = show upper 4 digits on baseboard 7-seg LEDs
6. Set SW7 to on to switch to Sinclair Scientific mode
7. Press RESET (button on mercury board) to reset, otherwise registers will contain garbage from TI mode
8. Press BTN3 to start in Sinclair mode. Keys are mapped as:
log/antilog = A
tan/arctan = B
sin/arcsin = C
cos/arccos = D
E == E
Down = F
BTN3 = single step next
BTN2 = C[lear]
BTN1 = Up
BTN0 = show upper 4 digits on baseboard 7-set LEDs
Happy calculations, and please report all the bugs! No promises about fixing them though... :-)
PS. If you want to see some of the internal workings, play with the switches and buttons. The declaration of top-level entity has some details:
entity sys0800 is Port ( -- 50MHz on the Mercury board CLK: in std_logic; -- Master reset button on Mercury board USR_BTN: in std_logic; -- Switches on baseboard -- SW(0) -- show trace on VGA -- SW(1) -- show debug data (program and microcode program counter) on 7seg instead of calculator data -- SW(2) -- enable microcode single stepping (use with BTN(3)) -- SW(3) -- enable calculator program breakpoints -- SW(4) -- (not used) -- SW(6 downto 5) -- system clock speed -- 0 0 1024 Hz -- 0 1 57600 Hz (close to original calculator frequency) -- 1 0 6.25 MHz -- 1 1 12.5 MHz -- SW(7) -- 0 TI Datamath -- 1 Sinclair Scientific SW: in std_logic_vector(7 downto 0); -- Push buttons on baseboard -- BTN0 - show upper 4 digits on 7seg LEDs -- BTN1 - CE[NTRY] key for TI and UP key for Sinclair -- BTN2 - C[LEAR] key for both TI and Sinclair (this is also "reset" for Sinclair) -- BTN3 - single step clock cycle forward if in SS mode (NOTE: single press on this button is needed after reset to unlock SS circuit) BTN: in std_logic_vector(3 downto 0); -- Stereo audio output on baseboard --AUDIO_OUT_L, AUDIO_OUT_R: out std_logic; -- 7seg LED on baseboard A_TO_G: out std_logic_vector(6 downto 0); AN: out std_logic_vector(3 downto 0); DOT: out std_logic; -- 4 LEDs on Mercury board (3 and 2 are used by VGA VSYNC and HSYNC) LED: out std_logic_vector(1 downto 0); -- ADC interface -- channel input -- 0 Audio Left -- 1 Audio Right -- 2 Temperature -- 3 Light -- 4 Pot -- 5 Channel 5 (free) -- 6 Channel 6 (free) -- 7 Channel 7 (free) --ADC_MISO: in std_logic; --ADC_MOSI: out std_logic; --ADC_SCK: out std_logic; --ADC_CSN: out std_logic; --PS2_DATA: in std_logic; --PS2_CLOCK: in std_logic; --VGA interface --register state is traced to VGA after each instruction if SW0 = on --640*480 50Hz mode is used, which give 80*60 character display --but to save memory, only 80*50 are used which fits into 4k video RAM HSYNC: out std_logic; VSYNC: out std_logic; RED: out std_logic_vector(2 downto 0); GRN: out std_logic_vector(2 downto 0); BLU: out std_logic_vector(1 downto 0); --PMOD interface --connection to https://store.digilentinc.com/pmod-kypd-16-button-keypad/ PMOD: inout std_logic_vector(7 downto 0) ); end sys0800;
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.