Зачем нужен аккаунт на Viva-Games?
Пользователи, у которых есть аккаунт, могут сохранять игровой процесс на сервер в любой игре и создавать списки игр (как на Youtube, например).
Создание аккаунта абсолютно бесплатно и займёт всего минуту Вашего времени.
Для создания аккаунта просто кликните в блоке "Войти на сайт" иконку социальной сети, в которой у вас уже есть активный профиль и следуйте подсказкам.
48/80 FORTH
https://viva-games.ru/game/48-80-forthEast London Robotics Ltd (Великобритания), 1983
Автор: Phil Holliday
Жанр: Программы и утилиты
Язык
- Русский
- English
Управление
- Клавиатура(?)
Игроков
- Один
Рассказать друзьям
Доступные версии
Доступные версии
- Описание (авт.пер.)
- Информация
[Это руководство было OCR’ed из набора отсканированных файлов JPEG, доступных в Мир Spectrum. К сожалению, что набор не полон – четыре страницы отсутствуют, которая, судя по их позиции были на один лист. Они, конечно, были упомянуты в их правильное разместить ниже.
Текст, который был типа написано, была воспроизведена с его Оригинальный расстояние. Тут и там опечатка была тщательно предварительно служил – и, возможно, новые введены, несмотря на вычитку …
Одним из исключений является расстояние между номерами страниц, который не был довольно регулярно, особенно на коротких страниц.
Первые и последние две сканирует имел голубой фон; предположительно это была кавер бумаги. Остальное было все просто черным по белому. Там не было никаких иллюстраций, на диаграмме памяти на кроме страница 53.]
48/80 ВПЕРЕД
ДЛЯ 48К И 80К ZX SPECTRUM
ВВЕДЕНИЕ И ТЕХНИЧЕСКОЕ РУКОВОДСТВО
? Восточный Лондон Robotics Ltd. 1983
48/80 ВПЕРЕД
от
Ист-Лондон РОБОТОТЕХНИКА LIMITED
? Восточный Лондон Robotics Ltd 1983
_48 / 80_FORTH_
_INDEX_ СТР
Предисловие Об этом руководстве 1
О ленте 1 Использование клавиатуры Spectrum 1 Использование принтера ZX 2 Ворвавшись в программе 2
НАЧИНАЮЩИХ Введение 3
Слово, словарь и словарь 3
В-четвертых, BASIC и Machine Code 3 Определение новое слово 4 Времени выполнения и времени компиляции 4 Стек параметр 5 Математические операции 5 Стек манипуляции 6 Нет смысла арифметика с плавающей 6 Петли 7 Условные 8 Переменные, константы и массивы 9 Форт и линия-числа 10 Сохранение и загрузка 10 Поля 11
48/80 вперед Дополнения к стандарту фиг-Forth 12
Графика 12
Звук 13 Сроки слова 14 Свободно памяти 14 Погрузо-кассеты слова 14
РЕДАКТОР 17
Загрузка редактора 17
Forth экраны 17 Выбор экрана и ввода текста 18 Редактирования Line 18 Курсор управления и строку редактирования 18
ЗАКЛЮЧЕНИЕ 20
Планы на будущее 20
Благодарности 20
ПРИЛОЖЕНИЯ
1. СЛОВАРЬ 21-48 2. РЕДАКТОР ГЛОССАРИЙ 49-51 3. Сообщения об ошибках 52 4. ПАМЯТЬ КАРТЫ 53 5. Список литературы 54 6. РЕЕСТР ИСПОЛЬЗОВАНИЕ 55 7. ХОЛОДНАЯ / теплый старт ПАРАМЕТРЫ 56
_PREFACE_
_ABOUT_THIS_MANUAL_
Если вы новичок в-четвертых, очень важно, чтобы вы обратитесь
в одной из книг reconmended в Приложении 5. Это руководство является, прежде всего, Формальное определение слов в Форт лексики. Это не Текст книги.
Мы, однако, написал обширное предисловие для
новички. Это неизбежно по-упрощена и в-полной, но есть надежда, что она будет обеспечивать достаточно проницательности на язык чтобы вы поняли, большинство слов-определений в глоссарии, и начать писать некоторые программы.
_ABOUT_THE_TAPE_
Каждая лента включает в себя как версию 48k и 80k версию 48/80 Forth. На одной стороне ленты версия 48k предшествует 80К версия. С другой стороны, они являются наоборот.
Порядок программ на каждой стороне ленты, следовательно,
следующим образом:
SIDE 1 SIDE 2
48k Форт Compiler 80k Форт Compiler 48k Форт редактор 80k Форт редактор 80k Форт Compiler 48k Форт Compiler 80k Форт редактор 48k Форт редактор
Чтобы загрузить любую версию компилятора, тип нагрузки “”
Редактор может быть загружен только тогда, когда компилятор уже
работает. Чтобы запустить редактор, тип
LOADSCREENS редактор (не требуются кавычки)
Когда вы загрузили компилятор, вы должны получить
вход в сообщении следующим образом:
48/80 ВПЕРЕД v 1.1 (48k версия) или 48/80 ВПЕРЕД v 1.1 (80k версия)
с последующим сообщением об авторском праве и мигающим C курсора. Если вас
нажмите клавишу ввода, система ответит OK.
_USE_OF_THE_SPECTRUM_KEYBOARD_
Типы курсора, которые необходимы для Spectrum 48/80 Forth которые C, L, G и E. E Курсор должен быть использован только для квадратных скобках [И]. (Ключевые слова не будут появляться в режиме E).
Все Forth слова должны быть напечатаны в письме в письме.
– 1 –
_USE_OF_THE_ZX_PRINTER_
Принтер ZX можно выбрать, нажав CAPS SHIFT
и 1. Если вы сделаете это, весь вывод на экран также будет напечатана на принтере.
Чтобы вернуться к вывода на экран только, (то есть, чтобы включить
Принтер выключен), пресс-CAPS SHIFT и 1 раз.
_BREAKING_INTO_THE_PROGRAM_
Нормальная функция Перерыв доступно с помощью Caps Сдвиг и исследованию космического пространства. Заметим, однако, что способность проникнуть в Ваши собственные Forth программы зависит от вашего собственного programning – если вы пишете в бесконечный цикл без каких-либо положений взлома, вы возможно, придется махнуть рукой и перезагрузите.
Функция Перерыв вернет вас к BASIC в определенный
обстоятельства. Это произойдет, в частности, когда – Вы экономите на ленту – Вы загружаете из ленты – Вы используете принтер ZX
Если вы находитесь в BASIC и хотите вернуться к В-четвертых, ввести один
из следующих:
Рандомизации USR 24576 Это выполняет “холодный старт”, удаление
любые дополнения, которые вы сделали во время сессия.
Рандомизации USR 24580 Это дает “теплый пуск”, сохраняя любой
additionsyou сделали во время сессии.
Примечание: 80k пользователи должны убедиться, что страница 1 выбран для них холодные и теплые начинается.
_THE_80k_SPECTRUM_
Версия 48/80 ЧЕТВЕРТОГО 80k будет работать только на Спектр оснащены SP80 64k расширения памяти выгружаемого производства по Восточной Лондонской Robotics Ltd
– 2 –
_BEGINNERS_INTRODUCTION_
_THE_WORD, _THE_VOCABULARY_AND_THE_DICTIONARY_
Любая форма обучения по программам в Форте называется
“Слово”. Это включает в себя не только такие слова, как D0 и ТО, но и знаки пунктуации, такие как: “! и;.
Эти “слова” группируются в серии «словарей».
Вы можете иметь один или несколько словарей в вашем ЧЕТВЕРТОГО системы. Название словаря inyour компилятора заря “ВПЕРЕД”. Ваш Редактор использует другую лексику, под названием “РЕДАКТОР”. Вы, как Пользователь, в конечном итоге, сформирует свой собственный специализированный словари подходит для ваших собственных конкретных целей.
Все слова во всех словарей, которые были загружается на ваш Sectrum проводятся в “словаре”, который специально выделенная зона оперативной памяти. Слова несколько отличается словари могут быть приобщены. Но если вы указать, какие лексика вы используете, ваша система будет только найти слова в что словарный запас, и словарей, к которым он связан.
Составитель ВПЕРЕД (чья лексика называется Форт) имеет
достаточно слов для вас, чтобы иметь возможность написать практически любой вид Программа.
ВПЕРЕД уникален тем, что он позволяет добавить к
словарь, определив свои собственные слова. Начальная ОПИСАННОЙ словарь достаточно обширна, чтобы вы определить свои собственные слова чисто в Условия Другими словами, которые уже были определены.
Вы можете не только определить новые слова с точки зрения слов
уже поставляется компилятором; Вы можете также определить дальнейшие слова в терминах новых слов _you_ определили.
_FORTH, _BASIC_AND_MACHINE_CODE_
Заря, так сказать, на полпути между основной и машины
Код. ВПЕРЕД программы, поэтому, не читать, как английский.
Смысл простой BASIC программы часто могут быть разработаны с помощью кого-то кто никогда не слышал о компьютерах. Чтобы перевести (“интерпретировать”) А BASIC программа, очень большой объем работ должно быть сделано путем микропроцессорные и интерпретации подпрограммы в ПЗУ до conmand само по себе может быть осуществлена. ОСНОВНЫЕ программы, таким образом, медленно.
Форт гораздо ближе в машинный код, чем BASIC. Так
успешно программировать, вам придется пройти определенный путь к понимая, что происходит внутри компьютера, и научиться думать в стем чисел-логики, а не в английский типа gramnar базовой программы. Более об этом позже.
Между тем, это самое главное, чтобы получить некоторое представление о том,
что происходит, когда вы определяете новое слово.
– 3 –
_DEFINING_A_NEW_WORD_
Слово “:” (двоеточие) сообщает системе, что вы
о определить новое слово.
Толстая кишка всегда сопровождается именем слова
должны быть определены. Название следуют самого определения.
Вся определение прекращается с “;” (полу). Если
Вы забыли эту точку с запятой, то система не будет знать, когда Определение заканчивается, и будет пытаться включить все, что будет дальше. Это может привести к к сбою системы, и вам придется перезагрузить.
Все вперед слова должны быть разделены одним или несколькими пробелами.
Когда вы написали ваше определение, начиная с
: И заканчивая; Вы должны нажать Enter. КАК ТОЛЬКО ВЫ FRESSED ENTER ВЫ НЕ МОЖЕТЕ ВЕРНУТЬСЯ И изменить определение.
Это происходит потому, что компьютер уже повернулась (или
попытался повернуть) свое определение в машинный код. При вводе Основная линия с номером строки, сам текст линии является сохраняются в памяти. ЧЕТВЕРТЫЙ не помнит сам текст линия. Это просто сохраняет “смысл”, то есть скомпилированный код, следующий на новое имя слово в словаре.
Редактор позволяет сохранить фактический текст вашего
определения. Более об этом позже.
ЧЕТВЕРТЫЙ не имеет проверку синтаксиса, чтобы остановить вас ввода мусор.
Слова переводятся сразу в машинный код. Это означает, что система не трудно разбить, если вы входите мусор. `
Если вы определяете слово неправильно, он все еще может быть введен
в словаре, а потому, что это не имеет смысла, он не может быть использован. Он появится на листинг словаря, но будет производить Сообщение об ошибке, если вы пытаетесь использовать его.
Чтобы удалить слово из словаря, тип ЗАБУДЬТЕ и
назвать слова. Если определение мусор, это может не сработать.
В этих условиях ввести размазать и попробуйте еще раз. (См размазать и ПЕРЕКЛЮчЕНИЕ в глоссарии).
_run-TIME_AND_COMPILE-TIME_
Теперь должно быть ясно, что система ОПИСАННОЙ работает в
два различных режима; называется время выполнения и компиляции. Во время выполнения, Система выполняет слова в программе. Во время компиляции, Система преобразует слова в пределах определения в коде, который может позже использовать во время выполнения.
Некоторые слова могут быть использованы только для компиляции (т.е. в пределах
двоеточие-определения. К ним относятся Циклическая слова DO и LOOP (которые аналогичны для основных в … ДАЛЕЕ)
– 4 –
[Страницы 5 и 6 пропали без вести из сканов.] MOD оставят только остаток. Так
5 3 MOD.
Приведу только ответ 2.
Причина, по которой пускают листья системы обработки количество так открыт
это потому, что разные приложения требуют совершенно разных уровней точности. Если вы используете ВПЕРЕД для финансового приложения, вы маловероятны каждый нуждаться в более чем двух знаков после запятой. Если вы пишете игры, вы, вероятно, лучше с вся номера, и никаких знаков после запятой будет использоваться. Если ваше приложение научные, вы, возможно, потребуется высокая точность.
_LOOPS_
Вы можете, как правило, только создать цикл в течение
двоеточие четкости.
Простейший тип цикла использует слова DO
и LOOP. Синтаксис, однако, сильно отличается от BASIC “ЗА NEXT” петля.
Пределы петли должны сначала поставить на
стек, с наибольшим пределом первой. Далее идет DO, а затем все, что вы хотите, чтобы произошло каждый раз, когда программа петли. В конце концов введите LOOP. Например:
.: LOOPER 10 0 DO “Я LOOPING” КОНТУР;
(Слово. “Означает? Напечатать следующую строку до следующего”.
Обратите внимание, что там должно быть место после “. Как.” это слово.)
Название вашего нового слова “LOOPER”. Если вам сейчас
введите LOOPER, Spectrum будет печатать “Я LOOPING” в десять раз.
Что происходит на самом деле в данном цикле заключается в следующем:
а) При достижении слово не, программа передает эти два значения в стеке параметра в другой стек (называется Return Stack).
Как только будет достигнута LOOP, низкое значение на стеке возвратов увеличивается на 1, и по сравнению с предельным значением. Если они не равны, (т.е. пока не достигнут предел), то Программа будет прыгать обратно только после того, как слово DO. Как только предел достигнут, однако, программа пройдет LOOP и вести к тому, что находится рядом.
Слово + LOOP позволяет петле в других шагов
чем 1. Например:
: STEPLOOP 100 0 DO “один из десяти” 10 + LOOP;.
Это добавит 10 к индексу петли каждый раз.
– 7 –
Цикл DO называется “определенную” петлю, потому что его
Верхний предел задается в рамках программы. С осторожностью применяют стек, однако, пользователь может указать, сколько раз цикл должны быть выполнены без переопределить это слово каждый раз.
Например:
: LOOPER 0 DO “это много раз” КОНТУР;.
Затем введите
5 LOOPER
Как предел наступит раньше, 5 Вы ввели будет
быть найдено DO в правильном положении в стеке.
_I_
Слово, которое я чрезвычайно полезен в цикл. Она передает
верхнее значение из стека возвратов в стек параметров без удаляя его из стека возвратов. Таким образом, Вы можете использовать индекс цикла в качестве переменной. Например:
: SCREENFILL 22527 16384 DO 255 I! LOOP;
(Слово! Означает “магазин в адрес состоявшейся в вершине стека
число состоялось второе в стеке “)
Это слово SCREENFILL будет заполнить все биты в
Спектр файл дисплей.
Для более сложных контуров, см начаться снова повторить и
ПОКА в глоссарии. Эти слова позволяют “неопределенный” цикл, который не повторяется до тех пор, или в то время как некоторое условие.
_CONDITIONALS_
Рассмотрим следующий условный толстой кишки четкости:
:. TEST 0
ПОЛОЖИТЕЛЬНО “ENDIF;
Если вы сейчас введите
5 TEST или -5 TEST компьютер скажет вам, число положительным или отрицательным.
Что на самом деле происходит в этой программе “?
Первый ваш 5 (или -5) помещается в стек параметров.
Тогда 0 идет в стек параметров.
Затем две цифры сравнению с ли в первый mmber (5) меньше, чем второе число.
Если это так, (то есть, если это правда), то “правда” флаг остается в Вершина стека. Истинный флаг является любое число, большее 0.
Если посмотреть на флаг в верхней части стопки. Если это правда, то выполнение продолжается от сразу после IF. Если оно ложно (i.e.0) Затем выполнение переходит сразу после ELSE.
ENDIF (который может быть заменен на ТО) заканчивается условное Структура.
– 8 –
_VARIABLES, _CONSTANTS_AND_ARRAYS_
Переменные, константы и массивы все словарь
определения и проводятся в словаре, как набор разделённых двоеточием Определение. Каждый из них имеет эффект резервирования байт для проведение соответствующих чисел.
Разница между переменной и массив лжи
в то, что происходит, когда вы “называют” его, а не в форме в которой она проводится в память.
Константа называется, например, C, со значением
говорят 365, вводится следующим образом:
365 CONSTANT C
Нет запятых или точка с запятой не должны использоваться.
Если ты введите
2 С +.
С будут выполнены. Выполнение постоянная означает, что значение константы выталкивается непосредственно на стек.
Переменная называется, например, V, с начальным значением
из сказать, 10, определяется следующим образом:
10 ПЕРЕМЕННОЙ V
Но если вы затем выполнить V, вы не получите номер 10 на
стек. Вместо этого вы получите адрес двух байтов (так называемый сотового) где переменная хранится. Чтобы получить фактическое значение V, Вы должны использовать слово @ (произносится “выборка”), который извлекает число хранится по адресу в настоящее время проводятся в стеке.
Так что если вы наберете
V @.
Вы получите номер 10.
Чтобы изменить переменную необходимо также использовать слово!
(Произносится как “магазин”), который “тыкает” второй номер состоялась стек в адрес состоявшейся в вершине стека. Например
20 В!
изменится V 20.
Массивы (определенные в BASIC с помощью DIM о) являются
создан в Форт путем резервирования дополнительных байтов в словаре сразу после aVARIABLE определению. Это делается путем usingthe слово выделить.
Например 20 ALLOT будет резервировать 20 бесплатных байт сверх тех, уже зарезервировано переменной. (Достаточно для более 10 значений V). К хранить или принести эти ценности, немного простая арифметика должна быть положить в ваши инструкции. Например:
30 V 2 +!
будет хранить значение 30 в следующий свободный ячейка в массиве.
– 9 –
_FORTH_AND_LINE_NUMBERS_
После того, как Forth программа была составлена она не имеет линию числа. Если вы привыкли к BASIC только, это может напугать вас как вы больше не можете использовать GOTO или GOSUB.
Но, конечно, каждое слово вы определили само по себе
рутинной GOSUB, и назвать эту процедуру, вы просто вводите в Слово.
Кроме того, вы можете позвонить долгую и сложную программу с
одно слово, и вы можете использовать это слово в Do … Loop структуры или не начнут … ПОКА структуры без труда.
Использование вперед по прямой кишки-определений силы структурировать
ваши программы в гораздо более логичным и эффективным образом, чем основной. Слишком многие программисты начинают писать свои подпрограмм в BASIC до они решили, что общая структура программы будет, и даже прежде, чем они решили, что они хотят, чтобы программа сделать. Форт программист, написание сказать программа фондового управления, начнется на другом конце этой проблемы. Последнее слово будет _compiled_ воля быть STOCKCONTROL, но это будет первый, кто определяется программист. Он будет определять его словам, он еще не раз определяется, как GOODSIN, GOODSOUT, баланс и так далее. Он будет перейти к определению этих слов ниже уровня, пока он не достигнет уровня где он использует только те слова, которые уже в словаре.
Это также процесс один должен следовать при написании
Программа на любом другом языке.
Номера строк, тем не менее, существуют в Forth. Существенным частью системы Forth является редактором. Это позволяет хранить “Исходный код” в первоначальном виде; – то есть в том же формате, когда вы ввели его в.
Исходный код хранится в “экранов” 1К байт каждый, сделанных
до 16 линий 64 байт. Когда вы перечислить экран (смотрите раздел на РЕДАКТОРА в данном руководстве) вы увидите серию двоеточиями определений и программа действий в понятной форме. Они могут быть отредактированы, добавлены или удалены.
Код состоится в экранах не будет выполнять, пока он не был
составлен. Для компиляции слова в экране 3, например, вы должны тип 3 НАГРУЗКИ Это будет собирать слова определяется в экране три и положить их в словаре. Один раз они в словаре, код на экране могут быть удалены.
_SAVING_AND_LOADING_
Вы можете как загружать и сохранять либо; –
а) Содержание экраны, использующие SAVESCREENS слов или LOADSCREENS.
или б) Содержание словаре, используя слова SAVETAPE или LOADTAPE.
Не забывайте, что содержимое экранов не будет
выполнить, пока не собрали их НАГРУЗКИ.
– 10 –
_FIELDS_
В просматривая Глоссарий вы часто приходят
по ссылки на PFA (Параметр поле Адрес) и NFA (Имя поля Address). Это краткое объяснение смысла из этих терминов.
Словарное определение проводится в память следующим образом:
Он состоит из четырех отдельных областях, известных как «полей».
1. Имя поля. Первый байт этой области имеет место
Количество символов в имени в низших 5 байт, таким образом, ограничивая длина любая Форт назвать до 31 символов максимум. Шестой бит 1, когда нечеткое, таким образом предотвращая матч с (FIND).
седьмой бит называется “Приоритет немного, и устанавливается в 1, когда слово “немедленно”. “Немедленно” означает, что, если используется слово в определении толстой кишки, он будет выполнен, а не составлен.
Восьмой бит всегда равен 1. Остальные поля имени является из персонажей ASCII от имени этого слова.
2. В поле Имя следуют поля связи. Это поле
два байта, который содержит начальный адрес предыдущего определения в словаре. Используя этот адрес, система может искать через словарь очень быстро. Следует отметить, что словарь ищется в обратном направлении, так что если у вас есть два определения одного и того же имени, один из наиболее часто определяется будет найден первым и используется, и ранее те будут игнорироваться.
3. Далее идет поле кода. Это также только два байта, и
содержит “код-указатель”.
Указатель код указывает на время выполнения кода, который подходит для этого конкретного определения.
Если определение является переменной, или определение машинный код, а затем Время работы кода будет толкать первый адрес поля параметров (PFA) в стек.
Если определение является постоянным, во время выполнения кода будет толкать содержимое из первых двух байтах поля параметра в стек.
Если это определение толстой кишки, указатель будет указывать код для кодирования который прыгает по одному через каждый адрес состоявшегося в параметре Поле.
4 Последнее поле в словаре определение является поле параметра.
В случае переменных, массивов и констант, это будет держать переменная или постоянные числа.
В случае определения толстой кишки, однако, поле параметра будет провести адреса каждого слова, используемого в определении. Код- указатель указывает на код, который выполняет код, состоявшейся в каждом из эти адреса в свою очередь.
– LL –
_48 / 80_EXTENSIONS_TO_STANDARD_FIG_FORTH_
В этом разделе описываются дополнительные слова, включенные в
48/80 ОПИСАННОЙ которые позволяют в полной мере использовать Спектр-х Возможности. Эти слова покрыть цвет, графика, звук и ленты разгрузочные средства, которые вы должны будете дать тот же самый диапазон Возможности, как можно при написании программ на Spectrum BASIC.
_GRAPHICS_
Несколько слов доступны, которые очень похожи на
эквивалентные ОСНОВНЫЕ заявления.
н INK
н БУМАГИ где п число между (Z) и 9 и эквивалентно цвета спектра.
н ГРАНИЦЫ
где N представляет собой число от 0 до 7.
Дополнительно включены в объект 48/80 Приведенные далее, что
цвет может быть набраны в прямой, а не с использованием ряда. то есть
Черные чернила БЕЛАЯ КНИГА
эквивалентно 0 INK 7 БУМАГИ
Следующие выражения эквивалентны BASIC
заявления:
н FLASH
н BRIGHT н INVERSE н Gover
Говер эквивалентно заявлению BASIC НАД, и
была переименована таким образом, чтобы она не конфликтует со стандартным УКАЗАНО Слово OVER. п равно 0, чтобы включить соответствующую функцию выключен, и ненулевой, чтобы включить его.
Обратите внимание, что все эти слова влияют как временное и
постоянный цвет спектра атрибутов. (См стр 194 и 195 в руководство Спектр). Это означает, что эффект этих слов будет продолжаться до тех пор, пока изменено использованием слова снова.
Эти четыре слова выполняют те же функции, что и
Заявления спектра;
х у POINT
х у УЧАСТОК х у НИЧЬЯ X Y Z КРУГ но в отличие от спектра, рисовать заявление х и у действительные координаты экрана, а не смещений.
НИЧЬЯ рисует линию от последней построенной позиции (или в конце прошлого Линия, проведенная) к координатам дают. Таким образом, чтобы нарисовать квадрат в Центр экрана можно ввести:
– 12 –
100 60 PLOT 100 116 DRAW 156 116 DRAW 156 60 DRAW
100 60 ничья и Enter.
г есть радиус круга. ТОЧКА возвращает 0
стек, если пиксель на ху является цвет бумаги, иначе она возвращает 1 на стек, если это цвет чернил.
n1 n2 AT позиционирует курсор на n1 колонке и п2 линии.
n1 TAB позиционирует курсор на колонке чисел n1, по модулю 32, либо на нынешней линии, если что не предполагает обратную расстояние либо на следующей строке.
CLS
Это похоже на BASIC заявлении, очистка Экран, установив ее на настоящей работе цвета, а также размещение курсор в левом верхнем углу экрана.
n1 n2 n3 n4 n5 n6 n7 n8 NCHAR УДГ Это позволяет пользователю определить графические символы должны быть созданы. NCHAR лежит между 0 и 15, и эквивалентно графика переложить символов П. n1 является Нижняя байт 8 X 8 пикселей UDG, и N8 является старший байт. Таким образом, чтобы определить графики сдвинутый A как квадратной коробке, tyupe: –
HEX FF 81 81 81 81 81 81 FF 0 УДГ (Обратите внимание, что изменения HEX слово
число база с 10 до 16)
_SOUND_
n1 n2 СИГНАЛ
Эти слова позволяют звуки, которые будут произведены. Чем меньше
n1, тем выше частота, которая будет производиться, и больше п2, тем дольше продолжительность записке. Точнее значение n1 можно рассчитать по следующему уравнению:
3500000
n1 = () – 30 8 х FOUT
где FOUT является обязательным частоты. Обратите внимание, что стоимость 3500000
частота системной Спектр часов, т.е. 3,5 МГц. Так для получения среднего C (= 261 Гц) n1 будет 1646.
п2 равна NO. циклов в звуковой сигнал, так, чтобы
произвести 1 секунду среднего C будет 261 циклов, поэтому п2 = 261.
то есть 1646 261 СИГНАЛ
При использовании звуковой сигнал в цикле можно производить
реальный аркадные игры типа звуков. Введите эти две линии, как Пример:
: SOUND1 300 10 Должен ли я 20 звуковой сигнал 4 + LOOP;
; SOUND2 6 1 DO SOUND1 LOOP; и введите SOUND2
– 13 –
_TIMING_WORDS_
Есть 3 слова, которые помогут вам осуществить синхронизацию
функции. Они работают на системной переменной Спектр РАМ (См 175 о руководстве спектра)
TIME0
устанавливает переменную кадров назад к нулю.
ВРЕМЯ @ извлекает содержимое РАМ, то есть прошло Время с момента Spectrum был включен, или так TIME0 был выполняется, и выходит из него в виде двойного количества на вершине стека. Это время, прошедшее в 50ths секунды, или 60-х годов в США.
ВРЕМЯ.
печатает прошедшее время в секундах, чтобы (ZLQ) 2 второй.
Обратите внимание, что переменная система КАДРЫ не увеличивается
во время работы принтера ZX, или во время загрузки и сохранения Кассетные операции или во время работы звукового сигнала.
_FREE_MEMORY_SPACE_
Доступное пространство, которое является бесплатным для вашего собственного слова
определения можно найти, используя слово
Бесплатно
которые оставят свободное пространство на вершине стека. Вы можете определить слово, которое будет на самом деле распечатать эту информацию для вас, таких, как в этом примере:
: БЕСПЛАТНО. . Бесплатно CR U. “Байт бесплатно” CR;
Тогда, набрав бесплатно, вы должны получить следующий отзыв:
31568 Bytes бесплатно. (Для 80k версии)
_CASSETTE_HANDLING_WORDS_
Четыре слова включены которая позволит Вам сэкономить и
загрузить данные из кассеты. Все они будут рассмотрены здесь, Обычно, хотя два из них (LOADSCREENS и SAVESCREENS) будет быть использованы только с редактором, который рассматривается в отдельной раздел руководства.
SAVETAPE
Адрес длина SAVETAPE CCCCC
где адрес начального адреса и длины это количество
байт кода, чтобы спастись, на ленту с именем (не более, чем 10 символов, как и в BASIC), следующие за conmand SAVETAPE в положении ККККК. Обратите внимание, что без кавычек не требуется не вокруг имени, также, что не существует “Начало ленты, нажмите любую Ключ “сообщение
– 14 –
Выход начнется, как только вы нажмете ввести. Наиболее важным
Использование это, чтобы сохранить расширенную версию 48/80 вперед, в том числе Ваши собственные слова, которые были добавлены к верхней части словаря. Обратите внимание, что эта копия предназначена только для личного пользования, а не для перепродажи или найма цели, как это будет нарушать авторское право.
Прежде чем вы сможете сэкономить расширенный словарь угодно
необходимо изменить холодный старт paraueters, как показано ниже. Тип в следующих строках:
ВПЕРЕД ОПРЕДЕЛЕНИЯ ДЕСЯТИЧНАЯ
ПОСЛЕДНИЕ 12 + ПРОИСХОЖДЕНИЕ!
ЗДЕСЬ 28 + ПРОИСХОЖДЕНИЕ!
ЗДЕСЬ 30 + ПРОИСХОЖДЕНИЕ!
ЗДЕСЬ забор!
“ВПЕРЕД 6 + 32 + ПРОИСХОЖДЕНИЕ!
Тогда введите следующую команду, но и перед нажатием кнопки ввода
в конце линии, начать движения ленты с кассеты рекордер в режим записи (и не использовать мастер 48/80 вперед лента!)
0 + ПРОИСХОЖДЕНИЕ DUP ЗДЕСЬ SWAP – SAVETAPE NEWFORTH (или как там тебя
хотите назвать это) и вы будете записывать новый расширенную версию вашего 48/80 далее.
Изменение ОПИСАННОЙ за имя подходит
словарный запас, если вы используете другую лексику. В качестве примера можно можно найти на экране # 5 предоставленным редактором.
LOADTAPE
Синтаксис этого слова
адр LOADTAPE CCCCC
где CCCCC это имя в байтах для загрузки с ленты. Это
как правило, не очень полезно слово, и находит наибольшее применение когда передача экраны (смотрите раздел редакторе для обсуждения экранов) между 80k и 48k версий вперед и наоборот.
LOADSCREENS
Это слово позволяет отредактированный исходный код подготовлен с использованием
редактор вперед, чтобы спастись на кассете. Синтаксис этого слова является не Ist-экраном, нет, нет-из-экраны SAVESCREENS сссс
где экран-NOS относится к номерам экрана Редактора. Таким образом, чтобы сохранить
экраны 7 и 8 на ленту с именем FORTHTOOLS (например) типа
7 2 SAVESCREENS FORTHTOOLS
и снова запустить ленту, прежде чем нажать клавишу ввода, так же, как для
SAVETAPE слово.
– 15 –
LOADSCREENS
Синтаксис этого слова
LOADSCREENS CCCCC
и используется для загрузки ранее сохраненного экрана или экранов источника
Код от ленты. Так, чтобы загрузить исходный код для FORTHTOOLS, типа
LOADSCREENS FORTHTOOLS
Некоторые общие couments по использованию подпрограммы кассета в порядке. Во-первых, сообщение об ошибке # 10 будет иметь место, если зовут больше, чем десять символов, а также контроль будет передана обратно Форт операционная система, как и для любого другого сообщения об ошибке. Если вы нажмете клавишу перерыв во время ленточных операций, то вам возвращаются BASIC. В этом случае тип
RANDOMIZE USR 24580
выполнить Теплый старт. Вы не потеряете ни слова
Вы определили. (Это также случай, когда нажатием перерыв Ключ во время работы принтера ZX, и во время говядина). Если вы ошиблись при вводе название ленты, который вы хотите загрузить, и уже нажата введите ключ, прежде чем вы осознаете свою ошибку, то вы будете иметь, чтобы нажмите клавишу перерыв, чтобы выйти из процедуры ленты. Выполните теплый начать, как указано выше, чтобы получить ситуацию.
– L6 –
_THE_EDITOR_
_LOADING_THE_EDITOR_
РЕДАКТОР находится на ленте сразу после того, как
48k и 80k компиляторы. После того, как вы загрузили 48/80 вперед Вы можете загрузить редактор, введя
LOADSCREENS редактор и ввести.
После того, как редактор успешно загружен, программа
ответит OK.
Исходный текст редактора теперь состоится в
экраны. Он не может быть использован, пока не будет собран в словарь. Для этого введите
1 НАГРУЗКИ и ввести.
Редактор слова теперь будет составлен. Не волнуйся
о сообщение об ошибке 4, которые будут происходить на слова R и I, которые имеют различные определения в Форте и редактор.
Теперь типа редактора. Это будет выбрать новый словарь
называется редактор. Затем введите Vlist. Вы увидите, что у вас есть Весь новый список слов в словаре.
_FORTH_SCREENS_
Форт организует всю массовой памяти на системе экранов.
Экран состоит из 1024 байт, или символов, и делится в 16 строк по 64 символов в каждой. Это не соответствует в формате экрана спектра, но это не важно.
Отметим, что поскольку экраны расположение
“Виртуальная память” (то есть они загружаются в ОЗУ полной, и Таким образом, лечение с помощью системы, как если бы они были частью оперативной памяти) Вы можете иметь любое количество из них хранится на ленте. Вы ограничены к тому 16 экранов в памяти с 48k вперед и 32 экранов с 80k УКАЗАНО в любой момент времени.
Экраны пронумерованы от 0 до 15 (48k ВПЕРЕД) и 0 31 (80k версии). Экран число 0, как правило, зарезервированы для conments, и не может быть использован для загрузки исходного кода.
– 17 –
_SELECTING_A_SCREEN_AND_INPUTTING_TEXT_
Чтобы начать сеанс редактирования, пользователь редактор для
выберите соответствующий словарь.
Экран для редактирования Затем выбирается с помощью либо
н LIST (Список экран н и выберите его для редактирования) или
н CLEAR (Очистить экран н и выберите его для редактирования)
Для ввода нового текста на экран н после СПИСОК или снимите
P (PUT) comnand используется. то есть
0 P ЭТО КАК
1 С для ввода текста 2 P линиям (0, л и 2 выбранного экрана.
_LINE_EDITING_
В этом описании редактор, делается ссылка на
PAD. Это текстовый буфер, который может держать строку текста, используемого или сохранены с линии редактирования conmand или текстовой строки, чтобы найти или удален в редактирования строка conmand.
PAD может быть использован для передачи линию с одного экрана на
другой, а также для выполнения операций редактирования на одном экране.
_Line_Editor_Commands_
н Н Удержание линии н в PAD (Используется системой чаще, чем пользователем)
н D Удалить линию н а держать его в ОП. Строка 15 становится пустым, как Линия п + 1 на линию 15 шаг вверх на одну строку.
н Т Тип линии н и сохранить его в ОП
линия.
Символы
стек. Любой
компиляция.
!
Используемый
Используемый
Может произойти
Процедура.
стек.
Матч.
осталось.
Используемый
+!
Выраженный
вперед.
Это
то есть
,
– 25 –
2!
nlow
; компиляция.
Процедура.
слова:
?
Возвращение
проверка.
памяти.
Она служит в качестве происходит.
пустой.
написано.
филиал.
нулю.
BYE
CLS
экраны.
ХОЛОД
н.
CR
СОЗДАТЬ
Код Поле.
словарный запас.
словарный запас.
ОПРЕДЕЛЕНИЯ
Оба
словарь.
От
стек.
получил.
Текст.
ширина.
FLUSH
же.
Выполнение
стек.
расположение.
HEX
например
стек.
ID.
флаг.
СРОЧНАЯ
Если Десятичной точки
пораженный
ОСТАВИТЬ
встречается.
Обычно
– 38 –
Загрузка будет
памяти.
предел.
Тестирование.
M!
Если
n1
NOOP
P!
до 9.
диск.
Нет
стек.
функция.
проверка.
число.
Это
Устройство.
ЗАДАЧА
ТОГДА
ВРЕМЯ.
Письмо.
Имя.
Выход есть
сравнение. в противном случае
UPDATE
Параметр
словарный запас.
Последующее Последовательность определен.
РЕДАКТОР
Если
Экран.
пустой.
Это было
Если нет
Следующий текст.
ОШИБКА
В
Чтение
Может быть использован
Вход
Адрес
ПОЛОЖИТЕЛЬНО “ENDIF;
Если вы сейчас введите
5 TEST или -5 TEST компьютер скажет вам, число положительным или отрицательным.
Что на самом деле происходит в этой программе “?
Первый ваш 5 (или -5) помещается в стек параметров.
Тогда 0 идет в стек параметров.
Затем две цифры сравнению с ли в первый mmber (5) меньше, чем второе число.
Если это так, (то есть, если это правда), то “правда” флаг остается в Вершина стека. Истинный флаг является любое число, большее 0.
Если посмотреть на флаг в верхней части стопки. Если это правда, то выполнение продолжается от сразу после IF. Если оно ложно (i.e.0) Затем выполнение переходит сразу после ELSE.
ENDIF (который может быть заменен на ТО) заканчивается условное Структура.
– 8 –
_VARIABLES, _CONSTANTS_AND_ARRAYS_
Переменные, константы и массивы все словарь
определения и проводятся в словаре, как набор разделённых двоеточием Определение. Каждый из них имеет эффект резервирования байт для проведение соответствующих чисел.
Разница между переменной и массив лжи
в то, что происходит, когда вы “называют” его, а не в форме в которой она проводится в память.
Константа называется, например, C, со значением
говорят 365, вводится следующим образом:
365 CONSTANT C
Нет запятых или точка с запятой не должны использоваться.
Если ты введите
2 С +.
С будут выполнены. Выполнение постоянная означает, что значение константы выталкивается непосредственно на стек.
Переменная называется, например, V, с начальным значением
из сказать, 10, определяется следующим образом:
10 ПЕРЕМЕННОЙ V
Но если вы затем выполнить V, вы не получите номер 10 на
стек. Вместо этого вы получите адрес двух байтов (так называемый сотового) где переменная хранится. Чтобы получить фактическое значение V, Вы должны использовать слово @ (произносится “выборка”), который извлекает число хранится по адресу в настоящее время проводятся в стеке.
Так что если вы наберете
V @.
Вы получите номер 10.
Чтобы изменить переменную необходимо также использовать слово!
(Произносится как “магазин”), который “тыкает” второй номер состоялась стек в адрес состоявшейся в вершине стека. Например
20 В!
изменится V 20.
Массивы (определенные в BASIC с помощью DIM о) являются
создан в Форт путем резервирования дополнительных байтов в словаре сразу после aVARIABLE определению. Это делается путем usingthe слово выделить.
Например 20 ALLOT будет резервировать 20 бесплатных байт сверх тех, уже зарезервировано переменной. (Достаточно для более 10 значений V). К хранить или принести эти ценности, немного простая арифметика должна быть положить в ваши инструкции. Например:
30 V 2 +!
будет хранить значение 30 в следующий свободный ячейка в массиве.
– 9 –
_FORTH_AND_LINE_NUMBERS_
После того, как Forth программа была составлена она не имеет линию числа. Если вы привыкли к BASIC только, это может напугать вас как вы больше не можете использовать GOTO или GOSUB.
Но, конечно, каждое слово вы определили само по себе
рутинной GOSUB, и назвать эту процедуру, вы просто вводите в Слово.
Кроме того, вы можете позвонить долгую и сложную программу с
одно слово, и вы можете использовать это слово в Do … Loop структуры или не начнут … ПОКА структуры без труда.
Использование вперед по прямой кишки-определений силы структурировать
ваши программы в гораздо более логичным и эффективным образом, чем основной. Слишком многие программисты начинают писать свои подпрограмм в BASIC до они решили, что общая структура программы будет, и даже прежде, чем они решили, что они хотят, чтобы программа сделать. Форт программист, написание сказать программа фондового управления, начнется на другом конце этой проблемы. Последнее слово будет _compiled_ воля быть STOCKCONTROL, но это будет первый, кто определяется программист. Он будет определять его словам, он еще не раз определяется, как GOODSIN, GOODSOUT, баланс и так далее. Он будет перейти к определению этих слов ниже уровня, пока он не достигнет уровня где он использует только те слова, которые уже в словаре.
Это также процесс один должен следовать при написании
Программа на любом другом языке.
Номера строк, тем не менее, существуют в Forth. Существенным частью системы Forth является редактором. Это позволяет хранить “Исходный код” в первоначальном виде; – то есть в том же формате, когда вы ввели его в.
Исходный код хранится в “экранов” 1К байт каждый, сделанных
до 16 линий 64 байт. Когда вы перечислить экран (смотрите раздел на РЕДАКТОРА в данном руководстве) вы увидите серию двоеточиями определений и программа действий в понятной форме. Они могут быть отредактированы, добавлены или удалены.
Код состоится в экранах не будет выполнять, пока он не был
составлен. Для компиляции слова в экране 3, например, вы должны тип 3 НАГРУЗКИ Это будет собирать слова определяется в экране три и положить их в словаре. Один раз они в словаре, код на экране могут быть удалены.
_SAVING_AND_LOADING_
Вы можете как загружать и сохранять либо; –
а) Содержание экраны, использующие SAVESCREENS слов или LOADSCREENS.
или б) Содержание словаре, используя слова SAVETAPE или LOADTAPE.
Не забывайте, что содержимое экранов не будет
выполнить, пока не собрали их НАГРУЗКИ.
– 10 –
_FIELDS_
В просматривая Глоссарий вы часто приходят
по ссылки на PFA (Параметр поле Адрес) и NFA (Имя поля Address). Это краткое объяснение смысла из этих терминов.
Словарное определение проводится в память следующим образом:
Он состоит из четырех отдельных областях, известных как «полей».
1. Имя поля. Первый байт этой области имеет место
Количество символов в имени в низших 5 байт, таким образом, ограничивая длина любая Форт назвать до 31 символов максимум. Шестой бит 1, когда нечеткое, таким образом предотвращая матч с (FIND).
седьмой бит называется “Приоритет немного, и устанавливается в 1, когда слово “немедленно”. “Немедленно” означает, что, если используется слово в определении толстой кишки, он будет выполнен, а не составлен.
Восьмой бит всегда равен 1. Остальные поля имени является из персонажей ASCII от имени этого слова.
2. В поле Имя следуют поля связи. Это поле
два байта, который содержит начальный адрес предыдущего определения в словаре. Используя этот адрес, система может искать через словарь очень быстро. Следует отметить, что словарь ищется в обратном направлении, так что если у вас есть два определения одного и того же имени, один из наиболее часто определяется будет найден первым и используется, и ранее те будут игнорироваться.
3. Далее идет поле кода. Это также только два байта, и
содержит “код-указатель”.
Указатель код указывает на время выполнения кода, который подходит для этого конкретного определения.
Если определение является переменной, или определение машинный код, а затем Время работы кода будет толкать первый адрес поля параметров (PFA) в стек.
Если определение является постоянным, во время выполнения кода будет толкать содержимое из первых двух байтах поля параметра в стек.
Если это определение толстой кишки, указатель будет указывать код для кодирования который прыгает по одному через каждый адрес состоявшегося в параметре Поле.
4 Последнее поле в словаре определение является поле параметра.
В случае переменных, массивов и констант, это будет держать переменная или постоянные числа.
В случае определения толстой кишки, однако, поле параметра будет провести адреса каждого слова, используемого в определении. Код- указатель указывает на код, который выполняет код, состоявшейся в каждом из эти адреса в свою очередь.
– LL –
_48 / 80_EXTENSIONS_TO_STANDARD_FIG_FORTH_
В этом разделе описываются дополнительные слова, включенные в
48/80 ОПИСАННОЙ которые позволяют в полной мере использовать Спектр-х Возможности. Эти слова покрыть цвет, графика, звук и ленты разгрузочные средства, которые вы должны будете дать тот же самый диапазон Возможности, как можно при написании программ на Spectrum BASIC.
_GRAPHICS_
Несколько слов доступны, которые очень похожи на
эквивалентные ОСНОВНЫЕ заявления.
н INK
н БУМАГИ где п число между (Z) и 9 и эквивалентно цвета спектра.
н ГРАНИЦЫ
где N представляет собой число от 0 до 7.
Дополнительно включены в объект 48/80 Приведенные далее, что
цвет может быть набраны в прямой, а не с использованием ряда. то есть
Черные чернила БЕЛАЯ КНИГА
эквивалентно 0 INK 7 БУМАГИ
Следующие выражения эквивалентны BASIC
заявления:
н FLASH
н BRIGHT н INVERSE н Gover
Говер эквивалентно заявлению BASIC НАД, и
была переименована таким образом, чтобы она не конфликтует со стандартным УКАЗАНО Слово OVER. п равно 0, чтобы включить соответствующую функцию выключен, и ненулевой, чтобы включить его.
Обратите внимание, что все эти слова влияют как временное и
постоянный цвет спектра атрибутов. (См стр 194 и 195 в руководство Спектр). Это означает, что эффект этих слов будет продолжаться до тех пор, пока изменено использованием слова снова.
Эти четыре слова выполняют те же функции, что и
Заявления спектра;
х у POINT
х у УЧАСТОК х у НИЧЬЯ X Y Z КРУГ но в отличие от спектра, рисовать заявление х и у действительные координаты экрана, а не смещений.
НИЧЬЯ рисует линию от последней построенной позиции (или в конце прошлого Линия, проведенная) к координатам дают. Таким образом, чтобы нарисовать квадрат в Центр экрана можно ввести:
– 12 –
100 60 PLOT 100 116 DRAW 156 116 DRAW 156 60 DRAW
100 60 ничья и Enter.
г есть радиус круга. ТОЧКА возвращает 0
стек, если пиксель на ху является цвет бумаги, иначе она возвращает 1 на стек, если это цвет чернил.
n1 n2 AT позиционирует курсор на n1 колонке и п2 линии.
n1 TAB позиционирует курсор на колонке чисел n1, по модулю 32, либо на нынешней линии, если что не предполагает обратную расстояние либо на следующей строке.
CLS
Это похоже на BASIC заявлении, очистка Экран, установив ее на настоящей работе цвета, а также размещение курсор в левом верхнем углу экрана.
n1 n2 n3 n4 n5 n6 n7 n8 NCHAR УДГ Это позволяет пользователю определить графические символы должны быть созданы. NCHAR лежит между 0 и 15, и эквивалентно графика переложить символов П. n1 является Нижняя байт 8 X 8 пикселей UDG, и N8 является старший байт. Таким образом, чтобы определить графики сдвинутый A как квадратной коробке, tyupe: –
HEX FF 81 81 81 81 81 81 FF 0 УДГ (Обратите внимание, что изменения HEX слово
число база с 10 до 16)
_SOUND_
n1 n2 СИГНАЛ
Эти слова позволяют звуки, которые будут произведены. Чем меньше
n1, тем выше частота, которая будет производиться, и больше п2, тем дольше продолжительность записке. Точнее значение n1 можно рассчитать по следующему уравнению:
3500000
n1 = () – 30 8 х FOUT
где FOUT является обязательным частоты. Обратите внимание, что стоимость 3500000
частота системной Спектр часов, т.е. 3,5 МГц. Так для получения среднего C (= 261 Гц) n1 будет 1646.
п2 равна NO. циклов в звуковой сигнал, так, чтобы
произвести 1 секунду среднего C будет 261 циклов, поэтому п2 = 261.
то есть 1646 261 СИГНАЛ
При использовании звуковой сигнал в цикле можно производить
реальный аркадные игры типа звуков. Введите эти две линии, как Пример:
: SOUND1 300 10 Должен ли я 20 звуковой сигнал 4 + LOOP;
; SOUND2 6 1 DO SOUND1 LOOP; и введите SOUND2
– 13 –
_TIMING_WORDS_
Есть 3 слова, которые помогут вам осуществить синхронизацию
функции. Они работают на системной переменной Спектр РАМ (См 175 о руководстве спектра)
TIME0
устанавливает переменную кадров назад к нулю.
ВРЕМЯ @ извлекает содержимое РАМ, то есть прошло Время с момента Spectrum был включен, или так TIME0 был выполняется, и выходит из него в виде двойного количества на вершине стека. Это время, прошедшее в 50ths секунды, или 60-х годов в США.
ВРЕМЯ.
печатает прошедшее время в секундах, чтобы (ZLQ) 2 второй.
Обратите внимание, что переменная система КАДРЫ не увеличивается
во время работы принтера ZX, или во время загрузки и сохранения Кассетные операции или во время работы звукового сигнала.
_FREE_MEMORY_SPACE_
Доступное пространство, которое является бесплатным для вашего собственного слова
определения можно найти, используя слово
Бесплатно
которые оставят свободное пространство на вершине стека. Вы можете определить слово, которое будет на самом деле распечатать эту информацию для вас, таких, как в этом примере:
: БЕСПЛАТНО. . Бесплатно CR U. “Байт бесплатно” CR;
Тогда, набрав бесплатно, вы должны получить следующий отзыв:
31568 Bytes бесплатно. (Для 80k версии)
_CASSETTE_HANDLING_WORDS_
Четыре слова включены которая позволит Вам сэкономить и
загрузить данные из кассеты. Все они будут рассмотрены здесь, Обычно, хотя два из них (LOADSCREENS и SAVESCREENS) будет быть использованы только с редактором, который рассматривается в отдельной раздел руководства.
SAVETAPE
Адрес длина SAVETAPE CCCCC
где адрес начального адреса и длины это количество
байт кода, чтобы спастись, на ленту с именем (не более, чем 10 символов, как и в BASIC), следующие за conmand SAVETAPE в положении ККККК. Обратите внимание, что без кавычек не требуется не вокруг имени, также, что не существует “Начало ленты, нажмите любую Ключ “сообщение
– 14 –
Выход начнется, как только вы нажмете ввести. Наиболее важным
Использование это, чтобы сохранить расширенную версию 48/80 вперед, в том числе Ваши собственные слова, которые были добавлены к верхней части словаря. Обратите внимание, что эта копия предназначена только для личного пользования, а не для перепродажи или найма цели, как это будет нарушать авторское право.
Прежде чем вы сможете сэкономить расширенный словарь угодно
необходимо изменить холодный старт paraueters, как показано ниже. Тип в следующих строках:
ВПЕРЕД ОПРЕДЕЛЕНИЯ ДЕСЯТИЧНАЯ
ПОСЛЕДНИЕ 12 + ПРОИСХОЖДЕНИЕ!
ЗДЕСЬ 28 + ПРОИСХОЖДЕНИЕ!
ЗДЕСЬ 30 + ПРОИСХОЖДЕНИЕ!
ЗДЕСЬ забор!
“ВПЕРЕД 6 + 32 + ПРОИСХОЖДЕНИЕ!
Тогда введите следующую команду, но и перед нажатием кнопки ввода
в конце линии, начать движения ленты с кассеты рекордер в режим записи (и не использовать мастер 48/80 вперед лента!)
0 + ПРОИСХОЖДЕНИЕ DUP ЗДЕСЬ SWAP – SAVETAPE NEWFORTH (или как там тебя
хотите назвать это) и вы будете записывать новый расширенную версию вашего 48/80 далее.
Изменение ОПИСАННОЙ за имя подходит
словарный запас, если вы используете другую лексику. В качестве примера можно можно найти на экране # 5 предоставленным редактором.
LOADTAPE
Синтаксис этого слова
адр LOADTAPE CCCCC
где CCCCC это имя в байтах для загрузки с ленты. Это
как правило, не очень полезно слово, и находит наибольшее применение когда передача экраны (смотрите раздел редакторе для обсуждения экранов) между 80k и 48k версий вперед и наоборот.
LOADSCREENS
Это слово позволяет отредактированный исходный код подготовлен с использованием
редактор вперед, чтобы спастись на кассете. Синтаксис этого слова является не Ist-экраном, нет, нет-из-экраны SAVESCREENS сссс
где экран-NOS относится к номерам экрана Редактора. Таким образом, чтобы сохранить
экраны 7 и 8 на ленту с именем FORTHTOOLS (например) типа
7 2 SAVESCREENS FORTHTOOLS
и снова запустить ленту, прежде чем нажать клавишу ввода, так же, как для
SAVETAPE слово.
– 15 –
LOADSCREENS
Синтаксис этого слова
LOADSCREENS CCCCC
и используется для загрузки ранее сохраненного экрана или экранов источника
Код от ленты. Так, чтобы загрузить исходный код для FORTHTOOLS, типа
LOADSCREENS FORTHTOOLS
Некоторые общие couments по использованию подпрограммы кассета в порядке. Во-первых, сообщение об ошибке # 10 будет иметь место, если зовут больше, чем десять символов, а также контроль будет передана обратно Форт операционная система, как и для любого другого сообщения об ошибке. Если вы нажмете клавишу перерыв во время ленточных операций, то вам возвращаются BASIC. В этом случае тип
RANDOMIZE USR 24580
выполнить Теплый старт. Вы не потеряете ни слова
Вы определили. (Это также случай, когда нажатием перерыв Ключ во время работы принтера ZX, и во время говядина). Если вы ошиблись при вводе название ленты, который вы хотите загрузить, и уже нажата введите ключ, прежде чем вы осознаете свою ошибку, то вы будете иметь, чтобы нажмите клавишу перерыв, чтобы выйти из процедуры ленты. Выполните теплый начать, как указано выше, чтобы получить ситуацию.
– L6 –
_THE_EDITOR_
_LOADING_THE_EDITOR_
РЕДАКТОР находится на ленте сразу после того, как
48k и 80k компиляторы. После того, как вы загрузили 48/80 вперед Вы можете загрузить редактор, введя
LOADSCREENS редактор и ввести.
После того, как редактор успешно загружен, программа
ответит OK.
Исходный текст редактора теперь состоится в
экраны. Он не может быть использован, пока не будет собран в словарь. Для этого введите
1 НАГРУЗКИ и ввести.
Редактор слова теперь будет составлен. Не волнуйся
о сообщение об ошибке 4, которые будут происходить на слова R и I, которые имеют различные определения в Форте и редактор.
Теперь типа редактора. Это будет выбрать новый словарь
называется редактор. Затем введите Vlist. Вы увидите, что у вас есть Весь новый список слов в словаре.
_FORTH_SCREENS_
Форт организует всю массовой памяти на системе экранов.
Экран состоит из 1024 байт, или символов, и делится в 16 строк по 64 символов в каждой. Это не соответствует в формате экрана спектра, но это не важно.
Отметим, что поскольку экраны расположение
“Виртуальная память” (то есть они загружаются в ОЗУ полной, и Таким образом, лечение с помощью системы, как если бы они были частью оперативной памяти) Вы можете иметь любое количество из них хранится на ленте. Вы ограничены к тому 16 экранов в памяти с 48k вперед и 32 экранов с 80k УКАЗАНО в любой момент времени.
Экраны пронумерованы от 0 до 15 (48k ВПЕРЕД) и 0 31 (80k версии). Экран число 0, как правило, зарезервированы для conments, и не может быть использован для загрузки исходного кода.
– 17 –
_SELECTING_A_SCREEN_AND_INPUTTING_TEXT_
Чтобы начать сеанс редактирования, пользователь редактор для
выберите соответствующий словарь.
Экран для редактирования Затем выбирается с помощью либо
н LIST (Список экран н и выберите его для редактирования) или
н CLEAR (Очистить экран н и выберите его для редактирования)
Для ввода нового текста на экран н после СПИСОК или снимите
P (PUT) comnand используется. то есть
0 P ЭТО КАК
1 С для ввода текста 2 P линиям (0, л и 2 выбранного экрана.
_LINE_EDITING_
В этом описании редактор, делается ссылка на
PAD. Это текстовый буфер, который может держать строку текста, используемого или сохранены с линии редактирования conmand или текстовой строки, чтобы найти или удален в редактирования строка conmand.
PAD может быть использован для передачи линию с одного экрана на
другой, а также для выполнения операций редактирования на одном экране.
_Line_Editor_Commands_
н Н Удержание линии н в PAD (Используется системой чаще, чем пользователем)
н D Удалить линию н а держать его в ОП. Строка 15 становится пустым, как Линия п + 1 на линию 15 шаг вверх на одну строку.
н Т Тип линии н и сохранить его в ОП
линия.
Символы
стек. Любой
компиляция.
!
Используемый
Используемый
Может произойти
Процедура.
стек.
Матч.
осталось.
Используемый
+!
Выраженный
вперед.
Это
то есть
,
– 25 –
2!
nlow
; компиляция.
Процедура.
слова:
?
Возвращение
проверка.
памяти.
Она служит в качестве происходит.
пустой.
написано.
филиал.
нулю.
BYE
CLS
экраны.
ХОЛОД
н.
CR
СОЗДАТЬ
Код Поле.
словарный запас.
словарный запас.
ОПРЕДЕЛЕНИЯ
Оба
словарь.
От
стек.
получил.
Текст.
ширина.
FLUSH
же.
Выполнение
стек.
расположение.
HEX
например
стек.
ID.
флаг.
СРОЧНАЯ
Если Десятичной точки
пораженный
ОСТАВИТЬ
встречается.
Обычно
– 38 –
Загрузка будет
памяти.
предел.
Тестирование.
M!
Если
n1
NOOP
P!
до 9.
диск.
Нет
стек.
функция.
проверка.
число.
Это
Устройство.
ЗАДАЧА
ТОГДА
ВРЕМЯ.
Письмо.
Имя.
Выход есть
сравнение. в противном случае
UPDATE
Параметр
словарный запас.
Последующее Последовательность определен.
РЕДАКТОР
Если
Экран.
пустой.
Это было
Если нет
Следующий текст.
ОШИБКА
В
Чтение
Может быть использован
Вход
Адрес
Игра 48/80 FORTH запускается прямо на сайте. Эта приложение для программирования, изданное в Великобритании в 1983 году творческой группой East London Robotics Ltd, которое написал Phil Holliday.
Сохранённые игры[X]
Справка[X]
Помощь уже в пути!
- x1
- x2
- x3
<<<<
<<<<
<<<<
Не забывайте периодически сохранять игровой прогресс на сервере (клавишей F8), чтобы уверенно продвигаться вперёд!
Если вы гость на сайте, то прогресс будет сохранён только в памяти браузера и потеряется при закрытии. Чтобы этого не произошло - просто войдите в свой профиль.
Для загрузки сохранённой игры жмите F3 или откройте меню "Диск" кнопкой на правой панели.
Если игра не запускается, или у вас есть вопросы по игре - задайте их ниже.
Не запускается или глючит игра, или не можете пройти? Спросите в комментариях.