Carte Blanche

HDMI

                                                                      

The Carte Blanche has a connector for peripheral boards.  In 2012 Steven Howell designed and produced a board for the Carte Blanche that allows HDMI - DVI - Audio output.  Steve also wrote bitstreams for the board.  For more information click here.

I decided to write my own Apple IIgs bitstream for the HDMI board based on my 12-bit code for the Apple IIgs (version 9.20) with some improvements from my latest //e code (version 3.02).  My bitstream is for the 250 version of the Carte Blanche.  The video code for HDMI / DVI is very similar to my 12-bit code.  One difference is that the  HDMI board can output either 12 or 24 bit color.  The Super Hires Graphics modes use 12 bit color but I decided to use the 24 bit color mode.  To do that I set the lower 4 bits of each 8 bit color (Red, Green & Blue) to the corresponding 4 bits produced by the 12 bit code.  The higher 4 bits are a duplicate of the lower bits.      

assign RED = {hdmi2[11],hdmi2[10],hdmi2[9],hdmi2[8],hdmi2[11],hdmi2[10],hdmi2[9],hdmi2[8]};
assign GREEN = {hdmi2[7],hdmi2[6],hdmi2[5],hdmi2[4],hdmi2[7],hdmi2[6],hdmi2[5],hdmi2[4]};
assign BLUE = {hdmi2[3],hdmi2[2],hdmi2[1],hdmi2[0],hdmi2[3],hdmi2[2],hdmi2[1],hdmi2[0]};

This seems to produce the correct colors.

Another difference is the HDMI board needs a frame enable signal so that it can create its own horizontal and vertical blanking.  In the old code the horizontal and vertical blanking are created in the FPGA code.  The HDMI frame enable signal is high when the color data is being sent to the HDMI board and low when it isn't.  To get a stable output I had to register the frame enable signal.

reg frame_enable_reg = 0;

always @(posedge clk50)
    begin
    if (clk1)    // 25MHz clock (pixel clock)
        begin
        frame_enable_reg <= ~((h_count > 639) | (v_count > 479));
        end
    end

wire h_blank = (h_count > 639); // horz blanking
wire v_blank = (v_count > 479); // vertical blanking

The pixel clock, horizontal sync and vertical sync, which are also needed for the HDMI board, are the same for both 6-bit VGA and the 24-bit HDMI. 

The picture quality for the HDMI is similar to the previous released //e version (c302) and slightly better than the IIgs version (c920) so it has the same limitations and most of the same bugs.  The 6-bit VGA output is more like that in the //e version c302 which supported SHR, so it has a better looking SHR 640 mode.  The faster flashing available on //e version c302 is now available on this Apple IIgs version (c931hdmi).  You should not use the cbconfig program that came with the //e version.  It would cause a bus conflict and anyway it is not needed with the Apple IIgs since the settings are kept in the battery RAM.

If you are lucky enough to own one of the HDMI boards for your Carte Blanche card you now have another option for your Apple IIgs video.  

Note:  The HDMI version should not be used with the 12-bit VGA connector in place.  The peripheral board connector and the IDE connector used by the 12-bit mod share several pins.  I have created a separate version for the VGA 12-bit mod.  In either case you still have the original 6-bit VGA output.

The HDMI output was sent to my Samsung SyncMaster 940MW via an HDMI cable and an HDMI to DVI adapter. 

I did all the testing on an Apple IIgs ROM 01 with 4 MB of RAM, an 8 MHz ZipGS, a 3.5" floppy drive in the smartport and a CFFA3000 card.  The Carte Blanche card was in slot #1 (the mother board was modified by soldering a wire connecting pin #35 of slot #3 to pin #35 of slot #1).  If you don't want to make this modification you must have the Carte Blanche card in slot #3.  On a ROM 03 you can use any slot except slot #7. 

A newer HDMI version (9.33hdmi) is available with higher resolution and SHR 640 with solid colors.  For more information see the next page.

April 5, 2014