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

Comparing Frodo4/Src/main.cpp (file contents):
Revision 1.4 by cebix, 2003-07-01T19:04:37Z vs.
Revision 1.5 by cebix, 2003-07-02T14:46:24Z

# Line 40 | Line 40 | char AppDirPath[1024]; // Path of applic
40   #define BASIC_ROM_FILE  "FrodoRsrc:Basic_ROM"
41   #define KERNAL_ROM_FILE "FrodoRsrc:Kernal_ROM"
42   #define CHAR_ROM_FILE   "FrodoRsrc:Char_ROM"
43 < #define FLOPPY_ROM_FILE "FrodoRsrc:1541_ROM"
43 > #define DRIVE_ROM_FILE  "FrodoRsrc:1541_ROM"
44   #else
45   #define BASIC_ROM_FILE DATADIR "Basic ROM"
46   #define KERNAL_ROM_FILE DATADIR "Kernal ROM"
47   #define CHAR_ROM_FILE DATADIR "Char ROM"
48 < #define FLOPPY_ROM_FILE DATADIR "1541 ROM"
48 > #define DRIVE_ROM_FILE DATADIR "1541 ROM"
49   #endif
50  
51  
52 + // Builtin ROMs
53 + #include "Basic_ROM.h"
54 + #include "Kernal_ROM.h"
55 + #include "Char_ROM.h"
56 + #include "1541_ROM.h"
57 +
58 +
59   /*
60   *  Load C64 ROM files
61   */
62  
63 < bool Frodo::load_rom_files(void)
63 > void Frodo::load_rom(const char *which, const char *path, uint8 *where, size_t size, const uint8 *builtin)
64   {
65 <        FILE *file;
66 <
67 <        // Load Basic ROM
68 <        if ((file = fopen(BASIC_ROM_FILE, "rb")) != NULL) {
69 <                if (fread(TheC64->Basic, 1, 0x2000, file) != 0x2000) {
70 <                        ShowRequester("Can't read 'Basic ROM'.", "Quit");
64 <                        return false;
65 <                }
66 <                fclose(file);
67 <        } else {
68 <                ShowRequester("Can't find 'Basic ROM'.", "Quit");
69 <                return false;
70 <        }
71 <
72 <        // Load Kernal ROM
73 <        if ((file = fopen(KERNAL_ROM_FILE, "rb")) != NULL) {
74 <                if (fread(TheC64->Kernal, 1, 0x2000, file) != 0x2000) {
75 <                        ShowRequester("Can't read 'Kernal ROM'.", "Quit");
76 <                        return false;
77 <                }
78 <                fclose(file);
79 <        } else {
80 <                ShowRequester("Can't find 'Kernal ROM'.", "Quit");
81 <                return false;
65 >        FILE *f = fopen(path, "rb");
66 >        if (f) {
67 >                size_t actual = fread(where, 1, size, f);
68 >                fclose(f);
69 >                if (actual == size)
70 >                        return;
71          }
72  
73 <        // Load Char ROM
74 <        if ((file = fopen(CHAR_ROM_FILE, "rb")) != NULL) {
75 <                if (fread(TheC64->Char, 1, 0x1000, file) != 0x1000) {
76 <                        ShowRequester("Can't read 'Char ROM'.", "Quit");
88 <                        return false;
89 <                }
90 <                fclose(file);
91 <        } else {
92 <                ShowRequester("Can't find 'Char ROM'.", "Quit");
93 <                return false;
94 <        }
95 <
96 <        // Load 1541 ROM
97 <        if ((file = fopen(FLOPPY_ROM_FILE, "rb")) != NULL) {
98 <                if (fread(TheC64->ROM1541, 1, 0x4000, file) != 0x4000) {
99 <                        ShowRequester("Can't read '1541 ROM'.", "Quit");
100 <                        return false;
101 <                }
102 <                fclose(file);
103 <        } else {
104 <                ShowRequester("Can't find '1541 ROM'.", "Quit");
105 <                return false;
106 <        }
73 >        // Use builtin ROM
74 >        printf("%s ROM file (%s) not readable, using builtin.\n", which, path);
75 >        memcpy(where, builtin, size);
76 > }
77  
78 <        return true;
78 > void Frodo::load_rom_files()
79 > {
80 >        load_rom("Basic", BASIC_ROM_FILE, TheC64->Basic, BASIC_ROM_SIZE, builtin_basic_rom);
81 >        load_rom("Kernal", KERNAL_ROM_FILE, TheC64->Kernal, KERNAL_ROM_SIZE, builtin_kernal_rom);
82 >        load_rom("Char", CHAR_ROM_FILE, TheC64->Char, CHAR_ROM_SIZE, builtin_char_rom);
83 >        load_rom("1541", DRIVE_ROM_FILE, TheC64->ROM1541, DRIVE_ROM_SIZE, builtin_drive_rom);
84   }
85  
86  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines