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

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

Оффлайн HayaoYokogawa

  • Пользователь
  • Сообщений: 2045
  • Пол: Мужской
  • большой и толстый розовый динозавр
    • Просмотр профиля
Самоцели победить на условном 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К спеке - такое бывает или мне только мечтать?

Оффлайн blackoff

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

Оффлайн HayaoYokogawa

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

Во, кстати да, забыл спросить - а реализовать soft reset как-то возможно на спеке?

Оффлайн blackoff

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

Оффлайн HayaoYokogawa

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

Оффлайн blackoff

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

Оффлайн HayaoYokogawa

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

Оффлайн MetalliC

  • Технический консультант
  • Сообщений: 9380
  • Пол: Мужской
  • 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

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

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

А из программ вроде GENS / MONS

Оффлайн HayaoYokogawa

  • Пользователь
  • Сообщений: 2045
  • Пол: Мужской
  • большой и толстый розовый динозавр
    • Просмотр профиля
Программирование в ассемблере на 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

Оффлайн Rumata

  • Супермодератор
  • Сообщений: 24640
    • Просмотр профиля
Программирование в ассемблере на ZX Spectrum
« Ответ #10 : 29 Декабрь 2023, 15:46:40 »
а железно как-то можно это устроить?
В смысле - железно?

Оффлайн HayaoYokogawa

  • Пользователь
  • Сообщений: 2045
  • Пол: Мужской
  • большой и толстый розовый динозавр
    • Просмотр профиля
Программирование в ассемблере на ZX Spectrum
« Ответ #11 : 29 Декабрь 2023, 15:49:16 »
В смысле - железно?
Ну, вывести кнопочку с  резетом, только с таким, который оперативку не сбрасывает. Кнопка есть на моем клоне, но содержимое памяти испаряется.

Оффлайн MetalliC

  • Технический консультант
  • Сообщений: 9380
  • Пол: Мужской
  • 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

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

Оффлайн HayaoYokogawa

  • Пользователь
  • Сообщений: 2045
  • Пол: Мужской
  • большой и толстый розовый динозавр
    • Просмотр профиля
Программирование в ассемблере на 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к меня в принципе устроил, но хотелось бы еще больше удобства. Можно и кросс-компилятор попробовать, почему б и нет - железо-то для тестов тоже есть

Онлайн Ogr

  • Пользователь
  • Сообщений: 7392
    • Просмотр профиля
Программирование в ассемблере на ZX Spectrum
« Ответ #15 : 29 Декабрь 2023, 21:36:18 »
но без мышки можно будет с ума сойти рисовать
на 50:10:

Оффлайн perfect_genius

  • Пользователь
  • Сообщений: 1144
    • ВКонтакте
    • Steam
    • Просмотр профиля
Программирование в ассемблере на ZX Spectrum
« Ответ #16 : 29 Декабрь 2023, 23:55:16 »
"Программирование" в названии раздела связано с ромхакингом. Тема должна быть где-то в Разработка игр или Hard'n'Soft.

Оффлайн MetalliC

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

Оффлайн HayaoYokogawa

  • Пользователь
  • Сообщений: 2045
  • Пол: Мужской
  • большой и толстый розовый динозавр
    • Просмотр профиля
Программирование в ассемблере на ZX Spectrum
« Ответ #18 : 30 Декабрь 2023, 07:02:48 »
на 50:10:

Да, видел, подписан на Айги. Агрегат чудесный, но несколько дороговастый  :lol:
Кстати был же какой-то проект на RP4020...  :?

тогда мегабейсик вас приятно удивит :)
Вот тогда его и поищу, спасибо!

Оффлайн Yoti

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

Оффлайн HayaoYokogawa

  • Пользователь
  • Сообщений: 2045
  • Пол: Мужской
  • большой и толстый розовый динозавр
    • Просмотр профиля
Программирование в ассемблере на ZX Spectrum
« Ответ #20 : 09 Январь 2024, 15:37:17 »
Купи псевдокассету с 3,5 plug, грузи со смартфона...
Подразумевалось, что у меня нет контроллера дисковода или еще каких приблуд для спектрума. Гружу-то конечно все со смартфона  :lol: