Emulating ROM with mere Arduino Nano for a Z80 CPU.

Поділитися
Вставка

КОМЕНТАРІ • 649

  • @user-kl4xm2yb7p
    @user-kl4xm2yb7p 2 роки тому +164

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

    • @glukmaker
      @glukmaker 2 роки тому +16

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

    • @Dejsving
      @Dejsving 2 роки тому +6

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

    • @gmp14
      @gmp14 9 місяців тому

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

  • @PheadZero
    @PheadZero 2 роки тому +189

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

    • @MultiJulia1980
      @MultiJulia1980 2 роки тому +5

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

    • @catbechemot
      @catbechemot 2 роки тому +3

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

    • @MultiJulia1980
      @MultiJulia1980 2 роки тому +8

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

    • @felixurgant3487
      @felixurgant3487 2 роки тому +1

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

    • @user-rx4tn7xu9r
      @user-rx4tn7xu9r 2 роки тому

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

  • @iserg21
    @iserg21 2 роки тому +45

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

    • @rndofpipowe
      @rndofpipowe 2 роки тому +4

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

    • @YuliyCesar
      @YuliyCesar Рік тому

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

    • @Ewan33s
      @Ewan33s Рік тому +2

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

  • @evgeniyrybin6162
    @evgeniyrybin6162 2 роки тому +60

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

    • @alekseykozhanov250
      @alekseykozhanov250 Рік тому +5

      Кто ты воин!?

    • @sergueisoloviev1937
      @sergueisoloviev1937 5 місяців тому +2

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

  • @wowikus88
    @wowikus88 2 роки тому +94

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

    • @user-bk9dm5lf1h
      @user-bk9dm5lf1h 2 роки тому

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

    • @user-wx1ns5hf3h
      @user-wx1ns5hf3h 2 роки тому +3

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

    • @user-bk9dm5lf1h
      @user-bk9dm5lf1h 2 роки тому

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

    • @Sionelius
      @Sionelius 8 місяців тому +1

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

  • @aswonder5569
    @aswonder5569 2 роки тому +23

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

    • @yuriivoroshylov6646
      @yuriivoroshylov6646 2 роки тому

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

    • @DLRex
      @DLRex 2 роки тому

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

  • @andrewsed_uplisten2019
    @andrewsed_uplisten2019 2 роки тому +62

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

  • @ileyka
    @ileyka 2 роки тому +37

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

    • @user-md3nz9hy8z
      @user-md3nz9hy8z 2 роки тому

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

  • @user-gz4pi8ez5t
    @user-gz4pi8ez5t 2 роки тому +21

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

    • @cafedead
      @cafedead 2 роки тому +2

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

    • @user-qh3sk9pi3f
      @user-qh3sk9pi3f 2 роки тому +1

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

    • @user-yc6ez9lf9t
      @user-yc6ez9lf9t 2 роки тому +1

      @@user-qh3sk9pi3f sub больше тактов занимает

    • @HardWrMan
      @HardWrMan 2 роки тому +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

  • @Southenwind
    @Southenwind 2 роки тому +74

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

    • @dllsearch
      @dllsearch 2 роки тому

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

    • @saszab
      @saszab 2 роки тому +3

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

    • @AviazayacRussia
      @AviazayacRussia 2 роки тому

      Посмотри ua-cam.com/video/8rWCYo1UcOQ/v-deo.html

  • @DrLithium
    @DrLithium 2 роки тому +12

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

  • @denisgusev6389
    @denisgusev6389 2 роки тому +10

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

    • @proger8433
      @proger8433 2 роки тому +7

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

    • @myp60s
      @myp60s Рік тому +1

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

  • @Xiorcid
    @Xiorcid 2 роки тому +40

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

    • @88MyXa
      @88MyXa 2 роки тому +2

      Аналогично

    • @edgull_tlt
      @edgull_tlt 2 роки тому +1

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

    • @antielectric117
      @antielectric117 2 роки тому

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

  • @andreylegal
    @andreylegal 2 роки тому +5

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

  • @user-tg6yo7io2y
    @user-tg6yo7io2y 2 роки тому +15

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

    • @blackraven3068
      @blackraven3068 2 роки тому +4

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

    • @semibiotic
      @semibiotic 2 роки тому +7

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

    • @cafedead
      @cafedead 2 роки тому

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

    • @semibiotic
      @semibiotic 2 роки тому +2

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

    • @cafedead
      @cafedead 2 роки тому +3

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

  • @andreykudriashov7441
    @andreykudriashov7441 2 роки тому +6

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

  • @Simple_Technology_
    @Simple_Technology_ 2 роки тому +15

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

  • @7656denis
    @7656denis 2 роки тому +15

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

  • @Thesturmgever
    @Thesturmgever 2 роки тому +25

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

  • @koteotake
    @koteotake 2 роки тому +13

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

  • @andrewsed_uplisten2019
    @andrewsed_uplisten2019 2 роки тому +3

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

  • @gebanb
    @gebanb 2 роки тому +14

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

    • @Integral2128
      @Integral2128 2 роки тому

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

  • @jonnikteam8077
    @jonnikteam8077 2 роки тому +6

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

  • @user-xg1fu1su2w
    @user-xg1fu1su2w 2 роки тому +17

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

  • @AlexRootx
    @AlexRootx 2 роки тому +8

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

  • @user-fr5cc9xj3h
    @user-fr5cc9xj3h 2 роки тому +3

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

    • @MajorTomWorkshop
      @MajorTomWorkshop  2 роки тому +1

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

    • @user-fr5cc9xj3h
      @user-fr5cc9xj3h 2 роки тому +1

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

    • @myp60s
      @myp60s Рік тому +1

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

  • @zxpirate7zxp766
    @zxpirate7zxp766 2 роки тому +8

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

  • @DISALuxOr
    @DISALuxOr 2 роки тому +10

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

  • @villainmadless1503
    @villainmadless1503 2 роки тому +8

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

  • @user-cy4hp9qk2f
    @user-cy4hp9qk2f 2 роки тому +8

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

    • @HardWrMan
      @HardWrMan 2 роки тому +3

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

  • @cafedead
    @cafedead 2 роки тому +2

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

    • @MajorTomWorkshop
      @MajorTomWorkshop  2 роки тому +2

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

    • @cafedead
      @cafedead 2 роки тому +1

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

    • @tangerinedanger314
      @tangerinedanger314 2 роки тому

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

  • @user-yl2uf6gg2e
    @user-yl2uf6gg2e 2 роки тому +6

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

  • @onetwo4315
    @onetwo4315 2 роки тому +19

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

  • @user-tf5pk8lh2f
    @user-tf5pk8lh2f 2 роки тому +8

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

  • @RadionicsChannel
    @RadionicsChannel 2 роки тому +10

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

  • @alexey.matrosov
    @alexey.matrosov 2 роки тому +10

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

  • @InDaFit
    @InDaFit 2 роки тому +4

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

  • @TheFirefox19
    @TheFirefox19 2 роки тому +1

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

  • @KJIaBogaB
    @KJIaBogaB 2 роки тому +5

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

    • @MajorTomWorkshop
      @MajorTomWorkshop  2 роки тому +1

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

  • @user-im9wu9vs7i
    @user-im9wu9vs7i 2 роки тому +5

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

  • @albertziatdinov1373
    @albertziatdinov1373 2 роки тому +5

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

  • @ancient-raccoon
    @ancient-raccoon 2 роки тому +3

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

  • @cucuev51
    @cucuev51 2 роки тому +2

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

  • @15385331
    @15385331 Рік тому +2

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

  • @TheTalants
    @TheTalants 2 роки тому +4

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

  • @NNNNickN
    @NNNNickN 2 роки тому +2

    Что-то на ретро электронщиков потянуло, тут эмулятор ПЗУ делают из Ардуинки, на другом канале программатор для таких ПЗУ с УФ стиранием делают из того же материала. К чему бы это? А так лайк однозначно!

  • @dmitriisemenovykh9389
    @dmitriisemenovykh9389 2 роки тому +3

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

  • @jdueioksltoirtius9685
    @jdueioksltoirtius9685 2 роки тому +8

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

  • @user-uj9rw9ty1e
    @user-uj9rw9ty1e 6 днів тому

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

  • @user-shemuser
    @user-shemuser 10 місяців тому

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

  • @sidorovich21101986
    @sidorovich21101986 2 роки тому +6

    С такими темпами для эмуляции редкого VGA-монитора понадобится мощная видеокарта.

    • @user-lj9sl8jm6d
      @user-lj9sl8jm6d 2 роки тому +1

      СGA 288*358 ?

    • @semibiotic
      @semibiotic 2 роки тому

      В Z80-MCB2 cделали текстовый монохромный VGA-терминал на PIC-контроллере.

    • @user-pf5ov8sn5l
      @user-pf5ov8sn5l 2 роки тому

      Не знаю как VGA, но вот чтоб спектрум подключить по HDMI к современному монитору, выпускают переходник внутри которого raspberry pi zero :)

    • @semibiotic
      @semibiotic 2 роки тому

      @@user-pf5ov8sn5l Если бы только RPi ... там еще и FPGA стоит ...
      Но там и железка остроумная, она делает дубликат видеобуферов, перехватывая все обращения ZXS в память.

  • @PavelAlexeev-super
    @PavelAlexeev-super 2 роки тому

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

  • @antonromanov5405
    @antonromanov5405 2 роки тому +1

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

  • @veritasvestas
    @veritasvestas Рік тому +1

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

  • @engenegr_4880
    @engenegr_4880 2 роки тому +3

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

  • @catalyst1755
    @catalyst1755 8 місяців тому +1

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

  • @DIY-hv2hv
    @DIY-hv2hv 2 роки тому +1

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

  • @user-ho4oc5xv8p
    @user-ho4oc5xv8p 2 роки тому +1

    Я в 80-х аж 5 штук купил в запас,для своего 286-го,да еще и материнка......обалдеть,до сих пор на поролоне лежат в коробочке....увидел ЭТО и вспомнил.....смех.

  • @bamsic
    @bamsic 2 роки тому +6

    Ну что, давайте делать Спектрум на Z80 и Ардуино, в качестве устройств окружения :)

    • @Siorinex
      @Siorinex 2 роки тому

      Есть проект - там спеку довели до размеров пачки жвачки из 4х чипов: 2 атмеги и две тиньки.
      Одна мега - центральный процессор, вторая - вроде видяха и память. Одна тинька юзалась как звуковуха и порт к карте памяти, вторая - интерфейс к клаве, вроде...

    • @semibiotic
      @semibiotic 2 роки тому

      @@Siorinex сдается мне что там еще и должна быть отдельная ОЗУ. На атмегах ее крайне мало встроено (2-8К)

    • @Siorinex
      @Siorinex 2 роки тому

      @@semibiotic сча глянул: память на трех чипах.
      512 кило памяти одной микросхемой, защелка для адресации и мультиплексор для переключения "страниц" памяти: так-то z80 только 64к адресовал, а все эти Синклер128 и т.д. юзали переключение страниц.

    • @semibiotic
      @semibiotic 2 роки тому

      @@Siorinex А можно ссылку на проект ?

    • @Siorinex
      @Siorinex 2 роки тому

      @@semibiotic ищется по spectrum avr

  • @SDD39
    @SDD39 2 роки тому +3

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

    • @MajorTomWorkshop
      @MajorTomWorkshop  2 роки тому +2

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

  • @TrasherFCR
    @TrasherFCR 2 роки тому +2

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

    • @thejustmoose
      @thejustmoose Рік тому

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

  • @user-hd7hq4lf4y
    @user-hd7hq4lf4y 2 роки тому +2

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

    • @MajorTomWorkshop
      @MajorTomWorkshop  2 роки тому

      Да, и фактически это аналог:
      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 не работает ((

  • @vii-ckoka
    @vii-ckoka 2 роки тому +4

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

  • @vremennyygost1699
    @vremennyygost1699 2 роки тому +7

    В ТОПчик 🔥🔥🔥

  • @user-ck4uu4no6k
    @user-ck4uu4no6k 2 роки тому +6

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

  • @Stepan.K
    @Stepan.K 2 роки тому

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

  • @user-ly7ve4vl1d
    @user-ly7ve4vl1d 2 роки тому +1

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

  • @negodiaysamsonoff9616
    @negodiaysamsonoff9616 2 роки тому +6

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

    • @rpocc
      @rpocc 2 роки тому +3

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

    • @rpocc
      @rpocc 2 роки тому

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

  • @Gonzozol
    @Gonzozol 2 роки тому

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

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

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

  • @user-kk2gq6fr3y
    @user-kk2gq6fr3y 2 роки тому +1

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

    • @MajorTomWorkshop
      @MajorTomWorkshop  2 роки тому +1

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

    • @user-kk2gq6fr3y
      @user-kk2gq6fr3y 2 роки тому

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

  • @user-pl2ue6ds2r
    @user-pl2ue6ds2r 2 роки тому +5

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

  • @Pubvoice
    @Pubvoice 2 роки тому +1

    Я бы хотел выпуск, где в Спектрум устанавливалась платка с ардуино вместо ПЗУ и компьютер работал с ней, загружая привычную операционку Спектрума с бейсиком). У меня есть Спектрум и я подозреваю, что там не рабочая память или подтёрлась программа в них (стоит 2 микросхемы памяти), а возможности заменить их у меня нет или же перепрограмировать, а данный способ с ардуинкой как раз смог бы помочь быстро проверить в них ли проблема или нет).

    • @MajorTomWorkshop
      @MajorTomWorkshop  2 роки тому +1

      Я думаю, это как раз сложный путь. )) Если ПЗУ ультрафиолетовые, вряд ли они сами могут стереться. Думаю, у вас там что-то другое не работает.

    • @Pubvoice
      @Pubvoice 2 роки тому

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

  • @user-hr9ty5pc1o
    @user-hr9ty5pc1o 2 роки тому +1

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

  • @plazmx102
    @plazmx102 2 роки тому +4

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

  • @vladimirsamokish958
    @vladimirsamokish958 2 роки тому +3

    Жги, брат!

  • @user-hd7pi8gx4e
    @user-hd7pi8gx4e 2 роки тому +1

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

  • @electrotechnik2863
    @electrotechnik2863 2 роки тому +6

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

  • @user-fe1ge1nr1d
    @user-fe1ge1nr1d 2 роки тому

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

  • @denruslife9845
    @denruslife9845 2 роки тому +3

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

  • @aleks_0021
    @aleks_0021 2 роки тому

    Шикарно! Спасибо за информацию!

  • @user-zk9rn1op5v
    @user-zk9rn1op5v 2 роки тому

    Да, вы очень хорошо объясняете. Спасибо ввм большое!

  • @zritel23
    @zritel23 Рік тому +1

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

  • @repair_technology
    @repair_technology 2 роки тому

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

  • @sabirtursunov4630
    @sabirtursunov4630 2 роки тому +1

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

  • @KJIaBogaB
    @KJIaBogaB 2 роки тому +1

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

    • @MajorTomWorkshop
      @MajorTomWorkshop  2 роки тому +1

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

  • @boristiutrin7984
    @boristiutrin7984 2 роки тому

    Спасибо большое, вспомнил zx-spectrum 48K. Это было аж 25 лет назад.

  • @isorport32
    @isorport32 Рік тому

    Навеяло на воспоминание, когда-то в далекой дальней галактике мой руководитель по микропроцессорной технике состряпал эмулятор РФ из РУ на 2Кб для отладки 48/51 контроллеров. Смысл был в том что в статическое озу заливалась прога через контроллер и с помощью мультиплексеров ША и ШД переключалось на разъем эмулирующий РФ2. Разобраться и объяснить принцип работы - была моя курсовая.

  • @jyusup123
    @jyusup123 2 роки тому +3

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

  • @raqqet
    @raqqet 2 роки тому

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

  • @user-vq5nu1vz6d
    @user-vq5nu1vz6d 2 роки тому

    Очень круто! Спасибо за столь качественный контент.

  • @mik_kurgan
    @mik_kurgan 2 роки тому +1

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

  • @alexey-art-studio
    @alexey-art-studio 2 роки тому +1

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

  • @yuritopoop
    @yuritopoop 2 роки тому

    За 30:35 однозначно плюс, улыбнуло. Вечно с этим сталкивался, пока дорабатывал код программы в разных языках программирования, ибо не всегда удавалось реализовать на аппаратно-программном уровне.

  • @edwardmax.3249
    @edwardmax.3249 2 роки тому

    Как всегда на высоте, большой риспект автору, с удовольствием смотрю! Хотел спросить можно ли с помощью ардуино генерировать все частоты для домофонных аппаратов на открывание??? Спасибо!

  • @user-xy4sv9cl6v
    @user-xy4sv9cl6v 4 місяці тому +1

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

  • @niphles
    @niphles 2 роки тому +3

    Браво!!!

  • @zxpirate7zxp766
    @zxpirate7zxp766 2 роки тому

    По поводу тернарных операторов, необходимо бы пояснить, что это не всегда равноценная замена if-else. Там есть свои особенности, касаемые приведения типов.

  • @user-kt7rl3zi6l
    @user-kt7rl3zi6l 2 роки тому

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

  • @user-xd1su3sk3i
    @user-xd1su3sk3i 2 роки тому +1

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