PDA

Просмотр полной версии : Помогите завести EMUzWIN 0.27



Знахарь
10.01.2006, 18:55
Хочу пользоваться его асмом!
Но завести не могу!
А заведши, неизвестно, правильно ли, асм вешается нагло и напрочь!

Что я не так делаю ? Мож есть ньюансы ? Или кто поделится настроенным под пентагон512, чтоб сесть и пписать, а не долбиться...

Vladimir Kladov
10.01.2006, 22:02
еще раз отвечаю (спрашиваю): версия какая? На сайте 2.7 билд 2.5. Билд смотреть в html-файле что в архиве или ? в главном меню (хотя уже есть сообщение что я с этим ? перемудрил в последнем билде, так что лучше html).
И сразу: что за машина, какая версия винды. Я смог проверить на ХР СП2, 2К СП4, НТ4 СП5 - из того что под рукой. На вмваре проверял под 98, вроде бы тоже работает. Может создает в каталоге какие нибудь файлы. Как-то ругается.

Немного поторопился: билд 2.5 я на нт4 еще не проверял. Сегодня проверил: падает (вообще-то не падает, просто не запускается, но все равно не работает). Возможны еще проблемы под живым 9х, и под атлон 64 тоже наверняка не пойдет. Буду решать новые проблемы несоместимости в ближайшее время. Но ХР и 2К с обычным ПС-совместимым пне-4 должны пойти. Сегодня соберусь два хлама из ушла достать, надо на живом пне100 еще поглядеть и на пне2 тоже. (Вот доусовершенствовался, код стал от проца зависеть).

Vladimir Kladov
11.01.2006, 19:00
Сейчас аплодится билд 2.5а По крайней мере должно работать под NT (но проверить смогу только завтора). А под 9х проверить не удалось - нечем перекинуть на старый пень-100 с 98 на борту (там есть флопи, а у меня нету, у меня есть сеть, усб, а там такого не водится. Да что говорить, там мыши нет - потому что только комовский вход, а у мен все 5 штук - пс/2 или усб... Буду искать хлама по друзьям, чтобы проверить).

[bETA]mEN
11.01.2006, 21:26
Сейчас аплодится билд 2.5а
меню ? заработало :v2_clapp:

Знахарь
12.01.2006, 13:04
Сразу хочу пояснить: решил поспрашивать тут, т.к. уверен, что это даст гораздо больший результат, в том числе и по времени, потраченному на разбирание что и к чему... А времени, должен пожаловаться, крайне мало :(

Поэтому не зовите лентяем / идиотом - просто подскажите! :)))

Итак:
1. запустил эмуль. Все ОК. хочу менять РОМы на свои - иду в настройки, указываю пути к РОМам. Все ромы проверены, по 16384 и используются в УНреале. Закрываю окошко настроек - ничего не меняется... Захожу в настройки РОМов - там уже пусто. Т.е. ни один путь не запоминается ни при закрытии эмуля ни при каких обстоятельствах...

В итоге я понял, что для пентагона 512к нужен РОМ на 32кб в котором сперва басик128, потом 48. Закончилось тем, что я заменил РОМы в директории эмулятора (те, которые он распаковывает 7зипом). Т.е. подсовывал под теми же именами свои РОМы - в итоге заработало... Вот и вопрос: должно ведь оно делаться нормальным путем ?


2. раскладки клавиатуры: хотелось бы как в УНреале. Думаю это где-то есть, просто я не добрался...


3. Для чего это делалось? Для чудо-ассемблера! С подсветкой и закладками!

набираю:

org 26000
ld h

нажимаю compile и эмуль виснет. Напрочь. Т.е. после проб я понял, что при правлиьных, так сказать, командах не вешается. А иначе вешается... Не пробовал ни метки ни DEFИ - нет смысла, если виснет чуть ли не в первой строчке.


Все сказанное справедливо для 3х машин: домашней, домашней младшего и рабочей. Конфигурации разные - т.е. железо отпадает 100%. Винды ? Ну так на одной машине XPsp2 ENG, на второй XPsp1 RU, а на работе ваще w98se...

Вот такие грабли :(

Знахарь
17.01.2006, 13:22
АУУУ!!!!

Vladimir Kladov
17.01.2006, 16:13
эй народ! Знахарь мои сообщения в упор не видит. То ли у него фильтр стоит и он меня забанил... Я ему говорю: обнови версию, передайте ему, плиз, кто-нибудь, а?

У меня не вешается. Просто сообщает в нижнем окошке, что Syntax unknown ld h. Команда ld (по крайней мере в моем асме) требует оба операнда.

Знахарь
17.01.2006, 16:25
ВИНОВАТ!!! :) КАЧАЮ обновленную версию. О результатах немедленно доложу:) Спасибо!!!

Vladimir Kladov
17.01.2006, 20:49
я не понял. Уже больше 3 часов прошло. Вы не какой скорости качаете? Там же 1 метр всего! Я с диал-апа 53.2Kbps за 3-5 минут такое скачиваю.

Знахарь
19.01.2006, 13:00
Мы, Володь, на работе качаем... А посему не все так просто, не всё так быстро :(
Но вот стянул - запустил (w98) - ошибка :(. Щаз поменяю железки. Вечером попробую дома. Дай бог, чтоб всё было ОК.

Знахарь
19.01.2006, 14:20
Так... Ну на работе под w98 не идет Сразу выбивает... Остаетя ДОМА под ХР...

Vladimir Kladov
19.01.2006, 16:09
Т.е. билд 2.5 под 9х все-таки не идет. Ну что же будем думать как побороть. Самое главное где достать на чем тестировать/отлаживать (тестировать еще ладно, вы протестировали, надо бы еще чтобы отлаживать можно было).

Знахарь
19.01.2006, 16:14
Не идет - сразу такой оригинальный и информативный АХТУНГ:
>>>
Программа 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 и тп вылетает - это решается подбором видеокарты - как правило любой радеон. Машина тестовая - железо местами вечно разное...

Так вот тут такие номера не прошли - стабильный ахтунг

spensor
19.01.2006, 17:15
Насчет "работы" Bild2.5 под Win98 подтверждаю. Вываливается именно с тем же сообщением, но как задача (видно по Ctrl+Alt+Del) он продолжает висеть.

Vladimir Kladov
19.01.2006, 20:38
это все еще на 9х? Да не парьтесь, не пашет значит не пашет. Разбираться надо. Под ХР пока и под 2К пускайте. А мне 98 еще придумать надо как завести. Только что под вмварей если.

Vladimir Kladov
20.01.2006, 22:14
Все, аплодится 2.7 bld 2.5b. Теперь должно работать на 9х и на атлонах 64.

Зааплодилось. Пробуйте.

Vladimir Kladov
21.01.2006, 09:37
Так, у вас наверное выходной. Ну так я положил уже 2.7 bld 2.5c (что-то на выходе падало, подправил чуток).

Знахарь
23.01.2006, 18:38
Запускается! Ну еще погоняю немного - отпишусь

Vladimir Kladov
23.01.2006, 21:37
Ну вот и хорошо. (И что так под 98 и будете его мучить? И не жалко его... :) )

Знахарь
24.01.2006, 11:48
Будем Емучить :) Если на работе 98...

Теперь вопрос по работе асма, т.к. всё ради него красивого:

1. FILE "c:\1.scr" - не работает - что не так ? Должно по описанию загрузить бинарник... То же и с include

2. Чем макрос отличается от процедуры - на пальцах мне глупому можно ?

3. Проблемы с вылетом из асма есть все же. :( Но уже при опр. условиях.

4. где ошибка при компиляции - не показывает? (баг или системная ф-я?). Т.е. я так понял, что просто не загорается setPC и все. А где проблЭма - не говоорит

Знахарь
26.01.2006, 17:51
Теперь по встроенному асму - ибо все ради него красивого:


1. FILE "c:\1.scr" - не работает - что не так ? Должно по описанию загрузить бинарник... То же и с include
2. Чем макрос отличается от процедуры - на пальцах мне глупому можно ?
3. Проблемы с вылетом из асма есть все же. Но уже при опр. условиях.
4. где ошибка при компиляции - не показывает? (баг или системная ф-я?). Т.е. я так понял, что просто не загорается setPC и все. А где проблЭма - не говоорит

Vladimir Kladov
26.01.2006, 19:01
1. FILE "c:\1.scr" - не работает - что не так ? Должно по описанию загрузить бинарник... То же и с includeВообще-то раньше работало так:
ORG 4000h
FILE 1.SCR
- места, откуда берутся файлы задаются настройкой. Но сейчас и это не работает. А, я понял почему не работает, поправлю. Увы только обновлением экзешника, это команды можно поправлять в файле, а директивы только из кода.


2. Чем макрос отличается от процедуры - на пальцах мне глупому можно ?Здрасьте, приехали :eek: Макрос это то что вставляется прямо в код, процедура вызывается. В моем асме процедура PROC - это только для локализации меток. Так это просто метка, хоть JP хоть CALL ей делай, хоть в HL загружай.


3. Проблемы с вылетом из асма есть все же. Но уже при опр. условиях. Так как насчет условий? Колитесь, поправлю заодно все сразу. Ну дорого мне метрами забрасывать (да и вам как я гляжу качать этот метр). Оно конечно можно экзешник положить отдельно. Но все равно 0,6 метра - не особо лучше.


4. где ошибка при компиляции - не показывает? (баг или системная ф-я?). Т.е. я так понял, что просто не загорается setPC и все. А где проблЭма - не говооритМожет не работает разделитель основного окна и окна с сообщениями? Я в 9х на него не смотрел. Он выглядит как горизонтальная вдавленная линия. На него надо навести мышь или что у вас вместо нее, схватить и потащить (вверх). По идее это просто панлька с обработчиком нажатия мыши, не думаю чтобы она в 9х не работала.

Знахарь
26.01.2006, 19:12
Загружать мне можно что угодно и сколько угодно. Более того, если есть возможность сделать типа ФТП - я могу забирать прям оттуда - это к тому что могу погонять - доложить а потом после нескольких таких уже выложить один раз..

Хорошо, с процедурой ясно... А как внутри макроса локализировать ?

Да... не силен я в ньюансах, т.е. мне из аласма перейти - вот по нему и ровняюсь...

Условия - завтра будут после обеда. Но там далеко не нада лезть :) там опять всё чуть ли не сразу лягло :(

Знахарь
27.01.2006, 16:18
Что-то не могу повторить подвиг :) :(

Но было что-то типа (мож натолкнет на мысль)

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
ну и тд...

И можно добавить в настройки цветов для асма смену цвета фона (черного хоцца) ?

Vladimir Kladov
29.01.2006, 10:08
В описании написано вроде что макро должно быть определено выше чем используется.

В моем эмуляторе можно любую клавишу ПЦ (кроме некоторых вроде Escape) переопределить на 1 или 2 клавиши или "джойстик-клавиши" спека.

Я занялся выносом асма из эмулятора. Будет dll-плагин, с исходниками. Можно будет использовать из другого эмулятора, или сделать standalone кросс-компилятор.

Знахарь
30.01.2006, 19:23
"макро должно быть выше" - совершенно верно - я имел ввиду условия в которых эмуль вылетал так же как с "ld d" c чего эта беседа и началась. Просто думал, что это натолкнет на какую мысль...

Ну а вынос асма никак не повлияет на вот такую структуру работы с ним - в связке с дебугером и тп. Ну а загрузка файлов и исходников ? Не будет ли она в виде "с:\zx\screen1.C" Хотя фишка с директориями поиска имеет свой плюс...

Знахарь
31.01.2006, 18:59
Когда ждать фикса подгрузки бинов/сорцов ? - руки-то чешутся

Vladimir Kladov
31.01.2006, 21:03
Состояние сейчас такое. Я вынес асм из эмулятора, точнее просто переписал его по новой -около 4000 строк кода (зато он теперь быстро пашет, я отменил разбор по таблицам - код-то ведь теперь будет открыт, зачем городить). Сейчас тестирую. Базовый асм работает, осталось проверить макросы, и хорошо потестировать С-like-конструкции (как-нибудь я их уже оттестировал, но надо еще). Обещаю к середине-концу недели выложить. Если только не упадет астероид с футбольное поле, цунами не покроет всю планету, не отключат электроэнергию в Новосибирске, и не перестанет работать интернет :) ). Зато теперь при глюках в асме можно будет его отдельно выкладывать, людей которым он нужен существенно меньше чем тех кому нужен просто эмулятор поиграть и демки поглядеть, и они народ более (бес)спокойный насчет качнуть обновление отдельно. Так что тружусь, весь на ниве. Чуточку терпения еще, ладно? Кстати в новой версии : вообще не нужен как разделитель операторов (но понимается), а переносить на новую строку можно будет практически везде где есть пробелы (несколько исключений). Добавил директиву DEFG для представления фонтов прямо в сорцах в красивом виде ('.' = 0, любой другой символ =1 типа ...XX... = 11000.b, пробелы разделители, конец строки здесь как конец одной директивы).

Да, такой вот "фикс" получается. Берется весь старый код выбрасывается, и совсем другой вместо него пишется.

Знахарь
31.01.2006, 23:29
Я готов ждать и надо в нем писать (точнее дописывать) свои долгострои. Ибо они несколько громоздки, а коль есть такая штука, то какого черта.
И кучу файлов теперь можно в директории как человеку...
Слушай, а аналог аласмовского DISPLAY есть ?

Vladimir Kladov
01.02.2006, 21:12
DISPLAY нету (а что он делает? Может то что у меня ERROR 'текст'?).

Знахарь
02.02.2006, 01:40
Цитирую из описания аласма:
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 такого нет ?

Vladimir Kladov
02.02.2006, 21:05
Версию положил, можно брать. Сейчас между прочим почитаю и отвечу на пост. (А раньше нельзя было или хотя бы мылом? Теперь уже после драки придется смотреть).

Vladimir Kladov
02.02.2006, 21:27
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. Все остальное (вроде) может вниз ссылаться.

В общем все в правилах написано, должно соответствовать.

Vladimir Kladov
03.02.2006, 14:32
Сейчас положу первое обновление. И, эх, как всегда первый блин - комом, хоть что нибудь да не так. Не протестил EQU, пока исправлял одно, пропучтил другой. Сейчас так формально более ништяк. Ссылка на обновление ZXAsmPP.dll здесь (http://bonanzas.rinet.ru/zx/ZXAsmPP.zip), и потом будет здесь же (там только собранная dll, примерно 40К в архиве, если очень нужны и исходники, буду и их выкладывать туда же).

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

Хотя со скоростью зря я радовался. Поставил цикл FOR i=0 TO 255 а в нем вложенный FOR i=j TO 8 и там по IF #expr THEN macro1 ELSE macro2 EIF, и как... он задумалось... В итоге через полминуты все ОК, компилируется, но это что-меня не устраивает. Надо чего-то еще думать как это убыстрить. Может быть (если тормоза в этом) придется запретить вкладывать INCLUDE внутрь FOR/DUP.

Знахарь
03.02.2006, 17:04
Пол-минуты - это не время :) Будем тестить.

Vladimir Kladov
03.02.2006, 20:15
Скорость победил (новое лежит). Кажется, еще и проблемы с устойчивостью были. Возможно придется сам эмулятор пересобрать и переложить. Если та версия что лежит сейчас на выходе ругается (ругается или не ругается?).

Если письма пишите, пишите в поле subj что-нибудь конкретное и покороче. Типа EmuZWin - bla-bla-bla. А то я не знаю теперь, получил я письмо и убил его или оно просто еще не дошло.

Vladimir Kladov
03.02.2006, 20:21
Ах, да. Забыл убрать "запрет" на вложенные инклюды (хотя самые тормоза были не в этом, а вызове макросов). Впрочем, это (наверняка) не последний апдейт.

Вообще, убивает как тормозно работает куча во всех этих ЯВУ и как тормозно в частности работают huge strings. Впрочем, я избавился сейчас вообще от всех huge strings, добавил хэширование, специальные скоростные объекты для хранения таблиц имен, свой певдо-менеджер памяти (а чего там мелочиться освобождать ее кусочками, потом в этой куче только тормоза одни - проще выделять до опупения пока идет компиляция и ничего не освобождать, а по окончании разом все освободить, все быстрее будет).

Пишите письма. Я пошел сыну сказку читать, пора ему спатеньки.

Vladimir Kladov
03.02.2006, 20:51
вложенные инклюды - ерунда. Совсем забыл, что для DISPLAY я поменял число параметров в callback - функции для передачи сообщения (или не поменял? точно уже не вспомню), так что выклядываю уже и билд 2.6а версии 2.7 эмулятора в полном архиве, если что - берите опять метр. Заодно раскраска для некоторых директив в исходнике подпралена, и DISPLAY с END добавлены в покраску.

Готово, лежит.

fan
04.02.2006, 03:28
Чёто KAY остался совсем без менюшки для выбора пути к ПЗУшке , и ещё желательно сделать отдельную мененюшку под его ПЗУшку с тыр дос .
И кстати переназначенные пути ПЗУшек то ли не сохраняются , толи обнуляются на дефолтные.
З.Ы. Лучше все настройки хранить в виде простого текстового файла.

Vladimir Kladov
04.02.2006, 06:48
Что касается моделей, то тут я пока остановился на Пентагоне со Скорпионом (и то у Скорпиона неверная тактовка, как мне пишут). Будет время (и место) - доведу до ума, и прочие модели и видеорежимы и hdd, и TR-DOS. А пока что воюю с компиляторами. Сейчас ZXAsm, потом возвращаюсь к Паскалю. Надолго это.

Vladimir Kladov
04.02.2006, 13:18
Готово субботнее обновление ZXAsm++. Исправил умножение в операциях (* не в начале строки тоже по ошибке считалась началом комментария в некоторых случаях), вообще подсчет выражений с более чем 1 операцией типа x+y*z. Добавил выборку из строки подстроки "stroka"[ n[,L] ], сравнение строк "s1" = "s2". Если есть желание можно качнуть весь EMuZWin 2.7 bld 2.6b - там я исправил расцветку строк, добавил в расцветку задний план.

Из запланированного осталось вроде только добавить более жесткий контроль хождения на втором и 3-ем (при наличии) проходе, чтобы компиляция шла по тем же веткам и использовались те же значения в DUP, FOR (а это я даже пока не знаю как сделать, чтобы подешевле вышло). Ну это на самом деле, не критично. Если код написан разумно, должно ходить по тем же веткам, никаких проблем. Зато двух-проходность полезна для подсчета ссылок вперед. (А трех-проходность позволяет оптимизировать переходы в дополнительных конструкциях типа IFcond)

Vladimir Kladov
05.02.2006, 10:44
Вот какую штуку вспомнил. Когда-то давно в своем асме и METAL'е делал макросы, которые формировали отнесенные на расстояние таблицы (обычно сразу по концу кода), и в эти таблицы заносили список адресов для модификации. Для создания перемещаемого кода. Т.е. пишется макрос типа
REF MACRO
@save_cur = .
.=next_free
DEFW @save_cur-2-start
.next_free=.
.=@save_cur
ENDM
(не точная копия, а идея - по памяти)
Далее, программа начинается с метки start,
а в конце кода пишется
next_free = .
И после каждого 2х-байтного адреса записывается обращение к REF, вроде:
JP @labelA : REF
В начале кода располагатся самомодификатор, котторый читает таблицу и настраивает код по месту выполнения.

Я к чему это все пишу. Добавил спец. форму присавивания . = #expr | $ = #expr (как было в моих прежних асмах), и сделал контроль определенности имен в ORG, .= expr, и в других местах _опциональным_ (в сегодняшнем обновлении будет). Чревато, но вообще-то программист должен быть как Господь Бог. Ограничения - это для юзеров (шутка, по умолчанию строгий контроль будет включен, отключается опцией).

Vladimir Kladov
05.02.2006, 17:24
Все, воскрсное обновление пошло. Экзешник тоже можно взять (окно меток улучшил, кнопка на настройках расцветки, чтобы все задние планы сделать одинаковыми. Да и там настройка для отмены жесткого контроля ссылок вперед есть). Надеюсь, основную массу багов повыловил в асме.
. = выражение работает, DEFS n[,...] тоже есть. Если что, пишите письма. Если есть желающие сделать оболочку для стандалонной версии компилятора - помогу (исходники все тоже выложил для асма), если есть желание встроить мой асм в другой эмуль - аналогично (можно его так в dll и оставить и юзать через точку входа, интерфейс простецкий).

Vladimir Kladov
06.02.2006, 19:54
Обновление http://bonanzas.rinet.ru/zx/ZXAsmPP.zip
Т.к. как я добавил 0-й проход для предварительного сканирования макросов (для возможности ссылаться на них независимо от того, выше они или ниже), то пришлось поправить работу с переменная=выражение и имя DEFINE строка: информация о таких именах тоже должна собираться на 0-м проходе. Немного улучшил диагностику в случае когда MACRO по ошибке закрыт например ENDP (пришлось лезть в код чтобы понять что случилось, добавил предупреждение на этот случай). Да, еще DEFG теперь можно несколько символов "в ряд" "рисовать", и числа тоже разрешаются (чтобы в шрифтах можно было задавать параметры, если они идут прямо вместе с символом.

Vladimir Kladov
07.02.2006, 15:19
В новом обновлении (вторник 7.02) только дополнения:директива ENCODE для кодирования символах в строках (можно русские буквы в любую 8-бит кодировку прямо комилировать), и связная директива CTEXT ... ENDTEXT для вставки произвольного текста (и правда, не всегда интересно текст держать и подготавливать отдельно, а эа директива еще и любимый спековский флажок в бите 7 ставит на последних символах строк).

Vladimir Kladov
07.02.2006, 18:25
Второе обновление за сегодня. Небольшие фиксы. И главное ORG в банк памяти заработал теперь.

Vladimir Kladov
08.02.2006, 15:18
Средовое обновление: исправлены IFM/IFP/IFPO/IFPE и добавлена директива DEFD (пакованные 16-ричные). Ну и по мелочи еще исправления (скорее улучшения, в условной компиляции, с '/' поборолся. Вот теперь думаю может зря я разрешил в идентификаторах '/' использовать, может все-таки запретить?).

Vladimir Kladov
09.02.2006, 18:57
Еще обновление ZXAsmPP: LOOP -> WHILE..EWHILE|EWHILEB , +EWHILEcond,
+LONGIFcond .. +LONGELSE +чуть более жесткий контроль зарезервированных слов чтобы не пытались превращаться в метку.

Знахарь
09.02.2006, 19:35
Народ! Скажите мне, кто эмулятором пользуется, по поводу кемпстон мыши в эмуляторе: кнопки левая и правая не перевернуты ? В унреале вроде ж наоборот по умолчанию ?

И нигде не нашел описания хоткеев в дебуггере :(
И вообще если кто работает в ZemuASMe - отзовитесь!

Vladimir Kladov
09.02.2006, 20:11
Все хоткеи в меню видны (Tools или контекстное на основной части окна). Я вообще стараюсь все сделать видимым, чтобы хотя бы про недокументированные фичи гору доков не делать). А, есть одна "скрытая" фича - хотя вроде и ее вносил в меню тулз: отключение всплывающих подсказок на тулбаре дебугера - клик по любой кнопке правой мышью. А то задалбливает, если мышкой работать. Всплывает, и всплывает все время. (Рисунки на кнопках и так вроде понятны, один раз всплывающее почитал - и отключить, чтобы не мешали. Правда в сеансе только запоминается. В реестре/ини принципиально не сохраняется эта настройка, а то получится примерно как Fast Tape. Если запоминать, потом народ будет в непонятках: "а где оно?").

Vladimir Kladov
09.02.2006, 21:03
Про мышь правда интересно и мне. Ведь нигде же нормального описания девайса нет. Одни только слухи. И софт для тестирования - кот наплакал. Я на чем-то тестировал, когда делал, а на чем именно - сейчас не помню. Вроде на Art-Studio (или это AY-мышь была, забыл).

Знахарь
10.02.2006, 17:28
То точно была AY мышь... Kempston мышь и в quick commander, BGE, и вообще везде где есть мышь - как правило кемпстон мышь... А в кемпстоне кнопки попутаны. Народ, ну подскажите!!!

Vladimir Kladov
11.02.2006, 09:04
Обновление ZXAsmPP (пока отдельно). Макросы: опциональные параметры можно передавать в любом порядке, порпускать, а не только отбраывать на хвосте. +по мелочам. (ENTRYPOINT #expr) будет работать как обновлю сам эмулятор (к вечеру).

Vladimir Kladov
11.02.2006, 21:56
Еще одно субботнее обновление ZXAsmPP. DISPLAY "text1",#expr1["text2",#expr2]...[,#passes] +небольшое исправление для сравнения строк в выражениях IF expr1 & ("abc" <> "def") например - теперь работает. Эмулятор пока не обновляю.

Vladimir Kladov
12.02.2006, 08:28
Идет обновление эмулятора: 2.6d. Там и новый асм (вчерашний), и F12 в асме вызывает дебагер, а в дебагере - асм. Исправил замеченный q_armando бфг с переключением в режим 256 - падало.

Знахарь
13.02.2006, 15:26
Так с кемпстон мышой может заодно разобраться ? Сделать ручную смену правой левой кнопок

Vladimir Kladov
13.02.2006, 18:50
Не надо сюда еще и кемпстон мешать. Будет возможность - гляну на неделе. Цикл отладки ZXAsm++ можно считать практически законченным. В связи и с чем пощу сюда между прочим сделанную демочку (в аттаче, с исходником на ZXAsm++). При следующем обновлении эмулятора автоматически будет работать ENTRYPOINT (сейчас все еще руками пока в смысле мышкой, но я про метр уже говорил). Осталось: проверить и может быть исправить BREAK/CONTINUE, добавить LONGWHILE, LONGBREAK, LONGCONTINUE. Сейчас положил на сайт обновление ZXAsmPP.dll - но там всего лишь поправки для CTEXT ... ENDTEXT.

Vladimir Kladov
15.02.2006, 16:17
build 2.6e: ENTRYPOINT в асме, обмен клавиш кемпстон-мыши в настройках (нашел доку: у меня сделано как написано d0 - левая, d1 - правая, d2 - средняя).

Vladimir Kladov
16.02.2006, 17:49
Вчера положил build 2.6f (исправление для загрузки палитры в 256-редакторе, больше ничего).

Vladimir Kladov
23.02.2006, 17:18
build 2.6g (исправлены проблемы билда: тулбар в асме, сплиттеры не ездили).

Vladimir Kladov
04.03.2006, 20:33
Версия 2.7 билд 2.7 - все, что обсуждалось в ветках про команду Bit n,(HL), + поправил мультиколор для скорпиона.

команда Bit n,(hl) (http://zx.pk.ru/showthread.php?p=40912#post40912)
просьба реальщикам от эмуляторщиков (http://zx.pk.ru/showthread.php?t=2586)

Возможно еще будут изменения, но на сей момент все тесты сходятся, и есть выбор из 2х процессоров. Спасибо!

Vladimir Kladov
10.03.2006, 14:55
Выложил финальный релиз версии 2.7 - билд 2.8, в преддверии версии 2.8. Просто исправляю напоследок пару багов в дебугере, чтобы пока 2.8 "варится" до кондиции, была альтернатива.

Трап управления скорости работает, но содержимое IX не проверяется (забыл, задумался над видеорежимами). Так что юзать можно, если хочется. Со следующей версии уже будет проверяться, так что лучше вписывать. (Это я по поводу треда "Управление эмултором из спектрум-программы", если кто удивляется, что за трапы такие еще).

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

goodboy
13.03.2006, 12:50
а не трудно разместить все библиотеки,настройки,описа ния,дополнения в отдельных директориях. не хочется проводить параллель с амигой, но помоему так лучше - чем всё в одной куче.

Vladimir Kladov
13.03.2006, 19:39
А вам вообще зачем заглядывать в директорию эмулятора? Отсортируйте файлы по типам, и будет не в куче. ROM's можно и удобно хранить в отдельной папке. (А сейчас поворчу 8-EЭ ) Это мое дело, в куче мне размещать файлы или не в куче, а не пользователя. Кроме того, всегда найдется некоторое количество юзеров, которые будут активно возражать против того, чтобы я создавал множество поддиректорий. Не надо ссылаться на Амигу, я ее в глаза никогда не видел. Вы лучше посмотрите на другие эмуляторы, практически везде используется 1 директория. Наконец, простое соображение: в тексте программы, чтобы обратиться к файлу из директории запуска, я пишу GetStartDir + filename. И код короче. Видели бы вы у меня директорию эмулятора, там еще и все исходники валяются, и все мусорные файлы, которые компилятор создает: 2225 файлов, 147Мбайт, не считая еще 97 поддиректорий = 0,98Гигабайта 8-]]

goodboy
13.03.2006, 19:50
спасибо за подробное объяснение.