Comments 83
Да, в роли микроконтроллера его нельзя применять, но тогда это было нормально.
Шина адреса и данных, внешние RAM/ROM, таймер ВИ53, порты на ИР22/23/27 или ВВ55.
Да, и пользовался у нас популярностью не только по Синклерам, а и по АОНам. FFT реализовалось нормально, даже с компаратором. Тогда было востребованно.
А вот
Занимаясь чипом по 80 часов в неделю, Фаджин завершил разработку его архитектуры меньше чем за девять месяцев.
Это уже мало кто поймёт. На это только японцы способны, наверное. Для меня 30 чистых часов — норма, 40-подвиг.
Интересно, были АОНы на Z-80 с чистым БПФ? Мэйнстримом IMHO был "Байес", там битовая последовательность с выхода компаратора сравнивалась с меандрами разных частот.
Да, ЦАП не было, только компаратор (как и в массовых моделях на Z80, потом на 8031). Тогда все экономили.
Есть «окно», выборки сравниваем с 6-ю частотами, с sin и cos.
Но sqrt(sinSum^2 + cosSum^2) ни кто не заморачивался, слишком накладно было, было просто abs(sinSum) + abs(cosSum).
И работало же нормально. Да, не БПФ в чистом виде, но алгоритмы у всех были одинаковые. Надо было делать, чтобы было быстро и дёшево.
Году в 1997 я сделал из "Байта" говорящий АОН, изучив прошивку АОНа, опубликованную в каком-то из журналов для радиолюбителей (не помню уже в каком). Я опять же не помню подробностей (возможно, где-то и остались записи, но я их не нашел) — смысл был в конъюнкции битовой последовательности с компаратора с битовыми последовательностями для разных частот, причем, если память не изменяет, с разными начальными фазами. Потом оценивались результаты и выбирались две частоты, наиболее соответствующие этому сигналу.
P.S. https://habr.com/ru/post/486584/#comment_21220580 — более научным языком.
Вычислялось 3 максимума по частотам.
Если третий максимум был сравним со вторым, это считалось ошибкой, шумом.
И «окна» должны были идти последовательно, несколько выборок.
AAAASBBBBBXCCC надо было преобразовать в ABC.
Но AASAABBXBBXCC — это шум или слабый сигнал, недостоверно.
таймер ВИ53, порты на ИР22/23/27 или ВВ55Это «наш колхоз». У Zilog на самом деле был не один микропроцессор Z80CPU, а микропроцессорный комплект, дополнительные микросхемы про которые мы (на советском пространстве) мало знали (Z80PIO, Z80CTC, Z80SIO, Z80DMA, Z80DART).
Самый интересный вариант, с которым имел дело — это «умный» терминал от Филлипса — на нем было возможно запустить даже CP/M. Так в нем использовалця почти весь комплект (DMA, CTC, PIO и DART (это асинхронный последовательный приемопередатчик (SIO — синхронный)) и два процессора — один работал как контроллер двух дисководов ( и там как раз и стояли CTC).
А в 1985 (или 86?) году Hitachi поместила Z80 и часть периферии в один чип — HD64180, который потом стал Z180 :).
Весьма интересная девайсина.
Инфа:
speccy.info/DataGear
velesoft.speccy.cz/data-gear.htm
Вот не могу понять, как на миллиметровке нарисовать АЛУ хотя бы.
Но, может быть, они были очень увлечённые.
В Штатах законы меняют постоянно. Тогда это не было DNA или чем-то подобным. Сейчас уже нельзя.
Но, может быть, они были очень увлечённые.
-… probably you were passionate about this?
-Actually, the japanese was.
Вот не могу понять, как на миллиметровке нарисовать АЛУ хотя бы.
А в то время других способов не было. Не было САПРов, не было плоттеров. Рисовали черновики на миллиметровке, потом за кульманом, опять же вручную, делались чертежи тушью на "белке". Потом с этих белков делался фотошаблон с помощью специальной фотоаппаратуры. Да и первые программы к таким процессорвм писались и транслировались с помощью таблички с кодами и бумажки с карандашом.
В качестве пруфов — в 1983 году (это через 8 лет) в Ленпромстройпроекте САПР воспринимался как банальность. Просто дорогая и ненужная банальность. Месячная зарплата конструктор — примерно два машинных часа. А чертил конструктор быстрее.
Только z80 появился раньше. В 70-х о компьютерной графике только мечтали.
Первые серийные векторные дисплеи за рубежом появились в конце 1960-х годов.
В Штатах законы меняют постоянно.
В Штатах такие вещи регламентируются не столько законами, а сколько вашим индивидуальным договором с работодателем. Англо-сакская же прецедентная система.
Это в континентальной системе (вся Европа, без Великобритании и ex-СССР) — прежде всего в законах рекламентировано.
В штатах работадатели запрещают заниматься той же деятельностью после ухода с позиции в течении какого-то времени.
Это слишком сильное утверждение, в такой формулировке скорее байка про дикий запад на постсоветском пространстве. Вы можете получить что-то такое в контракте, но с кучей оговорок, и вероятнее всего потом будете небедно жить за счёт компании.
Интересно, их Интел не засудила за то что украли технологии?
Топология микросхем стала объектом защиты авторских прав в 1980-е. Кроме того, может быть и не украли.
1. Теневого набора регистров
2. Наличие индексных регистров и команд по работе с ними
3. Наличие команд оперирующими битами
4. Более развитая система прерываний
5. Регенерация динамической памяти
6. одно напряжение +5 вольт
7. более высокая производительность
8. возможность адресации 65536 портов ввода/вывода
9. Ассемблер Z80 полностью отличался от ассемблера 8080
А если учесть что Zilog неоднократно обращалась к Intel с предложением о выпуске Z80 на их мощностях, но Интел тогда ответил отказом, было бы сложно предположить что люди укравшие пришли бы на поклон к тем кого обворовали.
С z80-ым, точнее с его продолжателями связан такой факап. Эксон решил выйти на рынок 16 разрядных процессоров, и оставил такую задачу перед Zilog разработать и выпустить такой процессор. Был нанят инженер для разработки архитектуры нового процессора. И он его проектировал, с чистого листа, с популярной тогда ортогональной системой команд, но с Z80 этот процессор не имел ни чего общего кроме наименований мнемоник, совместимость была полностью нулевая. На это еще наложились проблемы при запуске в производство, и Z8000 фактически провалился.
А прими в Zilog итеративный план развития Z80 с добавлением сегментных регистров или MMU и создав процессор подобный Hitachi HD64180, то история компьютеров могла пойти по другому пути. Возможно и IBM могла принять такой процессор в качестве сердца PC, а что? Совместимость с CP/M есть, мегабайт адресуется, как не вариант?
Кстати U880 (а с ним и наш Т34) был не прямым клоном Z80, а работой по мотивам т.к. тоже имелись команды с иным поведением чем у оригинала.
А подробная статья с разбором полетов уже была на Хабре в «Эмоциональная история процессоров для первых компьютеров с 70-х до начала 90-х»
Из неё:
Систему команд 8080, как и других процессоров Intel для РС, трудно назвать идеальной, но она универсальная, достаточно гибкая и имеет несколько очень привлекательных особенностей. От своих конкурентов, Motorola 6800 и MOS Technology 6502, 8080 выгодно отличался большим количеством пусть и несколько неуклюжих регистров, предоставляя пользователю один 8-битный аккумулятор А, один 16-битный полуаккуммулятор и по совместительству быстрый индексный регистр HL, 16-разрядный указатель стека SP, а также ещё два 16-битных регистра ВС и DE. Регистры BC, DE, и HL можно было использовать и как 6 байтовых регистров. Кроме того, 8080 имел поддержку почти полного набора флагов состояния: переноса, знака, нуля и даже чётности и полупереноса. Некоторые инструкции из набора команд 8080 долгое время были чемпионами по быстродействию. Например, команда XCHG делает обмен содержимым 16-битных регистров DE и HL всего за 4 такта – это было исключительно быстро! Ряд других команд хотя и не ставили столь яркие рекорды, но также долгое время были одними из лучших:
XTHL – обмен содержимым регистра HL и данных на вершине стека, 18 тактов – вроде бы много, на даже на настоящем 16-битном 8086 такая команда занимает от 22 тактов, а для 6800 или 6502 такую команду даже трудно представить;
DAD – добавить к полуаккуммулятору HL значение другого 16-битного регистра (BC, DE или даже SP), 10 тактов. Это настоящее 16-битное сложение с установкой флага переноса. Если складывать HL самим с собой, то будет получаться быстрый 16-разрядный сдвиг влево или умножение на 2, ключевая операция как для реализации полного умножения, так и деления;
PUSH и POP – положить в стек и вынуть из стека 16-разрядное значение соответственно из регистра или в регистр. Выполняются за 11 и 10 тактов. Это самые быстрые операции 8080 для работы с памятью и при их выполнении происходит автоматическая инкрементация или декрементация SP. PUSH можно использовать, например, для быстрого заполнения памяти паттерном со значениями из 3 регистров (BC, DE, HL). Команд для работы с 8-битными величинами со стеком нет вообще;
LXI – загрузка 16-битной константы в регистр (HL, DE, BC, SP) за 10 тактов;
RNZ, RZ, RNC, RC, RPO, RPE, RP, RM – условные возвраты из подпрограммы, позволяли делать код чище, избавляя от необходимости писать лишние условные переходы. От этих команд отказались в архитектуре x86, возможно, что и зря, код с ним получается симпатичнее.
Интересны ряд совпадений. Как и в случае с 6502, главный разработчик Z80, Федерико Фаггин (Federico Faggin), ушёл из крупной компании, из Intel. После работы над z80 Федерико уже почти не работал с процессором следующего поколения Z8000 и в начале 80-х ушёл из основанной им компании, чтобы в дальнейшем уже никогда процессорами не заниматься. Он создал затем несколько относительно успешных стартапов, создавая системы связи, тачпады и цифровые камеры. Можно упомянуть, что, помимо z80, в Zilog им ещё был разработан удачный и производимый до сих пор микроконтроллер Z8.
Z80 – это более удобный для включения в компьютерные системы процессор, чем 8080. Он требует только одного напряжения питания и имеет встроенную поддержку регенерации динамической памяти. Кроме того, он при полной совместимости с 8080 имеет довольно много новых команд, второй набор основных регистров и несколько совершенно новых регистров. Любопытно, что в Zilog отказались от использования мнемоник ассемблера 8080, а стали использовать свои собственные мнемоники, более подходящие для расширенной системы команд z80. Подобная история случилась с ассемблером Intel x86 в мире программного обеспечения GNU, там тоже почему-то используют по умолчанию свои собственные соглашения по записи программ на ассемблере. В Z80 добавили поддержку флага переполнения, Intel добавила поддержку такого флага только в 8086. Однако, этот флаг в z80 совместили с флагом чётности, поэтому одновременно, как в 8086, оба флага использовать не получится. В z80, как и в 6502, есть только базовая проверка значения одного флага, т.е. нет проверок сразу двух или трех флагов, что необходимо для сравнений «строго больше», «меньше или равно», а также всех знаковых – в таких случаях приходится делать несколько проверок, на 8086, 6800 или PDP-11 достаточно одной.
Среди новых команд z80 особенно впечатляют команды массового копирования памяти за 21 такт на байт, а также интересная команда поиска байта в памяти. Однако наиболее интересна команда EXX, меняющая местами содержимое 48 байт регистровой памяти, регистры BC, DE, HL с их двойниками, которая выполняется всего за 4 такта! Даже 32-битным ARM понадобится на такую же операцию не менее 6 тактов. Остальные добавочные инструкции не так впечатляют, хотя иногда могут быть полезными. Добавлены ещё:
16-битное вычитание c заемом и 16-битное сложение с переносом за 15 тактов;
унарный минус для аккумулятора за 8 тактов;
возможность читать из памяти и писать в неё, используя регистры BC, DE, SP, IX,IY, а не только HL;
сдвиги, вращения и ввод-вывод для всех 8-битных регистров;
операции проверки, установки и сброса бита по его номеру;
переходы по смещению (JR);
команда цикла.
Большинство новых команд довольно медленные, но их правильное использование может все же сделать код несколько быстрее и существенно компактнее. Это особенно относится к использованию новых 16-разрядных регистров IX и IY, которые можно использовать для новых методов адресации. Интересно, что индексные регистры IX и IY появились в Z80 с целью привлечь пользователей 6800 к переходу на Z80! Но осмелюсь высказать своё мнение, операции с индексными регистрами Z80 сделаны скорее неудачно из-за наличия почти бесполезного байтового смещения в командах, использующих эти регистры.
Многие команды 8080 в z80 стали на такт быстрее и это очень заметное ускорение. Но основная для 16-битной арифметики команда ADD стала на такт медленнее, что делает арифметику в целом если и быстрее, то только чуть-чуть.
Система работы с прерываниями стала гораздо интереснее имеющейся у 8080. С z80 можно использовать как немаскируемые прерывания, так и три способа (один из них совместим с 8080) для работы с маскируемыми. Наиболее интересен режим маскируемых прерываний 2, который позволяет гибко менять адрес кода для обработки прерывания.
Z80 имеет довольно много недокументированных инструкций, многие из этих инструкций пропали при переходе на технологию CMOS, но те которые сохранились стали фактически стандартными и были документированы некоторыми фирмами. Особенно полезны инструкции, позволяющие работать с отдельными байтами неуклюжих 16-битных регистров IХ и IY. Кроме недокументированных инструкций Z80 имеет и другие недокументированные свойства, например, два особых флага в регистре состояний.
Конечно, z80 ещё в большей степени, чем 8080 имеет право называться слегка 16-битным. Гипотетический индекс разрядности у z80 явно чуть-чуть повыше, но при этом парадоксально, что АЛУ у z80 на самом деле 4-битное! На электронном уровне z80 и 8080 – совершенно разные чипы.
В процессоре gbz80 (который от z80 только мнемоники и таблицу cb имеет) ряд этих инструкций добавлен.
А вот z80 мало что унаследовал весь этот бардак (почему группу загрузок регистр-регистр нельзя было в начало опкодов поместить — тогда бы nop сама собой получилась, push af сохраняет аккумулятор как msb, но при этом он в остальных инструкциях имеет код 7, соответствующий младшему регистру в паре: ld a,a имеет код 0177). Плюс дополнил рядом бесполезных блочных инструкций. Кто-нибудь когда-нибудь использовал otdr и indr? А инструкция neg нахера нужна, когда есть cpl и inc a, исполняющиеся примерно за то же время?
Не так давно Zilog выпустила процессор с расширенным набором команд. Там появились инструкции LEA rr,ii+d и LD rr,(gg). Но Zilog не была бы сама собой, если бы не наворотила глупостей (имхо), например инструкция PEA ii+d (push effective address). Я так и не смог придумать ей полезного применения, а пишу под eZ80 с 2013 года (на z80 стаж с 1993, где-то). А вот реально нужных инструкций не добавилось…
Разработчики ZX Spectrum Next пошли еще дальше в с маразмом в системе команд процессора Z80N. Они тупо последовательно добавили в таблицу ed нужные с их точки зрения инструкции. То, что при этом их кодировка не соответствует существующей, их, похоже, меньше всего волновало, а это скажется на количестве логики. Там, где можно было получить 4 инструкции, они добавили одну (mul d,e; хотя в z180 есть набор mlt ss). Есть инструкция зеркалирования битов аккумулятора (так себе идея, проще было через «внешнее устройство» сделать), своп половин аккумулятора (реально полезно при выводе BCD чисел), barrel shifter, который двигает DE на B бит… Но вишенка на торте — это инструкция push nn. Эти нехорошие люди придумали nn хранить в коде инструкции в big endian! Из-за них мне пришлось реализовывать отдельный релокейшн в GNU binutils (BFD, Assembler, Ld) — два дня ковырялся.
Система команд i8080 очень далека от совершенства, особенно, если рассматривать с точки зрения разработчика компиляторов с языков высокого уровня.
Абсолютно согласен, но 8080 оправдывает то что он был одним из первых микропроцессоров, и соответственно никакой базы «что нужно в системе команд микропроцессора общего применения» не было. Ну кроме специфичного 8008.
они бы сделали: условный относительный переход на 1-9 байт вперед (смещение в коде инструкции), относительный переход на -128...+127, относительный переход на -32768...+32768, абсолютный переход, косвенный переход (на адрес в регистре), относительный call, абсолютный call, косвенный call, а так же инструкции загрузки регистров со смещением (пусть только положительным) относительно PC.
В Z80 и сделали относительный переход +127 -128, и меньше двух байт его не сделаешь, а делать сверхкороткий относительный переход нет смысла из-за нерационального расхода оптокодов.
Необходимость относительного перехода -32768...+32768 вызывает сомнение т.к. 64 кб можно улететь не туда куда надо из-за арифметики.
Косвенный (короткий) вызов подпрограммы, теоретически возможен,, но на практике будет медленнее чем обычный вызов подпрограммы
Разработчики ZX Spectrum Next пошли еще дальше в с маразмом в системе команд процессора Z80N.
Z80N это что за чудо, где о нем почитать?
В Z80 и сделали относительный переход +127 -128, и меньше двух байт его не сделаешь, а делать сверхкороткий относительный переход нет смысла из-за нерационального расхода оптокодов.Речь не про Z80, а про 8080. Конечно в z80 вставлять сверхкороткий относительный переход некуда уже было, а вот в i8080 вместо условных коллов вполне. Как вариант, можно было сделать условный джамп на 1 инструкцию (1-4 байта) или просто префикс условного выполнения.
Необходимость относительного перехода -32768...+32768 вызывает сомнение т.к. 64 кб можно улететь не туда куда надо из-за арифметики.это проблемы программиста.
Косвенный (короткий) вызов подпрограммы, теоретически возможен,, но на практике будет медленнее чем обычный вызов подпрограммыкосвенный нужен, если адрес подрограммы вычисляется. Сейчас call hl реализуется либо через push+jp (hl) или через call __call_hl.
А про z80n можно почитать в вике на сайте zx spectrum next.
Речь не про Z80, а про 8080. Конечно в z80 вставлять сверхкороткий относительный переход некуда уже было, а вот в i8080 вместо условных коллов вполне.
Так создатели Z80 и поправили несправедливость сделав короткий переход по смещению. Почему не сделали это в 8085? Кто его знает…
Как вариант, можно было сделать условный джамп на 1 инструкцию (1-4 байта) или просто префикс условного выполнения.
Ну тут пригодился бы REP (команда повторения) с условием на различное количество команд 1/2/4/8.
А префикс исполнения — это у нас ARM получается.
это проблемы программиста.
Ну мы же не шерифы, и должны думать об индейцах.
косвенный нужен, если адрес подрограммы вычисляется. Сейчас call hl реализуется либо через push+jp (hl) или через call __call_hl.
Теперь понял о чем речь, обознался, извините.
А про z80n можно почитать в вике на сайте zx spectrum next.
Т.е. это софткорка на ПЛИСине? Тогда логику ломающих совместимость не понимаю. А так туда можно было запихать хоть ММХ для Z80 :)
Ну тут пригодился бы REP (команда повторения) с условием на различное количество команд 1/2/4/8.REP сложнее реализовать.
А префикс исполнения — это у нас ARM получается.Ну если только thumb2. В ARMv4 там у каждой инструкции было поле для условия (неразумное решение, имхо).
Ну мы же не шерифы, и должны думать об индейцах.ну разработчики i8080 не думали же о том, как обезопасить программистов от call 0 или call 65535. Так же и тут. У арма, например, основная масса переходов — относительные. И это мне нравится! Кстати, линк регистр тоже классная штука. Вообще, в thumb2 очень много красивых инструкций, например, ITE.
Т.е. это софткорка на ПЛИСине? Тогда логику ломающих совместимость не понимаю. А так туда можно было запихать хоть ММХ для Z80 :)Там с совместимостью проблем нет (она полностью сохранена). Там с головой разработчиков проблемы. Если бы они использовали стандартный для z80 подход к проектированию набора инструкций, то логики на новые инструкции ушло бы меньше. Гимору разработчикам компиляторов тоже. Ну вот зачем было у push nn хранить данные в обратном порядке?!? Все равно она сначала считает во временный 16-ти битный регистр, а потом уже запушит его в стек. Они думали, что проц будет читать побайтно?!? ХА! В классическом z80 даже этот временный регистр есть, если память не изменяет, WZ называется (он недоступен программно). Кроме того, полная длина инструкции push nn 4 байта (2 опкод и 2 данные), это тоже самое, что ld rr,nn; push rr!!! Кроме того, даже по скорости выигрыш максимум в 1 такт. Не стоит оно того.
REP сложнее реализовать.
Почему сложнее? Встречаем REP,
заполняем очередь команд из N операций которые хочет обработать REP. Потом проверяем условие, если оно выполняется бежим по очереди без чтения команд из памяти. По достижению последней команды в очереди переходим на первую, проверяем условие условие, если исполняется повторяем, в противном случае приращиваем IP длину очереди плюс один. Вот как-то так вчерне, да тут есть вопросы по обработке прерываний, возможном наличии переходов и вызовов в блоке REP, и т.д.
Ну если только thumb2. В ARMv4 там у каждой инструкции было поле для условия (неразумное решение, имхо).
Для RISC процессора вполне нормально
ну разработчики i8080 не думали же о том, как обезопасить программистов от call 0 или call 65535.
В CP/M Call 0 — это перезагрузка ;)
Call 0xFFFF сложнее, но в 90% это будет перезагрузка
Там с совместимостью проблем нет (она полностью сохранена). Там с головой разработчиков проблемы. Если бы они использовали стандартный для z80 подход к проектированию набора инструкций, то логики на новые инструкции ушло бы меньше.
Что тут сказать «Они так видят»;)
На самом деле очень сложно дополнять систему команд процессора не имея TRAP Illegal operation и команды ESCape. жаль что в Z80 не было ни того не другого
На самом деле у Z80 и i8080 только совместимая система команд
Да и то не полностью. У 8080 флаг четности это всегда флаг четности, у Z80 это флаг четности/переполнения. Это нужно учитывать при использовании арифметических операций.
Его использовали и в качестве микропроцессора музыкальных инструментов (например, легендарной MIDI-клавиатуры Prophet-5)
Prophet-5 это все же полифонический аналоговый синтезатор, а не просто MIDI-клавиатура.
Ну где такое есть для MIPS или Alpha?
68k — Amiga, Mac, Next, Atari, Sun (рабочие станции), Sega Megadrive, игровые автоматы
6502 — PET, C64, NES, Apple I/II
Z80 — ZX-Spectrum, MSX, Amstrad, Atari, Калькуляторы TI, Gameboy
x86 — IBM PC
ARM, хоть и имел высокую производительность, был только в Acorn Archimedes и не снискал особого успеха в 80е. Знали бы инженеры что они захватят мир через пару десятилетий ;)
Big Iron и станции за десятки тысяч долларов это другая история, хотя MIPS/Alpha процессоры революционные были, конечно.
пространства ввода вывода
Речь про порты?
Написал эмулятор спектрума на асме ibm.
После запуска он даже работал, что удивительно.
Не Спектрумом единым — целое поколение наших программистов выросло на учебных классах компьютеров Yamaha MSX и MSX2, сердцем которых был Z80.
Бейсик — да. А паскаль чей был, не помню. У меня ПО грузилось с магнитофонной ленты. Использовала старый папин магнитофон с вырубленным шумоподавителем. В комплекте к компу шла кассета со служебными прогами. В числе прочего был там и Паскаль. Это был год 90-91-й примерно.
Когда я об этом прочитал, используя свой смартфон, которому порой недостаточно 6Гб оперативки и 128Гб ROM, а от одной зарядки он едва доживает до вечера, то захотелось заплакать.Потому что во многих приложениях модулей аналитики, телеметрии и вставки рекламы (которую они, к слову, качают из инета, что её больше садит батарею) больше, чем модулей выполняющих основные функции приложения (не у всех приложений так, но у большинства — точно).
Если поставить фаервол, заблочить все ненужные пользователю активности (я обычно блочу также сервисы, ресиверы и провайдеры через MyAndroidTools), то смарт будет работать ощутимо дольше от одной зарядки. Только для этого сначала нужно получить рут, что для некоторых уже является непреодолимым препятствием (не всегда из-за заблокированного производителем загрузчика). Ещё есть отдельные темы по разным устройствам на форуме 4PDA, где пользователи обсуждают автономность своих устройств и как её увеличить.
Списки мусора в прогах можно посмотреть в этой теме на 4PDA, например.
Когда читаю на телефоне тот же Хабре и часто просто страницы в браузере нехило тормозит… Уж не говорю о попытках открыть комментарии к статье, когда их число более 250-300.На ПК открытие страницы с несколькими сотнями комментариев тоже неплохо процессор нагружает.
Даже просто эта отрытая и загруженная нагружает периодически до 25% (с 1.5к уже легко 100% держит, только я не понял это на одно ядро диспетчер задач браузера показывает или как, т.к. в этот момент Process Explorer только 25% показывает) мой Core i5-2500, хотя что там может выполняться? Глянул вкладку Perfomance в DevTools Оперы — больше всего времени тратится на обработку событий мыши.
![](https://habrastorage.org/webt/q-/ex/wb/q-exwb8bfnblksjxczkpomjg8d4.png)
Разработка SymbOS изначально была экспериментом, имеющим целью выяснение возможности реализации многозадачной операционной системы с графическим пользовательским интерфейсом на 8-разрядном компьютере 1985-го года выпуска. Существование операционной системы GEOS также оказало влияние, однако структура и возможности SymbOS не имеют сходства с этой системой. Релиз 2006 года показал, что подобная система, «Windows в миниатюре», может существовать на бытовом компьютере 20-летней давности только лишь с количественными ограничениями. SymbOS является одним из самых больших программных ретрокомпьютерных проектов последних лет. Одной из целью проекта являлось обеспечение (в том числе, с помощью различных аппаратных расширений) возможности организации процесса работы с системой, аналогичного современным PC
Micro kernel
Maximum amount of supported RAM 1024 KB
Maximum number of processes 32
Number of different process priorities 9
Maximum number of timers 32
Maximum number of open messages 64
System manager
Maximum number of applications 24
Maximum application core size 63 KB
Desktop manager
Maximum number of windows 32
Maximum number of controls per window 1000
Maximum possible screen resolution 32.000 x 32.000 pixel
File manager
Maximum hard disc size 2 TeraByte
Maximum file size 2 GB
Maximum number of devices 8
Maximum number of open files 7
Source code
Source code size (OS Release 2.1) ~ 49.000 lines (1,5MB)
Source code size (Applications) ~ 70.000 lines (2,2MB)
Total size of the Z80 source code ~ 119.000 lines (3,7MB)
Supported platforms
Amstrad CPC-464,664,6128,464+,6128+ Yes
CPC-TREX, C-ONE Yes
MSX2, MSX2+, MSX TurboR, OCM Yes
MSX1 with Graphics 9000 (V9990) Yes
Amstrad PCW 8xxx, 9xxx, PcW10 Yes
Enterprise 64, Enterprise 128 Yes
Так что это не ОСь неповоротливая, а её приложения неоптимизированны.
Мы как-то на КУВТ-2 запускали какую-то оконную многозадачную ось… Не помню уже название и для MSX какого производитяля она предназначалась.
Не помню такого. Наверное это всетаки это с MSXTurbo (с R800) шло?
Быстрее, чем полуось на 286-м PS/2 c 20 мегабайтами жесткого диска и VGA.
Ну Пополама первых версий я только в книжках видел. Но на варпе проработал несколько лет.
А винчестеры… по слухам они для MSX существовали, но живьем их никто не видел. Да и денег таких у студентов в конце 80-х, естественно, не было.
Они были, только их цена была мягко говоря кусучей, винт стоил как целый класс
Thales RG-7xxx на Z80 был.
Банковский HSM однако.
Zilog Z-80 — Бессмертный восьмидесятник