Просмотр полной версии : Доработанная версия ZX Gens v1.01
Текущая версия
69870
v1.01
Доработки:
Поправлен подсчёт результата выражения
Добавлена возможность сохранять данные спрайтов не только построчно но и по знакоместам
Добавлено сообщение о количестве байт после компиляции
Заменено расширение сохраняемого файла кода на bin
Добавлено сохранение в TAP
Добавлена возможность изменения размера шрифра, цвета шрифта, цвета фона в редакторе
Некоторые мелочи, исправление багов
v1.02
Доработки:
ВАЖНО: Команды и регистры увы пишутся только заглавными буквами
Metka LD (HL),A - верно
Metka Ld (hl),a - приведёт к ошибке
Недочёт убран, теперь регистр не важен
Убран недочёт с мерцанием редактора при редактировании
Теперь можно открывать на редактирование не только TXT
v1.03
Будет ли поддержка снапшотов?
Сделал
v1.04
Ещё исправления.
Найдены были ошибки типа if ((a < -128) && (a > 127))
Ещё немного поправил расчёт выражений
Добавлено использование символа $
Добавлено использование расширенного варианта DEFS a,b
Не разрешает открывать в качестве исходника файлы с произвольным расширением.
Будет ли поддержка снапшотов?
Старт компиляции
Построение таблицы меток
Мнемоника не найдена
Строка 10: Ошибка. Не удалось создать таблицу
EQU не знает
каждая ошибка прерывает компиляцию.
ждём обновления ;)
Мнемоника не найдена
Строка 10: Ошибка. Не удалось создать таблицу
Увы всё нужно писать только большим шрифтом(за исключением меток и текстовых строк разумеется), не понимает по другому(
- - - Добавлено - - -
Не разрешает открывать в качестве исходника файлы с произвольным расширением.
Увы так, но можно в txt переименовать и редактировать себе))
EQU не знает Знает)
- - - Добавлено - - -
каждая ошибка прерывает компиляцию.
А иначе кода и не сгенерировать, пока не исправлена ошибка, так как не сможет посчитать длину команды в байтах и просчитать адрес следующей)
Увы всё нужно писать только большим шрифтом(за исключением меток и текстовых строк разумеется), не понимает по другому(
это надо править
Увы так, но можно в txt переименовать и редактировать себе))
у меня рабочая папка с различными исходниками весит 1Gb
даже если 99% это различные бинарники я не буду это править ;)
Знает)
equ не знает ;)
METKA[tab]ОПЕРАНД[tab]ДАННЫЕ
то что метка - трогать нельзя
то что операнд - надо приводить куда то там
то что данные - надо как то распознавать
LaBeL LD hl,LaBeL
LaBeL ld HL,LaBeL
LaBeL LD HL,LaBeL
LaBeL ld hl,LaBeL
это должно распознаваться всегда.
А иначе кода и не сгенерировать, пока не исправлена ошибка, так как не сможет посчитать длину команды в байтах и просчитать адрес следующей)
нууу и строку нужно дублировать тоже
equ не знает
METKA[tab]ОПЕРАНД[tab]ДАННЫЕ
то что метка - трогать нельзя
equ не знал, знал EQU, но теперь знает и маленькими)
Насчёт меток.
LaBeL == LABEL == label
так как произведён обычный UpperCase всего, что не в кавычках
Если не трогать метку, то в операндах она может быть UpperCase, и при дальнейшей проверке имя не совпадёт, посчитает разными именами.
Да и не вижу смысла делать метки с одинаковым текстом, но с разными регистрами букв..
Dwa83,
defs #ff00-$,#ff
почему не понимает?
defs #ff00-$,#ff
почему не понимает?
Он $ не понимает, и так же я забыл добавить рассчёт выражений в операндах DEFS(
Кстати, в выражениях там намудрил, потому могут выпадать ошибки, что некоторые выражения типа 123+#fb-"t"+%10001011 может и не смочь посчитать.
Обновил шапку. Версия 1.03 - добавлено сохранение снапшотов. Нужно тестить всё ли в порядке.
Похоже жёсткий косяк. Он не считает defs #ff00,#ff00. Надо исправлять
jerri, Вопрос.
Вот в книжке написано
DEFS - резервируется (и заполняется нулями) область памяти длиной в указанное число байт.
Что означает выражение defs #ff00-$,#ff ?
Расширенный вариант DEFS, где память заполняется значением #ff?
- - - Добавлено - - -
Обновил шапку, залил новую версию
Dwa83, defs количество,[заполнитель]
если не указано, заполняем 0
- - - Добавлено - - -
Dwa83, как и в каком случае у тебя создается снапшот?
Dwa83, как и в каком случае у тебя создается снапшот?
В любом случае при нажатии на кнопку или пункт создания SNA, даже если проги как таковой нет(0 байт), или даже с ORG 0, но тогда снапшот будет ущербный.
а как? вот тут в теме консультировался по данному поводу, и готовый результат оставил на всякий случай(48k или 128k выбирается в настройках, но при 128k все остальные банки пустым заполняются).
https://zx-pk.ru/threads/30833-programmnoe-sozdanie-sna.html
но при 128k все остальные банки пустым заполняются
а в тексте программы можно указывать в какую банку компилировать код ?
а в тексте программы можно указывать в какую банку компилировать код ?
В данной версии такого нет, но могу попробовать сделать, если это необходимо. Только я не знаю как это в редакторе обозначается.
В данной версии такого нет, но могу попробовать сделать, если это необходимо. Только я не знаю как это в редакторе обозначается.Тебе стоит почитать инструкцию к sjasm
Dwa83, не понимает подгрузку данных
map incbin "batiscaf.map"
Вроде понял как сделать банки памяти, но как тогда организовать сохранение бинарника? Несколькими файлами? Файл для основного кода Code.bin, а затем для используемых банков Code[1].bin, Code[3].bin, Code[4].bin?
Вроде понял как сделать банки памяти, но как тогда организовать сохранение бинарника? Несколькими файлами? Файл для основного кода Code.bin, а затем для используемых банков Code[1].bin, Code[3].bin, Code[4].bin?Если компилишь в 48 к
То отгружаешь блоки или блок как есть
Если в 128 то пишешь те блоки где что то есть
Возможно с указанием адреса и страницы
Например pg1c000
Просьба потестить пробный вариант
Чтоб указать страницу, нужно писать PAGE n.
Далее компилятор будет иметь ввиду, что код идёт с адреса #C000
Возможен вариант
Page 1
code
code
Page 4; кусок кода 4ой страницы прям посреди кода другой страницы
code
code
Page 1
more_code
Page 2 - отменяет выбор какой-либо страницы
69889
Powered by vBulletin® Version 4.2.5 Copyright © 2026 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot