gfoot wrote:
sburrow wrote:
But you're right, you'd need to choose well. Generally the diode will have a fairly specific voltage drop. One option here is to go very simple and just make a regular voltage divider for each channel, but also connect each output to the intensity input through a diode with a low voltage drop, e.g. 0.3V (note this is lower than you get from most silicon diodes). This means that your high-intensity output will be at 0.7V, and your low-intensity output will be 0.3V lower, i.e. 0.4V. This would probably look quite good - a little too dark perhaps. Here's an example of that:
https://falstad.com/circuit/circuitjs.h ... FIJs0s+iAAAttachment:
The attachment circuit-20220428-1803.png is no longer available
Another option is to do the diode bit at a higher voltage range, then divide down again afterwards. My old circuit kind of already does that by having the extra 220 ohm resistors before the output goes to the monitor. In this case you can use a diode with a higher voltage drop and still get a good result like this:
https://falstad.com/circuit/circuitjs.h ... kxCNJvmwgAAttachment:
The attachment circuit-20220428-1803(1).png is no longer available
I can't vouch for this being a good idea though, and you will need diodes that can switch fully at the right frequency.
Looks great George, thank you. Yes, that's what I'm thinking about. I'm still debating if I should go with all resistors (your previous model) or the one with diodes (this model). I also experimented with RRGB 4-bit colors, and what that would look like using GIMP. I really like that one, it gives a REALLY nice variety, but it doesn't have grey, so... take some, lose some.
Sorry my link is full of silly extra switches. I have 7 shift registers going into these 3 colors, and I have to account for all the extra grounded values. 330 ohms total is the sweet-spot for each of my three 'color modes' it seems, so I change accordingly.
Onwards:
Attached is my new Monitor demo! And the requisite picture of course.
It is a funny little thing, not optimized at all. Simple commands:
(XXXX) changes the 'cursor' location
[XXXX..YYYY] changes the 'selection' locations
XX YY ZZ writes hex values into memory, starting at the cursor location
M moves memory from the selection area to the cursor location and beyond
R runs (rather, it JMP's) to the cursor location
You can get really funky with it too, with weird commands like:
[80.81(40]FFMR
I don't know exactly why someone would want to do something like that, but it is possible I suppose
The idea is that it doesn't "break" if you put weird things in there, it just does its thing.
You can also use the arrow keys to move the cursor around, and the page up/down keys to, well, move the current page.
It is VERY slow because I basically re-draw the entire screen each time I move or hit enter. There are ways to make it faster, but I just don't care to do that for this initial demo.
I would eventually like to add Assembly commands, and De-assembly of course. But first, I want to add:
L load from audio input into the selection area
S enters 'SPI mode', a separate interface or something
G lists the games on ROM and lets the player select one
Those commands are soon to come! I want to try to load my bird into RAM, and see how long that takes. Will be interesting to see.
Next piece of pure hardware to check is the RAM and ROM banking. After that... well, Tetris?
Oh, and I know I haven't improved my coding techniques at all, sorry about that. Most of this code was actually written a week ago, I just copy/pasted it in and fixed the bugs. I hope to improve my Assembly skill as I keep going with actual new code.
Thanks everyone! I appreciate the help and feedback.
Chad