Разработка и ромхакинг > Программирование
Программирование в ассемблере на ZX Spectrum
(1/1)
HayaoYokogawa:
Самоцели победить на условном 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:
есть какой то биос 9x года с вшитым редактором по * ,по magic button выкидывало в исполняемую в данный момент область памяти  ,читы удобно было делать и вообще ...
HayaoYokogawa:

--- Цитата: blackoff от 29 Декабрь 2023, 12:09:56 ---есть какой то биос 9x года с вшитым редактором по * ,по magic button выкидывало в исполняемую в данный момент область памяти  ,читы удобно было делать и вообще ...

--- Конец цитаты ---
Можно было б попробовать, интересно.

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

--- Цитата: HayaoYokogawa от 29 Декабрь 2023, 12:17:12 ---Во, кстати да, забыл спросить - а реализовать soft reset как-то возможно на спеке?
--- Конец цитаты ---
не помню ,в биосе куча процедур (подпрограмм ) ,надо искать ,это типа без очистки памяти выйти в бейсик или как ?
HayaoYokogawa:

--- Цитата: blackoff от 29 Декабрь 2023, 12:21:54 ---не помню ,в биосе куча процедур (подпрограмм ) ,надо искать ,это типа без очистки памяти выйти в бейсик или как ?

--- Конец цитаты ---
Да. Ну, хотелось бы железное решение, а то я пока хз как написать примитивный выход из программы, но хочется там цвет бордюрчика циклично менять и  в таком духе  :lol:
blackoff:

--- Цитата: HayaoYokogawa от 29 Декабрь 2023, 12:24:38 --- а то я пока хз как написать примитивный выход из программы
--- Конец цитаты ---
она по завершению не должна сама выходить?С9 в конце вроде как ...
HayaoYokogawa:

--- Цитата: blackoff от 29 Декабрь 2023, 12:33:47 ---она по завершению не должна сама выходить?С9 в конце вроде как ...

--- Конец цитаты ---
Ну, если не объяснить, что должна, то не выйдет  :blush:
MetalliC:

--- Цитата: HayaoYokogawa от 29 Декабрь 2023, 11:25:55 ---у меня клон Спектрума 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), но они ппц какие неудобные и кривые, перечисленный выше отечественный софт лучше и удобнее на порядки.
Rumata:

--- Цитата: HayaoYokogawa от 29 Декабрь 2023, 12:17:12 ---а реализовать soft reset как-то возможно на спеке?
--- Конец цитаты ---
RST 0 ?

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

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

--- Цитата: MetalliC от 29 Декабрь 2023, 15:26:07 ---посоветую не страдать фигнёй на голой 48к машинке, это было мазохизмом и 30 лет назад а сейчас так вообще.

--- Конец цитаты ---
Других машинок пока нету  :blush:

--- Цитата: MetalliC от 29 Декабрь 2023, 15:26:07 ---из нативного софта имхо лучшее это связка ALASM (ассемблер) и STS (отладчик), но потребуется 128К+ машинка с флопом.
--- Конец цитаты ---
ALASM было бы очень круто, но пока владею только 48К  :lol:

--- Цитата: MetalliC от 29 Декабрь 2023, 15:26:07 ---но, уже сто лет как (почти) все пользуют кросскомпиляторы и всяческие редакторы для ПК вместо нативного софта.

--- Конец цитаты ---
Это безусловно удобнее, но весь интерес это на самой машине делать, по крайней мере запомнить, где чего находится и откуда чего вызывать быстрей получается - по крайней мере поначалу. Если мне потребуется впихнуть какую-нибудь картиночку, то я без нормального компа уже точно не обойдусь: рисовать на самом спеке - это уже слишком много мазохизма  :lol:

--- Цитата: MetalliC от 29 Декабрь 2023, 15:26:07 ---а вообще, гугль ваш друг
--- Конец цитаты ---
В курсе, но я ну очень далек от темы, поэтому и решил спросить здесь. За ссылку спасибо!

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


--- Цитата: Rumata от 29 Декабрь 2023, 15:33:33 ---RST 0 ?

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

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

--- Цитата: HayaoYokogawa от 29 Декабрь 2023, 15:41:01 ---а железно как-то можно это устроить?
--- Конец цитаты ---
В смысле - железно?
HayaoYokogawa:

--- Цитата: Rumata от 29 Декабрь 2023, 15:46:40 ---В смысле - железно?

--- Конец цитаты ---
Ну, вывести кнопочку с  резетом, только с таким, который оперативку не сбрасывает. Кнопка есть на моем клоне, но содержимое памяти испаряется.
MetalliC:

--- Цитата: HayaoYokogawa от 29 Декабрь 2023, 15:41:01 ---Это безусловно удобнее, но весь интерес это на самой машине делать, по крайней мере запомнить, где чего находится и откуда чего вызывать быстрей получается - по крайней мере поначалу.
--- Конец цитаты ---
ммм... ты сейчас явно не со спектрума на форум пишешь ведь ? не вижу проблемы на этом устройстве запустить эмуль спека 128, и под ним работать в перечисленных программах.

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


--- Цитата: HayaoYokogawa от 29 Декабрь 2023, 15:41:01 ---рисовать на самом спеке - это уже слишком много мазохизма
--- Конец цитаты ---
тут не соглашусь, ArtStudio или ArtistII удобны и интуитивны, вполне на уровне пэйнта.
Talking_Sword:

--- Цитата: MetalliC от 29 Декабрь 2023, 15:58:05 ---ммм... ты сейчас явно не со спектрума на форум пишешь ведь ? не вижу проблемы на этом устройстве запустить эмуль спека 128, и под ним работать в перечисленных программах.
--- Конец цитаты ---
Ну он явно хочет на железе. Я его отлично понимаю. Вообще, можно сказать, что и вообще писать в наше время что-то на Спектрум - "фигней страдать" и мазохизм. Нету проблемы на современном компьютере запустить Unity, будет гораздо легче и больше возможностей, нежели на Спектруме. Но ему интереснее именно Спектрум, хотя с практической точки зрения это не очень целесообразно.
HayaoYokogawa:

--- Цитата: MetalliC от 29 Декабрь 2023, 15:58:05 ---тут не соглашусь, ArtStudio или ArtistII удобны и интуитивны, вполне на уровне пэйнта.
--- Конец цитаты ---
Я их щупал давненько в эмуляторе, я согласен, но без мышки можно будет с ума сойти рисовать, ну и свой ваком я вряд ли к нему смогу подключить  :lol:


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

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


--- Цитата: Talking_Sword от 29 Декабрь 2023, 20:24:35 ---Ну он явно хочет на железе. Я его отлично понимаю. Вообще, можно сказать, что и вообще писать в наше время что-то на Спектрум - "фигней страдать" и мазохизм. Нету проблемы на современном компьютере запустить Unity, будет гораздо легче и больше возможностей, нежели на Спектруме. Но ему интереснее именно Спектрум, хотя с практической точки зрения это не очень целесообразно.

--- Конец цитаты ---
Ну на железе, да, но все более-менее удобное уже требует 128к спек, которого у меня пока нет, хотя, как уже сказал, EDITAS для 48к меня в принципе устроил, но хотелось бы еще больше удобства. Можно и кросс-компилятор попробовать, почему б и нет - железо-то для тестов тоже есть
Ogr:

--- Цитата: HayaoYokogawa от 29 Декабрь 2023, 21:08:30 ---но без мышки можно будет с ума сойти рисовать
--- Конец цитаты ---
на 50:10:
MetalliC:

--- Цитата: HayaoYokogawa от 29 Декабрь 2023, 21:08:30 ---Честно говоря, меня просто токенизированный ввод капитально вымораживает
--- Конец цитаты ---
тогда мегабейсик вас приятно удивит :)

--- Цитата: HayaoYokogawa от 29 Декабрь 2023, 21:08:30 ---Что касаемо программирования в целом - микроопыт в паскале со школы есть, базовое понимание логики есть
--- Конец цитаты ---
это замечательно, но, в случае низкоуровневой работы, на ассемлере итп, жизненно необходимо понимать общие принципы работы микропроцессорных систем, и тогда вы сможете после минимального (пере)обучения что-то писать для той или иной платформы, вообще любой.
HayaoYokogawa:

--- Цитата: Ogr от 29 Декабрь 2023, 21:36:18 ---на 50:10:


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


--- Цитата: MetalliC от 30 Декабрь 2023, 01:01:27 ---тогда мегабейсик вас приятно удивит :)
--- Конец цитаты ---
Вот тогда его и поищу, спасибо!
Yoti:

--- Цитата: HayaoYokogawa от 29 Декабрь 2023, 11:25:55 ---пока что метод загрузки один - кассеты
--- Конец цитаты ---
Купи псевдокассету с 3,5 plug, грузи со смартфона...
HayaoYokogawa:

--- Цитата: Yoti от 09 Январь 2024, 15:32:42 ---Купи псевдокассету с 3,5 plug, грузи со смартфона...

--- Конец цитаты ---
Подразумевалось, что у меня нет контроллера дисковода или еще каких приблуд для спектрума. Гружу-то конечно все со смартфона  :lol:
Навигация
Главная страница сообщений

Перейти к полной версии