User Tag List

Страница 16 из 57 ПерваяПервая ... 121314151617181920 ... ПоследняяПоследняя
Показано с 151 по 160 из 562

Тема: DSDOS для ПРК "Орион-128"

  1. #151

    Регистрация
    04.05.2006
    Адрес
    St.-Petersburg
    Сообщений
    2,234
    Спасибо Благодарностей отдано 
    490
    Спасибо Благодарностей получено 
    989
    Поблагодарили
    641 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    alx32, увы, тут вынужден огорчить. По крайней мере при нынешней концепции максимальной скорости дисковых операций. Дело в том, что ОС находится во второй странице ОЗУ, а прикладное ПО в основной, и для быстрого взаимодействия активно используется непереключаемая область ОЗУ F000..F3FFh. На данный момент это пространство фактически полностью использовано подрограммами ОС, Монитора и стеком, а увеличение экранной области "откусывает" драгоценное ОЗУ именно оттуда.
    Скажем так, плюсы расширенного экрана никак не перевешивают минусы, поэтому смысла жертвовать производительностью и совместимостью с базовым вариантом ради 12 доп. символов в строке лично я не вижу.
    Критиковать - значит объяснять автору, что он делает не так, как делал бы я, если бы умел

  2. #151
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #152

    Регистрация
    04.05.2006
    Адрес
    St.-Petersburg
    Сообщений
    2,234
    Спасибо Благодарностей отдано 
    490
    Спасибо Благодарностей получено 
    989
    Поблагодарили
    641 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    Cool Быстрый порт COM2 на БИС 16C550

    В продолжении тематики виртуального диска, раскрою тему быстрого порта COM2 на микросхеме 16C550.

    Электрическая схема порта:



    альтернативаня ссылка на схему


    Устройство представляет собой карту расширения, подключается в системный разъём ПРК "Орион-128.2" (нумерация контактов указана согласно схеме рев.512).
    Возможны два варианта сборки: упрощённый и стандартный. Первый вариант - без дешифратора 1533ИД3, его использование возможно только если в системе больше нет никаких других устройста, занимающих адресное пространство F700..F7FFh. Второй вариант с помощью дешифратора позволяет корректно занимать только диапазон F7E0..F7EFh, в этом случае сигнал ПРК "SEL_F7xx" (В30) идёт на БИС 16C550 через дешифратор.
    Для упрощения схемотехники в качестве тактового генератора используется специализированный чип с HCMOS/TTL-выходом, например такой - http://www.chipdip.ru/product/7.3728mhz-hcmos-ttl/. Частота генератора - 7.3728 МГц.
    Для преобразования сигналов (TTL<->RS232) используется микросхема MAX232. Вариантов исполнения этого популярного преобразователя вагон и маленькая тележка, они требуют разные номиналы конденсаторов обвязки, поэтому на схеме указан номинал с вариацией. Более точно нужно смотреть даташит на ваш конкретный экземпляр "макса".

    На плате ПРК требуется небольшая доработка (если она у вас не была сделана ранее): на линию "В20" системного разъёма заводится сигнал RESET с выхода "9" микросхемы DD18.2 (ТМ7).

    Как было сказано ранее, программно порт поддержан в ОС DSDOS начиная с версии v3.81, его наличие в системе определяется автоматически при загрузке, скорость обмена программируется максимальная - 115200 Бод.

    Схема не требует наладки, при исправных деталях и правильном монтаже работает сразу.

    Мой "макетный" вариант выглядит так:





    Фото №1 Фото №2


    В нём микросхем больше, т.к. я одновременно распаял два порта: COM1 и COM2. Причём первый с вариацией: 1) под КР580ВВ51А (скорость обмена 38400 Бод) и 2) под MSM82C51A-2 (скорость обмена 115200 Бод).


    Информация по программированию порта COM2:

    Код:
    ; BIOS (2/2) для DSDOS v3.81 (Орион-128.2)
    ; (C) 1998-2016 Соловьев Д.Н. /Санкт-Петербург/
    ; 18.06.2016
    
    ; Порт COM2 (16C550)
    
    RG_RWD:EQU 0F7E0H; Read/Write Data
    RG_IER:EQU 0F7E1H; Interrupt Enable Reg
    RG_LCR:EQU 0F7E3H; Line Control Reg
    RG_MCR:EQU 0F7E4H; Modem Control Reg
    RG_LSR:EQU 0F7E5H; Line Status Reg
    RG_SCR:EQU 0F7E7H; Scratch Reg
    
    
    IniCOM:
    ; Инициализация UART 16C550
    LXI H,RG_IER
    MVI M,0; отключить все прерывания
    INX H
    INX H
    MVI M,80H; маска установки DLAB
    MVI L,RG_RWD
    MVI M,4; LSB делителя (4 = 115200 Бод)
    INX H
    MVI M,0; MSB делителя
    INX H
    INX H
    MVI M,03H; настройка протокола (8,N,1)
    RET
    
    
    SvbCOM:
    ; Запись байта в порт обмена
    ; I: [C]-записываемый байт
    ; O: <C>=0 - [A]=записанный байт,
    ;    <C>=1 - порт не готов
    MVI B,0; time-out const = 256
    
    SVB2:
    DCR B
    JZ LDB2_4
    LDA RG_LSR
    ANI 20H
    JZ SVB2
    MOV A,C
    STA RG_RWD
    RET
    
    
    LdbCOM:
    ; Чтение байта из порта обмена
    ; O: C=0 - [A]=байт, C=1 - порт не готов
    
    LDB2_0:
    ; проверка на преждевременную готовность
    LDA RG_LSR
    RRC
    JC LDB2_2
    
    ; ожидание поступления данных
    PUSH B
    LXI B,33000; time-out const
    
    LDB2_1:
    DCX B
    MOV A,B
    ORA C
    JZ LDB2_3
    LDA RG_LSR
    RRC
    JNC LDB2_1
    POP B
    
    LDB2_2:
    LDA RG_RWD
    CMC
    RET
    
    LDB2_3:
    POP B
    
    LDB2_4:
    STC
    RET
    Последний раз редактировалось Denn; 11.02.2024 в 11:54. Причина: Изменение путей ссылок
    Критиковать - значит объяснять автору, что он делает не так, как делал бы я, если бы умел

  4. #153

    Регистрация
    04.05.2006
    Адрес
    St.-Petersburg
    Сообщений
    2,234
    Спасибо Благодарностей отдано 
    490
    Спасибо Благодарностей получено 
    989
    Поблагодарили
    641 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    Cool Порт COM1 на КР580ВВ51А / MSM82C51A-2

    В добавок к предыдущему посту вариант реализации интерфейса RS-232 (порт COM1, v.2) на микросхеме КР580ВВ51А (или MSM82C51A-2):



    альтернативная ссылка на схему

    Подробно описывать не буду, ибо, что называется, действующие лица в общем-то те же. Для упрощения схемотехники из оригинальной схемы выкинут таймер КР580ВИ53, вместо него тактирование протокола выполняет синтезатор частот на интегральном генераторе и счётчике-делителе. Схема позволяет устанавливать либо отечественный УСАПП - КР580ВВ51А (скорость обмена 38400 Бод, перемычки J1 и J2 в нижнем положении), либо быструю КМОП-версию UART от OKI - MSM82C51A-2 (скорость обмена 115200 Бод, перемычки J1 и J2 в верхнем положении).
    Программно данный порт полностью совместим с оригинальным (из ж. РАДИО), всё ранее написанное ПО (LINK$, VDISK) с ним совместимо (скорость обмена аппаратно зафиксирована, программная настройка игнорируется).


    Информация по программированию порта COM1:

    Код:
    ; BIOS (2/2) для DSDOS v3.81 (Орион-128.2)
    ; (C) 1998-2016 Соловьев Д.Н. /Санкт-Петербург/
    ; 18.06.2016
    
    ; Порт COM1 (ВВ51А)
    
    PT_TM0:EQU 0F730H
    PT_CTM:EQU 0F733H
    PT_SP0:EQU 0F740H
    PT_SP1:EQU 0F741H
    
    
    IniCOM:
    ; Инициализация порта COM1
    
    ; Настройка таймера ВИ53
    MVI A,36H
    STA PT_CTM
    
    LXI H,PT_TM0
    MVI A,9; 14400 Бод
    MOV M,A
    XRA A
    MOV M,A
    
    ; Настройка УСАПП ВВ51А
    LXI H,PT_SP1
    MVI A,1
    MOV M,A
    MOV M,A
    MVI A,40H
    MOV M,A
    MVI A,4EH; настройка протокола (8,N,1)
    MOV M,A
    MVI A,27H
    MOV M,A
    DCX H; [HL]=PT_SP0
    MOV A,M; очистка порта ввода
    RET
    
    
    SvbCOM:
    ; Запись байта в порт COM1
    ; I: [C]-записываемый байт
    ; O: <C>=0 - [A]=записанный байт,
    ;    <C>=1 - порт не готов
    MVI B,0; time-out const = 256
    
    SVB1:
    ; ожидание готовности
    DCR B
    JZ LDB1_4
    LDA PT_SP1
    RRC
    JNC SVB1
    MOV A,C
    STA PT_SP0
    CMC
    RET
    
    
    LdbCOM:
    ; Чтение байта из порта COM1
    ; O: C=0 - [A]-считанный байт
    ;    C=1 - ошибка (тайм-аут)
    
    ; проверка на преждевременную готовность
    LDA PT_SP1
    ANI 2
    JNZ LDB1_2
    
    ; ожидание поступления данных
    PUSH B
    LXI B,33000; time-out const
    
    LDB1_1:
    DCX B
    MOV A,B
    ORA C
    JZ LDB1_3
    LDA PT_SP1
    ANI 2
    JZ LDB1_1
    POP B
    
    LDB1_2:
    LDA PT_SP0
    RET
    
    LDB1_3:
    POP B
    
    LDB1_4:
    STC
    RET
    Последний раз редактировалось Denn; 11.02.2024 в 11:49. Причина: Изменение путей ссылок
    Критиковать - значит объяснять автору, что он делает не так, как делал бы я, если бы умел

  5. #154

    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,581
    Спасибо Благодарностей отдано 
    64
    Спасибо Благодарностей получено 
    112
    Поблагодарили
    97 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Как вариант, если использовать ТМ8/9 + ИЕ7, то коэф. деления кварца можно будет не перемычками выставлять, а программно - записывать в порт некую константу начального счета для ИЕ7. Такая получится "ВИ53 для бедных".

    На самом деле, ВИ53 - одна из самых дорогих МСХ чипсета 580. Лично мне не понятно почему.
    Лучше сделать и жалеть, чем не сделать и жалеть.

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

  6. #155

    Регистрация
    04.05.2006
    Адрес
    St.-Petersburg
    Сообщений
    2,234
    Спасибо Благодарностей отдано 
    490
    Спасибо Благодарностей получено 
    989
    Поблагодарили
    641 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Error404, да, можно. Но идея не в вариативности, а в возможности выжать из применяемой микросхемы максимум, ну и в возможности применения разных микросхем (кто что сможет достать нынче). Также тренд нашего времени - простота. К сожалению, этот тренд утрирован до абсурда - если что-то сложнее условно "пары кликов мышкой", то это автоматом попадает в категорию "многабукв, ниасилил" (( Тобишь заниматься какими-то программными настройками портов, подбором перемычек скорее всего никто не будет. А вот если оно слишком просто в сборке, ничего настраивать не надо и плюшка достаточно вкусная (скорость), то "может быть соберу".

    А ВИ53 - это даааа, это же русский саунд-процессор
    Критиковать - значит объяснять автору, что он делает не так, как делал бы я, если бы умел

  7. #156

    Регистрация
    18.07.2010
    Адрес
    Ульяновск
    Сообщений
    852
    Спасибо Благодарностей отдано 
    5
    Спасибо Благодарностей получено 
    12
    Поблагодарили
    10 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Denn, а возможен вариант с двумя 16с550?
    На Али нашёл только в корпусе plcc и qfp по приемлемой цене, в dip только оптом или с невменяемой доставкой...

  8. #157

    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,581
    Спасибо Благодарностей отдано 
    64
    Спасибо Благодарностей получено 
    112
    Поблагодарили
    97 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Denn, еще есть просьба. Можешь под порты задействовать один из 16b участков 0F730...0F73F или 0F740...0F74F или 0F750...0F75F? Тут надо бы провести исследование какой из них лучше (авторы могли что-то планировать, Бриджиди/Рогов, Чистяков и прочие стандартизаторы), хотя по факту мне не известно актуальное ПО или железки, использующее что-то по этим диапазонам. Сегодня, думаю, следует ориентироваться на существующие проекты, а не наполеоновские планы прошлого века, до реализации которых планирующие не дошли.

    А то я еще не окончательно расстался с идеей Ethernet, а оно пересекается с твоими портами. Там удобно получается читать фреймы из контроллера LDIR-ом (что дает ускориться), поэтому под Ethernet-адаптер занят сразу большой кусок в области портов - F770..F7FF.
    Последний раз редактировалось Error404; 30.06.2016 в 21:42.
    Лучше сделать и жалеть, чем не сделать и жалеть.

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

  9. #158

    Регистрация
    04.05.2006
    Адрес
    St.-Petersburg
    Сообщений
    2,234
    Спасибо Благодарностей отдано 
    490
    Спасибо Благодарностей получено 
    989
    Поблагодарили
    641 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от alx32 Посмотреть сообщение
    Denn, а возможен вариант с двумя 16с550?
    А зачем? Для связи с большим братом достаточно одного порта. Это я привёл два варианта портов и разделил их разными именами по причине их принципиальной разницы в плане программирования, каждый выбирает свой вариант из соображений доступности чипов. Для работы достаточно одного - любого из них. Два одновременно не нужны. Если для каких-то своих нужд, то без проблем можно поставить два быстрых 16C550, только по адресации второй лучше посадить на ту же ветку F7Exh, в старшую часть F7E8..F7EFh (у 16C550 восемь регистров), правда придётся усложнить дешифрацию.

    Идея следующая. У кого-то есть в хозяйстве ВВ51А и он не хочет заморачиваться с покупкой буржуйских м/сх, он собирает COM1, ставит ВВ51А и какое-то время довольствуется скоростью 38400 Бод, потом понимает, что в 3 раза быстрее было бы клёвее, и находит 82C51A-2, перекидывает пару джамперов и у него 115200 Бод. Кто-то сразу покупает 16C550 и делает COM2 - самый быстрый и простой вариант схемы. Как-то так.

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

    Цитата Сообщение от Error404 Посмотреть сообщение
    Denn, еще есть просьба. Можешь под порты задействовать один из 16b участков 0F730...0F73F или 0F740...0F74F или 0F750...0F75F? Тут надо бы провести исследование какой из них лучше (авторы могли что-то планировать, Бриджиди/Рогов, Чистяков и прочие стандартизаторы), хотя по факту мне не известно актуальное ПО или железки, использующее что-то по этим диапазонам. Сегодня, думаю, следует ориентироваться на существующие проекты, а не наполеоновские планы прошлого века, до реализации которых планирующие не дошли.
    Я изучал вопрос свободных портов, там конечно стандартный орионовский бардак... в итоге решил не трогать всю эту историю и пойти с конца:

    F7F0..F7FFh - быстрый RAM-диск 1 Мб на СОЗУ;
    F7E0..F7EFh - быстрый порт COM2 (а возможно и COM3 сюда же);
    F7D0..F7DFh - адаптер SDHC карт (на МК);
    F7C0..F7CFh - часы реального времени (на DS1307).

    Конечно можно это всё запихнуть в пару "линеек", но наворачивать дешифрацию совсем не хочется (опять же принцип "пары кликов" - сложное и большое никто не будет собирать), и с упрощённой дешифрацией легче ставить только нужные устройства, а остальные либо не ставить вообще, либо добавлять по мере надобности.

    П.С. порт COM1 использует участок F740..F74Fh, так что при желании можно работать через него, а весь этот новодел не ставить и использовать F780..F7FFh по своему усмотрению.

    П.П.С. Касательно Ethernet'а. Я понимаю, что программно задачка интересная, но практического применения не вижу, т.к. драйвер если и удастся написать, то он займёт все ресурсы Ориона - чисто ради спортивного интереса, не более того.
    В плане работы с внешним миром Орион мне видится в роли т.н. "тонкого клиента", которому нет смысла поручать ресурсоёмкие задачи. Я долго упирался в "религию" и хотел сделать поддержку SDHC программно полностью на Орионе... в итоге понял, что нет никакого смысла в этом. Ресурсов уйдёт море, а толку? Сама по себе SDHC - это тоже МК, так имеет смысл поручить с этим МК общаться тоже МК'шке, а Ориону он будет отдавать через порты-регистры нужные данные - чтение/запись целевого сектора и всё! А премудрости протокола пусть обслуживает МК (с выходом новых стандартов SD, просто обновлять прошивку МК).
    Для общения с внешним миром Ориону достаточно быстрого порта RS-232, а разбор инет-протоколов пусть делает писюк, он тоже просто прослойка, маленькое звено в сложной цепи оборудования, за счёт которого функционирует Интернет.
    Последний раз редактировалось Denn; 01.07.2016 в 01:19.
    Критиковать - значит объяснять автору, что он делает не так, как делал бы я, если бы умел

  10. #159

    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,581
    Спасибо Благодарностей отдано 
    64
    Спасибо Благодарностей получено 
    112
    Поблагодарили
    97 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    часы на DS1307 же вроде на магнитофонный порт договорились повесить? Вот уж магнитофон действительно атавизм, и его порт можно использовать, тем более что схема подключения - 3 резистора.

    Хотя если внедрять еще один МК (чего я обычно не хочу до последнего - не лампово, клавиатурная Мега48 и то была вынужденной - тот случай когда по-другому не обойтись), то и DS1307 тогда тоже вешать на МК, т.к. ее чтение/запись не проще алгоритмически и не быстрее чтения/записи SD-карт.
    Лучше сделать и жалеть, чем не сделать и жалеть.

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

  11. #160
    HardWareMan
    Гость

    По умолчанию

    Магнитофон всего лишь носитель. А сам интерфейс может использовать разную среду и в виду своей простоты очень практичен.

Страница 16 из 57 ПерваяПервая ... 121314151617181920 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Ответов: 17
    Последнее: 26.12.2015, 23:22
  2. продам платы "Орион-128"
    от AHTuXPuCT в разделе Барахолка (архив)
    Ответов: 70
    Последнее: 19.06.2012, 20:39
  3. Платы ром-диска "Орион-128"
    от AL.EX в разделе Барахолка (архив)
    Ответов: 45
    Последнее: 10.06.2012, 12:54
  4. Куплю плату "Орион-ПРО"
    от АлександрПП в разделе Барахолка (архив)
    Ответов: 3
    Последнее: 15.05.2011, 20:48
  5. Ответов: 0
    Последнее: 15.08.2010, 14:38

Ваши права

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