• *Deep Dive Into CRTC*

    Dave's Dev Lab4 days ago 0 comments

    As part of my video card project, i've been digging into the datasheets for some of the various Cathode Ray Tube Controler chips (CRTC) used on early video cards. the MC6845 is the "gold standard" for these chips. there are a bunch of variations on these chips, and while most websites and hackers will tell you they are identical, that isn't exactly true. The MC6845 and HD46505 (and HD46505R) having a clock limit of 3MHz. While the R6545 has 2.5MHz and the R6545E has a limit of 3.7MHz. Hitachi renamed their HD46505 to HD6845, but there was another change that happened at the exact same time. Hitachi made the HD6845S with 3.7MHz support! so why is this clock limit important? to support 640x400@70Hz, you need a pixel clock of 25.175MHz. that clock is then divided by 8 to provide the clock to the CRTC. in this case the divided clock would be 3.147MHz, outside of the maximum clock range for the standdard 6845 chip. so watch out for ebay sellers who have listings for HD6845S, but are selling you a HD46505, because the specifications are NOT the same. if you want to get 3.7MHz support, you will need a HD46505S, HD6845S, or R6545E.

    http://www.6502.org/users/andre/hwinfo/crtc/crtc.html#horizontal
    https://en.wikipedia.org/wiki/Motorola_6845

  • ‚Äč BIOS ROM Extension Working!

    Dave's Dev Lab09/06/2019 at 21:07 0 comments


    After some hacking around with some x86 assembly and reviewing some example code from the EMS Flash Board project, I was successfully able to get my hijacked video int10h working! It's been a long time since I felt such excitement in seeing a DOS prompt!
    NOTE: now that I have it working at this level, I have to decide where to go to next.... color/attributes support? VGA support? DVI-D? graphics?

  • Video Test Successful!

    Dave's Dev Lab09/02/2019 at 23:30 0 comments

    After a couple hiccups with some direction control signals and some code tweaks for the memory address decoding, I've been successful in writing data to the LCD panel! Next phase of testing is to use the boot-rom card to register the LCD panel as a CGA black-and-white display at 60x34 characters....

  • Video Test Pattern on LCD!

    Dave's Dev Lab08/20/2019 at 03:02 0 comments

    After doing a bit of debugging, I was happy to see data on the LCD panel! The test pattern data is just a cycle through the 0 to 255 ASCII characters. the LCD display is a 480x272 pixel display. using the 8x8 character from the CGA/MDA ROM, give me a character resolution of 60x34. Couple of minor issues interfacing to the LCD. The LCD is expecting negative triggered VSYNC and HSYNC, but the MC6845 is outputting positive edge VSYNC and HSYNC. i had to cobble on some inverters. The datasheet for the LCD indicates that it can work without Data Enable (DE), but i wasn't able to get that working, so I needed to connect the DE from the MC6845 to finally get it working! on to the next phase!

  • We Control the Horizontal and Vertical!

    Dave's Dev Lab08/13/2019 at 01:07 0 comments

    The first of the MC6845 based video test boards is assembled and working! I am able to write to the registers on the 6845 to set both the horizontal and vertical timing which I was able to verify with my oscilloscope. Earlier in the week I installed Open-Watcom and setup an environment where i could compile DOS executables on my linux desktop. once that was working i created a simple iotool that allows me to read/write to port addresses from the DOS prompt. The original IBM designers left port 0x300 to 0x31F available for prototype cards, so i'm currently mapping the 6845's registers to 0x300 and 0x301 using a GAL16V8. after doing a series of tests, i'll order up the next board which include a Data ROM and a Character ROM.