sburrow wrote:
First off, great job Marco! Excellent work, I love it, and watch out because I'm right behind you
Thanks, Chad—I've been following your work with great interest as well, and it's great to see all the progress!
Quote:
I just soldered my 'sync' board recently (also using '163s), and I used H799 and V524 and it works great. No issues at all there. Like George is saying, if you are using sync counters then you will probably want to use: H639, H655, H751, and H799, always one less than the value you were thinking. Same goes for the vertical timing. If you are using an EPROM for these signals, it should be easy to at least try that out?
The challenge in my design is that the sync EEPROM runs at 1/8th the clock (~3.14MHz). I do pulse the reset line on the very last byte of the sequence, but that's still 7 pixels behind where the monitor will believe the frame should end. I'm going to try switching to '161s and then pulsing the sync bit at the beginning of the next frame to see whether that makes any difference (for better or worse).
Quote:
As for the second bug, I think I agree with George, and I'm likewise making some modifications to my own future plans because of this. Thank you!
Yes, indeed, I think he's right on the money on that one as well.
Quote:
So I see you have 320x480 right now, and you want to go to 320x240? AND you want to minimize use of RAM? This was a big battle in my brain for a long time. I found a way using 'pixel counters' alongside the 'horizontal' and 'vertical' counters. So on 4 additional '163s just tie CEP to H-BLANK, and then tie /MR to V-BLANK (plus or minus whatever logic/inverters). That way you only count pixels in visible space, and you leave it in reset mode until you are ready for pixels again.
That's exactly what I have in mind. The objective is primarily to minimize the amount of RAM needed so that the 6502 (or the PIC) doesn't have to push too much around to animate things. Right now, it takes many seconds to clear out the entire screen, which is not a great experience
Quote:
On my future design I tossed that idea entirely and went back to what George and everyone else does: overscan with RAM. You want 320 x 240? Just use RAM for 512 x 256. This makes the 240 SO much easier to obtain without that 'pixel counter' idea from above. Sure it's a waste, but whatever.
That's what I did here as well, because it leads to simpler design choices, which really helped while I was trying to learn how things work. Ultimately, though, if I find a way to, I'd really like to halve the vertical resolution, because I think it'll make for better graphics performance. I also suspect that I will want to add a text-only mode, because vertical scrolling with this solution… ain't happening
Quote:
I see you are using 25ns RAM. I'm planning on using 55ns SRAM for my design. My sync board has 55ns RAM and I don't see anything wrong with it right now. I, like you, am writing to it only during blanking periods, so there shouldn't be conflict while it's trying to display. I'm sure your PIC18 handles all the nitty gitty's, but I'm planning on tying V-BLANK to /NMI and hoping for the best!
Agreed—I just really wanted to eliminate as many variables as possible, given how little experience I have with figuring out the timing of a circuit. I have some 55ns memory on hand as well, so maybe I'll try it for the next iteration.
Quote:
Lastly, you are wanting to put this on a 6502 board eventually? Bill (plasmo) does a section of the memory map, banked, just for this video RAM. I'm also doing that in my current design, but my next one will be a 'latch' design: everything going through just a couple of bytes of I/O space, or even through a 6522.
Yes, eventually I would like this to be part of my SBC. Right now I'm leaning towards a completely uncoupled approach, where the 6502 communicates with the PIC, and then the PIC deals with the video part. I don't know how I feel about paging banks in and out of the 6502's main memory, TBH… on one hand, I don't want to stray too far from the 8-bit spirit, but on the other a lot of computers from the 1980s era had graphics co-processors, so I don't feel
that bad about my little PIC
Thanks again for all your comments and help!