User Tag List

Показано с 1 по 10 из 65

Тема: Помогите завести EMUzWIN 0.27

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    09.02.2005
    Адрес
    Новосибирск
    Сообщений
    933
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    19
    Поблагодарили
    19 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

    Да, такой вот "фикс" получается. Берется весь старый код выбрасывается, и совсем другой вместо него пишется.
    Последнюю версию EmuZWin (2.7) можно получить по этой ссылке, а "официальная" страница с описанием здесь. Если что-то не пашет, берите там же версии 2.6 или старше. [B]

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2

    Регистрация
    23.03.2005
    Адрес
    г. Чернигов, Украина
    Сообщений
    477
    Спасибо Благодарностей отдано 
    15
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

  4. #3

    Регистрация
    09.02.2005
    Адрес
    Новосибирск
    Сообщений
    933
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    19
    Поблагодарили
    19 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    DISPLAY нету (а что он делает? Может то что у меня ERROR 'текст'?).
    Последнюю версию EmuZWin (2.7) можно получить по этой ссылке, а "официальная" страница с описанием здесь. Если что-то не пашет, берите там же версии 2.6 или старше. [B]

  5. #4

    Регистрация
    23.03.2005
    Адрес
    г. Чернигов, Украина
    Сообщений
    477
    Спасибо Благодарностей отдано 
    15
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

  6. #5

    Регистрация
    09.02.2005
    Адрес
    Новосибирск
    Сообщений
    933
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    19
    Поблагодарили
    19 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Версию положил, можно брать. Сейчас между прочим почитаю и отвечу на пост. (А раньше нельзя было или хотя бы мылом? Теперь уже после драки придется смотреть).
    Последнюю версию EmuZWin (2.7) можно получить по этой ссылке, а "официальная" страница с описанием здесь. Если что-то не пашет, берите там же версии 2.6 или старше. [B]

  7. #6

    Регистрация
    09.02.2005
    Адрес
    Новосибирск
    Сообщений
    933
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    19
    Поблагодарили
    19 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

    В общем все в правилах написано, должно соответствовать.
    Последнюю версию EmuZWin (2.7) можно получить по этой ссылке, а "официальная" страница с описанием здесь. Если что-то не пашет, берите там же версии 2.6 или старше. [B]

  8. #7

    Регистрация
    09.02.2005
    Адрес
    Новосибирск
    Сообщений
    933
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    19
    Поблагодарили
    19 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(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.
    Последнюю версию EmuZWin (2.7) можно получить по этой ссылке, а "официальная" страница с описанием здесь. Если что-то не пашет, берите там же версии 2.6 или старше. [B]

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Новая версия EmuZWin
    от Vladimir Kladov в разделе Эмуляторы
    Ответов: 217
    Последнее: 09.05.2018, 20:32
  2. Вышел EmuZWin v2.6 release 1.0 но ...
    от Paul Pavlov в разделе Эмуляторы
    Ответов: 32
    Последнее: 15.08.2005, 18:09
  3. помогите
    от scl^mc в разделе Музыка
    Ответов: 3
    Последнее: 06.05.2005, 17:01
  4. Помогите!!!
    от Dr.Lion/RSM в разделе Форум
    Ответов: 2
    Последнее: 21.04.2005, 22:15

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •