PDA

Просмотр полной версии : Spectranet и новые отладочные средства



desertkun
07.02.2022, 03:11
Всем привет, это первый мой пост на форуме. Я уже продолжительное время в качестве хобби занимаюсь разработкой отладочных средств к zx-spectrum.

Повстречав такой картридж как Spectranet (https://www.bytedelight.com/?page_id=3515) я загорелся прошлым (у самого был Пентагон 256) и как с его помощью можно принести в Спекки современные интернет-программы. Даже сделал попытку написать браузер (https://channels.desertkun.in/), но не смог добиться энтузиазма от кого-нибудь еще.

Так как по работе я занимаюсь разработкой на Си, выбор пал на компилятор z88dk, компилятор достойный для z80, но я был сильно удивлен отсутствием хороших отладочных средств для спектрума, чтобы писать сетевой софт для спекки было удобно.

Как результат, решил произвести следующее:


Релизовать gdb-подобный клиент в часть состава z88dk. Мейнтейнер z88dk тепло воспринял задумку, инструмент описан тут (https://github.com/z88dk/z88dk/wiki/Tool-z88dk-gdb)
Подключить gdbserver-совместимый к популярному эмулятору Fuse (что было сделано для win32 (https://github.com/speccytools/fuse/releases) и для mac (https://github.com/speccytools/fuse-for-macosx/releases))
Написать хардварный gdbserver-совместимый отладчик на физическом спектруме, статью о котором я написал на хабре (https://habr.com/ru/post/649907/)

С помощью этой системы можно отлаживать исходный код Си/Асм с точками останова, обратным стеком, возможностью посмотреть значения переменных и тд.

Все необходимые средства я собрал на одном сайте https://speccytools.org.

В чем смысл этого поста? По сути занимаюсь евангелизмом и пытаюсь побороть системный эффект. Разработчик и производитель картриджа вложили десятилетия своих сил в этот картридж, но чтобы был на нее спрос, нужны программы, а чтобы были программы, нужны пользователи. Инструменты могут быть полезны вам, если вы захотите написать новую сетевую программу под спектрум (например, многопользовательскую игру).

Михаил Каа
07.02.2022, 14:32
https://www.youtube.com/watch?v=0C50vytVTuQ
Посмотрите этот канал.

haywire
07.02.2022, 14:48
Z88DK - мусор. Ничего хорошего с помощью этого "инструмента" сделать нельзя.

desertkun
07.02.2022, 18:22
Z88DK - мусор. Ничего хорошего с помощью этого "инструмента" сделать нельзя.
Альтернативы? Чтобы на Си, с отладкой?

goodboy
07.02.2022, 18:34
Альтернативы? Чтобы на Си, с отладкой?
ЯВУ для 8ми биток это тупиковый вариант,
конечно что-то сочинить можно, но в итоге это выльется в тормозной и большой по объёму код.

haywire
07.02.2022, 19:08
Альтернативы? Чтобы на Си, с отладкой?

IAR генерирует код в ~2 раза более компактный, чем SDCC/Z88DK. Очень дорогой, неподдерживаемый для Z80, проприетарный компилятор.
Возможности отладки - мифические. Они как бы есть, но использовать их в реальности невозможно.
Однако, ничего лучше для Z80 нет и уже не будет.
http://www.sanarin.ru/files/sdtcc-test/

Error404
07.02.2022, 19:15
Единственный возможный путь получения "чтобы были программы" в обстановке наличия полутора человек программистов хоть как-то значимо программирующих - разработка ПО ценой минимальных усилий. А вовсе не наличие зрителей в количестве. Методом исключения - это разве что портирование. А для этого надо чтобы были совместимые с "большим миром" средства разработки и совместимые интерфейсы разрабатываемых библиотек. Тогда вы будете брать например несложные консольники в OpenSource и получать из них локализованные версии на раз-два. А тут с порога z88dk - некий суб-диалект С, с проблемами совместимости. Да, там активный автор. Вот он взял бы и направил свою активность на допиливание хотя бы до ANSI. Вместо этого он занимается агитацией в пользу своего продукта (не спорю, труда там вложено), два десятилетия подаваемого "берите как есть и подстраивайтесь сами".

haywire
07.02.2022, 19:20
z88dk - это собственно два компилятора. 1) Какой-то старый форк SDCC, якобы с какими-то исправлениями. Я не увидел разницы. Мусор, никуда не годный. 2) Собственный компилятор, реализующий древний ограниченный диалект Си. Зачем он такой красивый нужен - я не знаю и писать на таком Си не умею. Собственно, без поддержки банков памяти в нём смысла ровно 0, туда даже лезть незачем.

desertkun
07.02.2022, 19:50
Вот он взял бы и направил свою активность на допиливание хотя бы до ANSI.
У меня, можно сказать, синдром утенка. Работаю с тем, с чем привык. В принципе есть готовность уделить больше внимания самому компилятору, нежели отладчикам.

А каковы критерии привидения к ANSI?
Есть где нибудь набор программ-примеров, если которые скомпилятся, то компилятор есть ANSI?