Офигенное видео. Вспомнить всё. Первый комп, собранный с отцом - Специалист из Моделист-Конструктора, на ВМ80. И магнитофон-бобинник в качестве внешней памяти. И чёрно-белый старый телевизор как монитор. Второй комп - Спектрум-Пентагон, всё с тем же бобинником. Сначала 64К, потом 128, потом плюс дисковод вместо бобинника, и всё тот же чёрно-белый телевизор (а Спекки-то уже цветной). Но иногда разрешали подключиться к домашнему цветному. И вот подключаюсь я, что-то надо было подпаять, и я не выключая Спектрума лезу к нему паяльником. Искра с паяльника в плату, и траур - вся память полетела, куча логики туда же, проц тоже. Выжило совсем немного деталей. Третий комп - Орион-128, кажется в Радиолюбителе его публиковали. Сначала тоже с бобинником :), потом дисковод прикрутили. Потом появился принтер с какой-то ЕС-ки, и его тоже к Ориону прикрутили. Как сейчас помню, билеты по химии на нём печатал. ASM ВМ80-го знал наизусть. Иногда правил программу прямо в машинных кодах (особенно на Специалисте это было легко, там у монитора (не дисплея, а его типа БИОС-а) были сразу команды на прямой доступ к памяти). Клавиатуры для Специалиста и Спектрума делали герконовые (продавались кнопки с магнитами, их выстраивали на текстолите, снизу геркон; весело было отлаживать это - чтобы кнопки не залипали, маленькой отвёрткой под геркон и чуть его от платы отодвинуть; эххх). Для Ориона какую-то тяжеленную клавиатуру в железном корпусе нашли (наверное тоже откуда-то с ЕС-ки, не помню уже), и мудрили потом с согласованием её с платой компьютера. Микросхемы ПЗУ РФ2 и РФ5, с окошечком для стирания, и УФ лампа, фиг знает откуда у нас взявшаяся (лампа была из уличного фонаря, без стеклянной колбы, с каким-то дросселем для запуска). На стирание ставили микросхемы в туалет, и 40 минут в него заходить было нельзя. Платы рисовали на текстолите сначала нитролаком, потом тушь какая-то появилась, кажется "Вика" называлась. Травили хлорным железом. А после сборки компа с осциллографом искали, где нет сигнала, а должен бы быть (когда дорожка протравливалась под нарисованным), или наоборот. А сколько ВМ8-х с Z80-ми спалили, и не сосчитать. ВМ80 достать было легко, а Z80 был дорогой и дефицитный. Как на 30 лет назад вернулся. Ностальгией накрыло. Спасибо!!!
@alekseykozhanov250 Жыл бұрын
Кто ты воин!?
@sergueisoloviev1937 Жыл бұрын
А я паял , проводами турбо РК-шку как я ее называл. Схема была переделана под 64к ру5 -тых. А ещё на нее удалось портировать cpm и прикрутить 2 дисковода. На ней даже шел редактор WordStar)))) потом у меня ее выпросил приятель и пилил на ней прошивки под АОНы 😂 Ностальжи!!
@PheadZero3 жыл бұрын
Мужик, ты крут! Давай больше про архитектуру эвм! Больше практики!
@MultiJulia19803 жыл бұрын
100% поддерживаю
@catbechemot3 жыл бұрын
Что такое архитектура эвм ,обьясни?
@MultiJulia19803 жыл бұрын
@@catbechemot Архитектура - это наука и искусство о построении целого из частей. Говорю как архитектор.
@felixurgant34873 жыл бұрын
Согласен. Очень круто. Не знаю зачем это мне, но я уже смотрю на али Z80
@ФулстекРазработчик3 жыл бұрын
+++ Автор, спасибо за качественные видео!)
@wowikus883 жыл бұрын
Я не программист но все понятно, хорошо когда у человека есть талант объяснять быстро и понятно.
@ПавелОсокин-ш3г3 жыл бұрын
Как ноль превратился в 255?
@niyazleushkin3 жыл бұрын
@@ПавелОсокин-ш3г т.к регистр 1 байтовый, то рабочий диапазон значений у него от 0 до 255 (2^8=256). Когда ты от 0 отнимаешь 1, то ты как бы условно переполняешь память, выставляя оставшиеся ячейки в единицы, что будет является 255. Тут трудно объяснить, если работал когда-то на си, то понимаешь как работает переполнение и почему это происходит, а объяснить это сложновато из-за того, что ты принимаешь это за постулат(ака аксиому). Дело в том, как работает само вычитание на бинарном уровне.
@ПавелОсокин-ш3г3 жыл бұрын
@@niyazleushkin Я только образно понимаю, как работает к примеру старый эксплойд с переполнением буфера, но когда дело доходит до внутренностей (механики процесса, стеков и прочего) - тут слишком сложно становится. Почему ноль становится 255 понял, спасибо.
@Sionelius Жыл бұрын
@@niyazleushkin NEG A делаешь и 0 в 255 превращается и наоборот :)
@DrLithium3 жыл бұрын
Редкий по красоте и точности изложения материал! Можно приводить как эталон! Каждый пунт расписан оптимальным образом по шкале "много воды" - "ясность изложения".
@andrewsed_uplisten20193 жыл бұрын
капец-ты молодец , всё четко и понятно, респект и уважуха тебе..........
@Southenwind3 жыл бұрын
Отличнейшая, просто замечательный серия. Без воды и в тоже время без умолчаний. Аппаратная часть и программная в одном месте. Просто чудесно. Афтар давай исчО!!!
@dllsearch3 жыл бұрын
удафф.ком вмер, олбанский устарел.
@saszab3 жыл бұрын
@@dllsearch Олбанскей появился задолго до всяких удаффкомов, и спокойно пережил его смерть.
@AviazayacRussia3 жыл бұрын
Посмотри kzbin.info/www/bejne/bqO6dIylZrqWhbM
@АлександрКолесник-ъ4б3 жыл бұрын
У нас разработчиков есть фраза "Если с первого раза все работает, значит где-то есть ошибка..."
@glukmaker3 жыл бұрын
Не знаю как у разработчиков, но у программистов такая пословица: "Если программа не работает, значит в ней есть ошибка. Если программа работает, то ошибок как минимум две."
@Dejsving3 жыл бұрын
@@glukmaker "Работает? - Не трогай, даже если уверен, что есть ошибка" ну и с первого раза, как правило, запускается только "Hello, World"
@gmp14 Жыл бұрын
Если запускается но через раз то есть как минимум одна ошибка(максимума нет)
@iserg213 жыл бұрын
Есть в этом какая-то магия, напрямую с процессором общаться и видеть как он отвечает)
@rndofpipowe3 жыл бұрын
Согласен. Хотя, любой кто начинал програмить в 80е помнит как это было, когда напрямую пишешь коды команд в память и смотришь, что будет :)
@YuliyCesar2 жыл бұрын
помню пионером плавную бегущую строку на синклере на память вбивал , всё было просто и понятно. А сейчас без знания библиотек ничего не запрограммируешь.
@Ewan33s2 жыл бұрын
@@YuliyCesar кто вам мешает код писать без либ?) Просто придется их функционал самостоятельно реализовывать
@ileyka3 жыл бұрын
Очень интересная задумка с эмуляцией старой еепром при помощи ардуинки:)
@ВикторГиль-ф2ф3 жыл бұрын
Но есть одно "Но". Микросхема ПЗУ может работать быстрее ардуино-симуляции. Если использовать Ардуино, то работу процессора возможно придется замедлить, по сравнению с обычным компьютером на Z80.
@koteotake3 жыл бұрын
Спасибо. Это наиболее интересные технические лекции на KZbin, которые я смотрел на этой неделе.
@andreykudriashov74413 жыл бұрын
Z-80 легендарный процессор !! в молодости сам несколько Спектрумов собирал и определителей номера ! классный канал все доходчиво !!!надеюсь у молодежи возродится любовь к радиоэлектроники и они создадут лучшие компьютеры !)
@СергейМоскалёв-с3ь3 жыл бұрын
Молодец - качественно объясняешь! Кстати, программу можно ещё на 2 байта сократить: LD A XOR A; LD B,0 -> LD B,A.
@blackraven30683 жыл бұрын
Загрузку в регистр В можно убрать, в первом цикле будет случайное значение, что вообще не критично.
@semibiotic3 жыл бұрын
Там даже до 9 байт сократить можно, т.к. нам не нужны вторые OUT и DJNZ: XOR A LD B, A LOOP: OUT (FF), A DJNZ $ CPL JR LOOP А учитывая, что при первые две команды не нужны (изначальное состояние регистров - 0), то 7 байт. Даже до 6, если использовать RST 0.
@cafedead3 жыл бұрын
@@semibiotic Изначальное состояние регистров вовсе не ноль, но варик ваш хороший. RST 0 можно, но не с вашим вариком, и только до тех пор, пока не имитируем запись, потом не подойдет, т.к. код всрется стеком.
@semibiotic3 жыл бұрын
@@cafedead Да, моя ошибка, судя по даташиту, по RESET сбрасываются только PC, I, R, IM и IFF*. Но в данном примере все их все равно можно опустить. A опускает сам автор, а B отразится только на первом DJNZ. Да, RST 0 применим только в случае отсутствия RAM, тем более что состояние SP не определено, а также, если первые инструкции не инициализируют A. Еще, вместо JR можно позволить адресу переполниться (достигнуть 16, или 8, если сократить используемые линии A до трех), лишние байты можно добить NOP-ами. Но применимо это тоже лишь в отсутствии инициализации A.
@cafedead3 жыл бұрын
@@semibiotic охреневаю от того, сколько народу так разбирается)) Вот что Спектрум животворящий с людьми делает...))
@БимБом-ъ8ъ3 жыл бұрын
Занятно! Вместо ПЗУ, берете статическое озу(их много в старых hdd, на мамках - кэш, в сидиромах, матричных принтерах и т.д.). Паяете на переходную панель, питание от батарейки(три Д055 или одна CR2032 с той-же мамки) и внешнее, развязываете шотки+блокировочный конденсатор. CS подвязываете резистором(или к ноге питания памяти или к общему-зависит от памяти). Все остальные ноги совпадают. Я пользовался UNIPROG, можно tl866, заливаете нужный дамп, вытаскиваете из программатора и вставляете в подопытного. Никаких вам задержек при работе, чёткие фронты, родной интерфейс. MSC48/MSC51/Z80 и любые другие 8 и 16 битные процессоры. (в сидиромах обычно 16 битная статическая озушка)
@MajorTomWorkshop3 жыл бұрын
Сейчас есть flash микросхемы, которые всё это умеют делать, причем соблюдая тайминги статического ОЗУ. Т.е., просто в нее пишешь как в ОЗУ, а она помнит после отключения.
@БимБом-ъ8ъ3 жыл бұрын
@@MajorTomWorkshop Абсолютно согласен с вами, только их намного трудней найти в старом барахле.
@myp60s2 жыл бұрын
👍👍 В году примерно 86-87 пытался делать из статики некий аналог 573рф1 для ИК80
@aswonder55693 жыл бұрын
Я в IT пришел с Apple II, в котором стояла плата с Z80 и дискетка, с которой можно было загрузить ОС CP/M и компилятор FORTRAN-80. На нем я писал программу решения системы дифференциальных уравнений. Запустил - и пошел гулять. Через пару часов, если повезет, был результат.
@yuriivoroshylov66463 жыл бұрын
Ооо, лови пятюню. Матричная экспонента?
@DLRex2 жыл бұрын
И в каком это Apple II стоял z80? Обычно в них стояли процы 6502 и его более поздние реализации.
@Logicatube16 күн бұрын
Там 6502
@Simple_Technology_3 жыл бұрын
Классно что информация подана в подробностях, понятно даже новичку и далёкому от темы. Продолжайте в том же духе.
@andreylegal3 жыл бұрын
Афигеть, голос интонации ракурсы знание темы СУПЕР
@DISALuxOr3 жыл бұрын
блин так четко все разложил с удовольствием смотрю настальгия накатила :) спасибо
@villainmadless15033 жыл бұрын
Великолепное видео при как всегда замечательной подаче! Очень нравится, особенно из-за ностальгических чувств) Сам начинал с клона ZX-Spectrum погружаться в Asm
@НиколайПетров-в7ж3 жыл бұрын
Сразу на автомате руки потянулись исправить на xor a, ld b, a. Сколько лет прошло, а команды помню. Оптимизация мля!
@cafedead3 жыл бұрын
Ага.... Руки-то помнят... -)
@КириллМихайлов-у4ж3 жыл бұрын
Вместо xor a можно так же использовать sub a :-)
@ДжонСноу-я8э3 жыл бұрын
@@КириллМихайлов-у4ж sub больше тактов занимает
@HardWrMan3 жыл бұрын
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
@7656denis3 жыл бұрын
Супер! обожаю тему спекки !!! Лайк ! Давайте больше по спеку !!!!
@onetwo43153 жыл бұрын
Коммент поддержки, видео только начал смотреть, но и так понятно, что на этом канале только годные видео.
@andrewsed_uplisten20193 жыл бұрын
когда-то давно , еще в конце 80-х я собирал ZX Spectrum и вапще не интересовался об устройстве процессора и что как работает , а теперь стало все понятно, эх раньше бы мне эти знания , яб избежал тогда танцев с бубном при сборке спектрума... )))
@РЭА-э2х3 жыл бұрын
Супер. Молодец. Ждем развития данного компьютера!
@Thesturmgever3 жыл бұрын
Я балдею дорогая редакция... Вспомнить Z-80, Синклер... Эх, даже за душу схватило. А как разъясняет... Есть ещё люди на земле которые могут привлечь внимание к интересному. Желаю твоему каналу развития, успехов и много подписчиков. Ну рекламы чуть поменьше всё таки.
@AlexRootx3 жыл бұрын
молодец Том!!!! вернул меня в "Лихие 90е", спасибо!!!
@Xiorcid3 жыл бұрын
Я не досмотрел ролик но уже хочу продолжение))))
@88MyXa3 жыл бұрын
Аналогично
@edgull_tlt3 жыл бұрын
Поддерживаю!
@antielectric1173 жыл бұрын
Мододец! И дальше не смотри, вдруг разочуруешься.
@victorbogomolov28937 ай бұрын
Блестящая лекция! Как и другие ролики.Стиль, темп, наглядность,дикция, обьем информации! Спасибо.
@gebanb3 жыл бұрын
Уууу! Ностальгия ) Давай спектрум.. немного осталось ) памяти докинуть и ардуину пожирнее а лучше STM32(шустрее и DMA есть) для эмуляции ULA ) Вот это будет круто! Однозначно лойс и пиписька ) (как говорит Доктор Дью). ОЧень жду следующее видео по этой теме. Ты и Ben Eater мои любимые авторы )
@Integral21283 жыл бұрын
эмулятор на современном МК вообще не вариант, на много больше кайфа собрать все в оригинале на старых микрухах, а так смысл весь пропадает
@alexey.matrosov3 жыл бұрын
Офигительный контент!) Спасибо за столь подробное объяснение :)
@InDaFit3 жыл бұрын
Просто офигеть, класс, супер, топ. Как тебе не лень было? Рад что наткнулся на этот канал. Огромная работа. Много непонятно, но интересно капец. Всегда было интересно как устроена эта суета, но как-то не попадалось настолько лаконичное объяснение, и голос и картинка всё круто!!!!!!!!!!!!!!!!!!
@АлександрЧеркесов-п3ю3 жыл бұрын
Спасибо, очень интересно!!! ))) В старые времена вместо ld a,0 было модно использовать xor a)) Помню не столько по причинам экономии в байт, сколько показать что шаришь) Было бы круто если бы продолжил тему, под старость лет с железом поразбираться очень интересно.
@ВладелецУстройства-ю3в Жыл бұрын
Можно и еще сократить: LD A,1 CPL OUT (FF),A LD B,8 DJNZ $ JR 2 P/S: 13:12 - у Вас там опечатка: вместо LD B,0 написано LB B,0
@jdueioksltoirtius96853 жыл бұрын
Шикарное видео, спасибо!
@user-shemuser Жыл бұрын
Благодарю от всей души! Спектрум - это моё детство! Ролик расширил мой мир в разы. Этот бы видос лет 25 назад, я бы в лепёху расшибся и поступил в ЛЭТИ. Мотивация зашкаливает.
@КлайвСинклер-е6ю3 жыл бұрын
8:20 Добавлю про команду DJNZ - это Decrement and Jump if Not Zero. То бишь уменьшить значение регистра B и если оно не равно нулю (не установлен флаг Z) перейти по указанному смещению. При этом смещение указывается как один байт.
@MajorTomWorkshop3 жыл бұрын
Да, и фактически это аналог: 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 не работает ((
@DIY_Repair20243 жыл бұрын
13:13 примерно, на диаграмме команда LD B, записана, как LB B. Поправьте ;) Видео "мегареспектозное", от меня подписка и лайк 👍👍👍
@cucuev513 жыл бұрын
Супер! Давно не получал удовлетворение от полученных знаний.
@TrasherFCR3 жыл бұрын
8:28 Тут, думаю, стоит тогда сказать, что при вычитании из B единицы, B станет равно 255, ибо, например, в некоторых языках высокого уровня компилятор выдал бы ошибку выхода значения переменной за предел возможных значений.
@thejustmoose2 жыл бұрын
Интересно, а в каких компиляторах вообще реализована такая проверка? На Си такое точно не проверяется.
@RadionicsChannel3 жыл бұрын
Спасибо за видео 👍
@АлексейМокрушин-ф7е3 жыл бұрын
Не шарю, но очень интересно🤔💭. Хорошо, что есть такой канал!!!!
@jonnikteam80773 жыл бұрын
При грамотном подходе и светлой головой... без спешки всё должно работать с первого раза.
@РусланТимофеев-п3ц3 жыл бұрын
Сколько же сил потрачено чтобы сделать это видео, спасибо!
@denisgusev63893 жыл бұрын
Если бы мне это так доступно разъяснили лет 30 назад, я бы стал программистом.
@proger84333 жыл бұрын
Никогда не поздно начать
@myp60s2 жыл бұрын
Не-а, это не совсем так работает. 40 лет назад практически не существовало тех кто мог всё это мне разъяснить. Однако я во всём этом самостоятельно разобрался, научился программировать и собирать такого типа микрокомпьютеры. Источник информации был очень скуден - только немногочисленные переводные книги, да и те найти было не просто.
@catalyst1755 Жыл бұрын
Это лучший канал про электронику, который я когда либо видел! Выражаю огромную благодарность за ваш труд!
@ДмитрийнеДмитрий-в7ь3 жыл бұрын
интересная и полезная задумка. я думаю если тактировать z80 от пердуинки то можно изготовить карманный тестер процессоров z80, а если дополнительно ещё подцепить eeprom 25 серии и заменить atmega328 на lgt8f328p(32Mgz) то это вообще шикардос
@АлександрИванов-г6с3д3 жыл бұрын
Замечательно. Просто и понятно. Если найти параллельную SRAM память, то ардуинку можно применить как загрузчик этой оперативки с uarta или с той же последовательной флешь памяти. В таком случае придётся подождать только загрузки а исполнение кода z80 будет идти на родных 3.5Мгц или 7 в турбо режиме и нет ограничения по объёму. Ещё раз Лайкос и Удачи.
@153853312 жыл бұрын
Спасибо, очень интересно даже мне, человеку писавшему на asm для Z80 еще в конце 80-х )))
@ancient-raccoon3 жыл бұрын
спасибо за видео, очень познавательно и интересно!!! посмотрел с удовольствием, ждем постройки полноценного компа на Z80 ))
@vii-ckoka3 жыл бұрын
Не зря на тебя подписан , с каждым новым роликом удивляешь всё больше и больше ! ЛАЙК 100%
@antonromanov54053 жыл бұрын
35 минут как на одном дыхании! Очень понятное объяснение!
@KJIaBogaB3 жыл бұрын
Дружище! Мегаролик! Низкий тебе поклон и за это и за предыдущее видео! Требуем продолжения! Хотим, как ты понимаешь - простейший терминал! Подскажи по двум пока вопросам: 1. Если всё же воткнуть ПЗУ вместо ардуино - в его память нужно будет просто внести код, который получился после ассемблирования, который ты расположил в строке определения байта данных (byte data[] ={0x3E, ..............................}; ??? 2. Это К155ЛН1 даёт генератор на ногу 6 (CLK)? Я в Thinkercad собрал по схеме - на осциллографе по нулям. Мультиметр показывает медленное поднятие напряжения с 0 mV до (видимо 5v). Вообще такие генераторы работают в эмуляторах?
@MajorTomWorkshop3 жыл бұрын
Да, просто в ПЗУ записать эти байты в том же порядке. Насчёт эмулятора не знаю, не пробовал, возможно номиналы указаны неверно? Но я собирал конкретно по этой схеме.
@veritasvestas2 жыл бұрын
Великолепное видео! Как правило, не оставляю комментариев. Но в данном случае не удержался! Таких профессионалов как Вы, ещё поискать! Было бы здорово, если бы вы собрали полноценный 8-битный компьютер с подключением клавиатуры и монитора.
@dmitriisemenovykh93893 жыл бұрын
Спасибо, это очень интересно и позновательно! Продолжение очень хочется.
@TheFirefox193 жыл бұрын
Со времен первого знакомства с ZX было интересно как он работает. На самосборщиков смотрел как на богов! А тут настолько всё "разжовано", что всё стало понятно. Спасибо!
@TheTalants3 жыл бұрын
Молодец, подробно и без воды👍
@PavelAlexeev-super3 жыл бұрын
Ух ты, вот это класс! Помню, как мы изучали этот ассемблер самостоятельно. Никак не мог дедушке своему объяснить, зачем я это делаю)))
@Андрей9693 жыл бұрын
Спасибо за толковые видео. Один из лучших техноканалов на русскоговорящем ютубе. Хотелось бы побольше про программирование ардуино. Есть пара отличных видео здесь, но так сыть был взят резкий старт. Хотелось бы более подробного разбора. Ввод-вывод, написание подпрограмм, команды, написание и отладка простых скетчей, скажем, электронный сторож, многотональный звонок, часы и т.д. Также, возможно, работа с выходными транзисторными ключами и их расчет(для начинающих будет интересно). Сам стараюсь изучать ардуино, но возникают некоторые вопросы. Еще раз спасибо за качественный контент.
@MajorTomWorkshop3 жыл бұрын
Хорошо, подумаю. )
@Андрей9693 жыл бұрын
@@MajorTomWorkshop Сорри, нашел видео по транзисторам на канале. Для меня как электрика оказались полезны видео про ремонт светодиодных светильников и прожекторов. Продолжаю просматривать видео на канале. Спасибо)))
@DIY-hv2hv3 жыл бұрын
Вспомнил молодость и свой первый zx-spectrum, спасибо! Отличная подача!
@МихаилШатохин-о2ф Жыл бұрын
0:39 Игра Exolon )) Самая классная на кассете ))) И Саботёр ещё, где бомбу устанавливаешь и на вертолёте улетаешь👍
@putman77Ай бұрын
Какая же это красота !!! Обожаю такие видео. Автор, большое тебе СПАСИБО !!!
@engenegr_48803 жыл бұрын
Интересная тема и грамотный комплексный подход подачи информации. По устройству микроконтроллеров доступная информация попадается довольно редко. А писать прошивки без понимания происходящего - не совсем правильно. Жду продолжения!
@pba60kulikov42 Жыл бұрын
информация подана в подробностях, Благодарю за труд!
@user-hr9ty5pc1o3 жыл бұрын
Крутяк! Собирал как-то спектрума капец, то еще веселье, но зато собрался и работает! Дядь где ты был раньше? 👍
@ЕвгенийБондарев-к7ф7 ай бұрын
Благодарю тебя друг, за столь интересный рассказ, ввиде двух частей данного видео! С каждым разом все становится яснее, относительно работы ПК! 🎉🎉🎉
@SDD393 жыл бұрын
Думаю , если затактировать Z80 от Ардуино , а не от отдельного генератора , то вполне возможно поднять тактовую частоту и избежать ошибок чтения команд.
@MajorTomWorkshop3 жыл бұрын
Такая мысль была, но это подрывает идею эмулятора как таковую. Эмулятор должен быть самостоятельным устройством.
@cafedead3 жыл бұрын
Хороший видос. Мог еще первую команду оптимизировать: вместо LD A,0 использовать XOR A, сэкономить еще один байт. А LD B,A - еще байт... Ну тут уже написали, даже еще лучше варианты предложили... -) Прекрасно, что столько людей интересуется всем этим делом, и про XOR A написали... Все красавчики.
@MajorTomWorkshop3 жыл бұрын
А мне самому интересно было, сколько людей вспомнит про XOR A. )) Оказалось, синклеристов достаточно много. А вот про SUB A не вспомнил никто! ))
@cafedead3 жыл бұрын
@@MajorTomWorkshop где еще такое возможно?!) Закликбейтить при помощи LD A, 0 😂👍
@tangerinedanger3143 жыл бұрын
@@MajorTomWorkshop тоже хотел написать про XOR A ))
@Вячеслав-е4ь6е7 ай бұрын
Огромное спасибо. Очень грамотно изложена информация, крайне приятно слушать 😊
@zritel232 жыл бұрын
Получилось не хилое, навороченное реле поворотов)). Отличное видео, мне понравилось.
@plazmx1023 жыл бұрын
Отличное познавательное видео!
@negodiaysamsonoff96163 жыл бұрын
асм и оптимизация на ардуине были бы весьма интересны, наверное. особенно, если есть возможность сравнить всякие особенности с мк других производителей
@rpocc3 жыл бұрын
Это осень сложная тема на самом деле, так как в основном все процессоры, особенно 8-битки имеют примерно один и тот же набор операций, таких как чтение/запись битов и слов в порты, оперативку, FLASH (lpm/spm), косвенная запись/чтение, пересылки слов и двойных слов, арифметика, умножение в двойное слово, безусловные и условные переходы, логические и сдвиговые операции, работа с непосредственными данными. Плюс, в МК обычно есть еще специализированные опкоды для отладки. А вот тонкости кроются в том, какую разрядность имеют те или иные группы опкодов, из чего следует, например, ограниченное число регистров, с которыми производятся те или иные операции, а также механизм адресации. И эти вещи расписывать на самом деле долго, проще самостоятельно изучить даташиты и список опкодов на несколько распространенных процессоров, и врубиться в общую логику. Могу сказать, что соеди 8-биток лично я ковырялся с ассемблером 6502, Z80, AVR, PIC, Intel и наиболее адекватными мне показались AVR и интел. Понятно, что 32-битки сейчас сильно лучше по многим причинам, и среди них по удобству и ценам лидирует STM32, поэтому тут особо ковыряться не обязательно. Для мелочевки в DIP корпусах хороши AVRки, для всего, что требует кучи портов и нормальной арифметики типа Float, деления и MAC операций - STM. Отдельное место - OTP контроллеры для самых дешёвых в производстве проектов с железобетонным, безглючным и простым кодом. Они очень дёшевы.
@rpocc3 жыл бұрын
Кстати, что касается оптимизации на Arduino, то я на память синтаксис не вспомню, но суть в том, что там можно садресовать структуру или объединение структур как указатель на конкретную область памяти, размапленную на порты, и в этой структуре прямо по отдельным группам битов проименовать все нужные группы портов нужных оазрядностей, и работать с ними в итоге как с переменными. Я этот метод использую во всех проектах под атмегу, как в ардуино, так и атмел студио. Посмотреть этот стнтаксис можно, например, в заголовочных файлах, в которых описываются сами порты, поскольку именно так этим именам PORTA и т. д. нужные адреса и присваиваются. Это не кросплатформенное решение, но зато существенно упрощает работу и программисту и компилятору, так как позволяет избавиться от кучи битовых сдвигов и логических операций.
@jyusup1233 жыл бұрын
Прекрасное понятное видео. Почему так долго ничего не выпускали? Видос огонь. С друзьями поделюсь
@ВалерийИскаков-о8ч11 ай бұрын
Как же кайфово смотреть такие вещи) Спасибо, было очень познавательно.
@michaelnikolaev7089 Жыл бұрын
Для использования Arduino Due потребуется преобразователь уровня 3.3 - 5 в, плюс там порты a, b, c, d выведены на плату частично с пропусками разрядов шины
@Stepan.K3 жыл бұрын
Чудо, что даже я смог в общих чертах понять как все работает. Спасибо
@chip2533 жыл бұрын
Прям ностальгия, назад в 90тые, когда писал на асме. Но меня смутило что команды немного не так назывались, jr nz сдвиг , jp nz адрес, и обычно для обнуления используется xor a, про инвертирования даже не помню... Код конечно очень простенький, интересно было почитать куски из ксоникса, где вначале идет вытирания области ldir, потом печать текста из регистра sp. круть.
@MajorTomWorkshop3 жыл бұрын
Это мой Xonix, я его написал полностью и он работает, хотел немного украсить, графики добавить прежде чем выпускать, 2 года валяется уже, так и не доделал пока. )) Не показывал никому.
@alexey-art-studio3 жыл бұрын
По идее можно было параллельную флэш взять. Крутой разбор) я бы посмотрел с эмуляцией на монитор) жду новых видео!)
@repair_technology3 жыл бұрын
уже 100.000 подписчиков сегодня ! Поздравляю! Спасибо за качественную информацию! Мы с Вами!
@PavelAlexeev-super3 жыл бұрын
В городе Чебоксары Чувашской Республики на заводе Элара тоже производили компьютер на z80, назвался Дельта-С
@Integral21283 жыл бұрын
в 2016г собирал мечту детства Радио-86РК, в сети есть достаточно магазинов торгующих старыми микросхемами которые в свое время сдавали на металлолом, в итоге удалось собрать все на оригинале совковых микрух на макетке МГТФ проводом))) а программатор пришлось на мк делать самодельный для высоковольтной прошивки ПЗУ, старые позолоченные ПЗУ с окошком на много солидней выглядят в подобных сборках
@Ivan-q9b9h10 ай бұрын
26:08 объясните пожалуйста почему на вход Dтригера подаём D0 , а не к примеру D1 ? Спасибо.
@evgen86n Жыл бұрын
Жаль забросил тему))) отлично объясняешь! спасибо! два видео на одном дыхании посмотрел!
@НиколаИванов-ш6ю3 жыл бұрын
Вот это эталонный пример отличного контента - жаль, что в тренде ютуба таких роликов нет
@Konstantinfi513 жыл бұрын
Этих параллельных ПЗУ Flash вагон на али и прошить не проблема с ардуино и даже переходники на DIP выводы, но ждать конечно надо. А ещё можно прикупить статического ОЗУ, программировать её с ардуино и запускать процессор, чтобы глянуть как получилось)
@ІванКлимчук-х2ф3 жыл бұрын
13:07 можно программу еще ужать Убрать строки 8 и 9, а JR 0 заменить на JR 2 (переход на строку с выводом)
@solnyshkoluckyheartilly5339 Жыл бұрын
Спасибо за труды!
@skakalinvlad2 жыл бұрын
Круто! Не знаю, как на счёт Z-80, который вот-вот станет уже не найти, а раз на ардуино тоже код выполняется, то, похоже, и на одних ардуинках можно комп делать. Хотя бы, на одной проц, на другой память, на третьей видюха, на четвёртой модуль взаимодействия со стандартной клавой, ну и так далее. Мне кажется, простейший комп, но на современных компонентах - это не менее круто, чем коллекционные легендарные микрухи. По крайней мере, повторяемость - это хорошо. Тем более, на ардуино можно взаимодействовать и с картами памяти, значит сменный софт уже вроде реален, а с двумя модулями - и типа нортона тоже, файлы перекладывать между флешками)) Хотя, практического смысла мало - учитывая низкую функциональность и производительность, а также необходимое количество приобретаемых плат, распберри всё равно будет круче. Не знаю, просто мысль интересная)) А вообще, было бы круто - писать прошивки для ардуинок на компе из ардуинок)))
@mvn1282 жыл бұрын
Программируя на асcемблере со временем запоминаешь машинные коды некоторых команд. Если мне не изменяет склероз (больше 20 лет прошло) С3h это безусловный переход (JMP) в машинных кодах как процессора Z80, так и ВМ80. Хотя набор машинных команд у Z80 больше.
@MrRadogost0073 жыл бұрын
Первый мой компьютер ZXspectrum загружался с дискет. Пришлось научится ремонтировать магнитофон, когда он поломался.
@radikusmanov7574 Жыл бұрын
Спасибо. Вспомнил свою молодость, как писал программы для японского компьютера на процессоре Z80A под управлением операционной системы CP/M. Как говорил Билл Гейтс, машинный код этих программ вырезан ножом на моём сердце. Всё же 64 килобайта оперативной памяти - это совсем немного. Поместилось бы.
@WasilijDyak3 жыл бұрын
«Смог заинтересовать» это не то слово. Просто восторг
@zxpirate7zxp7663 жыл бұрын
Когда-то давно мы мигали светодиодом при помощи 2х транзисторов. В 21м веке для этого необходимо не менее 2х процессоров ;)
@KazilskyАй бұрын
Одного хватит. Таймер, добрый вечер)
@KJIaBogaB3 жыл бұрын
Очень просим раскрыть подробнее работу с графическим выводом на экран. Моргнуть светодиодом - моргнули. А как реализовать развертку, какие импульсы нужно давать. Как моргнуть пикселем на VGA мониторе :) Обычно в спектрумах реализованы RGB выводы. Какую микросхему видеоадаптера попроще лучше выбрать для этих целей? Может соберёте продолжение - нарисуете на экране какой-нибудь крестик или звездочку. Подскажите, готовите что-то в продолжение к этой теме или пока некогда? Очень ждем!
@MajorTomWorkshop3 жыл бұрын
Про Ардуино ещё обязательно будет, но немного попозже, пока лекции по схемотехнике запланированы. Насчёт моргнуть на VGA не знаю, а на обычный TV Out можно. Но просто всё от частоты зависит. А вообще, это уже достаточно не актуально в наши дни, развёрточные мониторы давно не выпускаются. Не проще LCD использовать? ))
@Shuspano3 жыл бұрын
Прикольно. Не так давно занимался примерно тем-же самым, и примерно так-же. Микропроцессор Intel 8085, эмулятор ПЗУ - быстрый китайский микроконтроллер STC12C5A60S2. Такой микроконтроллер использован потому, что этот процессор не может корректно работать на низких тактовых частотах, и плюс еще надо демультиплексировать шину адрес/данные в реальном времени.
@MajorTomWorkshop3 жыл бұрын
И микроконтроллер успевает в реальном времени поставлять данные и с демультиплексированием? Это круто ))
@Shuspano3 жыл бұрын
@@MajorTomWorkshop Да, именно. Тактовая частота МК - 24 МГц (это не максимальная, просто на демо-боарде такой), машинный цикл равен 1 такту. Частота МП 8085 - 1 МГц, это его минимальная частота, в среднем получается 4-5 инструкций МК. Сигнал ALE заведен на внешнее прерывание МК. Программа простейшая, по смыслу почти как ваша, но отладить ее оказалось сложно, т.к процессор чуствителен к таймингам.
@AlexMldz Жыл бұрын
На 1и 4 ноги микросхемы триггера надо + подать (по спецификации). Если они в воздухе, возможно ложное срабатывание. У меня глючило, пока не притянул. Номиналы R1 и R2 на картинке, кажется, перепутаны местами. В такой схеме, вроде, рекомендуется R2 делать значительно больше R1. В реальной схеме автора, похоже, так и было. Если сделать как на картинке, светодиод мигает быстрее, т.е. частота генератора становится выше.
@sabirtursunov46303 жыл бұрын
Можно было лучше, но лучше просто некуда... 🤔 Ты, мужик, бомбически КРУТ!!!
@АнтонБ-х9у3 жыл бұрын
Титаническая работа и потрясающий результат!
@isorport32 Жыл бұрын
Навеяло на воспоминание, когда-то в далекой дальней галактике мой руководитель по микропроцессорной технике состряпал эмулятор РФ из РУ на 2Кб для отладки 48/51 контроллеров. Смысл был в том что в статическое озу заливалась прога через контроллер и с помощью мультиплексеров ША и ШД переключалось на разъем эмулирующий РФ2. Разобраться и объяснить принцип работы - была моя курсовая.
@vlad11mir Жыл бұрын
А нельзя поставить микросхему озу и писать и читать по очереди ардуино и z80? Вначале загрузить, при помощи ардуино, программу для z80 затем отдать управление z80, а затем считывать из памяти результат работы процессора z80. Поставить на место ардуино esp32 и результат выдавать в виде веб страницы. Т.е. будет аппаратное исполнение команд z80.
@vremennyygost16993 жыл бұрын
В ТОПчик 🔥🔥🔥
@Time_Developer3 жыл бұрын
*11:19* _.ORG 0_ _LD A,0_ _OUT(0FFh),A_ _-LD B,0-_ _DJNZ $_ _CPL_ _JR 2_ *Можно сократить ещё на два байта убрав LD B,0 т.к. в нашей задаче данное значение не критично.*