Кстати, о раскрасках и прочих финтифлюшках. Кто какой шрифт использует?
Вид для печати
Кстати, о раскрасках и прочих финтифлюшках. Кто какой шрифт использует?
Black Cat / Era CG, ааа тогда понятно
у акелпада я не нашел возможности отслеживать 2 места файла но за счет плагинов там наверное и не такое есть
есть режим с несколькими окнами или есть с вкладками. - опционально
Crimson Editor меня устраивает для моих под(д)елок более чем во всем. я так понимаю Emeditor - развитие поновее и поплатнее.
Лучшее - враг хорошего.
ггг, напомнило, как мой бывший ученик в Сбере писал килобайтные скрипты vbs и считал номера строке в Notepad =)
на что он пересел - на Aditor или на другое - уже не помню.
notepad++ много чего умеет реально, при этом весит на диске и в раме... ну просто ничего не весит в сравнении со скайпом и dropbox
подсветки и т.п. - все опциями - хоть елку в огнях, хоть голый notepad.
шрифты - выбираем из утсновленных и! есть, если не путаю даже ручное отключение cleartype. для ценящих зрение.
sublime - тоже гут, тоже всего аж выпадает из подола )))) но его можно допилить до ide, что, кстати, успешно делают веб-кодеры.
Ок, кто еще готов поделиться своими связками для работы? Как насчет граф дампера памяти? как в ide HAM для GBA было?
Тоже пользую Sublime, рядом trdtool, Unreal, самописный тул для сборки тапок, bat-скрипты. У Sublime есть проекты - это здорово. Но есть какя-то проблема с открытием модуля с ошибкой в подпапке проекта. Плюс хочется прыгать по меткам и автофолдинг, а этого без парсера текста на уровне редактора не сделать. Была голубая мечта сделать расширение для Visual Studio. Уьогое API и документация для 2010 погубила инициативу на корню. Может быть, когда-нить руки дойдут проверить как обстоят дела в 2017 версии...
хм. дампер памяти? нет, не слышал.
В Spectaculator'e есть опция Export..., жаль не в отладчике.
да, дампер - типа как в emuZwin - в окошке вся память показана в виде графики и это окошко рядом висит и в нем видно прям как раме спрайты готовятся и все такое. Это было в HAM для гаймбоев - там эмуль все показывал.
ага, спасибо, гляну еще и эти эмули
В Xpeccy вот такое есть:
http://savepic.ru/14121407.png
да ладно
любой нормальный человек возьмет
скачает из последнего поста
запустит и оно свалится с ошибками
потом если он прочитает что еще нужно скачать отдельно либы
он их скачает
закинет куда надо
и оно снова свалится с ошибками не запустившись
дальше попросту забьет на все это...
а у меня растут от туда
апсолютно перпендикулярны туловищу
но на концах клещи :rolleyes:
Ну он просто изначально не для винды пишется. Видимо поэтому танцы с бубнами - пингвиноводов же таким не напугать.
А если таким архивом попробовать: https://drive.google.com/file/d/0B2N...ew?usp=sharing
?
- - - Добавлено - - -
Потом просто менять экзешник на новый. Вроде должно работать.
Ну да. Согласен. Это я на случай, может кому пригодится:)
А все запустилось и судя по описанию - там для sjasm уже все запилили аж с лихвой и дебаг получше...
а sprite scanner?
оу... а оно в дебаге в tools
вот это уже похоже на тулзы для gba
Сборка в .TAP
Сборка в .SCL: мой пост из топика
Кажется, у Fuse есть тулза. Или сохранить снапшот и посмотреть моей:
http://g0blinish.ucoz.ru/pb/bingrab.7z
Это не отдельная тулза. Это функция эмулятора Xpeccy (брать его тут: http://zx-pk.ru/threads/9479-xpeccy.html).
Там фича открывается так: жмем Esc - попадаем в дебаггер, сверху кнопка (вроде б 4 слева) с выпадающим меню, третий пункт этого меню. Все.
Новая экспериментальная версия: 20170908
Бинарники для винды и для macOS: https://github.com/mkoloberdin/sjasmplus/releases
Для Linux можно собрать из исходников: https://github.com/mkoloberdin/sjasmplus
Очень неполный список исправленного в частности см. ниже. + что-то наверняка поломано :) , тестирование приветствуется.
Багрепорты и пр. запросы лучше писать сюда: https://github.com/mkoloberdin/sjasmplus/issues
Документация в Wiki (там же можно ее редактировать): https://github.com/mkoloberdin/sjasmplus/wiki
Исправлено.
1-я ссылка: этот код был переписан уже в ветке Vitamin-а, полагаю, исправлено.
2-я: поправил.
Это тоже д.б. исправлено, но на винде я не тестировал.
Win7 64
мусорит, сохраняя пустой блабла.out файл
ошибок не показывает, всё красиво
но бинарника не сохраняет :(
https://i.imgur.com/cko7LfS.png
может ли быть проблема в том, что на ассемблирование посылается файл, в котором ряд инклудов, в последнем из которых идёт само сохрание бинарника в виде
SAVEBIN "../utilz/heavy.bin", GAMESTART
те же исходники рц7 компилит без проблем
Bedazzle, спасибо за тестирование.
Пытаюсь воспроизвести проблему, пока не получается. (ни на Linux ни на Windows) Самое странное что в скриншоте "compiled: 0 lines"
Исходники бы сильно помогли.
Попробую что-нибудь повыпилить, чтобы найти минимально неработающее.
На деле там да, сильно побольше строк :)
https://i.imgur.com/xuJSlfR.png
и впили нормальные системные переменные: когда в ужясме создается снапшот, невозможно печатать текст, все валится.
решается костылем.
Всем привет! Только начинаю осваивать SjASMPlus, собственно с ассемблером Z80 проблем нет, а вот с директивами не очень понятно. Хочется мне объявить в основном коде несколько процедур, а потом вставлять их там где мне нужно. Что-то вроде 'procedure' в Pascal/Delphi. Как это можно сделать в SjASMPlus? Почитал про MACRO и MODULE, но не уверен что это то самое.
Вот иллюстрация чего я хочу, надеюсь будет понятно:
Код:; это не должно компилироваться сразу
procedure SomethingToDo
puch bc
…
pop bc
ret
end procedure
; и это
procedure Init
ld bc, #00ff
out (c), b
ret
end procedure
; и это
procedure AllDone
ld bc, #ffff
out (c), b
ret
end procedure
; а вот это уже попадает в код
org #8000
call Init
call SomethingToDo
...
call SomethingToDo
...
call AllDone
Насколько помню, совсем не то самое.
MACRO, классический макрос, при компиляции его код вставляется туда, где встречается его использование. То есть это совсем не вызов процедуры в классическом виде.
MODULE, по-моему, еще дальше от этого, вроде бы это просто определение отдельного именного пространства, то есть для того, чтобы обратиться к метке, объявленной внутри модуля, извне, надо будет еще и приписать к этой метке имя модуля с точкой в качестве префикса (CALL ModuleName.Label). Это сделано для возможности использования одних и те же меток (с одинаковыми именами) в разных функциональных частях кода.
А ваще не очень понятно, зачем вам это?
Конкретной задачи нет, пока просто экспериментирую в эмуляторе, вспоминаю ассемблер. До этого много кодил в Delphi, и наверное это уже способ мышления такой - всё обёртывать в процедуры и функции, а затем в основном коде вызывать их в нужном порядке. Подумал компилятор ассемблера позволяет вытворять что-то в сходном стиле.
Тогда как с точки зрения рационального программирования можно реализовать мой пример выше? То есть никаких "процедур", просто расставляем в требуемом порядке фрагменты кода, а там где фрагменты должны отработать по несколько раз уже сами решаем где этот фрагмент будет лежать в конечном коде и как он будет вызываться? Просто хочу понять как оно на практике делается.
Ну делайте примерно так.
То есть:Код:Основной код, откуда вызываются процедуры.
Процедура 1.
Процедура 2.
Процедура 3.
А еще, ничего не мешает выделить процедуры по смыслу в отдельные файл(ы), и подключать его(их) через INCLUDE. Тогда в любом нормальном редакторе с поддержкой вкладок, можно открывать эти файлы в отдельных вкладках, а не мотать постоянно простыню кода.Код:; Тут будет основной код
org #8000
call Init
call SomethingToDo
...
call SomethingToDo
...
call AllDone
ret
; это будет компилироваться сразу и лежать сразу за основным кодомSomethingToDo
puch bc
…
pop bc
ret
; и это
Init
ld bc, #00ff
out (c), b
ret
; и это
AllDone
ld bc, #ffff
out (c), b
ret
О, теперь понятно, спасибо. Наконец-то в голове прояснилось. :v2_clapp: Буду экспериментировать дальше.
в дельфи в начале описываются процедуры и функции, а потом уже в конце листинга процедура Main - в асме же можно обратиться к функции из любого места - не важно где она объявлена ДО или ПОСЛЕ вызывающего кода.
Пишешь jp MAIN в самом начале программы и ставишь процедуры, где хочешь. Кросскомпиль Паскаля так и делает, если есть процедуры.
"не должно компилироваться сразу" - а когда ему компилироваться? Может имеются ввиду директивы "условной компиляции" (их применяют для создания универсального исходника который может производить бинарники для разных конфигураций)?
- - - Updated - - -
Смысла "ВСЕ обертывать" нету. Просто пишешь код думая об "структурах" которыми ты манипулируешь, не думая где этот код будет и где эти структуры будут. В процессе будет видно какие куски кода надо выделить в процедуры так как их надо выполнять 2 и более раз (возможны процедуры с многими входами в отличии от паскаля). Если какой-то кусок хочется "свернуть" чтобы он "не путался" в конкретном месте мешая понимать смысл программы, но при этом он не процедура, то для него надо делать include и размещать в отдельном файле (ну или обьявить его макросом и использовать 1 раз).
Добавлю к комментариям выше, что "где лежать" определяется порядком следования кода в исходнике. Выбросить невызываемые процедуры компилятор не может, потому что, в общем-то, категориями процедур он не оперирует (в отличие от Delphi, в ассемблере можно сделать переход на любую команду в коде, и даже внутрь команды).