Главная » Basic » ПЕРСОНАЛЬНАЯ ЭВМ PET ФИРМЫ COMMODORE

0

В   ЭВМ   PET   применяется   довольно   универсальная   система   для   коммуникации   со   всеми устройствами, рассчитанными на подсоединение к шине данных, отвечающих стандарту  IEEE 488. Она имеет то преимущество, что пригодна для работы с множеством типов внешних устройств, но вводит некоторые дополнительные параметры в оператор OPEN, которые при  работе с простыми устройствами вовсе не обязательны. В этой системе все внешние устройства имеют фиксированные (в аппаратуре ЭВМ) номера устройств от 0 до 30, некоторые из которых показаны в табл. 8.4.

Таблица 8.4. Номера и типы устройств персональной ЭВМ PET фирмы Commodore

Номер устройства

Устройство

1                                                                                    Кассета 1

2                                                                                    Кассета 2

3                                                                                    Экран ВТУ

4                                                                                    Принтер

8                        Дисковод

Номер  устройства  связывается  с  логическим    номером    файла,  используемым    программой  в операторе OPEN,  общая  форма  записи  которого такова: OPEN  логический номер файла,  номер устройства, вторичный адрес, имя файла

В контексте операций с лентой термин "вторичный адрес" немного сбивает с толку, так как на деле этот параметр используется для указания режима открытия устройства. По умолчанию

принимается значение 0 , отвечающее

открытию только для чтения; 1 соответствует открытию для записи, а 2 — для записи, при которой после закрытия в файл принудительно записывается метка конца файла. Имя файла  указывать не обязательно, но желательно. Оно может включать в себя до 128 символов. Например, оператор

OPEN 1,2,1, "DATA FOR PAYROLL"

открывает  второй  кассетный  магнитофон  для  записи  на  него  файла  DATA  FOR  PAYROLL  и привязывает его к логическому номеру 1.

Ниже   приведены   операторы,   которыми   можно   пользоваться   для    работы   с    кассетными магнитофонами:

OPEN #N, D, вторичный адрес, "имя файла" PRINT #N, INPUT #N, GET #N, CLOSE N

Размер буфера составляет 192 символа, но длина записи, используемой в одном операторе  INPUT или PRINT, не должна превышать 80 символов. Не забывайте вставлять запятую "," или CHR$ (44), между значениями, входящими в состав одной записи.

8.3.2.  СИСТЕМА ВВС

Одна из операционных систем для микроЭВМ ВВС специально рассчитана на работу с кассетой. Она называется CFS (cassette filing system — кассетная файловая система). Виды команд в этой системе и в дисковой операционной системе ничем не отличаются, но из-за особенностей, присущих ленточному носителю, возможности этих команд в кассетной системе несколько ограничены. Они являются функциями,  возвращающими  логический  номер  файла,   устанавливаемый  системой.  Например, оператор

N=OPENIN ("имя файла")

откроет файл только для чтения и привяжет его к программе, поместив логический номер файла в переменную N:

N=OPENIN ("PROCESS") А оператор

N=OPENOUT ("имя файла") создаст новый файл и откроет его только для записи: N=OPENOUT ("RESULTS")

Ниже приведены операторы, которыми можно пользоваться при работе с кассетой: M=OPENIN ("имя файла")

M=OPENOUT ("имя файла") INPUT #M,

X=BGET#(M) PRINT #M, BPUT #М, CLOSE #M

Для  обнаружения  конца  файла  с  логическим  номером  М  используется  функция  EOF#(М).  Она возвращает —1, если обнаружен конец файла; в противном случае 0. (Учтите, что в  системе  ВВС значению "истина" соответствует -1,а"ложь"0.)

В кассетой файловой системе имена файлов не должны состоять более чем из 10 символов, но могут включать в себя специальные символы (в отличие от имен переменных).

Приведенный ниже фрагмент программы иллюстрирует применение некоторых из указанных выше операторов. Он запоминает список адресов в файле по имени MAILLIST. Адреса вводятся с клавиатуры в строке 140 в строковую переменную ADDS и записываются из нее в файл в строке 150. 100 REM СОЗДАНИЕ ПОСЛЕДОВАТЕЛЬНОГО ФАЙЛА В БЕЙСИКЕ ВВС

110 N=OPENOUT("MAILLIST")

120 INPUT "ВВЕДИТЕ ЧИСЛО АДРЕСОВ".М

130 FOR I=1 ТО М

140 INPUT "АДРЕС".ADD$

150        PRINT#N.ADD$

160 NEXT I

170 CLOSE#N

Оператор OPENIN открывает существующий кассетный файл для ввода, а оператор OPENOUT открывает файл для вывода из программы. Как INPUT#, так и PRINT# могут обрабатывать все типы переменных и обеспечивать обмен и числовыми значениями, и строками символов между программой и файлом. В дополнение к этому операторы BGET# и BPUT# дают возможность передачи отдельных байтов из файла в программу и наоборот. Приведенная ниже программа использует BPUT для запоминания отдельных байтов в кассетном файле:

10 REM СОЗДАНИЕ ПОСЛЕДОВАТЕЛЬНОГО ФАЙЛА В БЕЙСИКЕ ВВС

20 L=OPENOUT("CHRS")

30 REPEAT

40   A$=GET$

50   BPUT#L,ASC(A$)

60 UNTIL A$="*"

70 CLOSE#L

80 END

Байты образуются за счет ввода с клавиатуры отдельных символов с помощью GETS в строке 40, а цикл REPEAT завершается при нажатии на клавишу со звездочкой (*).

8.3.3.  ФАЙЛЫ НА ГИБКИХ ДИСКАХ

Этот подраздел посвящен последовательным файлам на гибких дисках; по поводу деталей работы с файлами прямого доступа обратитесь к разд. 8.5, хотя многие из операторов, требуемых для работы с дисковыми файлами прямого доступа, представлены в настоящем подразделе. В следующих подразделах обсуждаются дисковые файловые системы для персональных ЭВМ PET фирмы Commodore, ВВС, а также для Бейсика Microsoft при работе с операционной системой СР/М.

Источник: Уолш Б.    Программирование на Бейсике: Пер. с англ. М.: Радио и связь, 1988. 336 с: ил.

По теме:

  • Комментарии