Хочу пользоваться его асмом!
Но завести не могу!
А заведши, неизвестно, правильно ли, асм вешается нагло и напрочь!
Что я не так делаю ? Мож есть ньюансы ? Или кто поделится настроенным под пентагон512, чтоб сесть и пписать, а не долбиться...
Вид для печати
Хочу пользоваться его асмом!
Но завести не могу!
А заведши, неизвестно, правильно ли, асм вешается нагло и напрочь!
Что я не так делаю ? Мож есть ньюансы ? Или кто поделится настроенным под пентагон512, чтоб сесть и пписать, а не долбиться...
еще раз отвечаю (спрашиваю): версия какая? На сайте 2.7 билд 2.5. Билд смотреть в html-файле что в архиве или ? в главном меню (хотя уже есть сообщение что я с этим ? перемудрил в последнем билде, так что лучше html).
И сразу: что за машина, какая версия винды. Я смог проверить на ХР СП2, 2К СП4, НТ4 СП5 - из того что под рукой. На вмваре проверял под 98, вроде бы тоже работает. Может создает в каталоге какие нибудь файлы. Как-то ругается.
Немного поторопился: билд 2.5 я на нт4 еще не проверял. Сегодня проверил: падает (вообще-то не падает, просто не запускается, но все равно не работает). Возможны еще проблемы под живым 9х, и под атлон 64 тоже наверняка не пойдет. Буду решать новые проблемы несоместимости в ближайшее время. Но ХР и 2К с обычным ПС-совместимым пне-4 должны пойти. Сегодня соберусь два хлама из ушла достать, надо на живом пне100 еще поглядеть и на пне2 тоже. (Вот доусовершенствовался, код стал от проца зависеть).
Сейчас аплодится билд 2.5а По крайней мере должно работать под NT (но проверить смогу только завтора). А под 9х проверить не удалось - нечем перекинуть на старый пень-100 с 98 на борту (там есть флопи, а у меня нету, у меня есть сеть, усб, а там такого не водится. Да что говорить, там мыши нет - потому что только комовский вход, а у мен все 5 штук - пс/2 или усб... Буду искать хлама по друзьям, чтобы проверить).
меню ? заработало :v2_clapp:Цитата:
Сообщение от Vladimir Kladov
Сразу хочу пояснить: решил поспрашивать тут, т.к. уверен, что это даст гораздо больший результат, в том числе и по времени, потраченному на разбирание что и к чему... А времени, должен пожаловаться, крайне мало :(
Поэтому не зовите лентяем / идиотом - просто подскажите! :)))
Итак:
1. запустил эмуль. Все ОК. хочу менять РОМы на свои - иду в настройки, указываю пути к РОМам. Все ромы проверены, по 16384 и используются в УНреале. Закрываю окошко настроек - ничего не меняется... Захожу в настройки РОМов - там уже пусто. Т.е. ни один путь не запоминается ни при закрытии эмуля ни при каких обстоятельствах...
В итоге я понял, что для пентагона 512к нужен РОМ на 32кб в котором сперва басик128, потом 48. Закончилось тем, что я заменил РОМы в директории эмулятора (те, которые он распаковывает 7зипом). Т.е. подсовывал под теми же именами свои РОМы - в итоге заработало... Вот и вопрос: должно ведь оно делаться нормальным путем ?
2. раскладки клавиатуры: хотелось бы как в УНреале. Думаю это где-то есть, просто я не добрался...
3. Для чего это делалось? Для чудо-ассемблера! С подсветкой и закладками!
набираю:
org 26000
ld h
нажимаю compile и эмуль виснет. Напрочь. Т.е. после проб я понял, что при правлиьных, так сказать, командах не вешается. А иначе вешается... Не пробовал ни метки ни DEFИ - нет смысла, если виснет чуть ли не в первой строчке.
Все сказанное справедливо для 3х машин: домашней, домашней младшего и рабочей. Конфигурации разные - т.е. железо отпадает 100%. Винды ? Ну так на одной машине XPsp2 ENG, на второй XPsp1 RU, а на работе ваще w98se...
Вот такие грабли :(
АУУУ!!!!
эй народ! Знахарь мои сообщения в упор не видит. То ли у него фильтр стоит и он меня забанил... Я ему говорю: обнови версию, передайте ему, плиз, кто-нибудь, а?
У меня не вешается. Просто сообщает в нижнем окошке, что Syntax unknown ld h. Команда ld (по крайней мере в моем асме) требует оба операнда.
ВИНОВАТ!!! :) КАЧАЮ обновленную версию. О результатах немедленно доложу:) Спасибо!!!
я не понял. Уже больше 3 часов прошло. Вы не какой скорости качаете? Там же 1 метр всего! Я с диал-апа 53.2Kbps за 3-5 минут такое скачиваю.
Мы, Володь, на работе качаем... А посему не все так просто, не всё так быстро :(
Но вот стянул - запустил (w98) - ошибка :(. Щаз поменяю железки. Вечером попробую дома. Дай бог, чтоб всё было ОК.
Так... Ну на работе под w98 не идет Сразу выбивает... Остаетя ДОМА под ХР...
Т.е. билд 2.5 под 9х все-таки не идет. Ну что же будем думать как побороть. Самое главное где достать на чем тестировать/отлаживать (тестировать еще ладно, вы протестировали, надо бы еще чтобы отлаживать можно было).
Не идет - сразу такой оригинальный и информативный АХТУНГ:
>>>
Программа EMUZWIN вызвала сбой при обращении к странице памяти
в модуле <нет данных> по адресу 0000:00000000.
Регистры:
EAX=00000000 CS=0000 EIP=00000000 EFLGS=00000000
EBX=00000000 SS=0000 ESP=00000000 EBP=00000000
ECX=00000000 DS=0000 ESI=00000000 FS=0000
EDX=00000000 ES=0000 EDI=00000000 GS=0000
Байты по адресу CS:EIP:
Содержимое стека:
<<<
Причем унреал тоже на 2Gforce и тп вылетает - это решается подбором видеокарты - как правило любой радеон. Машина тестовая - железо местами вечно разное...
Так вот тут такие номера не прошли - стабильный ахтунг
Насчет "работы" Bild2.5 под Win98 подтверждаю. Вываливается именно с тем же сообщением, но как задача (видно по Ctrl+Alt+Del) он продолжает висеть.
это все еще на 9х? Да не парьтесь, не пашет значит не пашет. Разбираться надо. Под ХР пока и под 2К пускайте. А мне 98 еще придумать надо как завести. Только что под вмварей если.
Все, аплодится 2.7 bld 2.5b. Теперь должно работать на 9х и на атлонах 64.
Зааплодилось. Пробуйте.
Так, у вас наверное выходной. Ну так я положил уже 2.7 bld 2.5c (что-то на выходе падало, подправил чуток).
Запускается! Ну еще погоняю немного - отпишусь
Ну вот и хорошо. (И что так под 98 и будете его мучить? И не жалко его... :) )
Будем Емучить :) Если на работе 98...
Теперь вопрос по работе асма, т.к. всё ради него красивого:
1. FILE "c:\1.scr" - не работает - что не так ? Должно по описанию загрузить бинарник... То же и с include
2. Чем макрос отличается от процедуры - на пальцах мне глупому можно ?
3. Проблемы с вылетом из асма есть все же. :( Но уже при опр. условиях.
4. где ошибка при компиляции - не показывает? (баг или системная ф-я?). Т.е. я так понял, что просто не загорается setPC и все. А где проблЭма - не говоорит
Теперь по встроенному асму - ибо все ради него красивого:
1. FILE "c:\1.scr" - не работает - что не так ? Должно по описанию загрузить бинарник... То же и с include
2. Чем макрос отличается от процедуры - на пальцах мне глупому можно ?
3. Проблемы с вылетом из асма есть все же. Но уже при опр. условиях.
4. где ошибка при компиляции - не показывает? (баг или системная ф-я?). Т.е. я так понял, что просто не загорается setPC и все. А где проблЭма - не говоорит
Вообще-то раньше работало так:Цитата:
Сообщение от Знахарь
ORG 4000h
FILE 1.SCR
- места, откуда берутся файлы задаются настройкой. Но сейчас и это не работает. А, я понял почему не работает, поправлю. Увы только обновлением экзешника, это команды можно поправлять в файле, а директивы только из кода.
Здрасьте, приехали :eek: Макрос это то что вставляется прямо в код, процедура вызывается. В моем асме процедура PROC - это только для локализации меток. Так это просто метка, хоть JP хоть CALL ей делай, хоть в HL загружай.Цитата:
2. Чем макрос отличается от процедуры - на пальцах мне глупому можно ?
Так как насчет условий? Колитесь, поправлю заодно все сразу. Ну дорого мне метрами забрасывать (да и вам как я гляжу качать этот метр). Оно конечно можно экзешник положить отдельно. Но все равно 0,6 метра - не особо лучше.Цитата:
3. Проблемы с вылетом из асма есть все же. Но уже при опр. условиях.
Может не работает разделитель основного окна и окна с сообщениями? Я в 9х на него не смотрел. Он выглядит как горизонтальная вдавленная линия. На него надо навести мышь или что у вас вместо нее, схватить и потащить (вверх). По идее это просто панлька с обработчиком нажатия мыши, не думаю чтобы она в 9х не работала.Цитата:
4. где ошибка при компиляции - не показывает? (баг или системная ф-я?). Т.е. я так понял, что просто не загорается setPC и все. А где проблЭма - не говоорит
Загружать мне можно что угодно и сколько угодно. Более того, если есть возможность сделать типа ФТП - я могу забирать прям оттуда - это к тому что могу погонять - доложить а потом после нескольких таких уже выложить один раз..
Хорошо, с процедурой ясно... А как внутри макроса локализировать ?
Да... не силен я в ньюансах, т.е. мне из аласма перейти - вот по нему и ровняюсь...
Условия - завтра будут после обеда. Но там далеко не нада лезть :) там опять всё чуть ли не сразу лягло :(
Что-то не могу повторить подвиг :) :(
Но было что-то типа (мож натолкнет на мысль)
org 26000
FILL 16384,6143,0
FILL MACRO /0,/1,/2
LD HL,/0
LD DE,/1
...
ENDM
А окно с сообщениями просто было приклеено к низу, так сказать. Всё и везде ОК - спасибо.
Осталось последнее, чтоб закончить иммиграцию из аласма и Анрила:
раскладка клавиатуры. Как её сменить т.е. нужно чтоб как в анреале:
"ё"или"`" - cs+1 edit
tab - cs+space break
ну и тд...
И можно добавить в настройки цветов для асма смену цвета фона (черного хоцца) ?
В описании написано вроде что макро должно быть определено выше чем используется.
В моем эмуляторе можно любую клавишу ПЦ (кроме некоторых вроде Escape) переопределить на 1 или 2 клавиши или "джойстик-клавиши" спека.
Я занялся выносом асма из эмулятора. Будет dll-плагин, с исходниками. Можно будет использовать из другого эмулятора, или сделать standalone кросс-компилятор.
"макро должно быть выше" - совершенно верно - я имел ввиду условия в которых эмуль вылетал так же как с "ld d" c чего эта беседа и началась. Просто думал, что это натолкнет на какую мысль...
Ну а вынос асма никак не повлияет на вот такую структуру работы с ним - в связке с дебугером и тп. Ну а загрузка файлов и исходников ? Не будет ли она в виде "с:\zx\screen1.C" Хотя фишка с директориями поиска имеет свой плюс...
Когда ждать фикса подгрузки бинов/сорцов ? - руки-то чешутся
Состояние сейчас такое. Я вынес асм из эмулятора, точнее просто переписал его по новой -около 4000 строк кода (зато он теперь быстро пашет, я отменил разбор по таблицам - код-то ведь теперь будет открыт, зачем городить). Сейчас тестирую. Базовый асм работает, осталось проверить макросы, и хорошо потестировать С-like-конструкции (как-нибудь я их уже оттестировал, но надо еще). Обещаю к середине-концу недели выложить. Если только не упадет астероид с футбольное поле, цунами не покроет всю планету, не отключат электроэнергию в Новосибирске, и не перестанет работать интернет :) ). Зато теперь при глюках в асме можно будет его отдельно выкладывать, людей которым он нужен существенно меньше чем тех кому нужен просто эмулятор поиграть и демки поглядеть, и они народ более (бес)спокойный насчет качнуть обновление отдельно. Так что тружусь, весь на ниве. Чуточку терпения еще, ладно? Кстати в новой версии : вообще не нужен как разделитель операторов (но понимается), а переносить на новую строку можно будет практически везде где есть пробелы (несколько исключений). Добавил директиву DEFG для представления фонтов прямо в сорцах в красивом виде ('.' = 0, любой другой символ =1 типа ...XX... = 11000.b, пробелы разделители, конец строки здесь как конец одной директивы).
Да, такой вот "фикс" получается. Берется весь старый код выбрасывается, и совсем другой вместо него пишется.
Я готов ждать и надо в нем писать (точнее дописывать) свои долгострои. Ибо они несколько громоздки, а коль есть такая штука, то какого черта.
И кучу файлов теперь можно в директории как человеку...
Слушай, а аналог аласмовского DISPLAY есть ?
DISPLAY нету (а что он делает? Может то что у меня ERROR 'текст'?).
Цитирую из описания аласма:
1. include "filename.ext",2048
Включение в компилируемую программу кодового блока с диска размером "длина" - очень нужно
2. DS количество повторений[,список байт]
Список байт (по умолчанию нулевой байт) копируется в текущий
адрес компиляции. Число циклов = "количество повторений".
- что-то похожее, думаю, уже есть ?
3. При загрузке текста с диска он сканируется на наличие в нем "+"
в начале каждой строки. В процессе компиляции все встреченные
"+" будут заменены на "-", что заставит компилятор пропускать
строки при следующем ассемблировании.
- не очень важно
4. LOCAL
<тело>
ENDL
Объявление локальных меток. Все метки в пределах этой
операторной скобки будут невидимы вне ее (кроме меток,
начинающихся с символа @ - это глобальные метки). Допускаются и
вложенные конструкции.
- это и есть аналог PROC ?
5. DISPLAY [/L,]["any text",][[/D|/H|/A,][/T,]выражение]
Отображает текст или числа в процессе ассемблирования. Ключи
/D, /H и /A устанавливают формат вывода для одного следующего
числа. Далее числа выводятся в текущей системе счисления. /D -
десятичное число, /H - шестнадцатиричное, /A - в обеих
системах.
/L указывает, что необходимо печатать не с новой строки.
/T выводит сначала само выражение, потом его значение.
Примеры:
DISPLAY "code size: ",/D,end-start
DISPLAY /A,"abc+xyz=",abc+xyz
DISPLAY "simple"," text"
6. Выражения
{a} - слово, находящееся в памяти по адресу a
$$ - текущая страница кода
Теперь проблемы, о которых говорил АлКо:
Во всех операциях, кроме + и -, не допускается использование
меток, которые будут определены ниже (из-за однопроходности)
- бывает, кстати. В emuZasme такого нет ?
Версию положил, можно брать. Сейчас между прочим почитаю и отвечу на пост. (А раньше нельзя было или хотя бы мылом? Теперь уже после драки придется смотреть).
1. у меня уже FILE "имя"[,start[,len]]. INCLUDE я оставил для включения куска сорцов как раньше. (Хм, рекомендую пока после INCLUDE ставить сразу метку.)
2. Есть DUP n ... EDUP, FOR i=val_list ... EFOR
3. насчет + - я не понял. Не дело асма менять исходник. По правилам, он должен работать в режиме read-only. Это железно.
4. PROC ... EPROC - Все то же и для того же. Опционально префиксом локальной метки может быть @, _, !, \, что-то еще не помню - в опциях асма. Локальные можно дублировать сколько угодно, и задавать направление для перехода.
5. Да это примерно то же что ERROR, вот только вывод числа я не предусмотрел. Ну можно сделать и DISPLAY, только формат попроще бы, типа
DISPLAY 'txt'[,#expr[,#passes]] (маска на каких проходах делать вывод, как в ERROR).
У меня двух-проходный, а если спользуется C-- -like, то еще делается и третий проход, не вижу с этим проблем. Скорость у меня получилась хорошая, 48К из дизассемблированного кода компилируется меньше секунды. Метки должны быть выше определены только в особых случаях: для повторителей в DEFB (#expr)n..., для ORG. Вроде еще для чего-то. Макросы должны быть выше определены, DEFINE's. Все остальное (вроде) может вниз ссылаться.
В общем все в правилах написано, должно соответствовать.
Сейчас положу первое обновление. И, эх, как всегда первый блин - комом, хоть что нибудь да не так. Не протестил EQU, пока исправлял одно, пропучтил другой. Сейчас так формально более ништяк. Ссылка на обновление ZXAsmPP.dll здесь, и потом будет здесь же (там только собранная dll, примерно 40К в архиве, если очень нужны и исходники, буду и их выкладывать туда же).
Тестировал я на реальном коде, и одновременно писал максиально нереальный (в смысле с использованием всех особенных штук). Так что эта версия асма должна быть уже повернее.
Хотя со скоростью зря я радовался. Поставил цикл FOR i=0 TO 255 а в нем вложенный FOR i=j TO 8 и там по IF #expr THEN macro1 ELSE macro2 EIF, и как... он задумалось... В итоге через полминуты все ОК, компилируется, но это что-меня не устраивает. Надо чего-то еще думать как это убыстрить. Может быть (если тормоза в этом) придется запретить вкладывать INCLUDE внутрь FOR/DUP.
Пол-минуты - это не время :) Будем тестить.
Скорость победил (новое лежит). Кажется, еще и проблемы с устойчивостью были. Возможно придется сам эмулятор пересобрать и переложить. Если та версия что лежит сейчас на выходе ругается (ругается или не ругается?).
Если письма пишите, пишите в поле subj что-нибудь конкретное и покороче. Типа EmuZWin - bla-bla-bla. А то я не знаю теперь, получил я письмо и убил его или оно просто еще не дошло.
Ах, да. Забыл убрать "запрет" на вложенные инклюды (хотя самые тормоза были не в этом, а вызове макросов). Впрочем, это (наверняка) не последний апдейт.
Вообще, убивает как тормозно работает куча во всех этих ЯВУ и как тормозно в частности работают huge strings. Впрочем, я избавился сейчас вообще от всех huge strings, добавил хэширование, специальные скоростные объекты для хранения таблиц имен, свой певдо-менеджер памяти (а чего там мелочиться освобождать ее кусочками, потом в этой куче только тормоза одни - проще выделять до опупения пока идет компиляция и ничего не освобождать, а по окончании разом все освободить, все быстрее будет).
Пишите письма. Я пошел сыну сказку читать, пора ему спатеньки.
вложенные инклюды - ерунда. Совсем забыл, что для DISPLAY я поменял число параметров в callback - функции для передачи сообщения (или не поменял? точно уже не вспомню), так что выклядываю уже и билд 2.6а версии 2.7 эмулятора в полном архиве, если что - берите опять метр. Заодно раскраска для некоторых директив в исходнике подпралена, и DISPLAY с END добавлены в покраску.
Готово, лежит.
Чёто KAY остался совсем без менюшки для выбора пути к ПЗУшке , и ещё желательно сделать отдельную мененюшку под его ПЗУшку с тыр дос .
И кстати переназначенные пути ПЗУшек то ли не сохраняются , толи обнуляются на дефолтные.
З.Ы. Лучше все настройки хранить в виде простого текстового файла.
Что касается моделей, то тут я пока остановился на Пентагоне со Скорпионом (и то у Скорпиона неверная тактовка, как мне пишут). Будет время (и место) - доведу до ума, и прочие модели и видеорежимы и hdd, и TR-DOS. А пока что воюю с компиляторами. Сейчас ZXAsm, потом возвращаюсь к Паскалю. Надолго это.