comparison tools/objlink.c @ 2555:6249aa494e83

Rename "ROM/WT" blocks to just "WT", move the description to --help.
author Matti Hamalainen <ccr@tnsp.org>
date Sun, 27 Feb 2022 16:38:35 +0200
parents aabfa00eafd9
children 12ea1ea93522
comparison
equal deleted inserted replaced
2554:aabfa00eafd9 2555:6249aa494e83
69 }; 69 };
70 70
71 enum 71 enum
72 { 72 {
73 MTYPE_NONE = 0, 73 MTYPE_NONE = 0,
74 MTYPE_ROM, // Hard ROM 74 MTYPE_ROM, // ROM
75 MTYPE_ROM_WT, // Write to RAM through ROM 75 MTYPE_WT, // Write to RAM through ROM
76 MTYPE_IO, // I/O lines 76 MTYPE_IO, // I/O lines
77 MTYPE_RES // RESERVED 77 MTYPE_RES // RESERVED
78 }; 78 };
79 79
80 enum 80 enum
81 { 81 {
82 LA_NONE = -2, 82 LA_NONE = -2,
90 { 90 {
91 { "C64 unrestricted", "$01 = $34", 91 { "C64 unrestricted", "$01 = $34",
92 64 * 1024, 92 64 * 1024,
93 0, 93 0,
94 { 94 {
95 { 0x0000, 0x0000, 0 , NULL , 0 } 95 { 0x0000, 0x0000, 0 , NULL , 0 }
96 } 96 }
97 }, 97 },
98 98
99 { "C64 normal (IO+Basic+Kernal)", "$01 = $37", 99 { "C64 normal (IO+Basic+Kernal)", "$01 = $37",
100 64 * 1024, 100 64 * 1024,
101 3, 101 3,
102 { 102 {
103 { 0xA000, 0xBFFF, MTYPE_ROM_WT , "Basic ROM" , PLACE_STATIC }, 103 { 0xA000, 0xBFFF, MTYPE_WT , "Basic ROM" , PLACE_STATIC },
104 { 0xD000, 0xDFFF, MTYPE_IO , "I/O" , PLACE_STATIC }, 104 { 0xD000, 0xDFFF, MTYPE_IO , "I/O" , PLACE_STATIC },
105 { 0xE000, 0xFFFF, MTYPE_ROM_WT , "Kernal ROM" , PLACE_STATIC }, 105 { 0xE000, 0xFFFF, MTYPE_WT , "Kernal ROM" , PLACE_STATIC },
106 } 106 }
107 }, 107 },
108 108
109 { "C64 modified (IO+Kernal)", "$01 = $36", 109 { "C64 modified (IO+Kernal)", "$01 = $36",
110 64 * 1024, 110 64 * 1024,
111 2, 111 2,
112 { 112 {
113 { 0xD000, 0xDFFF, MTYPE_IO , "I/O" , PLACE_STATIC }, 113 { 0xD000, 0xDFFF, MTYPE_IO , "I/O" , PLACE_STATIC },
114 { 0xE000, 0xFFFF, MTYPE_ROM_WT , "Kernal ROM" , PLACE_STATIC }, 114 { 0xE000, 0xFFFF, MTYPE_WT , "Kernal ROM" , PLACE_STATIC },
115 } 115 }
116 }, 116 },
117 117
118 { "C64 modified (IO only)", "$01 = $35", 118 { "C64 modified (IO only)", "$01 = $35",
119 64 * 1024, 119 64 * 1024,
120 1, 120 1,
121 { 121 {
122 { 0xD000, 0xDFFF, MTYPE_IO , "I/O" , PLACE_STATIC }, 122 { 0xD000, 0xDFFF, MTYPE_IO , "I/O" , PLACE_STATIC },
123 } 123 }
124 }, 124 },
125 125
126 { "C64 modified (Char+Kernal+Basic)", "$01 = $33", 126 { "C64 modified (Char+Kernal+Basic)", "$01 = $33",
127 64 * 1024, 127 64 * 1024,
128 3, 128 3,
129 { 129 {
130 { 0xA000, 0xBFFF, MTYPE_ROM_WT , "Basic ROM" , PLACE_STATIC }, 130 { 0xA000, 0xBFFF, MTYPE_WT , "Basic ROM" , PLACE_STATIC },
131 { 0xD000, 0xDFFF, MTYPE_ROM , "Char ROM" , PLACE_STATIC }, 131 { 0xD000, 0xDFFF, MTYPE_ROM , "Char ROM" , PLACE_STATIC },
132 { 0xE000, 0xFFFF, MTYPE_ROM_WT , "Kernal ROM" , PLACE_STATIC }, 132 { 0xE000, 0xFFFF, MTYPE_WT , "Kernal ROM" , PLACE_STATIC },
133 } 133 }
134 }, 134 },
135 }; 135 };
136 136
137 static const int nmemoryModels = sizeof(memoryModels) / sizeof(memoryModels[0]); 137 static const int nmemoryModels = sizeof(memoryModels) / sizeof(memoryModels[0]);
202 const DMMemModel *m = &memoryModels[i]; 202 const DMMemModel *m = &memoryModels[i];
203 fprintf(stdout, 203 fprintf(stdout,
204 " %d = %-40s [%s] (%d kB)\n", 204 " %d = %-40s [%s] (%d kB)\n",
205 i, m->name, m->desc, m->size / 1024); 205 i, m->name, m->desc, m->size / 1024);
206 } 206 }
207
208 fprintf(stdout,
209 "\n"
210 "Memory block types:\n"
211 " NC = Not Connected\n"
212 " RSVD = Reserved\n"
213 " WT = RAM under 'write-through' ROM\n"
214 "\n"
215 );
207 } 216 }
208 217
209 218
210 off_t dmGetFileSize(FILE *f) 219 off_t dmGetFileSize(FILE *f)
211 { 220 {
782 // Print current block 791 // Print current block
783 switch (curr->type) 792 switch (curr->type)
784 { 793 {
785 case MTYPE_NONE: s = "N/A (NC)"; break; 794 case MTYPE_NONE: s = "N/A (NC)"; break;
786 case MTYPE_ROM: s = "ROM"; break; 795 case MTYPE_ROM: s = "ROM"; break;
787 case MTYPE_ROM_WT: s = "ROM/WT"; break; 796 case MTYPE_WT: s = "WT"; break;
788 case MTYPE_IO: s = "I/O"; break; 797 case MTYPE_IO: s = "I/O"; break;
789 case MTYPE_RES: s = "RSVD"; break; 798 case MTYPE_RES: s = "RSVD"; break;
790 default: s = "????"; break; 799 default: s = "????"; break;
791 } 800 }
792 801
798 fprintf(f, "$%.4x - $%.4x | %-40s |\n", curr->start, curr->end, desc); 807 fprintf(f, "$%.4x - $%.4x | %-40s |\n", curr->start, curr->end, desc);
799 if (kz > 1) memPrintEmpty(f, kz); 808 if (kz > 1) memPrintEmpty(f, kz);
800 memPrintLine(f); 809 memPrintLine(f);
801 810
802 } 811 }
803
804 fprintf(f,
805 "\n"
806 "NC = Not Connected\n"
807 "RSVD = Reserved\n"
808 "ROM/WT = RAM under 'write-through' ROM\n"
809 "\n"
810 );
811 } 812 }
812 813
813 814
814 /* 815 /*
815 * The main program 816 * The main program