Skip to main content
Home▸ Forums▸ 68kMLA▸ Homebrew microcomputers & video generation — #1
Post #1 by Grackle
Source Forum68kMLA
CategoryHardware
Post DateMon, 25 Feb 2013 - 04:29
Original URLhttps://68kmla.org/bb/threads/homebrew-microcomputers-amp-video-generation.27426/
Post
Hey all, I don't know if any of you remember me, but quite a while back I was interested in building my own 68k microcomputer. The best way to understand what I was shooting for is to imagine what an Apple II would be like if it had a 68k processor. Unfortunately, that path kinda petered out; 68k processors are expensive now, and I wasn't particularly happy with freescale's coldfire offerings. The ones with the peripherals I wanted were expensive and complex, and the architecture seemed a mess from an assembly language programmer's standpoint. I found those prospects uninspiring, and I lost interest.

Anyway, now quite a while later, I have picked up the project again. I took a liking to arm, and I decided to use the NXP LPC2420. It's a ROM-less ARMV7TDMI CPU in a 208 pin LQFP package, with an external memory interface that supports both static memories and SDRAM. It also has four external interrupts and a bunch of handy peripherals. Perfect!

Right now I'm trying to settle down on the details of the design and for the most part I have been able to make progress, but I'm stuck on the video generation hardware. Video framebuffers are big and they have to be moved around a lot. Maybe I'm just making a big deal out of something that isn't, but it seems daunting even with my 72MHz ARM processor, and that makes me wonder how Apple did it with their much slower 68k machines.

Consider 640x480@60Hz, 8bpp. If you update the framebuffer on every vertical refresh, that's 640*480 pixels * 8 bits per pixel / (1/60Hz), which equals approximately 17.5MB/s. NuBus can do 40MB/s in bursts, but it can only handle an average of 10 to 20MB/s. On an old NuBus Macintosh, that 17.5MB/s would be a considerable chunk of total bus bandwidth. So how did Apple do it? Is that all there is to it and they just dealt with the throughput fine, or was something else going on, like lower framerates and dirty rects and other trickery as necessary?