ZX Spectrum
Game

FORTH

Abersoft (Великобритания),

Автор:

Жанр: Программы и утилиты


Доступные версии

 Неофициальное издание
Играть!
 Оригинальное издание
Играть!
 Переиздание
Играть!
 Переиздание
Играть!

Язык

  • Русский
  • English

Управление

  • Интерфейс 2(?)
  • Клавиатура(?)

Игроков

  • Один
  • Описание (авт.пер.)
  • Информация

ГЛАВА 1. ВВЕДЕНИЕ

1.0 Запуск Out.

Это руководство не претендует на учебник-оф-Форт, есть много книг, доступных на рынке, которые делают это более чем достойно. Однако все дополнения к стандарту описаны с примерами, так что они могут быть использованы в собственных определений. Для новичка до языка, рекомендуется книга «Начиная Форт” Лео Броди.

Для более продвинутых пользователей одной полезной справочной работы “Системы направлять до фига-Forth» по CH Ting.

ЧЕТВЕРТЫЙ это язык, который сочетает в себе черты языках высокого уровня со скоростью машинного кода.

Переводчик ОПИСАННОЙ интерпретирует каждую строку команд с помощью поиска по внутренним словарем слов, которые он понимает. Затем он действует на этих словах. Некоторые слова позволяют создание новых слов, которые в свою очередь формируют основу для слов даже высокого уровня, В конце концов вся программа поставляется вместе, и называется одним словом. Это постепенное развитие позволяет лучше проверки разделов программы, чем BASIC делает.

1.1 Настройка.

Чтобы установить базовую систему от типа спектра либо

  LOAD “”   или   LOAD “ВПЕРЕД”

Когда компилятор загрузится, вам будет встречено сообщением: –

48k СПЕКТР рис-ВПЕРЕД n.nn (где n.nn это номер версии) Abersoft: 1983

и мигает C в качестве курсора. Все команды могут быть введены в верхнем или нижнем регистре в зависимости от того, как эти слова были определены (то есть тест, тест и тест все разные слова и рассматриваются как таковые компилятором.) Верхний и нижний регистр переключаются в обычном порядке Spectrum как в графическом режиме. Курсор изменится на C, L или G соответственно. ЧЕТВЕРТЫЙ не использовать ключ-слово систему Sinclair BASIC и все команды должны быть введены в полном объеме. Все символы клавиатуры доступны, используя только сдвиг символа (т.е. ‘[‘, которые обычно нуждается расширенный режим Y просто требует символа сдвиг Y). Единственный персонаж не доступны с помощью этого метода является символом авторских прав.

Есть в настоящее время две клавиши Перерыв доступные в этой системе – стандартный ключ, который может быть опасным, когда делать кассеты или принтера I / O, или Caps Shift, 1, которые могут быть безопасно ловушку ТЕРМИНАЛ?.

Чтобы проверить, что система работает, просто нажмите клавишу ВВОД и система должна реагировать

хорошо

Теперь вы готовы, чтобы начать программирование в Форте.

Глава 2. Использование SPECTRUM вперед

2.0 Стек

Одним из основных различий между четвертой и большинство других языков высокого уровня является то, что ОПИСАННОЙ использует обратной польской нотации (RPN). Как правило, оператор ‘+’ приходит между числами, которые вы хотите добавить (например, 4 + 7). В Росприроднадзора, оператор приходит после цифр (т.е. 4 7 + вместо. Обратите внимание, что вам нужно вставлять пробелы между 4, 7, и +). Это потому, что стек используется для хранения чисел при вычислении выражения. (В случае, если вы не знаете, что стек, представьте себе стопку тарелок. Последняя пластинка поставить на сваи, находясь на вершине, это первое, что приходит снова). Когда ОПИСАННОЙ находит ряд, это ставит его в стек. Когда он находит оператор, он принимает необходимые цифры из стека, затем помещает результат обратно в стек. Слово точка ‘.’ (Без кавычек) принимает ряд от вершины стека и печатает его.

Основная программа линия “PRINT (3 + 7) * (8 + 2) ‘является, в-четвертых,” 3 7 + 8 2 + *. ‘(Обратите внимание, пространства важны).

После выполнения: стек становится:

3 (3) – вершина стека на этой стороне 7 (3,7) + (10) 8 (10,8) 2 (10, 8, 2) + (10,10) * (100) , () 100 печатается

Практика является единственным способом, чтобы ознакомиться с РПН. Похожие слова объяснены в глоссарии:

  + – / * / * / MOD / MOD MOD MAX MIN И ИЛИ XOR МИНУС + – 1+ 2+    Есть некоторые слова, которые тасует цифры в стеке DUP дублирует верхнюю число DROP сбрасывает верхнюю число SWAP меняет местами два верхних номера Так, например: 1 DUP. , печатает 1 1 в порядке 1 2 DROP. печатает 1 в порядке 1 2 SWAP. , печатает 1 2 порядке Похожие слова: РОТ ЗА Смотрите также: S0 SP @

2.1 Переменные и константы

Переменная в Форте должен быть явно создан перед его использованием, используя слово “переменная” например, 3 ПЕРЕМЕННОЙ A1

создаст переменную `A1″ с начальным значением 3. Любая последовательность символов, кроме пробелов будет работать в качестве имени.

6 A1! магазины 6 в A1 раз A1 был определен в качестве переменной.

A1 @. (Также можно записать в виде А1?) Будет получать содержимое «А1» и распечатать его. Слово `A1 ‘на самом деле ставит адрес’ A1 ‘в стек. ‘!’ берет адрес из стека затем принимает ряд из стека и сохраняет его по адресу. Работа `@ ‘принимает адрес из стека и заменяет его содержимое памяти по этому адресу. Слово? является эквивалентом “@”. для тех, кто ленив. Смотрите также слова «+!».

Постоянная в Форте представляет собой фиксированный номер, который присваивается имя, используя слово «КОНСТАНТА».

10 CONSTANT TEN создает постоянный, `TEN”, со значением 10. Теперь каждый раз, когда работа `TEN» найден; 10 будет в стек, так TEN. напечатает: 10 OK “Учтите, что ‘!’ и ‘@’ не нужны с константами.

Среди предустановленных системных переменных есть `БАЗА”. “БАЗА” содержит номер текущей базы, используемый для входа и выхода. `HEX ‘магазины 16 (в десятичной системе) в` БАЗЫ “, установив шестнадцатеричное режим. “DECIMAL» магазины 10 (в десятичной системе) в «базу», установив десятичной режим.

2.2 Типы номеров

ЧЕТВЕРТЫЙ это язык Бестиповое. Там нет разницы между числом и характером, например. Вещи на стеке принимаются словом и интерпретируется как это слово считает нужным. Некоторые из наиболее распространенных толкований, кроме обычных 16-битных чисел со знаком (от -32768 до +32767), которые были использованы, являются:

Без подписи:

Диапазон от 0 до 65535. слова “У.” действует как `’. но это предполагает, что число без знака, а не подписано.

Двойная точность:

Две верхние цифры на стеке интерпретируются как 32-битных числа, либо знаком или без знака. Верхний ряд принимается высоких 16 бит. Второе число принимается за низких 16 бит. Чтобы поставить 32-битный номер в стек введите номер с запятой где-то числа. Системная переменная DPL содержит количество цифр после десятичной точки, в случае важно.

70,000. , DPL @.

напечатает 1 4464 3 OK. 32 битное число 70000 (не 70) ставится в стек в виде двух чисел. Первый “. печатает верхнюю половину в виде целого числа. В нижней половине затем печатается (примечание 70000 = 1 х 2 ^ 16 + 4464). Содержание DPL являются 3, так как есть 3 цифры после запятой.

Слова U * U / MOD M * M / и М / МО являются версии смешанном режиме из * / и / MOD где операнды и результаты различных видов.

Байт:

Иногда только 8 битные числа необходимы, например, для представления символа. Они представлены в стек 16-битных чисел с 8 высших разрядов нулевыми. «С @ ‘и’ C! выбирать и сохранять только один байт за один раз.

Флаги:

Чтобы принимать решения, значения истинные и ложные необходимы. Например 2 3 =. печатает 0 (ложь), тогда как 3 3 =. печатает 1 (истина).

На самом деле любой ненулевой число воспринимается как правда. (Так, “-” могут быть использованы для<>, поскольку х – у = 0 (ложь), только если х = у.) Другие сравнения:

“НЕ” меняет истинную флаг на ложной и наоборот. (На самом деле это эквивалентно 0 =.)

2.3 Режимы вперед

ВПЕРЕД имеет два различных способов работы. Одним из них является режиме интерпретации, а другой является определяющим (или режим компиляции).

В режиме интерпретации, ВПЕРЕД берет все, что вход и пытается выполнить его немедленно. Если вы наберете 4 7 +. (Точка является Форт-слово, для печати) компьютер даст немедленный ответ 11 в порядке

Однако в режим компиляции, ВПЕРЕД берет то, что подается на вход и сохраняет его в своей словаря и использует его позже, в качестве примера, если вы хотите, чтобы ввести сумму выше, но только видеть результат позже (довольно странная вещь, чтобы хотеть сделать ) можно определить новое слово, таким образом,

: Странное 4 7 +. ; (: Это слово используется ОПИСАННОЙ означает приступить к составлению,; это слово для финишной компиляции). Если вы затем введите Странное и “войти”, компьютер будет затем дать вам 11 OK

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

: TOOSTRANGE STRANGE STRANGE; TOOSTRANGE компилирует слово `TOOSTRANGE”, который будет выполнять странно дважды, затем выполняет слово, печати 11 11 ОК

2.4 Управляющие структуры

Структура ВПЕРЕД, ЕСЛИ … ENDIF (или IF … ELSE … ENDIF) позволяет условное выполнение (только) в пределах определения. Эквивалент BASIC-х

Если<2 затем распечатать "слишком большой" "является : ТЕСТ @ 2

‘@ 2<' ставит флаг на стеке, заявляя удаляет ли<2. Если флаг. Если флаг верно (не ноль), то выполняется следующий код. Слово "." "Печатает все, вплоть до следующей двойной кавычки '"'. (Обратите внимание, что там должен быть пробел после ". Для того, чтобы быть распознан правильно). Если флаг является ложным (ноль), то код до ENDIF пропускается. В этом случае IF ... ELSE ... ENDIF , если флаг верно код между IF и ELSE выполняется и код между ELSE и ENDIF пропускается. Если флаг является ложным, только код ELSE ... ENDIF (и что следует ENDIF как обычно) выполняется. Внутри любой IF ... ENDIF пункт можно иметь еще один.

Основные в `для = 1 TO 10: распечатать: СЛЕДУЮЩИЙ»

 является ОПИСАННОЙ-х: ТЕСТ 11 1 DO я. LOOP; При `ТЕСТ» выполняется, “делать” принимает два числа из стека. Верхний ряд (1 здесь) является начальным значением. Второе число (11) есть предел. I копирует индекс петли (A в основной программе) в стек, где она печатается. ”. `LOOP” увеличивает индекс цикла на 1. Если предел достигнут или превышен, выполнение продолжается в нормальном режиме, в противном случае он возвращается назад к “делать”. Поэтому предел будучи 11 для того, чтобы рассчитывать на 10. Заметим, что цикл не будет сделано, по крайней мере один раз независимо от того, что предел есть. ‘П + LOOP’ вместо `LOOP” является ОПИСАННОЙ-х эквивалент “ШАГ N ‘в BASIC. Если петли вложены, ‘J’ возвращает индекс внешнего цикла. “Я” “возвращает предел внутреннего цикла. «ВЫХОД» изменяет предел, так что цикл будет левый, как только `LOOP” достигается.

Другой тип петли не начнут … флаг ДО.

: ТЕСТ BEGIN … A @ 2>, пока; является эквивалентом 10 REM НАЧАТЬ 20 30 ЕСЛИ НЕ (>2) THEN GOTO 10 то есть … не будет выполняться снова и снова до тех пор, A>2.

Смотрите также: BEGIN … и приступить к … флаг ПОКА … ПОВТОР

Один из самых полезных команд в таких языках, как Pascal, в случае заявление. Это позволяет проводить тестирование ряда для различных значений и выполнения различных процедур по каждому значению. Эта функция доступна в стандартной ОПИСАННОЙ только с помощью количества вложенных IF … ЕСЛИ … ЕСЛИ … ENDIF ENDIF ENDIF и может быть очень утомительно. Новая структура в Форте Spectrum естественно назвать структура ДЕЛО. Его применение: – … (инструкции оставляя одно значение в стеке) ДЕЛО 8. “Это 8” CR ENDOF 12 OF “. Это 12” CR ENDOF 99. “Это 99” CR ENDOF ENDCASE

Эта структура обеспечивает гораздо более читаемым и меньше ошибок способ сделать несколько решений. В приведенном выше примере, если 99 осталась в стек “Это 99” будет напечатан. Любое значение, чем 8, 12 или 99 не приведет выход вообще.

2.5 Клавиатура и экран ввода / вывода

Вы встречались слово. “‘, Которая печатает фиксированную сообщение на экран.” EMIT “ожидает код ASCII для символа в стеке. Затем печатает этот символ.

65 EMIT будет печатать букву «А» (код ASCII 65). `TYPE» используется для строк печати. Переменная ‘БТИ “содержит адрес терминала входного буфера, где, что вы печатаете хранится. Чтобы впечатать первые 10 символов в буфере, вам нужно поставить «тип» с начальным адресом, а количество символов для печати: БТИ @ 10 ТИПА напечатает БТИ @ 10 T

“Пространства” принимает ряд, п, из стека и печатает русские пространства.

«КЛЮЧ» ждет нажатия клавиши, то ставит ASCII код этого ключа в стек.

“Expect” требуется адрес и количество, как «тип». Тем не менее, `ОЖИДАТЬ» принимает указанное количество символов с клавиатуры (или всех символов вплоть до “введите”) и гвозди один или два значения NULL (ASCII 0) на конце. Слово «ЗАПРОС» определяется как «БТИ @ 80 ОЖИДАТЬ».

INKEY вернет ASCII код, а ключ не нажата в данный момент. Если не нажата ни одна из кнопок, значение 255 возвращается. Это слово не является стандартным вперед, но включен для пользователей вперед Спектр.

2.6 Словарь

Печатает “Vlist ‘из всех известных слов в текущем лексики. (Лексика является подразделом всей словаре. Нормальная лексика вызвала и выбирается с помощью слова `FORTH”.)

ЗАБУДЬТЕ слово

забуду все слова, определенные из “слова” и далее. Удобная вещь сделать, это составить слово “ТАСК” в качестве первого нового слова: задачи; Тогда, если после компиляции больше слов, вы решили избавиться от них всех, ЗАБУДЬТЕ ТАСК будет делать эту работу.

Системной переменной ‘FENCE “содержит адрес, ниже которого вы не можете забыть слово. Для защиты слова, которые вы только что скомпилированные типа “ЗДЕСЬ забор!”

Для создания нового словаря типа “MyWords” СЛОВАРЬ MyWords немедленного Слово «MyWords” теперь будет вызывать этот новый словарь для поиска при интерпретации слова (системная переменная «контекста» установлено значение MyWords). Новые определения, однако, добавить к старому лексики (системная переменная ‘ТОК’ по-прежнему указывая на Форт). Чтобы выбрать новый словарь в качестве одного добавить новые определения для, типа: MyWords ОПРЕДЕЛЕНИЯ Это устанавливает текущий словарь для контекстного словаря (сделанный MyWords по “MyWords»). Чтобы вернуться к добавляя определения в четвертом лексики, введите сформулировать определения

Некоторые слова, такие как «ВПЕРЕД», являются непосредственным. Это означает, что они будут выполнены, даже в режиме компиляции. Эти слова могут быть выделены в словаре, буквой Р в верхней части определению.

2.7 RAM диск

Одна из проблем, с использованием вперед по системе не-диска является то, что, как только слово было определено исходный источник для определения того теряется. Для большого определению, это явное неудобство, если будет установлено, что он впоследствии не делать то, чего от него. В Spectrum ЧЕТВЕРТОГО это был обошли с помощью верхней магазине как притвориться, небольшой диск из 11 килобайта в общей численности. Это может показаться небольшим количеством, но компактность данной вперед в, на удивление большое приложение может быть написано. В качестве примера, редактор описано ниже, взял только 8 страниц этого диска (страница 1024 байт, расположенных в 16 строк по 64 символов, странным расположением на экране Spectrum, но это то, что требуется по стандарту ЧЕТВЕРТОГО ), и это включало обильное комментарии. Это также означает, что, когда обновление до МИКРО-накопителей доступно, изменения в ваш образ работы должны быть почти незаметны, на кажущуюся значительного увеличения магазине кроме!

Страницы на диске нумеруются от 0 до 10, страница 0 зарезервировано для комментариев, текст, то вход на диск с помощью редактора, описанного после. Для компиляции программы из RAM-диска, использования

N нагрузки (где п число лист первого определения) Если определение или определения, распространяется на более чем одной странице, последнее слово на странице должно быть ->(Произносится рядом экраном)

Чтобы подготовить RAM диск для записи, команду

INIT-DISC должны быть использованы. Это просто очищает область с пробелами. Для просмотра текущих содержимое страниц дисков, используйте н СПИСОК (где п страница должны быть перечислены)

Когда диск был заполнен, он может быть сохранен на ленту с командной SAVET

Она также может быть проверена с помощью впоследствии VERIFY

Если в любой момент во время этих операций, происходит ошибка, отправив Spectrum обратно в BASIC, вы можете вернуться к системе ЧЕТВЕРТОГО где вы его оставили, набрав GOTO 3 (это выполняет Теплый пуск).

Чтобы перезагрузить область диска, созданного ранее использовать LOADT. Но помните, это переписывает все, что уже есть.

2.8 Графика Подпрограммы

Эти процедуры являются основными расширениями стандарта вперед, и позволяют использовать все Hi-Res графических процедур спектра, который со скоростью Spectrum ОПИСАННОЙ позволяют быстро аркада типа игр, которые будут написаны без необходимости прибегать в машинный код ,

n1 n2 ЭКРАН n1 n2 AT n1 n2 ATTR (Где n 1 = номер строки и п2 = колонка) ЭКРАН возвращает ASCII-код символа на месте экрана N1, N2.

AT позиционирует курсор на N1, N2.

ATTR возвращает атрибуты экрана на N1, N2 в формате стандартного спектра.

н INK

н БУМАГИ (Где п равно значение цвета спектра от 0- 9)

н ГРАНИЦЫ

(Где п равно значение цвета спектра от 0- 7)

Эти команды непосредственно в размере трех кузенов Spectrum.

х у УЧАСТОК

х у НИЧЬЯ (Где х и у Spectrum экран координаты х = 0 – 255, у = 0 – 175) В отличие от командной Спектр УЧАСТОК, четвертый УЧАСТОК просто игнорирует значения, которые с экрана и делать использует абсолютные значения. Так основные команды УЧАСТОК (100, 100) НИЧЬЯ (-20, 20) бы в ОПИСАННОЙ быть 100 100 УЧАСТОК 80 120 НИЧЬЯ Если вы рисуете с экрана, был проведен розыгрыш будет опираться на последней видимой участок на экране.

Полезный определение, что вы можете добавить к вашей системе есть тот, который будет рисовать линию от одной позиции к другой. Это может быть определено, если вперед, как: –

: Растягивая слова УЧАСТОК ничья; и имеет определение: – x2 y2 x1 y1 — (т.е. выполнение растягивая слова снимает четыре значения из стека) Обратите внимание, с этим, что в положение предшествует из положения.

Интересное сравнение скорости Форт сравнению с BASIC можно увидеть этого тривиального программы, который заполняет экран, откладывая каждую точку в свою очередь. В ЧЕТВЕРТЫЙ определить новое слово ТЕСТ: –

: ТЕСТ 256 0 DO  176 0 DO J Я УЧАСТОК LOOP LOOP  ; для запуска типа теста. В BASIC, линия: – ДЛЯ J = 0 TO 255: ДЛЯ I = 0 до 175: Земельный участок J, I: Затем я: рядом J Довольно разница!

(Отметим также, что окончательное значение в УКАЗАНО DO оператор не используется.)

Следующая программа использует сюжет и привлечь к нарисовать рисунок на экране: –

: TEST1 251 0 DO 125 0 УЧАСТОК 1 88 НИЧЬЯ 125 175 PLOT 188 НИЧЬЯ 10 + LOOP ;

Это определение также может быть использован, чтобы показать расширяемость ОПИСАННОЙ используя ранее определенные слова. Если будет решено, что то, что хотел это образец должен быть повторен во всех цветах, новое слово может быть определена с помощью TEST1: –

TEST2 7 0 D0 Я INK CLS TEST1 10000 0 DO LOOP КОНТУР ;

х у POINT

как в стандартных процедур Spectrum, эта команда возвращает или истинный или ложный флаг, в зависимости от того, установлен ли точка или нет.

е FLASH

е BRIGHT е Gover е INVERSE Эти команды снова, непосредственно связанные с командами спектра, с ложным (0) стоимости их отключения, и правда (<>0) значение превращение их на. (Причина Говер, а не по для печатью из-за столкновения со стандартом ОПИСАННОЙ назвать OVER, который делает что-то совсем другое.)

2.9 прощупывание

Существует только команда один звук в Форте Spectrum и что работает по-другому из BASIC командной звуковой сигнал, следовательно, новым именем знаем!

Используется в формате: – n1 n2 BLEEP это производит тон продолжительность n1 и тангажа п2. Эти цифры напрямую связаны с циклами машинного кода и, как таковые, как труднее успешно использовать, а также способны производить звуки только не слышали до сих пор в коммерческом программном обеспечении, которая доступна.

2.10 внешним миром

Две команды доступны для общения через стандартные порты ввода / вывода спектра. Эти: –

n1 ИЯФ n1 n2 OUTP INP возвращает значение в стеке от порта n1 и будет полезен при написании программ, которые требуют интерпретацию более чем одного ключа за один раз. OUTP поставить значение N1 выходят на порт п2.

2.11 Разное Дополнения

Окончательные изменения в стандарте являются:

БЕСПЛАТНО возвращает значение в стеке от суммы магазине оставшихся в байтах. Например: –

: BYTES бесплатно. . “Байты остаются” CR; Когда байты набрали сообщение: 18919 байт остальные: или подобное будет напечатан.

Размер возвращает значение в стеке текущего размера словаря.

е LINK

Эта команда (где е является флаг 0 – ложь,<>0 – верно) связывает принтер и экран вместе так, чтобы что-нибудь выход на экран будет также напечатан на ZXPrinter. Это один из случаев, когда с помощью стандартного ключа перерыв может вызвать проблемы! ВСЕГДА используйте Caps Shift, 1 сломать программу.

УДГ возвращает позицию в магазине из пользовательских графики. Графика-это в UDG + O, чтобы UDG + 7, Графика-B находится в UDG + 8 УДГ + 15 и т.д. полезная команда для определения графика может быть составлен следующим образом:

: DEFINE (взять 8 чисел следует символ числа 0 – 21 и использовать переопределить символ *) 8 * УДГ + DUP 8 + SWAP (взять верхнее значение в стеке, как индекс для DO LOOP) Должен ли я C! LOOP (магазин Следующие 8 числа из стека в переменную пользователя) ; (Определение отделка)

Эта команда может быть использована следующим образом: –

Чтобы определить Graphic-C в виде полого площади: – HEX FF 81 81 81 81 81 81 FF 2 DEFINE

ГЛАВА 3. Расширенные возможности Форт

3.0 Сохранение расширенный словарь

Как можно видеть из любого работе вперед, завершена ОПИСАННОЙ приложение является просто расширение словаря. В Форте Spectrum, если у вас есть законченные программы и не хотите, чтобы составить из RAM-диска каждый раз, когда вы хотите использовать его, или у вас есть набор стандартных процедур, которые вы хотите использовать каждый раз, когда вы вводите вперед, эти могут быть сохранены с помощью следующего способа: –

1) Выясните, новый общую длину вашей программе, набрав РАЗМЕР.

2) Измените параметры холодного запуска, введя следующие строки: –

ВПЕРЕД ОПРЕДЕЛЕНИЯ ДЕСЯТИЧНАЯ ПОСЛЕДНИЕ 12 + ПРОИСХОЖДЕНИЕ!

ЗДЕСЬ 28 + ПРОИСХОЖДЕНИЕ!

ЗДЕСЬ 30 + ПРОИСХОЖДЕНИЕ!

ЗДЕСЬ забор!

“ВПЕРЕД 8 + 32 + ПРОИСХОЖДЕНИЕ!

(При использовании другого словаря, чем ОПИСАННОЙ использовать “Словарь 6 + …)

3) Введите Пн вернуться к BASIC.

4) Изменить линия 9 Основного программы загрузчика иметь окончательное значение длины кода номеру, указанному в 1) + 10.

5) RUN 9, чтобы сохранить новый расширенную версию вперед, чтобы ленты. (Используйте свой собственный ленту сделать это на, не хозяин FORTH ленту.) Это новая лента, конечно, для собственного использования, а не для проката перепродажи или целей кредитования.

3.1 Регистрация Использование.

Программист, который хочет использовать подпрограммы машинного кода (с помощью CREATE или; CODE) потребует использования регистра из SPECRUM далее. К ним относятся следующие:

Регистры

ВПЕРЕД Z80 IP н.э. Должен быть сохранена по словам.

W DE вход только когда PUSH DE используется.

SP SP данных Stack.

UP IX площадь Пользователь pointer.Must быть сохранены по вперед словами.

HL вход только когда PUSHHL используется.

Чтобы понять эту область полностью потребует книгу Ting как упоминалось ранее.

ГЛАВА 4. DISC РЕДАКТОР

4.0 Обустройство RAM-диска.

ВПЕРЕД организует всю массовой памяти (либо RAM-диска или Микро-диск) в качестве экранов 1024 символов. RAM-диск имеет 11 K и его экраны пронумерованы от 0 до 11.

Каждый экран организован системы в 16 строк по 64 символов в строке. Экраны вперед являются организация виртуальной памяти и не совпадать с форматом экрана Spectrum.

4.1 Ввод на экран.

Чтобы начать сеанс редактирования, типа редактора. Это вызывает редактор словаря и позволяет текст должен быть введен.

Экран для редактирования выбран, используя либо: – н LIST (список экран н и выберите для редактирования) ИЛИ н CLEAR (очистить экран н и выберите для редактирования) Для ввода текста после СПИСОК или снимите, команда P (поставить) используется.

Пример: 0 P Это, как 1 С для ввода текста 2 Р на линиях 0, 1, 2 и выбранного экрана.

4.2 Линия Редактирование

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

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

Линейные Команды редактора

н Н Удержание линии н в PAD (используется системой чаще, чем пользователем)

н D Удалить линию н а держать его в ОП. Строка 15 становится пустым, как линии п + 1 к 15 шаг до 1 линии.

п Type T строки N и сохранить его в ОП.

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

н Е Стереть линии н пробелами.

н S Спрэд по линии п. н и последующие строки съезжать 1 линии. Линия н становится пустым. Строка 15 теряется.

4.3 Строка редактирования.

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

Команды для позиционирования курсора

Топ Наведите курсор на старте экране.

н М Перемещение курсора подписанным сумма п и распечатать курсора подчеркивания н список список экраном п и выберите его для редактирования.

н Переменная облачность экран н пробелами и выберите его для редактирования.

N1 N2 на копирование экрана n1 на экран п2.

L Список текущий экран. Курсор линия relisted после листинга экрана, чтобы показать позицию курсора.

F текст Поиск вперед от текущей позиции курсора до строки “текст” будет найдено. Курсор остается в конце текстовой строки, и курсор строка печатается. Если строка не найдена сообщение об ошибке дается и курсор перемещены в верхней части экрана.

B Используется после F для резервного копирования курсор на длину последнего текста N Найти следующее вхождение строки, найденной с помощью команды F.

X текст Найти и удалить строку “текста”.

С Копировать текст в тексте на линии курсора в позицию курсора.

ДО тексте Удалить на линии курсора от курсора до конца строки текста “текста”.

ПРИМЕЧАНИЕ: При вводе C без текста будет копировать нуль в текст в позицию курсора. Это резко прекращать позже компиляции! Чтобы удалить этот тип ошибки TOP X войти.

ГЛАВА 5. Сообщения об ошибках

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

MSG # Значение

  • 0 Слово не найдено.
  • 1 Стек пуст.
  • 2 Словарь полном объеме.
  • 3 Имеет неправильный режим адресации.
  • 4 не является уникальным.
  • 6 RAM диск Диапазон? (не страницы от 0 до 10) 7 Полный стек.
  • 9 Попытка загрузить со страницы 0.

Только 17 Компиляция, использовать в определении.

  • 18 Выполнение только.
  • 19 Условные не в паре.
  • 20 Определение не закончил. , 21 В защищенном словаре.
  • 22 Используйте только при загрузке.
  • 23 Off ток экран редактирования.
  • 24 Объявите лексику.

ГЛАВА 6. вперед и РЕДАКТОР глоссарии

Глоссарий содержит определения всех слов в этом выпуске рис-Forth (с расширениями для Spectrum). Определения представлены в порядке их ASCII-то.

Первая строка каждой записи показывает символическое описание действия процедуры в стеке параметров. Символы указывают порядок, в котором входные параметры были помещены в стек. Три черточки “—” указать точку выполнения; любые параметры, оставленные в стеке перечислены. В этих обозначениях, вершина стека находится справа.

Символы включают в себя:

адреса адрес памяти

б 8 бит байт (то есть высокие 8 бит нулю) с 7 бит ASCII символов d 32 битное двойное число.

е двоичный флаг. 0 = ложь, ненулевой = верно.

и далее логическое ложным флагом = 0 н 16-битное целое число.

у 16 бит без знака целое число тс логическое верно флаг = ненулевой

Заглавные буквы в правых символов четкости шоу:

С Может использоваться только внутри определения толстой кишки. Цифра указывает количество адресов памяти, используемых.

E предназначен только для исполнения.

P имеет приоритет бит. Будет выполнять даже при компиляции.

U Переменная пользователя.

Если не указано иное, все ссылки на номера предназначены для 16 битных целых чисел. Старший байт находится на вершине стека, со знаком в левый бит. Для 32-разрядных чисел наиболее значительная часть находится на вершине.

Все арифметические неявно 16 разрядное целое число математика, с ошибкой и указание, под-поток определен.

Благодарности должным образом внесены в ОПИСАННОЙ группа по интересам. PO Box 1105, Сан-Карлос, Калифорния 94070 для частей этого компилятора и руководства.

ABERSOST ОПИСАННОЙ СЛОВАРЬ

! н адр — L0

Хранить 16 бит п по адресу. Произносится “магазин”

! CSP

Сохранить позицию стека в СКП. Используется в качестве части безопасности компилятора.

# D1 — d2 L0 Генерация с номером d1 двойной, следующего ASCII символа, который находится в строке вывода. Результат d2 является фактор после деления на базе, и поддерживается для дальнейшей обработки. Используется между<# и #>. См #S.

#>D — количество адр L0

Завершает числовые выходные преобразования путем сбрасывания д, оставив адрес текста и подсчет символов подходит для TYPE.

#BUF — Н

Постоянная возвращения количество буферов дисков выделяется.

#S D1 — d2 L0 не генерирует текст ASCII в текст выходного буфера, путем использования #, пока ноль двойных результатов число. Используется между<# и #>.

‘— Адр P, L0

Используется в виде: “NNNN Листья поле параметра адрес словаре слово NNNN. В директиве компилятора, выполняет толстой кишки четкости для компиляции адрес как буквальное. Если слово не найдено в результатах поиска из контекста и ток, соответствующее сообщение об ошибке дается. Произносится “тик”.

(Р, L0

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

(. “) C +

Порядок во время выполнения, составленный. “, Который передает следующую в онлайн текст выбранного устройства вывода. См.”

(; CODE) C

Порядок во время выполнения, составленный; CODE, что переписывает поле код из наиболее недавно определила слова, чтобы указать на следующей последовательности машинного кода. См; КОД.

(+ LOOP) п — C2

Порядок во время выполнения составленный + LOOP, которая увеличивает индекс цикла по п и испытаний для завершения цикла. См + LOOP.

(ABORT)

Выполняет после ошибки при ПРЕДУПРЕЖДЕНИЕ -1. Слово обычно выполняет ABORT, но могут быть изменены (с осторожностью), чтобы альтернативной процедуре пользователя.

(DO) C

Порядок во время выполнения составленный DO, которая движется параметры контура управления в стек возвратов. Больше DO

(FIND) адр л addr2 — PFA б тс (в порядке) addrl addr2 — и далее (плохо) Ищет словарь, начиная с адреса Addr2 имя поля, соответствующий тексту на addrl. Возвращает параметр поля адреса, длина байт поля имени и верно для хорошего матча. Если совпадение не найдено, только логическое ложным осталось.

(LINE) n1 n2 — адр счетчик Преобразование строки номер N1 и экрана п2 на адрес буфера диска, содержащего данные. Кол-во 64 указывает на полную длину текстовой строки.

(LOOP) C2

Порядок во время выполнения составленный цикл, который увеличивает индекс цикла и тесты для завершения цикла. См LOOP

(НОМЕР) d1 addrl — d2 addr2 Преобразование ASCII текст, начинающийся в addr1 + 1 в отношении базы. Новое значение накапливается в двойной номер d1, оставшись как d2. Addr2 является адрес первого неконвертируемых цифры. Используется НОМЕР.

(ЛЕНТА) п —

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

  • N1 n2 — прод L0 Листья подписанный произведение двух чисел со знаком.
  • / N1 n2 n3 — n4 L0 Листья отношение 4 = n1 * n2 / n3, где все подписанные номера. Сохранение промежуточного 31 битной продукта позволяет большую точность, чем будет доступна с последовательностью: n1 n2 * n3 /
  • / MOD n1 n2 n3 — n4 n5 L0 Листья фактор n5 и остаток n4 их эксплуатации n1 * n2 / n3. 31 бит промежуточный продукт используют как для * /

+ N1 n2 — сумма L0 Оставьте сумму N1 + N2.

+! н адр — L0

Добавить п значению по адресу. Произносится “плюс-магазин”.

+ – N1 n2 — n3 Применить знак п2 для N1, которая остается как n3.

+ БУФ addr1 — addr2 е Предварительный буферную диск адрес ADDR1 по адресу следующего буфера addr2. Логическое е ложно, когда addr2 это буфер в настоящее указывает переменной ПРЕД.

+ LOOP n1 — (пробег) адр п2 — (компиляции) P, С2, L0

,

2!

;

?

  

     

С!

  ДЕЛО

     

ХОЛОД

СОЗДАТЬ

  

  

РЕДАКТОР

  ДЕЛО

     

  

  

EXIT

FLUSH

ID.

  

  

СРОЧНАЯ

будет; уделять.

Пн

СЛЕДУЮЩИЙ

NOOP

Пользователь

ВЫЙТИ

ЗАПРОС

`

ЗАДАЧА

УДГ

X

Распространение.

N

F

Играйте в FORTH онлайн. Это приложение для программирования, которое создал John Jones-Steele, было издано компанией Abersoft в 1983 году в Великобритании.

Не запускается или глючит игра, или не можете пройти? Спросите в комментариях.

Subscribe
Уведомлять об
guest
0 Comments
Inline Feedbacks
View all comments
 

Сохранённые игры[X]

  

Справка[X]

Помощь уже в пути!

Не забывайте периодически сохранять игровой прогресс на сервере (клавишей F8), чтобы уверенно продвигаться вперёд!

Если вы гость на сайте, то прогресс будет сохранён только в памяти браузера и потеряется при закрытии. Чтобы этого не произошло - просто войдите в свой профиль.

Для загрузки сохранённой игры жмите F3 или откройте меню "Диск" кнопкой на правой панели.

Если игра не запускается, или у вас есть вопросы по игре - задайте их ниже.

Помощь

Размер

  • x1 [256x192]
  • x2 [512x384]
  • x3 [768x576]
  • Полный

Диск

Кликни в окно эмулятора, чтобы управлять!
<<<<
Close
0
Would love your thoughts, please comment.x
()
x