это я сначала подумал про присвоение
Вид для печати
это я сначала подумал про присвоение
или LAMER/256
При выгрузке в *.sna можно как-то задать состояние регистров?
Всё текущее и выгружается
формат sna - https://valker.wordpress.com/2007/01...0%D0%BE%D0%B2/
Ты ассемблер с эмулятором не спутал?
Нет. Только стартовый адрес. Автоматически выставляются регистры HL'=0x2758, IY=0x5c3a, SP=0x6000, для 48 памяти и все остальные- I=0x3f, DE'=0x369b, BC'=0, AF'=0x0044, HL=0x2d2b, DE=0x5cdc, BC=0, IX=0xff3c, AF=0x0054, SP - как-то хитро.
Кажется, я писал програмку, которая патчит данные для SNA, и забросил прогу.
Не, мы же в теме про SjASM. Про него вопрос и был, мне там Витамин уже ниже ответил.
---------- Post added at 15:38 ---------- Previous post was at 15:37 ----------
Ну я так и стал патчить. Костыли вы мои, костыли...
---------- Post added at 15:45 ---------- Previous post was at 15:38 ----------
Это видать, связано с тем, что запуск SNA идёт через стек, т.е. в него по идее, должен пушиться необходимый PC, и делаться RET.
Ну я вместе с кодом ассемблирую запускатор например в #4000, где делаю инит нужных мне регистров и джамп на собственно саму программу. Сам SNA запускает #4000, естественно. Что мешает сделать таким же образом? Да и всяко удобнее чем параметры плодить к SNA или отдельно ее патчить.
Зачем? В запускном последней командой R и добавишь, ну с учетом джампа. Тем более запускной код в одном месте, а основной в другом, не вижу проблем в побайтовой сверке (но зачем побайтово сверять? за ассемблером проверяешь?).
Народ, кто-нибудь может пофиксить сабж, чтобы запускаемый из консоли он мог записывать результат компиляции в бинарный файл? А то ключик есть, а толку от него - нет.
Vitamin, это у тебя не скомпилится - не указана машина под которую компилить
под 128 никак - нет непрерывного поля данных или сохранять страницы отдельно
а если под 48 то надо сохранять кусок с #6000 по #с007
Единица и 8Кб нулей?
Вроде бы, на этот вопрос за меня уже ответили. Кроме того, параметры бинарника, как правило, задаются в самом исходнике. Типа SAVESNA, SAVEBIN и т.п.
Уточняю проблему: можно ли пофиксить работу ключика --raw.
Или, может, уже работает, - в прошлом году я этот вопрос уже задавал здесь:http://zx-pk.ru/showpost.php?p=724999&postcount=1014
Дело в том, что без указанной возможности, SjASM нельзя использовать в пакетной сборке. Я-то могу и другие асмы использовать, но некоторых от сабжа не оторвать, и они не могут воспользоваться удобством автоматической сборки, скажем, плагинов к WildCommander.
"единица, потом 24.5 кб нулей, потом данные из инклуда". правила сами определяйте.
Очень просто: пусть выдаёт бинарь, грузящийся в основную память одним куском под заданным именем, а то, что должно лежать в страницах отдельными файлами с заданным именем + суффикс с номером страницы. (хотя мне достаточно только 64к, без страниц).
Неудобство заключается в том, что из собирающего проект скрипта нельзя задать имя выходного файла. Ну, в принципе, можно выкрутиться тем, чтобы пользователь указывал в исходнике дефолтное имя бинарнику. Не стрёмно ли это?
А как ты узнаешь, под какой адрес предназначен этот бинарник? Я специально усложнил пример несколькими org'ами. Представь, что часть из них находится в чужом коде.
Можно сделать чуть проще, хотя тоже кривовато:
Как руки дойдут, добавлю поддержку передачи define'ов через командную строку, как это сделано в нормальных компиляторах.Код:echo " SAVEBIN %MYBINARYNAME%,24576,16384" > mysaver.asm
sjasm mysource.asm mysaver.asm
Я исхожу из того, что если юзер дошёл до того, что поставил себе интерпретатор REXX для того, чтобы воспользоваться сборщиком плагинов WildCommander, то он точно знает, что они стартуют с #8000. :)
Но по факту получаем, что идиоты у нас защищены, а люди, которые, реально хотят сделать какой-нибудь продукт, остаются в пролёте. :)))))
А знают ли об этом все-все авторы кода, который ты у себя используешь? Подключил через include сторонний файл, а там внутри org закопан.
По факту получаем заточенность под конкретную ситуацию вкупе с уверенностью, что именно эта ситуация единственно возможная и правильная.
Именно поэтому кто-то и выпилил поддержку этой опции. Раз уж так нужна, рекомендую пользоваться той версией, где она есть.
На REXX плагины кто-то писал вообще, кроме тебя? :)
Я только этим пользуюсь. Думаю "у нас" больше никакие не популярны.
кроме REXX есть Lua