Documentation for DB15 to VGA adapters

joevt

Tinkerer
Mar 5, 2023
73
32
18
@alxlab I saw your designs but after I had made mine, so I figured I could share anyway. It's fairly large and there's plenty of room to solder easily even with limited skills (e.g. for me ;-) ). There's also a very basic 3D-printable shell. It's not subtle, but it does the job for me :)

In fact I was thinking about an even more trivial version, with just the two plugs and an hardwired configuration, but I haven't yet found a 'proper' way of auto-generating the schematics/PCB from the required sense configuration.
I wrote an app in Think Pascal in 1996 to generate sense line schematics. Each possible sense combination shows 4 schematics. The leftmost is probably the simplest. I suppose two diodes in parallel, one in each direction, would be equivalent to a wire.

There's 512 possible circuits (2(diode left {no,yes}) x 2(diode right {no,yes}) x 2(ground {no,yes})^3(sense line {0,1,2})) that produce 45 different results. Only some of those results correspond to a known display type. This is only for sense lines. Other stuff like sync on green or DDC passthrough for VGA is not included.
MonitorSenseLines.png
 

Attachments

  • MonitorSenseLines.zip
    92.8 KB · Views: 112
Last edited:
  • Like
Reactions: Paralel

joevt

Tinkerer
Mar 5, 2023
73
32
18

Code:
Examining the chart, including all the displays listed in IOMacOSVideo.h, we come up with these options:

====================================================================================================================================================================================================================================
Grounds  Diodes and wires     Sense-code
0g 1g 2g 1>2 2>1 0>1 1>0 2=0     Extended-sense  Apple enum                 VGA adapter setting name   Apple comment                     joevt comment
====================================================================================================================================================================================================================================
0g 1g 2g                      0, 0x00 (00 00 00) kESCZero21Inch             21" COLOR                  21" RGB                           RGB 21", 21" Color, Apple 21S Color     1152x870 100MHz         68.7kHz  75Hz
   1g 2g                      1, 0x14 (01 01 00) kESCOnePortraitMono        PORTRAIT                   Portrait Monochrome               B&W 15", Apple Portrait                  640x870   57.2832,4MHz 68.9kHz  75Hz
0g    2g                      2, 0x21 (10 00 01) kESCTwo12Inch              12" RGB                    12" RGB                           12" Apple RGB                            512x384   15.6672MHz   24.48kHz 60.15Hz
0g 1g                         4, 0x0A (00 10 10) kESCFourNTSC               NTSC                       NTSC                              NTSC underscan 512x384, overscan         640x480   12.2727MHz   15.7kHz  59.94Hz
   1g                         5, 0x1E (01 11 10) kESCFivePortrait           15" TILT                   Portrait RGB                      RGB 15", 15" Tilt                                  57.2834MHz
      2g         0>1          3, 0x31 (11 00 01) kESCThree21InchRadius                                 21" RGB (Radius)
      2g             1>0      3, 0x34 (11 01 00) kESCThree21InchMonoRadius                             21" Monochrome (Radius)
      2g                      3, 0x35 (11 01 01) kESCThree21InchMono        2 PAGE MONO                21" Monochrome                    B&W 21", Apple 2 Page Mono              1152x870 100MHz         68.7kHz  75Hz
0g       1>2 2>1              6, 0x03 (00 00 11) kESCSixMSB1                MULITPLE-SCAN 14"          MultiScan Band-1 (12" thru 16")   Multiple Scan 13, 14"                    640x480 67MHz, 832x624 75MHz
0g       1>2                  6, 0x0B (00 10 11) kESCSixMSB2                MULITPLE-SCAN 21"          MultiScan Band-2 (13" thru 19")   Multiple Scan 16, 17"                    640x480 67MHz, 832x624 75MHz, 1024x768 75MHz
0g           2>1              6, 0x23 (10 00 11) kESCSixMSB3                MULITPLE-SCAN 16"          MultiScan Band-3 (13" thru 21")   Multiple Scan 20, 21"                    640x480 67MHz, 832x624 75MHz, 1024x768 75MHz, 1152x870 75MHz
0g                            6, 0x2B (10 10 11) kESCSixStandard            13" RGB or HI-RES (12-14") 13"/14" RGB or 12" Monochrome     B&W 12", 12" Apple Monochrome, 13" Apple RGB, Hi-Res 12-14"  640x480 30.24MHz 35.0kHz 66.7Hz
         1>2 2>1 0>1 1>0      7, 0x00 (00 00 00) kESCSevenPAL               NTSC/PAL                   PAL                               PAL, NTSC/PAL (Option 1) underscan 640x480, overscan 768x576 14.75MHz 15.625kHz 50Hz
         1>2 2>1     1>0      7, 0x14 (01 01 00) kESCSevenNTSC                                         NTSC                              NTSC w/convolution (Alternate) 12.2727MHz
         1>2 2>1              7, 0x17 (01 01 11) kESCSevenVGA               VGA                        VGA                               VGA 640x480 25.175MHz 31.47kHz 59.95Hz SVGA (Super VGA) 800x600 36MHz 35.16kHz 56Hz, 1024x768 35.16MHz 60Hz
                         2=0  7, 0x2D (10 11 01) kESCSeven16Inch            16" COLOR                  16" RGB (GoldFish)                RGB 16", 16" Color                       832x624 57.2832,4MHz 49.7kHz 75Hz
             2>1 0>1 1>0      7, 0x30 (11 00 00) kESCSevenPALAlternate                                 PAL (Alternate)                   PAL w/convolution (Alternate) (Option 2) underscan 640x480, overscan 768x576 14.75MHz 15.625kHz 50Hz
                 0>1 1>0      7, 0x3A (11 10 10) kESCSeven19Inch            19" COLOR                  Third-Party 19"                   RGB 19", 19" Color                      1024x768  80MHz
                     1>0      7, 0x3E (11 11 10) kESCSevenDDC                                          DDC displaySev
                              7, 0x3F (11 11 11) kESCSevenNoDisplay                                    No display connected              no-connect
====================================================================================================================================================================================================================================


And these are the options for sync modes:
======================================================

                              10 Dip  6 Dip
Mode #: Description           Switch  Switch  DB15M(Mac)->HD15F(PC)
===============================================================================
Mode 1: Composite Sync (1) :  5       4       3->13
Mode 2: Composite Sync (2) :  56      45      3->13 15->13
Mode 3: Sync on V          :    7       6                  12->14
Mode 4: Sync on H          :   6       5            15->13
Mode 5: Separate Sync      :   67      56           15->13 12->14
Mode 6: Sync on Green      :                   
===============================================================================

3 dip switches for grounds (0g 1g 2g)
4 dip switches for diodes (1>2 2>1 0>1 1>0)
1 dip switch for a wire (2=0)
3 dip switches for sync modes (3->13 15->13 12->14) 

11 dip switches total.


If we only include displays listed for the 10 dip switch adapter, then we can get something like this:

                          Sense-code
0g 1g 2g 2>1 1>2 0=1 2=0     Extended-sense  Apple enum           VGA adapter setting name   
=============================================================================================
0g 1g 2g                  0, 0x00 (00 00 00) kESCZero21Inch       21" COLOR                  
   1g 2g                  1, 0x14 (01 01 00) kESCOnePortraitMono  PORTRAIT                   
0g    2g                  2, 0x21 (10 00 01) kESCTwo12Inch        12" RGB                    
0g 1g                     4, 0x0A (00 10 10) kESCFourNTSC         NTSC                       
   1g                     5, 0x1E (01 11 10) kESCFivePortrait     15" TILT                   
      2g                  3, 0x35 (11 01 01) kESCThree21InchMono  2 PAGE MONO                
0g       2>1 1>2          6, 0x03 (00 00 11) kESCSixMSB1          MULITPLE-SCAN 14"          
0g           1>2          6, 0x0B (00 10 11) kESCSixMSB2          MULITPLE-SCAN 21"          
0g       2>1              6, 0x23 (10 00 11) kESCSixMSB3          MULITPLE-SCAN 16"          
0g                        6, 0x2B (10 10 11) kESCSixStandard      13" RGB or HI-RES (12-14") 
         2>1 1>2 0=1      7, 0x00 (00 00 00) kESCSevenPAL         NTSC/PAL                   
         2>1 1>2          7, 0x17 (01 01 11) kESCSevenVGA         VGA                        
                     2=0  7, 0x2D (10 11 01) kESCSeven16Inch      16" COLOR                  
                 0=1      7, 0x3A (11 10 10) kESCSeven19Inch      19" COLOR                  
=============================================================================================
That's 7 dip switches for the sense-codes and 3 dip switches for the sync but there's only 9 dip switches specified in the 10 dip switch instructions.
We need to map the dip switches to figure out how they did the above with only 6 dip switches for the sense-codes.
See https://68kmla.org/bb/index.php?threads/mac-to-vga-monitor-adapter-struggles.45423/post-502564 for the solution.
The first 3 dip switches are not switched to ground - they are switched to a common which can be tied to ground using dip switch 4.
This eliminates the need for separate 0=1 and 2=0 dip switches so we get this:

    Dip Switches
---------------------    
 1  2  3  4  8   9                Sense-code
s0 s1 s2  g 2>1 1>2   Dip Switch     Extended-sense  Apple enum           VGA adapter setting name   
=====================================================================================================
s0 s1 s2  g           1234        0, 0x00 (00 00 00) kESCZero21Inch       21" COLOR                  
   s1 s2  g            234        1, 0x14 (01 01 00) kESCOnePortraitMono  PORTRAIT                   
s0    s2  g           1 34        2, 0x21 (10 00 01) kESCTwo12Inch        12" RGB                    
s0 s1     g           12 4        4, 0x0A (00 10 10) kESCFourNTSC         NTSC                       
   s1     g            2 4        5, 0x1E (01 11 10) kESCFivePortrait     15" TILT                   
      s2  g             34        3, 0x35 (11 01 01) kESCThree21InchMono  2 PAGE MONO                
s0        g 2>1 1>2   1  4   89   6, 0x03 (00 00 11) kESCSixMSB1          MULITPLE-SCAN 14"          
s0        g     1>2   1  4    9   6, 0x0B (00 10 11) kESCSixMSB2          MULITPLE-SCAN 21"          
s0        g 2>1       1  4   8    6, 0x23 (10 00 11) kESCSixMSB3          MULITPLE-SCAN 16"          
s0        g           1  4        6, 0x2B (10 10 11) kESCSixStandard      13" RGB or HI-RES (12-14") 
s0 s1 s2              123         7, 0x00 (00 00 00) kESCSevenPAL         NTSC/PAL                   
   s1 s2               23         7, 0x17 (01 01 11) kESCSevenVGA         VGA                        
s0    s2              1 3         7, 0x2D (10 11 01) kESCSeven16Inch      16" COLOR                  
s0 s1                 12          7, 0x3A (11 10 10) kESCSeven19Inch      19" COLOR                  
=====================================================================================================


If we only include displays listed for the 6 dip switch adapter, then we get this:

   Dip Switches       Sense-code
---------------------    Extended-sense  Apple enum       VGA adapter setting name   
1            3   2
=============================================================================================
0g 1g 2g     0=1 2=0  0, 0x00 (00 00 00) kESCZero21Inch   21" COLOR                  
0g    2g         2=0  2, 0x21 (10 00 01) kESCTwo12Inch    12" RGB                    
0g 1g        0=1      4, 0x0A (00 10 10) kESCFourNTSC     NTSC                       
0g                    6, 0x2B (10 10 11) kESCSixStandard  13" RGB or HI-RES (12-14") 
         1=2 0=1 2=0  7, 0x00 (00 00 00) kESCSevenPAL     NTSC/PAL                   
                 2=0  7, 0x2D (10 11 01) kESCSeven16Inch  16" COLOR                  
             0=1      7, 0x3A (11 10 10) kESCSeven19Inch  19" COLOR                  
=============================================================================================
Notice that there's only 3 dip switches for these sense codes. The columns without a dip
switch number can be derived by the columns with a dip switch number.
 
Last edited:
  • Like
Reactions: XKSTEVE

Melkhior

Tinkerer
Jan 9, 2022
98
50
18
@joevt Nice set of data! But while all those settings were useful back in the day, it's likely 90+% of people looking for such an adapter today only need 'VGA' and 'Multi-Scan 16". Those two will cover all resolutions that have a chance of working with monitors that are even just a bit newer than the Mac they connect to. From the mid-90s onward, everything is multi-sync and is likely to support VGA, SVGA and probably XGA (1024x768)...
 
  • Like
Reactions: bakkus

joevt

Tinkerer
Mar 5, 2023
73
32
18
@Melkhior, true, the VGA or a Multisync option might be the only ones needed to use most displays with Mac OS. However, an adapter that can pretend to be any of the known displays would be useful when one wants to see how Mac OS behaves when a specific display type is connected.

The info was an academic exercise for completeness. But for real completeness, one would perform the same analysis on the other adapters to see if they might have other features that the 10 dip switch adapter doesn't or if they have a more efficient schematic (fewer diodes and switches).
 

jerry507

New Tinkerer
Aug 30, 2023
1
3
3
Hi, I joined to add my Viewsonic VMAC-1 to this list.
 

Attachments

  • vmac1back.jpg
    vmac1back.jpg
    646.8 KB · Views: 97
  • vmac1front.jpg
    vmac1front.jpg
    262.3 KB · Views: 93
  • vmac1instructions.jpg
    vmac1instructions.jpg
    478.8 KB · Views: 94

JDW

Administrator
Staff member
Founder
Sep 2, 2021
1,577
1,373
113
53
Japan
youtube.com
I use the DIP settings below on my UniMacFly adapter with my Mac IIci, either with onboard video or the Radius Thunder 24/GT.

tempImage8HC5qc.png 1711981505409.png

That allows the attached VGA LCD to display 640x480 just fine, and I can switch to higher resolutions with ease too, all without changing the DIP SW settings. It's the 13" 640x480 setting with SYNC ON GREEN.
 
  • Like
Reactions: XKSTEVE

XKSTEVE

New Tinkerer
Nov 2, 2022
36
17
8
Somerset, United Kingdom.
I use the DIP settings below on my UniMacFly adapter with my Mac IIci, either with onboard video or the Radius Thunder 24/GT.

View attachment 15932

That allows the attached VGA LCD to display 640x480 just fine, and I can switch to higher resolutions with ease too, all without changing the DIP SW settings.
This works on my IIci with onboard and supermac 8 card
 

Attachments

  • IMG_3825.jpeg
    IMG_3825.jpeg
    776.3 KB · Views: 38

XKSTEVE

New Tinkerer
Nov 2, 2022
36
17
8
Somerset, United Kingdom.
Here is another one. Not sure what this would work with and it does not like my LC or my supermac 8 or IIci internal video but I only have a single old 15” lcd so it may have been my display (image ghosts) sold it now but still have another without dips to sell.
 

Attachments

  • IMG_0036.jpg
    IMG_0036.jpg
    475.2 KB · Views: 37
  • IMG_0042.jpg
    IMG_0042.jpg
    611.8 KB · Views: 43
  • IMG_0035.jpg
    IMG_0035.jpg
    564.6 KB · Views: 33
  • IMG_0041.jpg
    IMG_0041.jpg
    500.4 KB · Views: 43
Last edited: