1 |
|
/* |
2 |
|
* video.cpp - Video/graphics emulation |
3 |
|
* |
4 |
< |
* Basilisk II (C) 1997-1999 Christian Bauer |
4 |
> |
* Basilisk II (C) 1997-2000 Christian Bauer |
5 |
|
* Portions (C) 1997-1999 Marc Hellwig |
6 |
|
* |
7 |
|
* This program is free software; you can redistribute it and/or modify |
54 |
|
* Driver Open() routine |
55 |
|
*/ |
56 |
|
|
57 |
< |
int16 VideoOpen(uint32 pb, uint32 dce) |
57 |
> |
int16 VideoDriverOpen(uint32 pb, uint32 dce) |
58 |
|
{ |
59 |
< |
D(bug("VideoOpen\n")); |
59 |
> |
D(bug("VideoDriverOpen\n")); |
60 |
|
|
61 |
|
// Init local variables |
62 |
|
VidLocal.desc = &VideoMonitor; |
80 |
|
* Driver Control() routine |
81 |
|
*/ |
82 |
|
|
83 |
< |
int16 VideoControl(uint32 pb, uint32 dce) |
83 |
> |
int16 VideoDriverControl(uint32 pb, uint32 dce) |
84 |
|
{ |
85 |
|
uint16 code = ReadMacInt16(pb + csCode); |
86 |
|
uint32 param = ReadMacInt32(pb + csParam); |
87 |
< |
D(bug("VideoControl %d\n", code)); |
87 |
> |
D(bug("VideoDriverControl %d\n", code)); |
88 |
|
switch (code) { |
89 |
|
|
90 |
|
case cscSetMode: // Set color depth |
183 |
|
return noErr; |
184 |
|
|
185 |
|
default: |
186 |
< |
printf("WARNING: Unknown VideoControl(%d)\n", code); |
186 |
> |
printf("WARNING: Unknown VideoDriverControl(%d)\n", code); |
187 |
|
return controlErr; |
188 |
|
} |
189 |
|
} |
193 |
|
* Driver Status() routine |
194 |
|
*/ |
195 |
|
|
196 |
< |
int16 VideoStatus(uint32 pb, uint32 dce) |
196 |
> |
int16 VideoDriverStatus(uint32 pb, uint32 dce) |
197 |
|
{ |
198 |
|
uint16 code = ReadMacInt16(pb + csCode); |
199 |
|
uint32 param = ReadMacInt32(pb + csParam); |
200 |
< |
D(bug("VideoStatus %d\n", code)); |
200 |
> |
D(bug("VideoDriverStatus %d\n", code)); |
201 |
|
switch (code) { |
202 |
|
|
203 |
|
case cscGetPageCnt: // Get number of pages |
244 |
|
|
245 |
|
case cscGetModeTiming: // Get video timing for mode |
246 |
|
D(bug(" GetModeTiming mode %08lx\n", ReadMacInt32(param + csTimingMode))); |
247 |
< |
WriteMacInt32(param + csTimingFormat, 'decl'); |
247 |
> |
WriteMacInt32(param + csTimingFormat, FOURCC('d', 'e', 'c', 'l')); |
248 |
|
WriteMacInt32(param + csTimingData, 220); // 21" Multiscan |
249 |
|
WriteMacInt32(param + csTimingFlags, 0x0f); // Mode valid, safe, default and shown in Monitors panel |
250 |
|
return noErr; |
251 |
|
|
252 |
|
case cscGetModeBaseAddress: // Get frame buffer base address |
253 |
|
D(bug(" GetModeBaseAddress\n")); |
254 |
< |
WriteMacInt32(param + csBaseAddr, VidLocal.desc->mac_frame_base); |
254 |
> |
WriteMacInt32(param + csBaseAddr, VidLocal.desc->mac_frame_base); // Base address of video RAM for the current DisplayModeID and relative bit depth |
255 |
> |
return noErr; |
256 |
> |
|
257 |
> |
case cscGetMode: // REQUIRED for MacsBug |
258 |
> |
D(bug(" GetMode\n")); |
259 |
> |
WriteMacInt16(param + csPageMode, 0x80); |
260 |
> |
WriteMacInt32(param + csPageData, 0x80); // Unused |
261 |
> |
WriteMacInt16(param + csPagePage, 0); // Current display page |
262 |
> |
WriteMacInt32(param + csPageBaseAddr, VidLocal.desc->mac_frame_base); |
263 |
|
return noErr; |
264 |
|
|
265 |
|
default: |
266 |
< |
printf("WARNING: Unknown VideoStatus(%d)\n", code); |
266 |
> |
printf("WARNING: Unknown VideoDriverStatus(%d)\n", code); |
267 |
|
return statusErr; |
268 |
|
} |
269 |
|
} |