Hello World на ассемблере z80: сможет и ребенок. От простенькой программки до серьезных программуль

Поділитися
Вставка
  • Опубліковано 14 січ 2024
  • Hello world на ассемблере z80: сможет даже ребенок. От простенькой программки до серьезных приложений: тетрис 1996 года от автора
    Исходник тетриса и файл для эмулятора (sna) для ZX-Spectrum cовместимого компьютера: github.com/vadrov/tetris-zx-s...
    Друзья, помогите "раскачать" канал на ДЗЕНе: dzen.ru/vadrov
    Пара минут просмотра там аналогичного видео, подписка и комментарий в поддержку, помогут мне, как автору, уделять больше времени на выпуск новых видео, с новыми "игрушками" и бесплатным кодом для Вас.
  • Наука та технологія

КОМЕНТАРІ • 58

  • @VadRov
    @VadRov  6 місяців тому +5

    Исходник тетриса и файл для эмулятора (sna): github.com/vadrov/tetris-zx-spectrum-z80-asm
    Друзья, помогите "раскачать" канал на ДЗЕНе: dzen.ru/vadrov
    Пара минут просмотра там аналогичного видео, подписка и комментарий в поддержку, помогут мне, как автору, уделять больше времени на выпуск новых видео, с новыми "игрушками" и бесплатным кодом для Вас.

    • @vsosacordeev
      @vsosacordeev 6 місяців тому

      дзеном кто то пользуется вообще? тут времени на видео посматреть не нахожу, рубит мозг.

    • @VadRov
      @VadRov  6 місяців тому +3

      @@vsosacordeev , там основная масса людей пенсионного возраста. Судя по статистике, за 55 лет. Молодежь, кстати, тоже есть. Смотрит короткие ролики где попами трясут.

    • @vsosacordeev
      @vsosacordeev 6 місяців тому

      😁@@VadRov

  • @romanbor2929
    @romanbor2929 5 місяців тому +1

    Ох уж эти бессонные ночи и километры листинга на асме для ZX) А ведь горели так, что есть забывали)

  • @user-tc8fj8de9p
    @user-tc8fj8de9p 5 місяців тому +1

    ZX-Spectrum и ассемблер 😊
    Это моё. Давно было, последний раз в 1999 году.
    Спасибо вам

  • @hoptersertim8471
    @hoptersertim8471 6 місяців тому +3

    Вспомнил забытый любимый Zeus.
    Писал разное, в т.ч. динамичную игрушку с главным героем.
    К сожалению, не смог ничего сохранить. Может где-то валяются кассеты, но...
    Остались только воспоминания.

  • @kestvvv
    @kestvvv 6 місяців тому +8

    До сих пор пишу на асме .уже 25 лет как.
    Начинал с машинного кода и ручного обсчитывания относительных переходов.
    Так написал преобразователь из символов в векторы - для самодельного плоттера для рисования плат

    • @VadRov
      @VadRov  6 місяців тому +2

      Я с этого же начинал, пока кассету с Gens не раздобыл. Все тетрадки кодом были исписаны. Отловить ошибку было ооочень сложно.

    • @kestvvv
      @kestvvv 6 місяців тому +1

      @@VadRov я использовал дизассемблер мон2, вроде так он назывался.
      под конец уже перешел на тасм.

    • @VadRov
      @VadRov  6 місяців тому +3

      @@kestvvv, да, пакет с ассемблером и монитором отладчиком HiSoft Devpac. Про отлов ошибок я имел в виду, когда в машинный код вручную переводил были ошибки (то порядок байт перепутаешь, то пропустишь чего, а то когда код набиваешь через строку перепрыгнешь). А это было до того, как эти программки раздобыл. Потом проще стало. Правда, ненамного. Мешал магнитофон. Дисковода не было. Долго. А еще холодильник включался в неподходящее время при записи/загрузки программ и... пиши пропало 😂

    • @kestvvv
      @kestvvv 6 місяців тому +2

      @@VadRov Да...... холодильник делал проблемы. По этому побольше кондеров в бп, чтобы сбавить просадку при пуске холодильника.
      Контроллер дисковода вначале лепил самодельный....... это было не просто.....
      Ставил еще расширение памяти на SIMM на 1 мб.
      Еще поставил 3.5 дюйма, причем привод именно на 720.
      с 2004 пишу на авр.
      Разрабатывал свой контроллер мышки с кучей счетчиков - где то микрух 20 в итоге.
      Извращался как мог.

    • @user-ul5ds9uv8u
      @user-ul5ds9uv8u 6 місяців тому

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

  • @tovjukov
    @tovjukov 6 місяців тому +3

    Порадовал ;) был ZS Scorpion 256

    • @VadRov
      @VadRov  6 місяців тому

      Я о таком мечтал, но увы... Пришлось Синтез-2 паяльником доводить до 128 кБ + 7 MHz Turbo + covox и еще много чего (кроме дисковода - дорого было).

    • @romanbor2929
      @romanbor2929 5 місяців тому +1

      Тоже купил отец мне готовый 256, после 48, как в иномарку сел. Два дисковода надыбал, копировал дискеты 5.25", скорость после кассет, хоть девушкам показывай , принтер матричный подключили (тогда мы узнали про порты), курсовой напечатал))) Важный был, просто не подходи)) Но недолго, наставало время IBM)))

  • @user-bi4ve1id8y
    @user-bi4ve1id8y 6 місяців тому +1

    Спасибо!

  • @user-km1vy7me6u
    @user-km1vy7me6u 6 місяців тому +1

    спасибо большое

    • @VadRov
      @VadRov  6 місяців тому

      👍🙂

  • @elmarrasulzade2043
    @elmarrasulzade2043 6 місяців тому +1

    Лайкнул.
    Но такой ассемблер я не видел никогда. Какие непривычные комманды. Я когда то писал ide для tasm. А это какой то совсем не привычный. Не думал что после стольких лет почувствую себя слишком молодым)))

    • @kestvvv
      @kestvvv 6 місяців тому +1

      А еще ...... на ассемблере можно печатать не только столбиком, но и в строчку. то есть у вас в строке может быть сколько угодно команд.

    • @VadRov
      @VadRov  6 місяців тому +3

      Да, по большому счету мнемоники на разных ассемблерах не совпадают. Чем примечателен z80 лично для меня, так это тем, что спустя 27 лет помню все его инструкции на память. Если взять тот же arm, то при написании кода постоянно приходится подсматривать в шпаргалку. Слишком много префиксов и их вариаций, особенно, в simd. Но самый простой ассемблер из тех, что знаю, это A51 (для м/к 8051) .

    • @kestvvv
      @kestvvv 6 місяців тому

      @@VadRov 51 асм весьма обрезан. У авр риск платформы намного удобнее. Есть 32 регистра и прочие штуки.

  • @WWolf_13
    @WWolf_13 6 місяців тому +2

    Аж скулы свело :)

    • @DrLithium
      @DrLithium 6 місяців тому +4

      Не просто скулы, а ОЛДскулы! )

  • @OpenFrimeTVcom
    @OpenFrimeTVcom 6 місяців тому +1

    интересно. вот что значит обучаться с нуля. по мере того как появлялась электроника. сейчас это сложнее мне кажется)

    • @VadRov
      @VadRov  6 місяців тому

      По этому поводу можно долго спорить, но я не готов это делать 🙂

    • @EgorFrade
      @EgorFrade 6 місяців тому +1

      раньше попроще была электроника, сейчас если на esp32 посмотреть, то там и 2 ядра и кэши и уровни изоляции памяти и виртуальная адресация. Жесть одним словом, без SDK даже светодиодом моргнуть сложновато.

    • @VadRov
      @VadRov  6 місяців тому

      @@EgorFrade , моргнуть светодиодом несложно без sdk:
      GPIO.out_w1tc = 1ULL

    • @EgorFrade
      @EgorFrade 6 місяців тому

      @@VadRov а мне мануал по esp32 нравится, хотя может я его путаю с мануалом по Xtensa.
      Но на сколько я помню магия происходит в бутлоадере, который работает там как bios, благодаря ему у нас появляется мапинг хардвара на память и мы можем записывая данные в память влиять на GPIO. А бутлоадер, на сколько я помню, идет вместе с SDK и вкомпиливается в втой код. Хотя могу ошибаться

    • @VadRov
      @VadRov  6 місяців тому

      @@EgorFrade, я имел ввиду мануал "низкого уровня": уровень ядра, работа с периферией на уровне "железа" (регистры специальных функций и т.п.) на уровне, low layer, так сказать. Так вот, он описан плохо (я бы сказал, отвратительно) в сравнении с тем, о чем пишите Вы. Вы же, очевидно, подразумеваете самый высокий уровень, т.н., hal. А вот он, как раз, описан очень хорошо, даже отлично. Кстати, прикольно написаны библиотеки: можно программировать на выбор на трех уровнях: ll, ml или hal.
      Upd.: вот об этом reference manual пишу: www.espressif.com/sites/default/files/documentation/esp32_technical_reference_manual_en.pdf
      Но он потребуется 0.1% потенциальных пользователей, кто захочет получить максимум производительности.

  • @user-tb5fx6zq5u
    @user-tb5fx6zq5u 6 місяців тому

    Какой прогой можно взломать ключ видеоредактора?

    • @VadRov
      @VadRov  6 місяців тому +2

      Не надо ничего ломать. Сейчас много бесплатных программ и приложений для творчества.

    • @user-tb5fx6zq5u
      @user-tb5fx6zq5u 6 місяців тому

      @@VadRov Я в курсе. Но у них функционал урезанный. Даже не спорьте.

  • @fiji3514
    @fiji3514 5 місяців тому

    У меня 2 вопроса:
    1) почему это в моих рекомендациях
    2) как вы все не сошли с ума изучая все это? Это же жесть просто, какие-то детективы, мы что в терминаторе? Цифры какие-то из воздуха берете и выдумывайте….
    Прочитал на другом видео коммент, что этот язык программирования может все что душа пожелает, что даже 3d движок можно написать?

    • @VadRov
      @VadRov  5 місяців тому

      Не Боги горшки обжигают. Даже 4d движок можно написать 😉

  • @mastermir8347
    @mastermir8347 6 місяців тому

    это доже блиско не на асемблере.
    если целиком писать на асемблере код будет 5000 строк
    а подпрограмму из биос вызвать это не асемблер
    комент написан до начала просмотра ролика.

    • @VadRov
      @VadRov  6 місяців тому

      Открой любую книгу по программированию на ассемблере, и везде эта программа для любой архитектуры использует вызов подпрограмм биос. Но это не правило.. Там, где экран текстовый, можно обойтись без биоса. Здесь же, как минимум, требуется знакогенератор. Про 5000 строк ты загнул. Вместе со знакогенератором столько и близко не будет. Вот в тетрисе, например, собственные процедуры вывода текста, причём, в любых направлениях. Открой код на гитхабе и восхитись. Утони в своей жёлчи, человек 😂

    • @mastermir8347
      @mastermir8347 6 місяців тому

      @@VadRov асемблер знаю в совершенстве. я еще перфокарты застал. никакой желчи просто ржу над тем кто думает что он на асемблере что-то пишет.
      знакогенератор это таже внешняя процедура. использование внешних проедур не далеко ушло от языков высокого уровня. это не асемблер. на асемблере ты каждую точку символа вырисовывать будешь отдельной командой.

    • @VadRov
      @VadRov  6 місяців тому

      @@mastermir8347 , вот ты и спалился,, знаток. Здесь, на Спектруме, одной командой (например, LD (HL),127 ; в HL - адрес из области экрана) сразу 8 точек экранной области можно определить. Такое строение экрана. И знакогенератор тут не команды, а блок памяти, определяющий данные символов. По 8 байт на символ. Впрочем, кому я это пишу, если знаток программу на ассемблере, вызывающую подпрограммы ПЗУ, называет "не ассемблером".
      Upd. : и не знаешь ты никакой ассемблер в совершенстве,. Ты даже не знаешь, что слово "аССемблер" с двумя буквами "с" пишется. Не пиши тут больше, любитель перфокарт, троллей кормить не люблю.

  • @mastermir8347
    @mastermir8347 6 місяців тому

    как раз языком и балаболит вызывая готовые роцедуры
    да и тетрис так же писал

    • @VadRov
      @VadRov  6 місяців тому

      И к чему эти высеры? В тетрисе ни одна подпрограмма из ПЗУ не вызывается. Исходник на гитхабе. А чем ты прославился балабол из комментариев?

  • @n3tium
    @n3tium 6 місяців тому

    Зачем вам это?) Лучше ломать облачные сервисы 😂

    • @VadRov
      @VadRov  6 місяців тому +4

      Сегодня, определенно, кто-то хочет что-то сломать. Одни строят, а другие ломают 🤦‍♂

    • @n3tium
      @n3tium 6 місяців тому +1

      @@VadRov процесс взлома это прежде всего процесс понимания как это работает. Причем, в большей степени, чем понимает это создатель) то что ОНИ строят должно умереть

    • @VadRov
      @VadRov  6 місяців тому +4

      @@n3tium , я это понимаю, но вот в чем дело... как бы сказать... hello world из этого видео не имеет к вышесказанному никакого отношения. Неправомерный доступ к компьютерной информации карается по Закону ().

  • @user-bi4ve1id8y
    @user-bi4ve1id8y 6 місяців тому +1

    Спасибо!