Автор Тема: Программирование в ассемблере на ZX Spectrum  (Прочитано 3465 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Онлайн HayaoYokogawa

  • Пользователь
  • Сообщений: 2423
  • Пол: Мужской
  • большой и толстый розовый динозавр
    • Просмотр профиля
Самоцели победить на условном Chaos Construction нету - так, интересно поковырять да вдуплить немного поглубже, плюс насмотрелся всяких там 8-Bit Show and Tell...  :lol:

Собственно, тема для чего: у меня клон Спектрума 48К и пока что метод загрузки один - кассеты.
Меня интересует две-три вещи - какой ассемблер/редактор кто посоветует (для работы непосредственно на самом спектруме) и какую книжку глядеть.

Пока что самой, так сказать, понятной и обучающей "на деле" оказалась наша книжка 1994 года, но она советует работать в GENS4 и он на мой взгляд оказался ну просто жутко неудобным (на качестве материала, впрочем, сказывается несильно - по крайней мере что-то текстовое бестолковое уже на экран выводить могу). С горем пополам нашел рабочий EDITAS (Editor/Assembler) под 48К, он мне показался самым приличным по удобству непосредственно редактирования, но зато у меня не хватает теперь мозгов понять как бы сделать так, чтобы она собирала программу в указанной области (условно - задаю область в памяти 8000h, выхожу в бейсик запустить и естественно все труды в мусорку, ибо спектрум намертво зависает в  попытке изобразить программу из мусора в той  области памяти)
  :-\

По книжкам еще находил весьма подробную книжку Spectrum Machine Language for The Absolute Beginner - просто обалденная, замечательная книжка, но непосредственно к  делу приступать она предлагает чуть ли в самом конце и уже используются конструкции, которые мне пока слабопонятны  :lol: Короче, хотелось бы что-нибудь в духе той книжки "Как написать игру на ассемблере", просто как минимум чтоб было где еще что-то подсмотреть-прочитать.

По ассемблеру/редактору: в идеале хочется что-то в духе Turbo Macro Pro на C64, где нет привязки к номерам строк и вообще все просто удобнее устроено и при этом чтоб работало на 48К спеке - такое бывает или мне только мечтать?
Хочу хотеть то, чего сегодня не хочу, кроме того, что захочу хотеть завтра. (c) topos84

Оффлайн blackoff

  • Пользователь
  • Сообщений: 9292
  • Пол: Мужской
    • Просмотр профиля
Программирование в ассемблере на ZX Spectrum
« Ответ #1 : 29 Декабря 2023, 12:09:56 »
есть какой то биос 9x года с вшитым редактором по * ,по magic button выкидывало в исполняемую в данный момент область памяти  ,читы удобно было делать и вообще ...

Онлайн HayaoYokogawa

  • Пользователь
  • Сообщений: 2423
  • Пол: Мужской
  • большой и толстый розовый динозавр
    • Просмотр профиля
Программирование в ассемблере на ZX Spectrum
« Ответ #2 : 29 Декабря 2023, 12:17:12 »
Можно было б попробовать, интересно.

Во, кстати да, забыл спросить - а реализовать soft reset как-то возможно на спеке?
« Последнее редактирование: 25 Сентября 2026, 20:26:59 от Беларус »
Хочу хотеть то, чего сегодня не хочу, кроме того, что захочу хотеть завтра. (c) topos84

Оффлайн blackoff

  • Пользователь
  • Сообщений: 9292
  • Пол: Мужской
    • Просмотр профиля
Программирование в ассемблере на ZX Spectrum
« Ответ #3 : 29 Декабря 2023, 12:21:54 »
Во, кстати да, забыл спросить - а реализовать soft reset как-то возможно на спеке?
не помню ,в биосе куча процедур (подпрограмм ) ,надо искать ,это типа без очистки памяти выйти в бейсик или как ?

Онлайн HayaoYokogawa

  • Пользователь
  • Сообщений: 2423
  • Пол: Мужской
  • большой и толстый розовый динозавр
    • Просмотр профиля
Программирование в ассемблере на ZX Spectrum
« Ответ #4 : 29 Декабря 2023, 12:24:38 »
Да. Ну, хотелось бы железное решение, а то я пока хз как написать примитивный выход из программы, но хочется там цвет бордюрчика циклично менять и  в таком духе  :lol:
« Последнее редактирование: 25 Сентября 2026, 20:27:08 от Беларус »
Хочу хотеть то, чего сегодня не хочу, кроме того, что захочу хотеть завтра. (c) topos84

Оффлайн blackoff

  • Пользователь
  • Сообщений: 9292
  • Пол: Мужской
    • Просмотр профиля
Программирование в ассемблере на ZX Spectrum
« Ответ #5 : 29 Декабря 2023, 12:33:47 »
а то я пока хз как написать примитивный выход из программы
она по завершению не должна сама выходить?С9 в конце вроде как ...

Онлайн HayaoYokogawa

  • Пользователь
  • Сообщений: 2423
  • Пол: Мужской
  • большой и толстый розовый динозавр
    • Просмотр профиля
Программирование в ассемблере на ZX Spectrum
« Ответ #6 : 29 Декабря 2023, 12:43:48 »
Ну, если не объяснить, что должна, то не выйдет  :blush:
« Последнее редактирование: 25 Сентября 2026, 20:27:18 от Беларус »
Хочу хотеть то, чего сегодня не хочу, кроме того, что захочу хотеть завтра. (c) topos84

Оффлайн MetalliC

  • Технический консультант
  • Сообщений: 9542
  • Пол: Мужской
  • Demul team / MAME developer
    • Просмотр профиля
Программирование в ассемблере на ZX Spectrum
« Ответ #7 : 29 Декабря 2023, 15:26:07 »
у меня клон Спектрума 48К и пока что метод загрузки один - кассеты.
Меня интересует две-три вещи - какой ассемблер/редактор кто посоветует (для работы непосредственно на самом спектруме) и какую книжку глядеть.
посоветую не страдать фигнёй на голой 48к машинке, это было мазохизмом и 30 лет назад а сейчас так вообще.

из нативного софта имхо лучшее это связка ALASM (ассемблер) и STS (отладчик), но потребуется 128К+ машинка с флопом. еще неплох TASM, когда я кодил на спеке в 90х пользовал в основном его (что забавно, все эти софтины местного производства)
но, уже сто лет как (почти) все пользуют кросскомпиляторы и всяческие редакторы для ПК вместо нативного софта.

а вообще, гугль ваш друг https://speccy.info/%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%90%D1%81%D1%81%D0%B5%D0%BC%D0%B1%D0%BB%D0%B5%D1%80%D1%8B

ну и да, для голого 48К имхо самое толковое это Hisoft Devpac (Gens/Mons), но они ппц какие неудобные и кривые, перечисленный выше отечественный софт лучше и удобнее на порядки.
« Последнее редактирование: 29 Декабря 2023, 15:36:09 от MetalliC »
***** *****!

Оффлайн Rumata

  • Emu-Land Team
  • Сообщений: 25586
  • Ушел в закат
    • Просмотр профиля
Программирование в ассемблере на ZX Spectrum
« Ответ #8 : 29 Декабря 2023, 15:33:33 »
а реализовать soft reset как-то возможно на спеке?
RST 0 ?

Инфорком издавл интересную серию. "Программирование в машинных кодах и на языке АССЕМБЛЕРА", "Элементарная графика", "Прикладная графика", "Динамическая графика"

А из программ вроде GENS / MONS
Главный бич последних лет — это высокомотивированные низкоквалифицированные люди (с)

Онлайн HayaoYokogawa

  • Пользователь
  • Сообщений: 2423
  • Пол: Мужской
  • большой и толстый розовый динозавр
    • Просмотр профиля
Программирование в ассемблере на ZX Spectrum
« Ответ #9 : 29 Декабря 2023, 15:41:01 »
посоветую не страдать фигнёй на голой 48к машинке, это было мазохизмом и 30 лет назад а сейчас так вообще.
Других машинок пока нету  :blush:
из нативного софта имхо лучшее это связка ALASM (ассемблер) и STS (отладчик), но потребуется 128К+ машинка с флопом.
ALASM было бы очень круто, но пока владею только 48К  :lol:
но, уже сто лет как (почти) все пользуют кросскомпиляторы и всяческие редакторы для ПК вместо нативного софта.
Это безусловно удобнее, но весь интерес это на самой машине делать, по крайней мере запомнить, где чего находится и откуда чего вызывать быстрей получается - по крайней мере поначалу. Если мне потребуется впихнуть какую-нибудь картиночку, то я без нормального компа уже точно не обойдусь: рисовать на самом спеке - это уже слишком много мазохизма  :lol:
а вообще, гугль ваш друг
В курсе, но я ну очень далек от темы, поэтому и решил спросить здесь. За ссылку спасибо!

Хотя может и правда попробую кросс-компилятор. Разве что каждый раз с кассеты потом грузить  :-\

RST 0 ?

Инфорком издавл интересную серию. "Программирование в машинных кодах и на языке АССЕМБЛЕРА", "Элементарная графика", "Прикладная графика", "Динамическая графика"

А из программ вроде GENS / MONS
Ну, это-то понятно, а железно как-то можно это устроить? Знакомого спектрумиста рядом спросил - сказал,  что нет. По крайней мере я щас так думаю, это если железно делать, то это нужно вызывать прерывание? Не кидайтесь тапками только, я правда не шарю  :blush:
За книжки спасибо! Обязательно посмотрю.
А про GENS уже сказал, что он мне показался ну очень неудобным, но он хотя бы компилит сразу где надо. Подозреваю, что мне просто мозгов не хватает, чтобы то же самое делать в EDITAS
Хочу хотеть то, чего сегодня не хочу, кроме того, что захочу хотеть завтра. (c) topos84

Оффлайн Rumata

  • Emu-Land Team
  • Сообщений: 25586
  • Ушел в закат
    • Просмотр профиля
Программирование в ассемблере на ZX Spectrum
« Ответ #10 : 29 Декабря 2023, 15:46:40 »
а железно как-то можно это устроить?
В смысле - железно?
Главный бич последних лет — это высокомотивированные низкоквалифицированные люди (с)

Онлайн HayaoYokogawa

  • Пользователь
  • Сообщений: 2423
  • Пол: Мужской
  • большой и толстый розовый динозавр
    • Просмотр профиля
Программирование в ассемблере на ZX Spectrum
« Ответ #11 : 29 Декабря 2023, 15:49:16 »
Ну, вывести кнопочку с  резетом, только с таким, который оперативку не сбрасывает. Кнопка есть на моем клоне, но содержимое памяти испаряется.
« Последнее редактирование: 25 Сентября 2026, 20:28:01 от Беларус »
Хочу хотеть то, чего сегодня не хочу, кроме того, что захочу хотеть завтра. (c) topos84

Оффлайн MetalliC

  • Технический консультант
  • Сообщений: 9542
  • Пол: Мужской
  • Demul team / MAME developer
    • Просмотр профиля
Программирование в ассемблере на ZX Spectrum
« Ответ #12 : 29 Декабря 2023, 15:58:05 »
Это безусловно удобнее, но весь интерес это на самой машине делать, по крайней мере запомнить, где чего находится и откуда чего вызывать быстрей получается - по крайней мере поначалу.
ммм... ты сейчас явно не со спектрума на форум пишешь ведь ? не вижу проблемы на этом устройстве запустить эмуль спека 128, и под ним работать в перечисленных программах.

НО, мне очень кажется, что с имеющимися, вернее отсутствующими, базовыми познаниями начинать стоит с самых азов, например с изучения Бейсика и его расширенных вариантов типа Laser Basic (в первую очередь), Beta-Basic или MegaBasic с расширенными возможностями работы с графикой. которые кстати без проблем работают на 48к с ленты.
по теме посоветую книжку "Диалекты Бейсика" издательства "Питер", оч толковая, у меня на полке до сих пор стоит), да и в целом советую всю литературу этого издательства по теме спектрумов.
и если/когда это осилишь то можно пытаться что-то писать и на асме.

рисовать на самом спеке - это уже слишком много мазохизма
тут не соглашусь, ArtStudio или ArtistII удобны и интуитивны, вполне на уровне пэйнта.
« Последнее редактирование: 29 Декабря 2023, 16:24:24 от MetalliC »
***** *****!

Оффлайн Talking_Sword

  • Пользователь
  • Сообщений: 1029
  • Happy Games Only!
    • Просмотр профиля
Программирование в ассемблере на ZX Spectrum
« Ответ #13 : 29 Декабря 2023, 20:24:35 »
ммм... ты сейчас явно не со спектрума на форум пишешь ведь ? не вижу проблемы на этом устройстве запустить эмуль спека 128, и под ним работать в перечисленных программах.
Ну он явно хочет на железе. Я его отлично понимаю. Вообще, можно сказать, что и вообще писать в наше время что-то на Спектрум - "фигней страдать" и мазохизм. Нету проблемы на современном компьютере запустить Unity, будет гораздо легче и больше возможностей, нежели на Спектруме. Но ему интереснее именно Спектрум, хотя с практической точки зрения это не очень целесообразно.


Girls exclusively sell cute poses, only girls can do it, boys can't do it.

Онлайн HayaoYokogawa

  • Пользователь
  • Сообщений: 2423
  • Пол: Мужской
  • большой и толстый розовый динозавр
    • Просмотр профиля
Программирование в ассемблере на ZX Spectrum
« Ответ #14 : 29 Декабря 2023, 21:08:30 »
тут не соглашусь, ArtStudio или ArtistII удобны и интуитивны, вполне на уровне пэйнта.
Я их щупал давненько в эмуляторе, я согласен, но без мышки можно будет с ума сойти рисовать, ну и свой ваком я вряд ли к нему смогу подключить  :lol:

НО, мне очень кажется, что с имеющимися, вернее отсутствующими, базовыми познаниями начинать стоит с самых азов, например с изучения Бейсика и его расширенных вариантов типа Laser Basic (в первую очередь), Beta-Basic или MegaBasic с расширенными возможностями работы с графикой. которые кстати без проблем работают на 48к с ленты.
по теме посоветую книжку "Диалекты Бейсика" издательства "Питер", оч толковая, у меня на полке до сих пор стоит), да и в целом советую всю литературу этого издательства по теме спектрумов.
и если/когда это осилишь то можно пытаться что-то писать и на асме.
Честно говоря, меня просто токенизированный ввод капитально вымораживает  :blush:
Насчет того, что LaserBasic и прочие можно загрузить с ленты и на 48к не знал, спасибо! Их тоже попробую.
Асм как раз по книжке этого издательства и начал осваивать, написано все толково и понятно (правда, подразумевается местами, что предыдущая с бейсиком тоже была прочитана), но в целом реально все понятно. Уже элементарный вывод текста делал и бордюрчиком поморгал  :lol:
Что касаемо программирования в целом - микроопыт в паскале со школы есть, базовое понимание логики есть  :)

Большое спасибо за советы и наводки!

Ну он явно хочет на железе. Я его отлично понимаю. Вообще, можно сказать, что и вообще писать в наше время что-то на Спектрум - "фигней страдать" и мазохизм. Нету проблемы на современном компьютере запустить Unity, будет гораздо легче и больше возможностей, нежели на Спектруме. Но ему интереснее именно Спектрум, хотя с практической точки зрения это не очень целесообразно.
Ну на железе, да, но все более-менее удобное уже требует 128к спек, которого у меня пока нет, хотя, как уже сказал, EDITAS для 48к меня в принципе устроил, но хотелось бы еще больше удобства. Можно и кросс-компилятор попробовать, почему б и нет - железо-то для тестов тоже есть
Хочу хотеть то, чего сегодня не хочу, кроме того, что захочу хотеть завтра. (c) topos84

Оффлайн Ogr

  • Пользователь
  • Сообщений: 7844
    • Просмотр профиля
Программирование в ассемблере на ZX Spectrum
« Ответ #15 : 29 Декабря 2023, 21:36:18 »
но без мышки можно будет с ума сойти рисовать
на 50:10:
№1: Ryzen7 3700X OC:4,2ггц, 32гб 3333мгц, rtx5060ти 16гб, SSD 512гб R3,4К\W2,3К MB/s, Win10x64. №2: i5-2500 3.3ггц, 12гб 1333мгц, gf560ti, Win7x64.

Оффлайн MetalliC

  • Технический консультант
  • Сообщений: 9542
  • Пол: Мужской
  • Demul team / MAME developer
    • Просмотр профиля
Программирование в ассемблере на ZX Spectrum
« Ответ #16 : 30 Декабря 2023, 01:01:27 »
Честно говоря, меня просто токенизированный ввод капитально вымораживает
тогда мегабейсик вас приятно удивит :)
Что касаемо программирования в целом - микроопыт в паскале со школы есть, базовое понимание логики есть
это замечательно, но, в случае низкоуровневой работы, на ассемлере итп, жизненно необходимо понимать общие принципы работы микропроцессорных систем, и тогда вы сможете после минимального (пере)обучения что-то писать для той или иной платформы, вообще любой.
***** *****!

Онлайн HayaoYokogawa

  • Пользователь
  • Сообщений: 2423
  • Пол: Мужской
  • большой и толстый розовый динозавр
    • Просмотр профиля
Программирование в ассемблере на ZX Spectrum
« Ответ #17 : 30 Декабря 2023, 07:02:48 »
на 50:10:
Да, видел, подписан на Айги. Агрегат чудесный, но несколько дороговастый  :lol:
Кстати был же какой-то проект на RP4020...  :?

тогда мегабейсик вас приятно удивит :)
Вот тогда его и поищу, спасибо!
« Последнее редактирование: 25 Сентября 2026, 20:28:41 от Беларус »
Хочу хотеть то, чего сегодня не хочу, кроме того, что захочу хотеть завтра. (c) topos84

Оффлайн Yoti

  • Пользователь
  • Сообщений: 4686
  • Пол: Мужской
  • Не тро-гай ме-ня
    • Steam
    • Просмотр профиля
Программирование в ассемблере на ZX Spectrum
« Ответ #18 : 09 Января 2024, 15:32:42 »
пока что метод загрузки один - кассеты
Купи псевдокассету с 3,5 plug, грузи со смартфона...
Коэффициент интеллекта прямо пропорционален грамотности сообщений на форуме.
"Чудище обло, озорно, огромно, стозевно и лаяй"
"Не нравится мне это место, чую, что бесовщина, но обосновать не могу"

Онлайн HayaoYokogawa

  • Пользователь
  • Сообщений: 2423
  • Пол: Мужской
  • большой и толстый розовый динозавр
    • Просмотр профиля
Программирование в ассемблере на ZX Spectrum
« Ответ #19 : 09 Января 2024, 15:37:17 »
Подразумевалось, что у меня нет контроллера дисковода или еще каких приблуд для спектрума. Гружу-то конечно все со смартфона  :lol:
« Последнее редактирование: 25 Сентября 2026, 20:28:51 от Беларус »
Хочу хотеть то, чего сегодня не хочу, кроме того, что захочу хотеть завтра. (c) topos84

Оффлайн geniot

  • Пользователь
  • Сообщений: 1
    • Просмотр профиля
Программирование в ассемблере на ZX Spectrum
« Ответ #20 : 25 Сентября 2026, 11:12:27 »
Понимаю, что 3 года прошло, но всё же... Если вас просто интересует программирование на ассемблере под Z80, то на данный момент, по-моему, лучшая комбинация это VSCode+DeZog+sjasmplus. Я, собственно, на этих инструментах сейчас собираю примеры кода https://github.com/geniot/z80-assembly-examples

Онлайн HayaoYokogawa

  • Пользователь
  • Сообщений: 2423
  • Пол: Мужской
  • большой и толстый розовый динозавр
    • Просмотр профиля
Программирование в ассемблере на ZX Spectrum
« Ответ #21 : 25 Сентября 2026, 11:25:51 »
Стоило мне сегодня в разговоре про спектрум вспомнить и в теме написали  :lol:
Спасибо, гляну! Но все же интерес был кодить прям на самом спеке, ну да ладно.
« Последнее редактирование: 25 Сентября 2026, 20:29:01 от Беларус »
Хочу хотеть то, чего сегодня не хочу, кроме того, что захочу хотеть завтра. (c) topos84

Оффлайн Беларус

  • Модератор
  • Сообщений: 1727
    • ВКонтакте
    • Steam
    • Просмотр профиля
Программирование в ассемблере на ZX Spectrum
« Ответ #22 : 25 Сентября 2026, 20:30:10 »
HayaoYokogawa, не надо цытировать всę предыдущее сообщение, выделяй только нужную часть. А лучше просто нажымай на ник собеседника.

Оффлайн ndivision

  • Пользователь
  • Сообщений: 266
  • Пол: Мужской
    • Просмотр профиля
Re: Программирование в ассемблере на ZX Spectrum
« Ответ #23 : 25 Сентября 2026, 21:19:59 »
HayaoYokogawa, Привет!
Странно что пропустил эту тему в свое время (2023 - когда твой первый пост).
Если еще актуально - интересно что за клон 48, их ведь куча была.
Если будет фото - вообще шикарно.

Оффлайн SeregaZ

  • Пользователь
  • Сообщений: 3005
  • Пол: Мужской
  • ливнул с форума
    • Youtube
    • Просмотр профиля
Программирование в ассемблере на ZX Spectrum
« Ответ #24 : 25 Сентября 2026, 21:56:41 »
а я свой повесил на местном аналоге авито :) недоделал... охладел. впрочем повесил за оверпрайс, может все-таки ударит моча в голову доделать :) третий месяц по моему пошел, как он разобранный лежит.

как оказалось ссылки все сдохли