Сторінка 1 з 1

Multi ROM Linker

Додано: 19 серпня 2023, 02:33
alk0v
Проект вечора пятниці. Написав програму - лінкер для склеювання декількох ROM-дампів в один великий ROM образ. Зазвичай використовується в мультикартріджах з програмним або апаратним перемиканням банок памяті. Колись я вже писав таку для Vectrex, але, нажаль, похідні файли не зберіглися, тому довелось робити заново.

Ідея дуже проста, треба вибрати розмір банки (це оригінальний образ), та розмір ПЗУ в яке це все треба зашити. Далі просто закидуєте потрібну кількість файлів в список, можна переміщювати їх по списку змінюючи порядок.

Якщо розмір файла більше розміру банки, буде помилка та прогама підсвітить де проблема.

Також є перевірка, якщо ви додали замало або забагато файлів в список.

Коли додана правильна кількість файлів, програма сформує з них загальний бінарний файл розпихавши дані з файлів по масиву з кроком, що дорівнює розміру банки, та запише це все у вказаний файл.

Параметри розмірів банок та EPROM зашиті в програму. Розмір банки від 8 до 512 кБ, розмір EPROM від 128 кБ до 1 Мб, якщо ще шось треба додати - пишіть.
rom_linker.png
Проект написано на C# під .NET Framework v.3.5, тобто працювати мусить навіть на Windows XP.
MultiROM Linker v.1.1.zip
MultiROM Linker SRC.zip
Посилання на Github: MultiROM-Linker

Re: Multi ROM Linker

Додано: 19 серпня 2023, 08:29
semack
Думаю, що краще такі речі на github.

Re: Multi ROM Linker

Додано: 19 серпня 2023, 11:29
alk0v
semack писав: 19 серпня 2023, 08:29 Думаю, що краще такі речі на github.
Додав :)
https://github.com/alk0v/MultiROM-Linker

Re: Multi ROM Linker

Додано: 19 серпня 2023, 12:22
val_dp
Вважаю, раз мінімальний розмір банки 8 кБ, тому розмір EPROM варто починати від 16 кБ. (можна, звісно, і безпосередньо в процесі програмування ПЗУ "позклеювати" файли, але, якщо є такий інструмент...)

Re: Multi ROM Linker

Додано: 19 серпня 2023, 13:09
alvis
alk0v писав: 19 серпня 2023, 02:33 Параметри розмірів банок та EPROM зашиті в програму. Розмір банки від 8 до 512 кБ, розмір EPROM від 128 кБ до 1 Мб,
Я так понимаю, софтина просто клеит банки с заданным смещением (размер банки)? Тогда предложение. Понятно, что рассчитывал под картриджи, но может не стоит ограничивать нижний размер восемью килобайтами? а сделать например 128-256-512-1024-2048-... ? Или иметь возможность еще и мануально задать размер банки и ПЗУ? Это позволит более широко использовать софтину, например клеить части епромок (РЕ, РТ). Так же если добавить возможность разбиения на две и более ПЗУ (четную и нечетную), было бы вообще здорово.

А в перспективе (можно же пофантазировать? :) ), можно было бы добавить окно с ascii/hex просмотром и редактированием, и возможность прошивать ПЗУ (например формировать строку для консольной версии программатора)...

Re: Multi ROM Linker

Додано: 19 серпня 2023, 13:17
alk0v
Размеры банок и епромов добавить не сложно, буду еще мелкие изменения вносить, добавлю.
можно было бы добавить окно с ascii/hex просмотром и редактированием
А чем существующие HEX-редакторы не устраивают?
добавить возможность разбиения на две и более ПЗУ (четную и нечетную)
Нужно описание алгоритма. Разбивать результирующую склееную? Или что именно разбивать?

Re: Multi ROM Linker

Додано: 19 серпня 2023, 13:31
alvis
Да, разбить результирующую. Четные байты в одну микросхему, нечетные в другую. Разумеется без пропусков. Т.е. 0-2-4-6... байты результирующей прошивки, станут 0-1-2-3... байтами четной ПЗУ. То же самое с нечетными.

P.S. И обратный процесс. Собрать четную и нечетную в один файл.

Re: Multi ROM Linker

Додано: 19 серпня 2023, 21:19
alk0v
Додав версію 1.1 (посилання в першому пості)
  • Банки від 1к до 512к
  • EPROM від 2716 (2к) до 27с080 (1Mb)
  • Кнопка Reset Index щоб перерахувати номер банки