User Tag List

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

Тема: Аюша-Z80 - СР/М-совместимый компьютер

Древовидный режим

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

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

    По умолчанию

    Цитата Сообщение от worker_vl Посмотреть сообщение
    Доброго всем дня!
    Решил немного вернуться к теме и обратиться к автору, как к авторитету, но если кто-нибудь другой ответит, я тоже не обижусь:
    поскольку меня CP/M задела своим крылом только чуть, да и то в качестве студента, работающего в терминальном классе, и, скорее всего, это была MP/M, то можно сказать, что я с нею совершенно не знаком. Поэтому вопрос: каким образом запускаются или адаптируются программы для этой ОСи, чтоб ввод-вывод ориентировался не на терминальный порт, а на видеоконсоль, состоящую из AVR и PIC контроллеров? Безусловно, сама ОСь работает с ними отлично, а вот прикладной софт так и норовит вывести всё куда-то в сторону.
    Заранее благодарен!
    Пишу по памяти.
    Стандартное приложение CP/M не оперирует понятиями RS-232, оно пишет/читает консоль (есть разновидности консолей, об этом ниже), а также в ряд устройств - Printer/LPT (запись символа и чтение статуса), Puncher (только вывод), Reader (только чтение).
    - Про Puncher/Reader (те самые бумажные карточки) сразу забудем, аппаратно их уже нет, остались только вектора BIOS как напоминание (к слову их использование под что-то другое не принято, тупо пропадает место в таблице векторов BIOS).
    - Printer в BIOS встречается реализованным, и с ним всё понятно: байт туда, байт оттуда.
    - С консолью (условно, экран+клавиатура) чуть сложнее это посимвольное устройство (тоже на запись/чтение байта) в CPM2.2 делится/переназначается на несколько подвидов в зависимости от того как установлен байт по адресу 3 (IOBYTE, он состоит из четырех 2-битных величин):
    Код:
    ;The IOBYTE lives at address 3 (in the Zero Page) and should be changed using 
    ;BDOS calls 7 and 8 (get/set IOBYTE). The value is bitmapped:
    ;
    ;     Bits      Bits 6,7    Bits 4,5    Bits 2,3    Bits 0,1
    ;     Device    LIST        PUNCH       READER      CONSOLE
    ;
    ;     Value
    ;	00      TTY:        TTY:        TTY:        TTY:
    ;	01      CRT:        PTP:        PTR:        CRT:
    ;	10      LPT:        UP1:        UR1:        BAT:
    ;	11      UL1:        UP2:        UR2:        UC1:
    ;
    ;* BAT = batch mode. Use the current Reader for console input, and the current 
    ;  List (printer) device as the console output. 
    ;
    ;  * CRT = Standard console (keyboard and terminal screen). 
    ;  * LPT = Standard line printer. 
    ;  * PTP = Standard Paper Tape Punch. 
    ;  * PTR = Standard Paper Tape Reader. 
    ;  * TTY = Teletype device, eg a serial port. 
    ;  * UC1 = User defined (ie implementation dependent) console device. 
    ;  * UL1 = User defined (ie implementation dependent) printer device. 
    ;  * UPn = User defined (ie implementation dependent) output device. 
    ; * URn = User defined (ie implementation dependent) input device.
    Соответственно, если пользовательское приложение хочет писать на экран (CRT) и читать какую-то физически подключенную клавиатуру, оно кладет в ячейку (3) значение 149, и весь дальнейший ввод-вывод в консоль (подпрограммы CONOUT/CONIN/CONST BIOS) идет на устройство CRT(TV). Для переключения вывода/чтения на TTY(RS232) нужно в ячеку (3) положить значение 148.

    В свою очередь подпрограммы CONOUT/CONIN/CONST BIOS должны содержать код switch по значению ячейки (3) - в зависимости от ее содежримого гнать выводимый пользователем символ либо на TV, либо на RS232. Сделано ли это в BIOS Аюши - вопрос к авторам, в принципе оно просто делается (при наличии подпрограмм для устройств). Я у себя в клоне CP/M такое делал, и очень понравилось: чудесным образом начинают работать всякие терминальные вещи типа Кермита (который издревле имеет режим сборки под управление потоками через IOBYTE).

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

    Штатно переключить iobyte можно классической утилиой STAT:

    STAT DEV: - текущие назначения устройств
    STAT CON:=CRT: - ввод/вывод с теминала CRT (TV)
    STAT CON:=TTY: - система переключается на ввод/вывод по RS-232.

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

    Вот тут еще обсуждали, читать начиная с этого поста:
    https://zx-pk.ru/threads/12367-zhele...l=1#post537195
    Последний раз редактировалось Error404; 26.06.2019 в 17:10. Причина: очепятки
    Лучше сделать и жалеть, чем не сделать и жалеть.

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

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

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

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

Похожие темы

  1. Самодельный компьютер на Z80 и не только
    от KeKc в разделе Разработка электроники
    Ответов: 1332
    Последнее: 19.01.2025, 20:45
  2. М.Бун "Spectrum" совместимый компьютер. Архив из журналов "Радио".
    от PATHNK в разделе Несортированное железо
    Ответов: 1
    Последнее: 18.08.2016, 04:00
  3. Аюша-80 - компьютер на процессоре 580ВМ80
    от rw6hrm в разделе Разработка электроники
    Ответов: 0
    Последнее: 29.04.2016, 16:15
  4. Куплю ZX совместимый компьютер.
    от billgilbert81 в разделе Барахолка (архив)
    Ответов: 19
    Последнее: 05.12.2008, 20:33
  5. Ответов: 17
    Последнее: 05.11.2008, 05:21

Ваши права

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