Используется в решении Yamaha Локальная сеть, версия 1.
Команды:
RS-232C.DOC
RS-232C.DOC
Расширение MSX-Basic для работы с RS-232C 1) CALL COMINI CALL COMINI (" <device# {0,1,2...9}>: <character length {5,6,7,8}> <parity {E,O,I,N}> <stop bits {1,2,3}> <XON/XOFF {X,N}> <CTS hand-shake {H,N}> <auto LF on receive {A,N}> <auto LF on transmit {A,N}> <SI/SO {S,N}>" ,<receiver baud rate> ,<transmitter baud rate> ,<time out count> ) Default: CALL COMINI("0:8N1NNNNN",2400,2400,0) 2) OPEN "COM[n]:" [ FOR <mode>] AS [#] <file number> Эта команда открывает канал RS-232C для дальнейшей работы. При этом отводится место под буфер. В данной версии BASIC'а n может принимать только значение 0. Открывается файл для связи с машиной 0. <mode> может принимать одно из следующих значений: OUTPUT: установка режима вывода INPUT : установка режима ввода Если тип <mode> не указан, то канал будет открыт для ввода и вывода одновременно. Однако, в этом случае не может быть использован признак конца файла (EOF) в обычном значении. Примеры: 1) OPEN "COM0:" AS #1; 2) OPEN "COM:" FOR INPUT AS 2. 3) Операторы ввода и вывода. После того, как канал будет открыт для режима ввода или файлового режима (без указания <mode>) символы из канала связи могут быть считаны с помощью следующих команд: INPUT #n LINE INPUT #n INPUT$(#n,m) В случае открытия канала для вывода файлового режима (без указания <mode>) символы могут быть выведены в канал связи с помощью следующих команд: PRINT #n PRINT #n USING 4) Команды загрузки-выгрузки программ. SAVE"COM[<n>]:"[,A] LOAD"COM[<n>]:" MERGE"COM[<n>]:" RUN"COM[<n>]:"[,R] 5) Команды прерываний по условию. CALL COMON("[<n>:]") Данная команда разрешает прерывания по приходу символа через канал связи. CALL COMOFF("[<n>:]") Данная команда запрещает прерывания по приходу символа через канал связи. При этом чистится буфер связи. CALL COMSTOP("[<n>:]") Данная команда приостанавливает прерывания по приходу символа через канал связи. CALL COM("[<n>:]",GOSUB <line number>) Данная команда устанавливает номер строки, на которую следует перейти после поступления символа из сети. 6) Команды контроля. CALL COMBREAK("[<n>:"],<expression>) (??????????) expression 3...32767 CALL COMDTR("[<n>:"],<expression>) (Для Ямахи не определена.) CALL COMSTAT("[<n>:"],<name of variable>) Читает статус канала связи. Статус, переданный аппаратными средствами, идентифицируется с указанной переменной. Расшифровка битов статуса: ▐ Номер бита ▐ Значение ▐ ▐ 15 ▐ Ошибка переполнения буфера ▐ ▐ ▐ 0: Нет переполнения ; 1: Буфер переполнен ▐ ▐ 14 ▐ Ошибка времени ожидания ( TMENBT ) ▐ ▐ ▐ 0: Нет ошибки времени ; 1: Время кончилось ▐ ▐ 13 ▐ Framing Error ▐ ▐ ▐ 0: No framing error occured ▐ ▐ ▐ 1: Framing error occured ▐ ▐ 12 ▐ Over Run Error ▐ ▐ ▐ 0: No over run error occured ▐ ▐ ▐ 1: Over run error occured ▐ .⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃█⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃▀ ▐ 11 ▐ Parity Error ▐ ▐ ▐ 0: Character has no parity error ▐ ▐ ▐ 1: Character has parity error ▐ .⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃█⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃▀ ▐ 10 ▐ Прерывание с клавиатуры ▐ ▐ ▐ 0: Не было ▐ ▐ ▐ 1: Были нажаты клавиши прерывания ( BRONBT ) ▐ ▐ 9,8 ▐ Не используется ▐ ▐ 7 ▐ Clear To Send (Для Ямахи незначащий) ▐ ▐ ▐ 0: False ; 1: True ▐ ▐ 6 ▐ Timer/Counter Output⁃2 ▐ ▐ ▐ 0: Timer/Counter Output⁃2 negated ▐ ▐ ▐ 1: Timer/Counter Output⁃2 asserted ▐ ▐ 5,4 ▐ Не используется ▐ ▐ 3 ▐ Data Set Ready (Для Ямахи незначащий) ▐ ▐ ▐ 0: False ; 1: True ▐ ▐ 2 ▐ Break Detect (Для Ямахи незначащий) ▐ ▐ ▐ 0: Not detected ; 1: Detected ▐ ▐ 1 ▐ Ring Indicator (Для Ямахи незначащий) ▐ ▐ ▐ 0: False ; 1: True ▐ ▐ 0 ▐ Carrier Detect (Для Ямахи незначащий) ▐ ▐ ▐ 0: False ; 1: True ▐ 7) Функции EOF(<file number>) Возвращает ⁃1 (true) если EOF (признак конца файла) был передан. Иначе возвращает 0. LOC(<file number>) Возвращает количество символов в буфере сети. (Размер бу. фера ⁃ 255 байт) LOF(<file number>) Возвращает размер свободного места в буфере сети ⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃ Распределение контактов сетевого разьема. ▞▞▊▊▊▊▊▊▊▊▊▊▊▞▞ ▞▊▊ ▞▞▊▊█ █▊▊▞▞ ▊▊▞ █ ▞▊▊ ▊▊▊ ▊▊▞ █ █ █ █ █ █ █ █ █ ▐▌ ▐▌ 3 1 ▐▌ ▐▌ █ █ █ █ █ █ 5 4 █ █ █ ▊▞▞ 2 ▞▞▊ █ ▊▞▞ ▊▊▞▞▞▞▞▞▞▊▊ ▞▞▊ ▊▊▞▞▞▞▞▞▞▞▞▞▞▊▊ ▐ контакт ▐ Сигнал ▐ ▐ 1 ▐ Напряжение по каналу A (CH.A) ▐ ▐ 2 ▐ Земля ▐ ▐ 3 ▐ Напряжение по каналу B (CH.B) ▐ ▐ 4 ▐ Данные CH.A ▐ ▐ 5 ▐ Данные CH.B ▐ БИС, применяемые в адаптере 8251 - БИС последовательного интерфейса 8253 - БИС таймера-счетчика Порты ввода-вывода ▐ Номер ▐ статус ▐ Функции ▐ ▐ порта ▐ ▐ ▐ ▐ 00 ▐ ч/з ▐ порт данных 8251 ▐ ▐ 01 ▐ ч/з ▐ порт команд/состояния 8251 ▐ ▐ 02 ▐ ч ▐ порт состояния для таймера и счетчика ▐ ▐ ▐ ▐ 2 в 8253 ▐ ▐ 02 ▐ з ▐ регистр маски прерываний ▐ ▐ 04 ▐ ч/з ▐ счетчик CH0 в 8253 - установка скорости обмена (Rx) ▐ ▐ 05 ▐ ч/з ▐ счетчик CH1 в 8253 - установка скорости обмена (Tx) ▐ ▐ 06 ▐ ч/з ▐ счетчик CH2 в 8253 - задействован в прогр. обеспечении ▐ ▐ ▐ ▐ (Проверка показала, что он не считает. Как задейств. - ▐ ▐ ▐ ▐ не понятно. Быть м. только во время обмена с сетью. ) ▐ ▐ 07 ▐ з ▐ регистр режимов 8253 ▐ ▊⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃▌⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃# ▐бит данных ▐ Описание битов порта 02: чтение - проверка состояния системы ▐ .⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃█⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃▀ ▐ 7 ▐ всегда должен быть равен 0 ▐ .⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃█⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃▀ ▐ 6 ▐ сигнал от таймера/счетчика 2 в 8253 ▐ .⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃█⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃▀ ▐ 5-0 ▐ Значения битов соответствуют установке микропереключателя ▐ ▐ ▐ DIP-SWITCH, имеющегося в корпусе адаптера. (ON=0,OFF=1) ▐ ▄⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃▇⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃▊ ▊⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃▌⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃# ▐бит данных ▐ Описание битов порта 02: запись - регистр маски прерываний ▐ .⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃█⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃▀ ▐ 7-1 ▐ Зарезервированы ▐ .⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃█⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃▀ ▐ 0 ▐ Сигнал RxReady (Готов к приему даннных) ▐ ▐ ▐ 1 - прерывание замаскировано (исходное состояние) ▐ ▐ ▐ 0 - прерывание разрешено ▐ ▄⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃▇⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃▊ Частота задающего генератора CERALOC - 1,843 MHz ▐ Скорость передачи данных ▐ Коэффициент деления ▐ ▐ 50 ▐ 2304 ▐ ▐ 75 ▐ 1536 ▐ ▐ 110 ▐ 1047 ▐ ▐ 150 ▐ 768 ▐ ▐ 300 ▐ 384 ▐ ▐ 600 ▐ 192 ▐ ▐ 1200 ▐ 96 ▐ ▐ 1800 ▐ 64 ▐ ▐ 2000 ▐ 58 ▐ ▐ 2400 ▐ 48 ▐ ▐ 3600 ▐ 32 ▐ ▐ 4800 ▐ 24 ▐ RS-232C может быть использована прикладными программами находящимися на других слотах (расширенный Basic). Эти программы могут обращаться к RS-232C через таблицу ссылок с ипользованием межслотового вызова (BIOS). 4010: DB 1000 0000, 00, 00 ; Device information ▐▐▐▐ ▐▐▐▄⁃⁃ Reserved ▐▐▐▐ ▐▐▄⁃⁃⁃ no TxReady interrupt ▐▐▐▐ ▐▄⁃⁃⁃⁃ no Sync/Break charakter ▐▐▐▐ ▄⁃⁃⁃⁃⁃ no Timer interrup ▐▐▐▄⁃⁃⁃⁃⁃⁃⁃ no Carrier detect ▐▐▄⁃⁃⁃⁃⁃⁃⁃⁃ no Ring indicator ▐▄⁃⁃⁃⁃⁃⁃⁃⁃⁃ Reserved ▄⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃ Reserved 4013: JP 4040 ; INIT 4016: JP 426A ; OPEN 4019: JP 5153 ; STAT 401C: JP 42CF ; GETCHR 401F: JP 4FD2 ; SNDCHR 4022: JP 429A ; CLOSE 4025: JP 406A ; EOF 4028: JP 4321 ; LOC 402B: JP 434C ; LOF 402E: JP 4389 ; BACKUP 4031: JP 50D6 ; SNDBRK 4034: JP 513B ; DTR 4037: RET, RET, RET ; NOENT 403A: RET, RET, RET ; NOENT 403D: RET, RET, RET ; NOENT RS-232C драйвер адресуется как устройство 8.