С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Уже ж давал ссылку, http://www.qsl.net/rw6hrm/html/8bitdisp.htm . Полностью поддерживается оригинал, http://searle.hostei.com/grant/Monit...ard/index.html , только на восьмибитной шине.
Ладно, я тут кратенько набросал своё видение ТЗ компа для СР/М. Личное имхо, можете не соглашаться. Потихоньку и неспешно часть из описанного реализую тут, http://www.qsl.net/rw6hrm/html/z80.htm
1. Процессор. Четыре варианта, на выбор.
1.1. 8080. Базовая версия, под которую возможен запуск по меньшей мере половины наработанного ПО. Медленный (хотя кому как), разгон невозможен.
1.2. 8085. Такая же базовая программная версия (ПО только для 8080), но поскоростнее предшественника.
1.3. Z80. Всё наработанное ПО может быть запущено (с учётом остального железа ессно). Такт до 20 МГц (также с оглядкой на железо). Много готовых драйверов для стандартного железа. Самый оптимальный выбор для новоделов.
1.4. 6502 в симуляции 8080. На любителя. Программная модель 8080 (плюс ПО для 6502), скорость работы примерно аналогичная. Для попробовать и и для модернизации готовых контроллеров, если нет желание ваять что-то новое. Недостаток - порты в/в, отображённые на память и зарезервированные ячейки в верхних адресах, что уменьшает доступную память. Хотя есть грязный хак, позволяющий использовать адресацию портов в/в и неиспользуемых ячеек в ПЗУ.
1.5. Более старшие контроллеры на базе описанных выше пп 1.1 - 1.3. Нужно сверяться с даташитом, могут вылезти проблемы недостатка памяти.
2. ОЗУ/ПЗУ.
2.1. В ПЗУ только загрузчик в начальных адресах, отключается после загрузки ОС, отдавая всю доступную память. Возможно динамическое питание.
2.2. ОЗУ 64К минимум. Лучший по энергетике вариант - одним чипом 64К (кэш древних материнок) или два чипа по 32К. Делать страницы/банки - смысла нет, поскольку мало использующих это программ. Конечно, если кто-то использует базы данных, то дополнительные 512К один чипом не помешают в качестве РАМ-диска для увеличения скорости работы; для удобства из лучше переключать страницами по 16К. Но, поскольку таких извращенцев мало, доп. страницы или РАМ-диск есть блажь. Использование динамического ОЗУ возможно, но по энергетике и обвязке неинтересно, разве что готовый блок от чего-либо использовать.
3. Ввод/вывод.
3.1 Только и исключительно как порты ввода/вывода для увеличения доступного ОЗУ. По той же причине отдавать ОЗУ под экранную область нет никакого смысла - это и уменьшение ОЗУ, и уменьшение скорости работы устройства.
3.2. В продолжение разговора о выводе на экран. Графический экран также блажь. Программ под графику минимум, соответственно ориентироваться на них нет смысла, для графики есть другие машины. Процессор должен выкинуть инфу в порт, а что происходит далее его не должно интересовать. Чтение из области экрана также мало кому нужно, поэтому можно пренебречь. Железо: на настоящее время оптимальным является не сборка на рассыпухе, а применение однокристальных чипов типа Атмеги. Разработок на любой вкус, как чисто текстовых, так и с ограниченной поддержкой графики, достаточно. Подключение может быть как терминальное (через СОМ-порт для простых машин или в процессе наладки), так и встроенное, но с терминальной программной моделью. Как особое имхо оговорю, что для начала лучше использовать композитный вывод, чем на ВГА. Оно как-то проще и чаще встречается.
3.3. СОМ-порт обязателен, чисто для связи с внешним миром. Можем подключить модем, старшую машину или такой же простой контроллер для обмена информацией. Если экранный вывод не встроенный, то наличие второго СОМ-порта также возможно. Достаточно использовать одну стандартную скорость, к примеру, 9600; хотя выбор скоростей будет только приветствоваться.
3.4. Носители. В настоящее время делать совместимость по носителям нет никакого смысла, поскольку обмен информацией через носители между машинками такого класса никогда осуществляться не будет, для обмена инфой есть СОМ-порт. Тут, конечно, каждый может применить то, что у него есть: дисководы (есть много программных драйверов под известные чипы и железо целиком), флеш-карты любого типа. Для меня оптимумом оказался выбор CF-карт, поскольку и подключается просто, и заменяется на HDD, и готовые драйвера под Z80 есть. Хотя кому-то проще использовать SD/ММC, но драйвера под них ещё писать надо. Есть вариант чипа с восьмибитной шины на носители USB, но опять же, программных драйверов нет. Для желающих иметь копии длительного хранения можно посоветовать наличие магнитофонного узла. Он может быть как программный (легко слизать из ЮТ-88 как железо, так и п/п в/в), так и железный, как довесок к СОМ-порту. В последнем случае возможна запись на ленту как в преобразованном аналоговом виде (канзасский стандарт, NRZ, скорость до 2400), так и в прямом цифровом (direct saturation, скорость до 9600).
РОМ-диск с системными программами также возможен, ибо ПЗУ необходимого объёма (512К и выше) легко доступны из трупов современных машин.
3.5. Клавиатура. Идеальный вариант - ASCII-ввод. Можно сделать ASCII-клаву полность самостоятельно, либо использовать Apple][-переходник с PS/2. Почему идеальный - процессор особо не занимается, по прерыванию он просто считывает введённый байт и продолжает заниматься своим делом. Можно использовать и программную модель, подключая PS/2-клаву через УАРТ с внешней синхронизацией (надеюсь, что товарищ Xrust поделится с нами результатами своиз опытов), либо через небольшой переходник на рассыпухе (используйте поиск в "Разном"). Тут уж процессору придётся чуток поработать для определения кода нажатой клавиши, а также программно определять, на каком языке мы пытаемся с ним разговаривать.
Кстати о "языке", то бишь о кодировке. Базовый вариант СР/М общается с нами только латиницей и кириллицу не розумиет. Нам повезло, что наличие кириллицы важно только в устройствах ввода/вывода, соответственно можно прошить нужный нам знакогенератор в терминале и нужную таблицу для клавиатуры. Для текстовой совместимости со старшими машинами предлагаю (уже не в первый раз) кодировку СР866 (альтернативную). Про всякие КОИ-хх забыть как о страшном сне. Обращу внимание - речь идёт о новоделах, а не реанимировании трупов типа "Специалиста" к новым реалиям.
3.6. Звук. Вот тут фиг его знает, вроде бы как на начальном уровне и не нужен.
3.7. Прочие порты, в т.ч. параллельный. В начальной конфигурации не обязателен, если только не подключаем к нему SD/ММC или картридж в виде РОМ-диска. Наличие ВИ53 в виде отдельного порта будет полезным как для реализации переключения скоростей п. 3.3, так и для звука п.3.6.
4. Конструктив. Тут на любителя однозначно. Можно сразу забульбенить одноплатную машинку, но это в том случае, если мы однозначно гарантируем её полную работоспособность после сборки и мы не будем эту плату в последующем раширять. Для остальных можно рекомендовать использование шины S-100. Это позволит раскидать машинку на отдельные блоки, в последующем из модернизировать или расширять конфиг на все случаи жизни, в том числе делать много процессорные системы.
Это кратко.
ойвэй. у Enterprise128 и у Амстрада 4 по 16К. Все подключаются по-разному и никому это не мешает.
- - - Добавлено - - -
терминальное мышление. Не проще ли сделать текстовый режим и простой режим? у Amstrad PCW все через графический режим, тормозно и ужасно.
- - - Добавлено - - -
к чему такие сложности?
- - - Добавлено - - -
все зависит от ПО.
Ну МР/М мы запускать не будем, а вообще обычная связка мастер-слейв, о чём нам говорил barsik, более чем привычная народу из начала 90-х.
Эм... а чем они различаются?
Один ПИК, какие там сложности, http://knzl.de/ps2-keyboard-for-apple-ii/
От ПО тоже ничего не зависит. Хотите сказать, что есть что-то русскоязычное, на что следует обратить внимание? Все наши проги есть адаптации зарубежных к конкретному железу. Общались мы с автором Микро-80/Р-86 товарищем Поповым, с его слов, какая кодировка есть в терминале, такая будет и в СР/М-машине.
Кстати о ПО - большинство зарубежного ПО рассчитано на работу с семибитной таблицей символов. В некоторых программах (редко, но есть) восьмой бит является служебным. Поэтому я и ратую за наличие зачатков кодировки именно в УВВ, а не в ПО. Это более универсально, даёт нам возможность не кромсать и не "адаптировать" имеющийся софт для работы, а просто выбрать нужный и не особо требовательный к железу.
Да я же и говорю, что
или то, что есть в волшебных ящичках под столом. Или кому хочется траходрома с разводкой кучи м/с памяти вместо одной-единственной. Хотя если использовать шину S100, то ОЗУ всё равно желательно ставить на отдельную плату и разновесёло с ней забавляться.
Кароч говоря, каждый, при наличии желания, может собрать свою машинку. У кого амбиции преобладают над желаниями, должны думать и о других на тему лёгкости повторения (разводки платы, доставания комплектухи). У кого амбиции и желания зашкаливают, могут сделать сразу максимально возможный вариант, но, кмк, надо сначала делать минимальный рабочий вариант, только после этого фаршируя его дополнениями.
- - - Добавлено - - -
Не спорю. Чем проще в реализации (программной и железной), тем лучше. Я ленив![]()
С КР580 ещё может быть, а вот с Z80, который сам регенерирует ОЗУ, и на непредельных частотах их применять вполне оправдано. Да и по энергетике динамические ОЗУ жрут большой ток только в момент когда /CAS равен 0, а без этого они жрут мало. Средний ток потребления при непредельной частоте - на уровне обычных TTL. Если надо оверклочить CPU на 5 МГЦ и выше, то следует применять скоростные SIMM, а не РУ5 или РУ7Сообщение от rw6hrm
Подавляющее большинство CPU в мире не имеют команд IN/OUT. Это извращение от инженеров Intel, - просто ненужное усложнение системы команд, вызывающее бесполезный расход деталей. IN/OUT ввели лишь для того, чтобы убедить клиента, что этот процессор "круче". И если портов меньше, чем пальцев на руке, то так ли уж сильно сократит это адресное пространство. Кроме того команда LD с адресацией через HL вдвое быстрее, чем IN/OUT.Сообщение от rw6hrm
Встречный вопрос. Мы что живём в середине 70-тых, когда ещё никто не слышал о цвете и графике, а нортон и окна на экране ещё не были изобретены. На кой хрен нужна система, к которой Вы не сможете написать свой красивый нортон и будете вынужденно заменять его POWER-ом? Может быть Вы и псевдографику и инверсию знакомест объявите блажью?Сообщение от rw6hrm
Насчёт затраты адресного пространства. Кто мешает, как во "Львове" сделать экран программно включаемый в адресное пространство только когда нужно делать вывод на экран. А для чего не хватит скорости? Да пока Вы передаёте по тормозному последовательному интерфейсу один символ, программно можно вывести на экран 100 символов. Какое тут ускорение?Сообщение от rw6hrm
Вообще идея терминала в компьютере, где хоть что-то говорят о скорости - нонсенс. Вы потому и не хотите иметь графику, потому что в идее терминала по последовательному интерфейсу она фатально тормозит. Терминал в оригинале это АЦПУ (клавиатура плюс принтер). Устройства TTY применяли в 50-тые и 60-тые и там скорость передачи была 75-110 бод. А в начале 70-х в моду вошли терминалы с текстовым дисплеем, отчего скорость подняли аж до 300 бод (а это целых 40 символов в секунду). И всем этого хватало. Даже тем, кто работал из дома по телефонной линии с майн-фреймом. Цитата: "In 1975, the 110 Bods ASR33 Teletype®, with automatic reader and punch options, was the most frequently used terminal". И только когда, уже в начале 80-тых, появились первые телефонные сети и BBS, и понадобилась скорость, то скорость последовательного интерфейса довели до физического предела модема для ТЛФ-линии в 2400 бод (это предел при тональном кодировании, многочастотные методы уже в 90-тые подняли этот предел до 14.400 и выше).
И кроме того к ЭВМ подключался не один терминал, а десятки и сотни. Так к VAX подключалось несколько компьютерных залов, в каждом из которых было по 25-30 машин. Вот откуда взялись и почему использовались терминалы. А сколько терминалов будет подключаться к Вашей машине?
Когда пришли микропроцессоры в 1974-ом, то по инерции поначалу также применяли терминалы. Т.к они уже просто имелись в наличии. Но когда Стив Возняк в начале 1976 показал, что гораздо удобнее иметь экран встроенный внутрь компьютера, то идея терминала в применении к ПК умерла в одночасье. Ни одного народного компьютера с терминалом после 1976 не появилось. Терминал удобен лишь как вспомогательное средство (его оставили даже в MSDOS).
Насчёт альтернативной кодировки я высказался в начале темы. При желании можно сделать плавающую кодировку. Для этого достаточно ввести флаг кодировки. Тогда вывод производится в соответствии с включённой кодировкой, а в п/п-мме CONIN д.быть автоматическая перекодировка.
Последний раз редактировалось barsik; 20.07.2017 в 01:16.
Просьба - прочитайте внимательно мои последние посты и найдите, где я там хоть что-то говорил о последовательном интерфейсе применительно к видеовыводу (исключая ссылки на чужие конструкции). Больше повторяться не буду. Мышление - да, терминальное. Но по параллельному интерфейсу. И с частичной поддержкой графики, кстати. Ссылки в предыдущих постах.
Не надо передёргивать. Нет программ - незачем выпендриваться с графикой. Писать новые никто не будет.
Да ради Дога, повторюсь: кому хочется испытать эротику с разводкой восьми (минимум) корпусов - оно пожалуйста. Но что-то никто не горит особым желанием хотя бы один корпус развести (или хотя бы поделиться свежими наработками). Только товарищ Xrust потихоньку проводит программные и аппаратные экзерсисы.
Никаких проблем. В связи с тем, что если какой-либо новодел и будет внезапно собран, то он останется в пользовании самого автора, который сам будет решать, каким образом результаты его работы будут совместимы с чем-либо ещё.
...угу, и это "подавляющее большинство" не работает под СР/М. И список из ныне живущих начинается и оканчивается на 6502 (включая клоны и прародителя).
Ой. Вы, наверное, давно не интересовались существующим для СР/М софтом. Аналог NC уже есть (и не один, кстати), и он прекрасно работает на псевдографике, как и его бессмертный прародитель. Даже в цвете, синеньком таком. И PIP-ом открыто можно больше не пользоваться. Хотя лично мне консоли хватает выше крыши.
...не хочу никого обидеть, но просто давайте положим руки на интимные/нежные части наших тел и признаем: вся эта ветка есть не более чем обычный разговорный шум. Делать СР/М-совместимую машинку если кто и будет, то чисто из-за спортивного интереса, а не для работы, как это было лет тридцать назад. Поэтому обсуждать что надо или не надо можно до бесконечности, в любом случае делаться всё будет только и исключительно исходя из подножного корма/подстольных запасов. А уж про написание программ - извините дважды. Они уже все написаны. Хотя никто не запрещает, также исходя из спортивного интереса, написать что-то свежее.
Я высказался. Спасибо.
Как по мне - приятное извращение. ))) Расход деталей - такой же как и при адресации УВВ как ячейки памяти.
Встречный вопрос - "На кой хрен нужна система", где я должен еще что-то дописывать, кроме драйверов? Не забывайте, что разговор идет о CP/M. Лично меня устраивает весь набор софта, что есть и переделывать его нет никакого желания. Я сделал CP/M машинку как девборду для опробования программных и схемных решений, т.е. есть основная плата с процессором, памятью, последовательным портом (терминал) и жестким диском к которой подключается кросс-плата, в которую я планирую "тыкать" всякую всячину для исследований. Для всего этого вполне хватает стандартного вида CP/M и ассемблера.
Тут не понял. Отрисовка 100 символов 5х7 в памяти будет быстрее одной "извращенной" команды OUT!?
100%! Как я уже написАл выше, если использовать такую машинку для собственных нужд, то терминала хватает с головой! И никакой графики не нужно, разве что, если очень нужно вывести какой-то график или картинку, можно использовать как внешнее устройство ISA карточку или графический дисплей, коих сейчас в продаже не мерено и на любое разрешение.
---------------
удалил дубль
чет задвоилось сообщение...
Последний раз редактировалось Alex_LG; 19.07.2017 в 21:28.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)