Справочник по системным программам 1969 г.

Описание программ - Pasclal.


PASCAL

Компилятор занимает около 12к, в то время как при запуске пограммы использу-
ется дополнительно 4к. редактор занимает 2к. Таким образом, общий размер пакета
около 19к, ставшаяся часть памяти использована под PASCAL-программы.

PASCAL использует различные управляющие коды вводимые с клавиатуры, в
большинстве случаев из редактора . Конечно различные системы могут иметь разные
клавиатуры и методы генерерирования управляющих кодов. Используемые в данном
ENTER,CC.CH.CI.CP.CS и СХ.

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

ENTER используется для ввода линии;

СС возврат в редактор;

СН удаление последнего напечатанного символа;

СI табуляция;

CP прямой выход на принтер (если подключен) или возврат на экран;

СХ удаление строки.

НI SOFT PASCAL загружается в компьютер "LOAD".

после успешной загрузки автоматически появляется сообщение:
TOP OF RAM?

Вам следует ответить либо вводом положительного десятичного числа до 65536.

(с последующим нажатием ENTER), либо просто ENTER.

Если вы ввели номер, то он будет использоваться как наивысшая позиция ОЗУ + ,
1,иначе эта величина будет вычислена автоматически. Стек компилятора будет >с-
татановлен равным этой величине и, таким образом, вы можете зарезервировать на
вершине памяти область вводом величины меньше, чем действительная вершина ОЗУ.

ZX-SPECTRUM версии НI SOFT PASCAL 'правильная' вершина ОЗУ берется равной на-
чалу области, отводимой под пользовательскую графику ( UDG-no руководству к
SINCLAIR ). Сейчас на экране появилось сообщение:
TOP OF RAM FOR 'Т

Здесь вы можете ввести десятичное число. То, что вы введете, будет использо-
вано как стек, когда результирующий об'ектный код будет получен после использо-
вания команды 'Т' редактора (см.Рзд.4). Вам необходимо назначить стек, ис-
пользуемый работающей программой, отличным от вершины ОЗУ, если, например, у
вас написано расширение для выполняемой программы и вы хотите сохранить его
в верхней области ОЗУ.

В конце появится сообщение:

TABLE SIZE?

То, что введете сейчас, определит построение памяти под таблицу ( с п.- сле-
дующим нажатием ENTER) или просто ENTER. Если вы ввели ENTER, то вычисленная ве-
личина (свододная ОЗУ деленная на 16) будет установлена в качестве размера те-
лицы. Во многих случаях вычисленная величина резервирует более чем достаточно
пространства под символы.

С этого момента компилятор и редактор будут перемещены в конец таблицы и уп-
равление будет передано редактору.

Компилирование и запуск.

Когда компилятор требует помощи, он генерирует сообщение в следующей форме
# # # # ПППП текст строки:

Где: # # # # адрес начала расположения кода, генерируемого этой линиек. ПГ1ПП-
номер мтроки содержащей ошибку.

Если строка содержит более 80 символов, компилятор образует новую строку, гак
как строка не может содержать более 80 символов.

Если потребуется, этот листинг может быть выведен на принтер использованием
команды "Р" (Рзд.З).

Вы можете остановить листинг нажатием CS; для возврата в редактор используйте
СС; продолжить листинг можно нажатием любой клавиши.

Если во время компиляции будет обнаружена ошибка, то появится сообщение ♦ER-
ROR*. знак '/',указывающий на позицию после символа вызвавшего ошибку и номер
ошибки (пр.1). Листинг остановится; нажмите 'Е'для возврата в редактор, для то-
го, чтобы отредактировать высвечиваемую линию или '?' для редактирования преды-
дущей линии (если она есть) или любую' другую клавишу для продолжения компиля-
ции.

Если программа заканчивается некорректно (т.е. без END), появится сообщение
'N0M0RE TEXT' ( текста больше нет ) и управление будет передано редактору.

Если редактор выйдет за границы таблицы , то появится сообщение'NO table SPA-
CE '(нет места в таблице) и управление будет передано редактору В этом случае
программист должен сохранить гртграмму на ленте, перегрузить компилятор и за-
дать большие размеры таблицы TABLE SIZE' (Рзд.0.0).

Если комнляция закончилась корректно, но содержит ошибки- появятся сообщения
об ошибках и об'ектный код буде" уничтожен . Если компиляция прошла успешно, то
появится 'RUN?'. Если вы желает* запустить программу немедленно нажмите 'У'.в
противном случае упраление будет передано редактору.

В процессе работы программы могут появиться ошибки исполнения ( см. Приложе-
ние 1 ). Вы можете приостановить выполнение, используя CS; прервать, воспользо-
вавшись СС и продолжить, нажав'любую другую клавишу.

Редактор

Введение в редактор.

Примечание: в этом разделе клавиша 'DELETE' используется вместо управляющего
кода СН.

Редактор вводится автоматически при загрузке PASCAL с ленты, и ожидает ввода
команды высветив символ '>'.

Командная строка имеет следующий формат:
С N1 . N2.SI.S2

после чего необходимо нажать ENTER, где:

С выполняемая команда (раздел 4.2);

N1 число в диапазоне от 1 до 32767 включительно;

N2 число в диапазоне от 1 до 32767 включительно;

51 строка символов максимальной длинны 20;

52 строка символов максимальной длинны 20.

Запятая используется для разделения различных аргументов ( хотя ее можно за-
менить - смотри команду 'S'). пробелы игнорируются, за исключением пробелов
внутри строк символов ни один из аргументов не является обязательным, хотя не-
которые команды (например'D'ELETE) не выполняются без указания N1. N2. Редактор
помнит предыдущие числа и стоки, которые вы ввели и использует эти первые значе-
ния где возможно, если не задан конкретный аргумент внутри строки команды. Зна-
чение N1.N2 обычно устанавливает равными 10 и строки вначале пустые. Если вы
ввели неправильную команду, например:
F-1.100.HELLO

команда будет игнорирована и появится сообщение
'PARDON?'

И вам необходимо ввести правильную строку
F1.100. HELLO

Это же сообщение появится если длина S2 превышает 20; если S1 длиннее 20.то
любой избыточный символ игнорируется, команды могут вводится в верхнем илн ниж-
нем регистре.

При введении строки команды, все соответствующие управляющие коды, описанные
в разделе 0.0. могут вводиться.

Следующий подраздел детализирует команды имеющиеся в редакторе. Он должен
обязательно присутствовать для выполнения команды.

Команды редактора
Ввод текста

Текст может £ыть вставлен в текстовый файл, или печатая номер строки.пробел.

а затем требуемый текст., или используя команду I.

Команда : I N. И

Использование этой команды обеспечивает ввод в автоматическом режиме: на эк-
ране автоматически высвечивается номера вводимых строк. Можно использовать все
управляющие коды, ввод строки завершается нажатием 'ENTER' . Для выхода из ре-
жима используйте управляющий код 'СС'.

Если вы вводите строку с номером, который уже существует в тексте, существую-
щая строка будет стерта и заменена на н&вую после нажатия клавиши 'ENTER'. Ес-
ли автоматическое наращивание номера строки дает номер больший чем 32767, то
редактор автоматически выходит из режима ввода.

Если при вводе текста вы достигли конца экрана, но при этом строка содержит

менее 128 символов ( размер буфера), строки на экране подниму ген и вы можете
печатать следующую строку.

4.2.2 Распечатка текста

Текст может быть распечатан, используя команду 'L'; количество строк изобра-
жаемых одновременно на экране в течение процедуры команды изначально фиксирова-
но, но моАс т быть изменено с помощью команды 'К'.

. Комо .да : L N. М

Выводит текущий текст на экран со строки N до строки М включительно. По умол-
чанию длина для N всегда 1, а для М 32767, т.е. эти значения не берутся из
предварительно введенных аргументов. Чтобы распечатать весь файл текста, ис-
пользуйте просто 'L' без всяких аргументов. Строки ограничены слева меткой ;
справа границей экрана. Количеством строк экрана можно управлять с помощью ко-
манды 'К'. По выводу определенного количества строк текст остановится, введите
управляющий код СС, для возврата в основной цикл редактора, или любую клавишу,
для продолжения листинга.

Команда : К N

Команда устанавливает количество строк экрана, которое должно быть выведено
перед тем, как вывод приостановится. Величина (N 256) вычисляется и хранится в
памяти. Например, используйте ее. если хотите, чтобы команда L за один раз лис-
тала 5 строк.

Редактирование текста

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

Команда : D<N,M>

' все строки от N до М включительно стираются из текстового файла. Если M<N или
описано менее двух аргументов команда выполняться не будет.

Команда : М N.M

в этом случае текст со строки N вводится на строку М; содержимое последней
при этом стирается. Строка N при этом сохраняется.

Команда : N <N.M>

используется для перенумерации строк начиная с N шагом М. Оба параметра обя-
зательны.

Команда : F N.M.F.S

в тексте заключенном между N<X<M ищется выражение F. Если такое найдено, то
высвечивается эта строка и вводится режим редактирования.Вы можете использовать
команды режима редактирования для поиска выражения F или замены на выражение S
текущего значения F.a затем для поиска следующего положения выражения F.

Команда : Е N

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

В этом режиме курсор как бы движется вдоль строки начиная с первого символа и
различные подкоманды позволяют проводить редактирование. Эти подкоманды сле-
дующие :

(SPACE) передвижение курсора вдоль строки

DELETE возвращение курсора назад вдоль строки (нельзя продвинуть левее.

BACKSPACE) если курсор стоит на первом символе)

CI(упр.код) передвигает курсор на очередную метку табуляции, но не до конца
строки.

<ENTER> закончить редактирование сохранив изменения

Q отмена редактирования данной строки (оставляет строку в состоянии

до режима редактирования)

L просмотреть оставшуюся часть редактируемой строки; например справа

от курсора.Остается режим редактирования с курсором вначале строки

К стирает символ на котором йаходится курсор.

Z стирает правую часть строки, включая символ на котором находится

курсор

F найти следующее положение выражения предварительно определенное

аналогичной командой. Эта /омчмда автоматически переведет редак-
тор на следующую строку, сод^жащую искомое выражение (сохранив
все введенное изменения) если не будет найдено такого же выраже-
ния в текущей строке. Заметьте, что курсор расположен вначале
найденного выражения в случае удачного поиска.
SS заменить на предварительно замененные выражения, выражения най-

денные по команде F, а затем выполнить команду F. т.е.осуществить
поне «г следующей cipoKH содержащей искомое выражение. Вместе с ко-
мандой f используется для пошагового прохождения всего файла и за-
мены выражений. (См. раздел 4.3)
i ввод символа в текущую позицию курсора; находитесь в этом подрежи-

ме до нажатия клавиши ENTER и возврата в основной режим редактиро-
вания с курсором в позиции после последнего введенного символа.
Используя 9ЫЕТЕ(нлн BACKSPACE) можно стереть символ по левую сто-
рону от курсора, а используя управляющий код С1 - переместить кур-
сор в следующую позицию табуляции.
X продвигает курсор к концу строки и автоматически вводит вставки

подрежимов описанных выше.
С меняет подрежим. Позволяет переписать знак в позиции курсора и.

затем, передвигает курсор на одну позицию. Работа в подрежиме про-
должается до нажатия клавиши ENTER для возврату к основному режиму;
при этом курсор располагается после последнего исправленного сим-
вола. В этом подрежиме 0Е1ЕТЕ(или BACKSPACE) просто сдвигает кур-
сор влево, в то время как С! не действует.

Команды работы с магнитофоном

Текси может быть записан или загружен с помощью команд 'Р' и 'G'.

Команда Р N,М,S

Строки, номера которых находятся в диапазоне N<X<M, будут сохранены на ленте
в формате НI SOFT PASCAL под именем поределенным строкой S.

Команда G ,, S

В записи находится файл записанный в HISOFT PASCAL формате с именем S. Пока
идет поиск на экране высвечивается : 'SEARCHING...'. Если в записи встретится
файл в данном формате, но с другим именем, на экране появится надпись'FOUND' за
которой следует им$ встретившегося файла и поиск будет продолжен. По нахождению
нужного файла он будет загружен Ъ память. Если при загрузке обнаружится ошибка,
то появится сообщение об этом и загрузка будет прервана.

В этом случае вам необходимо вернуть Ленту назад и снова запустить G.

Если имя файла не задано, то загрузится первый найденый файл в PASCAL формате.

Пока продолжается поиск вы монете прерывать его с помощью СС и возвратиться в
основной режим.

> Если в памяти находится другой файл, то загружаемый с ленты файл будет при-
соединен к нему и образованный файл перенумерован начиная с номером I с шагом I.

Компиляция и запуск программ из редактора

Команда: С N

Текст, начиная со строки N будет откомпилирован. Если номер не указан, то
текст будет откомпилирован начиная с первой существующей строки (см.Рзд 0.2)

Команда: R

Предварительно откомпилированный объектный код будет исполнен, только если
он не был утрачен (см.Рзд 0.2)

Команда: Т N

Эта команда транслирования. Текущий источник компилируется со строки N (илн
сначала, если N отсутствует), если компиляция прошла успешно, на экране появит-
ся 0К?'.

Другие команды

Команда: В

Управление возвращается к операционной системе

Команда: 0 N.M

Если вы имеете текст (возможно от другого редактора) который не закодирован,
то используя команду '0' вы можете его закодировать для дальнейшего использова-
ния с компилятором.

Команда: S..D

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

Команда: V

Не имеет аргумента и высвечивает текущие назначеные величины диапазона строк
и два выражения.
Команда: X

Высвечивается адрес компилятора в шеснадцатнричном коде.
Ошибки

Перечень ошибок генерируемых компилятором
.NUMBER ТОО LARGE
.SEMI-COLON OR 'END' EXPECTED.

.UNDECLARED IDENTIFIER. (Необъявленный идентификатор)
.IDENTIFIER EXPECTED.

.USE ' = ' NOT ': = 4 N A CONCTANT DECLAGATI ON.
.'='EXPECTED.
THIS IDENTIFIER CANOOT BEGIN A STATAMENT
. ':* 'EXPECTED.
. ') 'EXPECTED.
0.WRONG TYPE.
I'. 'EXPECTED.

2.FACTOR EXPECTED.

3.CONSTANT EXPECTED.

- 4.THIS IDDENTIFIER IS NOT A CONSTANT.

5. 'THEN' EXPECTED.

6.'DO' EXPECTED.

7. 'TO' t)R 'DOWNTO' EXPECTED.

8. ') ' EXPECTED.

9.CANNOT WRITE THIS TYPE OF EXPRESSION.
20. 'OF' EXPECTED.

21 . ' EXPECTED.

22.':' EXPECTED.

23.'PROGRAMM' EXPECTED.

25.'BEGIN' EXPECTED.

26.VARIABLE EXPECTED IN CALL TO READ.

27.CANNOT COMPARE EXPRESSIONS OF THIS TYPE.
28.SHOULD BE EITHER INTEGER OR TYPE REAL.

29.CANNOT READ THIS TYPE OF VARIABLE.

30.THIS IDENTIFIER IS NOT A TYPE.

31.EXPONENT EXPECTED IN REAL NUMBER.

32.SCALAR EXPRESSION (NOT NUMERIC) EXPECTED.

33.NULL. STRINGS NOT ALLOWED (USE CHR.(O) ).

34. '(' EXPECTED.

35. ') ' EXPECTED.

36.ARRAY INDECS MUST BE SCALAR.

37. '.. ' EXPECTED.

38.')'OR',' EXPECTED IN ARRAY DECLARATION.

39.LOWERBOUND GREATER THEN UPPERBOUND.

40.SET TOO LARGE (MORE THEN 256 POSSIBLE ELEMENTS).

41.FUNCTION RESULT MUST BE A TYPE IDENTIFIER.

42.'.' OR ')' EXPECTED IN SET.

43.'..' OR ',' OR ')' EXPECTED IN SET.

44.TYPE OF PARAMETER MUST BE A TYPE IDENTIFIER.

45.NULL SET CANNO BE THE FIRST FACTOR IN A NON-ASSIGNMENT STATEMENT.
46.SCALAR (INCLUDING REAL) EXPECTED.

47.SCALAR (NOT INCLUDING REAL) EXPECTED.
48.SETS INCOMPATIBLE.

49.'<' AND '>' CANNOT BE USED TO COMPARE SETS.

50. 'FORWARD', 'LABEL', 'CONST', 'VAR'. 'TYRE' OR 'BEGIN' EXPECTED.

51.HAXADEZIMAL DIGIT EXPECTED.

52.CANNOT POKE SETS.

53.ARRAY TOO LARGE (>64к).

54. 'END' OR ';' EXPECTED IN RECORD DEFINITION.

55.FIELD IDENTIFIER EXPECTED.

56.VRIABLE EXPECTED AFTER 'WITH'.

57.VARIABLE IN 'WITH' MUST BE OF RECORD' TYPE.

58.FIELD IDENTIFIER HAS NOT HAT ASOCIATED WITE STATEMENT.

59.UNSIGNED INTEGER EXPECTED AFTER 'LABEL'.

60.UNSIGNED INTEGER EXPECTED AFTER 'GOTU'.

61.THIS LEBEL IS ON THE WRONG LEVEL.

62.UNDECLARED LABEL.

63.THE PARAMETER OF SIZE SHOULD BE A VARIABLE.

64.CAN ONLY USE EQUALITY TESTS FOR POINTERS.

65.THE ONLY WRITE PARAMETER FOR INTEGERS WITH TWO '. ' S IS E:M:H.
66.STRINGS MAY NOT CONTAIN END OF LINE CHARACTERS.

67.THE PARAMETER OF NEW, MARK OR RELEASE SHOULD BE A VARIABLE OF POINTER TYPE.

68.THE PARAMETER OF ADDR. SHOULD BE A VARIABLE.

Ошибки исполнения.

Когда при исполнении программы обнаруживается ошибка появляется одно из сле-
дующих сообщений, перед которым печатается 'AT РС=####'. где #### - адрес памя-
ти, где ошибка возникла. Также будет указан источник ошибки, если нет. то необ-
ходимо просмотреть листинг компиляции на предмет обнаружения места возникнове-
ния ошибки.

I.HALT (останов)

2.OVERFLOW (переполнение)

3.0UT OF RAM (мала озу)

' 4./BY ZERO (деление на ноль)

5.INDEX ТОО LOW (индекс слишком мал )

6. INDEX ТОО HIGH (индекс слишком велик)

7.MATHS CALL ERROR

8. NUMBER TOO LARGE (номер слишком велик)
3.NUMBER EXPECTED

10.LINE TOO LONG (длинная строка)

II.EXPONENT EXPECTED

Обнаружение ошибки исполнения прерывает выполнение программы.

Зарезервированные слова и предопределенные идентификаторы.
Зарезвированные слова
AND ARRAY BEGIN CASE CONST DIV DO DOWNTO ELSE END

FORWARD FUNCTION GOTO IF IN . LABEL MOD NIL NOT OF

OR PACKED PROCEDURE PROGRAMM RECORD REPET SET THEN TO

TYPE UNTIL VAR WHILE WITH

Специальные символы
. + * /=<><<=>=>()
(* M / := ;

Предопределенные идентификаторы.
CONST MAX INT*32767
TYPE BOOLEAN»(FALSE,TRUE);

CHAR (устанавливает ASCII символ);
INTEGER = - MAXINT..MAXINT;

REAL (предустанавливает дейтвительные числа)

тогда:

PROCEDURE WRITE; WRITELN; READ; READLN; PAGE; HALT; USER; POKE; INLINE;

OUT; NEW; MARK; RELEASE; TIN; TOUT;
FUNCTION ABS; SQR; ODD; RANDOM; ORD; SUCC; PRED; INCH; EQLN; PEEK; CHR;

SQRT; ENTIER; ROUND; TRUNC; FRAC; SIN; COS; TAN; ARCTAN; EXP;
LN; ADDR; SIZE; INP.

Представление данных
Информация о методе хранения может понадобиться в большинстве случаев (может
быть использована функция SIZE см. Рзд.2.3.6.7). Остальные детали необходимы
тем. кто хочет использовать PASCAL-программу с программами в объектном коде
Целые числа.

При хранении целые числа занимают 2 байта . в двоичной комплементарной форме.
Например:

1 - # 0001
265 - # 0100

-256 * # FF00

стандартный регистр Z-80 используемый компилятором для хранения целых HL.
Символы, логические и другие скаляры.
Занимают 1 байт в виде беззнаковых двоичных чисел.
Символы 8 бит в ASCII коде.
'Е' = #45

Логические:
ORD(TRUE)=1 итак, TRUE представлена 1

0RD(FALSE)=0 FALSE представлена 0

стандартный регистр Z-80 используемый компилятором для хранения - А.
Действительные числа.
Используется стандартная интерпретация экспоненциальной формы только с осно-
ванием 2 вместо 10. Например:
2=2*10 или 1.0*2

Для хранения используется 4 байта:

| знак | нормализованная мантисса | экспонента | данные |

Пример:

2- 0 1000000 00000000 00000000 00000001
-12.5=1 1100100 00000000 00000000 00000011

Итак, регистровые пары HL DE используются для хранения действительных чисел.
В памяти хранятся в последовательности ED LH.

Записи и массивы
Записи хранятся в таком же виде, как и их компоненты.
Массивы: если N - количество элементов в массиве и

S = размер каждого элемента, тогда
количество байт отведенное под массив N*S. Например:
ARRAY(1..10)OF INTEGER занимает 10*2-20 байт

ARRAY(2..12,1..10)OF CHARS имеет 11*10=110 элементов и требует 110 байт.
П.3.1.5 Множества.
Множества хранятся как битовые строки и, если базовый тип содержит N элемен-
тов, то количество байт используемых под это равно: (N-l) D1V 8+1. Например:
SET OF CHAR требует (256-1)DIV 8+1 =32 байт.
SET OF(BLUE,GREEN,ELLOW) требует (3-1) DIV 8+1=1 байт
Указатели.

Указатели занимают два байта, которые содержат адрес (в формате INTEL,т.е.
младший байт 1) переменной на которую он указывает.

Хранение переменных во время выполнения программы
Есть три случая, в которых пользователю необходимо знать как хранятся пере-
менные во время выполнения программы:

а. Глобальные переменные - объявляются в основном блоке программы;

б.Локальные переменные - объявляются во внутреннем блоке программы;

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

Эти индивидуальные функции описаны ниже и даны примеры использования этой ин-
формации в пр.4.

Глобальные переменные.
Глобальные переменные распологаются от вершины исполнительного стека вниз,
т.е. если стек распологается с #В000 и основные переменные программы:
VAR I :INTEGER;

СН:CHAR;
X :REAL;

тогда:

I (которая занимает 2 байта-см.Предыдущий рзд.) будет распологаться в пози-
ции #В000-2 и #В000-1. т.е. #AFF9 и #AFFF.СН (1 байт) будет расположена #AFFE-1.
т.е. #AFFD X (4байт) будет расположена #AFF9. #AFFA, #AFFB. #AFFC.

Локальные переменные.

Локальные переменные не могут быть так легко переданы через стек, поэтому
вместо этого IX регистр указывает на начало каждого внутреннего блока так. что
(1Х-4) указывает на начало локальных переменных блока.т.е.
PROCEDURE TEST;

VAR I.J:INTEGER;

Тогда: I (целые 2 байта) будут расположены IX-4-2 и IX-4-1. те 1X6 и IX-5.J
будут расположены IX-8 и IX-7.

Параметры и возвращаемые величины.

Параметры - значения расматриваются как локальные переменные и также объяв-
ляются. как старший адрес их расположения в памяти. Однако, в отличие от пере-
менных. наименьший (не старший) адрес фиксируется в (IX+2). например PROCEDURE
TEST (I:REAL;J:INTEGER); тогда:

I по IX+4,IX+5.IX+6 и IX+7.

Параметры - переменные расматриваются также, как и параметры-значения за иск-
лючением того, что они всегда занимают 2 байта и эти 2 байта содержат адрес
переменнрй; например :

PROCEDURE TEST (I:INTEGER;VARX:REAL);

Ссылка на X расположена no IX+2 и IX+3; эти позиции содержат адрес, где X
хранится. Величина I находится по IX+4 и IX+5.

Значения, возвращаемые функциями располагаются над первым параметром памяти,
т.е. FUNCTION TEST(I:INTEGER):REAL; тогда I находится no IX+2 н IX+3, а также
резервируется пространство для возвращаемых величин по IX+4.IХ+5.IХ+6.IХ+7.

Особеиности применения НI SOFT PASCAL на ZX-SPECTRUM.

Загрузка НР4ТМ с ленты.

PASCAL загружается LOAD"" и после удачной загрузки запускается автоматически.

Применение на SPECTRUM

ZX-SPECTRUM необычный компьютер и. естественно, это отразилось на использова-
нии НI SOFT RASCAL. Различные управляющие коды, описаные ранее, в ZX-SPECTRUM
имеют следующие значения:
RETURN ENTER

СС CAPS SHIFT + 1

СН DELETE или CAPS SHIFT + О

CI CAPS SHIFT + 8

CP CAPS SHIFT +3 - текст на принтер

CX CAPS SHIFT + 5

CS CAPS SHIFT + SPACE

Схема ввода с клавиатуры ZX-SPECTRUM необычная.т.к. содержит только алфавит-
но - цифровые коды. Используя SYMBOL SHIFT+ любую клавишу (кроме 1) можно полу-
чить другие символы; SYMBOL SHIFT+T даст '>' , a SYMBOL SHIFT+G даст '<'.

Внимание!!!! Вы не должны использовать единые символы <=,<>.>=.Вместо них
необходимо применять комбинации символов <,>,=.

Вы можете управлять некоторыми атрибутами различных позиций на экрана, ис-
пользуя стандартные управляющие коды (так WRITE (CHR(!7). CHR(4))) сделает лист
(PAPER) экрана зеленым. Но вы не можете изменить атрибуты окраски. Если во вре-
мя использования управляющих кодов обнаружится недопустимый, будет высвечено
сообщение 'SYSTEM CALL ERROR' и выполнение прекратится. Помните, что любой уп-
равляющий код интерпретируется PASCAL (так CHR(8) воспринимается как DELETE ) и
ие могут быть прямо посланы в SPECTRUM. Используйте процедуру SPOUT. если вы
хотите напечатать CHR код без интерпретации PASCAL.

Дополнительные команды добавлены в редактор PASCAL из ZX-SPECTRUM; это ко-
манды 'W' которая работает как 'Р'-команда только она записывает блок текста иа
ленту в формате удобном для дальнейшего использования (через команду компилято-
ра 'SF'). Помните, что вы не можете 'включить' текст, если он был записан на
ленту используя 'Р' команду. Если вы хо¥ите включить текст используйте команд
'W'.




СОДЕРЖАНИЕ:


  Оставте Ваш отзыв:

  НИК/ИМЯ
  ПОЧТА (шифруется)
  КОД



Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Реклама - Реклама и объявления.
Информация - "круглый стол" организаторов Фестиваля FunTop98.
AD&D - История Рагната (часть первая).
Письмо №289
В паутине - График работы городских серверов.

В этот день...   6 мая