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.2 by cebix, 1999-10-21T22:39:53Z vs.
Revision 1.11 by cebix, 2002-01-15T14:58:32Z

# Line 1 | Line 1
1   /*
2   *  main.cpp - Startup/shutdown code
3   *
4 < *  Basilisk II (C) 1997-1999 Christian Bauer
4 > *  Basilisk II (C) 1997-2002 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 33 | Line 33
33   #include "serial.h"
34   #include "ether.h"
35   #include "clip.h"
36 + #include "adb.h"
37   #include "rom_patches.h"
38   #include "user_strings.h"
39   #include "prefs.h"
# Line 41 | Line 42
42   #define DEBUG 0
43   #include "debug.h"
44  
45 + #if ENABLE_MON
46 + #include "mon.h"
47 +
48 + static uint32 mon_read_byte_b2(uint32 adr)
49 + {
50 +        return ReadMacInt8(adr);
51 + }
52 +
53 + static void mon_write_byte_b2(uint32 adr, uint32 b)
54 + {
55 +        WriteMacInt8(adr, b);
56 + }
57 + #endif
58 +
59  
60   /*
61   *  Initialize everything, returns false on error
# Line 50 | Line 65 | bool InitAll(void)
65   {
66          // Check ROM version
67          if (!CheckROM()) {
68 <                ErrorAlert(GetString(STR_UNSUPPORTED_ROM_TYPE_ERR));
68 >                ErrorAlert(STR_UNSUPPORTED_ROM_TYPE_ERR);
69                  return false;
70          }
71  
# Line 65 | Line 80 | bool InitAll(void)
80                          TwentyFourBitAddressing = true;
81                          break;
82                  case ROM_VERSION_II:
83 <                        CPUType = 2;
83 >                        CPUType = PrefsFindInt32("cpu");
84 >                        if (CPUType < 2) CPUType = 2;
85 >                        if (CPUType > 4) CPUType = 4;
86                          FPUType = PrefsFindBool("fpu") ? 1 : 0;
87 +                        if (CPUType == 4) FPUType = 1;  // 68040 always with FPU
88                          TwentyFourBitAddressing = true;
89                          break;
90                  case ROM_VERSION_32:
91 <                        CPUType = 3;
91 >                        CPUType = PrefsFindInt32("cpu");
92 >                        if (CPUType < 2) CPUType = 2;
93 >                        if (CPUType > 4) CPUType = 4;
94                          FPUType = PrefsFindBool("fpu") ? 1 : 0;
95 +                        if (CPUType == 4) FPUType = 1;  // 68040 always with FPU
96                          TwentyFourBitAddressing = false;
97                          break;
98          }
# Line 82 | Line 103 | bool InitAll(void)
103          XPRAMInit();
104  
105          // Set boot volume
106 <        int16 i16 = PrefsFindInt16("bootdrive");
106 >        int16 i16 = PrefsFindInt32("bootdrive");
107          XPRAM[0x78] = i16 >> 8;
108          XPRAM[0x79] = i16 & 0xff;
109 <        i16 = PrefsFindInt16("bootdriver");
109 >        i16 = PrefsFindInt32("bootdriver");
110          XPRAM[0x7a] = i16 >> 8;
111          XPRAM[0x7b] = i16 & 0xff;
112  
# Line 112 | Line 133 | bool InitAll(void)
133          // Init clipboard
134          ClipInit();
135  
136 +        // Init ADB
137 +        ADBInit();
138 +
139          // Init audio
140          AudioInit();
141  
# Line 119 | Line 143 | bool InitAll(void)
143          if (!VideoInit(ROMVersion == ROM_VERSION_64K || ROMVersion == ROM_VERSION_PLUS || ROMVersion == ROM_VERSION_CLASSIC))
144                  return false;
145  
146 +        // Set default video mode
147 +        XPRAM[0x56] = 0x42;     // 'B'
148 +        XPRAM[0x57] = 0x32;     // '2'
149 +        XPRAM[0x58] = DepthToAppleMode(VideoMonitor.mode.depth);
150 +        XPRAM[0x59] = 0;
151 +
152   #if EMULATED_68K
153          // Init 680x0 emulation (this also activates the memory system which is needed for PatchROM())
154          if (!Init680x0())
# Line 127 | Line 157 | bool InitAll(void)
157  
158          // Install ROM patches
159          if (!PatchROM()) {
160 <                ErrorAlert(GetString(STR_UNSUPPORTED_ROM_TYPE_ERR));
160 >                ErrorAlert(STR_UNSUPPORTED_ROM_TYPE_ERR);
161                  return false;
162          }
163 +
164 + #if ENABLE_MON
165 +        // Initialize mon
166 +        mon_init();
167 +        mon_read_byte = mon_read_byte_b2;
168 +        mon_write_byte = mon_write_byte_b2;
169 + #endif
170 +
171          return true;
172   }
173  
# Line 140 | Line 178 | bool InitAll(void)
178  
179   void ExitAll(void)
180   {
181 + #if ENABLE_MON
182 +        // Deinitialize mon
183 +        mon_exit();
184 + #endif
185 +
186          // Save XPRAM
187          XPRAMExit();
188  
# Line 149 | Line 192 | void ExitAll(void)
192          // Exit audio
193          AudioExit();
194  
195 +        // Exit ADB
196 +        ADBExit();
197 +
198          // Exit clipboard
199          ClipExit();
200  
# Line 172 | Line 218 | void ExitAll(void)
218          DiskExit();
219          SonyExit();
220   }
221 +
222 +
223 + /*
224 + *  Display error/warning alert given the message string ID
225 + */
226 +
227 + void ErrorAlert(int string_id)
228 + {
229 +        ErrorAlert(GetString(string_id));
230 + }
231 +
232 + void WarningAlert(int string_id)
233 + {
234 +        WarningAlert(GetString(string_id));
235 + }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines