Главная Дока Микро-80 Радио-86РК ЮТ-88 Орион-128 Ссылки Новости Письмо

Описание компьютера Радио-86РК
Журнал РАДИО

Бейсик "Микрон".

Как и опубликованные ранее пакеты программ ASSM. "МИКРОН" и DIS. "МИКРОН", BASIC "МИКРОН" разработан для персонального компьютера "Радио-86РК" с объемом ОЗУ 16 или 32К. Читатели журнала уже знакомы с БЕЙСИКОМ и, вероятно, имеют некоторый опыт создания программ на нем. Тем же, чей опыт еще невелик, мы рекомендуем предварительно ознакомиться с циклом статей "БЕЙСИК для "МИКРО-80" и "БЕЙСИК для "РАДИО-86РК", в которых опубликовано достаточно подробное описание основных операторов и правил работы с языком.

Предлагаемый вниманию читателей интерпретатор BASIC "МИКРОН" совместим с обоими опубликованными версиями БЕЙСИКа по директивам, операторам и функциям, однако работа некоторых из них изменена. Интерпретатор имеет встроенный редактор, позволяющий редактировать строки, и ряд дополнительных директив, операторов и функций, предоставляющих пользователю более широкие возможности при разработке программ.

BASIC "МИКРОН" занимает в ОЗУ компьютера 8К байт с адреса 0 по 1FFFH. Интерпретатор может быть размещен в ПЗУ в той же области, что не нарушит его работоспособности.

После запуска (по директиве G0) на экран выводится сообщение BASIC "МИКРОН" и запрос NEW?, на который при отсутствии в ОЗУ программы пользователя нужно ответить нажатием клавиши "Y" или любой другой клавиши, если в ОЗУ находится какая-либо программа. Следует иметь в виду, что при первоначальном запуске необходимо всегда отвечать "Y". Если ошибочно была нажата другая клавиша, вновь вводят директиву NEW. При несоблюдении этих требований возможно нарушение работы интерпретатора.

После проведенных операций БЕЙСИК выходит в непосредственный режим, о чем сообщает оператору выводом сообщения "ЖДУ:".

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

Для вставки курсор подводят к символу, перед которым предполагается вставка, и вводят пропущенный символ. Удаление символа происходит при нажатии клавиши "F2" после установки курсора под этим символом. Ввод заканчивается нажатием клавиши "ВК". Нажатие клавиши "F4" приводит к отмене вводимой информации.

Максимальная длина строки - 128 символов. При достижении этого значения ввод информации блокируется.

Для более оперативного набора программ в BASIC "МИКРОН" предусмотрена возможность ввода служебных слов последовательным нажатием клавиши "АР2" и клавиши, соответствующей этому служебному слову.

Таблица соответствия символьных клавиш служебным словам приведена на развороте цветной вкладки. Там же приведены таблицы директив операторов и функций BASIC "МИКРОН" с кратким описанием их работы.

Теперь несколько слов об отличиях работы некоторых директив, операторов и функций интерпретатора.

Прежде всего, остановимся на изменениях и дополнениях, связанных с выводом информации на экран дисплея. Он осуществляется оператором "PRINT", причем числа или значения числовых переменных выводятся с дополнительными пробелами до и после числа, а символы или значения символьных переменных - без них. Приведем пример, иллюстрирующий сказанное выше:

ПРИМЕР 1
ЖДУ:
PRINT 10;5,"10";"5"<ВК>

. 0...5.......105

ЖДУ:

Действие операторов форматирования ";" и "," с оператором "PRINT" соответствует принятым в БЕЙСИКЕ и предполагает вывод последующей информации, начиная соответственно со следующей позиции или с позиции, кратной 14. В BASIC "МИКРОН" совместно с оператором "PRINT" можно использовать оператор принудительного перевода строки "'" (АПОСТРОФ), действие которого аналогично наличию в строке дополнительного оператора "PRINT" без параметров. На следующие две строки программы интерпретатор отреагирует идентично

ПРИМЕР 2 10 PRINT ' ' ' ' "ПРОВЕРКА"
20 PRINT:PRINT:PRINT:PRINT "ПРОВЕРКА"

Оператор форматирования TAB(N) выводит информацию, начиная с позиции "N" в текущей строке, причем символы в позициях с номерами меньше "N" не стираются ("N" лежит в диапазоне от 0 до 63).

Для вывода информации в определенном месте экрана совместно с оператором "PRINT" можно использовать оператор AT X, Y, где Х - номер позиции в строке, а Y - номер строки экрана (максимальное значение Х равно 63, Y - 24).

ПРИМЕР 3
ЖДУ:
PRNT AT 10,10;"A";AT 20,20;"B";AT 30,8;10<BK>

В результате выполнения этой строки символ "А" будет выведен в позицию с координатами Х=10, Y=10, символ "В"- в позицию с Х=20, Y=20, а число 10 - в позицию с Х=30, Y=8.

Нередко возникает необходимость перевода десятичного числа в шестнадцатеричное. Для этой цели в интерпретаторе предусмотрен оператор "@", который также используется совместно с оператором "PRINT" и позволяет выводить на экран число или результат вычисления какого-либо выражения в шестнадцатеричном виде при условии, что это число не превышает 65535 (FFFFH). Если число дробное, то в шестнадцатеричном виде будет представлена только его целая часть.

ПРИМЕР 4 жду:
PRINT @100;@(4000+96) <BK>
ЖДУ:

Следует отметить, что в BASIC "МИКРОН" все числа, начиная от 8000Н до FFFFH, представляются отрицательными.

ПРИМЕР 5
ЖДУ:
PRINT &7FFF,&8000,&FFFF<BK>
32767........-32768. ......-1

ЖДУ:

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

Для вывода информации на принтер в BASIC "МИКРОН" предусмотрен оператор "LPRINT", действие которого аналогично действию оператора "PRINT" со всеми работающими совместно с ним операторами (кроме, конечно, операторов AT X, Y и CUR X, Y). Информация при использовании оператора "LPRINT" одновременно отображается и на экране дисплея. Совмещение интерпретатора с программой, обслуживающей принтер, заключается в занесении в ячейки 0385Н, 0386Н адреса старта этой программы. Первоначально в этих ячейках записан адрес 0F80FH.

Вывод текста программы на экран дисплея производится директивой "LIST N1, N2". Параметры N1 и N2 необязательны и могут отсутствовать, например:

Текст программы может быть выведен и на принтер, если воспользоваться директивой "LLIST", параметры которой аналогичны параметрам директивы "LIST", Если требуется прекратить вывод текста программы, нажимают клавиши "УС" и "С" или клавишу "F4".

BASIC "МИКРОН" имеет существенные отличия в директивах обслуживания магнитофона. Для записи программ на магнитную ленту используется директива "CSAVE", за которой в кавычках следует указать имя программы. Впрочем, имя может и отсутствовать, но кавычки обязательны.

НАПРИМЕР: CSAVE "программа 1" - запись программы с именем программа 1;
CSAVE " " -- запись программы без имени (с "ПУСТЫМ" именем).

После того, как нажатием клавиши "ВК" будет завершен ввод этой директивы, начнется запись программы. Формат записи следующий. Сначала записываются "РАКОРД" длительностью около 3с и имя программы, затем следует РАКОРД с вдвое меньшей частотой и длительностью около 5с, за которым выводится текст самой программы. Для увеличения достоверности операций записи/чтения производится подсчет контрольных сумм.

Чтение программ с магнитной ленты происходит по директиве "CLOAD", при которой в кавычках может быть указано имя.

НАПРИМЕР:

Если при загрузке программы выявлена ошибка, то на экран будет выведено сообщение "НЕСООТВ. ДАННЫХ".

Качество записи программы на магнитную ленту можно проверить, воспользовавшись директивою "VERIFY", аналогичной по синтаксису директиве "CLOAD". При проверке качества записи происходит сравнение программы, находящейся в ОЗУ компьютера, с записью на магнитной ленте.

С помощью директивы "MERGE" (синтаксис аналогичен "CLOAD") можно объединить программу, находящуюся в ОЗУ, с программой, загружаемой с магнитной ленты. При этом следует иметь в виду, что номера строк подгружаемой программы должны быть больше максимального номера строки программы, находящейся в ОЗУ.

Если длина загружаемой программы окажется больше размера свободной области в ОЗУ, то будет выведено сообщение "МАЛО ОЗУ".

В BASIC "МИКРОН" имеется отличие от ранее опубликованных версий при работе с данными, определяемыми оператором "DATA" или вводимыми с клавиатуры оператором "INPUT".

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

ПРИМЕР 6
10 BESTORE 80
20 READ A,8,С
30 PRINT А,В,С

40 RESTORE 70

50 READ А,В,С
60 PRINT А,В,С

70 DATA 10,20,30
80 DATA 1,2,3

После запуска этой программы на экран последовательно будут выведены числа 1, 2 и 3, а на следующей строке -10, 20 и 30.

Ввод данных с клавиатуры осуществляется оператором "INPUT", который может быть определен только в программе и имеет следующий основной формат записи

100 INPUT "ЖДУ ВВОДА";А,В,С...

При выполнении этой строки на экран сначала будут выведены сообщение "ЖДУ ВВОДА" и знак вопроса. Компьютер будет ожидать ввода данных. В случае его успешного завершения обозначенным переменным будут присвоены соответствующие значения. При вводе данных с помощью оператора "INPUT" сообщение в кавычках и они сами могут отсутствовать а переменные могут быть как числовыми, так вольными. Особенностью интерпретатора является то, что при желании можно отменить вывод значения запроса при ожидании ввода данных. Для этого, в операторе "INPUT" после сообщения в кавычках надо поставить ",", вместо обычно применяемой при этом точки с запятой. Если все переменные, определяемые оператором "INPUT", числовые, то вводимые данные могут быть числами, так и результатами каких-либо арифметических выражений. Это позволяет очень просто организовать "калькуляторный режим", не требующий, каждый раз ввода оператора "PRINT" при каких-либо расчетах.

ПРИМЕР 8 10 INPUT "введите число;", х: PRINT х: GOTO 10
RUN
ВВЕДИТЕ ЧИСЛО:2*2<ВК> =4
ЖДУ:
ВВЕДИТЕ ЧИСЛО:?А<ВК>
=10
ВВЕДИТЕ ЧИСЛО:2^13<BK>
8192
ВВЕДИТЕ ЧИСЛО<F4>
ЖДУ:

Если первая или все переменные, описываемые оператором "INPUT", символьные, то выполнение арифметических Операций при вводе данных блокируется.

Если 1 первая переменная числовая, а остальные символьные, то арифметические операции разрешены, но при вводе символьных данных возможны курьезные ситуации. ПРИМЕР 9
10 INPUT A,A$
20 PRINT A,A$
ЖДУ:
RUN
? 5*7, STEPANOW<BK>
35 $ANOW
ЖДУ:

Об этом следует помнить при написании программ с использованием оператора "INPUT". В отличие от ранее опубликованных версий БЕЙСИКa выход из режима ввода данных по нажатию виши "ВК" при не полностью введенных данных блокирован, в этом случае при нажатии "ВК" выводится вопросительный знак, под которым располагается курсор и ожидается ввод недостающих данных. Однако, если нажать клавишу "F4" (УС и С), то интерпретатор перейдет в непосредственный режим. Если в процессе ввода будут введены лишние данные, они интерпретатором игнорируются. Вce служебные слова в BASIC "МИКРОН" (операторы, директивы и т. д.) должны быть написаны слитно, т. е. в них не должно быть пробелов. Ранее опубликованные версии БЕЙСИКа, анализируя вводную строку, сами удаляли лишние, по мнению интерпретатора, пробелы. Это приводило к различным курьезам: так, после ввода строки 10 FORI=NOТО X, которая не содержит синтаксических ошибок, при запуске программы интерпретатор обнаруживал ошибку. Просмотрев эту строку по директиве "LIST", можно было обнаружить слияние имени переменной NO с первой буквой служебного слова "ТО", что приводило к ошибке, так как интерпретатор воспринимал строку в следующей редакции: 10 FOR 1=NOT O X. В BASIC "МИКРОН" эта ситуация исключена. Здесь следует отметить, что имена переменных могут содержать любое число символов, но их идентификация производится только по первым двум символам.

Большим преимуществом BASIC "МИКРОН" является наличие набора директив, позволяющих упростить процесс ввода и редактирования текста программы. Рассмотрим их работу.

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

По умолчанию каждый из параметров равен 10. Для выхода из режима "AUTO" нужно нажать клавишу "F4" (УС + С).

ПРИМЕР 10
AUTO 10,10
AUTO 5,5
AUTO 10,5

Директивой "EDIT N" можно вызвать для редактирования строку программы с номером N. После ввода этой директивы на экран выводится текст строки, и интерпретатор ожидает ввода. Редактирование производится так же, как и при вводе строки: вставкой или удалением символов. Все изменения текста при редактировании немедленно отображаются на экране. Выход из режима происходит при нажатии клавиши "ВК", причем текущее положение курсора в этот момент не имеет значения. Нажатием клавиши "F4" можно отменить режим редактирования, и в программе останется старая строка.

Директива "DELETE N1, N2" удаляет фрагмент программы, с номерами строк от N1 до N2 включительно.

Директива "RENUM N1, N2" служит для перенумерации строк программы. При этом N1 определяет номер строки, с которой будет начинаться программа, а N2 - шаг приращения строк. По умолчанию каждый из параметров равен 10.

В описываемом интерпретаторе имеются операторы, позволяющие упростить процесс разработки программ. Так, оператор "HOME" (без параметров) очищает экран и устанавливает курсор в левый верхний угол.

Оператор "PAUSE Т" определяет задержку выполнения программы на Т секунд. Диапазон возможных изменений Т от 0.0015 до 65с. Задавать Т меньше 0.0015 с не следует, так как величина задержки будет неопределенной. Особо следует выделить случай, когда Т = 0: дойдя до строки с этим оператором, интерпретатор остановит выполнение программы и возобновит его только после нажатия любой клавиши.

Для формирования звуков различной высоты и длительности служит оператор "ВЕЕР Т, N", где Т-длительность формируемого звука, а N - высота тона. Диапазон изменений Т такой же, как и в операторе "PAUSE", а N может принимать значения от -24 до 24. N, равное 0, соответствует НОТЕ "ДО" первой октавы, N, равное 1,-"ДО ДИЕЗ" первой октавы, равное 12-"ДО" второй октавы, равное минус 12-"ДО" малой октавы и т. д. Звуковой сигнал выдается через порт магнитофона. Из-за особенностей схемотехнического решения компьютера "РАДИО-86РК" звуковой сигнал имеет не очень чистый звук, но достаточно различимый по высоте.

Интерпретатор позволяет вводить и выводить числа в шестнадцатеричной форме. Такие числа предваряются символами "&" для шестнадцатеричного ввода и "@" для шестнадцатеричного вывода. Например, &10 = 16, &FF = 255 и т. д. Следует иметь в виду, что после знака "&", как шестнадцатеричное число определяются четыре последних символа, являющихся шестнадцатеричными цифрами (цифры от 0 до 9 и буквы А, В, С, D, Е, F). Любой другой символ воспринимается, как признак конца шестнадцатеричного числа.

ПРИМЕР 11.
&65600=&5600&10.5
ДВА ЧИСЛА 10H И 0.5

&10+5=21

При написании "динамических" программ, и особенно игровых, часто возникает необходимость определения кода нажатой клавиши без остановки выполнения программы. В BASIC "МИКРОН" для этого введен оператор "INKEY$". Он возвращает символ, соответствующий нажатой клавише, или признак "ПУСТОЙ СТРОКИ", если ни одна из клавиш не нажата.

Например, если ввести и запустить следующую программу:

ПРИМЕР 12
10 PRINT INKEY$;: ВЕЕР 0.2, 020 GOTO 10

то при ее работе на экран выводятся символы, соответствующие нажимаемым клавишам и подается звуковой сигнал. Если ни одна из клавиш не нажата, выдается только звуковой сигнал. Следует иметь в виду, что "ПУСТАЯ СТРОКА" описывается двумя кавычками, между которыми ничего не набирают.

ПРИМЕР 13

30 IF INKEY$"" THEN GOTO 30

Таким образом, строка программы следующего примера указывает интерпретатору на необходимость остановиться и ожидать нажатия любой клавиши. При написании программ не следует использовать оператор "ASC" совместно с оператором "INKEY$", если по ходу выполнения программы "INKEY$" может принимать значение "ПУСТАЯ СТРОКА".

Для определения символа, расположенного на экране в какой-либо позиции, предназначен оператор "SCREEN$ (X,Y)". Он возвращает символ, имеющий на экране координаты X, Y.

В BASIC "МИКРОН" введены дополнительные арифметические и тригонометрические операторы, ускоряющие разработку и сокращающие текст программ.

К ним относятся:

При написании программ на БЕЙСИКе, содержащих фрагменты, написанные в машинных кодах, может возникнуть необходимость обмена данными между АССЕМБЛЕРНЫМИ И БЕЙСИК0ВЫМИ частями программы. Для этих целей в интерпретаторе предусмотрен оператор "ADDR(X)". Он возвращает число, которое является адресом ячейки памяти, начиная с которой хранится переменная "X". Два байта в памяти, расположенные перед ячейкой, адрес которой определяется оператором "ADDR(X)", хранят коды первых ДВУХ Символов в имени переменной. Переменная может быть как числовой, так и символьной. Под числовые переменные отводится в ОЗУ 6 байт. Значения переменных хранятся в логарифмическом виде (по основанию 2), причем последний старший байт - характеристика, а три младших - мантисса переменной. Старший бит третьего байта знаковый. Для отрицательных чисел он равен единице. С помощью следующей простой программы можно посмотреть, как представляются различные числа в БЕИСИКе.

ПРИМЕР 14
10 INPUT "ЧИСЛО"; X: PPINT "ЕГО ПРЕДСTABЛЕНИЕ: ";
20 PRINT @PEEK (ADDR (X)+3);: REM ВЫВОД ЧЕТВЁРТОГО БАЙТА (СТАРШЕГО)
30 PRINT @PEEK (ADDR (X)+2);:RЕM ВЫВОД ТРЕТЬЕГО БАЙТА
40 PRINT @PEEK(ADDR(X)+1);;REM ВЫВОД ВТОРОГО БАЙТА
50 PRINT @PEEK (APDR (X)): RЕМ ВЫВОД ПЕРВОГО БАЙТА (МЛАВШЕГО)

60 GOTO 10
RUN

После запуска этой программы и ввода какого-либо числа на экран будет выводиться его представление в БЕЙСИКе в виде четырех шестнадцатеричных чисел.

ПРИМЕР 15 ЧИСЛО? 1 ЕГО ПРЕДСТАВЛЕНИЕ: 81 00 00 00
ЧИСЛО? -1 ЕГО ПРЕДСТАВЛЕНИЕ: 81 80 00 00
ЧИСЛО? <ВК>
ЖДУ:

Хранение символьных переменных в BASIC "МИКРОН" отличается от хранения числовых. В первой ячейке памяти хранится длина символьной переменной, вторая не используется, а в третьей и четвертой размещены соответственно младший и старший байты адреса начала последовательности символов этой переменной в специально отведенном буфере символьных переменных.

ПРИМЕР 16
10 INPUT "СТРОКА$
20 HI=PEEK (AВDR (X$)+3): REM СТАРШ. БАЙТ АДРЕСА СИМВ. ПЕРЕМ. .

30 LO=PEEK (
ADDR (X$)+2): REM МЛАДШ. БАЙТ АДРЕСА СИМВ. ПЕРЕМ.
40 L=PEEK (ADDR (X$)): REM ДЛИНА СИМВ. ПЕРЕН.
50 PRINT "АДРЕС В БУФЕРЕ:"@(HI*256+LO);"H"
60 PRINT СТРОКА ИЗ БУФЕРА:";
70 FOR I=0 ТО L-1: PRINT CHR$(PEEK (HI*256+LO+I)): NEXT: REM РАСПЕЧ.

80 PRINT "
: GOTO 10:REM ПРОПУСТИТЬ СТРОКУ И ПОВТОР. ВВОД

При работе с символьными переменными (особенно при использовании оператора "+") следует иметь в виду, что размер буфера символьной переменных должен быть, как минимум, в два раза больше общего предполагаемого числа символов всех символьных переменных. Так, например, если предполагается, что в результате работы программы общее число символов всех символьных переменных будет равно 200, то необходимо установить размер этого буфера в 400 или более ячеек памяти, воспользовавшись директивой CLEAR400.

Несколько слов об сообщениях об ошибках. Они выводятся на экран названием ошибки с указанием номера строки, в которой она допущена. Строка, а которой обнаружена синтаксическая ошибка, выводится на экран для редактирования.

При необходимости прервать работу программы и выйти в непосредственный режим нажимают клавиши "F4" или УС и С. Возобновить работу программы в этом случае по директиве "CONT" нельзя. Если использовать для выхода в непосредственный режим нажатие клавиш УС -"Е", то директивой "CONT" можно продолжить работу программы.

Коды BASIC "МИКРОН", приведенные в табл.1, предназначены для 32-килобайтной версии компьютера "РАДИО-86РК". Для 16-килобайтной версии необходимо изменить содержимое ячеек памяти в соответствии с табл. 2. Поблочные контрольные суммы приведены в табл. 3.

Таблица 3.

ОБЛАСТЬ ОЗУ

КOHTP СУММ

ОБЛАСТЬ ОЗУ

КОНТР СУММ

0000-00FF

A85E

1000-10FF

З8B8

0100-01FF

С163

1100-11FF

АЕ06

0200-02FF

61B6

1200-12FF

9СЕ6

0300-03FF

5D10

1300-13FF

8C27

0400-04FF

2ВС9

1400-14FF

F492

0500-05FF

175В

1500-15FF

СA43

0600-06FF

С956

1600-16FF

2EAE

0700-07FF

5991

1700-11FF

19

0800-08FF

АА4А

1800-18FF

3C25

0900-09FF

1В65

1900-19FF

7499

0A00-0AFF

E7F6

1A00-1AFF

0665

0B00-0BFF

C941

1B00-1BFF

AA4E

0C00-0CFF

37E5

1C00-1CEF

11AA

0D00-0DFF

D336

1D00-1DFF

E3F5

0E00-0EFF

49E7

1E00-1EFF

784B

0F00-0FFF

DС59

1F00-1FFF

422С

0000-1FFF

55С1

   

Распределение памяти после запуска БЕЙСИКа по директиве "G0" МОНИТОРа для обеих версий показано на рис.1. Как видно из рисунка, для работы интерпретатора используется вся оперативная память компьютера. Директивой "HIMEM N" можно сместить вниз верхнюю границу используемой БЕЙСИКОм оперативной памяти. N может принимать значения от 2400Н до стека. В освободившейся части ОЗУ может быть размещена программа в машинных. В качестве примера на рис. 2 приведено распределение памяти после выполнения директивы НIМЕМ &3000.

Таблица 2.

АДРЕС

16K

32к

0002

35

75

190E

3f

7f

1925

36

76

1933

36

76

1CC4

36

76

1CCA

40

80

 

Как и в ранее опубликованных версиях, нажатием клавиши "СТР" можно выйти в МОНИТОР. Вновь запущенный после этого БЕЙСИК директивой G0 МОНИТОРа не сохраняет изменения распределения памяти, проведенные директивами CLEAR и НIМЕМ. Если их необходимо сохранить, то запуск БЕЙСИКа следует производить с адреса 0F1Н (директива МОНИТОРа GF1). Следует иметь в виду, что при запуске БЕЙСИКа с адреса 0 область ОЗУ от 7500Н до 75PFH будет испорчена. Поэтому располагать программы в машинных кодах в этой области не рекомендуется.

И последнее замечание. Тем радиолюбителям, у которых нет принтера, мы рекомендуем в ячейку памяти 0384Н, 0385Н, 0386Н занести коды 00 для исключения каких-либо недоразумений.

В. БАРЧУКОВ, Е. ФАДЕЕВ

г. Москва

Описание компьютера Радио-86РК
Журнал РАДИО


Принтер не захватывает! Как устранить неисправности подачи бумаги в струйном принтере.

(C) 2003-2010 www.danbigras.ru Наш адрес: info@danbigras.ru
Всё о старых компьютерах