ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/cebix/BasiliskII/src/video.cpp
(Generate patch)

Comparing BasiliskII/src/video.cpp (file contents):
Revision 1.4 by cebix, 2000-07-22T16:07:19Z vs.
Revision 1.8 by cebix, 2001-05-31T15:36:33Z

# Line 1 | Line 1
1   /*
2   *  video.cpp - Video/graphics emulation
3   *
4 < *  Basilisk II (C) 1997-2000 Christian Bauer
4 > *  Basilisk II (C) 1997-2001 Christian Bauer
5   *  Portions (C) 1997-1999 Marc Hellwig
6   *
7   *  This program is free software; you can redistribute it and/or modify
# Line 154 | Line 154 | int16 VideoDriverControl(uint32 pb, uint
154                          uint32 p = VidLocal.desc->mac_frame_base;
155                          uint32 pat = pattern[VidLocal.desc->mode];
156                          for (uint32 y=0; y<VidLocal.desc->y; y++) {
157 <                                uint32 p2 = p;
158 <                                for (uint32 x=0; x<VidLocal.desc->bytes_per_row / 4; x++) {
159 <                                        WriteMacInt32(p2, pat);
160 <                                        p2 += 4;
157 >                                for (uint32 x=0; x<VidLocal.desc->bytes_per_row; x+=4) {
158 >                                        WriteMacInt32(p + x, pat);
159                                          if (VidLocal.desc->mode == VMODE_32BIT)
160                                                  pat = ~pat;
161                                  }
# Line 244 | Line 242 | int16 VideoDriverStatus(uint32 pb, uint3
242  
243                  case cscGetModeTiming:          // Get video timing for mode
244                          D(bug(" GetModeTiming mode %08lx\n", ReadMacInt32(param + csTimingMode)));
245 <                        WriteMacInt32(param + csTimingFormat, FOURCC('d','e','c','l'));
245 >                        WriteMacInt32(param + csTimingFormat, FOURCC('d', 'e', 'c', 'l'));
246                          WriteMacInt32(param + csTimingData, 220);               // 21" Multiscan
247                          WriteMacInt32(param + csTimingFlags, 0x0f);             // Mode valid, safe, default and shown in Monitors panel
248                          return noErr;
249  
250                  case cscGetModeBaseAddress:     // Get frame buffer base address
251                          D(bug(" GetModeBaseAddress\n"));
252 <                        WriteMacInt32(param + csBaseAddr, VidLocal.desc->mac_frame_base);
252 >                        WriteMacInt32(param + csBaseAddr, VidLocal.desc->mac_frame_base);       // Base address of video RAM for the current DisplayModeID and relative bit depth
253 >                        return noErr;
254 >
255 >                case cscGetMode:                // REQUIRED for MacsBug
256 >                        D(bug(" GetMode\n"));
257 >                        WriteMacInt16(param + csPageMode, 0x80);
258 >                        WriteMacInt32(param + csPageData, 0x80);        // Unused
259 >                        WriteMacInt16(param + csPagePage, 0);   // Current display page
260 >                        WriteMacInt32(param + csPageBaseAddr, VidLocal.desc->mac_frame_base);
261                          return noErr;
262  
263                  default:

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines