![]() |
Quote:
Похоже на шутки от Peephole optimization. Если исключить опции оптимизации, то может оно получше станет? Тогда будем отлаживаться без оптимизации. |
Quote:
---------- Post added at 18:02 ---------- Previous post was at 17:46 ---------- Действительно, с опцией --no-peep получилось так: Code:
ld 4 (ix),l |
Quote:
А опций компилятора там действительно богато: Code:
3.2.8 Optimization Options |
А что это за оптимизация?
Code:
ld a,-19 (ix)---------- Post added at 18:29 ---------- Previous post was at 18:16 ---------- Quote:
---------- Post added at 18:46 ---------- Previous post was at 18:29 ---------- Похоже, постинкремент всегда обрабатывается так: для неувеличенного значения заводится временная переменная, туда копируется значение, и переменная увеличивается, далее используется временная переменная. А в вышеописанном случае эта временная переменная оказалась на вершине стека, что и вылилось в pop/push. Только я не понял, почему дальше увеличивалась уже временная переменная, а нормальная (смещение которой указано в отладочной информации) - вообще не использовалась. |
b2m, что с "Кристой-2". Будет поддержка в эмуляторе?
|
Quote:
|
Quote:
Вся существенная инфа тут http://www.sensi.org/~svo/scalar/ware/562 http://www.sensi.org/~svo/scalar/ware/703 http://www.sensi.org/~svo/scalar/ware/842 В "секретах" описаны еще разные варианты подключения контроллера дисковода. |
Quote:
|
Quote:
Для любого gdb, отличного от стандартного, надо свой плагин к эклипсу писать. Eclipse шибко умный, он результат своей компиляции сам встроенными парсерами парсит, чтобы понять, может ли он это отлаживать. Более-менее какая-то гибкость появляется, если компилировать в ELF. Но для z80 таких компиляторов нет. |
Quote:
|
Привет b2m
есть просьба немного допилить конфиги для корвета сделать явно korvet1/korvet2 korvet1: rom: korvet11.rom канал 2 таймера syn2: ~vbl ct2: как и для каналов 0 и 1 (как я понял "1") irq4: ~VBL korvet2: rom: korvet2.rom канал 2 таймера syn2: ~hbl ct2: ~SVBL irq4: ~SVBL --- и еще, задать по умолчанию номер РМУ=0 (чтоб с диска грузился без F1) lan.netid (оно инвертировано там) там в коде Code:
; ЗАГРУЗЧИК ОС МикроДОС---------- Post added at 10:54 ---------- Previous post was at 10:23 ---------- и кстате, давно хотел написать перенести все папки с данными внутрь папки cinfig тогда все чистенько будет ;) |
Quote:
Quote:
|
Еще хотелка для Корвета - добавить кнопочку 'Color mode'
основная масса мониторов под корвет была ЧБ |
Quote:
|
у себя я так делал
Code:
for (i=0;i<16;i++) {на двух разны - разные значения резистров а на двух других - биты другие ;) I - 75k G -75k R - 33K B - 33K на второй I - 3k G -12k R - 24K B - 6.2K в обчем бардак |
1) Неприятность, которая делает совершенно невозможной отладку программы в начале ее исполнения:
а) открываю какой-нибудь ром б) открываю дебуггер, опционально ставлю брекпоинт в) переключаюсь в основное окно г) Alt+F, 1 (перегружаю тот же ром) д) все падает Повторяемость 100%. 2) Видел, что в дебуггер можно засасывать листинг. Какой должен быть формат у листинга? |
Quote:
Quote:
Code:
NNNN AAAA XX XX XX \tSource line |
А еще: как сделать, чтобы при перегрузке файла сохранялись точки останова? Бывает, что становится немного утомительно устанавливать все заново в 40-й раз ;)
|
Не предусмотрено. Только если через отладчик загружать бинарный файл.
|
1 Attachment(s)
Дмитрий, а почему на эмулляторе не работают на 50% самопально написанные программы, используемые обращения к MX-DOS под Специалистом_МХ? Вроде использую оригинальные подпрограммы работы с дискетой, но просто висит эмулятор. Каким образом происходит проверка наличия дискеты (образа odi)?
Я написал на 50%, потому что моя прога с имиджа дискеты (my1disk.odi/From Fifam/SpetsCom.EXE) запускается, а вот если загружать в эмулляторе через File/Open, то - нефига. В атаче прикрепил три файла. Имидж диска и два файла cpu/i80 самой программы. При запуске программы требуется выбрать диск (дискету А или В, или С - ROM-диск). Для дискеты предварительно нужно подцепить образ. Пока реализованы три клавиши: F1, F2, F3, F4, по Enterу - запуск программ (правда пока с ROM-диска). Если нужно, могу дать исходники. |
Quote:
Открываю через File/Open твой файл, подключаю образ, жму enter - показывает каталог. Если жму enter, а потом подключаю образ - всё равно показывает. Что я делаю не так? Quote:
---------- Post added at 20:45 ---------- Previous post was at 20:40 ---------- Единственное, чего не понял: это так и задумано, что клава так тормозно реагирует? Нельзя, что-ли, сделать нормальный опрос клавы? |
вдруг будет новая версия
на всяуий случай напоминаю про Корвет ;) http://zx.pk.ru/showpost.php?p=497680&postcount=571 |
1 Attachment(s)
У меня через File/Open прога загружается, но по Enter А и В диски не загружаются, только С, а должны.
Про клаву. Использую стандартно: call #c81b. P.S. Почти написал другую прогу - высвечивает таблицу FAT посекторно на экран. Там ситуация хуже - на процедурах опроса дисковода - всё виснит. Почему знаю что вообще работает? На другом эмуляторе spmx_v42 всё прекрасно работает, но он зараза по виндой 7 вообще не работает.... |
fifan, через Dosbox запускайте эмулятор spmx_v42 и будет вам щастье ;)
|
Жаль. ситуация с новой прогой повторилась. Т.е. записываю прогу в образ odi, запускаю - работает. Через File/Open загрузка cpu/i80 - висит на начальном этапе.
|
Нашёл ещё один глюк в Специалисте_МХ. Не переключаются дискеты в MX-DOS по F3. Вернее в место выбора диска В, просто перечитывается дисковод А. В системе имя диска В пишется верно, образы odi для обоих дисков назначаю и разные.
|
Quote:
|
5 Attachment(s)
Так и было. Прошу прощения у b2m за нарекания. Взял дизассемблировал MX-DOS v3.6, который записывался в начало каждой дискеты для Специалиста_МХ. Нашёл там процедуры опроса состояния ВГ93 и установки дисковода на нулевую дорожку. Вставил в SpetsCommnder. Но теперь отсутствие дисковода (не назначены образы в эмулляторе) приводит к зависанию проги. Вот скриншоты некоторых функций программы. В основном процесс написания SpetsCommanderа я выкладываю здесь.
P.S. Всё ж не поддержка дисковода В в MX-DOS не работает в данном эмуляторе. Проверял в spmx_v42, там всё в порядке. |
Quote:
Quote:
|
Quote:
Quote:
|
Quote:
---------- Post added at 11:01 ---------- Previous post was at 10:56 ---------- Хотя, наверное стоит добавить в этот список MSX, MSX-2, Robotron 1715, ZX Spectrum 48, ZX Spectrum 128. Но это не отечественные компы... |
Quote:
Ещё глюк, сегодня обнаружил. Мне нужно организовать переход по нажатию F8 и F9, но на записанные коды #8b и #8c эмулятор никак не реагирует. Используется стандартная подпрограмма по вводу кода нажатой клавиши - #c81b. Все остальные (F1...F7) и назначенная Esc вместо АР2 прекрасно работают. |
Quote:
Quote:
|
Quote:
Quote:
|
Клавиши F8-F10 служебные, при их нажатии меняется верхняя служебная строка, а драйвер их попросту не выдаёт.
|
Я смотрю эмулятор обновился и теперь дисководы меняются. Спасибо. Как же быть с F8 и F9? Никак нельзя задействовать их?
|
Quote:
Хотя, там наверняка можно имеющиеся процедуры использовать, и много переписывать не придётся. |
1 Attachment(s)
b2m, привет! Нашёл тут глюк в твоей программе. В отладчике View/Start debugger по запросу Ctrl+L не верно считается длина загружаемого блока - наверное нужно на байт больше.
|
Скачай новую версию. Этот диалог уже давно не так выглядит :)
|
b2m, принимай багрепорт
что-то не так с эмуляцией звука, у Корвета и нашел еще явно теже грабли у "Zx Spectrum 128 tr-dos" причем у ZX эт прям со старта а у Корвета, надо запустить любую игрушку с эмуляцией AY c моего disk.kdi XYZON BINALEND NINJA MAFIA ну или у моего нового ATHLETIC LAND (то что park_sound) похоже грабли когда часто в порт ВИ53 пишем ? хотя у ZX же стоит AY ... самая старая версия что у меня есть эт 20120423 ну и на последней тоже проверил |
| All times are GMT +4. The time now is 02:57. |
Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.