Кросс-компилер Си и создание рамдиска

Por AlexBel

Champion (268)

imagem de AlexBel

14-01-2010, 18:25

Есть ли кросс-компилер Си для РС, при помощи которого можно создавать .rom для MSX? Есть библиотеки для SDCC, но они рассчитаны на MSXDOS и используют его функции. Кто-нибудь сталкивался с написанием .rom (или других бинарников в результате компиляции) на Си для запуска без MSXDOS?

И еще сразу вопрос - Есть ли пример создания рамдиска с занесением на него файлов MSXDOS и его загрузкой? В смысле - исходники. Цель - сделать картридж, который, при запуске создает в памяти рамдиск и запускает с него MSXDOS. Ну и, конечно, позволяет запускать находящиеся на нем (помещенные заранее) файлы-прилодения.
Собственно, не обязательно Си, ассемблер тоже не очень пугает, но я немного обленился последнее время, Си развращает... Smile

Entrar ou registrar-se para comentar

Por msxegor

Master (183)

imagem de msxegor

14-01-2010, 20:37

На сях это не напишется, однозначно... Для начала нужно как минимум дисковый BIOS иметь. Взять исходники от Beer IDE, к примеру, заменить там программы чтения-записи сектора, и voila! Даже рамдиск не нужен, можно читать прямо из ROM-а

Por AlexBel

Champion (268)

imagem de AlexBel

14-01-2010, 20:55

Почему на сях не напишется? Если компилеру указать, где находится ОЗУ, а где располагается сама программа, то почему бы и нет? Надо только, чтобы компилятор смог сделать заголовок ROMа. Или таких компилеров нет?

Por AlexBel

Champion (268)

imagem de AlexBel

15-01-2010, 06:17

А заменить программы работы с секторами - ты имеешь в виду создать образ дискеты, загнать его в ПЗУ и сделать так, чтобы программы работы с секторами обращались к образу, как к реальному диску?

Por msxegor

Master (183)

imagem de msxegor

15-01-2010, 08:35

Да, именно это я и имею в виду. C нельзя потому, что вызовы чтения-записи дисков имеют стандартный интерфейс, что и как передается и возвращается, и кроме всего - они должны в случае ошибки возвращать CY, а работа с флагами, насколько мне известно, ни одним кросс-компилятором не поддерживается (да и родными, кстати, тоже)
А вообще, можешь попробовать Zilog Development Studio от Zilog - говорят, вещь неплохая. Скачать можно бесплатно.

Por AlexBel

Champion (268)

imagem de AlexBel

15-01-2010, 11:54

Я думал, что можно выкрутиться, используя ассемблерные вставки в текст Си.
Спасибо, поищу и скачаю. А чем эта студия хороша?

Por cax

Prophet (3736)

imagem de cax

15-01-2010, 16:00

Заголовок можно просто присобачить и после компиляции.
В случае с MSX наличие видео, аудио и дисковых библиотек будет, пожалуй, поважнее заголовка и кросс-компиляции.
Я бы, пожалуй, взял готовый компилятор C для MSX в котором есть нужные библиотеки, а потом решал как бинарник превратить в ROM.

Por AlexBel

Champion (268)

imagem de AlexBel

15-01-2010, 20:06

Тут дело не только в превращении бинарника в .rom. Если библиотеки компилятора рассчитаны на использование функций MSXDOS (как SDCC), то, разумеется, картридж работать не будет.
Вообще, конечно, хотелось бы использовать Си, так как есть библиотеки, которые здорово могли бы сократить время написания программ и количество ошибок. Например, библиотека работы с SD-картой и поддержка FAT16/32 - есть отличная библиотека от ELM, она прекрасно работает, ее многие используют, есть поддержка даже длинных имен файлов. Не лучше ли использовать ее, чем писать новую, которую еще придется отлаживать?