[ 3 / biz / cgl / ck / diy / fa / ic / jp / lit / sci / vr / vt ] [ index / top / reports ] [ become a patron ] [ status ]
2023-11: Warosu is now out of extended maintenance.

/diy/ - Do It Yourself


View post   

File: 36 KB, 1461x823, schemclip.png [View same] [iqdb] [saucenao] [google]
1687123 No.1687123 [Reply] [Original]

I'm working on designing a "homebrew" 6502 computer, and I have a good handle on most every component- except for the VDP.

I could live without video and go for serial/term output, but my goal is to have composite output. Additionally, I'm trying to avoid using an FPGA, AVR, Gameduino, or Propeller.

My goal is to use a TMS9918. It's well documented, but there are a few problems:

- It needs a specialized 10.738633MHz clock for NTSC sync, which I can't find on eBay or AliExpress
- It's built for DRAM, and while there's a SRAM glue logic solution that I'm trying to wrap my head around, I'm having a fair amount of trouble understanding it
- There are some timing differences between the 6502 and the VDP which I'm not sure how to handle
- I don't know if interrupts are required to make good use of the chip, and I'm not sure how interrupts work

Basically, I can understand the "instantaneous" components of the design, like the RAM, ROM, CPU, I/O chips, glue logic, etc... I can probably even handle a sound chip. However, the VDP portion of the design seems unusually complex.

If any anons have taken a stab at using a VDP with their "8-bit homebrew" computer projects, I would love to hear about it- and while I'm not looking for spoonfeeding, I am genuinely interested in the specifics of using a VDP.

>> No.1687125

(I'm aware the schematic is incomplete)

>> No.1687140

How do you plan to load the program into it?

Probably best to start with a serial terminal emulator like Putty on a PC or Gnome Terminal if on Linux. Still need a UART chip to convert parallel bytes to serial bits and vice-versa.

>> No.1687146

>>1687123
>I'm not sure how interrupts work

Don't let minor things like that stop you from designing a computer, anon.

>> No.1687157

>>1687140
I've got EPROMS a programmer, and an eraser. I'm comfortable with the wait times, I've got 10 EPROMS that I can cycle while programming.

>> No.1687170

>>1687123
>10.738633MHz
Digikey does have a few of those crystals.

https://www.digikey.ca/product-detail/en/cts-frequency-controls/MP107-E/CTX1443-ND/2637557

The frequency is three times the NTSC subcarier. Other multiples like 14.31818 MHz are a lot more common. Use that and divide by four instead of three.

>> No.1687207

Fuck, nice project man. Are going to implement your kernel as well?

>> No.1687217

>>1687157
>I'm comfortable with the wait times
Do yourself a favour and use pin-compatible SRAM for development like EEs used to in the old days before flash or EPROM. Design your system so you can write the firmware to SRAM while in-circuit instead of having to resocket EPROMs.
t. art of electronics
Do this and you'll wonder how you ever considered putting up with wait times.

>> No.1687686 [DELETED] 
File: 179 KB, 1024x640, hah.jpg [View same] [iqdb] [saucenao] [google]
1687686

>>1687146
gold

>> No.1687779
File: 1.32 MB, 4000x3000, IMG_20190923_221517.jpg [View same] [iqdb] [saucenao] [google]
1687779

Pic related is my computer i designed and built from the ground up, based around the 65c816 (an iteration on the '02). I started with a 40x4 character display, then built a terminal, and am now designing the graphics card (notice the yellow composite output already on the board) I've given a great deal of thought to this and I've come up with a couple solutions.

A: VLSI makes a composite chip you can talk to over SPI that has sram on it for a frame buffer and supports block move/copy. The only issue is some of the specs are still TBD and so the chip is a bit sketchy, although it's already been successfully used to generate video from an arduino. The model number is vs23s010

B: you can actually generate video off a microcontroller if you know what you're doing, a couple guys have gotten full color ntsc and pal out of very small avrs like the 168.

C: you could generate it using a DAC but you'd need very intimate knowledge of the spec to get any tv or monitor to latch the signal correctly.

D: you can try and dig up old chips like the one you've listed and get them to work, although those chips are getting harder to find and integrate, and many were very power hungry open drain designs that may give you problems.

Ultimately, the choice is yours, I'd recommend A or B, but I'd also recommend building a terminal setup first, so you can learn more of the intricacies of the computer (walk before you run)

A side note, theres a forum: 6502.org, devoted to building and designing these types of machines. There are some very helpful and knowledgeable people on there and they helped me get my project on the right track. I'd recommend asking your question there, and you'll find a couple similar posts, including my own, about how to generate ntsc video.

>> No.1687917 [DELETED] 

>>1687779
impressive, anon

>> No.1687930

simplest solution is to get a Apple ][ schematic and copy that part of it. then get a ROM and a commented disassembly, and copy that. even if you wanna write your own code, you can use subroutines from it to do complicated stuff like math functions (sin, cos, sqrt) and floating point routines. those are a bitch to do on your own.

motorola 6845s or 6847s can be botched together to work on the intersil. have seen schematics using the former.

>> No.1689816

>>1687930
>you can use subroutines from it to do complicated stuff like math functions (sin, cos, sqrt) and floating point routines. those are a bitch to do on your own.
Careful which bits you copy. The majority of the BASIC ROM was written by Microsoft. Apple just did the A2-specific stuff.