Системные программы для «ZX-Spectrum» 1993 г.

EDITAS - редактор/ассемблер — это одно из мощнейших средств для программирования в машинных кодах. Клавиатура. Экран. Редактор. Метки.


EDITAS   EDITOR/ASSEMBLER

 PICTURESQUE,

6 CORKSCREW HILL,

WEST WICKHAM,

KENT

BR4 9BB.

 

Редактор/ассемблер — это одно ив мощнейших средств для программирования в машинных кодах. Совместно с программой "MONITOR" она составляет законченную систему для работы с программами в машинных кодах.

Без программы "MONITOR" "EDITAS" позволяет вводить и редактировать исходный модуль и получать объектный модуль (в шестнадцатиричных кодах), а также получать копию на прин­тере или на ленте. При этом обеспечена полная независимость от Бейсика. В программе имеется встроенная система иденти­фикации ошибок.

"EDITAS" работает в два этапа. Сначала "EDITAS" позволяет создать исходный модуль посредством нумерации строк, подобно тому, как это делается в бейсиковских программах и выполнить его редактирование. На втором этапе исходный модуль ассемб­лируется в объектный код.

 

РЕДАКТОР.

После загрузки программы появится запрос, будете ли вы работать с новым текстом или продолжите работу с существу­ющим. Отвечайте "N", поскольку пока никакого текста в буфере нет. Программа имеет генератор символов, позволяющий писать 40 символов в строке, поэтому символы отличаются от стандар­тных символов Бейсика.

 

КЛАВИАТУРА

Поскольку набор команд ассемблера меньше, чем в Бейсике, клавиатура работает в упрощенном режиме. Не задействованы режимы "EXTENDED MODE", "GRAPHICS", "CAPS LOCK". Acсемблер знает заранее, когда потребуется ввод строчных симво­лов, и во всех остальных случаях работает с заглавными. Во мно­гих случаях команды ассемблера совпадают с соответствующими бейсик-командами. Они вызываются только тогда, когда курсор  находится в начале строки. Это команды: LIST, EDIT, SAVE, NEW, CLEAR, RETURN.

Другие команды не имеют аналогов в Бейсике или не являются ключевыми словами (т.е. их надо набирать по буквам), Они также вызываются, когда курсор находится в начале строки: "RE-NUM" /клавиша N/, "VERIFY" /V/, "AVTO" /D/, "ASSEMBLE" /R/.

Движение курсора, а также "DELETE" и "ENTER", как в Бейсике.

Все другие клавиши действуют как обычно и дают соответ­ствующие буквы и цифры. Нажатие "SYMBOL SHIFT" совме­стно с клавишей дает символ, написанный красным цветом под этой клавишей (только если это одиночный символ). Символы Бейсика, вызываемые через режим "EXTENDED MODE", в ас­семблере не функционируют.

Единственный случай, когда вам могут потребоваться строч­ные буквы — это ввод текстовых строк. Во всех остальных слу­чаях ассемблер пишет прописные буквы автоматически.

 

ЭКРАН

Экран ассемблера имеет 40 колонок и разбит на зоны. Мы полагаем, что вы прочтете внимательно раздел "Ввод строки" и поэкспериментируете, пока не привыкнете к работе с зонами и к использованию курсора.

 

ВВОД СТРОКИ

Программы в машинных кодах вводятся способом, похожим на то, как это делается в Бейсике. В одной строке разрешается только одна инструкция, строка должна иметь номер от 0 до 9999 и код команды с соответствующими операндами. Полный список мнемоник Z-80 в форме, приемлемой для ассемблера приведен в приложении 1.

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

Номер строки — первые четыре символа + пробел;

Имя метки — следующие пять символов + пробел;

Имя операции — следующие четыре символа + пробел;

Операнды — остальные позиции в строке. Переход к началу следующей зоны выполняет­ся нажатием клавиши "SPACE". Все программы должны начинаться с указания адреса, с ко­торого они ассемблируются. Он называется "ORIGIN" и сокра­щается как "ORG". Например, надо набрать:

0010 ORG 6000

Адрес 6000 — это адрес первого байта ассемблированной прог­раммы. Перед тем как выполнить "ENTER", поперемещайте курсор вдоль этой строки. Когда курсор находится над символом, нажатие клавиш приводит к тому, что первоначальный символ заменяется новым, а курсор перемещается на одну позицию вправо. Нажатие "М" или "О" переводит курсор на одну пози­цию в пределах зоны, пробелы игнорируются. Если зона пустая, курсор перемещается к концу этой зоны.

Удаление символа выполняется так: установите курсор спра­ва от него. Нажмите "DELETE". Символ исчезнет, курсор займет его место, но оставшаяся часть зоны не сдвигается. Теперь пе­редвиньте курсор к "R" в "ORG" и нажмите "SPACE". "RG" сот­рется и курсор установится в начале следующей зоны. Для сти­рания последнего символа в строке поместите курсор на него и нажмите "SPACE".

Чтобы удалить всю строку, установите курсор в крайнюю ле­вую позицию строки и нажмите "SPACE".

При вводе каждой новой строки в программу ассемблер вы­полняет необходимые проверки для того, чтобы убедиться в на­личии в каждой зоне по крайней мере одного пробела. Они не­обходимы, чтобы ассемблер мог различать отдельные части * строки. Если этих пробелов нет, то "ENTER" не сработают.

Ввод мнемоник должен выполняться строго в соответствии с формой, приведенной в приложении 1.

Если в операции имеются 2 операнда, то ее поле должно ос­таться пустым. Например:

0020   LD   А. 20

Внимательно просмотрев приложение 1, вы сможете выде­лить два важных момента:

1. Некоторые из арифметических операций (ADD, ADC, SUB, SBC^AND, XOR, OR) имеют несколько отличное написание по сравнению с описанием фирмы "ZILOG". Так, например, в тех случаях, когда операндом должен быть "А" (аккумулятор), дан­ный ассемблер не требует его показывать. Только в тех случаях, когда первый операнд не "А", надо показывать оба операнда. Так, например, вместо ADC А,В требуется ADC В, но ADD HL.DE пишется как обычно. Инструкции JP (IX), JP (IX) и JP (HL) можно писать без скобок.

2. Есть некоторые инструкции, которые понимаются ассемб­лером, но не были описаны фирмой "ZILOG". Так, эксперимен­тально установлено, что возможны операции с отдельными по­ловинками регистровых пар IX и IY. Их форма: ХН — для старшего байта и XL — для младшего; аналогично: YH и YL.

Появилась новая арифметическая функция SLL, которая сдвигает байт влево, при этом бит — 7 устанавливается в "CAR­RY", а в бит 0 помещается 1. Состояние флагов такое же, как в SRL.

В отличие от бейсикового редактора строк здесь выполняется только прокрутка экрана. Если листинг на экране набран не в порядке нумерации строк, автоматическая перестановка не вы­полняется. Конечно можно вывести листинг в порядке нумера­ции, но для этого надо воспользоваться командой "LIST".

 

КОМАНДЫ РЕДАКТОРА

1. "LIST' (клавиша К). По этой команде высвечиваются де­сять строк программы. Последующие блоки по десять строк пода­ются клавишей "SPACE" После каждого блока может быть пода­на какая-либо другая команда. После "LIST" можно указать номер строки. На ZX — принтер листинг может быть выдан, если ввести после "LIST" символ — косую черту — "/".

2. "AUTO" эта команда дает возможность автонумерации строк. Наберите номер, с которого хотите начать, затем "ENTER". Нумерация идете шагом по 10. Чтобы выйти из режима "AUTO", сотрите номер текущей строки. Когда курсор достигнет крайней левой позиции, режим "AUTO" будет отключен. Повторный вход

в "AUTO" начинается с номера, следующего за тем, с которым вы выходили из "AUTO".

3. "EDIT'. В отличие от Бейсика здесь нет возможности пере­мещать курсор по вертикали. Поэтому, чтобы отредактировать определенную строку, надо дать ее номер после команды "EDIT". После редактирования строка вставляется в программу через "ENTER".

4. "NEW". Эта команда очищает числовой буфер, затирает список меток и устанавливает "EDITOR/ASSEMBLER" в исход­ное положение (как после загрузки). Появляется исходное сооб­щение. Если вы нажали "NEW" по ошибке, то в ответ давайте "С", а не "N" (как вы делали в начале работы).

5. "RETURN". Эта команда дает возможность выйти в Бейсик. Для возврата в "EDITAS" используйте: Для 16К: RANDOMISE USR 28205. Для 48К: RANDOMISE USR 60973. Нажатие клавиши "BREAK" во время работы принтера или во время SAVE, LOAD, VERIFY также приводит к выходу в Бейсик. Возврат в ассемблер тем же способом.

6. "RENUM". Эта команда позволяет изменять номера строк исходного модуля. Введите величину интервала между номерами соседних строк от 1 до 99. Нажмите "ENTER", и перенумерация будет выполнена. Первой строке присвоен номер, равный назна­ченному интервалу. Если в результате этой процедуры будет по­лучен номер выше 9999, то программа автоматически уменьшит интервал на 1 и т.д. Результирующий шаг будет виден по номеру, присвоенному первой строке.

 

СТРОКИ КОММЕНТАРИЕВ

В тексте программы могут быть использованы комментарии. Они выполняются аналогично строкам REM в Бейсике. Введите номер строки, переместите курсор в зону метки и набейте там точку с запятой. Установите курсор в зоне операндов и в кавыч­ках напишите свой текст.

АССЕМБЛЕР

Ассемблер превращает мнемоники в шестнадцатеричный код, необходимый для работы процессора. Мнемоники называютсяисходным модулем, полученный шестнадцатеричный код — объектным модулем.

Ассемблер делает два прохода по тексту программы. На пер­вом проходе проверяется правильность синтаксиса. Рассчитыва­ются значения меток и составляется таблица этих значений, соз­дается контур объектного файла.

На втором проходе полностью рассчитываются все числовые операнды, вычисляются адреса переходов. Разделить эти два про­хода невозможно. Результаты второго прохода выдаются на эк­ран или на ZX-принтер. В этом разделе руководства будет описа­но использование меток и директив ассемблера. Здесь же будут рассмотрены некоторые новые команды.

КАРТА ПАМЯТИ

4000

 

PROG

 

ЭКРАН

 

АТРИ­БУТЫ

 

СИСТЕМ­НЫЕ ПЕРЕ­МЕН­НЫЕ

 

БЕЙСИК

 

 

 

ОБЪЕКТ­НЫЙ КОД

 

СВО­БОДНО

 

 

 

STEND

 

RAMTOP

 

СВО­БОДНО

 

ТЕКСТО­ВЫЙ БУФЕР

 

"EDITAS"

 

СТЕК

 

ГРАФИКА ПОЛЬЗОВАТЕЛЯ UDG

 

 

 

6700

 

 

 

 

Когда вы вводите в листинг новую строку, текстовый буфер перемещается вниз, передвигая при этом таблицу меток. Если текстовый и объектный буфер сойдутся и перекроют один другой, то появится сообщение о переполнении памяти "MEMORY FULL".

ВНИМАНИЕ!!! "EDITAS", его буфера и таблицы находятся ниже RAMTOP и не имеют защиты от Бейсика. Команда Бейсика "NEW" уничтожит "EDITAS".

ОПЕРАНДЫ.

Числа. Ассемблер принимает десятичные и шестнадцатеричные числа. По умолчанию принимаются десятичные, шестнадцатеричныс на конце должны иметь суффикс "Н". Если шестнадцатеричное число начинается с буквы, то ей должен пред­шествовать 0, иначе ассемблер примет это число за имя метки.

НАПРИМЕР:

не DOOOH, a ODOOOH

не FFH, a OFFH

Символы ASCII. Одиночные символы кода ASCII также могут быть операндами при условии, что они вводятся в кавычках. Этот тип операндов может быть во всех операциях, которые могут использовать числовой операнд, кроме директив ассемблера "ORG" и "END".

После того, как вы набрали открывающие кавычки, ассемб­лер автоматически переходит в нижний регистр, если вы не используете "CAPS SHIFT". Например: — LDA "а" — дает код ЗЕ61.

Арифметические символы. Разрешается использование опе­раций сложения и вычитания внутри операндов. Разрешена так­же сумма или разность значений меток, числовых значений сим­волов ASCII в любой комбинации, например:

LD А, "А"+20H —дает код 3E 81;

LD HL.LBL2-LBL1 вычисляется значение разности

между значениями меток;

LD DE. START+100H — добавляет фиксированное зна­чение к значению метки.

JR/DJNZ. Адреса перехода для этих двух инструкций могут быть заданы многими разными способами. Нижеследующий при­мер охватывает все возможные способы задания перехода. Переход должен быть в пределах от +127 до -128: Например:

5DDB   0010   ORG    #

5DDB   1В02   0020   JR     LOOP

5DDD   ЗЕ01   0030   LD     A, 1

5DDF   0602   0040 LOOP LD  В. 2

5DE1   18FC   0050   JR     LOOP

5DE3   1620   0060   JR     32

5DE5   1820   0070   JR     2CH

5DE7   1820   0080   JR     +32

5DE9   1820   00У0   JR     -+2CH

5DEB   18FC   0100   JR     0CH

5DED   18FC   0110   JR     232

5DEF   18FC   0120   JR     -4

5DF1   18FC   0130   JR     -4H

5DF3   10EA   0140   DJNZ   LOOP

5DF3   10EE   01b0   DJNZ   CEEN

5DF7

 

10EE

 

0160

 

DJNZ

 

238

 

5DF9

 

10EE

 

0170

 

DJNZ

 

-1B

 

5DFB

 

10EE

 

0180

 

D.JNZ

 

-12H

 

5DFD

 

1020

 

0190

 

DJNZ

 

32

 

5DFF

 

1020

 

0200

 

DJNZ

 

2CH

 

5Е01

 

1020

 

0210

 

DJNZ

 

+32

 

5Е03

 

1020

 

0220

 

DJNZ

 

+2CH

 

 

 

 

 

0230

 

END

 

 

 

LOOP

 

5DDF

 

 

 

 

 

 

 

#

 

5DDB

 

 

 

 

 

 

 

 

МЕТКИ

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

Метка — это средство задания точки в программе или сред­ство хранения значения постоянных и переменных. Все метки имеют два байта, 16-и битное значение. Имя метки может иметь максимум до 5 символов. Они должны начинаться с букв и не могут содержать пробелов. Все имена регистров, условные опе­раторы — это зарезервированные имена и их нельзя использо­вать в качестве имен меток. Первый символ не может быть также точкой с запятой.

 

ПРОСТЫЕ МЕТКИ

Меткам, помещенным в отведенную для них зону, за кото­рыми следует операция, отличная от "EQU" и "DEFL", прис­ваивается значение текущего программного адреса этой инст­рукции. Если простая метка используется как операнд, ее значение должно быть определено где-либо в программе.

Существуют два специальных типа меток, задаваемых ди­рективам ассемблера "EQU" и "DEFL". Вы задаете значения ме­ток как постоянные или переменные.

EQU эта директива назначает значение метки. Она не по­мещает никаких кодов в объектный буфер. После того как метке присвоено значение через "EQU", его уже нельзя переопреде­лить. В качестве операнда может быть число, символ ASCII или имя другой метки, но при этом последнее уже должно быть определено. Имя метки помещается в зону метки: "EQU" помещается в зону операции, а операнд — в зону операнда.

DEFL — эта директива также позволяет задать значение мет­ке, но она позволяет предопределять его в программе по мере необходимости. При каждом новом задании старое значение те­ряется. Метка является переопределяемой, если ее первое опре­деление (в порядке нумерации строк) было сделано директивой "DEFL". Последующие определения могут быть через "DEFL" или "EQU", но она останется переопределяемой. Поскольку мет­ки, заданные "EQU" и "DEFL", не являются частью программы, они не имеют связанного с ними адреса, поэтому вместо адреса на экране указывается их значение.

Существует специальный операнд "&", который применяется только с директивами "EQU" и. "DEFL". Он присваивает метке значение текущего программного адреса.

# — эта метка задастся самим ассемблером и ей присваива­ется адрес начала буфера объектного кода. Она не переопреде­ляется.

ДИРЕКТИВЫ АССЕМБЛЕРА.

Это не имена операции, которые принимаются процессором. Они введены только для упрощения процедуры написания ма­шинных кодов. Они используются ассемблером только при тран­сляции для расчета байтов данных, генерации сообщений и т.п. Они вводятся в программу с номером строки путем написания имени в зоне операции. Их можно помечать метками и они все требуют операнда, за исключением END. По крайней мере, две из них должны быть в каждой программе — это "ORG" и "END".

ORG — задает адрес первого байта ассемблированного кода. Эта директива должна быть задана до любой другой инструкции. Ей могут предшествовать комментарии, но лучше все же сначала задавать "ORG". Шестнадцатиричный код, выдаваемый ассемб­лером, записывается в объектный буфер, откуда выдается на лен­ту. Метка "#" определяет начало буфера, она задается ассемб­лером. Операндом в "ORG" может быть число, метка (если она была определена).

На одну программу допускается только одна инструкция "ORG". Для защиты системных переменных адрес "ORG" должен быть выше, чем начало бейсиковской программной области, за­даваемой переменной "PROC".

Если программа ассемблируется с "ORG #", то код в объект­ном буфере полностью привязан к адресам буфера и может быть там и запущен. Любые другие адреса "ORG" дадут код в объек­тном буфере, который может быть запущен в других адресах.

END — означает конец программы. Если после него и есть строки, ассемблер их игнорирует.

DEFB — приписывает определенный байт текущему адре­су. Значение должно быть менее 256. Операндом может быть число, символ или метка со значением, меньшим 256.

DEFW — присваивает значение двум соседним байтам. Сначала идет младший байт, затем старший.

DEFS — заполняет адреса, начиная с текущего, нулями. Операнд — число.

DEFM — для ввода сообщений. Операнд — строка символов "ASCII" в кавычках. В отличие от прочих строк, которые должны

умещаться в 40 колонках, эти строки могут быть двойными и иметь до 47 символов.

 

ОБЪЕКТНЫЙ БУФЕР

Ассемблер записывает шестнадцатеричный код в объектный буфер, который всегда имеет фиксированное положение отно­сительно конца Бейсик области, и начинается на 256 байтов выше "STKEND" (зазор в 256 байтов необходим для того, чтобы поз­волить вам вернуться в Бейсик и снова войти в ассемблер без порчи стека калькулятора объектным кодом).

Коды в объектном буфере могут быть запущены оттуда не­посредственно, если адрес "ORG" задан меткой "#". Оттуда они могут быть выданы на ленту, а впоследствии загружаться в те адреса памяти, для которых они были сделаны. Преимущество такой системы наиболее полезно для машин 16К, так как там очень ограничена память, особенно после загрузки ассемблера.

Программа может быть разбита на несколько малых частей, каждая из которых ассемблируется и записывается отдельно. Ин­струкции "END" первого блока дается метка, определяющая ее адрес, который используется в директиве "ORG" следующего блока и т.д. до конца программы. Затем идет возврат в Бейсик и загрузка частей в память через Бейсик. Все части вместе записываются на ленту, что дает одну большую программу. Между бло­ками дается команда "CLEAR", которая очищает текстовый бу­фер, но не трогает метки.

 

КОМАНДЫ

Команды, к которым обращается "EDITAS", мы уже рассмот­рели. Оставшиеся команды рассмотрим ниже. Они вызываются, когда курсор находится в крайней левой позиции строки.

ASSEMBLE (клавиша R). На экране появляется надпись "AS­SEMBLE". При первом проходе ассемблера ничего не выдается ни на экран, ни на принтер. Второй проход может отражаться на Экране или принтере, а может и нет. В последнем случае скорость

ассемблирования выше.

1. Ассемблирование без дисплея. Нажать "R", затем "EN­TER". Если ошибок нет, то будет пауза, размер которой зависит ОТ длины программы. Ассемблирование закончится изображени­ем на экране таблицы меток и их значений. Метки из DEFL будут отмечены звездочкой.

2. Ассемблирование с печатью на ZX-принтере. Нажмите "R", затем SS+V, затем "ENTER". Если принтер подключен, листинг будет распечатан. Принтер можно остановить "BREAK", но после этого вы возвратитесь в Бейсик.

3. Ассемблирование с выдачей на экран. Нажмите "R", затем любой символ, кроме"/", затем "ENTER". Второй проход ассем­блера будет сопровождаться выдачей информации на экран. Эк­ран будет выполнять "скроллинг" автоматически, но может быть остановлен клавишей "М".

CLEAR. Очищает текстовый буфер, но оставляет таблицу меток. Если вы ассемблируете длинную программу по частям, метки одной части могут потребоваться в другой. Эти метки мо­гут быть уничтожены только командой ассемблера "NEW". После того, как новая часть программы будет введена и проассембли-рована, новые метки добавляются к таблице.

CONTINUE. Строго говоря, это не команда, а ответ, кото­рый вы даете после входа в ассемблер из Бейсика (клавиша "С"). Альтернативная операция при входе из Бейсика — "N" (NEW).

 

ПРОЦЕДУРЫ ВВОДА/ВЫВОДА

SAVE — из ассемблера напрямую можно выгрузить тексто­вый или объектный буфер (клавиша "S"):

1. Текстовый буфер. Форма: SAVE "ИМЯ" TEXT. Длина име­ни до 10 символов, вместо "TEXT" можно дать "Т".  2. Объектный буфер. Форма: SAVE "ИМЯ" CODE. Здесь "CO­DE" не ключевое слово. Можно просто нажимать "С".

VERIFY — форма: VERIFY "ИМЯ". Если имя не задано; то операция выполняется для первой записи с ленты. Мы рекомен­дуем не выходить в Бейсик между "SAVE" и "VERIFY", так как может измениться адрес STKEND. Если это произойдет, то "VERIFY" почти наверняка не сработает.

LOAD — ассемблер загружает только текстовый буфер. За­пись любой программы, сделанная в Бейсике не загружается. Существуют два типа "LOAD":

1. LOAD "ИМЯ" N — здесь "N" означает "NEW" (новый). При этом старый текстовый буфер с таблицей меток стирается.

2. LOAD "ИМЯ" С — здесь "С" означает "CLEAR" (стереть). При этом очищается старый текстовый буфер, но таблица меток остается.

ПРИМЕЧАНИЕ: можно загрузить текстовый буфере кассеты через Бейсик, но он испортит таблицу меток и не даст работать ассемблеру. Текстовые файлы должны загружаться через ассем­блер.

Файлы объектного буфера сделаны так, чтобы иметь возмож­ность загружаться в компьютер через команду Бейсика LOAD""CODE. Если вы это выполните, то имейте в виду, что часть ассемблера может быть затерта (см. карту памяти).

Если имеется достаточный объем памяти, текстовый файл, записанный из 48К ассемблера, может быть загружен в 16К ас­семблер и ассемблирован. Если места окажется недостаточно, то появится сообщение "MEMORY FULL".

 

СООБЩЕНИЕ ОБ ОШИБКАХ

При работе с редактором наиболее вероятным сообщением возможно "MEMORY FULL". Оно выдается, когда строка, кото­рую вы собираетесь ввести, приводит к переполнению, т.е. к пе­ресечению текстового и объектного буферов.

Другие сообщения появляются при работе ассемблера. При этом автоматически изображается строка, содержащая ошибку.

INVALID ORG:

1. Если адрес "ORG" меньше, чем начало области бейсиков-ской программы, заданное значением системной переменной "PROG".

2. Если первая строка программы (исключая комментарии) не является заданием "ORG".

3. Если в программе более, чем одна строка, задает "ORG".

INVALID NUMBER:

Если десятичное число содержит нечисловой символ или не­правильно заданное шестнадцатсричное число.

INVALID ОР:

1. Если имя операции не распознается.

2. Если числовой операнд имеет значение, выходящее за пре­делы допустимого.

JUMP OUT OF RANGE:

Если переход JR или DJNZ производится по смещению, вы­ходящему за допустимые пределы: -128...+127.

MEMORY FULL

1. При вводе очередной строки, если в результате этого число­вой буфер или таблица меток затирают объектный буфер.

2. При ассемблировании, если объектный буфер затирает тек­стовый буфер или таблицу меток.

 

МОНИТОР СПЕКТРУМА

48К версия программы "EDITAS" имеет еще одну дополни­тельную команду для вызова программы "Монитор". Если вы хо­тите работать с обеими программами одновременно, мы реко­мендуем сначала загрузить "MONITOR" (версию 16К), а затем 48К версию "EDITAS". При таком подходе стек будет расположен выше ассемблера и не будет затерт объектным буфером. Чтобы обратиться к "Монитору" нажмите "N". После "ENTER" вы убе­дитесь, что "Монитор" присутствует. Имейте в виду, что при за­грузке большой программы объектный или текстовый буфер могут затереть программу "Монитор".


Экран БЕЙСИК и пр.

 

Объектный буфер

 

Свободны

 

Монитор

 

Свободны

 

 

 

8000 RAMTOP

 

ТЕКСТОВОЙ БУФЕР

 

"EDITAS"

 

СТЕК

 

ГРАФИКА ПОЛЬЗО­ВАТЕЛЯ

 

-

 

 

Для того чтобы войти в ассемблер из монитора, пользуйтесь командой "J" с адресом EE2D.

Когда обе программы загружены, если бейсиковского листин­га нет, то объем свободного пространства — 1 вместе с объектным буфером составляет 4306 байт, а объем свободного пространства — 2 совместно с текстовым буфером дает максимум 23360 байт.

Программа "Монитор" была выпущена раньше, чем "редак­тор/ассемблер", поэтому "Монитор" не может различать операн­ды ХН и XL, доступные для ассемблера.




СОДЕРЖАНИЕ:


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

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



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

Похожие статьи:
Наш гость - Новый электронный журнал "Увлечение" из Барнаула.
Игры - прохождение игры G.I.HERO.
Реклама - реклама от спектрумистов.
Реклама - Реклама от Алексея Жабина.
Interviews - Интервью с Jordan/Exodus, автором великолепных демок "Dies Irae", "Real Action".

В этот день...   23 ноября