--- BasiliskII/src/video.cpp 1999/10/03 14:16:25 1.1 +++ BasiliskII/src/video.cpp 2000/08/20 14:08:40 1.5 @@ -1,7 +1,7 @@ /* * video.cpp - Video/graphics emulation * - * Basilisk II (C) 1997-1999 Christian Bauer + * Basilisk II (C) 1997-2000 Christian Bauer * Portions (C) 1997-1999 Marc Hellwig * * This program is free software; you can redistribute it and/or modify @@ -54,9 +54,9 @@ struct { * Driver Open() routine */ -int16 VideoOpen(uint32 pb, uint32 dce) +int16 VideoDriverOpen(uint32 pb, uint32 dce) { - D(bug("VideoOpen\n")); + D(bug("VideoDriverOpen\n")); // Init local variables VidLocal.desc = &VideoMonitor; @@ -80,11 +80,11 @@ int16 VideoOpen(uint32 pb, uint32 dce) * Driver Control() routine */ -int16 VideoControl(uint32 pb, uint32 dce) +int16 VideoDriverControl(uint32 pb, uint32 dce) { uint16 code = ReadMacInt16(pb + csCode); uint32 param = ReadMacInt32(pb + csParam); - D(bug("VideoControl %d\n", code)); + D(bug("VideoDriverControl %d\n", code)); switch (code) { case cscSetMode: // Set color depth @@ -183,7 +183,7 @@ int16 VideoControl(uint32 pb, uint32 dce return noErr; default: - printf("WARNING: Unknown VideoControl(%d)\n", code); + printf("WARNING: Unknown VideoDriverControl(%d)\n", code); return controlErr; } } @@ -193,11 +193,11 @@ int16 VideoControl(uint32 pb, uint32 dce * Driver Status() routine */ -int16 VideoStatus(uint32 pb, uint32 dce) +int16 VideoDriverStatus(uint32 pb, uint32 dce) { uint16 code = ReadMacInt16(pb + csCode); uint32 param = ReadMacInt32(pb + csParam); - D(bug("VideoStatus %d\n", code)); + D(bug("VideoDriverStatus %d\n", code)); switch (code) { case cscGetPageCnt: // Get number of pages @@ -251,11 +251,19 @@ int16 VideoStatus(uint32 pb, uint32 dce) case cscGetModeBaseAddress: // Get frame buffer base address D(bug(" GetModeBaseAddress\n")); - WriteMacInt32(param + csBaseAddr, VidLocal.desc->mac_frame_base); + WriteMacInt32(param + csBaseAddr, VidLocal.desc->mac_frame_base); // Base address of video RAM for the current DisplayModeID and relative bit depth + return noErr; + + case cscGetMode: // REQUIRED for MacsBug + D(bug(" GetMode\n")); + WriteMacInt16(param + csPageMode, 0x80); + WriteMacInt32(param + csPageData, 0x80); // Unused + WriteMacInt16(param + csPagePage, 0); // Current display page + WriteMacInt32(param + csPageBaseAddr, VidLocal.desc->mac_frame_base); return noErr; default: - printf("WARNING: Unknown VideoStatus(%d)\n", code); + printf("WARNING: Unknown VideoDriverStatus(%d)\n", code); return statusErr; } }