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

Comparing BasiliskII/src/main.cpp (file contents):
Revision 1.11 by cebix, 2002-01-15T14:58:32Z vs.
Revision 1.18 by asvitkine, 2009-07-23T19:19:14Z

# Line 1 | Line 1
1   /*
2   *  main.cpp - Startup/shutdown code
3   *
4 < *  Basilisk II (C) 1997-2002 Christian Bauer
4 > *  Basilisk II (C) 1997-2008 Christian Bauer
5   *
6   *  This program is free software; you can redistribute it and/or modify
7   *  it under the terms of the GNU General Public License as published by
# Line 45 | Line 45
45   #if ENABLE_MON
46   #include "mon.h"
47  
48 < static uint32 mon_read_byte_b2(uint32 adr)
48 > static uint32 mon_read_byte_b2(uintptr adr)
49   {
50          return ReadMacInt8(adr);
51   }
52  
53 < static void mon_write_byte_b2(uint32 adr, uint32 b)
53 > static void mon_write_byte_b2(uintptr adr, uint32 b)
54   {
55          WriteMacInt8(adr, b);
56   }
# Line 61 | Line 61 | static void mon_write_byte_b2(uint32 adr
61   *  Initialize everything, returns false on error
62   */
63  
64 < bool InitAll(void)
64 > bool InitAll(const char *vmdir)
65   {
66          // Check ROM version
67          if (!CheckROM()) {
# Line 100 | Line 100 | bool InitAll(void)
100   #endif
101  
102          // Load XPRAM
103 <        XPRAMInit();
103 >        XPRAMInit(vmdir);
104 >
105 >        // Load XPRAM default values if signature not found
106 >        if (XPRAM[0x0c] != 0x4e || XPRAM[0x0d] != 0x75
107 >         || XPRAM[0x0e] != 0x4d || XPRAM[0x0f] != 0x63) {
108 >                D(bug("Loading XPRAM default values\n"));
109 >                memset(XPRAM, 0, 0x100);
110 >                XPRAM[0x0c] = 0x4e;     // "NuMc" signature
111 >                XPRAM[0x0d] = 0x75;
112 >                XPRAM[0x0e] = 0x4d;
113 >                XPRAM[0x0f] = 0x63;
114 >                XPRAM[0x01] = 0x80;     // InternalWaitFlags = DynWait (don't wait for SCSI devices upon bootup)
115 >                XPRAM[0x10] = 0xa8;     // Standard PRAM values
116 >                XPRAM[0x11] = 0x00;
117 >                XPRAM[0x12] = 0x00;
118 >                XPRAM[0x13] = 0x22;
119 >                XPRAM[0x14] = 0xcc;
120 >                XPRAM[0x15] = 0x0a;
121 >                XPRAM[0x16] = 0xcc;
122 >                XPRAM[0x17] = 0x0a;
123 >                XPRAM[0x1c] = 0x00;
124 >                XPRAM[0x1d] = 0x02;
125 >                XPRAM[0x1e] = 0x63;
126 >                XPRAM[0x1f] = 0x00;
127 >                XPRAM[0x08] = 0x13;
128 >                XPRAM[0x09] = 0x88;
129 >                XPRAM[0x0a] = 0x00;
130 >                XPRAM[0x0b] = 0xcc;
131 >                XPRAM[0x76] = 0x00;     // OSDefault = MacOS
132 >                XPRAM[0x77] = 0x01;
133 >        }
134  
135          // Set boot volume
136          int16 i16 = PrefsFindInt32("bootdrive");
# Line 143 | Line 173 | bool InitAll(void)
173          if (!VideoInit(ROMVersion == ROM_VERSION_64K || ROMVersion == ROM_VERSION_PLUS || ROMVersion == ROM_VERSION_CLASSIC))
174                  return false;
175  
176 <        // Set default video mode
176 >        // Set default video mode in XPRAM
177          XPRAM[0x56] = 0x42;     // 'B'
178          XPRAM[0x57] = 0x32;     // '2'
179 <        XPRAM[0x58] = DepthToAppleMode(VideoMonitor.mode.depth);
179 >        const monitor_desc &main_monitor = *VideoMonitors[0];
180 >        XPRAM[0x58] = main_monitor.depth_to_apple_mode(main_monitor.get_current_mode().depth);
181          XPRAM[0x59] = 0;
182  
183   #if EMULATED_68K

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines