ZX Spectrum
Game

FORTH Stack Simulator

Bernard Babani Publishing Ltd (Великобритания),

Автор:

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


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

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

Язык

  • Русский
  • English

Управление

  • Клавиатура(?)

Игроков

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

BASIC & изложенных в параллельный (1984)

по. S.J.Wainwright

О:

Появится “ВПЕРЕД-Stack Simulator” список на страницах от 90 до 95 книги. Приложение на использовании ОПИСАННОЙ-Stack Simulator начинается страница 86 и заканчивается на странице 89. (Приложение появляется в конце этого документа)

ВНИМАНИЕ:

Это вовсе не так погрешность в ловушке. Ошибка будет

создать сообщение об ошибке. не Ввод ничего Линейный вход вызовет ошибку. Использование /, мод, / Мод, * / и * / мод на пустом стеке будет создать сообщение об ошибке. Также “подобрать” и “ролл” обязательным предшествовать целое число или ошибки в линии Появится 2080 сообщение. Если второе число на стек больше 0 и верхний ряд 0 и / вводится вы получите сообщение об ошибке.

Поменяйте местами два, прежде чем использовать /. Если ввести десятичной число (то есть. 3.5) вы получите только целое число в стек (3), а не то, что после запятой Точка (0,5).

Команды будут объяснены позже.

Запуск программы &

ПРОДОЛЖЕНИЕ КОГДА есть ошибка:

Вы можете начать все заново, разбив в

Программа (или удаление котировки на входе линии и с помощью команды STOP) и работает Программа снова с самого начала. Примечание: это будет удалять переменные, и вы должны это сделать, только если вы хотите, чтобы начать снова.

Приложение говорит сделать теплый старт с

ПЕРЕЙТИ НА 1000, но это не всегда работает. Ты можешь использовать пойти в 1500, если вы когда-нибудь пробиться в Программа, если есть ошибка, что не позволит вам продолжать использовать пойти в 1000, или вы используете СТОП на входе линии (“L”). ВОЗВРАТ иногда работает и GO TO 200 также будет работать, когда есть Сообщение об ошибке.

Я бы рекомендовал пойти в 200 в большинстве случаев, как это

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

СТЕК ОПЕРАЦИИ:

Если операций, которые могут выполняться

с симулятором, похоже, ограничивается это потому, что он предназначен для использования в сочетании с Книга и примеры в ней. Тренажер не использовать все команды в книге и только используется для иллюстрации операции стека. Тем не менее, несмотря на отсутствие ошибок захвата, он работает правильно следуя надлежащие процедуры и использовать правильно. Я считаю, что это полезно и образовательная Программа, достойно на благо графический представление стека и что происходит в Стек, что вы не можете видеть при программировании в редакторе в режиме реального ЧЕТВЕРТОГО (что я знаю).

Целью книги является мягко получить читателя

ноги мокрые от обучения первые шаги вперед и это предполагает, что читатель имеет некоторые знания в BASIC, используя которые, чтобы научить ОПИСАННОЙ в сравнении.

Без книги может показаться мало один

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

Все следуют (четвертый-79) просто означает,

что ОПИСАННОЙ-79 слово. Остальные рис далее.

Существует не так много различий между ними. Новые слова может быть определена для выполнения функций, не доступных в частности аромата-оф-Форт. Это действительно не означает, много для Simulator и я думал, что привести его просто поделиться, где слова пришли.

ZX ZX ZX ZX ZX ZX ZX ZX ZX ZX

ОБУЧЕНИЕ тренажере

В примерах – РАЗЪЯСНЕНИЯ Операций, доступных:

(Убедитесь, что CAPS LOCK выключен)

Сначала введите следующие цифры:

5 (ENTER)

7 (ENTER) 12 (ENTER)

Примечание: “последним пришел, первым из« … так

мы получим следующее:

12 7 5

ПРЕДЛОЖЕНИЕ: После того, как вы прочитали то, что каждый

Оператор слово делает, можете ли вы себе представить, что результат будет до прокрутки вниз к ответу в каждой части!

||

Арифметические операции:

,

(Фактическая ‘период’) Как PRINT, и она СОЗ

верхнее число на стек и выводит его на экран.

Стек:

12 7 5

Typing:

,

Приведет к Stack сдвига вверх и Число 12 получать выталкивается и печатается.

7 5 0

12 (печатная)

||

+

Это будет добавить обе цифры на вершине

Стек и стать топ число в стек:

7 5 0

Typing:

+

Результаты в:

12 0 0

||

Это будет вычитать оба номера на верхней

Стек и стать топ число в стек:

12 0 0

Теперь введите:

14

Вы должны иметь

14 12 0

Так, набрав:

Результаты в:

-2 0 0

Почему -2? Потому что мы вычитая 14 из 12 и не

12 из 14. Если мы хотим получить положительный ответ, мы должны обменять первый два числа.

(Примечание: я обнаружил делать – снова

и ENTER также приводит к + 2 в симулятор. Я думаю, что это причуда симулятор. )

Мы доберемся до поменять позже, но если бы вы ввели:

своп

Положение 12 и 14 будет “своп”:

12 14 0

а затем, набрав:

привело бы к 2

||

*

Это будет умножить обе цифры на вершине

Стек и стать топ число в стек:

-2 0 0

Так, набрав:

*

Будет, естественно, приведет к:

0 0 0

||

Время, чтобы получить больше числа в стеке.

Давайте попробуем 21, 34 и 3.

Вы должны увидеть:

3 34 21

||

/

Это будет разделить оба числа на вершине

Стек и стать топ число в стек:

3 34 21

Так введите:

/

… И мы должны иметь:

11 21 0

(Далее 1 теряется. Есть и другие команды

чтобы сохранить их, что мы вернемся к более поздней)

||

Тип:

17, а затем 5

Вы должны иметь:

5 17 11 21

||

модификация

Это забирает два номера из стека. Он делит

второй в стек по верхней из стека, затем толкает оставшуюся на вершине стека.

5 17 11 21

Тип:

модификация

Вы должны иметь:

2 (17/5 = 3 и остаток представляет собой 2. Легко!)

11 21

||

/ Мод

Это забирает два номера из стека. Он делит

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

2 11 21

Тип:

/ Мод

Вы должны увидеть:

5 1 21

||

* /

Это всплывает в тройку чисел из стека. это

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

5 1 21

Typing:

* /

Если привести в:

4 (21 * 1 = 21 … 21/5 = 4 остаток 1)

0 0

||

* / Мод

Делает то же, * /, но затем остаток

в стек, а затем частное толкнул также. Так остаток будет второй а фактор в первую очередь на стеке.

Давайте эти цифры назад.

Для ‘капли’ 4 просто сделать:

падение (будет поставляться позже)

Стек должен быть все нули:

0 0 0

Теперь наберите 21, 1 и 5, так снова у нас есть:

5 1 21

Теперь сделать:

* / Мод

Вы должны иметь:

4 (21 * 1 = 21 … 21/5 = 4 … остальная 1is второй по Stack) 1 0

||

СТЕК ОПЕРАЦИИ:

своп

Обменивает два числа на вершине стека.

4 1 0

Typing:

своп

Результаты в:

1 4 0

||

падение

Капли верхнее число из стека и

Остальные чисел смещаться в сторону вершине стека:

1 4 0

Typing:

падение

Даст:

4 0 0

||

DUP (ВПЕРЕД-79)

Дублирует верхнее число в стек и

толкает его на вершину стека (но не 0s):

4 0 0

Тип:

DUP

… И у вас будет:

4 4 0

||

2dup

(Прежде всего, давайте просто наберите 1 введите следуют

на + и ENTER, чтобы получить более полное представление, а не так много четверок !!! 🙂

5 4 0

2dup как DUP за исключением того, дублирует «двойной точность “номер на вершине стека. Поскольку Числа двойной точности занимают две позиции на стеке будет дублировать оба номера. Если один точность числа занимают стека он будет также дублировать те.

Тип:

2dup

… И мы должны иметь:

5 4 5 4

||

по

Это вызовет вторая запись Стек быть продублированы

на вершине стека.

5 4 5 4

Тип:

по

Результат:

4 5 4 5 4

||

гниль

Вращает третью позицию стека на вершину

из стека:

4 5 4 5 4

Тип:

гниль

Мы должны иметь:

4 4 4 5 4

(Если вы думали, что у нас будет:

4 4 5 5 4

у нас нет, так как 4 был третий вход на

Стек остается тот путь, используя ‘гниль’ хотя размещении число 4 в верхней части.

5 отбрасывается, потому что это было бы принимает эту третью позицию в стеке где «гниль» первоначально нашли 4 и так Третья запись, 4, остается на третьей позиции Таким образом, опуская 5, который бы сдвинут на третьем постионе, потому что он падает все бы третье число, даже после поворота Оригинальный третий стек число. Это на мере, как я понимаю, “гниль”, насколько “это Тренажер “обеспокоен.)

||

подобрать (ВПЕРЕД-79)

ЛУЧШАЯ предшествует целое. Пример:

п подобрать

Это приводит к тому, п-ю запись Stack быть дублирован на верхняя часть стека. Обычно, если используется выбор без Положение стека число предшествующих ему, он появится на вершину число из стека и использовать его как ‘го’ целое.

(Примечание: я говорю “обычно”, потому что, если выбор не имеет запись номер Стек перед ним “в симуляторе” вы будет выдано сообщение об ошибке. )

4 4 4 5 4

Тип:

4 выбор

У нас есть:

5 4 4 4 5 4

||

ролл (ВПЕРЕД-79)

ROLL предшествует целое число, представляющее

Положение в Stack, так же, как выбрать.

н-ролл

П-запись Стек будет поворачиваться к началу

Стек. Если номер не предшествует ROLL то вершины стека Запись будет выталкивается и используется в качестве целого числа и затем работать на оставшихся Stack, так же подобрать.

(Как с PICK, ROLL приведет к ошибке “в этом Тренажер “если не предшествует целого стека положении)

5 4 4 4 5 4

Тип:

6-ролл

Мы должны иметь:

4 5 4 4 4 5

||

остановить

Останавливает симулятор

(Если вы сделаете это, чтобы продолжить просто сделать:

ПЕРЕЙТИ НА 200)

||

Определение собственных команд:

:

Используйте двоеточие, желая определить

новое слово выполнить свой собственный Операция. Затем он переходит в четвертый словарь.

||

;

Точка с запятой обозначает конец

Определение толстой кишки.

||

defno

Даст вам список всех пользовательских определены

слова и их имена.

||

NOOP

NOOPeration. Никаких изменений не производится в Stack И удобно, чтобы выйти из определенных частей программы и вернуться на главную экране Stack. (Для пример, удобно с этого тренажера, если вы находитесь в Определено экран слова и хотите выйти без использования какой-либо и хотите экран Stack для вновь)

||

Мы собираемся, чтобы попасть в определении собственных слов в д.

Вы имеете право сделать это в симуляторе (даже если ограничиваться) так давайте посмотрим на примере. Я сделаю один сейчас:

ОПРЕДЕЛЕНИЕ СВОИМИ СЛОВАМИ

(Вы не можете использовать кирку, рулон, цифры или другие новые

определенные слова самостоятельно, в вновь определенных слов. Кроме того, только шесть символов MAX разрешено в определениях. )

Скажем, мы хотим второе число в стек до его

3-я мощность (х ^ 3), а затем из стека должны быть напечатаны на экране.

Стек:

4 5 4 4 4 5

Во-первых, мы должны ввести:

:

Чтобы перейти в режим Definition.

Далее мы введите имя нашего нового слова.

То, что мы должны назвать это? Давайте попробуем …

2-я ^ 3p

Таким образом, мы должны ввести:

2-я ^ 3p

… Для – “второй” номер на стек – в «третий власти” – “Печать”.

– О спектре вы получаете ^ держа SHIFT, нажимая H – Сделайте лучшее название, если вам нравится. Я просто делаю это, поскольку я печатаю.

Теперь для процедуры:

Мы хотим, чтобы второй ряд в стек до

3-я власть. Как нам удастся это сделать?

Можем ли мы отказаться от верхнего ряда прочь? Да, но то, что если нам нужно это число позже? Давайте предположим, что мы сделать, и мы работаем так, мы продолжаем верхний ряд Stack и вместо того, DROP мы делаем SWAP.

Так введите:

своп

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

5 4 4 4 4 5

Хорошо. Но мы должны умножить эту присоски три раза.

Мы можем использовать DUP дважды или 2dup. DUP в два раза два шаги, но 2DUP создаст 5 4 5 4 и т.д … и мы хотим три последовательных пятерок. Это будет включать подкачку Первые две цифры Stack затем опуская сначала тогда Дублирование первый раз. (Мы не можем использовать цифры в наших определениях – посмотрите на это с другой стороны. Когда вы используете ВПЕРЕД будет казаться, как кусок пирога без раздражающие ограничения на тренажере! 🙂

Так что мы лучше просто дублируя дважды.

Тип:

DUP

Введите еще раз:

DUP

Теперь Стек будет выглядеть следующим образом:

5 5 5 4 4 4 4 5

Для 3-го власти. Нам нужно только умножить

Первые три цифры. От немедленного режиме мы бы просто сделать:

*

… а затем, в результате которых раз за последние 5:

*

Не так ли?

Так что же здесь:

Тип:

*

… И снова:

*

Теперь все, что нужно сделать, это распечатать его, как я уже говорил.

Мы должны период.

Тип:

,

Там. Мы почти закончили

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

Тип:

;

… И мы вернули в непосредственный

Режим но мы не видим стека.

У:

NOOP

Экран в том числе до и после

Стек должен быть виден сейчас.

Прежде, чем мы попробуем наше прохладное новое слово давайте

увидеть, если это в словаре, набрав:

defno

Вы должны увидеть его. 🙂

2-я ^ 3p

Затем введите:

NOOP

… Чтобы выйти туда.

Попробуйте наш новый слово:

2-я ^ 3p

Является Стек:

4 4 4 4 5

???

… И мы можем получить сообщение о том,:

2-я ^ 3p ОК 125 распечатал

???

Мы сделали ???

Да!

Так что вы получите эту идею ???

Молодец !!!

У вторых ^ 3p снова !!!

… Хорошо. Вот еще один простой.

Допустим, вы хотите, чтобы очистить весь стек. В тренажере

Есть 10 позиций. У нас есть слово:

падение

… Падать верхний ряд из стека.

Таким образом, чтобы сделать этот новый тип слов:

:

… Для перехода в режим определения.

Давайте сделаем имя. Я предлагаю имя, которое

легко запомнить. Так что я буду называть его:

dropal

… Для Отбросьте все номера из стека.

Как я уже сказал, что симулятор показывает 10 позиций. Так DROP

это единственное слово, мы имеем в ней, что появится цифры от (Кроме , который СОЗ и печатает верхний ряд из стека. Ты можете попробовать это также, если вам нравится. Вы можете распечатать все цифры на стеке, но давайте с DROP для теперь)

Таким образом, для каждой позиции в стеке (10) мы должны ввести:

падение

10 раз, каждый раз с последующей Enter.

падение

падение

падение

падение

падение

падение

падение

падение

падение

падение

Затем введите:

;

закончить слово дефиниция.

Теперь, если вы пополнить свой стек и выполнить:

dropal

Вы должны увидеть все числа падения

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

Сделайте свои собственные операции / слова!

Удачи …

😀

ZX ZX ZX ZX ZX ZX ZX ZX ZX ZX

… И что охватывает каждое слово можно использовать в симуляторе.

Мой мини-учебник, возможно, казалось долго, и это действительно не так. Кроме того, я надеюсь, что вы видели, как это довольно легко. Симулятор только предложения с (параметр) Stack так что вы будете иметь дело с арифметикой. Там еще один стек, что имеет дело с петель, и т.д., хотя это не тот, который мы практикуем здесь. Вы не можете печатать текст или даже выполнять прямой обратной польской нотации (т.е. 4 5 * 1 + 7/3 -.) и т.д.

Также операторы, которые можно использовать в ОПИСАННОЙ гораздо больше, чем

доступны в симуляторе. Дело в том, чтобы увидеть, как Стек работает, что очень важно, является ли вы программируете В Форте или другом языке. Даже если ОПИСАННОЙ не ваша вещь Вы могли бы найти, если вы новичок на другом языке, что этот симулятор может быть полезным для вас.

Если бы это было полезно для вас, образовательных, или просто весело тогда

Я рад, что вы хорошо провели время. Это было интересно для меня, чтобы сделать и я также узнал кое на этом пути. То, что следует является Приложение для использования тренажера, я набрал прямо из книга.

Наслаждайтесь !!!

PS-Я новичок в д. Просто потому, что я написал это не

означает, что я какой-то гуру. Если Вы знаете о каких-либо великих ОПИСАННОЙ учебники для рис вперед, ЧЕТВЕРТОГО-79 и других старых Фортов в том числе ZX Spectrum вперед и вперед в течение других микроскопии пожалуйста, в контакте. Даже если это какая-то большая “ток” реализация ВПЕРЕД вы хотите, дайте мне знать о, хотя мне нравится делать материал на микроскопии более я не возражаю делать ОПИСАННОЙ вещи в ОС Windows (Ох и AMIGA! ДА, AMIGA!) (У меня есть большая книга Льва Броди “Начиная Forth, но я хочу больше. Я хочу также манипулировать звук, графика, а также делать все другие вещи)

Так как это, вероятно, будет на соответствующие сайты только и не рассеивается

по всему интернету, вот мой адрес электронной почты для такого рода вещи:

the.sentinel@charter.net

Спасибо !!!

Воскресенье, 30 мая 2004 6:04 утра

– The.sentinel

http://webpages.charter.net/the.sentinel/ http://mondodizzy.members.easyspace.com/ http://dizzypetition.members.easyspace.com/

ZX ZX ZX ZX ZX ZX ZX ZX ZX ZX

(Из книги)

Приложение

ВПЕРЕД-Stack Simulator

Программа симулятор ОПИСАННОЙ-Stack, представленные здесь, написано в Sinclair BASIC и будет работать либо на 16К или 48K Синклер Спектр. С незначительными изменениями имитированного водчик должен работать в большинстве реализаций BASIC. Здесь Рекомендуется, чтобы программа симулятор ОПИСАННОЙ-стек набрали и спас до выхода книги используется таким образом, что Читатель может использовать симулятор для исследования свойств Стек пока он / она читает об этом. Если тренажер Сохраняется с LINE 1, то это будет автозапуска при загрузке.      Два типа звуковой обратной связью приведены для пользователя. Первый Команда POKE на линии 1 вызывает короткий бип быть про- наведенной каждый раз при нажатии клавиши компьютера. Во-вторых, ЗВУК команда на линии 795 вызывает немного длиннее бип к быть произведены после ОПИСАННОЙ слово было выполнено, и указывает, что машина готова к приему другого слова.

Тренажер в действии

Тренажер ОПИСАННОЙ-Stack показывает содержимое пара- метр Стек до и после Форт-слово выполняется, как показано, например, на фиг. 1 и 2. После каждого Форт-слово вводится, Стек обновляется.

     Моделируется стек 10 позиций глубоко. Пустые позиции

в Stack ниже значений данных приведены в виде нулей по симулятор, так что моделирование стека не в том, станет пусто, а наполняется нулями. Хотя это Важное различие между моделируемой Stack и правда ВПЕРЕД Стек это не влияет на способность тренажере для выполнять наиболее важные операции со стеком. Пример из-за разницы в поведении между четвертый-Stack симулятор и правда ОПИСАННОЙ-Stack будет в случае, когда ничего еще не было в стек и Слово. (Что означает, поп значение от вершины стека

86

(Эта страница показывает 1 и 2)

87

и распечатать его) набирается в. В-четвертых, в стеке сообщение

ПУСТО будет предоставлена. Тренажер ОПИСАННОЙ-Stack от С другой стороны будет отображаться:

0 распечатал

      Тренажер будет принимать числа, но только держать

Целая часть числа. Таким образом, если 2,5 набирается, 2 будет помещается в верхней части стека.

      Тренажер ОПИСАННОЙ-Stack будет выполнять следующие арифметические операции:

+, -, *, /, Мод, / мод, * /, и * / мод.

Он также будет выполнять следующие операции стека:

DUP, 2dup,., падение, своп, над, выбор, гниль, и рулон.

Colon Определения на тренажере

Можно составить до десяти определений толстой кишки на

симулятор. Каждое определение может содержать до девятнадцати слова.       Когда симулятор предлагает пользователю ввести Stack Команда или число; если двоеточие вводится, симулятор переходит в режим компиляции и предлагает пользователю ввести Определение толстой кишки. Определение вводится одно слово в строке, начиная с именем этого слова определяется, и Тер Выйдите точкой с запятой. Когда запятой вводится, Тренажер переключается в режим интерпретации и побуждает пользователю вводить команду Stack или номер. Название определяется слово является частью четвертого-Stack словаре, и будет выполнять всякий раз, когда она вошла. Кроме того, как новое слово выполняет, стек последствий каждой из его компонент слова отображаются в свою очередь.

Ограничения на Colon ОПРЕДЕЛЕНИЯХ на Simulator

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

88

    2. Пользовательские слова, которые были определены в толстой кишке

определения не могут быть включены в состав прочих определений толстой кишки.     3. Числа не могут быть включены в определениях толстой кишки.

Другими словами Доступные

на четвертый Stack Simulator

     остановить это приносит симулятор к остановке.

     : Двоеточие позволяет определение новых слов.

     ; Точка с запятой обозначает конец определения толстой кишки.      defno Отображает количество новых слов, которые имеют были определены и дает свои имена.

     NOOP не производит никаких изменений в стеке. Это полезно для повторного отображения стека после новое слово было определено или после defno была выполнена.

    Если что-то будет введен, которое не является числом, арифме-

арифметической оператор, оператор Стек, или один из вышеуказанных слов, программа будет завершена с сообщением основной погрешности.

Создание Теплый старт в Simulator

Теплый старт можно сделать в симуляторе, введя

GOTO 1000

89

Для игры в FORTH Stack Simulator не нужны эмуляторы. Это приложение для программирования, которое создал S.J. Wainwright, было издано командой Bernard Babani Publishing Ltd в 1984 году в Великобритании.

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

avatar
  Subscribe  
Уведомлять об
 

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

  

Справка[X]

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

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

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

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

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

Помощь

Размер

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

Диск

Кликни в окно эмулятора, чтобы управлять!
<<<<
Close