ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/cebix/Frodo4/Src/main.cpp
Revision: 1.7
Committed: 2004-01-12T15:13:20Z (20 years, 2 months ago) by cebix
Branch: MAIN
Changes since 1.6: +1 -1 lines
Log Message:
Happy New Year!

File Contents

# User Rev Content
1 cebix 1.1 /*
2     * main.cpp - Main program
3     *
4 cebix 1.7 * Frodo (C) 1994-1997,2002-2004 Christian Bauer
5 cebix 1.1 *
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
8     * the Free Software Foundation; either version 2 of the License, or
9     * (at your option) any later version.
10     *
11     * This program is distributed in the hope that it will be useful,
12     * but WITHOUT ANY WARRANTY; without even the implied warranty of
13     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14     * GNU General Public License for more details.
15     *
16     * You should have received a copy of the GNU General Public License
17     * along with this program; if not, write to the Free Software
18     * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19     */
20    
21     #include "sysdeps.h"
22    
23     #include "main.h"
24     #include "C64.h"
25     #include "Display.h"
26     #include "Prefs.h"
27     #include "SAM.h"
28    
29    
30     // Global variables
31 cebix 1.6 C64 *TheC64 = NULL; // Global C64 object
32 cebix 1.1 char AppDirPath[1024]; // Path of application directory
33    
34    
35     // ROM file names
36 cebix 1.4 #ifndef DATADIR
37     #define DATADIR
38     #endif
39    
40 cebix 1.1 #ifdef __riscos__
41     #define BASIC_ROM_FILE "FrodoRsrc:Basic_ROM"
42     #define KERNAL_ROM_FILE "FrodoRsrc:Kernal_ROM"
43     #define CHAR_ROM_FILE "FrodoRsrc:Char_ROM"
44 cebix 1.5 #define DRIVE_ROM_FILE "FrodoRsrc:1541_ROM"
45 cebix 1.1 #else
46 cebix 1.4 #define BASIC_ROM_FILE DATADIR "Basic ROM"
47     #define KERNAL_ROM_FILE DATADIR "Kernal ROM"
48     #define CHAR_ROM_FILE DATADIR "Char ROM"
49 cebix 1.5 #define DRIVE_ROM_FILE DATADIR "1541 ROM"
50 cebix 1.1 #endif
51    
52    
53 cebix 1.5 // Builtin ROMs
54     #include "Basic_ROM.h"
55     #include "Kernal_ROM.h"
56     #include "Char_ROM.h"
57     #include "1541_ROM.h"
58    
59    
60 cebix 1.1 /*
61     * Load C64 ROM files
62     */
63    
64 cebix 1.5 void Frodo::load_rom(const char *which, const char *path, uint8 *where, size_t size, const uint8 *builtin)
65 cebix 1.1 {
66 cebix 1.5 FILE *f = fopen(path, "rb");
67     if (f) {
68     size_t actual = fread(where, 1, size, f);
69     fclose(f);
70     if (actual == size)
71     return;
72 cebix 1.1 }
73    
74 cebix 1.5 // Use builtin ROM
75     printf("%s ROM file (%s) not readable, using builtin.\n", which, path);
76     memcpy(where, builtin, size);
77     }
78 cebix 1.1
79 cebix 1.5 void Frodo::load_rom_files()
80     {
81     load_rom("Basic", BASIC_ROM_FILE, TheC64->Basic, BASIC_ROM_SIZE, builtin_basic_rom);
82     load_rom("Kernal", KERNAL_ROM_FILE, TheC64->Kernal, KERNAL_ROM_SIZE, builtin_kernal_rom);
83     load_rom("Char", CHAR_ROM_FILE, TheC64->Char, CHAR_ROM_SIZE, builtin_char_rom);
84     load_rom("1541", DRIVE_ROM_FILE, TheC64->ROM1541, DRIVE_ROM_SIZE, builtin_drive_rom);
85 cebix 1.1 }
86    
87    
88     #ifdef __BEOS__
89     #include "main_Be.h"
90     #endif
91    
92     #ifdef AMIGA
93     #include "main_Amiga.h"
94     #endif
95    
96     #ifdef __unix
97     #include "main_x.h"
98     #endif
99    
100     #ifdef __mac__
101     #include "main_mac.h"
102     #endif
103    
104     #ifdef WIN32
105     #include "main_WIN32.h"
106     #endif
107    
108     #ifdef __riscos__
109     #include "main_Acorn.h"
110     #endif