2 * Copyright (c) 1998-2000 Apple Computer, Inc. All rights reserved.
4 * @APPLE_LICENSE_HEADER_START@
6 * The contents of this file constitute Original Code as defined in and
7 * are subject to the Apple Public Source License Version 1.1 (the
8 * "License"). You may not use this file except in compliance with the
9 * License. Please obtain a copy of the License at
10 * http://www.apple.com/publicsource and read it before using this file.
12 * This Original Code and all software distributed under the License are
13 * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
14 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
15 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
16 * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the
17 * License for the specific language governing rights and limitations
20 * @APPLE_LICENSE_HEADER_END@
22 #include <driverkit/ppc/IOMacOSTypes.h>
23 #include "IOMacOSVideo.h"
30 UInt16 standardTiming;
32 typedef struct TimingToEDID TimingToEDID;
34 #define MAKESTD(h,a,r) ( (((h/8)-31)<<8) | (a<<6) | (r-60) )
36 static const TimingToEDID timingToEDID[] = {
37 { timingApple_512x384_60hz, 0, 0xff, MAKESTD( 512,1,60) },
38 { timingApple_640x480_67hz, 0, 0x04, MAKESTD( 640,1,67) },
39 { timingVESA_640x480_60hz, 0, 0x05, MAKESTD( 640,1,60) },
40 { timingVESA_640x480_72hz , 0, 0x03, MAKESTD( 640,1,72) },
41 { timingVESA_640x480_75hz, 0, 0x02, MAKESTD( 640,1,75) },
42 { timingVESA_640x480_85hz, 0, 0xff, MAKESTD( 640,1,85) },
43 { timingApple_832x624_75hz, 0, 0x0d, MAKESTD( 832,1,75) },
44 { timingVESA_800x600_56hz, 0, 0x01, MAKESTD( 800,1,56) },
45 { timingVESA_800x600_60hz, 0, 0x00, MAKESTD( 800,1,60) },
46 { timingVESA_800x600_72hz, 0, 0x0f, MAKESTD( 800,1,72) },
47 { timingVESA_800x600_75hz, 0, 0x0e, MAKESTD( 800,1,75) },
48 { timingVESA_800x600_85hz, 0, 0xff, MAKESTD( 800,1,85) },
49 { timingVESA_1024x768_60hz, 0, 0x0b, MAKESTD( 1024,1,60) },
50 { timingVESA_1024x768_70hz, 0, 0x0a, MAKESTD( 1024,1,70) },
51 { timingVESA_1024x768_75hz, 0, 0x09, MAKESTD( 1024,1,75) },
52 { timingVESA_1024x768_85hz, 0, 0xff, MAKESTD( 1024,1,85) },
53 { timingApple_1024x768_75hz, 0, 0x09, MAKESTD( 1024,1,75) },
54 { timingApple_1152x870_75hz, 0, 0x17, MAKESTD( 0000,0,00) },
55 { timingVESA_1280x960_75hz, 0, 0xff, MAKESTD( 1280,1,75) },
56 { timingVESA_1280x1024_60hz, 0, 0xff, MAKESTD( 1280,2,60) },
57 { timingVESA_1280x1024_75hz, 0, 0x08, MAKESTD( 1280,2,75) },
58 { timingVESA_1280x1024_85hz, 0, 0xff, MAKESTD( 1280,2,85) },
59 { timingVESA_1600x1200_60hz, 0, 0xff, MAKESTD( 1600,1,60) },
60 { timingVESA_1600x1200_65hz, 0, 0xff, MAKESTD( 1600,1,65) },
61 { timingVESA_1600x1200_70hz, 0, 0xff, MAKESTD( 1600,1,70) },
62 { timingVESA_1600x1200_75hz, 0, 0xff, MAKESTD( 1600,1,75) },
63 { timingVESA_1600x1200_80hz, 0, 0xff, MAKESTD( 1600,1,80) }
69 const TimingToEDID * lookTiming;
71 lookTiming = timingToEDID;
72 while( lookTiming < (timingToEDID + sizeof( timingToEDID) / sizeof( TimingToEDID))) {
74 printf("%d 0x%x ", lookTiming->timingID,
75 *((unsigned int *)&lookTiming->spare) );