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

แชร์
ฝัง
  • เผยแพร่เมื่อ 26 ส.ค. 2024
  • Программирование на ассемблере для ретро платформы ZX Spectrum(Спектрум). Введение и первая традиционная программа - "Привет Мир!". Вещание на эмуляторе Fuse, ассемблер ALASM, отладчик STS и много чая! :)
    speccy.info/ALASM
    Как пользоваться ALASM - zx-pk.ru/threa...
    Вещание программирования на канале: / bitscode .
    Наш основной канал: / 8bitteaparty .
    Репозиторий с исходным кодом: github.com/dre....
    Сайт 8-Битного Чаепития - 8bittea.party/.

ความคิดเห็น • 168

  • @IVV79
    @IVV79 4 ปีที่แล้ว +6

    Подскажите пожалуйста, какой образ ALASM используется, или как переключить редактор, а то у меня запускается на чёрном экране и шрифт более мелкий.

    • @8BitTeaParty
      @8BitTeaParty  4 ปีที่แล้ว +7

      Образ Алазма используем версии 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 ปีที่แล้ว +3

      @@8BitTeaParty Огромное спасибо за столь развёрнутый ответ! И отдельно спасибо за этот цикл по ассемблеру, очень качественно подан материал и просто приятно слушать! )

  • @user-fj6nj9cl4y
    @user-fj6nj9cl4y 2 ปีที่แล้ว +11

    Моё знакомство с асемблером началось с маленькой брошюрки Ю. Родионова выпущенной издательством Питер. Я уже не помню как она называлась, что то по взлому загрузчиков программ для спектрума. Но это был начальный и полезный этап понимания всей кухни работы програм. В результате портировал множество программ с кассетной версии на дисковую. В дальнейшем стал писать драйверы для перефирии. В частности сделал шрифты и загрузчик кирилицы в 24 точечный принтер сейкоша, довольно экзотический по тем временам. Журнал zx ревю читался как забористый детектив. Были идеи использовать спектрум для управления станком ЧПУ, но наступила эра IBM.

    • @BitsCode
      @BitsCode ปีที่แล้ว +3

      Мне повезло чуть больше. У меня была простая книжка от VA Print. По ассемблеру и еще пару справочников с таблицами кодов команд. В целом можно было и по ним методом проб и ошибок также изучить. ;) Жаль только что не было книги популярной от Инфоркома. Но и того что было - в целом хватило. Плюс журналы. ZX Ревю был хорош и это был интернет того времени. Ну и журналы на дискетах Спектрофон, ЗХ Формат и другие. С переферией поработать лично не успел, еле справился тогда даже с муз. сопроцессором - использовал готовый плеер в исходниках. Русификатор многие делали для поддержки хотя бы в Бейсике. Ну а по ЧПУ - возможно что для простого управления Z80 можно и сейчас попробовать использовать. :)

    • @user-fj6nj9cl4y
      @user-fj6nj9cl4y ปีที่แล้ว +2

      @@BitsCode мне попадался компьютер на базе zx spectrum с блоком управления для фрезеровки изделий из дерева. Работал через параллельный порт. Программа написана на basic. Это чудо работало. Хоть и с примитивным интерфейсом. Эпоха развития частного бизнеса.

  • @user-rl8bu2hc8t
    @user-rl8bu2hc8t 4 ปีที่แล้ว +7

    Это. Просто. Потрясающе! Как раз собираю себе pentagon 128 и тут такой подарок) Обязательно попробую для души повторить ну и охото своих штучек понаписать) Так что спасибо за видео) Ассамблер со времен avr не видел. Соскучился)

    • @8BitTeaParty
      @8BitTeaParty  4 ปีที่แล้ว +4

      Спасибо за теплый отзыв! Прямо целая куча вопросов, тут пока кратко и на следующем вещании подробнее ответим на вопросы! :) Если что вещание кода на Твиче по субботам в 18-00, канал bitscode. Или наш основной канал там же, 8bitteaparty. Также мы всегда открыты для новых участников в проектах, можно посмотреть репозиторий на ГитХабе(ссылка в описании). Видео длинные у нас, формат вещаний, так что не стесняемся применять скорость 2Х. ))
      Ссылки на документацию есть у нас в репозитории, прямо в Вики немного. Также можно посмотреть ресурсы для начала speccy.info, там есть и описание горячих клавиш для отладчика СТС. Комбинации команд и клавиш для среды разработки АЛАЗМ - есть в документации к нему, прямо в текстовом виде. :)
      Из книг для вспомнить/изучить порекомендуем издательство Инфоркома - Программирование в машинных кодах, ну и старые журналы конечно же, сайт zxpress.ru
      Про ОЗУ, да программа там же и ассемблируется подробнее на следующем вещании. ;)
      Насчет продакшена, если имеется ввиду что планируется именно практическое современное применение, то мы будем сильно удивлены, у нас всё таки ретро вещание. :) Ну а мы храним всё на дискете Streams.trd - образ есть в репозитории и там же файлы .asm которые можно посмотреть прямо так. Старые вещания располагаются в директории /archive. Если пользуются современными средствами разработки, то порекомендуем кросс-ассемблер и любую среду. И хранить уже прямо исходник + образ для размещения в памяти, для эмулятора.
      Постараемся на вещании этот вопрос тоже затронуть. ;)

  • @lionshg
    @lionshg 4 ปีที่แล้ว +5

    Классная тема! Прям вернулся на 20 лет назад, когда также в аласме писали демки, интры и TR-DOS загрузчики для кассетных игр! лайк, подписка )

  • @user-pi8pe9pj7y
    @user-pi8pe9pj7y 3 หลายเดือนก่อน +2

    Это не машинные коды. Это язык близкий к машинным кодам. Машинные коды имели кодировку типа "0F", которые заносились в память или регистры. На ассемблере было легче писать, без необходимости все помнить. В некоторых случаях программы прямо писали в ассемблере, так как удавалось делать самые быстрые игры. Так как компьютеры тогда были ужасно медленные и на Бейсике получались вообще тормозные игры. Был компьютер PK86, который имел быстрый экран за счет алфавитно-символьного вывода, там игры хоть и были квадратные, зато были динамичными. С появлением IBM PC появился язык С, который был языком высокого уровня и на нем было эффективно писать программы, чем кодировать их по байтам. Сегодня никто даже не пишет коды, а использует развитые библиотеки, где практически все есть. В последнее время программированием занялся искусственный интеллект, который не только умеет создавать код, но и тестировать его, а в случае обнаружения проблем - устранять их.

  • @IExSet
    @IExSet 4 ปีที่แล้ว +3

    Вау! Это я удачно зашёл

  • @ДмитрийАгапов
    @ДмитрийАгапов หลายเดือนก่อน

    Был у меня когда то Пентагон-128 в отдельном системном блоке с двумя дисководами. Пользовался ассемблером GENS-4D и отладчиком MONS-4D. Была у меня еще книжка "Как написать игру на ассемблере", по ней и изучал. Был у меня и Си компилятор HiSoft C Compiler. Изучал на нем Си по легендарной "Белой книге" Кернигана и Ричи. Программы на Си работали заметно медленнее аналогичных на ассемблере, но все же сильно быстрее, чем интерпретируемые на Бэйсике. Славное было время :-)

  • @user-rl8bu2hc8t
    @user-rl8bu2hc8t 4 ปีที่แล้ว +3

    Ох. С удовольствием досмотрел видео! Было приятно посмотреть и очень хочется повторить. Чем и планирую заняться вскоре.

  • @school700fp
    @school700fp 11 หลายเดือนก่อน +3

    Привет, от меня лайк и подписка. Я с 90 г. в этой теме !

  • @iRusiko
    @iRusiko 4 ปีที่แล้ว +3

    Супер! Спасибо!

  • @redblink9728
    @redblink9728 19 วันที่ผ่านมา

    Щас я проверяю звук у нас у вещания все ли хорошо. Щас я проверяю звук у нас у вещания все ли хорошо. Щас я проверяю звук у вещания все ли хорошо. Ага все отлично😆

  • @alexs8579
    @alexs8579 6 หลายเดือนก่อน +2

    разобрался с эмулятором 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 6 หลายเดือนก่อน +1

      Хех, да, всё верно, мы использовали конфигурацию Пентагона-128К, которая и была у меня самого в 90-ых. :) Скорпиона в наших краях не водилось, или я таковых не знал. Ленинград, Пентагон или местные варианты с радио-заводов. Но мы так-то для основных проектов, стараемся ориентироваться на оригинальный Спектрум. :) Дополнительно, команды алазм-а можно посмотреть в текстовом файле, который идёт в комплекте. ;)

  • @VBKesha
    @VBKesha 4 ปีที่แล้ว +5

    Давно хотел вникнуть в ассемблер Z80. Может теперь получитcя :)

    • @dmitryvlasov931
      @dmitryvlasov931 3 ปีที่แล้ว +1

      Получилось?

    • @jenix102
      @jenix102 ปีที่แล้ว

      Лучше этот канал не смореть враньё на вранье. Самодельщина и выдумки. Трдос была в мизерном колве. Это не тот легендарный спектрум. Это тр-дос с дисками, которых не было ни у кого, от слова совсем. Спек был на магнитофоне и памяти 48к. А здесь пентагон128. Да ещё в эмуляторе ;))) хватит пудрить моск наивным людям.
      У полстраны был ленинград 48к Зонова, а не эта хрень. Отписывайтесь и не смотрите эту фантастическую хрень.;)

    • @IExSet
      @IExSet ปีที่แล้ว +1

      @@jenix102 Чудила, смотри комментарий Alone Coder "ALASM 4.46 работает на 48K. Но надо учесть, что он занимает #8000..#bfff под себя, #c000.. под исходник (затирается в процессе компиляции), ...#ffff под метки." Можешь приступать на своём убогом 48к 🙂

  • @alexeymezenin
    @alexeymezenin 2 ปีที่แล้ว +1

    Как же лампово. Подписался.

    • @jenix102
      @jenix102 ปีที่แล้ว

      Отписывайся, тут враньё на вранье

    • @IExSet
      @IExSet ปีที่แล้ว +1

      @@jenix102 Ты больной 🙂

  • @ultraroof6679
    @ultraroof6679 10 หลายเดือนก่อน +2

    круто!

  • @user-jx9il7fx8t
    @user-jx9il7fx8t 3 ปีที่แล้ว +1

    CPU. могу представить "технологический" комп. прошивка для того чтобы играть AY-шную музыку. Всё есть. всё работает. с 90-х лежит. Есть ещё: картридж для спекки.
    FIFO - "первый вошол - первый вышел".
    экранную область тоже можно использовать как изменяемую область! для переадресации !

  • @zakmdx6252
    @zakmdx6252 4 ปีที่แล้ว +1

    Очень интересно!

  • @fish9370
    @fish9370 2 ปีที่แล้ว +3

    У вас есть редактор, мы прямо в машинном коде писали.

    • @BitsCode
      @BitsCode 2 ปีที่แล้ว +1

      Эх, суровое было время! Да, этот редактор еще относительно удобен. До этого были разные ZEUS-ы и другие простые инструменты. Но да, первые попытки в машинный код обычно делались через POKE и DATA, набранные в ручную. :)

    • @captainpronin953
      @captainpronin953 2 ปีที่แล้ว +1

      Ну я в бейстке тоже коды набивал, но не практично это....

  • @Fastereus
    @Fastereus 6 หลายเดือนก่อน +1

    Епа мать ALASM ... уахахахаха TASM юзал , самый лучший был

  • @user-hd7hq4lf4y
    @user-hd7hq4lf4y 2 ปีที่แล้ว +1

    24:50 В официальной документации по ROM процедура #1601 называется CHAN_OPEN
    Если использовать официальные названия - проще понимать (на заметку!)

    • @BitsCode
      @BitsCode 2 ปีที่แล้ว +1

      Собственно название и подставили, но да, возможно что если будет соответствие между официальными названиями из ПЗУ и в коде, то будет лучше для восприятия. Но у нас пока что, кроме работы с ТР-ДОС-ом более вызовов не планируется. Ну или совсем всё будет круто и мы реулизуем возможность движка с подгрузкой. :)

  • @captainpronin953
    @captainpronin953 2 ปีที่แล้ว +2

    И есть на спек хорошие ассемлеры, забыл название но максимум 16 ул кода. Так как одна страница была всего для когда, но очень быстро грузил куски данных с диска и include.

    • @BitsCode
      @BitsCode 2 ปีที่แล้ว +1

      Немного не ясно описано, но если что ALASM как раз грузит исходный код в дополнительные страницы. Используется синтаксис INCLUDE "FILE", MEMORY PAGE. Дополнительно по ассемблерам можно посмотреть на speccy.info.

    • @jenix102
      @jenix102 ปีที่แล้ว

      Так это иине спек, это трдос, дисклвая система на пентагоне 128. К тому же на эмуляторе )) короче чушь и враньём погоняет.
      Спек был массовым от 1 до 1,5 млн штук в россии, а трдос это 10 тыс штук. Очень узкая прослойка.

    • @IExSet
      @IExSet ปีที่แล้ว

      @@jenix102 Чувак, тебя заклинило, проспись !!!

  • @user-rl8bu2hc8t
    @user-rl8bu2hc8t 4 ปีที่แล้ว +1

    Только есть небольшое пожелание. Прикрепите, пожалуйста, ссылку на справочник. А то не очень ясен был момент с вызовом подпрограммы. Я примерно представляю, как оно там устроено, как бы я реализовал. Но хотелось бы подробнее сразу прочитать. Почему записаны адрес строки и ее длина были именно в эти регистры. Было бы полезно.

    • @user-mf8gg8dj4x
      @user-mf8gg8dj4x 4 ปีที่แล้ว

      потому что подпрограмма печати принимает параметры в этих регистрах

  • @user-md4wy6zi7d
    @user-md4wy6zi7d ปีที่แล้ว +2

    А нельзя ли после строки объявить ещё одну переменную и находить длину строки как разницу адресов?

    • @BitsCode
      @BitsCode 10 หลายเดือนก่อน

      Можно и так, функционал вроде бы в ALASM-е поддерживается но поскольку у нас тут был очень простой и быстрый пример, то ограничились подсчетом на глазок! :)

  • @kr4snod4r
    @kr4snod4r 3 ปีที่แล้ว +1

    только зашел на стрим. допишите? помню были скрины видать с компрессией. о чем пишем на следующем стриме расскажите сразу. я я как понял что то хотите представить похожее на приключения вилли

    • @8BitTeaParty
      @8BitTeaParty  3 ปีที่แล้ว +3

      Остальные видео смотрите здесь же на канале, есть плейлист. У нас по общему программирования в планах осталось видео с анимацией простой и дальше в планах только движок для простой игры, но это будет уже наверное ближе к конце года, спасибо за поддержку! :)

  • @user-zd7sm1ug3y
    @user-zd7sm1ug3y ปีที่แล้ว +2

    А rst #16 не?

    • @BitsCode
      @BitsCode 10 หลายเดือนก่อน

      Можно использовать и стандартное прерывание. Но тут были вопросы. Первые самодельные Спектрумы могли иметь проблемы с прерываниями. Стандартные прерывания вроде бы у всех работали, но т.к. рисковать особенно не хотелось, то были справочники, где адреса функции Бейсика приводились, поэтому и здесь по старой памяти появился просто вызов. :)

  • @user-fx2fj1lq8s
    @user-fx2fj1lq8s 3 ปีที่แล้ว +2

    Где взять образ конкретно этого ALASM? И как его прикрутить к FUSE? . По вашей ссылке открывается какой то файл реаниматор просит сканировать диски, подключал файлы и ALASM509_STS75 и ALASM508

    • @alonecoder600
      @alonecoder600 3 ปีที่แล้ว +2

      надо на этом диске запускать программу "alasm42"

    • @alexs8579
      @alexs8579 6 หลายเดือนก่อน

      @@alonecoder600 так он ни на какие клавиши не реагирует, считывает каталог на дискете и всё. а всё разобрался сам. у меня автостарт стоял.

  • @vitgo
    @vitgo 2 ปีที่แล้ว +4

    никаких задержек луча в оригинале небыло... как вы вообще представляете себе задержку луча элт ?!

    • @BitsCode
      @BitsCode 2 ปีที่แล้ว +1

      Хм, возможно не удачно выразились. Луч понятно не останавливается совсем. Но есть активная область отрисовки и возврат в левую верхнюю точку, когда и начинается формирование нового кадра на экране ЭЛТ. Для VGA адаптера например это была еще и возможность посылать импульсы синхронизации и возможность отслеживать процессором, порты 0x3DA(0x3BA), Vertical Retrace. Для Спектрума и его возможных модификаций посмотрим подробнее уже на "Дневниках разработки №7", но в целом отрисовка и прерывания совпадали по тайминнгу, ~50 кадров в сек.

    • @jenix102
      @jenix102 ปีที่แล้ว

      Лусше этот канал не смореть враньё на вранье. Самодельщина и ввдумки. Трдос была в мищерном колве. Это не тот легендареый спектрум. Это трдос с дисками, которых не было ни у кого, от слова совсем. Спек был на магнитофоне и памяти 48к. А здесь пентагон128. Да ещё в эмуляторе ;)))

    • @vitgo
      @vitgo ปีที่แล้ว +1

      @@jenix102 🤣🤣🤣

    • @IExSet
      @IExSet ปีที่แล้ว

      Было (обратный ход луча) и не только это, ещё в оригинале была медленная память и быстрая память из-за конфликта для отрисовки видео.

    • @IExSet
      @IExSet ปีที่แล้ว +1

      @@jenix102 Чувак, ты несёшь какую-то дичь, иди играй в свой 48к спек на магнитофоне и памяти 48к не в эмуляторе, не порть настроение людям ! У меня есть и 48к и аналог Scorpion ZS 256 и ZX Evolution, и меня твоя классика нисколько не конторит, все Спеки хороши, включая эмулятор !

  • @user-fx2fj1lq8s
    @user-fx2fj1lq8s 3 ปีที่แล้ว +2

    Запилите пожалуйста видео просто как подключить этот Аласм к эмулятору, как его запустить и как начать на нём писать, а то начать невозможно..

    • @8BitTeaParty
      @8BitTeaParty  3 ปีที่แล้ว +2

      Постараемся выпустить подобное краткое видео для тех кто начинает. :) Однако если хочется именно изучать программирование, то мы порекомендуем смотреть в сторону Питона, как более доступного языка программирования для новичков. Ну или у нас на канале чуть посложнее, есть разбор школьныых задач по программированию. :)

    • @starwalker.odessa
      @starwalker.odessa 3 ปีที่แล้ว +1

      @@8BitTeaParty Ребята решили что могут программировать сразу на nightmare уровне ))) ...поддерживаю, пусть (хотя бы) basic выучат )

    • @IExSet
      @IExSet ปีที่แล้ว +1

      @@8BitTeaParty Не, Питон хоть и проще начать, но от сути программирования он держит на парсеки. Не уверен, что ассемблер лучше. Надо всего понемножку пробовать и изучать, это самый верный способ: Питон, Си/Си++, Ассемблер, обязательно Лисп (Common Lisp и Scheme имеют сильно разный подход), Prolog пощупать надо. На Спеке не зазорно и с Бейсика начать 🙂

    • @jenix102
      @jenix102 ปีที่แล้ว

      @@starwalker.odessa тут ещё и дурачки бегают вокруг, советуют, как заразиться программированием и стать дурачком или идиотом. 🤣

  • @user-zd7sm1ug3y
    @user-zd7sm1ug3y ปีที่แล้ว

    Alasm,- gno, zxasm 3.00 -ок, xasm (для xl Малов) это асмы для програминга

    • @BitsCode
      @BitsCode 10 หลายเดือนก่อน

      ZXAsm - в целом был неплохой редактор, более того мы сначала хотели использовать его. Но он всё таки был немного сыроват. Работа с памятью, некоторые функции по конвертации исходников и многое по мелочи. Но самое главное - для вещания он точно не подходил, т.к. имел свой внутренний упакованный формат представления, который чтобы достать потом в текст, пришлось бы изучить его и написать инструмент. Иначе у нас бы в репозитории не было бы кода, который могли посмотреть/загрузить другие. :) XASM - ом не пользовались, поэтому сложно что-то сказать. :)

  • @starets_fugas
    @starets_fugas ปีที่แล้ว +1

    R Tape Loading Error, 0:1.

  • @user-zd7sm1ug3y
    @user-zd7sm1ug3y ปีที่แล้ว

    Охренеть, вы набераете кодовую базу для игр... ?чем помочь? .,.по теории база - хорошая!

  • @captainpronin953
    @captainpronin953 2 ปีที่แล้ว +1

    Учился сам по книге И вначале вообще gems грузил с кассеты. 2 минуты сброс. И опять гружу.

    • @BitsCode
      @BitsCode 2 ปีที่แล้ว +1

      Наверное имелся ввиду GENS. Да, он был одним из первых. По современным меркам он очень простой и использовать его затруднительно. Но по сравнению с редактированием чистого машинного кода - это уже было шагом вперед. Сам не использовал его, но видел как применяли другие. У меня уже был ZX-ASM и TR-DOS. :)

  • @silentgamerzx
    @silentgamerzx 4 ปีที่แล้ว +3

    Интересно,а на чём сам ассемблер писали?🤔

    • @MsDimkaM
      @MsDimkaM 4 ปีที่แล้ว +1

      Он сам себя компилирует.

    • @user-tg6yo7io2y
      @user-tg6yo7io2y 4 ปีที่แล้ว +3

      На другом ассемблере, а самый первый ассемблер был написан непосредственно в кодах.

    • @Sionelius
      @Sionelius 3 ปีที่แล้ว +3

      я в кодах писал

    • @b213videoz
      @b213videoz 2 ปีที่แล้ว

      На машинных кодах 🤣

    • @captainpronin953
      @captainpronin953 2 ปีที่แล้ว +1

      Скорее всего на более высоких языках, в то время для спектрума это было нормально.

  • @user-wm5xk1zk8w
    @user-wm5xk1zk8w 4 ปีที่แล้ว +5

    Z80 работает на 3.5Мгц. На 3.5ГГц работает мой двухведерный атлон

    • @saszab
      @saszab 4 ปีที่แล้ว +3

      Удивительно, но в видео говорится ровно о том же!

    • @user-wm5xk1zk8w
      @user-wm5xk1zk8w 4 ปีที่แล้ว

      @@saszab пардон, видимо пропустил этот момент

    • @MustangDSG
      @MustangDSG 4 ปีที่แล้ว +1

      @@saszab Александр ошибся и написал вместо MHz, Hhz, но это просто опечатка :)

    • @IExSet
      @IExSet ปีที่แล้ว

      @@MustangDSG Hhz - это тоже не GHz, так что всё равно претензия Евгения мимо кассы :-)

    • @jenix102
      @jenix102 ปีที่แล้ว

      Самое смешное, что в z80, фактически, тоже два ядра.

  • @chubrik2
    @chubrik2 2 ปีที่แล้ว +1

    Что за текстовый редактор с нестандартным размером знакоместа 6×6?

    • @8BitTeaParty
      @8BitTeaParty  2 ปีที่แล้ว +2

      ALASM

    • @BitsCode
      @BitsCode ปีที่แล้ว +1

      В ответе на закрепленный комментарий есть ссылка на скачивание редактора и дополнительные утилиты. Ну или загляните в плейлист "Дневники разработки" - можно использовать и современные инструменты.

  • @zx_creature
    @zx_creature 4 ปีที่แล้ว +1

    Вопрос: запустится ли ALASM на Ленинград-48? Хочется, так сказать, на натурном железе потискать.

    • @8BitTeaParty
      @8BitTeaParty  4 ปีที่แล้ว +2

      Увы, насколько мы пробовали, то в режиме 48 килобайт - именно эта версия АЛАЗМ-а не запускается, для хранения исходников и других параметров требуются дополнительные страницы памяти. Драйвера были для разных машин и модификаций, Пентагон, Скорпион, Кэй и т.д. до 1024Кб. Но для 48К кажется нет. Но посмотрим подробнее ответ в следующих дневниках разработки или может еще подскажут какой классный был для 48К.

    • @alonecoder600
      @alonecoder600 3 ปีที่แล้ว +2

      @@8BitTeaParty ALASM 4.46 работает на 48K. Но надо учесть, что он занимает #8000..#bfff под себя, #c000.. под исходник (затирается в процессе компиляции), ...#ffff под метки.

    • @jenix102
      @jenix102 ปีที่แล้ว

      Собственно у полстраны Ленинград 48 ,А здесь вообще неизвестно О чём говорят. Отписывайтесь лучше и не слушайте эту хрень

  • @user-rl8bu2hc8t
    @user-rl8bu2hc8t 4 ปีที่แล้ว

    Так же ничего не сказано было о комбинациях нажатий. То есть горячие клавиши. На сохранение. Работа с отладчиком и так далее.

    • @IExSet
      @IExSet 4 ปีที่แล้ว +3

      Да мне тоже не хватает, но это есть в доках по ALASM. Есть инглиш доки в виде Word или PDF файла и в самом дистрибутиве ALASM тоже есть в виде H файлов, можно открыть его же редактором.

  • @GraphPopov
    @GraphPopov 10 หลายเดือนก่อน

    Сказали частота процессора 3.5 МГц, а написали какую-то чехорду))
    ;CPU: Zilog Z80, 3.5HhZ

    • @8BitTeaParty
      @8BitTeaParty  10 หลายเดือนก่อน

      Да, это опечатка

    • @raivo1024
      @raivo1024 8 หลายเดือนก่อน

      да, и "monochrome" прописано с ошибкой

  • @user-rl8bu2hc8t
    @user-rl8bu2hc8t 4 ปีที่แล้ว +1

    А почему под переменную выделили память именно в 0000? Ведь можно было бы между стеком и самой программой.

    • @8BitTeaParty
      @8BitTeaParty  4 ปีที่แล้ว

      Уточните пожалуйста строку... Хм, так-то у нас программа стартует с 24 килобайт адресного пространства. Т.е. 16к - ПЗУ, потом экран 6+ килобайт и немного системных переменных. Если имеется ввиду директива DEFW или DEFB, то они просто заполняются нулями эти ячейки и всё. Это просто инициализация, они располагаются по адресу, сразу следующими за адресом команды RET. Ширина шины данных для Спектрума была 8 бит, поэтому выравнивания данных нет. ;)

    • @user-rl8bu2hc8t
      @user-rl8bu2hc8t 4 ปีที่แล้ว +2

      ​@@8BitTeaParty Спасибо за ответ) А где можно новичку посмотреть распределение памяти подробнее? Узнать, что занято ОС, что занято экраном, что занято самой утилитой ALASM? Просто не ясно, сколько действительно памяти мне доступно для написания софта и в каких регионах. 6+ - не совсем ясно звучит. Нужно знать точное значение...
      "Если имеется ввиду директива DEFW или DEFB, то они просто заполняются нулями эти ячейки и всё. Это просто инициализация, они располагаются по адресу, сразу следующими за адресом команды RET. Ширина шины данных для Спектрума была 8 бит, поэтому выравнивания данных нет. ;)"
      А... Вот оно как работает. Я думал, что DEFW - это объявление указателя на переменную... Вообще, чтобы не задавать таких тупых вопросов больше, где можно посмотреть синтаксис ALASM? Просто там же свои фишки, отличные от описания стандартного синтаксиса. Я вот например следующее видео все осилить не могу. Там вы используете команду OR без второго операнда. Понятно из контекста, что OR E делает это с аккумулятором A, т.к. в нем ранее велась работа. Но вот дойти до этого самому - сложно Есть ли где-то документ, на подобии ассемблера у AVR? Просто таблица на 3 страницы где у каждой команды описаны варианты синтаксиса.

    • @user-rl8bu2hc8t
      @user-rl8bu2hc8t 4 ปีที่แล้ว +2

      @@8BitTeaParty Я посмотрел здесь файл помощи. Но он скорее руководство к программе-редактору, чем к ассемблеру. Там на zx-pk есть doc версия.

    • @IExSet
      @IExSet 4 ปีที่แล้ว +2

      В 0000 не получится, там ПЗУ

    • @user-rl8bu2hc8t
      @user-rl8bu2hc8t 4 ปีที่แล้ว +2

      @@IExSet да уже ответили, что там одно адресное пространство)

  • @user-bw7un6ht6f
    @user-bw7un6ht6f 2 ปีที่แล้ว +1

    Скажите, что за справочник, где взять?

    • @8BitTeaParty
      @8BitTeaParty  2 ปีที่แล้ว +3

      Издательство «Инфорком» (Москва 1993) - ПЕРСОНАЛЬНЫЙ КОМПЬЮТЕР "ZX-SPECTRUM". Программирование в машинных кодах и на языке АССЕМБЛЕРА. Можно воспользоваться поиском.

    • @user-bw7un6ht6f
      @user-bw7un6ht6f 2 ปีที่แล้ว +1

      @@8BitTeaParty Спасибо!

  • @captainpronin953
    @captainpronin953 2 ปีที่แล้ว +3

    Ой, как то так плохо все говорят, я если бы не знал ассемблера на z80 не понял бы нифига.

    • @BitsCode
      @BitsCode 2 ปีที่แล้ว

      Понимать не обязательно, можно просто смотреть! :)

    • @IExSet
      @IExSet ปีที่แล้ว

      Отлично всё говорят, слишком подробно даже

  • @user-rl8bu2hc8t
    @user-rl8bu2hc8t 4 ปีที่แล้ว

    Кстати говоря. Не сразу дошло, что скомпилированная программа так же ляжет в ОЗУ... Привык уже, что все равно в постоянке лежит. Как в микроконтроллерах или на компьютере...

    • @IExSet
      @IExSet 4 ปีที่แล้ว +1

      На компьютере тоже не всегда на диск падает, полно систем где компиляция происходит в память, начиная с Common Lisp, заканчивая всякими Pythonами.

    • @user-rl8bu2hc8t
      @user-rl8bu2hc8t 4 ปีที่แล้ว +1

      @@IExSet python неудачный пример. Ибо он скриптовый. Хотя тот же байт-код можно положить и в ПЗУ.

    • @8BitTeaParty
      @8BitTeaParty  4 ปีที่แล้ว +1

      В целом да, верно, но тут именно что у нас есть внешняя система и эмулятор машины, Спектрума. И поэтому и появляется такая возможность, вынести всё во вне её. Чуть подробнее в серии дневников разработки. Также в любом случае рекомендуем всем сохраняться всегда перед запуском. :)

    • @8BitTeaParty
      @8BitTeaParty  4 ปีที่แล้ว +1

      @@user-rl8bu2hc8t Насчет Питона тут можно и покомпилировать при желании. :) Но да, для Бейсика используется собственный байт-код, интерпретатор располагается в ПЗУ и там же жестко записаны базовые функции. Поэтому и формат Бейсика относительно компактный по объему занимаемой памяти.

    • @IExSet
      @IExSet 3 ปีที่แล้ว

      @@user-rl8bu2hc8t Да тот же Forth тоже скриптовый, рядом с жёстким машинным кодом :-) Сам язык Питон относится к динамически типизированным, как тот же Common Lisp, оба с указанием и выводом типов превращаются в статически типизированные и компилируемые в целевой проц. У Common Lisp эта проблема УЖЕ давно решена, он хоть и жирен, но довольно эффективен на оптимизированных участках (на уровне C/C++), используются и векторные расширения для арифметики, причём оптимизировать можно лишь узкие места, наплевав на указания типов и оптимизацию не критических мест (которые выполняются < 10% времени). В принципе асм спека мог бы сразу валить объектный код на диск через TR-DOS (или NedoOS на новых ATM Turbo совместимых спеках). Но памяти и так дофига, на новых 256 страниц 4 мега всё таки.

  • @alexmo6538
    @alexmo6538 3 ปีที่แล้ว +1

    А как запустить Alasm на Fuse? Как вообще всё это настроить..?

    • @8BitTeaParty
      @8BitTeaParty  3 ปีที่แล้ว +2

      По ссылке в закрепленном комментарии можно скачать с сайта архив и образ дискеты, файл .TRD. После этого во Fuse, "Media->Disk->Beta->Drive A->Insert...". Монтируйте дискету и дальше уже через ТР-ДОС. Если ТР-ДОС-а нету в вашей конфигурации(меню РОМ). Для быстроты можно воспользоваться эмулятором UnrealSpeccy. Там уже ТР-ДОС есть по умолчанию и ALT+F1 - меню и там вклада Beta128. Аналогично монтируем образ. Скачать можно там же на странице AloneCoder-a. alonecoder.nedopc.com/zx/

    • @alexmo6538
      @alexmo6538 3 ปีที่แล้ว +2

      @@8BitTeaParty Спасибо, буду пробовать так сделать.

    • @alexs8579
      @alexs8579 6 หลายเดือนก่อน

      @@8BitTeaParty ребятушки 2 года конечно прошло, но что такое 2 года против 30 лет , пролистал все комменты , вынесите в заголовок или в отельное видео пошагово как включается эмуль, грузится дискета, какие клавиши. так будет удобнее )))
      а то я образ дискета скачал, она на автозапуске мне гонит листинг файлов и потом выходит. а за 30 лет порядком подзабыл как с дискетами на спектруме работать ))

    • @alexs8579
      @alexs8579 6 หลายเดือนก่อน

      а да и еще скачал сначала эмулятор fuse а в нём не все rom были, искал недостающие ))) образ дискеты с ALASM требовал ромов от скорпиона 256 почему-то

  • @user-rl8bu2hc8t
    @user-rl8bu2hc8t 4 ปีที่แล้ว

    А если я хочу "в продакшен" утилиту, то я могу как-то скомпилированную программу сохранить? Чтобы запускать с дискеты или по аудио каналу там...

    • @IExSet
      @IExSet 4 ปีที่แล้ว +2

      Конечно можете, иначе зачем нужен ассемблер. Но потребуется загрузчик. Надо сохранить CODE файлы из областей памяти, а затем BASIC загрузчик при запуске должен их загрузить типа LOAD"MYEXE"CODE MEMADDRESS.
      SAVEOBJ*.H - сохраняет любое количество кусков кода из любых страниц в разные файлы с заданными именами.
      m2hr*.H - пакует непрерывный кусок хрустом2 и склеивает программу с бейсик-загрузчиком.
      mrip*.H - то же, но пакует мрипом (сильнее).

    • @8BitTeaParty
      @8BitTeaParty  4 ปีที่แล้ว +1

      Вариантов решения много образы кассет, дискет памяти, завтра утром будет опубликовано видео, если еще не успели посмотреть на трансляции, и там немного затронем эту тему, вариант с памятью. :)

    • @alonecoder600
      @alonecoder600 3 ปีที่แล้ว +1

      в комплекте есть исходник SAVEOBJ (может сохранять много блоков, но без загрузчика) и исходники m2hr и mrip (могут сохранять один блок с загрузчиком, упакованный).

  • @alexandrpekhimenko1728
    @alexandrpekhimenko1728 3 ปีที่แล้ว +1

    Давно хотел протокол I2C на реальном Спектруме запилить. Может поможете?

    • @Sionelius
      @Sionelius 3 ปีที่แล้ว

      в спектруме таймера нет, это извращение

    • @SergeDzus
      @SergeDzus 3 ปีที่แล้ว

      Полюключите ардуино к портам

    • @Sionelius
      @Sionelius 3 ปีที่แล้ว

      @@SergeDzus зачем тогда реализация на Спектруме? :) это уже реализация на atmega328, а код как туда грузить будешь? через ВВ55 или ИР23? atmega не успеет шину в Z переводить, или последовательно загружать как на магнитофон?
      тогда надо делать обвес, ИР23 на данные и мелкороссыпь на запись/чтение

    • @8BitTeaParty
      @8BitTeaParty  3 ปีที่แล้ว +1

      Хм, насчет I2C уверенности нет, разве что кто-то реализует отдельно подобный функционал. Но тут как верно заметили, воспользоваться чем-то современным по железу будет сильно проще. Мы будем работать с некотороми портами(уже настраивали прерывания), но в целом для Спектрума возможно поработаем с простой переферией.

    • @alexandrpekhimenko1728
      @alexandrpekhimenko1728 3 ปีที่แล้ว

      @@8BitTeaParty Хотелось бы увидеть код для I2C. По железу это реализовать просто, хоть через порт#31 на чтение и порт #FE на запись и резистор. Хотелось бы подключить некоторые I2C микросхемы через Спектрум.

  • @kr4snod4r
    @kr4snod4r 3 ปีที่แล้ว +2

    я обычно пишу код а потом иду по факторингу.кода время экономится ребята я вижу что з80 лупите по уму

  • @tovjukov
    @tovjukov 3 ปีที่แล้ว

    А, почему не MASM?

    • @tovjukov
      @tovjukov 3 ปีที่แล้ว +1

      @BitsCode Уже почитал, про Аласм. Прикольный проект. Я остановился на TASM и MASM, и дебагеге STS (вроде так он назывался), последующие уже не застал.

    • @MustangDSG
      @MustangDSG 3 ปีที่แล้ว

      @BitsCode worldofspectrum.org/software?id=0021423 - MASM был для Спектрума, но это другой MASM.

  • @alexlozhkin1907
    @alexlozhkin1907 8 หลายเดือนก่อน

    Почему не С ?

    • @8BitTeaParty
      @8BitTeaParty  8 หลายเดือนก่อน +3

      Си для x86 есть тут - th-cam.com/play/PL0mHYOOrrdC0qxi6hK--R5AW9GmRKcfsA.html , а для Спектрума Си - язык со слишком высоким уровнем абстракции от железа

    • @BitsCode
      @BitsCode 8 หลายเดือนก่อน +5

      Про высокий уровень для Спектрума уже отметили, но дополним, что именно на ассемблере писать код - самое интересное и кусочек ностальгии. ;) Частично Бейсик есть в "Дневниках разработки" посмотрите в листах, Бейсик был значимым языком в те времена! ;)

    • @ArtZ0777
      @ArtZ0777 2 หลายเดือนก่อน

      1) Памяти мало. В 48kb нужно вместить и комплилятор C, и исходники программы и получаемую программу, и данные. Это сложно, если программа не совсем мелкая.
      Хорошие функциональные программы и особенно игры на ZX-Spectrum обычно занимали бОльшую часть оперативной памяти.
      Хотя я подозреваю, что вывернувшись наизнанку, можно было и на C как-то писать, компилируя кусками и выгружая комплилятор, собирать и тестировать на откомпилированном коде, и потом обратно загружать компилятор, но, наверное, проще было привыкнуть к ассемблеру.
      2) Ассемблер дает больше свободы, чем Си. В случае с ZX-Spectrum, учитывая его медлительность и необходимость экономить каждый байт (не килобайт, а байт), на ассемблере можно придумывать разные "хаки", "жонглируя" регистрами, а никакой компилятор так не может.

    • @alexlozhkin1907
      @alexlozhkin1907 2 หลายเดือนก่อน

      @@ArtZ0777 я имел в виду кросс-компилятор Си.. На самом спекки ясно дело так не получится.

    • @ArtZ0777
      @ArtZ0777 2 หลายเดือนก่อน

      @@alexlozhkin1907 а-а, простите, я неправильно понял.

  • @user-zd7sm1ug3y
    @user-zd7sm1ug3y ปีที่แล้ว +1

    Страшно Вас слушать, господа программисты, мой любимый asm-xl-desidn там ошибок нет и все четко

    • @BitsCode
      @BitsCode 10 หลายเดือนก่อน

      Не использовали ASM-XL - поэтому сложно что-то сказать, но если удобно пользоваться именно им - то выбор за каждым. ALASM - пока что за исключением пары моментов, когда команда была написана с синтаксической ошибкой у меня, то ассемблер сработал, а по факту появились другие машинные коды, заметил только отладчиком. В остальном АЛАЗМ работает и претензий нет. :)

  • @lommmaster
    @lommmaster 3 ปีที่แล้ว +2

    Полвидео вписывал комментарии... Нахрена? Ты думаешь, смотрят те, кто не понимает?

    • @8BitTeaParty
      @8BitTeaParty  3 ปีที่แล้ว +4

      Мы стараемся быть понятными широкой аудитории и для тех кто впервые, возможно, нашел видео/канал. Для тех кто более опытен, всегда можно перемотать видео или ускорить. Также порекомендуем отличный канал Дмитрия, "Alone Coder" - там уровень для "тех кто понимает". :) th-cam.com/video/sNhMh_TW7BY/w-d-xo.html

    • @yar0607
      @yar0607 3 ปีที่แล้ว +3

      Мне 17, я этих компов уже не застал. О программировании начал узнавать с Паскаля и Джавы. Так что очень даже спасибо им за такие подробности.

    • @486OverDrive
      @486OverDrive 3 ปีที่แล้ว +4

      Я давно писал под Z80, уже всё забыл, комментарии очнь помогли. Как по мне - в ролике всё по теме, ничего лишнего.

    • @IExSet
      @IExSet ปีที่แล้ว

      @@yar0607 В принципе и сейчас можно ударить по X64 ассемблеру, хотя лучше и теплее начать с ретро 🙂

    • @alexs8579
      @alexs8579 6 หลายเดือนก่อน

      @@8BitTeaParty и правильно. комменты вещь нужная

  • @jemmini2
    @jemmini2 8 หลายเดือนก่อน

    зачем это в 2023 году ?..

    • @8BitTeaParty
      @8BitTeaParty  8 หลายเดือนก่อน +8

      Затем же, зачем будет и в 2024-м: для веселья, для отдыха, для любопытства... Фундаментальные основы информатики не поменялись с тех пор.

    • @jemmini2
      @jemmini2 8 หลายเดือนก่อน +1

      @@8BitTeaParty так полезнее было бы учить для арм или х86. зачем тратить время на некрофилию?

    • @Norrisoid
      @Norrisoid 8 หลายเดือนก่อน +4

      @@jemmini2 а для чего люди играют, коллекционируют монеты, клеят масштабные модели, пишут комментарии под видео, которые им не интересны? Зачем тратить время?

    • @BitsCode
      @BitsCode 8 หลายเดือนก่อน +1

      Ну, кроме того что мы сами отдыхали и получали удовольствие от ностальгии... ;) В целом, для изучения низкоуровневого программирования и понимания логики минимального набора команд, с помощью которого строится любая вычислимая(рекурсивная) функция можно использовать и подобный ассемблер. Практика и общее понимание поможет в написании и обычного кода на любом языке программирования. Единственное, что Спектрум не очень может быть удобен в плане архитектуры и редактирования кода. Для тех кто впервые знакомится, можем порекомендовать ДОС и процессор 8086 - там более удобный редактор ДосНавигатор и система команд немного полегче, чем для Z80. :)

    • @jemmini2
      @jemmini2 8 หลายเดือนก่อน +2

      @@BitsCode одинаковая система команд. но для 86 это можно будет применять практически, здесь и сейчас, как есть. а для z80 знания останутся лишь как чисто теоретические...

  • @jenix102
    @jenix102 ปีที่แล้ว +1

    Что тут можно сказать - дисковые версии это оооочень узкая прослойка людей, те про неё говорить, что это массовый комп ? Это враньё, тем более пентагон 128. Это идёт речь об 10 тысячах людей, от силы.
    Настрящий же спектрум, который легендарный и массовый (от 1 до 1,5 млн штук в россии только) это и близко не про это видео.
    Вобщем видео про неизвестно что, запудривание мозгов молодым дуракам. Чистое араньё короче.

    • @IExSet
      @IExSet ปีที่แล้ว +3

      Ты чего такой злой, спектрумист 🙂Требования в этом видео, спектрум 128, не обязательно Пентагон. TR-DOS был сравнительно массовым на просторах СССР, энтузиастов осталось мало, какие уж там миллионы, нет никакого смысла рассматривать что то иное. Вообще рекомендую приобрести ZX Evolution с NEO GS и сетевухой и радоваться жизни !!!