A relatively user friendly interactive 16-bit EEPROM programmer.
EEPROM is broken into 128 pages, each with 8 words of memory, corresponding to the size of a single ROM module.
Usage:
"Page Select" register controls which page is currently being accessed.
"Write Page" overwrites the active page with the contents of the entry ROM module.
"Display" outputs the current page to the LCD.
"Display After Write" register may be used to suppress displaying newly written pages, which may be useful for streaming since the programmer cannot read and write at the same time.
I'm using an EEPROM to replace combinational logic. The address is the decimal number in binary (or the counter). The data out is the 7-seg display (the leftmost bit is the decimal point).
Instructions
Set both buttons to off (RED). Now reset the sequencer and turn on button 1 and 2 (set to GREEN).
Button 1 controls the data fed to the displays.
OFF = Clear all displays ON = Programmed message
Button 2 controls the clock.
To change the message, dump the core or reset the EEPROM and rewrite the suitable data for the 16-Segment Displays. If the new message contains lesser or more letters/numbers to show, make suitable changes to the Sequencer and change the number of displays used.
An EEPROM Decoder with a 16 Segment Display
Original Creator: Payton
Link to project: Public 16 Segment Display Alphabet and Number Decoder Modular Circuit
EEPROM Code:
65289,12296,61120,64704,12736,56768,57280,49417,65472,64960,12361,64594,52992,64530,53120,50048,57152,13248,52242,51730,908,3840,13096,13092,65280,58304,65284,58308,56416,49170,16128,777,13061,45,42,52233,29762,5202,2688,2706,2689,16594,35218,898,2,2578,30,18,4802,642,2690,33680,33170,640,35202,2944,2562,513,4613,45,13392,2177,56786,38363,255,9,36,35584,29696,17554,34898,57666,3072,16,2
Anyway, This is a circuit where I'm using a Priority Encoder to do this. When you press the change button 2 times of actually turning it off, it will say "set" then, After 6 seconds, the "set" word will be gone. (Bonus: The binary shows up in two different ways. 1. Shows up as the 7 SEG Display's Dot. 2. Shows up as a 3-bit output.)
This was the final project for the college course Logic Design. The idea for the project was taken from CSE/EEE 120 Capstone Design Project Spring 2021, ASU, Tempe, Arizona, Prof. of Practice, Steven Millman (NXP).
Takes a 7-bit ASCII input and outputs 16 bits usable by a 16+1 segment display.
About the Combinox R1:
This is the third 16-bit CPU I have made. Its new name was inspired by the new combinational code. It is also my first computer to feature a graphics and base ten display. As a result of its brand new architecture, code, and clock it is much faster than my previous CPUs.
Directions for use:
Choose the desired EEPROM program and insert it into the slot. First press the "RESET" button. Now press the "ON" button and enjoy your program.
Descriptions of programs:
blank: A blank EEPROM to be coded.
count up forever: Counts up by one until it reaches 65,535 then loops back to 0.
2+2: adds 2+2 and displays the output to the number display
transfer from keyboard to display: Displays the ascii value of whatever key is being entered on the keyboard.
random noise: Displays random noise on the screen.
Fibonacci: calculates the Fibonacci sequence
Credits:
Sanderokian Stfetoneri - clock
Sanderokian Stfetoneri - 16 bit division
Overview
The STRING32000 is a 32-bit CPU. It reads and executes each instruction in 1 clock cycle like all the old string CPUS. It has addressed pins and can modify its own code. While this CPU usually needs special external circuitry to interact with complex outputs like the RGB LED matrix, these external drive circuits are just meant to store the bitmap being drawn on the screen. The overall unspecialized nature of this CPU allows it to address up to input and output 65,536 32-bit pins.
Self-modifying code
Probably the most exciting feature about this CPU is that it can write to its main memory, which is where its program is stored. This means it supports self-modifying code. Self-modifying code is the ability for the computer to alter its own code that it is running. This was very very annoying to get working properly.
Executing values in registers as instructions
The second most exciting feature of this CPU is temporary instructions. This means that the CPU can make a very temporary custom instruction and execute it while it's in a register instead of being in something permanent like main memory, which is much safer since it decreases the risk of accidental corruption of the program. This was mildly annoying to get working.
Memory
There are two memories, which are both 32-bit with 16-bit addresses. The main memory sits outside the CPU and is nonvolatile and stores the program to execute and data to save. The second memory is also located outside the CPU and is volatile and used to store temporary values that are needed when operating, for example cursor position. For the safety of the program and the user's mental wellbeing, the CPU cannot activate the reset pin on the main memory to delete its own program all at once, since if there was some dumb bug and the CPU deleted data that the user didn't have a copy of, that could result in severe depression because of how heartbreaking it would be for an entire program that you didn't have a copy of to be deleted in the blink of an eye. So yeah, better to be safe than sorry.
About the morbidly obese main memory
Since the only memory that can be edited by circuitry and be used as permanent storage (EEPROM) only supports up to 10-bit addresses and STRING32000 supports up to 16-bit addresses, I have decided connect 64 EEPROM, which in total supports up to 16-bit addresses, fully utilizing the CPU's address space.
STRING32 excel Assembler:
The documentation on how to program the CPU is in the assembler. To use it, you'll need to download it.
Link: https://1drv.ms/x/c/fa007333c2aab537/EUIHbqhMAVpLr7OQLWN3YP4BNOPuOfYEncFrDDHcGgUxyg?e=LO1VnA
-----------------------
This computer currently only runs one program where you can make 32x32 pictures in black and white, but I'll make more programs for it in the future.
Controls for 32x32 painter:
keyboard controls: WASD to move cursor, Q to display an image, E to toggle pixel between black and white.
stepper: Use to select the picture slot. There is a face drawn in slot 0
PWR and EN: toggle both on to run. PWR is the main switch and EN freezes the clock when disabled.
-----------------------
CREDITS:
Credit to Sanderokian Stfetoneri (author of Femto) for the fast clock circuit
FORK FOR BEST USER EXPIERIENCE
BOOM made a logic based EEPROM wadoya think