PDA

Просмотр полной версии : Подгрузка pc-файла типа "codes" в эмулятор



maximk
09.11.2006, 11:12
Есть разные форматы, используемые в эмуляторах - образы лент, образы дисков, "снимки" состояния машины. Если честно, всех особенностей данных форматов я не знаю.

Мне нужно, чтобы можно было загрузить файл в определенный участок памяти, так как это делается по команде LOAD ""CODE xxx, без запуска.

Файл при этом находится на PC и в идеале не имеет никаких заголовков, простой BIN-формат.

Вопрос 1. Какой эмулятор позволит такое сделать?

Если нет прямого ответа, то:

Вопрос 2. В какой формат проще всего сконвертить этот BIN-файл, чтобы можно было подгрузить его в каком-либо эмуляторе описанным способом?

John North
09.11.2006, 11:20
по команде LOAD ""CODE xxx
я вижу такой способ : копируешь этот файл в образ диска,подсоединяешь этот образ к эмулю,ну и всё...

CityAceE
09.11.2006, 11:27
Вопрос 1. Какой эмулятор позволит такое сделать?
Наверняка многие эмуляторы это позволяют, но достоверно знаю, что ZX-Emul by Vladimir Yudin может загружать BIN-файл по любому адресу Z80. Пользовался этой функцией, когда делал "идеальные" SNA-файлы (http://zxpilot.vladivostok.ru/games.shtml) для эмулятора под Palm.

caro
09.11.2006, 12:10
Файл при этом находится на PC и в идеале не имеет никаких заголовков, простой BIN-формат.
Вопрос 1. Какой эмулятор позволит такое сделать?В отладчике эмулятора Unreal есть команда Load block, которая вызывается клавишами Alt+R.
В появившемся окне указываешь имя файла и адрес загрузки.
Команда Save block (Alt+W) соответственно позволяет участок памяти записать в указанный файл.

maximk
09.11.2006, 12:22
Спасибо за ответы. Объясню зачем это надо.

Собственно все просто. Те, кто программирует с использованием кросс-средств разработки, как потом загружают результат в эмулятор? Ведь если правится какая-то ошибка то запусков за небольшой интервал времени может быть сделано много (запустил, посмотрел, исправил, пересобрал, опять запустил), поэтому нужно предельно упростить процедуру передачи собранного bin-файла в эмулятор.

psb
09.11.2006, 16:24
Те, кто программирует с использованием кросс-средств разработки, как потом загружают результат в эмулятор?
1. кодовый блок копируется в образ диска FAR'ом с плагинами.
2. используется SjAsm с возможность создания либо SNA, либо готовых TRD. в этом случае компиляция и запуск эмуля с созданным образом делается в бат-файле.

maximk
09.11.2006, 16:55
Образ диска, это первое, что я подумал. Но... я пока не потестил, но поймет ли эмулятор, если открытый образ диска изменить на лету сторонней программой? Вот не факт... А так конечно это самый простой способ. Можно переоткрыть образ, но это уже лишние телодвижения :)

Прикольно было бы, если бы был такой эмулятор, позволяющий привязать бейсиковские LOAD и SAVE к реальным PC-шным файлам :) Да еще и чтобы турбо-загрузка была при этом :)

maximk
09.11.2006, 18:15
Это все понятно :) , но я вот про что:

1. Можно ли из батника запихнуть файл в внутрь .TRD?

Поправочка. Я не хочу быть привязанным к SjAsm и т.п. Есть ли отдельные утилиты с интерфейсом command-line для работы с TRD?

2. Если сначала мы подгрузили в эмулятор TRD, а потом изменили его, подхватит ли он тут же эти изменения? Да и позволит ли он вообще его менять , а то может он его открыл с эксклюзивным доступом (попробовать щас не могу, нет винды под рукой).
3. Бейсик-команды загрузки с ленты и диска имеют не одинаковую длину :)

А я ищу самый короткий путь. Загрузить кусок средствами эмулятора это хорошо, особенно если есть горячие клавиши и т.п. Но LOAD "TEST"CODE 32768 при том, что TEST - это отдельный (не какой-то там образ) файл на PC, на мой взгляд было бы идеально :)

maximk
09.11.2006, 18:34
Содержимое изменит (фактически) не сразу, но по окончании работы с эмулем предложит сохранить все изменения.

Ды нет. Смотри,

1) я компилирую и собираю версию 1, запихиваю ее в ТРД, открываю его в эмуляторе.
2) обнаруживаю ошибку, правлю ее в исходниках, пересобираю, это уже версия 1.00001, перезапихиваю(?) в ТРД (не закрывая эмулятор и не переоткрывая образ!).
3) делаю в эмуляторе reset, происходит автостарт.

Что загрузит мне эмулятор? версию 1 или 1.00001? :)

maximk
09.11.2006, 18:55
Открываю встроенный в него редактор асма.
Вот это меня и не устраивает. Редактор, ассемблер, компилятор, компоновщик у меня внешние. Подобие IDE мне не нужно.

John North
09.11.2006, 20:25
не закрывая эмулятор

версию 1 или 1.00001?
версию 1.00001 ,т.е. изменённую !!! (проверял на Unreal Speccy). Эмуль держит "изменённый" образ где-то в оперативке , а вот "реальные" сохранения в образ на винте произойдут только после закрытия эмуля, если ты подтвердишь это.

maximk
10.11.2006, 10:29
Посмотрел я и подумал, что самый быстрым способом подгрузить данные извне будет использование горячих клавиш quick load эмулятора unreal.
Нужно будет только написать простенькую програмку, которая будет мой BIN-файл запихивать в .SNA.

Я думаю как. Запускаю бейсик, пишу RANDOMIZE USR xxx, не нажимая ENTER делаю quick save, а потом уже правлю полученый .SNA.

Таким образом для запуска программы, мне нужно будет только нажать alt-f3 и enter :)))

psb
10.11.2006, 16:18
Эмуль держит "изменённый" образ где-то в оперативке
человек спрашивает про внешние средства разработки => без перезапуска эмуль будет видеть старый TRD. но! никто не мешает запускать эмуль из батника после компиляции. разьве плохо?


1. Можно ли из батника запихнуть файл в внутрь .TRD?
можно, утилиты, вроде бы, были.. но не помню, где их искать.. или на форуме, или на zx.da.ru...


2. Если сначала мы подгрузили в эмулятор TRD, а потом изменили его, подхватит ли он тут же эти изменения?
думаю, НИ ОДИН эмулятор НЕ СМОЖЕТ сделать так.

что касается бейсик загрузчика.. если разберешься с добавлением файла в трд, то сначала можно так же пихать на трд загрузчик, а потом твой кодовый блок. автоматом запускать эмуль с этим трд и смотреть, что получилось.

jerri
11.11.2006, 22:26
realspec подхватит - он работает с трд прямо на диске

rasmer
11.11.2006, 23:11
в одном из эмулей БК0010-01, я видел такой приём - эмулятор не только работал с образами дисков и лент, но также и файлы хранились просто на диске(хоть в каталоге с самим эмулем), а эмулятор перехватив запись\чтение, читал\писал прям на винт...

psb
13.11.2006, 16:46
realspec подхватит - он работает с трд прямо на диске
спорить не буду, но оччень сомневаюсь.. когда я еще с ним работал (в дос), заходил на открытый трд фаром, а фар пустой трд показывал..