
Как работает ЭВМ? Собираем простейший компьютер на базе Z80, эмулятора ПЗУ и порта на D-триггере
содержание видео
Дата: 2023-03-12
Похожие видео
Комментарии и отзывы: 20
Владислав
Круто! Не знаю, как на счёт Z-80, который вот-вот станет уже не найти, а раз на ардуино тоже код выполняется, то, похоже, и на одних ардуинках можно комп делать. Хотя бы, на одной проц, на другой память, на третьей видюха, на четвёртой модуль взаимодействия со стандартной клавой, ну и так далее. Мне кажется, простейший комп, но на современных компонентах - это не менее круто, чем коллекционные легендарные микрухи. По крайней мере, повторяемость - это хорошо. Тем более, на ардуино можно взаимодействовать и с картами памяти, значит сменный софт уже вроде реален, а с двумя модулями - и типа нортона тоже, файлы перекладывать между флешками) Хотя, практического смысла мало - учитывая низкую функциональность и производительность, а также необходимое количество приобретаемых плат, распберри всё равно будет круче. Не знаю, просто мысль интересная) А вообще, было бы круто - писать прошивки для ардуинок на компе из ардуинок)
ответить
Круто! Не знаю, как на счёт Z-80, который вот-вот станет уже не найти, а раз на ардуино тоже код выполняется, то, похоже, и на одних ардуинках можно комп делать. Хотя бы, на одной проц, на другой память, на третьей видюха, на четвёртой модуль взаимодействия со стандартной клавой, ну и так далее. Мне кажется, простейший комп, но на современных компонентах - это не менее круто, чем коллекционные легендарные микрухи. По крайней мере, повторяемость - это хорошо. Тем более, на ардуино можно взаимодействовать и с картами памяти, значит сменный софт уже вроде реален, а с двумя модулями - и типа нортона тоже, файлы перекладывать между флешками) Хотя, практического смысла мало - учитывая низкую функциональность и производительность, а также необходимое количество приобретаемых плат, распберри всё равно будет круче. Не знаю, просто мысль интересная) А вообще, было бы круто - писать прошивки для ардуинок на компе из ардуинок)
ответить
Сергей
Org 0
Xor a, a
Ld b, a
Label:
Out(FFh, a
Djnz $
Cpl
Jr Label
ЕМНИП должно работать, 9 байт.
PS. Можно ещё первые две команды убрать и заменить jr label на rst 0.
При первой итерации значение аккумулятора и регистра b не определено, но скорее всего они будут равны нулю. Но даже если это не так, то ничего страшного, первый раз возможно более быстро пройдёт цикл, а во второй раз всё встанет на свои места, т. к. во второй раз регистр b стопроцентно будет равен нулю, а на аккумулятор впринципе всё равно, главное что его биты инвертируются, за счёт чего и будет моргать светодиод.
Итого:
Org 0
Out(FFh, a
Djnz $
Cpl
Rst 0
6 байт, всего три адресных линии и два байта запасных)
ответить
Org 0
Xor a, a
Ld b, a
Label:
Out(FFh, a
Djnz $
Cpl
Jr Label
ЕМНИП должно работать, 9 байт.
PS. Можно ещё первые две команды убрать и заменить jr label на rst 0.
При первой итерации значение аккумулятора и регистра b не определено, но скорее всего они будут равны нулю. Но даже если это не так, то ничего страшного, первый раз возможно более быстро пройдёт цикл, а во второй раз всё встанет на свои места, т. к. во второй раз регистр b стопроцентно будет равен нулю, а на аккумулятор впринципе всё равно, главное что его биты инвертируются, за счёт чего и будет моргать светодиод.
Итого:
Org 0
Out(FFh, a
Djnz $
Cpl
Rst 0
6 байт, всего три адресных линии и два байта запасных)
ответить
KJIaBogaB
Дружище! Мегаролик! Низкий тебе поклон и за это и за предыдущее видео!
Требуем продолжения! Хотим, как ты понимаешь - простейший терминал!
Подскажи по двум пока вопросам:
1. Если всё же воткнуть ПЗУ вместо ардуино - в его память нужно будет просто внести код, который получился после ассемблирования, который ты расположил в строке определения байта данных (byte data[] =0x3E, .;?
2. Это К155ЛН1 даёт генератор на ногу 6 (CLK? Я в Thinkercad собрал по схеме - на осциллографе по нулям. Мультиметр показывает медленное поднятие напряжения с 0 mV до (видимо 5v. Вообще такие генераторы работают в эмуляторах?
ответить
Дружище! Мегаролик! Низкий тебе поклон и за это и за предыдущее видео!
Требуем продолжения! Хотим, как ты понимаешь - простейший терминал!
Подскажи по двум пока вопросам:
1. Если всё же воткнуть ПЗУ вместо ардуино - в его память нужно будет просто внести код, который получился после ассемблирования, который ты расположил в строке определения байта данных (byte data[] =0x3E, .;?
2. Это К155ЛН1 даёт генератор на ногу 6 (CLK? Я в Thinkercad собрал по схеме - на осциллографе по нулям. Мультиметр показывает медленное поднятие напряжения с 0 mV до (видимо 5v. Вообще такие генераторы работают в эмуляторах?
ответить
Сергей
Состояние шины данных на вывод останется к новому началу основного цикла. Таким образом, выставление значения на шину данных получается безконтрольным, потому что проверка CS и RW происходит после выставления данных. Если в схеме будет присутствовать еще одно устройство памяти, например ОЗУ, то такой эмулятор ПЗУ нарушит работу схемы, так ка существует вероятность, что он запишет данные на шину данных в момент, когда проц от ПЗУ этого не ждет. Вопрос: как правильно изменить схему и прошивку, чтобы эмулятор ПЗУ коррекно работал на реальном компьютере?
ответить
Состояние шины данных на вывод останется к новому началу основного цикла. Таким образом, выставление значения на шину данных получается безконтрольным, потому что проверка CS и RW происходит после выставления данных. Если в схеме будет присутствовать еще одно устройство памяти, например ОЗУ, то такой эмулятор ПЗУ нарушит работу схемы, так ка существует вероятность, что он запишет данные на шину данных в момент, когда проц от ПЗУ этого не ждет. Вопрос: как правильно изменить схему и прошивку, чтобы эмулятор ПЗУ коррекно работал на реальном компьютере?
ответить
Andrew
Программу мигания можно было уменьшить еще сильнее. Во первых нам неважно начальное состояние целого регистра A, а если быть точнее то нас интерисует какой то конкретный бит где сидит светодиод. Инициализацией A можно смело пожертвовать. Инициализацией B тоже, и вместо этого использовать комманду DJNZ $ которая будет частью цикла. Код выполняющий вывод второго состояния так же ненужен учитывая что у нас это всё в цикле и задача менять какой то бит в A на противоположное значение. Итого:
DJNZ $
OUT (FF, A
CPL
JR 0
Итого 7 байт. Хватило бы 3 бит адреса; )
ответить
Программу мигания можно было уменьшить еще сильнее. Во первых нам неважно начальное состояние целого регистра A, а если быть точнее то нас интерисует какой то конкретный бит где сидит светодиод. Инициализацией A можно смело пожертвовать. Инициализацией B тоже, и вместо этого использовать комманду DJNZ $ которая будет частью цикла. Код выполняющий вывод второго состояния так же ненужен учитывая что у нас это всё в цикле и задача менять какой то бит в A на противоположное значение. Итого:
DJNZ $
OUT (FF, A
CPL
JR 0
Итого 7 байт. Хватило бы 3 бит адреса; )
ответить
Аз
и где были все эти замечательные компьютеры, да с такими замечательными рассказчиками в начале 90-ых, когда меня увлекало программирование а доступность литературы как и ПЭВМ, оставляла желать хоть чего-нибудь.
Хех. Такой талант не раскрылся: )
Только через 30+ лет начал понимать что всё это несложно понять, когда выбрана правильная последовательность раскрытия тайн. Принципиально, за 10 лет школы можно подготовить довольно приличных специалистов, но это если не смешивать кучу попутных предметов.
ответить
и где были все эти замечательные компьютеры, да с такими замечательными рассказчиками в начале 90-ых, когда меня увлекало программирование а доступность литературы как и ПЭВМ, оставляла желать хоть чего-нибудь.
Хех. Такой талант не раскрылся: )
Только через 30+ лет начал понимать что всё это несложно понять, когда выбрана правильная последовательность раскрытия тайн. Принципиально, за 10 лет школы можно подготовить довольно приличных специалистов, но это если не смешивать кучу попутных предметов.
ответить
KJIaBogaB
Очень просим раскрыть подробнее работу с графическим выводом на экран.
Моргнуть светодиодом - моргнули. А как реализовать развертку, какие импульсы нужно давать. Как моргнуть пикселем на VGA мониторе: ) Обычно в спектрумах реализованы RGB выводы. Какую микросхему видеоадаптера попроще лучше выбрать для этих целей?
Может соберёте продолжение - нарисуете на экране какой-нибудь крестик или звездочку.
Подскажите, готовите что-то в продолжение к этой теме или пока некогда?
Очень ждем!
ответить
Очень просим раскрыть подробнее работу с графическим выводом на экран.
Моргнуть светодиодом - моргнули. А как реализовать развертку, какие импульсы нужно давать. Как моргнуть пикселем на VGA мониторе: ) Обычно в спектрумах реализованы RGB выводы. Какую микросхему видеоадаптера попроще лучше выбрать для этих целей?
Может соберёте продолжение - нарисуете на экране какой-нибудь крестик или звездочку.
Подскажите, готовите что-то в продолжение к этой теме или пока некогда?
Очень ждем!
ответить
Александр
Здравствуй уважаемый! Обращаюсь как опытному человеку и знающему, прошу помощи можете помочь или подсказать где найти (может кто уже проделывал такое)
Вопрос такой: АТМ Турбо - нужно из схемы разложить на отдельные блоки и составляющие, то есть.
Процессор ( что и какие компоненты входят) Память ОЗУ и ПЗУ по отдельности (так же что и какие компоненты и так далее всю схему на блоки!
Может есть кто проделывал такое, я лично не смог найти такой инфы!
ответить
Здравствуй уважаемый! Обращаюсь как опытному человеку и знающему, прошу помощи можете помочь или подсказать где найти (может кто уже проделывал такое)
Вопрос такой: АТМ Турбо - нужно из схемы разложить на отдельные блоки и составляющие, то есть.
Процессор ( что и какие компоненты входят) Память ОЗУ и ПЗУ по отдельности (так же что и какие компоненты и так далее всю схему на блоки!
Может есть кто проделывал такое, я лично не смог найти такой инфы!
ответить
Integral2128
в 2016г собирал мечту детства Радио-86РК, в сети есть достаточно магазинов торгующих старыми микросхемами которые в свое время сдавали на металлолом, в итоге удалось собрать все на оригинале совковых микрух на макетке МГТФ проводом) а программатор пришлось на мк делать самодельный для высоковольтной прошивки ПЗУ, старые позолоченные ПЗУ с окошком на много солидней выглядят в подобных сборках
ответить
в 2016г собирал мечту детства Радио-86РК, в сети есть достаточно магазинов торгующих старыми микросхемами которые в свое время сдавали на металлолом, в итоге удалось собрать все на оригинале совковых микрух на макетке МГТФ проводом) а программатор пришлось на мк делать самодельный для высоковольтной прошивки ПЗУ, старые позолоченные ПЗУ с окошком на много солидней выглядят в подобных сборках
ответить
Eugene
Интересное кино. Но возню с программатором Вы, похоже, черезчур драматизируете. Мне, например, однажды ввиду отсутствия под рукой УФ ПЗУ пришлось использовать 29F010, которая превосходно прошилась, будучи вставленой в PCI сетевую карту в качестве BootROM. Стандартной утилитой для записи сетевого загрузчика залил в нее на раз необзодимый мне бинарник и воткнул в устройство.
ответить
Интересное кино. Но возню с программатором Вы, похоже, черезчур драматизируете. Мне, например, однажды ввиду отсутствия под рукой УФ ПЗУ пришлось использовать 29F010, которая превосходно прошилась, будучи вставленой в PCI сетевую карту в качестве BootROM. Стандартной утилитой для записи сетевого загрузчика залил в нее на раз необзодимый мне бинарник и воткнул в устройство.
ответить
Александр
Какая частота без кварца на схеме для работы Z80? И можно ли то же самое организовать на WAVGATE 32 Мгц китайце (аналог улучшенный Китайский? Я начинал в 1987 со Спекки и Радио-86Рк, в основном Ассемблер, другого не было да и не надо, до сих пор AТMega так и программирую но, сейчас времени нет просто. Вот можете по экспериментировать на эти темы? Очень интересно.
ответить
Какая частота без кварца на схеме для работы Z80? И можно ли то же самое организовать на WAVGATE 32 Мгц китайце (аналог улучшенный Китайский? Я начинал в 1987 со Спекки и Радио-86Рк, в основном Ассемблер, другого не было да и не надо, до сих пор AТMega так и программирую но, сейчас времени нет просто. Вот можете по экспериментировать на эти темы? Очень интересно.
ответить
Геннадий
Когда мне говорят что все просто, тогда я отвечаю - да, все просто и я уже Рихтер, мне осталось немного, всего лишь чтобы мои пальцы нажимали на нужные клавиши - и вот я уже пианист, всего то лишь. А кто - нибудь задумывался, что этот последний шаг может быть длиннее жизни. Автор видео сам признается, что тренировался всю пройденную жизнь.
ответить
Когда мне говорят что все просто, тогда я отвечаю - да, все просто и я уже Рихтер, мне осталось немного, всего лишь чтобы мои пальцы нажимали на нужные клавиши - и вот я уже пианист, всего то лишь. А кто - нибудь задумывался, что этот последний шаг может быть длиннее жизни. Автор видео сам признается, что тренировался всю пройденную жизнь.
ответить
Valeriy
Можно еще 2 байта было секономить )
LD A, 0 => XOR A //XOR занимает 1 байт заместь 2х LD
LD B, 0 => LD B, A //загрузка регистр-регистр занимает 1 байт, загрузка числа в регистр занимет 2 байта. Т. к. А уже 0, то и в В будет 0
И взамет CPL я бы пользовал 'INC A'.
.
ну и если вообще экономить то код будет всего 4 строчки и 7 байт
CPL
OUT (0FFH, A
DJNZ $
JR 0
ответить
Можно еще 2 байта было секономить )
LD A, 0 => XOR A //XOR занимает 1 байт заместь 2х LD
LD B, 0 => LD B, A //загрузка регистр-регистр занимает 1 байт, загрузка числа в регистр занимет 2 байта. Т. к. А уже 0, то и в В будет 0
И взамет CPL я бы пользовал 'INC A'.
.
ну и если вообще экономить то код будет всего 4 строчки и 7 байт
CPL
OUT (0FFH, A
DJNZ $
JR 0
ответить
NEO
Помню 20 лет назад в универе был ассемблер, тоже казалось так сложно и занудно, нах. оно сейчас нужно, есть же с++, а сейчас это уже ретроэкзотика и люди сидят себе z80 паяют с алика ) у меня у самого сердце замирает когда 286 и 386 платы в гараже из коллекции порой достаю повспоминать молодость
ответить
Помню 20 лет назад в универе был ассемблер, тоже казалось так сложно и занудно, нах. оно сейчас нужно, есть же с++, а сейчас это уже ретроэкзотика и люди сидят себе z80 паяют с алика ) у меня у самого сердце замирает когда 286 и 386 платы в гараже из коллекции порой достаю повспоминать молодость
ответить
Махачкала
Привет. Я видел у чувака разработку чуть посложнее. Он при помощи atmega загружал в статическую оперативную память прошивку и только после этого отпускал резет на Z80. У тебя нет желания рассказать как дешифровать адреса портов. Имею ввиду расскажи доступно как ты можешь
ответить
Привет. Я видел у чувака разработку чуть посложнее. Он при помощи atmega загружал в статическую оперативную память прошивку и только после этого отпускал резет на Z80. У тебя нет желания рассказать как дешифровать адреса портов. Имею ввиду расскажи доступно как ты можешь
ответить
Pal
А не проще ли будет если:
LD A, 0
LD B, 0
OUT (FF, A
DJNZ $
CPL
JR 4
- так программа еще меньше места займет! )
А если не морочиться с установлением регистров А и B - то и того меньше. Правда, начальное время включения (выключения) светодиода будет непостоянным.
ответить
А не проще ли будет если:
LD A, 0
LD B, 0
OUT (FF, A
DJNZ $
CPL
JR 4
- так программа еще меньше места займет! )
А если не морочиться с установлением регистров А и B - то и того меньше. Правда, начальное время включения (выключения) светодиода будет непостоянным.
ответить
Victor
Программируя на асcемблере со временем запоминаешь машинные коды некоторых команд. Если мне не изменяет склероз (больше 20 лет прошло) С3h это безусловный переход (JMP) в машинных кодах как процессора Z80, так и ВМ80. Хотя набор машинных команд у Z80 больше.
ответить
Программируя на асcемблере со временем запоминаешь машинные коды некоторых команд. Если мне не изменяет склероз (больше 20 лет прошло) С3h это безусловный переход (JMP) в машинных кодах как процессора Z80, так и ВМ80. Хотя набор машинных команд у Z80 больше.
ответить
ManOleg38
3: 25 Мы хотим чтобы наш компьютер мигал светодиодиком
Детский сад. Никто не собирает проект для моргания светодиодиком.
Как минимум - крутить вебкой по PTZ например. Ну или уж если моргать то с пользой - ИК диодом по протоколу RC5.
ответить
3: 25 Мы хотим чтобы наш компьютер мигал светодиодиком
Детский сад. Никто не собирает проект для моргания светодиодиком.
Как минимум - крутить вебкой по PTZ например. Ну или уж если моргать то с пользой - ИК диодом по протоколу RC5.
ответить
Alex
Вам книги бы писать! Каждый ваш ролик смотрю с огромным удовольствием. Правда нихрена не понимаю) Может вам курсы какие создать для чайников, как я, чтоб с нуля и до. Спасибо Вам за эти видео, каждый ролик это шедевр!
ответить
Вам книги бы писать! Каждый ваш ролик смотрю с огромным удовольствием. Правда нихрена не понимаю) Может вам курсы какие создать для чайников, как я, чтоб с нуля и до. Спасибо Вам за эти видео, каждый ролик это шедевр!
ответить
Fredy
Код программы для Z80 можно еще уменьшить если вместо LD A, 0 использовать XOR A (занимает 1 байт, а вместо LD B, 0 использовать LD B, A (тоже занимает 1 байт. Итого вся программа будет занимать 13 байт.
ответить
Код программы для Z80 можно еще уменьшить если вместо LD A, 0 использовать XOR A (занимает 1 байт, а вместо LD B, 0 использовать LD B, A (тоже занимает 1 байт. Итого вся программа будет занимать 13 байт.
ответить
Добавить отзыв, комментарий















