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

0

Для обмена данными как с диском, так и с лентой ЭВМ PET использует шину данных, соответствующую стандарту IEEE 488. Оператор OPEN имеет 256

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

Таблица  8.5. Значения дискового вторичного адреса для персональной ЭВМ PET

Дисковый вторичный

адрес

Значение

2-14

15

Используется командой LOAD

Используется командой SAVE

Ввод-вывод данных (до пяти номеров может быть использовано параллельно) Канал команд

Команды передаются по каналу, задаваемому вторичным адресом 15, оператором PRINT, а реакция

на эти команды воспринимается оператором INPUT. Этот канал имеет свой оператор OPEN, который должен быть выполнен до открытия любых каналов для обмена данными. Например, операторы

10   OPEN 15,8, 15 20   PRINT #15, "10"

используют  логический  номер  15  (первый  параметр)  для  привязки  к  дисковому   устройству (устройство  8)  с  вторичным  адресом  15  (канал  команд)  .  Для  инициации   работы   с  диском, установленным в дисководе 0, команды посылаются в виде строки  символов.  Приведем перечень различных команд:

N — обновление, I  — инициация,

D — копирование диска, С — копирование файла, R — удаление файла,

S — объявление файла рабочим,

$   — запрашивание справочника файлов (см. ниже) .

За полными сведениями обратитесь к руководству по дисковой операционной системе (ДОС) ЭВМ PET. Реакция на команды возвращается в специальном формате и может быть получена оператором INPUT #15, EN, EM$, ET, ES

(логический номер 15 выбран совпадающим с каналом команд для удобства запоминания), где

EN   содержит 0, если команда выполнена, или номер ошибки в противном

случае;

EM$ содержит сообщение об ошибке; ЕТ   содержит номер дорожки; ES   содержит номер сектора.

В ДОС имеется справочник файлов, который (при условии, что диск находится в дисководе 0) может быть получен следующим образом:

OPEN 15,8,15   (открыть диск и канал команд) ;

LOAD "$0", 8     (запрос на загрузку справочника файлов); LIST                     (изображение справочника файлов). Программы используют команды LOAD и SAVE, например: LOAD "0: PROCESS", 8 SAVE "0: RESULTS", 8

где 0 означает дисковод 0. Перейдем, наконец, к команде OPEN для открытия  последовательных файлов, требующей расширения параметра, стоящего в позиции имени  предыдущего (кассетного) файла, а именно задания его в виде

Номера дисковода соответствуют двум дисководам, встроенным в один корпус. Таким образом, для открытия файла данных можно использовать оператор

OPEN 4, 8,10, "0:PROCESS DATA, S, R"

Он открывает для чтения файл PROCESS DATA, находящийся на диске, номер которого  задается вторичным адресом 10, и привязывает его в программе к логическому номеру 4. После  открытия программа может использовать операторы

INPUT #4 PRINT #4 GET #4 CLOSE #4

Общая  процедура  работы  с  последовательным  файлом  в  системе  PET  может  быть   описана следующим образом:

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

10   OPEN 15, 8, 15

20   PRINT #15, "10"

30   GOSUB 1000

Оператор GOSUB вызывает подпрограмму, обрабатывающую реакцию системы.

(б)  Затем надо открыть файл либо для записи (если одноименный файл уже существует, то он будет уничтожен) посредством оператора

50  OPEN СН, 8, СН, "@0: INFO, S, W"

где СН содержит логический номер файла, либо для чтения посредством оператора

50   OPEN СН, 8, СН, "0: INFO, S, R"

После каждого такого оператора надо обратиться к подпрограмме обработки реакции системы. При чтении проверьте слово состояния ST, которое должно быть равно 0 при нормальном чтении и 64 при обнаружении конца файла.

(в)  После этого можно осуществлять считывание или запись с помощью операторов INPUT#, GET#

или PRINT#. После каждой операции надо обращаться к подпрограмме обработки реакции системы.

(г)  Перед концом работы программы надо закрыть файл. Подпрограмма обработки ошибок должна иметь следующий вид:

500   REM ПОДПРОГРАММА ОБРАБОТКИ ОШИБОК

510   INPUT #15, EN, EM$,ET, ES

520   IF EN=0 THEN RETURN

530   REM НАПЕЧАТАТЬ СООБЩЕНИЕ ОБ ОШИБКЕ

540   REM И ЗАКОНЧИТЬ РАБОТУ ЛИБО ЗАПРОСИТЬ

550   REM С ТЕРМИНАЛА ДЕЙСТВИЕ И ВЕРНУТЬСЯ В ПРОГРАММУ

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

По теме:

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