Важная информация

User Tag List

Страница 9 из 30 ПерваяПервая ... 5678910111213 ... ПоследняяПоследняя
Показано с 81 по 90 из 292

Тема: Компьютер для CP/M. Формулировка ТЗ.

  1. #81
    Banned
    Регистрация
    05.10.2016
    Адрес
    г. Санкт-Петербург
    Сообщений
    1,080
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    5
    Поблагодарили
    5 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Xrust
    Вы невнимательно читаете мои сообщения. Я же писал, что это макетка просто чтобы руку набить
    Извиняюсь, но всё-же не упомнишь. Я подумал, что это конечная плата для CP/M, к которой остаётся лишь добавить массовую память (привод из НГМД, винта или CF-флэш-диска) и подключить по линии внешний терминал на 9600. Зря поставили панельку для статики на 2 кб, лучше бы панельку на 28 ног (чтобы после поставить две 62256 в 2 этажа) или ОЗУ w24257/w24512. Теперь я понял, что Вы делаете просто контроллер, а это тоже полезная вещь, если его грамотно использовать.

    Цитата Сообщение от Xrust
    посоветуйте методику отладки подобной платы
    Методика отладки всех устройств с микропроцессорами одинаковая. Отлаживать маленькие контроллеры проще, чем компьютеры. А для экспериментов лучше бы применили Z80, к нему гораздо меньшая "обвязка" (фактически лишь ЛН1 и ИД7). Первый контроллер спаял на КР580 в 1989. И ещё два контроллера спаял в 90-тые используя SU800 (это Z80 жрущий очень мало тока). Это просто Z80 ядро с ПЗУ РФ2 и ОЗУ 1 кб на КМОП 6514 (купил их 20 штук в начале 90-тых, удобны для МК). Общее число ИМС в контроллере на Z80 смехотворно мало. ЛН1 - генератор с кварцем 3.548 МГЦ, ИД7 - дешифратор для ОЗУ, ПЗУ и КМОП ППА 82С55. Т.к все детали маложрущие, то такой контроллер жрёт менее 20 мА и от автомобильного акумулятора на 6 вольт работает месяц.

    Обычно столь простые контроллеры работают сразу. Ещё от отладки ИРИШИ в 80-тые у меня сохранился отладочный стенд (это удобный пошагиватель с HEX-индикаторами на шину адреса и данных), - схема есть в красной книге. Таким пошагивателем было удобно отлаживать платы СПЕЦИАЛИСТА и ОРИОНА. После спайки контроллера я делал так. Прошиваю тестовое ПЗУ, которое издает BEEP на динамик, тестирует ОЗУ и также индицирует его исправность звуком (это особенно удобно, если стоит ВИ53). Если тест в ПЗУ у Вас не запустился, то придётся применить пошагиватель для ОРИОНА (ж.РАДИО 05.1990).

    Кстати, где Вы возъмёте такт для ВВ51, если не поставили ВИ53. Он идёт в комплекте с ВВ51, т.к иначе не получить совместимый стандартный протокол. А вот насчёт ВВ51 я ничего не могу посоветовать. Я их никогда не использовал, т.к слишком ленив, потому всегда использовал программную последовательную передачу.

    о программном последовательном инртерфейсе, без ВВ51


    Последовательная передача прекрасно эмулируется программно. Есть у меня свой фазовый протокол, который даёт скорость более 10 кб в секунду. Но последние 15 лет я использовал другой протокол - короткий нулевой импульс это 0, а втрое более длинный импульс это 1. Это сделано для машин, что не работают в реальном времени из-за прерываний (в частности IBM PC).

    Вначале передаем пилотон из длинных импульсов (по ним приёмная строна автоматически настраивается, определяет константу). Далее в линию идёт традиционный синхробайт E6 и далее уже передаваемые байты. На двух мегагерцовой машине (без WAIT и ПДП) достигается скорость передачи 4 кб в секунду, что соответствует 4*1024*8= 32768 бод. Если же у Вас Z80 на 3.75 МГЦ, то скорость передачи вдвое быстрее - 65 Кбод. Ну и скажите, какой смысл тогда в использовании ВВ51, если он рассчитан на скорость передачи лишь в 9600 бод (при оверклоке может и 19200). Только пайки намного больше, расход деталей больше, программирования больше, а выигрыша никакого. К сожалению, такой протокол передачи прекрасно и быстро работает на нормальных машинах без прерываний, а вот с IBM PC проблема.

    IBM PC не может программно формировать короткие импульсы нужной длительности (и программно замерять длительность коротких импульсов при приёме). Если лень добавлять аппаратуру, то приходится фатально снижать скорость передачи до жалких 150 байт в секунду (это скорость обмена с магнитофоном). Но добавив два одновибратора на 1533ТМ2 (можно и АГ3, но это хуже), это проблема частично (на передачу) решается. Тогда из параллельного интерфейса принтера IBM PC выводятся два сигнала, по переднему фронту которых стартуют одновибраторы. Тогда прерывания в IBM PC не вредят длительности импульсов (даже если прерывание в IBM PC захватит CPU на час, передача не исказится). Скорость передачи от IBM PC достигает 1 кб в секунду, а вот в обратную сторону скорость приёма 150 байт в секунду. Эти протоколы я использовал для обмена между ОРИОНОМ и IBM PC. Недавно я применил более скоростной протокол (отдельная линия для 0 и для 1 и линия готовности), на котором достигается скорость передачи до 4 кб/сек (32 Кбод), без аппаратуры, весь расход деталей только провода. Однако, если на Вашей PC нет выхода на параллельный принтер, то придётся использовать стандартный RS232.

    Параллельный принтер, позволяет расширить возможности IBM PC. В современный PC не поставишь самодельную платку с ППА (слишком мизерный шаг в слоте и слишком быстрая скорость в шине). Тогда ставим на выходе параллельного интерфейса (разъём 25 контактов) простейший контроллер на Z80, который описан выше. Тогда IBM PC по однопроводному интерфейсу (описанному выше) выдает команды этому контроллеру, например, - вывести такой-то байт в конкретный порт ППА. И Z80 это выполняет. В результате УФ-программатор можно подключать к IBM PC, причём без всяких вторжений в IBM PC.

    Кстати, вот для этого и нужен простейший контроллер на Z80. И именно на Z80, т.к загружая в него из IBM PC программу мы получаем универсальный контроллер, который может делать всё что угодно в рамках своего быстродействия. Например, когда этот контроллер не используется, он работает как обычные часы (в Z80 контроллер загружается программа часов).

    PS. А ВВ51 нужен в системе. Но не для создания линии связи, а для подключения мыши. Тут без этого не обойтись. Хотя для текстовой машины обычно мышь не используют.
    [свернуть]
    Последний раз редактировалось barsik; 24.06.2017 в 06:13.

  2. #82
    Master
    Регистрация
    15.02.2015
    Адрес
    г. Могилёв, Беларусь
    Сообщений
    835
    Спасибо Благодарностей отдано 
    12
    Спасибо Благодарностей получено 
    98
    Поблагодарили
    65 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от barsik Посмотреть сообщение
    Это только в UNIX ошибки идут в отдельный канал. А что это за дурное СИ, если оно так неудобно.
    БАРСИК, ты рубишь фишку.
    ¡Un momento, señor fiscal!


  3. #83
    Master Аватар для Xrust
    Регистрация
    12.04.2017
    Адрес
    г. Тольятти
    Сообщений
    906
    Спасибо Благодарностей отдано 
    204
    Спасибо Благодарностей получено 
    145
    Поблагодарили
    68 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    barsik, Z80 тоже своей очереди дождется. Просто всегда хотелось с 580 повозиться. Нереализованная мечта детства, если хотите. Рационально это объяснить невозможно
    Панельку под ОЗУ, при необходимости, тоже можно переделать. Место под еще 4 контакта там есть. Тем более, это не цельная панелька, а обломки от линейки на 40 контактов. Но я не планирую ставить конкретно на эту плату много памяти. Я уже писал, что в перспективе хочу сделать максимально универсальную систему, чтобы можно было воткнуть как минимум 8080, 8085, z80. Если хватит терпения, то и 8088 и возможно даже что-то еще. Вопрос в том, как обеспечить совместимость всему этому хозяйству. Придется как-то приводить весь этот зоопарк к "общему знаменателю". Как по мне, то задача очень интересная. А эта плата чисто промежуточный этап.
    Теперь по вв51 и ви53. Чтобы не усложнять, решил взять такт для вв51 поделив такт процессора на 16. Для этого кварц использую на 22.1184МГц. А ви53 меня пока что пугает, хотя место под нее и осталось.
    Последний раз редактировалось Xrust; 24.06.2017 в 06:47.

  4. #84
    Moderator
    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,577
    Спасибо Благодарностей отдано 
    61
    Спасибо Благодарностей получено 
    106
    Поблагодарили
    92 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Smalovsky Посмотреть сообщение
    Сообщение от barsik Посмотреть сообщение
    Это только в UNIX ошибки идут в отдельный канал. А что это за дурное СИ, если оно так неудобно.
    БАРСИК, ты рубишь фишку.
    Какая разница как оно реализовано в Unix? Unix на Z80 из всех участников благородного собрания есть только у меня, и с моей стороны было не честно добавлять это в сравнение. Да, там я могу перенаправлять вывод куда угодно. Что до вывода разного рода информации в файлы, используемые мной компиляторы выводят в файлы разного рода информацию на этапе отладки являющуюся лишней - разного рода таблицы символьных меток, хексы, промежуточные ассемблерные выхлопы (в случае С) и прочее. Возможно туда же попадут и ошибки (первое что интересует), но сортировать эту помойку дополнительно запуская редакторы/просмотрщики (да не дай бог на тормозном реале под CP/M)... зачем? Когда для этого же мне достаточно на РС шевельнуть колесом прокрутки мыши пролистав экранный буфер терминала где только ошибки (из которых вообще интересует обычно несколько первых из всей простыни). Ох, опять я ввязался в дебаты с теоретиками, погонят за офтоп ссаными тряпками.

    - - - Добавлено - - -

    Кстати, просто в порядке hint - ЕМНИП microshell2 даже в версии для CP/M 2.2 помимо прочих вкусностей, умеет перенаправлять ввод-вывод и можно получить файл с только ошибками без прочего лишнего. Но она уменьшает TPA на размер своей "присадки", что плохо для компиляторов (в особенности для C).
    Лучше сделать и жалеть, чем не сделать и жалеть.

    Некоторые из моих поделок тут: https://github.com/serge-404

  5. #85
    Master Аватар для Xrust
    Регистрация
    12.04.2017
    Адрес
    г. Тольятти
    Сообщений
    906
    Спасибо Благодарностей отдано 
    204
    Спасибо Благодарностей получено 
    145
    Поблагодарили
    68 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    И вот ещё вопрос. Подключу я, допустим CF в качестве внешней памяти. Какие-нибудь стандарты на формат записи на этот носитель есть? FAT16, я чую, будет слишком громоздким. Я так понимаю, в "то время" на винт писали кто во что горазд? А сейчас как лучше сделать?

  6. #86
    Guru
    Регистрация
    16.12.2008
    Адрес
    Kharkov, Ukraina
    Сообщений
    2,221
    Спасибо Благодарностей отдано 
    4
    Спасибо Благодарностей получено 
    21
    Поблагодарили
    18 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Ну не знаю, у htc сp/m по умолчанию определены три канала (файла).
    Код:
    struct fcb	_fcb[MAXFILE] =
    {
    	{ FILL, U_CON },	/* stdin */
    	{ FILL, U_CON },	/* stdout */
    	{ FILL, U_CON },	/* stderr */
    };
    Эти же каналы использует сам компилятор. Другой вопрос что с этим делать самой сp/m.

    Цитата Сообщение от Xrust Посмотреть сообщение
    И вот ещё вопрос. Подключу я, допустим CF в качестве внешней памяти. Какие-нибудь стандарты на формат записи на этот носитель есть? FAT16, я чую, будет слишком громоздким. Я так понимаю, в "то время" на винт писали кто во что горазд? А сейчас как лучше сделать?
    Тут с файловой системой каждый определяется сам. Можно использовать файловую систему СP/M, MSX(MS)-DOS или что то третье. FAT16 тяжеловата для i8080 (z80), много математики. Хотя и FAT16 с тормозами будет работать. А вот FAT12 в самый раз.

    Видимо файловую систему определяет операционная система. Вряд ли вы возьметесь на старте писать свою ОС.

    - - - Добавлено - - -

    I8080 сильно ограничивает варианты для выбора. Основная масса примеров в инете рассчитана на Z80. Вот пример для i8080.
    Последний раз редактировалось OrionExt; 24.06.2017 в 13:16.
    Электроника КР-02, MSX YIS-503IIR, Орион-128, Ленинград-2, Pentagon-128k, MSX2 YIS-503IIIR, MSX-EXT, ...

  7. #87
    Banned
    Регистрация
    05.10.2016
    Адрес
    г. Санкт-Петербург
    Сообщений
    1,080
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    5
    Поблагодарили
    5 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Xrust
    Какие-нибудь стандарты на формат записи на CF-флэш есть?
    Вообще-то флэш носители, такие как 'microSD' и 'CF-флэш' в промышленности используют в формате FAT16/32. Для CF это вполне объяснимо, т.к они используют интерфейс винчестера (и служат для их замены). Но как ни странно, и в телефонах, в которых ОС вообще не MSDOS/Windows, для 'microSD', почему-то тоже стали использовать формат FAT16/32.

    Очевидно, из-за этого, все конструкции применяющие флэш-диски для рэтро-ЭВМ используют файлы в формате FAT. Хотя, по крайней мере, в тех в флэш, где есть побайтовый доступ, можно отформатировать его в любой формат. Т.е при желании можно использовать любой формат. Причём не обязательно иметь какую-то ОС, что умеет управлять диском размером в гигабайты, достаточно программно разбить флэш на диски такого размера, что пригодны для конкретной 8-ми разрядной ДОС, и позаботиться, чтобы не было "пересечений".

    Я не имел дела с флэш - CF-карты у меня нет, 'microSD' я не умею программировать (чужие устройства на базе МК не годятся для ДОС, они лишь хранят программы 8-ми разрядки в формате FAT16). Имею некоторый опыт использования винчестера в CP/M. Я даже не рассматривал вопрос о совместимости с FAT. Взял винт и написал простейшие подпрограммы чтения и записи сектора 512 байт. Убедился что они работают. В LINUX разбил винт на одну партицию так, чтобы остались неиспользованные цилиндры. Затем в CP/M встроил работу с винчестером, встроив подпрограммы чтения/записи сектора винта. Естественно, в CP/M нумерация треков идёт с нуля, поэтому в п/п-мму "установить трек по заданному в BC номеру трека" я добавил OFFSET. Например, если текущий CP/M-диск начинается с 700-го цилиндра, то к номеру трека добавляем OFFSET=700. Затем я загрузился в CP/M и POWER-ом командой WRITE заполнил цилиндр где находится каталог (т.е есть цилиндр 700) байтами E5 (переформатировать остальные сектора винта нужды нет) . После этого диск на винчестере стал доступен из CP/M. Одновременно этот винчестер имел в начале партицию MSDOS. Можно было грузиться с этого винта на 486-той и хранить там файлы MSDOS. Собирался написать MSDOS программу для обмена с CP/M дисками.

    Преимущество такого подхода в том, что можно использовать дохлый винт, который уже не работает на PC. А главное, - не требуется иметь блок кодов, что поддерживает FAT16 (тратить на это 4 кб ОЗУ в CP/M-BIOS глупо). Формат на винте соответствует конкретной DOS. Но сейчас мне доступны только винты гораздо большего размера (десятки и сотни гигабайт). Проблема в том, что для 8-ми разрядки нужны диски маленького размера (более 4 мб неудобно). Отчего на винте умещаются сотни тысяч дисков. Как их адресовать? Например, CP/M допускает только 16 дисков. Это значит, что винт можно использовать на 0.01 процента. Поэтому я собираюсь организовать на винте несколько сотен дисков единого размера в 4 мб. И адресовать их по номерам. При старте в CONFIG.SYS командами типа ASSIGN A 500 (диск 500 назначается приводом A) выбираются стартовые 16 дисков. В нортон естественно тоже надо встроить подобную процедуру.

    Цитата Сообщение от Xrust
    FAT16, я предполагаю, будет слишком громоздким
    Вы имеете ввиду случай, когда "слепок" CP/M-диска замаскирован под файл FAT16 и с ним напрямую (побайтово) работает CP/M-BIOS ? Это не будет громоздко, если этот "файл-слепок CP/M-диска" - недефрагментированный, т.е сплошной массив секторов. Т.е с единственным диском громоздко не будет, а вот если надо менять диски, тут уже нужен блок кодов поддерживающий FAT16.

    Цитата Сообщение от Xrust
    Я так понимаю, в "то время" на винт писали кто во что горазд?
    Эту мысль не понял. В "то время" не делали "кто во что горазд", а использовали диски в формате CP/M. Этот формат определяет CP/M. Но число треков и секторов на треке, размер каталога, число системных дорожек в CP/M (и тем более низкоуровневый физический формат носителя) для каждой машины, естественно, свои. CP/M это без разницы, она считывает БПД, блок параметров диска и узнаёт как устроен конкретный диск.

    Цитата Сообщение от Xrust
    А сейчас как лучше сделать?
    Я знаю, как могу сделать я. А как будет лучше я не знаю. Тут, видимо, сколько людей столько и мнений.
    Последний раз редактировалось barsik; 24.06.2017 в 18:13.

  8. #88
    Master Аватар для Xrust
    Регистрация
    12.04.2017
    Адрес
    г. Тольятти
    Сообщений
    906
    Спасибо Благодарностей отдано 
    204
    Спасибо Благодарностей получено 
    145
    Поблагодарили
    68 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    barsik, понятно. Я рассматривал совместимость с FAT только в контексте обмена информацией с PC. Собственно, большой необходимости в этом я не вижу. Так, некоторое удобство. Но если с этим никто не заморачивался раньше, не стоит и пытаться.

    - - - Добавлено - - -

    Цитата Сообщение от barsik Посмотреть сообщение
    Эту мысль не понял
    Да я сам еще как следует не понимал, когда задавал вопрос, каша была в голове. Сейчас почитал, понятнее стало как это все устроено.

  9. #89
    Guru
    Регистрация
    16.12.2008
    Адрес
    Kharkov, Ukraina
    Сообщений
    2,221
    Спасибо Благодарностей отдано 
    4
    Спасибо Благодарностей получено 
    21
    Поблагодарили
    18 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    FAT имеет смысл, если ОС (MSX-DOS) поддерживает изначально файловую систему, если между ОС и диском существует некая прокладка (эмулятор чего-то там), если это самописная ОС. Можете изучить реальный проект с CF-картой (и не только) Альтаир ДОС v3.x от уважаемого Error404. Правда, там Z80, но общие принципы никто не отменял.
    Электроника КР-02, MSX YIS-503IIR, Орион-128, Ленинград-2, Pentagon-128k, MSX2 YIS-503IIIR, MSX-EXT, ...

  10. #90
    Master Аватар для Xrust
    Регистрация
    12.04.2017
    Адрес
    г. Тольятти
    Сообщений
    906
    Спасибо Благодарностей отдано 
    204
    Спасибо Благодарностей получено 
    145
    Поблагодарили
    68 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Нажмите на изображение для увеличения. 

Название:	IMG_20170625_142253.jpg 
Просмотров:	258 
Размер:	76.3 Кб 
ID:	61458
    Осталось завтра кварц купить на 22.1, конденсаторы для max232 и можно пробовать прошивку.

Страница 9 из 30 ПерваяПервая ... 5678910111213 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Посоветуйте компьютер для сборки!
    от Demige в разделе Для начинающих
    Ответов: 16
    Последнее: 17.02.2012, 18:07
  2. Куплю FDD для Atari XL/XE или в комплекте компьютер+дисковод
    от Нrundel в разделе Барахолка (архив)
    Ответов: 0
    Последнее: 22.01.2007, 13:06
  3. Лучший компьютер.
    от Shiru в разделе Зарубежные компьютеры
    Ответов: 12
    Последнее: 22.05.2005, 14:01

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •