Проект вечора пятниці. Написав програму - лінкер для склеювання декількох ROM-дампів в один великий ROM образ. Зазвичай використовується в мультикартріджах з програмним або апаратним перемиканням банок памяті. Колись я вже писав таку для Vectrex, але, нажаль, похідні файли не зберіглися, тому довелось робити заново.
Ідея дуже проста, треба вибрати розмір банки (це оригінальний образ), та розмір ПЗУ в яке це все треба зашити. Далі просто закидуєте потрібну кількість файлів в список, можна переміщювати їх по списку змінюючи порядок.
Якщо розмір файла більше розміру банки, буде помилка та прогама підсвітить де проблема.
Також є перевірка, якщо ви додали замало або забагато файлів в список.
Коли додана правильна кількість файлів, програма сформує з них загальний бінарний файл розпихавши дані з файлів по масиву з кроком, що дорівнює розміру банки, та запише це все у вказаний файл.
Параметри розмірів банок та EPROM зашиті в програму. Розмір банки від 8 до 512 кБ, розмір EPROM від 128 кБ до 1 Мб, якщо ще шось треба додати - пишіть.
Проект написано на C# під .NET Framework v.3.5, тобто працювати мусить навіть на Windows XP.
Посилання на Github: MultiROM-Linker
Multi ROM Linker
- alk0v
- Адміністратор
- Повідомлень: 206
- З нами з: 05 квітня 2023, 19:04
- Дякував (ла): 80 разів
- Подякували: 157 разів
Multi ROM Linker
У вас недостатньо прав для перегляду приєднаних до цього повідомлення файлів.
Співзасновник Software & Computer Museum
- alk0v
- Адміністратор
- Повідомлень: 206
- З нами з: 05 квітня 2023, 19:04
- Дякував (ла): 80 разів
- Подякували: 157 разів
Re: Multi ROM Linker
Співзасновник Software & Computer Museum
-
- Повідомлень: 145
- З нами з: 06 квітня 2023, 18:41
- Звідки: Дніпро
- Дякував (ла): 77 разів
- Подякували: 189 разів
Re: Multi ROM Linker
Вважаю, раз мінімальний розмір банки 8 кБ, тому розмір EPROM варто починати від 16 кБ. (можна, звісно, і безпосередньо в процесі програмування ПЗУ "позклеювати" файли, але, якщо є такий інструмент...)
-
- Модератор 8 bit
- Повідомлень: 19
- З нами з: 07 квітня 2023, 16:27
- Дякував (ла): 5 разів
- Подякували: 7 разів
Re: Multi ROM Linker
Я так понимаю, софтина просто клеит банки с заданным смещением (размер банки)? Тогда предложение. Понятно, что рассчитывал под картриджи, но может не стоит ограничивать нижний размер восемью килобайтами? а сделать например 128-256-512-1024-2048-... ? Или иметь возможность еще и мануально задать размер банки и ПЗУ? Это позволит более широко использовать софтину, например клеить части епромок (РЕ, РТ). Так же если добавить возможность разбиения на две и более ПЗУ (четную и нечетную), было бы вообще здорово.
А в перспективе (можно же пофантазировать? ), можно было бы добавить окно с ascii/hex просмотром и редактированием, и возможность прошивать ПЗУ (например формировать строку для консольной версии программатора)...
- alk0v
- Адміністратор
- Повідомлень: 206
- З нами з: 05 квітня 2023, 19:04
- Дякував (ла): 80 разів
- Подякували: 157 разів
Re: Multi ROM Linker
Размеры банок и епромов добавить не сложно, буду еще мелкие изменения вносить, добавлю.
А чем существующие HEX-редакторы не устраивают?можно было бы добавить окно с ascii/hex просмотром и редактированием
Нужно описание алгоритма. Разбивать результирующую склееную? Или что именно разбивать?добавить возможность разбиения на две и более ПЗУ (четную и нечетную)
Співзасновник Software & Computer Museum
-
- Модератор 8 bit
- Повідомлень: 19
- З нами з: 07 квітня 2023, 16:27
- Дякував (ла): 5 разів
- Подякували: 7 разів
Re: Multi ROM Linker
Да, разбить результирующую. Четные байты в одну микросхему, нечетные в другую. Разумеется без пропусков. Т.е. 0-2-4-6... байты результирующей прошивки, станут 0-1-2-3... байтами четной ПЗУ. То же самое с нечетными.
P.S. И обратный процесс. Собрать четную и нечетную в один файл.
P.S. И обратный процесс. Собрать четную и нечетную в один файл.
- alk0v
- Адміністратор
- Повідомлень: 206
- З нами з: 05 квітня 2023, 19:04
- Дякував (ла): 80 разів
- Подякували: 157 разів
Re: Multi ROM Linker
Додав версію 1.1 (посилання в першому пості)
- Банки від 1к до 512к
- EPROM від 2716 (2к) до 27с080 (1Mb)
- Кнопка Reset Index щоб перерахувати номер банки
Співзасновник Software & Computer Museum