Код:count=16384
dup 16
pop hl
ld (count),hl
count+2
edup
Вид для печати
Смысл в том чтоб не писать эту маленькую програмку. Я просто, простой пример привел
---------- Post added at 03:53 ---------- Previous post was at 03:51 ----------
Код:count=16384
dup 16
pop hl
ld (count),hl
count+2
edup
---------- Post added at 03:54 ---------- Previous post was at 03:53 ----------
Как все просто, самое оно, спасибо
---------- Post added at 03:59 ---------- Previous post was at 03:54 ----------
Лень писать декранчеры, чтоб проверить "расписанные" процедуры вывода, т.к. за момент написания они 100раз переделываются и постоянно править декранчер просто лень :)
---------- Post added at 04:02 ---------- Previous post was at 03:59 ----------
jerri, не работает :(
А что это за гон?
pop hl
ld hl,(16384)
pop hl
ld hl,(16386)
pop hl
ld hl,(16388)
pop hl
ld hl,(16390)
Хитрая задержка, с декранчем? ;)
SjASMPlus основан на SjASM v0.39.
Давно уже доступна версия SjASM v0.42 http://home.online.nl/smastijn/sjasm.html
0.42 не совместима с 0.39.
Я создал для себя ebuild для Gentoo: http://portage.perestoroniny.ru/dev-embedded/sjasm/ попутно решил несложную проблему, мешавшую собирать SjASM с новыми версиями компиляторов
http://portage.perestoroniny.ru/dev-...cc-4.8.1.patch
http://portage.perestoroniny.ru/dev-...cc-4.8.1.patch
Никто не обновлял SjASM в SjASMPlus до актуальной версии?
perestoronin, что нового то?
стоит переходить?
Изменения понятны без перевода, субъективно по исходникам стал в два раза больше, думаю нужно опробывать, но и я старой версией не пользовался, и давно уже ничего не делал для Z80 (с 90х):
Цитата:
Sjasm 0.42 is not 100% compatible with version 0.3x. You can use old SjASM 0.39g6, if that is a problem.
Features:
- local labels
- modules
- macros
- file include (source and binary)
- conditional assembly
- 32 bit expression evaluation
- storage maps
- structures
- undocumented Z80 opcodes
OK, that is just the old feature list, but you get the idea. Sjasm is a Z80 assembler.
Known bugs:
Nothing special. Maybe you know some spectacular Sjasm failures?
Все эти фичи были уже в третьей версии. Вот список изменений из документации 4-й версии:
Цитата:
Differences with SjASM version 0.3
Sjasm version 0.4 is largely rewritten, and in some places the syntax and meaning of commands and operators has changed compared to previous versions of Sjasm. Some differences:
New name: Sjasm instead of SjASM.
DC, DZ, ABYTEC and so on only accept strings.
Character constants are 8 bit. No LD HL,'ab' anymore.
Structures cannot be nested.
The "16 bit fake instructions" like LD HL,DE or LDI A,(HL) have been replaced or removed.
PUSH and POP can have only one operand.
The way to update files has changed.
Commands cannot start with a dot.
Command line options have changed.
я бы не рискнул переходить...
рисковать и не нужно, старая версия бажнее чем новая, по крайней мере пока я собирал 0.42 ошибок компиляции было меньше, и код чище, а вот 0.39g6 более бажный оказался (11 файлов против 5 потребовалось поправить).
Выложите пожалуйста примеры для тестов обеих версий кроссассембрера sjasm (0.39g6 и 0.42с), как отлажу и выловлю на ваших примерах ошибки этих кроссассемблеров, можно будет замахнуться и на выпуск свой версии (обозначу её как 1.0.8) SjASMPlus :). А когда пойму что за наработки легли в основу этих компиляторов, то смогу выпустить и новый компилятор для Z80, созданный на современных технологиях (flex, bison), а не полностью на тупиковом c++.
Как будто кто-то вообще пользуется чистый Sjasm для работы, чтобы еще и тесты иметь... Все пишут на адаптированной версии.
наверняка. но в ней скорее всего нет специфичных для спека фич (для работы с памятью, образами, снапшотами). +поменяли синтаксис, зарезав какие-то команды... чем больше таких мелочей, тем сомнительнее затея... старый sjasmplus хоть и бажный, но не очень критично, а в новом никаких киллерфич не замечено.
SjASMPlus бывает сильно плющит при определении места ошибки, при отсутствии конца макроса или модуля, метки в макросах - вообще минное поле, поэтому предпочитаю в макрах использовать метки относительные. Но всё это сделать лучше при сохранении функциональности и гибкости врядли возможно, да и как psb сказал, оно не так сильно мешает.
Да, современных, лет по пятнадцать всего гнутым реализациям, а оригиналы вообще в 75м и 70м годах сделали =)
То, что лексер с парсером C(могут и ++) код генерят не смущает? Запили уж на хаскеле.
Со временем, не всё так быстро, думаю всё смогу, с Вашей же помощью. Точнее МЫ СМОЖЕМ, а я один вряд ли ;)
Вот уже готова сборка по мотивам этой темы 1.0.7 под Gentoo http://portage.perestoroniny.ru/dev-embedded/sjasmplus/
PS. Windows я не использую уже несколько лет, только на работе приходится что-то там под ней "тыкать".
Для меня эта тема новая и перспективная. Но одному вряд ли под силу :(
Сначала сделаем на всяких flex и bison, потом и до ФП доберёмся. Мысль верная, конечная цель намечена правильно.
Не-не-не, тут проблема не в умении, а в желании. Ты делаешь продукт, который пока сильно явными преимуществами не обладает. Если ты еще и бэта-тестирование сделаешь сложным, ты вообще останешься единственным тестировщиком :) На форуме пролетало 100500 кроссплатформенных проектов, ведущихся на UNIX со сборками под Windows - поспрошай у народа как оно делается. Навскидку вспоминаются ZXTune и Xpeccy.
perestoronin, для gentoo, если что, есть windows prefix, не знаю, правда, насколько оно работоспособно, пока mingw и msys хватает.
https://www.youtube.com/watch?v=az1RR60s5n4
Я лишь подхватываю то, что уже сделано, и адаптирую под свои условия (Gentoo вместо Win).
Не нужен мне код на c++, который невозможно толком поддерживать. А простенькие описания можно будет легко поддерживать и менять. Посмотрим, что из этой затеи получится, я пока не могу сделать таких далеко идущих выводов, Вам наверное виднее, но я останусь при своём мнении.
Win мне не нужен, с++ тоже. От них я буду уходить при любой возможности, на столько - на сколько это получится. Обратно не зовите на win и с++, не пойду.
возможно асм Robus'а уделает аласм, а кто-то его курил?
это не зависит от флекса и бизона, кроме того, флекс и бизон - это ГЕНЕРАТОРЫ парсеров, к ним надо дописывать код на том же си/си++. или есть другие варианты?
---------- Post added at 23:16 ---------- Previous post was at 23:15 ----------
вот недавно ставил эксперимент, у меня вперед прыгал на метку только из СЛЕДУЮЩЕГО такого макроса... т.е. типа все скомпилилось, но код неправильный... может у меня не самая последняя версия, хз.
Её только Гугл сейчас палочкой.
Не пишу я на Жабе и на с++ тоже желания нет кодить.
Поэтому и буду наработки "вытягивать" из sjasm и sjasmplus и думать как их использовать по возможности без c++ или с минимальными вставками с++.
Патчи, как будут готовы, для update c 0.39 на 0.42 сгодятся на любую платформу.
Результат выполнения команды diff -ru a b > my.patch
К примеру патч для сборки SjASMPlus 1.0.7 без ошибок компиляции под новыми компиляторами (в частности gcc-4.8.1):
http://portage.perestoroniny.ru/dev-...cc-4.8.1.patch
Оригинальным архивом SjASM 0.39f не поделитесь ?