4. ВСТРОЕННЫЙ РЕДАКТОР.
Команды редактора имеют вид:
С. N1. N2, Sl, S2
где С — выполняемая команда;
N1, N2 — числа от 1 до
32767;
Sl, S2—строки
до 20 символов.
Редактор хранит значения
параметров, использованных в предыдущих командах, т.о. в ряде случаев параметры
можно опускать. Если длины строк Sl и S2 превышают 20 символов, то лишние
символы игнорируются.
• 4.1. КОМАНДЫ РЕДАКТИРОВАНИЯ
I N, М —
выход в режим автонумерации строк начиная с N с шагом М. Выход из режима — CS+1 (EDIT).
L N, М —
распечатать на дисплее текст с номерами строк от N до М порциями, которые могут
быть изменены командой К:
При нажатии EDIT
— выход в редактор.
К N — установка порции вывода по
команде L. N — число строк в порции.
D N, М —
удалить строки текста с номерами от N до М. Параметры указываются обязательно.
М N, М — пересылка строк с номером
N в строку с номером М. При этом строка с номером N стирается, а содержимое
строки М заменяется на содержимое строки N.
N N,M —
перенумерация текстового файла: первая строка получает номер N, шаг нумерации
М. Параметры обязательны.
F N, М, F, 8 — в исходном файле
между строками N и М производится поиск текста F. При его обнаружении найденная
строка отображается на экране и система переходит в режим
EDIT. После этого используются команды режима EDIT,
можно продолжить поиск текста F или заменить найденный текст F на текст S и далее продолжить поиск. Отметим, что строки F и S могут быть определены ранее другими командами.
F N — редактировать строку с номером
N.
• ПОДКОМАНДЫ:
SPACE
(пробел) — увеличение текстового указателя на 1;
DELETE —
уменьшение текстового указателя на 1;
CAPS-SHIFT
8 — табулятор вправо;
ENTER —
конец редактирования с сохранением внесенных
изменений;
О — выход из редактирования. Строка
остается без изменений;
R —
перегрузка буфера редактирования, т.е. начать редактировать строки заново;
L — печать оставшейся части строки
(за текстовым указателем) и повторение редактирования;
К — удаление символа в позиции
указателя;
Z —
удаление всех символов от позиции указателя включительно и до конца строки;
F — поиск следующей строки,
содержащей текст F, определенный ранее в команде F N,M,F,S;
S — замена ранее определенным
текстом S текста F и автоматическое выполнение подкоманды F , т.е. поиск следующей
строки, содержащей F. Необходимо отметить, что в данной версии подкоманда S
должна выполняться непосредственно после команды F или подкоманд F или S;
I —
вводить символ с позиции курсора с автозадвижкой. Режим завершается нажатием ENTER. Допускается использование DELETE
и CS+8 (удаление и табуляция);
Х — курсор перемещается в конец
строки;
С — вводится символ с позиции
курсора с уничтожением исходного текста. Завершается ENTER.
(В некоторых версиях).
• 4.2. КОМАНДЫ ДЛЯ РАБОТЫ С
МАГНИТОФОНОМ
Р N, М, S — записать текст от
строки N до строки М в файл с именем S.
G ,, S — прочитать текст из файла с именем S. Если некоторый
текст уже существует в памяти, то вводимый с ленты текст
пристыковывается к имеющемуся и
весь'файл перенумеровывается с шагом 1.
W N, М, S — записывает текст в файле в форме, которая потом может
использоваться с ключом F N,M,S (в некоторых версиях).
• 4.3. КОМПИЛЯЦИЯ И ИСПОЛНЕНИЕ
ПРОГРАММ
С N — компилировать текст начиная
со строки N;
R —
исполнить компилированную программу;
Т N — команда трансляции. Исходный
текст компилируется начиная со строки N и в случае успешной компиляции система
выводит вопрос "ОК?". При ответе "Y"
объективный код, произведенный при компиляции, пересылается в конец RUNTIMES (разрушая при этом компилятор), а затем RUNTIMES и объектный код выводится на ленту с именем,
определенным ранее в качестве параметра Р. После этого файл F можно загрузить в
память, используя команду LOAD"".
• 4.4. ДРУГИЕ КОМАНДЫ
В — возврат в бейсик.
О N, М — используется для работы с
текстом, подготовленным другим редактором НР4Т в формат, принятый в HISOPT НР4Т.
S ,, D —
изменение разделения параметров на D. Пробел в качестве
разделителя не допускается.
5. ЗАГРУЗКА И КОМПИЛЯЦИЯ.
Компилятор занимает примерно 12К
памяти и 4 К занимает ядро исполняющей системы паскаля
RUNTIMES.
После загрузки НР4Т на экране
появится вопрос: TOP OF RAM? Вы должны ввести либо
целое десятичное число, менее 65536, или сразу нажать ENTER.
Если введено число, то оно используется в качестве последнего адреса RAM+1, в противном случае вершина RAM
вычисляется автоматически. На этот адрес устанавливается стек компилятора (т.о.
можно резервировать RAM для каких-либо целей). В
ZX-SPECTRUM вершина RAM является начальным адресом для UDG.
После нажатия
ENTER НР4Т задаст следующий вопрос:
TOP
OF RAM FOR T'?
В ответ вы можете ввести либо
десятичное число, либо использовать ранее определенное значение TOP OF RAM. To, что вы введете, будет использовано как стек
при выполнении объектного кода после команды 'Т' редактора.
После этого НР4Т спросит:
TABLE
SIZE?
То, что вы введете, будет
рассматриваться как объем памяти, используемой под таблицу символов. Если сразу
нажать ENTER, то TABLE SIZE
будет равен объему доступной памяти, деленному на 16 (как правило этого более
чем достаточно). Если перед числом ввести символ Е, то встроенный редактор
станет недоступным. Это полезно при использовании внешнего редактора.
Компилятор генерирует листинг
вида:
ХХХХ NNNN
ИСХОДНЫЙ ТЕКСТ СТРОКИ здесь ХХХХ — адрес начала кода, генерируемого этой
строкой;
NNNN — номер строки.
Если длина строки более 80
символов, компилятор вставляет символ "НОВАЯ СТРОКА". Листинг может
быть распечатан на принтере с помощью опции Р. Для приостановки вывода листинга
необходимо нажать CS+SPACE (BREAK). Если после этого
нажать EDIT, вы вернетесь в редактор; при нажатии любой
другой клавиши — продолжите печать. Если при компиляции обнаружены ошибки, то
выводятся соответствующие сообщения и распечатка листинга приостанавливается.
Если при этом ввести символ Е, система переходит к редактированию указанной
строки, если ввести Р — к редактированию предыдущей
ПРИЛОЖЕНИЕ 1
СООБЩЕНИЯ ОБ ОШИБКАХ______
Сообщения, генерируемые
компилятором
1. ЧИСЛО СЛИШКОМ ВЕЛИКО.
2. ПРОПУЩЕНА ТОЧКА С ЗАПЯТОЙ
(;).
3. НЕ ОПИСАННЫЙ ИДЕНТИФИКАТОР.
4. ПРОПУЩЕН ИДЕНТИФИКАТОР.
5. ИСПОЛЬЗУЙТЕ "-",
А НЕ ":-" ПРИ ОПИСАНИИ КОНСТАНТЫ.
6. ПРОПУЩЕНО "-".
7. С ЭТОГО ИДЕНТИФИКАТОРА НЕ
МОЖЕТ НАЧИНАТЬСЯ ОПЕРАТОР.
8. ПРОПУЩЕН ":-".
9. ПРОПУЩЕНА ")".
10. НЕПРАВИЛЬНЫЙ ТИП.
11. ПРОПУЩЕНА".".
12. ПРОПУЩЕН МНОЖИТЕЛЬ.
13. ПРОПУЩЕНА КОНСТАНТА-14.
ЭТО НЕ ИДЕНТИФИКАТОР КОНСТАНТЫ.
15. ПРОПУЩЕН "THEN".
16. ПРОПУЩЕН "DO".
17. ПРОПУЩЕНО 'ТО" ИЛИ "DOWNTO".
18. ПРОПУЩЕНА ••(".
19. НЕ МОГУ ЗАПИСАТЬ ВЫРАЖЕНИЕ
ТАКОГО ТИПА.
20. ПРОПУЩЕН -OF'.
21. ПРОПУЩЕНА",".
22. ПРОПУЩЕНО ":".
23. ПРОПУЩЕН "PROGRAM".
24. ПРОПУЩЕНА ПЕРЕМЕННАЯ.
25. ПРОПУЩЕН -BEGIN".
26. ПРИ ОБРАЩЕНИИ К READ
ПРОПУЩЕНА ПЕРЕМЕННАЯ.
27. НЕ МОГУ СРАВНИТЬ ВЫРАЖЕНИЕ
ТАКОГО ТИПА.
28. ДОЛЖЕН БЫТЬ ТИП INTEGER
ИЛИ REAL.
29. НЕ МОГУ ПРОЧИТАТЬ
ПЕРЕМЕННУЮ ТАКОГО ТИПА.
30. ЭТО НЕ ИДЕНТИФИКАТОР ТИПА.
31. ПОКАЗАТЕЛЬ СТЕПЕНИ ДОЛЖЕН
ОТНОСИТЬСЯ К ДЕЙСТВИТЕЛЬНОМУ ЧИСЛУ.
32. ПРОПУЩЕНО СКАЛЯРНОЕ
ВЫРАЖЕНИЕ.
33. НУЛЕВАЯ СТРОКА НЕ
ДОПУСТИМА (ИСПОЛЬЗУЙТЕ CHR(O)).
34. ПРОПУЩЕНЫ "С".
35. ПРОПУЩЕНЫ "•)".
36. ТИП ИНДЕКСА МАССИВА ДОЛЖЕН
БЫТЬ СКАЛЯРНЫМ.
37. ПРОПУЩЕНЫ "..".
38. ПРОПУЩЕНА ••(" ИЛИ
"," В ОПИСАНИИ МАССИВА.
39. НИЖНЯЯ ГРАНИЦА ВЫШЕ
ВЕРХНЕЙ ГРАНИЦЫ.
40. МНОЖЕСТВО СЛИШКОМ ВЕЛИКО
(БОЛЕЕ 255 ЭЛЕМЕНТОВ).
41. РЕЗУЛЬТАТ ФУНКЦИИ ДОЛЖЕН
БЫТЬ ИДЕНТИФИКАТОРОМ ТИПА.
42. В МНОЖЕСТВЕ ПРОПУЩЕНЫ
"," ИЛИ "]".
43. В МНОЖЕСТВЕ ПРОПУЩЕНЫ
".." ИЛИ "," ИЛИ "]".
44. ТИП ПАРАМЕТРА ДОЛЖЕН БЫТЬ
ИДЕНТИФИКАТОРОМ ТИПА.
45. ПУСТОЕ МНОЖЕСТВО НЕ МОЖЕТ
БЫТЬ ПЕРВЫМ СОМНОЖИТЕЛЕМ В ОПЕРАТОРЕ, НЕ ЯВЛЯЮЩЕМСЯ ОПЕРАТОРОМ ПРИСВАИВАНИЯ.
46. ПРОПУЩЕНО СКАЛЯРНОЕ
ВЫРАЖЕНИЕ (ВКЛЮЧАЯ ДЕЙСТВИТЕЛЬНЫЕ ЧИСЛА).
47. ПРОПУЩЕНО СКАЛЯРНОЕ
ВЫРАЖЕНИЕ (НЕ ВКЛЮЧАЯ ДЕЙСТВИТЕЛЬНЫЕ ЧИСЛА).
48. МНОЖЕСТВА НЕ СРАВНИМЫ.
49. ПРИ СРАВНЕНИИ МНОЖЕСТВ
НЕЛЬЗЯ ИСПОЛЬЗОВАТЬ "<", ">".
50. ПРОПУЩЕН "FORWARD",
"LABEL",fCONST", "VAR", 'TYPE" ИЛИ "BEGIN".
51. ДОЛЖНО БЫТЬ ШЕСТНАДЦАТЕРИЧНОЕ
ЧИСЛО.
52. НЕЛЬЗЯ ИСПОЛЬЗОВАТЬ POKE
ДЛЯ МНОЖЕСТВА.
53. МАССИВ СЛИШКОМ ВЕЛИК
(БОЛЕЕ 48 К).
54. В ОПРЕДЕЛЕНИИ ЗАПИСИ
ПРОПУЩЕНЫ "END" ИЛИ ";".
55. ПРОПУЩЕН ИДЕНТИФИКАТОР
ПОЛЯ.
56. ПРОПУЩЕНА ПЕРЕМЕННАЯ ПОСЛЕ WITH.
57. ПЕРЕМЕННАЯ В WTTH
ДОЛЖНА ИМЕТЬ ТИП RECORD.
58. ИДЕНТИФИКАТОР ПОЛЯ БЕЗ
ОПЕРАТОРА WTTH.
59. ПОСЛЕ "LABEL" ДОЛЖНО НАХОДИТЬСЯ ЦЕЛОЕ БЕЗ ЗНАКА.
60. ПОСЛЕ "GOTO" ДОЛЖНО НАХОДИТЬСЯ ЦЕЛОЕ БЕЗ ЗНАКА.
61. ЭТА МЕТКА НАХОДИТСЯ НА
НЕДОСТУПНОМ УРОВНЕ.
62. НЕОПИСАННАЯ МЕТКА.
63. ПАРАМЕТРОМ SIZE
ДОЛЖНА БЫТЬ ПЕРЕМЕННАЯ.
64. ДЛЯ УКАЗАТЕЛЯ ДОПУСТИМА
ПРОВЕРКА ТОЛЬКО НА РАВЕНСТВО.
67. ЕДИНСТВЕННЫМ ФОРМАТОМ ПРИ
ЗАПИСИ ЦЕЛЫХ С ДВУМЯ СИМВОЛАМИ ":" ЯВЛЯЕТСЯ Е:М:Н.
68. СТРОКИ НЕ ДОЛЖНЫ СОДЕРЖАТЬ
СИМВОЛ END-OF-UNE.
69. ПАРАМЕТР NEW, MARK ИЛИ RELEASE ДОЛЖЕН ИМЕТЬ ТИП УКАЗАТЕЛЯ.
70. ПАРАМЕТРОМ ADDR
ДОЛЖНА БЫТЬ ПЕРЕМЕННАЯ.
Ошибки при исполнении программы
При появлении ошибок во время исполнения программы выводится
одно из перечисленных ниже сообщений, за которым следует
"AT РС-ХХХХ",ще ХХХХ — адрес, на котором произошла ошибка.
Обычно источник ошибки очевиден; в противном случае следует просмотреть листинг
компиляции, используя значение ХХХХ для обнаружения ошибки. Как правило, это
редко не позволяет получить точные данные.
1. останов.
2. ПЕРЕПОЛНЕНИЕ.
3. ЗА ПРЕДЕЛАМИ ОЗУ.
4. ДЕЛЕНИЕ НА 0 (ТАКЖЕ
ГЕНЕРИРУЕТСЯ ПРИ DIV).
5. ИНДЕКС СЛИШКОМ МАЛ.
6. ИНДЕКС СЛИШКОМ ВЕЛИК.
7. ОШИБКА ПРИ ВЫЗОВЕ
МАТЕМАТИЧЕСКОЙ ФУНКЦИИ.
8. ЧИСЛО СЛИШКОМ
БОЛЬШОЕ.
9. ПРОПУЩЕНО ЧИСЛО.
10. СЛИШКОМ ДЛИННАЯ СТРОКА-
11. ПРОПУЩЕН ПОКАЗАТЕЛЬ
СТЕПЕНИ.
Ошибки во время исполнения программы приводят к ее останову.
ПРИЛОЖЕНИЕ 2
ОПИСАНИЕ РЕДАКТОРА НР80
Управление редактором:
caps-shift 1 (EDIT)
— редактировать строку, выделенную экранным курсором;
CAPS-SHIRT 2
(CAPS-LOCK) — фиксация регистра малых или больших символов;
CAPS-SHIFT 3
(TRUE-VIDEO) — страница вперед;
CAPS-SHIFT 4
(INV-VIDEO) — страница назад;
CAPS-SHIFT 5 (<—) — курсор влево/строка влево;
CAPS-SHIFT б (СТРЕЛКА ВНИЗ) — экранный курсор вниз;
CAPS-SHIFT 7 (СТРЕЛКА ВВЕРХ) — экранный курсор вверх;
CAPS-SHIFT 8 (—>) — курсор вправо/строка вправо;
CAPS-SHIFT 9
(GRAPHIC) —.включить графический регистр;
CAPS-SHIFT О
(DELETE) — удалить символ;
SYMBOL-SHIFT Q — перейти в начало текста;
SYMBOL-SHIFT w — перейти в конец
текста;
SYMBOL-SHIFT E — установить режим
редактирования;
SYMBOL-SHIFT I — установить режим
ввода символов;
symbol-shift А — установить режим
добавления символов;
SYMBOL-SHIFT S — найти образец;
SYMBOL-SHIFT D — удалить строку,
выделенную экранным курсором.
ВНИМАНИЕ: Звуковой сигнал сообщает о нажатии
недопустимой клавиши!
SYMBOL-SHIFT
CAPS-SHIFT — запрос "COMMAND" (команда).
Допустимые ответы:
4 (OPEN$ ) — открыть блок текста;
5 (CLOSE ) — закрыть блок текста;
6 (MOVE) — перенести блок текста;
7 (ERASE) — удалить блок текста;
О (FORMAT) — переключить формат
экрана 64/32 символа и наоборот;
Z (COPY) — копировать блок текста;
Х (CLEAR) — очистить текстовый
буфер;
Y (RETURN) — перейти к HISOFT формату редактирования и вводить текст средствами
бейсика;
F — задать образец и установить
режим поиска;
R — задать литерал для замены.
ВНИМАНИЕ: Используйте стандартный HP
редактор для исполнения прочих команд [C,R,G,P ... ].
Команды режима поиска:
S — найти образец;
R — заменить найденный образец на
заданный литерал;
G — перейти к замене остальных
образцов. * ВНИМАНИЕ: Звуковой сигнал сообщает о нажатии недопустимой клавиши!
ВНИМАНИЕ: Не используйте графический регистр вне
текста программы!
ПРИЛОЖЕНИЕ 3
ПРЕДСТАВЛЕНИЕ ДАННЫХ В ПАМЯТИ
ПРЕДСТАВЛЕНИЕ ДАННЫХ
Целые занимают в памяти 2 байта.
Например:
1 - #0001 256 - #0100
-256
- #FFOO
Для операций с целыми используется
регистр HL.
Символьные, буквенные и другие
скалярные занимают по 1 байту, TRUE имеет значение 1, ” FALSE — 0. Для операций с этими типами используется регистр
А.
Вещественные хранятся в форме
мантисса-порядок в 4-х байтах. Для операций над вещественными числами
используются регистры DE и HL. D
— для хранения порядка, Е, Н и L — для хранения
мантиссы, старший разряд регистра Н — для хранения
знака числа. Например:
2 = 01000000 00000000 00000000 00000001
= #40 #00 #00 #01 1
= 01000000 00000000 00000000 00000000
= #40 #00 #00 #00
-12.5 = 11100100
00000000 00000000 00000011 = #Е4 #00 #00 #03
0.1 = 01100110
01100110 01100110 11111100 = #66 #66 #66 #FC
Н LED
Запись занимает в памяти
пространство, равное сумме их компонентов. Массивы занимают
N*S байт, где N — размерность массива, S — число байт, занимаемое одним
элементом.
Множество хранится в виде битовых
строк и, если базовый тип имеет N элементов, то число занимаемых байт равно:
(N-1)DIV(8+1), т.е.
SET OF CHAR
займет (256-1)DIV(8+1)=32 байта;
SET OF (BLUE, GREEN,
YELLOW) -
(3-1)DIV(8+1)=1 байт.
Указатели занимают 2 байта в
памяти, содержащих адрес переменной (младший байт — первый). • ХРАНЕНИЕ
ПЕРЕМЕННЫХ В RUNTIMES
Глобальные переменные хранятся
начиная от верхушки стека RUNTIMES вниз, т.е. если стек
начинается с #ВООО и глобальными переменными являются:
VAR
I: INTEGER;
СН: CHAR;
X: REAL;
то I
расположится в *AFFE-#AFFF
СН — #AFFD
X — #AFF9-#AFPC
, Локальные переменные. К
ним нет доступа через стек. Вместо этого в начале каждого внутреннего блока
устанавливается регистр IX так, чтобы (IX-4) указывало
на начало блока локальных переменных; Т.о., если:
PROCEDURE TEST;
VAR
I, J: INTEGER;
to I будет находиться в IX-4-2 и IX-4-1, т.е. в IX-6, IX-5
J — IX-8, IX-7
ПАРАМЕТРЫ
И ВОЗВРАЩАЕМЫЕ ЗНАЧЕНИЯ
Параметры-значения трактуются как
локальные переменные и, как и эти переменные, занимают старшие адреса памяти.
Однако, в отличие от переменных, в (IX+2) фиксируется
младший адрес, а не вершина области. Если:
PROCEDURE TEST
(I: REAL;
J:INTEGER);
to
J будет
находиться первым в IX+2 и IX+3,
I в IX+4 по IX+7.
Параметры-переменные
рассматриваются также как и параметры-значения, с той лишь разницей, что первые
занимают 2 байта памяти, хранящих адреса этих переменных. Если:
PROCEDURE TEST (I: INTEGER; VAR X : REAL);
то
адрес Х будет находиться первым в
IX+2 и IX+3
I в IX+4 и IX+5
Возвращаемые значения функций
хранятся над первым параметром:
FUNCTION TEST (I: INTEGER): REAL;
I разместится
в IX+2, IX+3, а ячейки с IX+4 по IX+7 зарезервируются под возвращаемое
значение.
ПРИЛОЖЕНИЕ 4
ИСПОЛЬЗОВАНИЕ ГРАФИЧЕСКОГО
ТЕКСТА TURTLE
Пакет "черепашьей"
графики по команде G„TURTLE присоединяется к любой
программе (отметим, однако, что для нормальной работы пакет должен быть снабжен
PROGRAM-ЗАГОЛОВКОМ и VAR-ДЕКЛАРАЦИЕЙ. TYPE. CONST и LABEL объявлять не обязательно. Кроме того, программа не
должна содержать предварительно объявленных процедур и функций). Информация о
"черепашке" хранится в глобальных переменных:
HEADING
— используется для хранения углового значения направления, куда в данный момент
ориентирована "черепашка". Принимает значения REAL
в градусах и может быть установлена в 0 процедурой TURTLE.
Значение 0 соответствует востоку.
XCOR, YCOR
— хранят текущие координаты (X,Y)
"черепашки". Имеют тип REAL и изначально
равны 127 и 87 соответственно.
PENSTATUS
— имеет тип INTEGER. Используется для хранения
состояния пера; 0 — перо опущено, 1 — поднято.
ПРОЦЕДУРЫ
INC (С: INTEGER), С=0... 8; — номер цвета чернил.
PAPER (С: INTEGER), С=0... 8 — номер цвета фона.
COPY —
копирование экрана на принтер.
PENDOWN
(С; INTEGER) —перевод "черепашки" в
состояние, при котором оно при движении будет оставлять след цветом С.
penup —
процедура, обратная RENDOWN. (Обе процедуры
устанавливают процедуру PENSTATUS).
SETEND (A: REAL)
— назначает параметр типа REAL глобальной
переменной HEADING т.е. устанавливает направление
движения: 0 -EAST; 90 — NORTH;
180 — WEST; 270 — SOUTH, т.е.
против часовой стрелки.
SETXY (X,Y: REAL)
— устанавливает абсолютную позицию "черепашки".
FWD (L:REAL)
— двигает "черепашку" на L единиц (в
направлении, определяемом переменной HEADING).
BACK
(L:REAL) — двигает "черепашку" назад на L единиц <e6pa™oFWD).
TURN <L:REAL)
— поворот головы "черепашки" на А градусов. Увеличение А
соответствует повороту против часовой стрелки.
VECTOR (A, L: real) — смещает позицию черепашки на L единиц в направлении А. После перемещения голова
"черепашки" остается в А-направлении.
RIGHT (AiREAL)
LEFT (A: REAL)
— поворот головы "черепашки" вправо/влево на А градусов.
ARCR (R'REAL; A:
INTEGER) — "черепаха" идет по дуге окружности размером R. Длина дуги определяется А. "Черепаха" идет по
часовой стрелке. Обычно R — до 0.5.
turtle — инициализация глобальных
переменных.
Кроме этих основных процедур вы
можете найти в пакете и
вспомогательные, например:
SPOUT (С: CHAR) —вывод символа на экран через RST
#10.
Это полезно, например, при
использовании управляющего кода PRINTAT, за которым
должны следовать байты Х и Y. Однако с помощью WRITE некоторые коды не могут выводиться, например: 8 — BACKSPACE.
PLOT (X,Y;
INTEGER) —поставить на экране точку. LINE (ON: BOOLEAN;
X.Y: INTEGER) — соединить текущую точку с заданной. Параметр ON значения не имеет.
Заметим, что пакет TURTLE размещается начиная со строки 10 и заканчивается
1350.
ПРИМЕР ПРОГРАММЫ
•I. КРУГИ
1 PROGRAM CIRCLES;
2 VAR I: INTEGER;
1360 BEGIN 1370 TURTLE;
1380 FOR 1:^1 TO 9 DO
1390 BEGIN
1400 ARCR (0.5, 360);
1410 RIGHT (40)
1420 END 1430
END.
2. СПИРАЛИ
1 PROGRAM SPIRALS;
2 VAR
1360 PROCEDURE SPIRALS (L,A:REAL);
1370 BEGIN
1380 FWD (L);
1390 RIGHT (A);
1400 SPIRALS (L+l.A);
1410 END;
1420 BEGIN
1430
TURTLE;
1440 SPIRALS (9.95) (* ИЛИ
(9, 9СОИЛИ(9, 121 ) ... *
)
1450 END.
ОШИБКИ В TURTLE
Строка:
570 USER(#EAC) должна
быть изменена:
570 INLINE(#FD, #21.
#ЗА, #5С,
#FD, #CB, 1. #СЕ,
#CD, #AC, #E, #FD, #CB,
#8Е, #F3);
ПРИЛОЖЕНИЕ 5
ОСОБЕННОСТИ РЕАЛИЗАЦИИ H1SOFT PASCAL 4T НА 48К SPECTRUM
Нельзя использовать одиночные
символы <“, о, >=, а только комбинации >, <, ~.
Управление осуществляется только
временными атрибутами знакомест посредством стандартных управляющих кодов.
Например:
WRITE(CHR(17)); WRITE(CHR(4)); -зеленый PAPER.
Нельзя изменять постоянные
атрибуты.
Вместе с объектным кодом всегда
автоматически записывается загрузчик. Если вы использовали команду Т для записи
объектного кода и RUNTIMES на ленту, то для запуска
кода в работу достаточно выполнить LOAD"".
После окончания работы кода его
можно запустить повторно, введя GOTO 7.
Если вы вышли из паскаля на
команде В, для возврата в редактор введите GOTO 9
("ТЕПЛЫЙ" старт с сохранением исходного текста) или
GOTO 12 ("ХОЛОДНЫЙ" старт с инициализацией).
Для установки цвета INK используйте CHR(15).
PASCAL 4T VERSION
5 (С 1 апреля 1983г.)
1. Функции могут возвращать
значения POINTER (указатели).
2. Исправлена ошибка в NEW.
3. Новый редактор. Добавлена
команда V без аргументов, которая выдает значение разделителя,
LINE RANGE, FIND и SUBSTITUTE строк.
4. Реализована опция $F (INCLUDE). Если вы хотите ее использовать, то исходный
текст, который предполагается подкачивать, должен быть выведен на ленту с
помощью команды W. W работает аналогично команде Р за
исключением того, что по W информация выводится не в НР4Т-ФОРМАТЕ и запись
начинается сразу после окончания набора команды. Текст, записанный командой W,
нельзя считать командой G.
ПРИМЕР:
W 50.120.PLOT
— запись процедура PLOT.
Для включения
PLOT:
100 END;
(“НАЧАЛО ПРОГРАММЫ”) 110
120 (*$F PLOT”) 130
140 PROCEDURE MORE; (* ОСТАВШАЯСЯ ЧАСТЬ ПРОГРАММЫ • )
БИБЛИОТЕКИ
После компилятора на кассете могут
быть записаны следующие файлы, представляющие собой тексты, и загружаемые в
редактор по команде G:
HP80HELP —
файлы с описанием команд НР80 на английском языке (см. прил.3); .
РОКЕС — описание команд стандартного
редактора (по-польски).
3DPLOT —
пример графической программы на паскале. После трехмерного графика SIN(X)*COS(Y) в заданном интервале координат с заданным
интервалом координат с заданным шагом (довольно медленно, долгое время на
экране может вообще ничего не появляться. Чтобы прервать, нажмите BREAK, затем EDIT).
TURTLE —
"черепашья" графика (см.прил.4).
мраск
— пакет, производящий арифметические действия над плавающими числами
большой точности. В качестве примера вычисляется факториал с использованием
чисел, представляющих собой массив из 380 байт. Размерность можно изменить.