MSX NET-BIOS. Сеть MSX2 RS-232C имеет систему стандартных функций вво- да-вывода (BIOS), включающую в себя различные функции. Обращаясь прямо к ней, можно работать с сетью из программ на машинном языке в MSX-DOS. Как обращаться к NET-BIOS. Для обращения к NET-BIOS необходимо поместить номер функ- ции в регистр C, первый адрес блока параметров в регистро- вую пару DE, а затем вызвать подпрограмму по адресу F989H. Перед вызовом подпрограммы по этому адресу, необходимо об- ратиться к подпрограмме по адресу F98EH, которая инициали- зирует сеть в MSX-DOS. Без инициализации вызов любой стан- дартной функции вызовет ошибку. Для окончания работы с сетью обратитесь к подпрограмме по адресу F984H. Это обращение возможно, если Ваш компьютер имеет сетевое ПЗУ (NET-ROM). Вы можете узнать, есть ли оно у Вас, проверив, находиться ли по адресу, который Вы вызы- ваете, RST 30H (F7H) или проверив идентификатор "RNT", ко- торый должен находиться по адресам 4040H - 4042H в сетевом ПЗУ. Таким образом : Инициализация сети F98EH Обращение к NET-BIOS F989H Конец работы с сетью F984H Номер функции в регистре C 01H-1AH Помните, что некоторые части NET-BIOS используются только преподавателем, некоторые - только учеником,а некоторые как тем, так и другим. (Не забудьте также о том, что во время обращения ученика к диску с помощью NET-BIOS возможны паузы в работе системы). Примечание : Описываемая NET-BIOS будет работать только в операционной системе MSX-DOS 1.03 ( см. дистрибутивный диск MSX-DOS). Для работы в MSX-DOS 1.26 или в Nike-DOS,используйте дру- гие адреса : Инициализация сети 8FH/401CH Обращение к NET-BIOS 8FH/4019H Конец работы с сетью 8FH/4016H Вызов таким образом : rst 30H defb 8Fh defw address Список функций NET-BIOS ¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬ Номер и название : Функция : 0 00H INIT : Инициализация сети. 1 01H INTON : Разрешение прерываний по сети. 2 02H INTOFF : Запрещение прерываний по сети. 3 03H PON : Начало упорядоченного опроса. 4 04H POFF : Конец упорядоченного опроса. 6 06H WHO : Проверка номера. 8 08H SHEX : Пересылка программы в кодах. 9 09H SHEXS : Пересылка видеопамяти (VRAM). 11 0BH RHEX : Прием программы в кодах. 12 0CH RHEXS : Прием видеопамяти (VRAM). 13 0DH MESS : Передача сообщения ученику. 14 0EH TALK : Передача сообщения преподавателю. 15 0FH SNDM : Передача "почтового ящика". 16 10H RNDM : Прием "почтового ящика". 17 11H POKE : Запись в память. 18 12H PEEK : Чтение из памяти. 19 13H SNDCMD : Передача команды. 22 16H BREAK : Передача кода остановки программы. 23 17H CHECK : Проверка подключения к сети. 24 18H ENDNET : Конец работы с сетью. 25 19H ENACOM : Разрешение связи между учениками. 26 1AH DISCOM : Запрещение связи между учениками. Функция 1 : INTON Преподаватель/ученик [Функция] Разрешает прерывания по сети. [Код] C = 01H [Возвращает] ------- [Комментарий] Эта функция разрешает прерывания при работе с сетью. Без этой команды какая-либо связь в классе невозможна. Функция 2 : INTOFF Преподаватель/ученик [Функция] Запрещает прерывания по сети. [Код] C = 02H [Возвращает] ------- [Комментарий] Эта функция запрещает прерывания при работе с сетью. Так как связь в классе поддержива- ется через прерывания процессора, когда они запрещены, какая-либо связь невозможна. Функция 3 : PON Преподаватель [Функция] Начинает упорядоченный опрос учеников. [Код] C = 03H [Возвращает] ------- [Комментарий] Эта функция начинает упорядоченный опрос учеников. Без него невозможно правильно оп- ределить, кто из учеников подключен к сети (т.е. правильность работы Функции 24 CHECK не гарантируется), невозможен также прием сообщений от учеников (Функция TALK). Пом- ните, вызов Функции 1 (INTON), не означает что опрос начат, т.е. при ее вызове опрос отключен и его надо активировать отдельно. Функция 4 : POFF Преподаватель [Функция] Прекращает упорядоченный опрос учеников. [Код] C = 04H [Возвращает] ------- [Комментарий] Прекращает упорядоченный опрос учеников. Для его начала используйте Функцию 3 (PON). Функция 5 : HELP Преподаватель/ученик [Функция] Высвечивает список сетевых команд BASIC'а. [Код] C = 05H [Возвращает] ------- [Комментарий] Эта функция выводит на экран список сетевых команд BASIC'а. Этот список различен для преподавателя и ученика (см. выше). Для уче- ника эта функция высвечивает также его но- мер. Экран должен быть в текстовом режиме. Функция 6 : WHO Преподаватель/ученик [Функция] Возвращает номер вашего компьютера. [Код] C = 06H [Возвращает] A = номер преподавателя или ученика 00H = преподаватель 01H - 0FH = ученики [Комментарий] Эта функция возвращает в регистре A, номер Вашего компьютера, установленный переключа- телем в сетевом блоке. В классе не может быть несколько компьютеров с одинаковыми номерами, если это не так, воспользуйтесь переключателем в сетевом блоке. Функция 7 : SEND Преподаватель/ученик [Функция] Передает программу на BASIC'е. [Код] C = 07H DE = адрес блока параметров PAR 1 = номер ученика 00H = всем ученикам 01H - 0FH = номер отдельного ученика PAR 2-3 = адрес блока контроля файлов (FCB) [Возвращает] CARRY OFF - функция выполнена нормально. CARRY ON - ошибка. [Комментарий] Эта функция читает программу на BASIC'е с диска и пересылает ее ученику или всем уче- никам. Файл с этой программой определяется в блоке контроля файлов (FCB) и должен быть открыт до вызова этой функции. Ученик дол- жен находиться в режиме BASIC'а. Функция 8 : SHEX Преподаватель [Функция 1] Передает программу на машинном языке из памяти. [Код] C = 08H DE = адрес блока параметров PAR 1 = номер ученика 00H = всем ученикам 01H - 0FH = номер отдельного ученика PAR 2 = 0 PAR 3-4 = начальный адрес ученика PAR 5-6 = начальный адрес преподавателя PAR 7-8 = конечный адрес преподавателя [Возвращает] CARRY OFF - функция выполнена нормально. CARRY ON - ошибка. [Комментарий] Эта функция пересылает программу на машин- ном языке или данные из памяти преподава- теля в память ученика или всех учеников. [Функция 2] Передает файл на машинном языке. [Код] C = 08H DE = адрес блока параметров PAR 1 = номер ученика 00H = всем ученикам 01H - 0FH = номер отдельного ученика PAR 2 = любое значение кроме 0 PAR 3-4 = начальный адрес у ученика (если указать 0FFFFH - будет начальный адрес файла) PAR 5-6 = адрес блока контроля файлов (FCB) [Возвращает] CARRY OFF - функция выполнена нормально. CARRY ON - ошибка. [Комментарий] Эта функция читает программу на машинном языке с диска и пересылает ее ученику или всем ученикам. Файл с этой программой оп- ределяется в блоке контроля файлов (FCB) и должен быть открыт до вызова этой функ- ции. Функция 9 : SHEXS Преподаватель [Функция 1] Передает изображение (данные видеопамяти). [Код] C = 09H DE = адрес блока параметров PAR 1 = номер ученика 00H = всем ученикам 01H - 0FH = номер отдельного ученика PAR 2 = 0 PAR 3-4 = начальный адрес у ученика PAR 5-6 = начальный адрес у преподавателя PAR 7-8 = конечный адрес у преподавателя [Возвращает] CARRY OFF - функция выполнена нормально. CARRY ON - ошибка. [Комментарий] Эта функция пересылает изображение (дан- ные видеопамяти) из видеопамяти преподава- теля в видеопамять ученика или всех учени- ков. [Функция 2] Передает файл на машинном языке. [Код] C = 09H DE = адрес блока параметров PAR 1 = номер ученика 00H = всем ученикам 01H - 0FH = номер отдельного ученика PAR 2 = любое значение кроме 0 PAR 3-4 = начальный адрес у ученика (если указать 0FFFFH - будет начальный адрес файла) PAR 5-6 = адрес блока контроля файлов (FCB) [Возвращает] CARRY OFF - функция выполнена нормально. CARRY ON - ошибка. [Комментарий] Эта функция читает изображение (данные ви- деопамяти) с диска и пересылает их ученику или всем ученикам. Файл с этими данными определяется в блоке контроля файлов (FCB) и должен быть открыт до вызова этой функ- ции. Функция 10: RECEIVE Преподаватель [Функция] Принимает программу на BASIC'е. [Код] C = 0АH DE = адрес блока параметров PAR 1 = номер ученика 00H = всем ученикам 01H - 0FH = номер отдельного ученика PAR 2-3 = адрес блока контроля файлов (FCB) [Возвращает] CARRY OFF - функция выполнена нормально. CARRY ON - ошибка. [Комментарий] Эта функция принимает программу на BASIC'е у указанного ученика и записывает ее на диск. Файл для программы на BASIC'е должен быть определен в блоке контроля файлов (FCB) до вызова этой функции. Ученик должен быть в режиме BASIC'а. Функция 11: RHEX Преподаватель [Функция 1] Принимает программу на машинном языке в память. [Код] C = 0BH DE = адрес блока параметров PAR 1 = номер ученика 01H - 0FH = номер отдельного ученика PAR 2 = 0 PAR 3-4 = начальный адрес ученика PAR 5-6 = конечный адрес ученика PAR 7-8 = начальный адрес преподавателя [Возвращает] CARRY OFF - функция выполнена нормально. CARRY ON - ошибка. [Комментарий] Эта функция принимает программу на машин- ном языке или данные из памяти ученика в память преподавателя. [Функция 2] Передает программу на машинном языке в файл на диске. [Код] C = 0BH DE = адрес блока параметров PAR 1 = номер ученика 01H - 0FH = номер отдельного ученика PAR 2 = любое значение кроме 0 PAR 3-4 = начальный адрес ученика PAR 5-6 = конечный адрес ученика PAR 7-8 = адрес блока контроля файлов (FCB) [Возвращает] CARRY OFF - функция выполнена нормально. CARRY ON - ошибка. [Комментарий] Эта функция передает программу на машинном языке из памяти ученика и записывает ее на диск. Файл для этой программы должен быть определен в блоке контроля файлов (FCB) и открыт до вызова этой функции. Функция 12: RHEXS Преподаватель [Функция 1] Принимает изображение (данные видеопамяти). [Код] C = 0CH DE = адрес блока параметров PAR 1 = номер ученика 01H - 0FH = номер отдельного ученика PAR 2 = 0 PAR 3-4 = начальный адрес ученика PAR 5-6 = конечный адрес ученика PAR 7-8 = начальный адрес преподавателя [Возвращает] CARRY OFF - функция выполнена нормально. CARRY ON - ошибка. [Комментарий] Эта функция принимает изображение (данные видеопамяти) из видеопамяти ученика в ви- деопамять преподавателя. [Функция 2] Передает изображение (данные видеопамяти) в файл на диске. [Код] C = 0CH DE = адрес блока параметров PAR 1 = номер ученика 01H - 0FH = номер отдельного ученика PAR 2 = любое значение кроме 0 PAR 3-4 = начальный адрес ученика PAR 5-6 = конечный адрес ученика PAR 7-8 = адрес блока контроля файлов (FCB) [Возвращает] CARRY OFF - функция выполнена нормально. CARRY ON - ошибка. [Комментарий] Эта функция передает изображение (данные видеопамяти) ученика и записывает его на диск. Файл для этой программы должен быть определен в блоке контроля файлов (FCB) и открыт до вызова этой функции. Функция 13: MESSAGE Преподаватель [Функция] Передает сообщение от учителя одному или всем ученикам. Если ученик находится в ре- жиме BASIC'а, сообщение будет выведено на экран. Если же ученик в MSX-DOS'е сообще- ние выведено не будет и для его обработки необходима специальная подпрограмма. Ее работа возможна, так как при принятии соо- бщения, выставляется специальный флаг, ко- торый и должен обрабатываться подпрограм- мой. [Код] C = 0DH DE = адрес блока параметров PAR 1 = номер ученика 00H = всем ученикам 01H - 0FH = номер отдельного ученика PAR 2-3 = адрес памяти, начиная с кото- рого записано сообщение PAR 4-5 = длина сообщения. [Возвращает] CARRY OFF - функция выполнена нормально. CARRY ON - ошибка. [Комментарий] Эта функция передает сообщение учителя од- ному или всем ученикам. Если ученик нахо- дится в режиме BASIC'а, сообщение будет выведено на экран. Если же ученик в MSX-DOS'е сообщение выведено не будет и для его обработки необходима специальная подпрограмма. Ее работа возможна, так как при принятии сообщения, выставляется специ- альный флаг, который и должен обрабатывать- ся подпрограммой. Функция 14: TALK Преподаватель [Функция] Передает сообщение ученика учителю. [Код] C = 0EH DE = адрес блока параметров PAR 1 = номер ученика 00H = преподаватель 01H - 0FH = номер отдельного ученика PAR 2-3 = адрес памяти, начиная с кото- рого записано сообщение PAR 4-5 = длина сообщения. [Возвращает] A = 00H - сообщение записано нормально FFH - осталось старое сообщение CARRY ON - ошибка [Комментарий] Если ученик получил разрешение участвовать в связи по сети, то он может посылать сооб- щения преподавателю и другим ученикам. Если разрешение не дано, то сообщения от него мо- гут посылаться только преподавателю. (Для стирания сообщений нажимают на любую клавишу.) Функция 15: SNDMAIL Преподаватель [Функция] Передает содержимое почтового ящика. [Код] C = 0FH DE = адрес блока параметров PAR 1 = номер ученика 00H = всем ученикам 01H - 0FH = номер отдельного ученика [Возвращает] CARRY OFF - функция выполнена нормально. CARRY ON - ошибка. [Комментарий] Эта функция копирует содержимое преподава- тельского почтового ящика для передачи, в приемный почтовый ящик указанного или всех учеников. Изначально длина ящика равна 256 байтам, но она может быть изменена, указа- нием новой длины в рабочей области. Будьте внимательны, так как если длина передающе- го почтового ящика преподавателя больше, чем приемного ящика ученика, то часть ин- формации будет потеряна. Использование поч- товых ящиков полностью зависит от Вас. Функция 16: RCVMAIL Преподаватель [Функция] Принимает содержимое почтового ящика. [Код] C = 10H DE = адрес блока параметров PAR 1 = номер ученика 01H - 0FH = номер отдельного ученика [Возвращает] CARRY OFF - функция выполнена нормально. CARRY ON - ошибка. [Комментарий] Эта функция принимает содержимое передаю- щего почтового ящика ученика и записывает его в приемный ящик преподавателя. Коли- чество информации зависит от длины переда- ющего ящика ученика. Будьте внимательны, так как если длина передающего почтового ящика преподавателя больше,чем приемного ящика ученика, то часть информации будет потеряна. Функция 17: POKE Преподаватель/ученик [Функция] Записывает в память. [Код] C = 11H DE = адрес блока параметров PAR 1 = номер ученика 00H = всем ученикам 01H - 0FH = номер отдельного ученика PAR 2-3 = адрес ячейки PAR 4 = значение PAR 5 = выбор 00H - память ученика 01H - сетевая память ученика 02H - Ваша сетевая память [Возвращает] CARRY OFF - функция выполнена нормально. CARRY ON - ошибка. [Комментарий] Эта функция в зависимости от параметра PAR 5, записывает указанное значение в обычную или сетевую память отдельного или всех учеников, или (как для преподавателя, так и для ученика) записывает это значение в сетевую память Вашего компьютера. Функ- ция не проверяет в какое именно место па- мяти она пишет, и всегда выполняется нор- мально если только по указанному адресу не находится ПЗУ или вообще отсутствует память. Функция 18: PEEK Преподаватель/ученик [Функция] Читает из памяти. [Код] C = 12H DE = адрес блока параметров PAR 1 = номер ученика 01H - 0FH = номер отдельного ученика PAR 2-3 = адрес ячейки PAR 5 = выбор 00H - память ученика 01H - сетевая память ученика 02H - Ваша сетевая память [Возвращает] A = значение записанное по данному адресу. CARRY OFF - функция выполнена нормально. CARRY ON - ошибка. [Комментарий] Эта функция в зависимости от параметра PAR 5, читает число записанное по ука- занному адресу, из обычной или сетевой памяти отдельного или всех учеников, или (как для преподавателя,так и для ученика) читает это значение из сетевой памяти Вашего компьютера. Эта функция всегда вы- полняется нормально если только по указан- ному адресу не находится ПЗУ или вообще отсутствует память. Функция 19: SNDCMD Преподаватель [Функция] Передает команду на BASIC'е. [Код] C = 13H DE = адрес блока параметров PAR 1 = номер ученика 00H = всем ученикам 01H - 0FH = номер отдельного ученика PAR 2-3 = адрес памяти, начиная с кото- рого записана команда PAR 4-5 = длина сообщения. [Возвращает] CARRY OFF - функция выполнена нормально. CARRY ON - ошибка. [Комментарий] Эта функция передает одному или всем учени- кам команду на BASIC'е и выполняет ее. Пос- ле приема команды у ученика в конце ее при- бавляется код возврата каретки (CR). Учени- к(-и) должны быть в режиме BASIC'а (эта ко- манда может и не быть командой BASIC'а, но если интерпритатор ее не поймет, у ученика появится сообщение об ошибке). Функция 20: RUN Преподаватель [Функция] Запускает программу на BASIC'е. [Код] C = 14H DE = адрес блока параметров PAR 1 = номер ученика 00H = всем ученикам 01H - 0FH = номер отдельного ученика PAR 2-3 = номер стартовой строки (если указан 0FFFFH - первая строка программы) [Возвращает] CARRY OFF - функция выполнена нормально. CARRY ON - ошибка. [Комментарий] Эта функция запускает программу на BASIC'е отдельного или всех учеников. Ученик(-и) должны быть в режиме BASIC'а. Функция 21: STOP Преподаватель [Функция] Останавливает программу на BASIC'е. [Код] C = 15H DE = адрес блока параметров PAR 1 = номер ученика 00H = всем ученикам 01H - 0FH = номер отдельного ученика [Возвращает] CARRY OFF - функция выполнена нормально. CARRY ON - ошибка. [Комментарий] Эта функция производит такое же действие как если бы ученик нажал CTRL-STOP. Если ученик находится в режиме BASIC'а проис- ходит остановка программы или переход на начало следующей строки (в командном ре- жиме). Если ученик находится в MSX-DOS'е то команда игнорируется. Функция 22: BREAK Преподаватель [Функция] Передает код остановки. [Код] C = 16H [Возвращает] ------- [Комментарий] Эта функция посылает ученикам код остановки Когда их компьютеры получают этот код во время связи, они сбрасывают все полученные до этого данные и становятся готовыми к приему. Функция 23: CHECK Преподаватель [Функция] Проверяет, кто из учеников подключен к сети. [Код] C = 17H [Возвращает] HL = побитовая информация, кто подключен к сети. H L BIT F E D C B A 9 8 7 6 5 4 3 2 1 0 * * * * * * * * * * * * * * * * V 0: включен (ON LINE) V 1: запрещена (OFF LINE) ZWWWWWWWWWWWWWWWWWWW> всегда 0 DE = побитовая информация, кому разрешена работа с сетью. D E BIT F E D C B A 9 8 7 6 5 4 3 2 1 0 * * * * * * * * * * * * * * * * V 0: разрешена (ENACOM) V 1: запрещена (DISCOM) ZWWWWWWWWWWWWWWWWWWW> всегда 0 [Комментарий] Эта функция проверяет, кто из учеников под- ключен к сети, кому из них разрешена связь с другими учениками. То что ученик отключен от сети означает, что его компьютер выклю- чен или физически отключен от сети. Эта ин- формация обновляется в каждом цикле упоря- доченного опроса, если же опрос выключен, хранится последняя, полученная до его от- ключения информация. Информация о том, кому разрешена связь с другими учениками, зави- сит только от функций ENACOM и DISCOM. Функция 24: ENDNET Преподаватель [Функция] Заканчивает работу сети. [Код] C = 18H [Возвращает] CARRY OFF - функция выполнена нормально. CARRY ON - ошибка. [Комментарий] Эта функция аналогична вызову подпрограммы по адресу F98EH, заканчивающей работу с се- тью. Выключение сети бывает необходимо для работы с некоторыми прикладными программами вызов которых невозможен при работающей се- ти. Для включения сети используйте вызов подпрограммы по адресу ?????H. Функция 25: ENACOM Преподаватель [Функция] Разрешает связь ученикам. [Код] C = 19H DE = адрес блока параметров PAR 1 = номер ученика 00H = всем ученикам 01H - 0FH = номер отдельного ученика [Возвращает] CARRY OFF - функция выполнена нормально. CARRY ON - ошибка. [Комментарий] Эта функция разрешает отдельному или всем ученикам связь между собой. Функция 26: DISCOM Преподаватель [Функция] Запрещает связь ученикам. [Код] C = 1АH DE = адрес блока параметров PAR 1 = номер ученика 00H = всем ученикам 01H - 0FH = номер отдельного ученика [Возвращает] CARRY OFF - функция выполнена нормально. CARRY ON - ошибка. [Комментарий] Эта функция запрещает отдельному или всем ученикам связь между собой.