Emulating ROM with mere Arduino Nano for a Z80 CPU.

แชร์
ฝัง
  • เผยแพร่เมื่อ 30 ต.ค. 2024

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

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

    Офигенное видео. Вспомнить всё.
    Первый комп, собранный с отцом - Специалист из Моделист-Конструктора, на ВМ80. И магнитофон-бобинник в качестве внешней памяти. И чёрно-белый старый телевизор как монитор.
    Второй комп - Спектрум-Пентагон, всё с тем же бобинником. Сначала 64К, потом 128, потом плюс дисковод вместо бобинника, и всё тот же чёрно-белый телевизор (а Спекки-то уже цветной). Но иногда разрешали подключиться к домашнему цветному. И вот подключаюсь я, что-то надо было подпаять, и я не выключая Спектрума лезу к нему паяльником. Искра с паяльника в плату, и траур - вся память полетела, куча логики туда же, проц тоже. Выжило совсем немного деталей.
    Третий комп - Орион-128, кажется в Радиолюбителе его публиковали. Сначала тоже с бобинником :), потом дисковод прикрутили. Потом появился принтер с какой-то ЕС-ки, и его тоже к Ориону прикрутили. Как сейчас помню, билеты по химии на нём печатал.
    ASM ВМ80-го знал наизусть. Иногда правил программу прямо в машинных кодах (особенно на Специалисте это было легко, там у монитора (не дисплея, а его типа БИОС-а) были сразу команды на прямой доступ к памяти).
    Клавиатуры для Специалиста и Спектрума делали герконовые (продавались кнопки с магнитами, их выстраивали на текстолите, снизу геркон; весело было отлаживать это - чтобы кнопки не залипали, маленькой отвёрткой под геркон и чуть его от платы отодвинуть; эххх). Для Ориона какую-то тяжеленную клавиатуру в железном корпусе нашли (наверное тоже откуда-то с ЕС-ки, не помню уже), и мудрили потом с согласованием её с платой компьютера.
    Микросхемы ПЗУ РФ2 и РФ5, с окошечком для стирания, и УФ лампа, фиг знает откуда у нас взявшаяся (лампа была из уличного фонаря, без стеклянной колбы, с каким-то дросселем для запуска). На стирание ставили микросхемы в туалет, и 40 минут в него заходить было нельзя.
    Платы рисовали на текстолите сначала нитролаком, потом тушь какая-то появилась, кажется "Вика" называлась. Травили хлорным железом. А после сборки компа с осциллографом искали, где нет сигнала, а должен бы быть (когда дорожка протравливалась под нарисованным), или наоборот.
    А сколько ВМ8-х с Z80-ми спалили, и не сосчитать. ВМ80 достать было легко, а Z80 был дорогой и дефицитный.
    Как на 30 лет назад вернулся. Ностальгией накрыло.
    Спасибо!!!

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

      Кто ты воин!?

    • @sergueisoloviev1937
      @sergueisoloviev1937 10 หลายเดือนก่อน +3

      А я паял , проводами турбо РК-шку как я ее называл. Схема была переделана под 64к ру5 -тых. А ещё на нее удалось портировать cpm и прикрутить 2 дисковода. На ней даже шел редактор WordStar)))) потом у меня ее выпросил приятель и пилил на ней прошивки под АОНы 😂 Ностальжи!!

  • @АлександрКолесник-ъ4б
    @АлександрКолесник-ъ4б 3 ปีที่แล้ว +177

    У нас разработчиков есть фраза "Если с первого раза все работает, значит где-то есть ошибка..."

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

      Не знаю как у разработчиков, но у программистов такая пословица:
      "Если программа не работает, значит в ней есть ошибка. Если программа работает, то ошибок как минимум две."

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

      @@glukmaker "Работает? - Не трогай, даже если уверен, что есть ошибка"
      ну и с первого раза, как правило, запускается только "Hello, World"

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

      Если запускается но через раз то есть как минимум одна ошибка(максимума нет)

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

    Я не программист но все понятно, хорошо когда у человека есть талант объяснять быстро и понятно.

    • @ПавелОсокин-ш3г
      @ПавелОсокин-ш3г 3 ปีที่แล้ว

      Как ноль превратился в 255?

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

      @@ПавелОсокин-ш3г т.к регистр 1 байтовый, то рабочий диапазон значений у него от 0 до 255 (2^8=256). Когда ты от 0 отнимаешь 1, то ты как бы условно переполняешь память, выставляя оставшиеся ячейки в единицы, что будет является 255.
      Тут трудно объяснить, если работал когда-то на си, то понимаешь как работает переполнение и почему это происходит, а объяснить это сложновато из-за того, что ты принимаешь это за постулат(ака аксиому). Дело в том, как работает само вычитание на бинарном уровне.

    • @ПавелОсокин-ш3г
      @ПавелОсокин-ш3г 3 ปีที่แล้ว

      @@niyazleushkin Я только образно понимаю, как работает к примеру старый эксплойд с переполнением буфера, но когда дело доходит до внутренностей (механики процесса, стеков и прочего) - тут слишком сложно становится. Почему ноль становится 255 понял, спасибо.

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

      @@niyazleushkin NEG A делаешь и 0 в 255 превращается и наоборот :)

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

    Мужик, ты крут! Давай больше про архитектуру эвм! Больше практики!

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

      100% поддерживаю

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

      Что такое архитектура эвм ,обьясни?

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

      @@catbechemot Архитектура - это наука и искусство о построении целого из частей. Говорю как архитектор.

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

      Согласен. Очень круто. Не знаю зачем это мне, но я уже смотрю на али Z80

    • @ФулстекРазработчик
      @ФулстекРазработчик 3 ปีที่แล้ว

      +++ Автор, спасибо за качественные видео!)

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

    Редкий по красоте и точности изложения материал! Можно приводить как эталон! Каждый пунт расписан оптимальным образом по шкале "много воды" - "ясность изложения".

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

    Отличнейшая, просто замечательный серия. Без воды и в тоже время без умолчаний. Аппаратная часть и программная в одном месте. Просто чудесно.
    Афтар давай исчО!!!

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

      удафф.ком вмер, олбанский устарел.

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

      @@dllsearch Олбанскей появился задолго до всяких удаффкомов, и спокойно пережил его смерть.

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

      Посмотри th-cam.com/video/8rWCYo1UcOQ/w-d-xo.html

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

    Есть в этом какая-то магия, напрямую с процессором общаться и видеть как он отвечает)

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

      Согласен. Хотя, любой кто начинал програмить в 80е помнит как это было, когда напрямую пишешь коды команд в память и смотришь, что будет :)

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

      помню пионером плавную бегущую строку на синклере на память вбивал , всё было просто и понятно. А сейчас без знания библиотек ничего не запрограммируешь.

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

      @@YuliyCesar кто вам мешает код писать без либ?) Просто придется их функционал самостоятельно реализовывать

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

    капец-ты молодец , всё четко и понятно, респект и уважуха тебе..........

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

    Я в IT пришел с Apple II, в котором стояла плата с Z80 и дискетка, с которой можно было загрузить ОС CP/M и компилятор FORTRAN-80. На нем я писал программу решения системы дифференциальных уравнений. Запустил - и пошел гулять. Через пару часов, если повезет, был результат.

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

      Ооо, лови пятюню. Матричная экспонента?

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

      И в каком это Apple II стоял z80? Обычно в них стояли процы 6502 и его более поздние реализации.

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

    Очень интересная задумка с эмуляцией старой еепром при помощи ардуинки:)

    • @ВикторГиль-ф2ф
      @ВикторГиль-ф2ф 3 ปีที่แล้ว

      Но есть одно "Но". Микросхема ПЗУ может работать быстрее ардуино-симуляции. Если использовать Ардуино, то работу процессора возможно придется замедлить, по сравнению с обычным компьютером на Z80.

  • @СергейМоскалёв-с3ь
    @СергейМоскалёв-с3ь 3 ปีที่แล้ว +15

    Молодец - качественно объясняешь! Кстати, программу можно ещё на 2 байта сократить: LD A XOR A; LD B,0 -> LD B,A.

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

      Загрузку в регистр В можно убрать, в первом цикле будет случайное значение, что вообще не критично.

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

      Там даже до 9 байт сократить можно, т.к. нам не нужны вторые OUT и DJNZ:
      XOR A
      LD B, A
      LOOP: OUT (FF), A
      DJNZ $
      CPL
      JR LOOP
      А учитывая, что при первые две команды не нужны (изначальное состояние регистров - 0), то 7 байт.
      Даже до 6, если использовать RST 0.

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

      @@semibiotic Изначальное состояние регистров вовсе не ноль, но варик ваш хороший. RST 0 можно, но не с вашим вариком, и только до тех пор, пока не имитируем запись, потом не подойдет, т.к. код всрется стеком.

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

      @@cafedead Да, моя ошибка, судя по даташиту, по RESET сбрасываются только PC, I, R, IM и IFF*. Но в данном примере все их все равно можно опустить. A опускает сам автор, а B отразится только на первом DJNZ.
      Да, RST 0 применим только в случае отсутствия RAM, тем более что состояние SP не определено, а также, если первые инструкции не инициализируют A.
      Еще, вместо JR можно позволить адресу переполниться (достигнуть 16, или 8, если сократить используемые линии A до трех), лишние байты можно добить NOP-ами. Но применимо это тоже лишь в отсутствии инициализации A.

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

      @@semibiotic охреневаю от того, сколько народу так разбирается)) Вот что Спектрум животворящий с людьми делает...))

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

    Классно что информация подана в подробностях, понятно даже новичку и далёкому от темы. Продолжайте в том же духе.

  • @НиколайПетров-в7ж
    @НиколайПетров-в7ж 3 ปีที่แล้ว +21

    Сразу на автомате руки потянулись исправить на xor a, ld b, a. Сколько лет прошло, а команды помню. Оптимизация мля!

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

      Ага.... Руки-то помнят... -)

    • @КириллМихайлов-у4ж
      @КириллМихайлов-у4ж 3 ปีที่แล้ว +1

      Вместо xor a можно так же использовать sub a :-)

    • @ДжонСноу-я8э
      @ДжонСноу-я8э 3 ปีที่แล้ว +1

      @@КириллМихайлов-у4ж sub больше тактов занимает

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

      xor - норм, ld не нужны по условию задачи, как и вторая задержка.
      0000: D3 FF OUT (FF),A
      0002: 10 FE DJNZ $
      0004: 2F CPL
      0005: 18 F9 JR 0
      0007:
      Вот это выйдет на режим уже вторым кругом (когда [B] станет 00), но по условию нам пофиг как оно будет мыргать в первый раз, главное чтобы параметры общего цикла сохранились в дальнейшем. А ваше ld b,a это совсем не из той оперы.
      PS Но я больше по i8080

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

    Спасибо. Это наиболее интересные технические лекции на TH-cam, которые я смотрел на этой неделе.

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

    Великолепное видео при как всегда замечательной подаче! Очень нравится, особенно из-за ностальгических чувств) Сам начинал с клона ZX-Spectrum погружаться в Asm

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

    Афигеть, голос интонации ракурсы знание темы СУПЕР

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

    Z-80 легендарный процессор !! в молодости сам несколько Спектрумов собирал и определителей номера ! классный канал все доходчиво !!!надеюсь у молодежи возродится любовь к радиоэлектроники и они создадут лучшие компьютеры !)

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

    Я балдею дорогая редакция... Вспомнить Z-80, Синклер... Эх, даже за душу схватило. А как разъясняет... Есть ещё люди на земле которые могут привлечь внимание к интересному. Желаю твоему каналу развития, успехов и много подписчиков. Ну рекламы чуть поменьше всё таки.

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

    Я не досмотрел ролик но уже хочу продолжение))))

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

      Аналогично

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

      Поддерживаю!

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

      Мододец! И дальше не смотри, вдруг разочуруешься.

  • @РЭА-э2х
    @РЭА-э2х 3 ปีที่แล้ว +6

    Супер. Молодец. Ждем развития данного компьютера!

  • @victorbogomolov2893
    @victorbogomolov2893 4 หลายเดือนก่อน

    Блестящая лекция! Как и другие ролики.Стиль, темп, наглядность,дикция, обьем информации! Спасибо.

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

    молодец Том!!!! вернул меня в "Лихие 90е", спасибо!!!

  • @7656denis
    @7656denis 3 ปีที่แล้ว +16

    Супер! обожаю тему спекки !!! Лайк ! Давайте больше по спеку !!!!

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

    Уууу! Ностальгия ) Давай спектрум.. немного осталось ) памяти докинуть и ардуину пожирнее а лучше STM32(шустрее и DMA есть) для эмуляции ULA ) Вот это будет круто! Однозначно лойс и пиписька ) (как говорит Доктор Дью). ОЧень жду следующее видео по этой теме. Ты и Ben Eater мои любимые авторы )

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

      эмулятор на современном МК вообще не вариант, на много больше кайфа собрать все в оригинале на старых микрухах, а так смысл весь пропадает

  • @БимБом-ъ8ъ
    @БимБом-ъ8ъ 3 ปีที่แล้ว +3

    Занятно! Вместо ПЗУ, берете статическое озу(их много в старых hdd, на мамках - кэш, в сидиромах, матричных принтерах и т.д.). Паяете на переходную панель, питание от батарейки(три Д055 или одна CR2032 с той-же мамки) и внешнее, развязываете шотки+блокировочный конденсатор. CS подвязываете резистором(или к ноге питания памяти или к общему-зависит от памяти). Все остальные ноги совпадают. Я пользовался UNIPROG, можно tl866, заливаете нужный дамп, вытаскиваете из программатора и вставляете в подопытного. Никаких вам задержек при работе, чёткие фронты, родной интерфейс. MSC48/MSC51/Z80 и любые другие 8 и 16 битные процессоры. (в сидиромах обычно 16 битная статическая озушка)

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

      Сейчас есть flash микросхемы, которые всё это умеют делать, причем соблюдая тайминги статического ОЗУ. Т.е., просто в нее пишешь как в ОЗУ, а она помнит после отключения.

    • @БимБом-ъ8ъ
      @БимБом-ъ8ъ 3 ปีที่แล้ว +1

      @@MajorTomWorkshop Абсолютно согласен с вами, только их намного трудней найти в старом барахле.

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

      👍👍 В году примерно 86-87 пытался делать из статики некий аналог 573рф1 для ИК80

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

    Если бы мне это так доступно разъяснили лет 30 назад, я бы стал программистом.

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

      Никогда не поздно начать

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

      Не-а, это не совсем так работает.
      40 лет назад практически не существовало тех кто мог всё это мне разъяснить.
      Однако я во всём этом самостоятельно разобрался, научился программировать и собирать такого типа микрокомпьютеры.
      Источник информации был очень скуден - только немногочисленные переводные книги, да и те найти было не просто.

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

    блин так четко все разложил
    с удовольствием смотрю
    настальгия накатила :) спасибо

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

    когда-то давно , еще в конце 80-х я собирал ZX Spectrum и вапще не интересовался об устройстве процессора и что как работает , а теперь стало все понятно, эх раньше бы мне эти знания , яб избежал тогда танцев с бубном при сборке спектрума... )))

  • @РусланТимофеев-п3ц
    @РусланТимофеев-п3ц 3 ปีที่แล้ว +17

    Сколько же сил потрачено чтобы сделать это видео, спасибо!

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

    При грамотном подходе и светлой головой... без спешки всё должно работать с первого раза.

  • @АлексейМокрушин-ф7е
    @АлексейМокрушин-ф7е 3 ปีที่แล้ว +8

    Не шарю, но очень интересно🤔💭. Хорошо, что есть такой канал!!!!

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

    Дружище! Мегаролик! Низкий тебе поклон и за это и за предыдущее видео!
    Требуем продолжения! Хотим, как ты понимаешь - простейший терминал!
    Подскажи по двум пока вопросам:
    1. Если всё же воткнуть ПЗУ вместо ардуино - в его память нужно будет просто внести код, который получился после ассемблирования, который ты расположил в строке определения байта данных (byte data[] ={0x3E, ..............................}; ???
    2. Это К155ЛН1 даёт генератор на ногу 6 (CLK)? Я в Thinkercad собрал по схеме - на осциллографе по нулям. Мультиметр показывает медленное поднятие напряжения с 0 mV до (видимо 5v). Вообще такие генераторы работают в эмуляторах?

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

      Да, просто в ПЗУ записать эти байты в том же порядке. Насчёт эмулятора не знаю, не пробовал, возможно номиналы указаны неверно? Но я собирал конкретно по этой схеме.

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

    Супер!
    Давно не получал удовлетворение от полученных знаний.

  • @АлександрЧеркесов-п3ю
    @АлександрЧеркесов-п3ю 3 ปีที่แล้ว +5

    Спасибо, очень интересно!!! ))) В старые времена вместо ld a,0 было модно использовать xor a)) Помню не столько по причинам экономии в байт, сколько показать что шаришь) Было бы круто если бы продолжил тему, под старость лет с железом поразбираться очень интересно.

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

    Коммент поддержки, видео только начал смотреть, но и так понятно, что на этом канале только годные видео.

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

    Это лучший канал про электронику, который я когда либо видел!
    Выражаю огромную благодарность за ваш труд!

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

    Просто офигеть, класс, супер, топ. Как тебе не лень было? Рад что наткнулся на этот канал. Огромная работа. Много непонятно, но интересно капец. Всегда было интересно как устроена эта суета, но как-то не попадалось настолько лаконичное объяснение, и голос и картинка всё круто!!!!!!!!!!!!!!!!!!

  • @alexey.matrosov
    @alexey.matrosov 3 ปีที่แล้ว +10

    Офигительный контент!) Спасибо за столь подробное объяснение :)

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

    Спасибо за видео 👍

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

    Со времен первого знакомства с ZX было интересно как он работает. На самосборщиков смотрел как на богов! А тут настолько всё "разжовано", что всё стало понятно.
    Спасибо!

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

    35 минут как на одном дыхании! Очень понятное объяснение!

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

    Шикарное видео, спасибо!

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

    Благодарю от всей души!
    Спектрум - это моё детство!
    Ролик расширил мой мир в разы.
    Этот бы видос лет 25 назад, я бы в лепёху расшибся и поступил в ЛЭТИ. Мотивация зашкаливает.

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

    13:13 примерно, на диаграмме команда LD B, записана, как LB B. Поправьте ;)
    Видео "мегареспектозное", от меня подписка и лайк 👍👍👍

  • @ancient-raccoon
    @ancient-raccoon 3 ปีที่แล้ว +3

    спасибо за видео, очень познавательно и интересно!!! посмотрел с удовольствием, ждем постройки полноценного компа на Z80 ))

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

    Крутяк! Собирал как-то спектрума капец, то еще веселье, но зато собрался и работает! Дядь где ты был раньше? 👍

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

    Великолепное видео!
    Как правило, не оставляю комментариев. Но в данном случае не удержался!
    Таких профессионалов как Вы, ещё поискать!
    Было бы здорово, если бы вы собрали полноценный 8-битный компьютер с подключением клавиатуры и монитора.

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

    Спасибо, очень интересно даже мне, человеку писавшему на asm для Z80 еще в конце 80-х )))

  • @Андрей969
    @Андрей969 3 ปีที่แล้ว +1

    Спасибо за толковые видео. Один из лучших техноканалов на русскоговорящем ютубе. Хотелось бы побольше про программирование ардуино. Есть пара отличных видео здесь, но так сыть был взят резкий старт. Хотелось бы более подробного разбора. Ввод-вывод, написание подпрограмм, команды, написание и отладка простых скетчей, скажем, электронный сторож, многотональный звонок, часы и т.д. Также, возможно, работа с выходными транзисторными ключами и их расчет(для начинающих будет интересно). Сам стараюсь изучать ардуино, но возникают некоторые вопросы. Еще раз спасибо за качественный контент.

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

      Хорошо, подумаю. )

    • @Андрей969
      @Андрей969 3 ปีที่แล้ว

      @@MajorTomWorkshop Сорри, нашел видео по транзисторам на канале. Для меня как электрика оказались полезны видео про ремонт светодиодных светильников и прожекторов. Продолжаю просматривать видео на канале. Спасибо)))

  • @DIY-hv2hv
    @DIY-hv2hv 3 ปีที่แล้ว +1

    Вспомнил молодость и свой первый zx-spectrum, спасибо! Отличная подача!

  • @ЕвгенийБондарев-к7ф
    @ЕвгенийБондарев-к7ф 5 หลายเดือนก่อน

    Благодарю тебя друг, за столь интересный рассказ, ввиде двух частей данного видео! С каждым разом все становится яснее, относительно работы ПК! 🎉🎉🎉

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

    Молодец, подробно и без воды👍

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

    Спасибо, это очень интересно и позновательно! Продолжение очень хочется.

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

    Думаю , если затактировать Z80 от Ардуино , а не от отдельного генератора , то вполне возможно поднять тактовую частоту и избежать ошибок чтения команд.

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

      Такая мысль была, но это подрывает идею эмулятора как таковую. Эмулятор должен быть самостоятельным устройством.

  • @PavelAlexeev-super
    @PavelAlexeev-super 3 ปีที่แล้ว

    Ух ты, вот это класс! Помню, как мы изучали этот ассемблер самостоятельно. Никак не мог дедушке своему объяснить, зачем я это делаю)))

  • @Stepan.K
    @Stepan.K 3 ปีที่แล้ว

    Чудо, что даже я смог в общих чертах понять как все работает. Спасибо

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

    Интересная тема и грамотный комплексный подход подачи информации. По устройству микроконтроллеров доступная информация попадается довольно редко. А писать прошивки без понимания происходящего - не совсем правильно. Жду продолжения!

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

    Прекрасное понятное видео. Почему так долго ничего не выпускали? Видос огонь. С друзьями поделюсь

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

    Получилось не хилое, навороченное реле поворотов)). Отличное видео, мне понравилось.

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

    8:28 Тут, думаю, стоит тогда сказать, что при вычитании из B единицы, B станет равно 255, ибо, например, в некоторых языках высокого уровня компилятор выдал бы ошибку выхода значения переменной за предел возможных значений.

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

      Интересно, а в каких компиляторах вообще реализована такая проверка? На Си такое точно не проверяется.

  • @vii-ckoka
    @vii-ckoka 3 ปีที่แล้ว +4

    Не зря на тебя подписан , с каждым новым роликом удивляешь всё больше и больше !
    ЛАЙК 100%

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

    Хороший видос. Мог еще первую команду оптимизировать: вместо LD A,0 использовать XOR A, сэкономить еще один байт. А LD B,A - еще байт... Ну тут уже написали, даже еще лучше варианты предложили... -) Прекрасно, что столько людей интересуется всем этим делом, и про XOR A написали... Все красавчики.

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

      А мне самому интересно было, сколько людей вспомнит про XOR A. )) Оказалось, синклеристов достаточно много. А вот про SUB A не вспомнил никто! ))

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

      @@MajorTomWorkshop где еще такое возможно?!) Закликбейтить при помощи LD A, 0 😂👍

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

      @@MajorTomWorkshop тоже хотел написать про XOR A
      ))

  • @АлександрИванов-г6с3д
    @АлександрИванов-г6с3д 3 ปีที่แล้ว +1

    Замечательно. Просто и понятно. Если найти параллельную SRAM память, то ардуинку можно применить как загрузчик этой оперативки с uarta или с той же последовательной флешь памяти. В таком случае придётся подождать только загрузки а исполнение кода z80 будет идти на родных 3.5Мгц или 7 в турбо режиме и нет ограничения по объёму.
    Ещё раз Лайкос и Удачи.

  • @Вячеслав-е4ь6е
    @Вячеслав-е4ь6е 5 หลายเดือนก่อน

    Огромное спасибо. Очень грамотно изложена информация, крайне приятно слушать 😊

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

    «Смог заинтересовать» это не то слово. Просто восторг

  • @АнтонБ-х9у
    @АнтонБ-х9у 3 ปีที่แล้ว +1

    Титаническая работа и потрясающий результат!

  • @ДмитрийнеДмитрий-в7ь
    @ДмитрийнеДмитрий-в7ь 3 ปีที่แล้ว +1

    интересная и полезная задумка. я думаю если тактировать z80 от пердуинки то можно изготовить карманный тестер процессоров z80, а если дополнительно ещё подцепить eeprom 25 серии и заменить atmega328 на lgt8f328p(32Mgz) то это вообще шикардос

  • @НиколаИванов-ш6ю
    @НиколаИванов-ш6ю 3 ปีที่แล้ว +6

    Вот это эталонный пример отличного контента - жаль, что в тренде ютуба таких роликов нет

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

    Спасибо за труды!

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

    В ТОПчик 🔥🔥🔥

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

    Когда-то давно мы мигали светодиодом при помощи 2х транзисторов. В 21м веке для этого необходимо не менее 2х процессоров ;)

  • @КлайвСинклер-е6ю
    @КлайвСинклер-е6ю 3 ปีที่แล้ว +2

    8:20 Добавлю про команду DJNZ - это Decrement and Jump if Not Zero. То бишь уменьшить значение регистра B и если оно не равно нулю (не установлен флаг Z) перейти по указанному смещению. При этом смещение указывается как один байт.

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

      Да, и фактически это аналог:
      DEC B
      JR NZ,M1
      Интересно, что в журнале "Радио" в примерах программирования НА ВМ80 учили делать так:
      M1: DEC B
      MOV A,B
      OR A
      JNZ M1
      Однажды игрался с Агатом и увидел конструкцию:
      DEC xx
      JNZ M1
      Попробовал на ВМ80 и увидел, что там она тоже работает. )) То есть достаточно:
      DEC B
      JNZ M1
      А вот с DEC BC не работает ((

  • @alexey-art-studio
    @alexey-art-studio 3 ปีที่แล้ว +1

    По идее можно было параллельную флэш взять. Крутой разбор) я бы посмотрел с эмуляцией на монитор) жду новых видео!)

  • @user-cy4hp9qk2f
    @user-cy4hp9qk2f 3 ปีที่แล้ว +8

    Еще как минимум на два байта байта можно выиграть: LD A,0 -> XOR A и LD B,0 -> LD B,A

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

      Учитывая, что он всегда перекидывает аккумулятор, то можно вообще убрать предустановку аккумулятора. Результирующая программа будет такой:
      0000: D3 FF OUT (FF),A
      0002: 10 FE DJNZ $
      0004: 2F CPL
      0005: 18 F9 JR 0
      0007:

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

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

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

      Это осень сложная тема на самом деле, так как в основном все процессоры, особенно 8-битки имеют примерно один и тот же набор операций, таких как чтение/запись битов и слов в порты, оперативку, FLASH (lpm/spm), косвенная запись/чтение, пересылки слов и двойных слов, арифметика, умножение в двойное слово, безусловные и условные переходы, логические и сдвиговые операции, работа с непосредственными данными.
      Плюс, в МК обычно есть еще специализированные опкоды для отладки. А вот тонкости кроются в том, какую разрядность имеют те или иные группы опкодов, из чего следует, например, ограниченное число регистров, с которыми производятся те или иные операции, а также механизм адресации. И эти вещи расписывать на самом деле долго, проще самостоятельно изучить даташиты и список опкодов на несколько распространенных процессоров, и врубиться в общую логику. Могу сказать, что соеди 8-биток лично я ковырялся с ассемблером 6502, Z80, AVR, PIC, Intel и наиболее адекватными мне показались AVR и интел. Понятно, что 32-битки сейчас сильно лучше по многим причинам, и среди них по удобству и ценам лидирует STM32, поэтому тут особо ковыряться не обязательно. Для мелочевки в DIP корпусах хороши AVRки, для всего, что требует кучи портов и нормальной арифметики типа Float, деления и MAC операций - STM. Отдельное место - OTP контроллеры для самых дешёвых в производстве проектов с железобетонным, безглючным и простым кодом. Они очень дёшевы.

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

      Кстати, что касается оптимизации на Arduino, то я на память синтаксис не вспомню, но суть в том, что там можно садресовать структуру или объединение структур как указатель на конкретную область памяти, размапленную на порты, и в этой структуре прямо по отдельным группам битов проименовать все нужные группы портов нужных оазрядностей, и работать с ними в итоге как с переменными. Я этот метод использую во всех проектах под атмегу, как в ардуино, так и атмел студио. Посмотреть этот стнтаксис можно, например, в заголовочных файлах, в которых описываются сами порты, поскольку именно так этим именам PORTA и т. д. нужные адреса и присваиваются.
      Это не кросплатформенное решение, но зато существенно упрощает работу и программисту и компилятору, так как позволяет избавиться от кучи битовых сдвигов и логических операций.

  • @ВалерийИскаков-о8ч
    @ВалерийИскаков-о8ч 9 หลายเดือนก่อน

    Как же кайфово смотреть такие вещи) Спасибо, было очень познавательно.

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

    уже 100.000 подписчиков сегодня ! Поздравляю! Спасибо за качественную информацию! Мы с Вами!

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

    Класс! Прямо ностальжи!!!

  • @pba60kulikov42
    @pba60kulikov42 11 หลายเดือนก่อน

    информация подана в подробностях, Благодарю за труд!

  • @МихаилШатохин-о2ф
    @МихаилШатохин-о2ф ปีที่แล้ว

    0:39 Игра Exolon )) Самая классная на кассете ))) И Саботёр ещё, где бомбу устанавливаешь и на вертолёте улетаешь👍

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

    Жги, брат!

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

    Отличное познавательное видео!

  • @АндрейК-р8б
    @АндрейК-р8б 3 ปีที่แล้ว +5

    Очень хорошо 👍

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

    Можно было лучше, но лучше просто некуда... 🤔 Ты, мужик, бомбически КРУТ!!!

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

    Вот это круто, очень интересное и полезное видео. На русском ютубе таких видосов по пальцам посчитать можно. Продолжайте эту тему и дальше, а с меня лайк и подписка😉

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

    Жаль забросил тему))) отлично объясняешь! спасибо! два видео на одном дыхании посмотрел!

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

    Прикольно. Не так давно занимался примерно тем-же самым, и примерно так-же. Микропроцессор Intel 8085, эмулятор ПЗУ - быстрый китайский микроконтроллер STC12C5A60S2. Такой микроконтроллер использован потому, что этот процессор не может корректно работать на низких тактовых частотах, и плюс еще надо демультиплексировать шину адрес/данные в реальном времени.

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

      И микроконтроллер успевает в реальном времени поставлять данные и с демультиплексированием? Это круто ))

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

      ​@@MajorTomWorkshop Да, именно. Тактовая частота МК - 24 МГц (это не максимальная, просто на демо-боарде такой), машинный цикл равен 1 такту. Частота МП 8085 - 1 МГц, это его минимальная частота, в среднем получается 4-5 инструкций МК. Сигнал ALE заведен на внешнее прерывание МК. Программа простейшая, по смыслу почти как ваша, но отладить ее оказалось сложно, т.к процессор чуствителен к таймингам.

  • @ЕвгенийТитов-в8ш
    @ЕвгенийТитов-в8ш 3 ปีที่แล้ว +2

    Прекрасная работа!

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

    Очень интересно но надо пересматривать

  • @СергейЗверев-в4т
    @СергейЗверев-в4т 3 ปีที่แล้ว

    До чего сейчас удобно стало с компьютером. А в моё время был только микропроцессорный комплект-чемодан УМК-8. А сейчас выбирай: STM, MSP lounchpad, Arduino.

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

    в 2016г собирал мечту детства Радио-86РК, в сети есть достаточно магазинов торгующих старыми микросхемами которые в свое время сдавали на металлолом, в итоге удалось собрать все на оригинале совковых микрух на макетке МГТФ проводом))) а программатор пришлось на мк делать самодельный для высоковольтной прошивки ПЗУ, старые позолоченные ПЗУ с окошком на много солидней выглядят в подобных сборках

  • @ВладелецУстройства-ю3в
    @ВладелецУстройства-ю3в 9 หลายเดือนก่อน +1

    Можно и еще сократить:
    LD A,1
    CPL
    OUT (FF),A
    LD B,8
    DJNZ $
    JR 2
    P/S: 13:12 - у Вас там опечатка: вместо LD B,0 написано LB B,0

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

    Очень просим раскрыть подробнее работу с графическим выводом на экран.
    Моргнуть светодиодом - моргнули. А как реализовать развертку, какие импульсы нужно давать. Как моргнуть пикселем на VGA мониторе :) Обычно в спектрумах реализованы RGB выводы. Какую микросхему видеоадаптера попроще лучше выбрать для этих целей?
    Может соберёте продолжение - нарисуете на экране какой-нибудь крестик или звездочку.
    Подскажите, готовите что-то в продолжение к этой теме или пока некогда?
    Очень ждем!

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

      Про Ардуино ещё обязательно будет, но немного попозже, пока лекции по схемотехнике запланированы.
      Насчёт моргнуть на VGA не знаю, а на обычный TV Out можно. Но просто всё от частоты зависит.
      А вообще, это уже достаточно не актуально в наши дни, развёрточные мониторы давно не выпускаются. Не проще LCD использовать? ))

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

    Спасибо. Вспомнил свою молодость, как писал программы для японского компьютера на процессоре Z80A под управлением операционной системы CP/M. Как говорил Билл Гейтс, машинный код этих программ вырезан ножом на моём сердце. Всё же 64 килобайта оперативной памяти - это совсем немного. Поместилось бы.

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

    Круто! Не знаю, как на счёт Z-80, который вот-вот станет уже не найти, а раз на ардуино тоже код выполняется, то, похоже, и на одних ардуинках можно комп делать. Хотя бы, на одной проц, на другой память, на третьей видюха, на четвёртой модуль взаимодействия со стандартной клавой, ну и так далее. Мне кажется, простейший комп, но на современных компонентах - это не менее круто, чем коллекционные легендарные микрухи. По крайней мере, повторяемость - это хорошо. Тем более, на ардуино можно взаимодействовать и с картами памяти, значит сменный софт уже вроде реален, а с двумя модулями - и типа нортона тоже, файлы перекладывать между флешками)) Хотя, практического смысла мало - учитывая низкую функциональность и производительность, а также необходимое количество приобретаемых плат, распберри всё равно будет круче. Не знаю, просто мысль интересная)) А вообще, было бы круто - писать прошивки для ардуинок на компе из ардуинок)))

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

    В детстве на Z80 конечно было не до ассемблера в чистом виде, больше привлекали игры и перелопачивание бэйсик программ. Но спустя годы все равно залипательно посмотреть на варианты работы с этим железом. Спасибо, было интересно :)

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

      на бейсике нормально было не написать. даже заточенный на игры бейсика. нормально можно было только на ассемблере.

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

      @@captainpronin953 кто бы спорил) но не у всех мозгов хватало осилить ассемблер) да и скорость программирования на бейсике привлекала гораздо больше, его вполне хватало для повторения не сложных игр, либо создания смешных демо сценок про своих одноклассников)

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

      @@Aleksey_777 та ну :) я на ассемблере фигачил файловый менеджер за день :)

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

    Первый мой компьютер ZXspectrum загружался с дискет. Пришлось научится ремонтировать магнитофон, когда он поломался.

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

    Вот так сидишь себе в полночь, скроллишь видосики на ютубе и ВНЕЗАПНО находишь бриллиант. Наконец - то сраные рекомендации порекомендовали что надо.

  • @PavelAlexeev-super
    @PavelAlexeev-super 3 ปีที่แล้ว

    В городе Чебоксары Чувашской Республики на заводе Элара тоже производили компьютер на z80, назвался Дельта-С

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

    Аплодирую стоя!!! Это просто невероятно. Пошел на балкон искать зет80