User Tag List

Показано с 1 по 10 из 1199

Тема: Орион-2010. Hard & Soft

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    03.07.2005
    Адрес
    Санкт-Петербург
    Сообщений
    10,168
    Спасибо Благодарностей отдано 
    147
    Спасибо Благодарностей получено 
    84
    Поблагодарили
    55 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Error404 Посмотреть сообщение
    Если мы будем делать многозадачную ОС, то надо смотреть в сторону работы по прерыванию с буферизацией во всех случаях. Для однозадачной с прерываниями на передачу не стоит заморачиваться, делать только на прием. А для простых терминалок вообще можно без прерываний обойтись.

    Я поступил таким образом - маленько перелопатил порт F765.
    Теперь чтение порта выглядит так -
    D7 - TX_Ready (0 - идет отправка байта, порт не готов. 1 - можно записывать следующий байт для отправки)
    D6 - RX_Status (0 - нет нового принятого байта. 1 - принят новый байт. После считывания байта из F764 этот бит сбрасывается в 0).
    Итго, при чтении данных из F765 имеем соответственно:
    FF - принят новый байт, передатчик готов принять байт на отправку.
    BF - новых данных не принято, передатчик готов принять байт на отправку.
    3F - новых данных не принято, идет передача байта "наружу".
    7F - догадайтесь сами
    Скорости UART - биты D0 и D1. Набор скоростей - 9600 (умолчание), 19200, 38400, 57600. Установленная скорость с порта F765 не считывается.
    Зарись "1" в D6 порта F765 разрешает прерывание по приему байта. На ШД ставится FD.
    Передача байта с прерываниями не связана, и контролируется считыванием с порта F765 сигнала TX_Ready.

    Годится? Закрываем на этом моменте этот вопрос? Если да, то Error404, проверь пожалуйста, твой тест на "работоспособность" с такими параметрами порта

    ---------- Post added at 14:51 ---------- Previous post was at 14:46 ----------

    "Терминалка" на бейсике Ориона, которой я проверял прием данных, выглядит так:
    10 CLS
    20 D=PEEK(&F765)
    30 IF D=&BF THEN GOTO 20
    40 D=PEEK(&F764)
    50 PRINT CHR$(D);
    60 GOTO 20
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	lv01.jpg 
Просмотров:	275 
Размер:	2.2 Кб 
ID:	16578  
    Последний раз редактировалось Ewgeny7; 13.03.2010 в 15:00.
    ScorpEvo ZS 1024 turbo+ CF-HDD/FDD/Mouse/SMUC 3.1/ProfROMse/NeoGS/ZC
    Speccy-2007 128/AY/TR-DOS

    Сайт с документацией к "Scorpion ZS 256"

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

  3. #2

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

    По умолчанию

    Цитата Сообщение от ewgeny7 Посмотреть сообщение
    Скорости UART - биты D0 и D1. Набор скоростей - 9600 (умолчание), 19200, 38400, 57600. Установленная скорость с порта F765 не считывается.
    Скорости 0=9600, 1=19200, 2=38400, 3=57600 ?

    Тест мне пока проверить негде. Я внес правки (во вложении) - может запустишь у себя? Кстати, MA80/MLINK (это который аналог M80 для PC и MSDOS) исходник из вложения не берет - ошибок не выдает, но и код после линковщика выдает бредовый. Я пока не разбирался кто виноват - ассемблер или загрузчик. Или какие-то специфические ключи нужны...

    Цитата Сообщение от ewgeny7 Посмотреть сообщение
    Зарись "1" в D6 порта F765 разрешает прерывание по приему байта. На ШД ставится FD.
    Передача байта с прерываниями не связана, и контролируется считыванием с порта F765 сигнала TX_Ready.

    Годится? Закрываем на этом моменте этот вопрос? Если да, то Error404, проверь пожалуйста, твой тест на "работоспособность" с такими параметрами порта
    Годится. Тут еще такой моментик: обработчик прерывания делает следующее (схематично):
    DI
    push all
    ld a,(F764)
    <do something>
    pop all
    EI
    reti

    Что произойдет если следующий байт (и прерывание) будут готовы раньше, чем обработчик сделает EI? Будут проглатываться байты? Как избежать?

    А какой "протокол наружу" реализован в USART? Что указываешь в свойствах соединения терминала?
    Вложения Вложения
    Последний раз редактировалось Error404; 13.03.2010 в 16:40.
    Лучше сделать и жалеть, чем не сделать и жалеть.

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

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

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

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

Похожие темы

  1. Ответов: 22
    Последнее: 06.10.2008, 14:17
  2. MAGIC-SOFT
    от White_Hunter в разделе Люди
    Ответов: 1
    Последнее: 22.08.2008, 08:56
  3. MAGIC-SOFT
    от White_Hunter в разделе Люди
    Ответов: 2
    Последнее: 21.08.2008, 13:31
  4. soft dt
    от roxx в разделе Софт
    Ответов: 4
    Последнее: 30.01.2008, 18:41

Ваши права

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