В.В. Сапогов (г. Чебоксары)

Система автоматического управления накопителем на магнитной ленте (бытовым магнитофоном) на базе БК-0010

Назначение и основные свойства

Система автоматического управления накопителем на магнитной ленте (бытовым магнитофоном) предназначена для работы в составе прикладных программ, реализованных на персональном компьютере БК- 0010.01, написанных на языке БЕЙСИК.

Как известно, объём памяти, предоставляемый пользователю БК в режиме полноформатного экрана, составляет 16 Кбайт. За вычетом ОЗУ, используемого для служебных нужд Бейсик-системы, фактический объём ОЗУ, которым может располагать пользователь, составляет чуть более 14 Кбайт. Такой ограниченный объём ОЗУ приводит к тому, что массивы данных для пользовательских программ чаще всего не превышают 3-4 Кбайта, что во многих случаях неприемлемо мало. Одним из способов решения проблемы нехватки памяти для данных может быть последовательная обработка блоков информации, при которой исходные данные считываются с магнитной ленты и на неё же "сбрасываются" результаты вычислений или промежуточные данные, при этом единовременно обрабатываемый блок информации по величине ограничен объёмом ОЗУ, а общий объём - ёмкостью кассеты с магнитной лентой и способом записи. Такой способ обработки позволяет существенно увеличить возможности БК.

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

Программная часть системы фактически состоит из трёх подпрограмм, первая из которых реализует программное выполнение операторов SAVE, BLOAD. (Эта программа целиком взята из статьи "Включение подпрограмм в машинных кодах в программы на БЕЙСИКе для БК0010", серия "Вычислительная техника и её применение". - 1988. - №9.) Вторая выполняет автопоиск нужного массива на магнитной ленте по заранее заданному адресу, третья выполняет вспомогательные функции только при подготовке программы к работе и не участвует непосредственно в работе остальных частей. Операторы всех программ должны быть вставлены в прикладную программу. Управление программами выполняется с помощью переменных, значения которых задаются перед вызовом подпрограммы.

В качестве накопителя на магнитной ленте необходимо использовать кассетный магнитофон, имеющий электронно-логическое управление и оптоэлектронный датчик, связанный с движением ленты. Автором система была смонтирована на магнитофоне "Нота-225".

Аппаратная часть системы позволяет реализовать режим работы магнитофона под управлением компьютера. Для управления магнитофоном используются шесть разрядов выходного порта и два разряда входного порта компьютера. Разряды выбраны таким образом, чтобы сохранить возможность подключения к компьютеру принтера, связь с которым осуществляется через те же порты. Связь компьютера с магнитофоном осуществляется посредством 8-жильного кабеля. В схеме аппаратной части используются доступные микросхемы серий K155 и K140.

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

Автор полагает, что затраты труда и времени компенсируются удобством работы с программой после её окончательной настройки и увеличением возможностей компьютера БК-0010.


image12.png


Программное обеспечение

Текст программы, используемой в системе автоматического управления накопителем на магнитной ленте (бытовым магнитофоном).

210 DATA 5443,4930,5569,214,-27503,32450,135
220 FOR I1%=0%TO6%
230 READ I%
240 POKE &O400+2%*I1%,I%
250 NEXT I1%
260 DEF USR1=&O400
270 DEF USR2=&O100602
5000 J%=&O177714
5002 I2%=0%
5005 Z1%=0%
5010 POKE J%,1024%
5030 GOSUB5990
5050 A1%=0%
5060 IF INP(J%,&B10)=0% GOTO 5060 ELSE POKE J%,512%
5100 I1%=1%
5110 IF INP(J%,&B1)=0% GOTO 5100
5120 IF I1%<1% GOTO 5110
5130 A1%=A1%+1%
5140 IF A1%>=R1% GOTO 5160 ELSE I1%=0%
5150 GOTO 5110
5160 IF Z%=1% THEN POKE J%,12288% ELSE POKE J%,4096%
5170 A$=USR1(NF$)
5180 IF Z1%=1% THEN POKE &O322,J3% ELSE POKE &O322,J1%
5190 IF Z%=1% GOTO 5360
5200 POKE &O320,3%
5210 I1%=USR2(I1%)
5220 POKE J%,2048%
5230 GOSUB5990
5240 GOSUB5990
5250 IF PEEK(&O320)\256%=0% THEN RETURN
5260 I2%=I2%+1%
5270 IF Z1%=1% GOTO 5340
5280 PRINT" СЧИТЫВАНИЯ #";I2%
5290 IF I2%<3% GOTO 5010
5300 PRINT"ПРОЧИСТИТЕ ГОЛОВКУ,ЗАТЕМ НАЖМИТЕ КЛ.ВВОД";
5310 GOSUB6080
5320 INPUT I1%
5330 IF Z1 %=0% GOTO 5002 ELSE RETURN
5340 PRINT "КОНТРОЛЬНОГО СЧИТЫВАНИЯ"
5350 GOTO 5300
5360 POKE &O324,J2%
5370 POKE &O320,2%
5380 I1%=050%
5390 GOSUB6000
5400 I1%=USR2(I1%)
5410 POKE J%,2048%
5420 GOSUB5990
5430 GOSUB5990
5440 Z1%=1%
5442 R2%=R1%
5445 R1%=050%
5450 Z%=0%
5460 GOSUB5010
5465 R1%=R2%
5470 Z%=1%
5480 IF I2%><0% GOTO 5002 ELSE RETURN
5990 I1%=4%
6000 FOR I%=0% TO I1%
6010 I3%=SIN(I%)
6020 NEXT I%
6030 IF I1%=4% THEN POKE J%,0%
6040 RETURN
6080 FOR I%=0% TO 40%
6090 BEEP
6100 NEXT I%
6110 RETURN
9100 FOR I%=T1 %TO 2% STEP2%
9110 PRINT I%,PEEK(I%)
9120 NEXT I%
9130 RETURN
280 DIM AM%(N)
/по количеству предполагаемых записей\
290 DATA 0000%,0000%,.... ,0000%,0000%
300 FOR I1%=1% TO N
310 READ I%
320 AM%(I1%)=I%
330 NEXT I1%

Здесь N - количество предполагаемых записей.

Перед описанием программы необходимо напомнить, что порт ввода- вывода компьютера БК-0010 имеет адрес ячейки памяти &O177714 как для ввода, так и для вывода.

Как уже было упомянуто, программа фактически состоит из трёх подпрограмм. Текст подпрограммы в машинных кодах содержится в операторе 210. Её начальный адрес и номер задаются в операторе 260. Назначение этой подпрограммы - пересылка в необходимое место ОЗУ имени загружаемого или считываемого с магнитной ленты файла. Подпрограмма записи или считывания данных в двоичном коде уже имеется в ПЗУ компьютера. В операторе 270 задаётся её стартовый адрес. Более подробно с работой этих подпрограмм можно ознакомиться в названной выше статье (№ 9, 1988 r.).

Главная часть программы содержится в операторах 5000-6110. Сюда входят и две служебные подпрограммы. Подпрограмма 6000-6040 - управляемая выдержка времени, если обратиться к этой подпрограмме с адреса 5990, то выполняется ещё и очистка выходного порта. Подпрограмма 6080-6110 - звуковой сигнал.

Управление режимами работы магнитофона выполняется с помощью оператора POKE, с помощью которого по адресу выходного порта (&O177714) записываются определённые числа. С помощью оператора РЕЕК считывается состояние определённых разрядов входного порта. Разряды портов ввода/вывода и их назначение приведены в табл. 1.

Таблица 1

Порт

Разряд порта

Код

Контакты "УП"

Назначение

Вывод

9

512

B28

Перемотка к концу

-"-

10

1024

A27

Перемотка к началу

-"-

11

2048

B27

Стоп

-"-

12

4096

A26

Воспроизведение

-"-

12,13

12288

A26, B26

Запись

Ввод

0

0

B24

Ввод сигнала с оптодатчика

-"-

1

1

A24

Ввод сигнала "Стоп''

Вызов предлагаемой программы программами пользователя должен выполняться посредством оператора GOSUB 5000, вставляемого в соответствующие места программы пользователя. Управление программой выполняется с помощью переменных, значения которых должны быть присвоены до выполнения оператора GOSUB 5000. Имена переменных и их значения приведены в табл. 2.

Таблица 2

Имя

Значение

Функция в программе

Z%

0%

Считывание данных с магнитной ленты

1%

Запись данных на магнитную ленту

NF$

По выбору пользователя

Имя файла данных (не более 16 символов)

R1%

0%-7000%

Адрес файла данных на магнитной ленте (определяется до начала работы программы)

J1%

Определяются перед началом работы программы

Адрес начала файла* данных в ОЗУ

J2%

Длина записываемого файла

J3%

Адрес начала служебной области для контрольного считывания записанного файла

 

Переменная Z% задаёт основные режимы работы программы - считывание или запись. Переменная NF$ определяет имя файла. Имя может быть индивидуальным для каждого файла или общим для всех. Лучше, если длина этой переменной всегда будет составлять 16 символов. Переменная R1% определяет адрес файла на магнитной ленте. Так как на магнитную ленту можно записать несколько десятков файлов, то их адреса лучше свести в массив и по мере необходимости присваивать значения определённых элементов этого массива переменной R1%. Значения адресов должны быть определены до начала работы программы. Для повышения надёжности записи в программе непосредственно после записи информации на ленту выполняется её контрольное считывание и в случае неуспешного считывания операция записи повторяется, и так до 3 раз. Начало области контрольного считывания задаётся переменной J3%. Под контрольное считывание должен отводиться такой же по объёму участок ОЗУ, как для выводимого массива. Совмещать эти области нельзя, так как при неудачном контрольном считывании будет испорчена информация в рабочем массиве, что не позволит выполнить правильную повторную запись. В программе также используются переменные: J% - восьмеричный адрес порта ввода-вывода; I2% - счётчик количества ошибочных считываний; Z1% - вспомогательная переменная, показывающая, что при Z1%=0% выполняется считывание рабочего массива, при Z1%=1% выполняется контрольное считывание.

Для определения переменных J1%, J2%, J3% служит вспомогательная подпрограмма 9100-9130, которая используется только при настройке программы.

Методика определения J1%, J2%, J3% и R1% будет приведена ниже. Если пользователь считает, что контрольное считывание излишне, можно удалить из программы операторы или их части, выделенные в тексте программы. Но стоит заметить, что даже на магнитофоне сравнительно высокого класса, каким является "Hoта-225", ошибки при работе с магнитной лентой не редкое явление.

Принципиальная схема аппаратной части приведена на рисунке. В схеме использовано пять корпусов микросхем наиболее распространённых серий 1 шт. К140УД8А, 1 шт. К155ЛАЗ, 3 шт. К155ЛА8. При необходимости микросхемы можно заменить другими, имеющими те же функции.

Разъёмы магнитофона, к которым подключается схема, имеют обозначения и нумерацию контактов в соответствии с принципиальной схемой, приводимой в описании магнитофона "Нота-225".

Функционально схему можно разделить на две части: формирователь сигналов управления компьютера, выполненный на DD1 или DD3, и формирователь сигналов оптодатчика и автостопа на DA1, DD4. Формирователь сигналов управления усиливает сигналы выходного порта компьютера, соответствующие выходы микросхем подключаются параллельно контактам клавиш управления магнитофона. Оптодатчик магнитофона служит датчиком расхода ленты. Формирователь сигнала оптодатчика содержит компаратор на микросхеме DA1. Сигнал автостопа используется для определения достижения начала ленты при перемотке к началу.

В качестве варианта монтажа схемы можно предложить разместить формирователи каждый на своей плате. Плата формирователя оптодатчика и автостопа встраивается в магнитофон, а плата формирователя сигналов управления компьютера устанавливается непосредственно в коробку разъёма, подключаемого к выходу "УП" компьютера. Соединительный кабель между компьютером и магнитофоном может достигать 5 м.

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

Опробование работы аппаратной части выполняют следующим образом. Включив компьютер и магнитофон (следует отметить, что компьютер необходимо включать первым), с помощью оператора РОКЕ по адресу &O177714 записывают коды, приведённые в табл. 1, при этом должен включиться соответствующий режим магнитофона. Для перехода в другой режим предварительно нужно очистить выходной порт, т.е. набрать оператор POKE &O177714,0%. Следует проверить включение всех режимов магнитофона. Для проверки автопоиска и возможности автоматической записи-считывания необходимо набрать на компьютере приведённый выше текст программ, включив в него дополнительно оператор 280 STOP. После проверки и устранения всех ошибок следует запустить программу. Получив на экране сообщение СТОП В СТРОКЕ 280 следует набрать с клавиатуры следующие команды:

J1% = 12000%
J2% = 1000%
J3% = 20000%
NF$ = "имя файла
R1% = 800%
Z% = 1%

Затем установить на магнитофон новую кассету, желательно без записей, перемотать её к началу и обнулить механический счётчик магнитофона. Далее следует отмотать ленту от начала на произвольное расстояние, например до середины кассеты. После этого набирается команда GOSUB 5000. Все дальнейшие действия магнитофона должны выполняться автоматически под управлением компьютера в следующем порядке:

1 - перемотка к началу;

2 - включение автостопа и перемотка к концу до адреса 100 по механическому счётчику магнитофона;

3 - запись на ленту;

4 - по окончании записи отмотка ленты к началу записанного фрагмента;

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

После этого программа заканчивает работу, о чём свидетельствует появление на экране символов ОК. Следует обратить внимание на то, что запись должна начаться с адреса 100 по механическому счётчику, так как между программным адресом файла на ленте R1% и адресом по механическому счётчику ленты существует жёсткая связь. В случае применения магнитофона "Нота-225" эта связь выражается уравнением R1% = 8*Nмех, где Nмех - показания механического счётчика.

Далее можно проверить считывание информации, для этого снова запускают программу и после её остановки задают переменным значения, которые были указаны выше, но переменной Z% присваивается значение 0%. Потом набирается команда GOSUB 5000 и магнитофон должен выполнить действия, указанные выше. за исключением пунктов 3 и 4. Можно также проверить работу системы, задавая другие значения переменным, однако следует помнить, что если значение J1% при считывании информации с ленты попадёт в область расположения программы, программа будет испорчена.

Запуск программы в эксплуатацию

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

Прежде всего необходимо включить все операторы приведённой программы в программу пользователя. При этом нужно помнить, что операторы с номерами 210-270 должны быть включены в текст до начала выполнения основных или циклических действий, лучше их включить сразу после описания массивов программы пользователя. Операторы с номерами 5000-9130 лучше включить в текст после всех операторов программы пользователя. Конечно же, перед включением любых новых операторов в программу пользователя необходимо внимательно просмотреть обе программы, чтобы не было перекрытия номеров операторов или имён переменных. Если адреса файлов на ленте предполагается свести в массив, то заполнение этого массива удобно выполнить с помощью оператора DATA. В этом случае в программу необходимо дополнительно включить операторы 280-330. При записи их в программу пользователя символ N в операторах 280 и 300 нужно заменить на цифру соответственно предполагаемому количеству записей. Первоначально все элементы оператора DATA должны быть нулями, причём каждое число содержит четыре нуля. Конкретными значениями эти нули будут заменены позже.

В те места программы пользователя, где необходим вывод на ленту или ввод с ленты, вставляется оператор GOSUB 5000 с соответствующим номером. Перед этим оператором необходимо задать значения переменных, управляющих работой подпрограммы: Z%, NF$, R1%, J1%, J2%, J3%. Значения Z% и NF$ можно задать сразу, а значения R1%, J1%, J2%, J3%, которые к этому моменту ещё неизвестны, можно задавать следующим образом. Если R1% задаёт непосредственно адрес, то включается оператор R1% = 0000%, а позже, после определения значений адресов на ленте, нули заменяются конкретными цифрами. Если же адреса сведены в массив, то включается оператор R1% = AM%(00%) и индекс массива вписывается также после определения значений адресов. Если выполняется запись на ленту одних и тех же массивов и область контрольного считывания не меняется, как бывает в большинстве случаев, то в программу до выполнения основных действий можно непосредственно после операторов 210-330 включить операторы

J1% = 0000%
J2% = 0000%
J3% = 0000%

с соответствующими номерами. Конкретные значения вместо нулей будут вписаны после определения адресов области памяти, "сбрасываемой" на ленту, и области контрольного считывания.

После того как в программу пользователя включены все необходимые операторы, нужно выполнить следующие действия:

  1. определение участка ОЗУ, "сбрасываемого" на ленту;
  2. определение области контрольного считывания;
  3. определение адресов записей на ленте и заполнение массива адресов.

1. Следует отметить, что на ленту может "сбрасываться" как один массив, так и сразу несколько, если они располагаются в памяти последовательно. Массивы могут быть как одно-, так и двумерными. Считывать можно столько массивов, сколько было записано, т.е. если было записано несколько массивов, то считать один, взятый отдельно, невозможно. Если на ленту будет записываться несколько массивов, то они должны описываться в операторе DIM непосредственно друг за другом.

Предлагаемая программа, собственно, не различает, что "сбрасывается" на ленту - один массив или несколько. На ленту записывается выбранный участок ОЗУ, определяемый начальным адресом J1% и длиной J2%. Для вывода определённого массива необходимо найти адреса его первого и последнего элементов. Разница между ними даст длину массива. Так как в версии БЕЙСИКа БК отсутствует функция VARPTR, позволяющая определить физический адрес переменной, то адреса необходимых ячеек памяти нужно выполнять "вручную". Для этой цели предназначена подпрограмма, начинающаяся с оператора 9100. Фактически она выводит на экран номера ячеек памяти и их содержимое с адреса, определяемого переменной T1%, по адрес, определяемый переменной T2%. Для определения необходимых адресов надо запустить программу и после начала её работы остановить её нажатием на клавишу "Стоп" компьютера.

Следует помнить, что останавливать программу можно только после выполнения всех операторов DIM, но до начала заполнения массивов конкретной информацией, предназначенных для вывода. Так как вручную уловить этот момент практически невозможно, удобно останавливать программу, когда она запрашивает какие-либо данные с помощью оператора INPUT, поместив этот оператор в нужное место программы. При правильной остановке программы память компьютера имеет законченное распределение, причём во все элементы всех массивов записаны нулевые значения. По этому признаку массивы легко отличить от другого содержимого ОЗУ. Между собой массивы различаются тем, что перед первым элементом записываются размеры массива. После нажатия клавиши "Стоп" необходимо задать адреса для просмотра содержимого ОЗУ, для этого с клавиатуры задаются значения T1% = XXXXX% и T2% = УУУУУ%.

Сначала эти адреса задаются в большой степени произвольно, с учётом того, что память под данные отводится после текста программы и обычно данные располагаются в области адресов с 8000 по 16000 (здесь и далее значения адресов приводятся в десятичной форме). Таким образом, задав начальные значения T1% и T2%, начинаем просмотр содержимого ОЗУ, для чего необходимо набрать команду GOSUB 9100. Как только на экране пойдут значения ячеек памяти, равные 0, нужно снова нажать на клавишу "Стоп". Так как вывод значений на экран происходит быстро, велика вероятность того, что место, где начинается вывод нулей, будет пропущено, в этом случае необходимо сузить интервал поиска - задать большее значение T1% и меньшее T2%. Целью поиска должно быть получение первого нулевого значения и его адреса. Адрес на экран выводится в левой колонке, а значение - в правой. После нахождения таких значений, нужно проверить тот ли это массив. Для этого необходимо набрать на клавиатуре NN%(0%)=1%. Вместо NN нужно указать реальное имя массива в программе, а также его реальный тип. Вместо единицы можно взять любое произвольное число, главное, чтобы оно было не равно нулю. После этого необходимо вновь набрать команду GOSUB 9100 и посмотреть, изменилось ли значение ячейки памяти, где раньше находился первый из нулей. Если это значение изменилось, значит определён начальный адрес области считывания, т.е. значение J1%. Следует отметить, что важен сам факт изменения, а не число, появляющееся в ячейке памяти, так как при записи 1 в массив действительных чисел содержимое ячейки памяти не будет равно 1, но на это не стоит обращать внимания. Для определения конечного адреса нужно определить адрес ячейки, содержащей последний элемент последнего выводимого массива. В принципе поиск выполняется также, но искать необходимо последнее нулевое значение, за которым следуют ненулевые. Соответственно для проверки правильности найденной ячейки ненулевое значение следует присваивать не первому, а последнему элементу массива, т.е. имеющему максимальный индекс. Найденное значение начала считываемой области необходимо присвоить переменной J1% вместо нуля, записанного в соответствующем операторе. Значение J2% находится как разность между значениями конца и начала считываемой области. При присваивании значений следует помнить, что общее количество цифр в значении должно остаться неизменным.

2. Далее необходимо определить область контрольного считывания, если оно выполняется. Проще всего выполнять контрольное считывание в экранную область памяти, конечно, если программа позволяет портить информацию на экране при записи. При этом адрес начала области контрольного считывания необходимо выбирать в интервале 16384 - 32768. Необходимо лишь проследить, чтобы область контрольного считывания целиком входила в этот интервал, т.е. чтобы eё максимальный адрес, который явно не задаётся, равный начальному адресу плюс объём области (численно равный значению J2%), не превышал значения 32768. Выбранное значение адреса начала области контрольного считывания необходимо присвоить переменной J3% вместо нулевого значения.

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

Действия, выполняемые при поиске значений адресов записей на ленте, во многом повторяют действия, которые выполнялись при проверке аппаратной части системы. Как и ранее, необходимо запустить программу и после начала её работы остановить выполнение нажатием на клавишу "Стоп". До останова программы должны быть присвоены значения переменным J1%, J2%, J3% и NF$.

Далее с клавиатуры должно быть набрано Z%=1% (задаётся режим записи информации на ленту), R1% = NNNN% (задаётся адрес на ленте, по которому должна быть выполнена запись), где NNNN - программный адрес файла на ленте. При первой записи рекомендуется выбирать R1%=100%-200%, чтобы запись была выполнена в начале кассеты. Затем необходимо набрать команду GOSUB 5000. Магнитофон выполнит запись по указанному адресу. Возможно, придётся изменить значение, присваиваемое переменной R1% в операторе 5445. Это значение определяет величину отмотки ленты влево после выполнения записи. Значение, приведённое в программе, соответствует записи на ленту информации объёмом около 1 Кбайта. При выводе больших или меньших объёмов информации значение, стоящее в операторе 5445 справа от знака равенства, должно быть соответственно увеличено или уменьшено. При корректировке этого значения необходимо следить, чтобы после выполнения отмотки лента останавливалась перед только что записанным участком с небольшим запасом. Значение в операторе 5445 корректируется один раз и в дальнейшем остаётся неизменным.

Разница между показаниями счётчика магнитофона в начале записи и после её окончания даёт расход ленты на одну запись. Зная этот расход, можно определить количество записей и их адреса. Расход ленты на одну запись рекомендуется измерить на нескольких интервалах, например в начале, в середине и в конце кассеты, задав соответствующее значение R1%. Если после определения адресов для всего количества необходимых записей на ленте ещё осталось место, то для этого места также можно определить адреса и использовать их в качестве резервных, т.е. если окажется невозможной запись по какому-либо адресу (например, из-за дефекта ленты), то адрес этой записи можно будет заменить на резервный.

После определения адресов всех записей на ленте необходимо записать все найденные значения в массив адресов AM%, т.е. изменить нулевые значения соответствующего оператора DATA на определённые. При замене следует помнить, что количество цифр в каждом числе должно остаться неизменным, т.е. если адрес равен, например, 250%, то записывать его в оператор DATA следует 0250%. Это необходимо потому, что изменение длины любого оператора программы ведёт к изменению распределения памяти компьютера, следовательно, при этом как минимум будет меняться значение J1%. Поэтому при самых малых изменениях, вносимых в программу, необходимо заново определить значение J1%. Чтобы уменьшить количество определений значения J1%, необходимо сначала отладить основную программу, а затем уже включать в неё операторы программы, обеспечивающие автоматизацию работы магнитофона.

Описанная система была опробована в работе. Результаты пробной эксплуатации показали, что возможно создание базы данных, содержащей небольшое количество (до 10-15) файлов. При большем количестве файлов, особенно когда они располагаются на ленте ближе к концу кассеты, сказываются сбои из-за неточной перемотки, вызываемой заеданиями ленты в кассете при интенсивной эксплуатации. Хотя программа позволяет контролировать правильность записи информации, в целом надёжность автоматической записи-считывания невысокая, поэтому база данных должна содержать сведения, потеря части которых не приведёт к серьёзным последствиям.

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

Для контактов:

428035, г. Чебоксары Чувашской АССР, ул. Университетская, 8, кв. 228.

Performed by © gid, 2012-2022.