Тёмный

Ретрокод на ассемблере для Спектрума, #1. Предисловие и первая программа "Привет Мир!" 

8-Bit Tea Party
Подписаться 1,3 тыс.
Просмотров 19 тыс.
50% 1

Программирование на ассемблере для ретро платформы ZX Spectrum(Спектрум). Введение и первая традиционная программа - "Привет Мир!". Вещание на эмуляторе Fuse, ассемблер ALASM, отладчик STS и много чая! :)
speccy.info/ALASM
Как пользоваться ALASM - zx-pk.ru/threa...
Вещание программирования на канале: / bitscode .
Наш основной канал: / 8bitteaparty .
Репозиторий с исходным кодом: github.com/dre....
Сайт 8-Битного Чаепития - 8bittea.party/.

Наука

Опубликовано:

 

2 окт 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 169   
@IVV79
@IVV79 4 года назад
Подскажите пожалуйста, какой образ ALASM используется, или как переключить редактор, а то у меня запускается на чёрном экране и шрифт более мелкий.
@8BitTeaParty
@8BitTeaParty 4 года назад
Образ Алазма используем версии 5.09 и отладчик СТС вместе с ним. Можно посмотреть на странице AloneCoder - alonecoder.nedopc.com/zx/index.html. Там же на образе дискеты есть файл помощи, его можно выгрузить и смотреть просто как текстовый файл на основной машине. ;) Чтобы шрифт был крупнее - 42 символа в строке, надо запускать "alasm42.B" файл на дискете, 64 символа в строке, согласимся, мелковато. Чтобы настроить цвета - нажмите в режиме команд Алазма "F" - config и там уже меняете цвета Ink и Paper. Или еще много полезных ссылок у нас в репозитории/вики github.com/dreamy-cat/8-Bit-Tea-Party/wiki.
@IVV79
@IVV79 4 года назад
@@8BitTeaParty Огромное спасибо за столь развёрнутый ответ! И отдельно спасибо за этот цикл по ассемблеру, очень качественно подан материал и просто приятно слушать! )
@ВикторМурашов-н1ы
@ВикторМурашов-н1ы 2 года назад
Моё знакомство с асемблером началось с маленькой брошюрки Ю. Родионова выпущенной издательством Питер. Я уже не помню как она называлась, что то по взлому загрузчиков программ для спектрума. Но это был начальный и полезный этап понимания всей кухни работы програм. В результате портировал множество программ с кассетной версии на дисковую. В дальнейшем стал писать драйверы для перефирии. В частности сделал шрифты и загрузчик кирилицы в 24 точечный принтер сейкоша, довольно экзотический по тем временам. Журнал zx ревю читался как забористый детектив. Были идеи использовать спектрум для управления станком ЧПУ, но наступила эра IBM.
@BitsCode
@BitsCode Год назад
Мне повезло чуть больше. У меня была простая книжка от VA Print. По ассемблеру и еще пару справочников с таблицами кодов команд. В целом можно было и по ним методом проб и ошибок также изучить. ;) Жаль только что не было книги популярной от Инфоркома. Но и того что было - в целом хватило. Плюс журналы. ZX Ревю был хорош и это был интернет того времени. Ну и журналы на дискетах Спектрофон, ЗХ Формат и другие. С переферией поработать лично не успел, еле справился тогда даже с муз. сопроцессором - использовал готовый плеер в исходниках. Русификатор многие делали для поддержки хотя бы в Бейсике. Ну а по ЧПУ - возможно что для простого управления Z80 можно и сейчас попробовать использовать. :)
@ВикторМурашов-н1ы
@@BitsCode мне попадался компьютер на базе zx spectrum с блоком управления для фрезеровки изделий из дерева. Работал через параллельный порт. Программа написана на basic. Это чудо работало. Хоть и с примитивным интерфейсом. Эпоха развития частного бизнеса.
@ВадимДерябкин-ф2ю
@ВадимДерябкин-ф2ю 4 года назад
Это. Просто. Потрясающе! Как раз собираю себе pentagon 128 и тут такой подарок) Обязательно попробую для души повторить ну и охото своих штучек понаписать) Так что спасибо за видео) Ассамблер со времен avr не видел. Соскучился)
@8BitTeaParty
@8BitTeaParty 4 года назад
Спасибо за теплый отзыв! Прямо целая куча вопросов, тут пока кратко и на следующем вещании подробнее ответим на вопросы! :) Если что вещание кода на Твиче по субботам в 18-00, канал bitscode. Или наш основной канал там же, 8bitteaparty. Также мы всегда открыты для новых участников в проектах, можно посмотреть репозиторий на ГитХабе(ссылка в описании). Видео длинные у нас, формат вещаний, так что не стесняемся применять скорость 2Х. )) Ссылки на документацию есть у нас в репозитории, прямо в Вики немного. Также можно посмотреть ресурсы для начала speccy.info, там есть и описание горячих клавиш для отладчика СТС. Комбинации команд и клавиш для среды разработки АЛАЗМ - есть в документации к нему, прямо в текстовом виде. :) Из книг для вспомнить/изучить порекомендуем издательство Инфоркома - Программирование в машинных кодах, ну и старые журналы конечно же, сайт zxpress.ru Про ОЗУ, да программа там же и ассемблируется подробнее на следующем вещании. ;) Насчет продакшена, если имеется ввиду что планируется именно практическое современное применение, то мы будем сильно удивлены, у нас всё таки ретро вещание. :) Ну а мы храним всё на дискете Streams.trd - образ есть в репозитории и там же файлы .asm которые можно посмотреть прямо так. Старые вещания располагаются в директории /archive. Если пользуются современными средствами разработки, то порекомендуем кросс-ассемблер и любую среду. И хранить уже прямо исходник + образ для размещения в памяти, для эмулятора. Постараемся на вещании этот вопрос тоже затронуть. ;)
@IExSet
@IExSet 4 года назад
Вау! Это я удачно зашёл
@lionshg
@lionshg 4 года назад
Классная тема! Прям вернулся на 20 лет назад, когда также в аласме писали демки, интры и TR-DOS загрузчики для кассетных игр! лайк, подписка )
@ЕржанКабулов-й4ы
@ЕржанКабулов-й4ы 4 месяца назад
Это не машинные коды. Это язык близкий к машинным кодам. Машинные коды имели кодировку типа "0F", которые заносились в память или регистры. На ассемблере было легче писать, без необходимости все помнить. В некоторых случаях программы прямо писали в ассемблере, так как удавалось делать самые быстрые игры. Так как компьютеры тогда были ужасно медленные и на Бейсике получались вообще тормозные игры. Был компьютер PK86, который имел быстрый экран за счет алфавитно-символьного вывода, там игры хоть и были квадратные, зато были динамичными. С появлением IBM PC появился язык С, который был языком высокого уровня и на нем было эффективно писать программы, чем кодировать их по байтам. Сегодня никто даже не пишет коды, а использует развитые библиотеки, где практически все есть. В последнее время программированием занялся искусственный интеллект, который не только умеет создавать код, но и тестировать его, а в случае обнаружения проблем - устранять их.
@school700fp
@school700fp Год назад
Привет, от меня лайк и подписка. Я с 90 г. в этой теме !
@НиколайПитен
@НиколайПитен 3 года назад
CPU. могу представить "технологический" комп. прошивка для того чтобы играть AY-шную музыку. Всё есть. всё работает. с 90-х лежит. Есть ещё: картридж для спекки. FIFO - "первый вошол - первый вышел". экранную область тоже можно использовать как изменяемую область! для переадресации !
@ВадимДерябкин-ф2ю
@ВадимДерябкин-ф2ю 4 года назад
Ох. С удовольствием досмотрел видео! Было приятно посмотреть и очень хочется повторить. Чем и планирую заняться вскоре.
@VBKesha
@VBKesha 4 года назад
Давно хотел вникнуть в ассемблер Z80. Может теперь получитcя :)
@dmitryvlasov931
@dmitryvlasov931 3 года назад
Получилось?
@jenix102
@jenix102 Год назад
Лучше этот канал не смореть враньё на вранье. Самодельщина и выдумки. Трдос была в мизерном колве. Это не тот легендарный спектрум. Это тр-дос с дисками, которых не было ни у кого, от слова совсем. Спек был на магнитофоне и памяти 48к. А здесь пентагон128. Да ещё в эмуляторе ;))) хватит пудрить моск наивным людям. У полстраны был ленинград 48к Зонова, а не эта хрень. Отписывайтесь и не смотрите эту фантастическую хрень.;)
@IExSet
@IExSet Год назад
@@jenix102 Чудила, смотри комментарий Alone Coder "ALASM 4.46 работает на 48K. Но надо учесть, что он занимает #8000..#bfff под себя, #c000.. под исходник (затирается в процессе компиляции), ...#ffff под метки." Можешь приступать на своём убогом 48к 🙂
@alexs8579
@alexs8579 8 месяцев назад
разобрался с эмулятором fuse если выбирать file-open и образ дискеты с ALASM, то он требует rom от скорпион256 и в нём срабатывает автозапуск утилиты восстановления. А всё потому что в скорпионе tr-dos не даёт командную строку и пытается сразу запустить дискету. если дискеты нет, система выходит на первое меню выбора что запускать tr-dos или бэйсик. А вот если выбрать rom pentagon128 в нём tr-dos работает корректно и автозапуска дискеты нет, командная строка работает и команда list показывает список файлов. а дискета подключается media-disk-driveA-insert А запуск и просмотр дискеты происходит по команде list Run "alasm42" всё забыл за 30 лет )))
@BitsCode
@BitsCode 8 месяцев назад
Хех, да, всё верно, мы использовали конфигурацию Пентагона-128К, которая и была у меня самого в 90-ых. :) Скорпиона в наших краях не водилось, или я таковых не знал. Ленинград, Пентагон или местные варианты с радио-заводов. Но мы так-то для основных проектов, стараемся ориентироваться на оригинальный Спектрум. :) Дополнительно, команды алазм-а можно посмотреть в текстовом файле, который идёт в комплекте. ;)
@fish9370
@fish9370 2 года назад
У вас есть редактор, мы прямо в машинном коде писали.
@BitsCode
@BitsCode 2 года назад
Эх, суровое было время! Да, этот редактор еще относительно удобен. До этого были разные ZEUS-ы и другие простые инструменты. Но да, первые попытки в машинный код обычно делались через POKE и DATA, набранные в ручную. :)
@captainpronin953
@captainpronin953 2 года назад
Ну я в бейстке тоже коды набивал, но не практично это....
@iRusiko
@iRusiko 4 года назад
Супер! Спасибо!
@vitgo
@vitgo 2 года назад
никаких задержек луча в оригинале небыло... как вы вообще представляете себе задержку луча элт ?!
@BitsCode
@BitsCode 2 года назад
Хм, возможно не удачно выразились. Луч понятно не останавливается совсем. Но есть активная область отрисовки и возврат в левую верхнюю точку, когда и начинается формирование нового кадра на экране ЭЛТ. Для VGA адаптера например это была еще и возможность посылать импульсы синхронизации и возможность отслеживать процессором, порты 0x3DA(0x3BA), Vertical Retrace. Для Спектрума и его возможных модификаций посмотрим подробнее уже на "Дневниках разработки №7", но в целом отрисовка и прерывания совпадали по тайминнгу, ~50 кадров в сек.
@jenix102
@jenix102 Год назад
Лусше этот канал не смореть враньё на вранье. Самодельщина и ввдумки. Трдос была в мищерном колве. Это не тот легендареый спектрум. Это трдос с дисками, которых не было ни у кого, от слова совсем. Спек был на магнитофоне и памяти 48к. А здесь пентагон128. Да ещё в эмуляторе ;)))
@vitgo
@vitgo Год назад
@@jenix102 🤣🤣🤣
@IExSet
@IExSet Год назад
Было (обратный ход луча) и не только это, ещё в оригинале была медленная память и быстрая память из-за конфликта для отрисовки видео.
@IExSet
@IExSet Год назад
@@jenix102 Чувак, ты несёшь какую-то дичь, иди играй в свой 48к спек на магнитофоне и памяти 48к не в эмуляторе, не порть настроение людям ! У меня есть и 48к и аналог Scorpion ZS 256 и ZX Evolution, и меня твоя классика нисколько не конторит, все Спеки хороши, включая эмулятор !
@redblink9728
@redblink9728 Месяц назад
Щас я проверяю звук у нас у вещания все ли хорошо. Щас я проверяю звук у нас у вещания все ли хорошо. Щас я проверяю звук у вещания все ли хорошо. Ага все отлично😆
@ОлегШевцов-ъ9ч
@ОлегШевцов-ъ9ч 11 дней назад
Все время путаюсь Kb-это килобит, KB-это килобайт, Kib-это 1024 бит, KiB -это 8192 бит. и вовсяких источниках все по разному тут вообще можно с ума сойти. и где настоящие правила ? Вы уже сами определитесь толи у вас 48Кb пямяти = 6КВ!, толи 48KB настоящих.
@ДмитрийАгапов
@ДмитрийАгапов 2 месяца назад
Был у меня когда то Пентагон-128 в отдельном системном блоке с двумя дисководами. Пользовался ассемблером GENS-4D и отладчиком MONS-4D. Была у меня еще книжка "Как написать игру на ассемблере", по ней и изучал. Был у меня и Си компилятор HiSoft C Compiler. Изучал на нем Си по легендарной "Белой книге" Кернигана и Ричи. Программы на Си работали заметно медленнее аналогичных на ассемблере, но все же сильно быстрее, чем интерпретируемые на Бэйсике. Славное было время :-)
@Fastereus
@Fastereus 8 месяцев назад
Епа мать ALASM ... уахахахаха TASM юзал , самый лучший был
@ГеннадійСмирнов
А нельзя ли после строки объявить ещё одну переменную и находить длину строки как разницу адресов?
@BitsCode
@BitsCode Год назад
Можно и так, функционал вроде бы в ALASM-е поддерживается но поскольку у нас тут был очень простой и быстрый пример, то ограничились подсчетом на глазок! :)
@АрсенийСилаев-щ7б
@АрсенийСилаев-щ7б 3 года назад
Где взять образ конкретно этого ALASM? И как его прикрутить к FUSE? . По вашей ссылке открывается какой то файл реаниматор просит сканировать диски, подключал файлы и ALASM509_STS75 и ALASM508
@alonecoder600
@alonecoder600 3 года назад
надо на этом диске запускать программу "alasm42"
@alexs8579
@alexs8579 8 месяцев назад
@@alonecoder600 так он ни на какие клавиши не реагирует, считывает каталог на дискете и всё. а всё разобрался сам. у меня автостарт стоял.
@captainpronin953
@captainpronin953 2 года назад
И есть на спек хорошие ассемлеры, забыл название но максимум 16 ул кода. Так как одна страница была всего для когда, но очень быстро грузил куски данных с диска и include.
@BitsCode
@BitsCode 2 года назад
Немного не ясно описано, но если что ALASM как раз грузит исходный код в дополнительные страницы. Используется синтаксис INCLUDE "FILE", MEMORY PAGE. Дополнительно по ассемблерам можно посмотреть на speccy.info.
@jenix102
@jenix102 Год назад
Так это иине спек, это трдос, дисклвая система на пентагоне 128. К тому же на эмуляторе )) короче чушь и враньём погоняет. Спек был массовым от 1 до 1,5 млн штук в россии, а трдос это 10 тыс штук. Очень узкая прослойка.
@IExSet
@IExSet Год назад
@@jenix102 Чувак, тебя заклинило, проспись !!!
@Филипок-н5ю
@Филипок-н5ю Год назад
Страшно Вас слушать, господа программисты, мой любимый asm-xl-desidn там ошибок нет и все четко
@BitsCode
@BitsCode Год назад
Не использовали ASM-XL - поэтому сложно что-то сказать, но если удобно пользоваться именно им - то выбор за каждым. ALASM - пока что за исключением пары моментов, когда команда была написана с синтаксической ошибкой у меня, то ассемблер сработал, а по факту появились другие машинные коды, заметил только отладчиком. В остальном АЛАЗМ работает и претензий нет. :)
@КлайвСинклер-е6ю
@КлайвСинклер-е6ю 2 года назад
24:50 В официальной документации по ROM процедура #1601 называется CHAN_OPEN Если использовать официальные названия - проще понимать (на заметку!)
@BitsCode
@BitsCode 2 года назад
Собственно название и подставили, но да, возможно что если будет соответствие между официальными названиями из ПЗУ и в коде, то будет лучше для восприятия. Но у нас пока что, кроме работы с ТР-ДОС-ом более вызовов не планируется. Ну или совсем всё будет круто и мы реулизуем возможность движка с подгрузкой. :)
@ВадимДерябкин-ф2ю
@ВадимДерябкин-ф2ю 4 года назад
Только есть небольшое пожелание. Прикрепите, пожалуйста, ссылку на справочник. А то не очень ясен был момент с вызовом подпрограммы. Я примерно представляю, как оно там устроено, как бы я реализовал. Но хотелось бы подробнее сразу прочитать. Почему записаны адрес строки и ее длина были именно в эти регистры. Было бы полезно.
@ДмитрийСтрекалов-т7в
потому что подпрограмма печати принимает параметры в этих регистрах
@ultraroof6679
@ultraroof6679 Год назад
круто!
@kr4snod4r
@kr4snod4r 3 года назад
только зашел на стрим. допишите? помню были скрины видать с компрессией. о чем пишем на следующем стриме расскажите сразу. я я как понял что то хотите представить похожее на приключения вилли
@8BitTeaParty
@8BitTeaParty 3 года назад
Остальные видео смотрите здесь же на канале, есть плейлист. У нас по общему программирования в планах осталось видео с анимацией простой и дальше в планах только движок для простой игры, но это будет уже наверное ближе к конце года, спасибо за поддержку! :)
@Филипок-н5ю
@Филипок-н5ю Год назад
А rst #16 не?
@BitsCode
@BitsCode Год назад
Можно использовать и стандартное прерывание. Но тут были вопросы. Первые самодельные Спектрумы могли иметь проблемы с прерываниями. Стандартные прерывания вроде бы у всех работали, но т.к. рисковать особенно не хотелось, то были справочники, где адреса функции Бейсика приводились, поэтому и здесь по старой памяти появился просто вызов. :)
@АрсенийСилаев-щ7б
@АрсенийСилаев-щ7б 3 года назад
Запилите пожалуйста видео просто как подключить этот Аласм к эмулятору, как его запустить и как начать на нём писать, а то начать невозможно..
@8BitTeaParty
@8BitTeaParty 3 года назад
Постараемся выпустить подобное краткое видео для тех кто начинает. :) Однако если хочется именно изучать программирование, то мы порекомендуем смотреть в сторону Питона, как более доступного языка программирования для новичков. Ну или у нас на канале чуть посложнее, есть разбор школьныых задач по программированию. :)
@starwalker.odessa
@starwalker.odessa 3 года назад
@@8BitTeaParty Ребята решили что могут программировать сразу на nightmare уровне ))) ...поддерживаю, пусть (хотя бы) basic выучат )
@IExSet
@IExSet Год назад
@@8BitTeaParty Не, Питон хоть и проще начать, но от сути программирования он держит на парсеки. Не уверен, что ассемблер лучше. Надо всего понемножку пробовать и изучать, это самый верный способ: Питон, Си/Си++, Ассемблер, обязательно Лисп (Common Lisp и Scheme имеют сильно разный подход), Prolog пощупать надо. На Спеке не зазорно и с Бейсика начать 🙂
@jenix102
@jenix102 Год назад
@@starwalker.odessa тут ещё и дурачки бегают вокруг, советуют, как заразиться программированием и стать дурачком или идиотом. 🤣
@captainpronin953
@captainpronin953 2 года назад
Ой, как то так плохо все говорят, я если бы не знал ассемблера на z80 не понял бы нифига.
@BitsCode
@BitsCode 2 года назад
Понимать не обязательно, можно просто смотреть! :)
@IExSet
@IExSet Год назад
Отлично всё говорят, слишком подробно даже
@zx_creature
@zx_creature 4 года назад
Вопрос: запустится ли ALASM на Ленинград-48? Хочется, так сказать, на натурном железе потискать.
@8BitTeaParty
@8BitTeaParty 4 года назад
Увы, насколько мы пробовали, то в режиме 48 килобайт - именно эта версия АЛАЗМ-а не запускается, для хранения исходников и других параметров требуются дополнительные страницы памяти. Драйвера были для разных машин и модификаций, Пентагон, Скорпион, Кэй и т.д. до 1024Кб. Но для 48К кажется нет. Но посмотрим подробнее ответ в следующих дневниках разработки или может еще подскажут какой классный был для 48К.
@alonecoder600
@alonecoder600 3 года назад
@@8BitTeaParty ALASM 4.46 работает на 48K. Но надо учесть, что он занимает #8000..#bfff под себя, #c000.. под исходник (затирается в процессе компиляции), ...#ffff под метки.
@jenix102
@jenix102 Год назад
Собственно у полстраны Ленинград 48 ,А здесь вообще неизвестно О чём говорят. Отписывайтесь лучше и не слушайте эту хрень
@silentgamerzx
@silentgamerzx 4 года назад
Интересно,а на чём сам ассемблер писали?🤔
@MsDimkaM
@MsDimkaM 4 года назад
Он сам себя компилирует.
@СергейМоскалёв-с3ь
На другом ассемблере, а самый первый ассемблер был написан непосредственно в кодах.
@Sionelius
@Sionelius 3 года назад
я в кодах писал
@b213videoz
@b213videoz 2 года назад
На машинных кодах 🤣
@captainpronin953
@captainpronin953 2 года назад
Скорее всего на более высоких языках, в то время для спектрума это было нормально.
@zakmdx6252
@zakmdx6252 4 года назад
Очень интересно!
@captainpronin953
@captainpronin953 2 года назад
Учился сам по книге И вначале вообще gems грузил с кассеты. 2 минуты сброс. И опять гружу.
@BitsCode
@BitsCode 2 года назад
Наверное имелся ввиду GENS. Да, он был одним из первых. По современным меркам он очень простой и использовать его затруднительно. Но по сравнению с редактированием чистого машинного кода - это уже было шагом вперед. Сам не использовал его, но видел как применяли другие. У меня уже был ZX-ASM и TR-DOS. :)
@Филипок-н5ю
@Филипок-н5ю Год назад
Охренеть, вы набераете кодовую базу для игр... ?чем помочь? .,.по теории база - хорошая!
@chubrik2
@chubrik2 2 года назад
Что за текстовый редактор с нестандартным размером знакоместа 6×6?
@8BitTeaParty
@8BitTeaParty 2 года назад
ALASM
@BitsCode
@BitsCode Год назад
В ответе на закрепленный комментарий есть ссылка на скачивание редактора и дополнительные утилиты. Ну или загляните в плейлист "Дневники разработки" - можно использовать и современные инструменты.
@ОлегШевцов-ъ9ч
@ОлегШевцов-ъ9ч 3 года назад
Скажите, что за справочник, где взять?
@8BitTeaParty
@8BitTeaParty 3 года назад
Издательство «Инфорком» (Москва 1993) - ПЕРСОНАЛЬНЫЙ КОМПЬЮТЕР "ZX-SPECTRUM". Программирование в машинных кодах и на языке АССЕМБЛЕРА. Можно воспользоваться поиском.
@ОлегШевцов-ъ9ч
@ОлегШевцов-ъ9ч 3 года назад
@@8BitTeaParty Спасибо!
@starets_fugas
@starets_fugas Год назад
R Tape Loading Error, 0:1.
@alexeymezenin
@alexeymezenin 2 года назад
Как же лампово. Подписался.
@jenix102
@jenix102 Год назад
Отписывайся, тут враньё на вранье
@IExSet
@IExSet Год назад
@@jenix102 Ты больной 🙂
@ВадимДерябкин-ф2ю
@ВадимДерябкин-ф2ю 4 года назад
Так же ничего не сказано было о комбинациях нажатий. То есть горячие клавиши. На сохранение. Работа с отладчиком и так далее.
@IExSet
@IExSet 4 года назад
Да мне тоже не хватает, но это есть в доках по ALASM. Есть инглиш доки в виде Word или PDF файла и в самом дистрибутиве ALASM тоже есть в виде H файлов, можно открыть его же редактором.
@ЕвгенийКрасносельский-ж7р
Z80 работает на 3.5Мгц. На 3.5ГГц работает мой двухведерный атлон
@saszab
@saszab 4 года назад
Удивительно, но в видео говорится ровно о том же!
@ЕвгенийКрасносельский-ж7р
@@saszab пардон, видимо пропустил этот момент
@MustangDSG
@MustangDSG 4 года назад
@@saszab Александр ошибся и написал вместо MHz, Hhz, но это просто опечатка :)
@IExSet
@IExSet 2 года назад
@@MustangDSG Hhz - это тоже не GHz, так что всё равно претензия Евгения мимо кассы :-)
@jenix102
@jenix102 Год назад
Самое смешное, что в z80, фактически, тоже два ядра.
@ВадимДерябкин-ф2ю
@ВадимДерябкин-ф2ю 4 года назад
А почему под переменную выделили память именно в 0000? Ведь можно было бы между стеком и самой программой.
@8BitTeaParty
@8BitTeaParty 4 года назад
Уточните пожалуйста строку... Хм, так-то у нас программа стартует с 24 килобайт адресного пространства. Т.е. 16к - ПЗУ, потом экран 6+ килобайт и немного системных переменных. Если имеется ввиду директива DEFW или DEFB, то они просто заполняются нулями эти ячейки и всё. Это просто инициализация, они располагаются по адресу, сразу следующими за адресом команды RET. Ширина шины данных для Спектрума была 8 бит, поэтому выравнивания данных нет. ;)
@ВадимДерябкин-ф2ю
@ВадимДерябкин-ф2ю 4 года назад
​@@8BitTeaParty Спасибо за ответ) А где можно новичку посмотреть распределение памяти подробнее? Узнать, что занято ОС, что занято экраном, что занято самой утилитой ALASM? Просто не ясно, сколько действительно памяти мне доступно для написания софта и в каких регионах. 6+ - не совсем ясно звучит. Нужно знать точное значение... "Если имеется ввиду директива DEFW или DEFB, то они просто заполняются нулями эти ячейки и всё. Это просто инициализация, они располагаются по адресу, сразу следующими за адресом команды RET. Ширина шины данных для Спектрума была 8 бит, поэтому выравнивания данных нет. ;)" А... Вот оно как работает. Я думал, что DEFW - это объявление указателя на переменную... Вообще, чтобы не задавать таких тупых вопросов больше, где можно посмотреть синтаксис ALASM? Просто там же свои фишки, отличные от описания стандартного синтаксиса. Я вот например следующее видео все осилить не могу. Там вы используете команду OR без второго операнда. Понятно из контекста, что OR E делает это с аккумулятором A, т.к. в нем ранее велась работа. Но вот дойти до этого самому - сложно Есть ли где-то документ, на подобии ассемблера у AVR? Просто таблица на 3 страницы где у каждой команды описаны варианты синтаксиса.
@ВадимДерябкин-ф2ю
@ВадимДерябкин-ф2ю 4 года назад
@@8BitTeaParty Я посмотрел здесь файл помощи. Но он скорее руководство к программе-редактору, чем к ассемблеру. Там на zx-pk есть doc версия.
@IExSet
@IExSet 4 года назад
В 0000 не получится, там ПЗУ
@ВадимДерябкин-ф2ю
@ВадимДерябкин-ф2ю 4 года назад
@@IExSet да уже ответили, что там одно адресное пространство)
@GraphPopov
@GraphPopov 11 месяцев назад
Сказали частота процессора 3.5 МГц, а написали какую-то чехорду)) ;CPU: Zilog Z80, 3.5HhZ
@8BitTeaParty
@8BitTeaParty 11 месяцев назад
Да, это опечатка
@raivo1024
@raivo1024 9 месяцев назад
да, и "monochrome" прописано с ошибкой
@Филипок-н5ю
@Филипок-н5ю Год назад
Alasm,- gno, zxasm 3.00 -ок, xasm (для xl Малов) это асмы для програминга
@BitsCode
@BitsCode Год назад
ZXAsm - в целом был неплохой редактор, более того мы сначала хотели использовать его. Но он всё таки был немного сыроват. Работа с памятью, некоторые функции по конвертации исходников и многое по мелочи. Но самое главное - для вещания он точно не подходил, т.к. имел свой внутренний упакованный формат представления, который чтобы достать потом в текст, пришлось бы изучить его и написать инструмент. Иначе у нас бы в репозитории не было бы кода, который могли посмотреть/загрузить другие. :) XASM - ом не пользовались, поэтому сложно что-то сказать. :)
@alexmo6538
@alexmo6538 3 года назад
А как запустить Alasm на Fuse? Как вообще всё это настроить..?
@8BitTeaParty
@8BitTeaParty 3 года назад
По ссылке в закрепленном комментарии можно скачать с сайта архив и образ дискеты, файл .TRD. После этого во Fuse, "Media->Disk->Beta->Drive A->Insert...". Монтируйте дискету и дальше уже через ТР-ДОС. Если ТР-ДОС-а нету в вашей конфигурации(меню РОМ). Для быстроты можно воспользоваться эмулятором UnrealSpeccy. Там уже ТР-ДОС есть по умолчанию и ALT+F1 - меню и там вклада Beta128. Аналогично монтируем образ. Скачать можно там же на странице AloneCoder-a. alonecoder.nedopc.com/zx/
@alexmo6538
@alexmo6538 3 года назад
@@8BitTeaParty Спасибо, буду пробовать так сделать.
@alexs8579
@alexs8579 8 месяцев назад
@@8BitTeaParty ребятушки 2 года конечно прошло, но что такое 2 года против 30 лет , пролистал все комменты , вынесите в заголовок или в отельное видео пошагово как включается эмуль, грузится дискета, какие клавиши. так будет удобнее ))) а то я образ дискета скачал, она на автозапуске мне гонит листинг файлов и потом выходит. а за 30 лет порядком подзабыл как с дискетами на спектруме работать ))
@alexs8579
@alexs8579 8 месяцев назад
а да и еще скачал сначала эмулятор fuse а в нём не все rom были, искал недостающие ))) образ дискеты с ALASM требовал ромов от скорпиона 256 почему-то
@kr4snod4r
@kr4snod4r 3 года назад
я обычно пишу код а потом иду по факторингу.кода время экономится ребята я вижу что з80 лупите по уму
@captainpronin953
@captainpronin953 2 года назад
Что делаете ?
@alexandrpekhimenko1728
@alexandrpekhimenko1728 4 года назад
Давно хотел протокол I2C на реальном Спектруме запилить. Может поможете?
@Sionelius
@Sionelius 3 года назад
в спектруме таймера нет, это извращение
@SergeDzus
@SergeDzus 3 года назад
Полюключите ардуино к портам
@Sionelius
@Sionelius 3 года назад
@@SergeDzus зачем тогда реализация на Спектруме? :) это уже реализация на atmega328, а код как туда грузить будешь? через ВВ55 или ИР23? atmega не успеет шину в Z переводить, или последовательно загружать как на магнитофон? тогда надо делать обвес, ИР23 на данные и мелкороссыпь на запись/чтение
@8BitTeaParty
@8BitTeaParty 3 года назад
Хм, насчет I2C уверенности нет, разве что кто-то реализует отдельно подобный функционал. Но тут как верно заметили, воспользоваться чем-то современным по железу будет сильно проще. Мы будем работать с некотороми портами(уже настраивали прерывания), но в целом для Спектрума возможно поработаем с простой переферией.
@alexandrpekhimenko1728
@alexandrpekhimenko1728 3 года назад
@@8BitTeaParty Хотелось бы увидеть код для I2C. По железу это реализовать просто, хоть через порт#31 на чтение и порт #FE на запись и резистор. Хотелось бы подключить некоторые I2C микросхемы через Спектрум.
@ВадимДерябкин-ф2ю
@ВадимДерябкин-ф2ю 4 года назад
А если я хочу "в продакшен" утилиту, то я могу как-то скомпилированную программу сохранить? Чтобы запускать с дискеты или по аудио каналу там...
@IExSet
@IExSet 4 года назад
Конечно можете, иначе зачем нужен ассемблер. Но потребуется загрузчик. Надо сохранить CODE файлы из областей памяти, а затем BASIC загрузчик при запуске должен их загрузить типа LOAD"MYEXE"CODE MEMADDRESS. SAVEOBJ*.H - сохраняет любое количество кусков кода из любых страниц в разные файлы с заданными именами. m2hr*.H - пакует непрерывный кусок хрустом2 и склеивает программу с бейсик-загрузчиком. mrip*.H - то же, но пакует мрипом (сильнее).
@8BitTeaParty
@8BitTeaParty 4 года назад
Вариантов решения много образы кассет, дискет памяти, завтра утром будет опубликовано видео, если еще не успели посмотреть на трансляции, и там немного затронем эту тему, вариант с памятью. :)
@alonecoder600
@alonecoder600 3 года назад
в комплекте есть исходник SAVEOBJ (может сохранять много блоков, но без загрузчика) и исходники m2hr и mrip (могут сохранять один блок с загрузчиком, упакованный).
@ВадимДерябкин-ф2ю
@ВадимДерябкин-ф2ю 4 года назад
Кстати говоря. Не сразу дошло, что скомпилированная программа так же ляжет в ОЗУ... Привык уже, что все равно в постоянке лежит. Как в микроконтроллерах или на компьютере...
@IExSet
@IExSet 4 года назад
На компьютере тоже не всегда на диск падает, полно систем где компиляция происходит в память, начиная с Common Lisp, заканчивая всякими Pythonами.
@ВадимДерябкин-ф2ю
@ВадимДерябкин-ф2ю 4 года назад
@@IExSet python неудачный пример. Ибо он скриптовый. Хотя тот же байт-код можно положить и в ПЗУ.
@8BitTeaParty
@8BitTeaParty 4 года назад
В целом да, верно, но тут именно что у нас есть внешняя система и эмулятор машины, Спектрума. И поэтому и появляется такая возможность, вынести всё во вне её. Чуть подробнее в серии дневников разработки. Также в любом случае рекомендуем всем сохраняться всегда перед запуском. :)
@8BitTeaParty
@8BitTeaParty 4 года назад
@@ВадимДерябкин-ф2ю Насчет Питона тут можно и покомпилировать при желании. :) Но да, для Бейсика используется собственный байт-код, интерпретатор располагается в ПЗУ и там же жестко записаны базовые функции. Поэтому и формат Бейсика относительно компактный по объему занимаемой памяти.
@IExSet
@IExSet 3 года назад
@@ВадимДерябкин-ф2ю Да тот же Forth тоже скриптовый, рядом с жёстким машинным кодом :-) Сам язык Питон относится к динамически типизированным, как тот же Common Lisp, оба с указанием и выводом типов превращаются в статически типизированные и компилируемые в целевой проц. У Common Lisp эта проблема УЖЕ давно решена, он хоть и жирен, но довольно эффективен на оптимизированных участках (на уровне C/C++), используются и векторные расширения для арифметики, причём оптимизировать можно лишь узкие места, наплевав на указания типов и оптимизацию не критических мест (которые выполняются < 10% времени). В принципе асм спека мог бы сразу валить объектный код на диск через TR-DOS (или NedoOS на новых ATM Turbo совместимых спеках). Но памяти и так дофига, на новых 256 страниц 4 мега всё таки.
@tovjukov
@tovjukov 3 года назад
А, почему не MASM?
@tovjukov
@tovjukov 3 года назад
@BitsCode Уже почитал, про Аласм. Прикольный проект. Я остановился на TASM и MASM, и дебагеге STS (вроде так он назывался), последующие уже не застал.
@MustangDSG
@MustangDSG 3 года назад
@BitsCode worldofspectrum.org/software?id=0021423 - MASM был для Спектрума, но это другой MASM.
@alexlozhkin1907
@alexlozhkin1907 9 месяцев назад
Почему не С ?
@8BitTeaParty
@8BitTeaParty 9 месяцев назад
Си для x86 есть тут - ru-vid.com/group/PL0mHYOOrrdC0qxi6hK--R5AW9GmRKcfsA , а для Спектрума Си - язык со слишком высоким уровнем абстракции от железа
@BitsCode
@BitsCode 9 месяцев назад
Про высокий уровень для Спектрума уже отметили, но дополним, что именно на ассемблере писать код - самое интересное и кусочек ностальгии. ;) Частично Бейсик есть в "Дневниках разработки" посмотрите в листах, Бейсик был значимым языком в те времена! ;)
@ArtZ0777
@ArtZ0777 4 месяца назад
1) Памяти мало. В 48kb нужно вместить и комплилятор C, и исходники программы и получаемую программу, и данные. Это сложно, если программа не совсем мелкая. Хорошие функциональные программы и особенно игры на ZX-Spectrum обычно занимали бОльшую часть оперативной памяти. Хотя я подозреваю, что вывернувшись наизнанку, можно было и на C как-то писать, компилируя кусками и выгружая комплилятор, собирать и тестировать на откомпилированном коде, и потом обратно загружать компилятор, но, наверное, проще было привыкнуть к ассемблеру. 2) Ассемблер дает больше свободы, чем Си. В случае с ZX-Spectrum, учитывая его медлительность и необходимость экономить каждый байт (не килобайт, а байт), на ассемблере можно придумывать разные "хаки", "жонглируя" регистрами, а никакой компилятор так не может.
@alexlozhkin1907
@alexlozhkin1907 4 месяца назад
@@ArtZ0777 я имел в виду кросс-компилятор Си.. На самом спекки ясно дело так не получится.
@ArtZ0777
@ArtZ0777 4 месяца назад
@@alexlozhkin1907 а-а, простите, я неправильно понял.
@jenix102
@jenix102 Год назад
Что тут можно сказать - дисковые версии это оооочень узкая прослойка людей, те про неё говорить, что это массовый комп ? Это враньё, тем более пентагон 128. Это идёт речь об 10 тысячах людей, от силы. Настрящий же спектрум, который легендарный и массовый (от 1 до 1,5 млн штук в россии только) это и близко не про это видео. Вобщем видео про неизвестно что, запудривание мозгов молодым дуракам. Чистое араньё короче.
@IExSet
@IExSet Год назад
Ты чего такой злой, спектрумист 🙂Требования в этом видео, спектрум 128, не обязательно Пентагон. TR-DOS был сравнительно массовым на просторах СССР, энтузиастов осталось мало, какие уж там миллионы, нет никакого смысла рассматривать что то иное. Вообще рекомендую приобрести ZX Evolution с NEO GS и сетевухой и радоваться жизни !!!
@lommmaster
@lommmaster 3 года назад
Полвидео вписывал комментарии... Нахрена? Ты думаешь, смотрят те, кто не понимает?
@8BitTeaParty
@8BitTeaParty 3 года назад
Мы стараемся быть понятными широкой аудитории и для тех кто впервые, возможно, нашел видео/канал. Для тех кто более опытен, всегда можно перемотать видео или ускорить. Также порекомендуем отличный канал Дмитрия, "Alone Coder" - там уровень для "тех кто понимает". :) ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-sNhMh_TW7BY.html
@yar0607
@yar0607 3 года назад
Мне 17, я этих компов уже не застал. О программировании начал узнавать с Паскаля и Джавы. Так что очень даже спасибо им за такие подробности.
@486OverDrive
@486OverDrive 3 года назад
Я давно писал под Z80, уже всё забыл, комментарии очнь помогли. Как по мне - в ролике всё по теме, ничего лишнего.
@IExSet
@IExSet Год назад
@@yar0607 В принципе и сейчас можно ударить по X64 ассемблеру, хотя лучше и теплее начать с ретро 🙂
@alexs8579
@alexs8579 8 месяцев назад
@@8BitTeaParty и правильно. комменты вещь нужная
@jemmini2
@jemmini2 9 месяцев назад
зачем это в 2023 году ?..
@8BitTeaParty
@8BitTeaParty 9 месяцев назад
Затем же, зачем будет и в 2024-м: для веселья, для отдыха, для любопытства... Фундаментальные основы информатики не поменялись с тех пор.
@jemmini2
@jemmini2 9 месяцев назад
@@8BitTeaParty так полезнее было бы учить для арм или х86. зачем тратить время на некрофилию?
@Norrisoid
@Norrisoid 9 месяцев назад
@@jemmini2 а для чего люди играют, коллекционируют монеты, клеят масштабные модели, пишут комментарии под видео, которые им не интересны? Зачем тратить время?
@BitsCode
@BitsCode 9 месяцев назад
Ну, кроме того что мы сами отдыхали и получали удовольствие от ностальгии... ;) В целом, для изучения низкоуровневого программирования и понимания логики минимального набора команд, с помощью которого строится любая вычислимая(рекурсивная) функция можно использовать и подобный ассемблер. Практика и общее понимание поможет в написании и обычного кода на любом языке программирования. Единственное, что Спектрум не очень может быть удобен в плане архитектуры и редактирования кода. Для тех кто впервые знакомится, можем порекомендовать ДОС и процессор 8086 - там более удобный редактор ДосНавигатор и система команд немного полегче, чем для Z80. :)
@jemmini2
@jemmini2 9 месяцев назад
@@BitsCode одинаковая система команд. но для 86 это можно будет применять практически, здесь и сейчас, как есть. а для z80 знания останутся лишь как чисто теоретические...
Далее
🎙Пою РЕТРО Песни💃
3:05:57
Просмотров 1,3 млн
I Built a SECRET Lamborghini Dealership!
33:02
Просмотров 4 млн
ZX Spectrum на виниле, радио и CD
17:00
Просмотров 288 тыс.
Обзор Elite Legend 128k. 2021. ZX Spectrum [MOD]
22:25
Круче iPhone
0:29
Просмотров 13 тыс.