Просмотр полной версии : Разработка под эмулятором
Hacker VBI
05.03.2013, 15:13
Здравствуйте Все!
Подскажите "новичку", как Вы разрабатываете код под эмулятором?
Первый вопрос - по сохранению работы на "диск"
:v2_dizzy_coder:
Hacker VBI, тебе нужен кросс ассемблер (sjasm) какаянибудь среда программирования (akelpad) и эмулятор (unreal)
компилишь в снап запускаешь в анриле
финальную сборку собираешь как тебе удобнее
Hacker VBI
05.03.2013, 16:24
Hacker VBI, тебе нужен кросс ассемблер (sjasm) какаянибудь среда программирования (akelpad) и эмулятор (unreal)
компилишь в снап запускаешь в анриле
финальную сборку собираешь как тебе удобнее
Можешь показать пример кода?
вот это создаёт 13 байт в файле *.out
ld hl,#4000
ld de,#4001
ld bc,#1800
ld (hl),a
ldir
ret
Как лучше огранизовать?
code @ 8000h
добавляет 32кб нопов в начале :)
Hacker VBI
05.03.2013, 17:19
Sjasm savesna "primer.sna" ,start и device zxspectrum128 не понимает
чем компилируете?
Hacker VBI
05.03.2013, 17:32
в общем помогло code @ #8000
и т.д.
после компиляции переименовую в *.bin
спектакулятор хавает, уже прогресс.
Пока спасибо.
SAM style
05.03.2013, 18:52
Только нативный асм, только хардкор!
http://zx.pk.ru/showthread.php?t=10442&highlight=%EF%E8%F8%E5%EC+%E0%F1%F1%E5%EC%E1%EB%E5 %F0%E5+%EF%EE%E4+%FD%EC%F3%EB%FF%F2%EE%F0%EE%EC
Там есть разные примеры
После того, как попробовал «Sublime Text 2» на другие редакторы уже смотреть не могу :rolleyes:
http://img13.imageshost.ru/img/2013/03/05/image_51361320e0d33_small.jpg (http://img13.imageshost.ru/img/2013/03/05/image_51361320e0d33.jpg)
После того, как попробовал «Sublime Text 2»
о, а раскраска есть?
---------- Post added at 21:49 ---------- Previous post was at 21:48 ----------
ну и сниппетов бы понаделать побольше! ваще мега-вещь была бы!
о, а раскраска есть?
Ну я писать начал, сделал основные, но до конца руки так пока и не дошли сделать.
ну и сниппетов бы понаделать побольше! ваще мега-вещь была бы!
Ну это да. :rolleyes:
Andrew771
05.03.2013, 21:24
Эмулятор EmuZWin со встроенным ассемблером и дебаггером наше всё! И не нужны никакие связки прог.
Alex Rider
05.03.2013, 21:37
Ну я писать начал, сделал основные, но до конца руки так пока и не дошли сделать.
Блин, а можешь сделать "полный фарш"? Меня уже тоже тошнит от ConTEXT, но лучше найти ничего не получилось. Что хочется:
раскраска текста;
outlining;
code completion;
module view;
переход от строки с ошибкой в текст;
проект с конфигурациями, конвертирующимися в DEFINEs;
запуск эмулятора со скомпилироанным файлом;
breakpoints;
Эмулятор EmuZWin со встроенным ассемблером и дебаггером наше всё! И не нужны никакие связки прог.
Дебаггер да, а асм там скудноват. Мало информации дает по ошибкам.
А мне старый добрый FAR как-то роднее :)
А мне старый добрый FAR как-то роднее
я вот тоже так думал... и не сразу мне саблим понравился, кой-чего от фара там не хватает. но теперь как-то не очень в фаре круто:) хотя пока отторжения не вызывает, что тоже хорошо. а главное - плагины на питоне рулят! было бы время этим заниматься...
Блин, а можешь сделать "полный фарш"? Меня уже тоже тошнит от ConTEXT, но лучше найти ничего не получилось.Что хочется:
К сожалению я не сильно разбирался в редакторе и как под него писать, поэтому сделал только раскраску и то, честно говоря не совсем понятно как там устроена сама логика раскраски :dizzy_mad_old:
раскраска текста;
Как я уже сказал выше, частично она готова, в сильном желании можно добавить все оставшиеся мнемоники.
outlining
Ты имеешь ввиду сделать список меток для быстрого перехода?
code completion
Он как бы есть дефолтовый для текста, но поскольку мнемоники всего пару символов это больше раздражает, чем помогает.
module view
Тут поясни, что конкретно ты хочешь видеть?
переход от строки с ошибкой в текст
честно скажу компилятор я не настраивал, но чисто гипотетически думаю возможно.
проект с конфигурациями, конвертирующимися в DEFINEs
Вот за это точно не скажу, но опять же редактор достаточно гибкий, и если разобраться можно много чего написать.
запуск эмулятора со скомпилироанным файлом
Опять же мне это не нужно было, поскольку у меня запускается хитрый батник, который монтирует образ харда, копирует туда новые файлы, отмонтирует и запускает эмулятор. В теории можно повесить вызов на хоткей какой-нибудь.
breakpoints
По идеи наверное можно взять данные из редактора и как-то выгрузить, но опять же, для кого? для Unreal? в каком формате? или кто будет отладкой заниматься?
В атачменте незаконченная раскраска для «Sublime Text 2».
Распаковывается в c:\Users\%UserName%\AppData\Roaming\Sublime Text 2\Packages\User\
http://img13.imageshost.ru/img/2013/03/06/image_513669a2b0fe8_small.jpg (http://img13.imageshost.ru/img/2013/03/06/image_513669a2b0fe8.jpg)
По поводу билда немного стрындел :) Он есть по Ctrl+B. Файл sjasmplus.sublime-build там же размещается где файлы цвета, в нём всего пару строк кода:
{
"cmd": ["sjasmplus", "src/main.asm"],
"working_dir": "${project_path:${folder}}",
"variants":
[
{
"name": "Run",
"cmd": ["C:/zx/unreal.ts/run_cli.bat"]
}
]
}
Правда вот как сделать запуск я не разобрался пока.
http://img13.imageshost.ru/img/2013/03/06/image_51366a6786c2b_small.jpg (http://img13.imageshost.ru/img/2013/03/06/image_51366a6786c2b.jpg)
В атачменте незаконченная раскраска для «Sublime Text 2».
надо не забыть допилить... опыт есть, времени нет...
Alex Rider
06.03.2013, 11:19
Ты имеешь ввиду сделать список меток для быстрого перехода?
Нет, это сворачивание процедур. Круто было бы, если бы границы процедур распознавались автоматически.
Сообщение от Alex Rider
code completion
Он как бы есть дефолтовый для текста, но поскольку мнемоники всего пару символов это больше раздражает, чем помогает.
Code Completion нужен не для мнемоник, а для имен символов в модулях.
Тут поясни, что конкретно ты хочешь видеть?
Дерево модулей со списком символов в нем.
Цитата:
Сообщение от Alex Rider
переход от строки с ошибкой в текст
честно скажу компилятор я не настраивал, но чисто гипотетически думаю возможно.
Обычно это делается через парсинг output'а компилятора.
надо не забыть допилить... опыт есть, времени нет...
Может тогда подскажешь за одно, как там вообще эти группы формируются?
Я нашел в других примерах, по аналогии сделал свои:
storage.type.asm
keyword.operator.asm
keyword.mnemonic
comment.line.asm
comment.block.asm
string.asm
constant.character.asm
support.type.sys-types.c
Они вообще-то задаются или отдельно описываются? кроме того есть небольшая проблема со string.asm, надо как-то подкорректировать regexp, иначе если в продолжении стоит комментарий, например
include "newfile.asm" ; Подгружаем блок
то теряется выделение "newfile.asm"
---------- Post added at 13:35 ---------- Previous post was at 13:29 ----------
Нет, это сворачивание процедур. Круто было бы, если бы границы процедур распознавались автоматически.
Ну тут надо подумать над логикой, по какому принципу оно будет определять начало и конец. Ну с началом более менее ясно, метка не являющаяся мнемоникой, а вот с концом. Это может быть и другая метка? или это будет строка RET, а может быть и JP/JR?
Code Completion нужен не для мнемоник, а для имен символов в модулях.
Дерево модулей со списком символов в нем.
Ну тут уже нужно более детально изучать возможности редактора, строить список модулей, меток и оттуда уже выдёргивать данные.
Обычно это делается через парсинг output'а компилятора.
Это всё понятно, тут вопрос стоит в том, как обратиться к данным из output'а, что бы их уже разобрать.
Вообщем надо более тщательно искать и читать документацию.
Они вообще-то задаются или отдельно описываются?
вообще вроде бы их можно задавать в темах (как называются, какой цвет). принцип там, типа, на уточнении основан, каждое следующее слово после точки описывает стиль более подробно. ищет максимальную цепочку из известных, поэтому язык указывается в самом конце (чтобы именно для него можно было делать особые уточнения, а если их нет в темах - использовать те, которые максимально близко подошли).
Ну тут надо подумать над логикой
сворачивание по синтаксису там не работает вообще, только по отступам (хотя оно может быть описано в раскраске).
надо как-то подкорректировать regexp
можно адаптировать раскраску из фара.
Alex Rider
06.03.2013, 16:24
Ну с началом более менее ясно, метка не являющаяся мнемоникой, а вот с концом. Это может быть и другая метка? или это будет строка RET, а может быть и JP/JR?
Другая глобальная (начинающаяся не с точки) метка или конец текста. Как вариант, подумать об исключении однострочных процедур.
Hacker VBI
09.03.2013, 13:23
Каким макаром вы отлаживаете программы?
Есть идея "загрузить бегучку в картинку", с отладкой дурацкие проблемы.
СТС непонятно как грузится :)
---------- Post added at 13:23 ---------- Previous post was at 13:13 ----------
С унреалом вообще нихт не ясно, как стс загружать. А отладчики эмулей не очень удобны
Что подскажете?
Hacker VBI, в анриле свой весьма навороченный дебаггер
стс там лишний
Hacker VBI
09.03.2013, 22:47
Hacker VBI, в анриле свой весьма навороченный дебаггер
стс там лишний
ПЛИЗ, скажи больше.
скажи всё.
я ноль
Hacker VBI, F1 :)
установка бряк пойнтов
поставил раз - перекомпилил, перезапустил - все на месте
в любой момент времени нажал esc(или ~) получил дебугер
ищешь ошибку - есть подозрение - воткнул в исходник di:halt - вывалился в нужной точке
трассировка есть, трассировка по условиям (ооочень гибким и очень быстрым) есть
Hacker VBI
13.03.2013, 19:33
Ещё вопрос, по музыке.
Есть модуль, как лучше его експортнуть с плеером из VT для вставки в код?
incbin "*.$c" ?
Alex Rider
13.03.2013, 20:17
Если это SjASM, то не надо в него incbin'ом вставлять $c-файлы! $c-файл содержит TR-DOS-заголовок, он добавиться в код тоже. И маска для указания конкретного файла тоже не покатит. Надо что-то в духе
INCBIN "Module.c"
Экспортить лучше как .SCL или .TAP-файл и вытаскивать из образа каким-нибудь плагином для файлового менеджера.
Если это SjASM, то не надо в него incbin'ом вставлять $c-файлы! $c-файл содержит TR-DOS-заголовок, он добавиться в код тоже. И маска для указания конкретного файла тоже не покатит. Надо что-то в духе
INCBIN "Module.c"
Экспортить лучше как .SCL или .TAP-файл и вытаскивать из образа каким-нибудь плагином для файлового менеджера.
Я даже не знаю что сказать
INCBIN <filename>[,offset[,length]]
To include a binary file into the outputfile. The offset and length are optional.
Example 5.23.
INCBIN "gfx.scc",7 ; include gfx.scc, skip first 7 bytes
INCBIN "rantab.com",3,256 ; include 256 bytes from offset 3
INCBIN gfx.scc ,7 ; note the space between the filename and the ',7' here :)
INCHOB <filename>[,offset[,length]]
To include a data from a hobeta file into the outputfile. The offset and length are optional.
Example 5.24.
INCHOB "gfx.$c",7 ; include gfx.scc, skip first 7 bytes
INCHOB "sprs.$c",3,256 ; include 256 bytes from offset 3
INCHOB gfx.$c ,7 ; note the space between the filename and the ',7' here :)
INCLUDE <filename>
To include another sourcefile into the current. Sourcefiles can be nested 20 levels deep. If the file cannot be found in the current directory (the current directory is the directory the current file comes from) the file will be searched for in the directories specified at the commandline. When angle brackets are used, the commandline directories are searched before the current directory.
Example 5.25.
INCLUDE <VDP.I>
INCLUDE MORE.I
INCLUDE "MORE.I"
INCLUDELUA <filename>
To include another LUA script in first pass(!). If the file cannot be found in the current directory (the current directory is the directory the current file comes from) the file will be searched for in the directories specified at the commandline. When angle brackets are used, the commandline directories are searched before the current directory.
Example 5.26.
INCLUDELUA <mylibrary1.lua>
INCLUDELUA mylibrary2.lua
INCLUDELUA "library_for_zx.lua"
INCTRD <filenameoftrdimage>,<filenameintrdimage>[,offset[,length]]
To include a file from a TRD image into the outputfile. The offset and length are optional.
Example 5.27.
INCTRD "test.trd","mygfx.C" ; include mygfx.C from test.trd
INCTRD "test.trd","mygfx.C",12 ; include mygfx.C from test.trd, skip first 12 bytes
INSERT <filename>[,offset[,length]]
INSERT is a synonym of INCBIN. See above.
Alex Rider
14.03.2013, 01:36
Я даже не знаю что сказать
Нда, облажался... Не любил я никогда хобеты, поэтому и забыл/не знал про них. Согласен, что прежде, чем советовать, неплохо покурить ману.
Нда, облажался... Не любил я никогда хобеты, поэтому и забыл/не знал про них. Согласен, что прежде, чем советовать, неплохо покурить ману.
Не облажался :) читать не любишь
это официальная дока к sjasm
Alex Rider
14.03.2013, 14:26
это официальная дока к sjasm
Да догадываюсь. Просто обычно работаю с бинарями, их и поправить проще, и в релизный trd убрать как мне надо, запаковать, например, при сборке. :) Все эти INC*, кроме INCLUDE и INCBIN, при вдумчивом чтении доки в давние времена как-то пометились как бесполезные...
Hacker VBI
14.03.2013, 15:11
Не облажался :) читать не любишь
это официальная дока к sjasm
Прости, не подумал.
Всё просто:
PAGE 1
org #c000
inchob "Музыга.$c"
и вперёд:v2_dizzy_indy:
Powered by vBulletin® Version 4.2.5 Copyright © 2026 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot