1 |
|
/* |
2 |
|
* main.cpp - ROM patches |
3 |
|
* |
4 |
< |
* SheepShaver (C) 1997-2005 Christian Bauer and Marc Hellwig |
4 |
> |
* SheepShaver (C) 1997-2008 Christian Bauer and Marc Hellwig |
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 |
70 |
|
* Initialize everything, returns false on error |
71 |
|
*/ |
72 |
|
|
73 |
< |
bool InitAll(void) |
73 |
> |
bool InitAll(const char *vmdir) |
74 |
|
{ |
75 |
|
// Load NVRAM |
76 |
< |
XPRAMInit(); |
76 |
> |
XPRAMInit(vmdir); |
77 |
|
|
78 |
|
// Load XPRAM default values if signature not found |
79 |
|
if (XPRAM[0x130c] != 0x4e || XPRAM[0x130d] != 0x75 |
103 |
|
XPRAM[0x130b] = 0xcc; |
104 |
|
XPRAM[0x1376] = 0x00; // OSDefault = MacOS |
105 |
|
XPRAM[0x1377] = 0x01; |
106 |
+ |
XPRAM[0x138a] = 0x25; // Use PPC memory manager ("Modern Memory Manager") |
107 |
|
} |
108 |
|
|
109 |
|
// Set boot volume |
174 |
|
memset((uint8 *)kernel_data + 0xb80, 0x3d, 0x80); |
175 |
|
Mac_memset(vector_lookup_tbl, 0, 128); |
176 |
|
Mac_memset(vector_mask_tbl, 0, 64); |
177 |
< |
kernel_data->v[0xb80 >> 2] = htonl(ROM_BASE); |
177 |
> |
kernel_data->v[0xb80 >> 2] = htonl(ROMBase); |
178 |
|
kernel_data->v[0xb84 >> 2] = htonl(of_dev_tree); // OF device tree base |
179 |
|
kernel_data->v[0xb90 >> 2] = htonl(vector_lookup_tbl); |
180 |
|
kernel_data->v[0xb94 >> 2] = htonl(vector_mask_tbl); |
181 |
< |
kernel_data->v[0xb98 >> 2] = htonl(ROM_BASE); // OpenPIC base |
181 |
> |
kernel_data->v[0xb98 >> 2] = htonl(ROMBase); // OpenPIC base |
182 |
|
kernel_data->v[0xbb0 >> 2] = htonl(0); // ADB base |
183 |
|
kernel_data->v[0xc20 >> 2] = htonl(RAMSize); |
184 |
|
kernel_data->v[0xc24 >> 2] = htonl(RAMSize); |