10,11. RAMDOS
(квазиэлектронный диск, описание программы)
RAM DOS позволяет быстро менять программы без помощи до-
полнительной аппаратуры. Она использует RAM как электронный
диск при помощи новых BASIС-команд доступа к диску. Новые
команды просты и похожи на стандартные команды доступа к
магнитофону. RAH DOS не ограничивает количество записанных
файлов, но ограничивает количество занятой памяти (примерно
ЗЗк), определяемой установкой RAMTOPa. Каждый файл записы-
вается на диск с заголовком, занимающим 17 байтов.
RAM DOS включается командой:
RAMD USR 63600
С этого момента все новые команды активны, но не мешают
выполнению остальных команд. Вы можете использовать команду
NEW без риска стереть файлы, т.к. они находятся под
RAMTOPom, который перед вводом программы с магнитофона уста-
навливается командой:
CLEAR 3200
(или другого, более подходящего значения)
Все новые команды вводятся одной из малых букв, следую-
щих за звездочкой:
*1 - LOAD - вводится перед именем программы, которое
не должно превышать 10 знаков. Выбор
SCREEN, CODE обычен. Если имя файла нуль
("">, то вызывается последний введенный
файл. Данные не доступны.
*8 - SAVE - используется также, но имя не может быть
нулем. Отдельно данные не записываются
(только вместе с программой). Если на
диске уже имеется файл с таким именем, то
он будет стерт.
*m - MERGE - работает только с программными файлами
как и с магнитофоном.
*d - DELETE - должно следовать за именем файла. Если
оно пустое, то'будет стерт последний. За
именем указывается тип файла.
*с - CATALOG - без параметров. Печатает все имена файлов,
а также количество оставшейся свободной
памяти на RAMDOSe.
- ЕРАСЕ - очищает RAM-диск.
*t - ТАРЕ - необходимо указывать имя файла. Записыва-
ет все содержимое RAM-диска вместе с
программой RAMDOS как стандартный код.
Перед вводом файла с магнитофона не забы-
вайте ввести CLEAR 30000 или др., затем
введите LOAD "" CODE и затем RAMD USR
63600 для включения новых команд.
*f - FREE - печатает число байтов в памяти BUSICa,
т.е. ниже RAMTOPa. Общее значение свобод-
ной памяти определяется сложением с вели-
чиной из *С.
*Х - BLOCK DELET - стирает все линии BASICa от указанного
номера до указанного номера до указанно-
го. Эта команда не относится к RAMDOS, но
она коротка и очень полезна.
Сообщения :
OUT OF MEMORY - нет места на RAMDOSe для новых файлов.
Если стирание старого файла не дает эф-
фекта, попробуйте опустить ниже RAMTTOP.
Если такое сообщение встретится при вводе
программы с магнитофона, значит не хвата-
ет места в памяти BASICa. Попробуйте
поднять RAMTOP выше.
END OF FILE - Файл не найден.
Если Вы захотите изменить атрибуты, введите их новое зна-
чение в ячейку 63714 (РОКЕ 63714,XXX
Для работы с файлами из программ, написанных на языке
ассемблера, рекомендуется пользоваться стандартными програм-
мами, находящимися в ПЗУ компьютера. Их десятичные адреса
равны!
подпрограмма чтения с ленты.................1366;
подпрограмма записи на ленту.................1218.
При вызове этих подпрограмм необходимо задать:
регистр *А' - тип файла (Й...255);
Регистр 'DE' - длина файла;
регистр 'IX' - адрес начала загрузки Файла.
Кроме того, для подпрограммы чтения с ленты необходимо
задать тип работы (проверка или чтение) флажком переноса.
Содержимое флажка переноса означает:
0 ~ режим чтения;
1 - режим проверки (т.е. сравнение содержимого памя-
ти с информацией считываемой с ленты).
Для работы с кассетами, записанными в формате "SPECTRUM"
на других компьютерах, необходимо помнить:
1. Для определения начала файла сигнал "лдр" деректиру-
ется не менее 0.5 сек. для предупреждения сбоев;
2. Если длительность очередного полупериода "лдр" стала
значительно меньше заданного, то надо начинать проверку на
синхропериод;
3. Если длительность очередного полупериода "лдр" стала
значительно больше заданного, то весь цикл надо начинать
сначала;
4. Проверку на окончание данных надо производить (даже
если имеется счетчик считанных байтов) сравнением длины пол-
ного периода бита (0.98 или 0.488 мс) с указанными значения-
ми. Если счетчик слишком мал или слишком велик, то считает-
ся, что данные кончились.
Временные диаграммы записи-считывания:
Временные диаграммы записи-считывания:
Каждый блок информации ( файл ) на магнитной ленте начи-
нается с синхронизующего сигнала (лдр) длительностью 2 или 5
секунд. Частота этого сигнала - около 810 гц (период 1.25
мс). После этого сигнала идет один период специального синх-
SocHTHaAa - длительность "нуля" - около 0.19 мс, "единицы" -
.21 мс. Затем следуют байты данных, передаваемые последова-
тельно, начиная со старшего бита. "Нулевой" бит передается
одним периодом сигнала частотой около 2047 гц (период -
0.489 мс.;, "единичный" - одним периодом сигнала частотой
около 1023 гц (период - 0.978 мс).
Каждый Файл состоит из байта типа (значение от 0 до 255),
собственно данных и байта контольной суммы. Байт типа и
байт контрольной суммы не входят в длину файла. В контроль-
ную сумму входит значение байта типа.
Байт типа обычно принимает значение 0 (для заголовков) и
255 (для данных). Если есть необходимость, пользователь мо-
жет использовать и любой другой тип. От значения байта типа
зависит длительность сигнала "лдр". При значении байта типа
от 0 до 7 длительность сигнала равна 5 сек. Если байт типа
больше 7, то длительность сигнала 2 сек.
Стандартный файл, формируемый компьютером по команде
загрузки, состоит из двух файлов: файла заголовка длиной 17
байт, и файла данных.
Файл заголовка имеет следующий формат:
номера байтов назначение
1 тип информации, описываемой заголовком:
0 - программа на бейсике;
1 - числовой массив;
2 - символьный массив;
3 - "байтовый" файл: программа в
машинных кодах или образ эк-
рана .
2-11 Имя файла в кодах КОИ-7; если имя
отсутствует, то первый байт равен
255.
12-13 Длина файла данных.
14-15 Для программы - номер строки для
автозапуска программы. Если первый
байт равен 80Н, то автозапуск не
был задан; для "байтового" файла -
адрес загрузки; для массивов - вто-
рой байт содержит имя массива (один
символ КОИ-7).
16-17 Только для программы - длина прог-
раммы на BASICe.