[an error occurred while processing this directive]
; Структура памяти FORTH системы:
; 0 - FFF Системная область
; 1000- 1FFF Область текстовых страниц( 2 страницы )
; 2000- 9FFF Область программ и библиотечных модулей
; A000- BFFF Область для подключения ДОП памяти
;
; D000- DFFF Верхний FORTH ( основное состояние )
;*D000- DFFF Область стеков графики и текста( ДОП сост. )
; E000- FFFF Продолжение FORTH
;
; Структура системной области
; 0 - FF Системная область процессора( 0 страница )
; 100- 1FF Аппаратный стек
; 200- 2FF Рабочая область менеджера памяти
; 300- 3FF Буфер ввода( TIB )+ буфер клавиатуры
; 400- 4FF Параметры обработчика слоты 1
; 500- 5FF - 2
; 600- 6FF - 3
; 700- 7FF - 4
; 800- 8FF - 5
; 900- 9FF - 6
; A00- AFF Стек FORTH
; B00- BFF Стек возвратов
; C00- CFF - SYSBUF( 1K )
; D00- DFF ! Область для буферов обработчиков
; E00- EFF ! ( сеть, принтер, дисковод и т.д. )
; F00- FFF -
; Определение стековых сегментов---------------------
MStack equ ¤200 Стек для памяти
AStack equ ¤a00 Адрес стека данных ( арифметического)
RuStack equ ¤100 Адрес стека возвратов( ВЕРХ )
TIB equ ¤300 TIB
SysBuf equ ¤c00 Начало области буферов для слотов
FUP equ ¤D000 Адрес начала форта
ProgBuf equ ¤a000 Адрес для буферов программ
ProgAdr equ ¤2000
; Ячейки системной области для FORTH------------------
StreamPtr equ ¤80 Ячейка для хранения адреса очереди
RetPtr equ ¤82 Ячейка для адреса стека возвратов
MemAdr equ ¤84 Временная для адреса
MemAdr1 equ ¤86 То же
SecTick equ ¤88 Ячейка для подсчета тиков таймера
Seconds equ ¤89 Ячейка для подсчета секунд
Minuts equ ¤8a минут
Hours equ ¤8b часов
DayChange equ ¤8c Сигнал, что день изменился
Vrem equ ¤90 Просто временные ячейки
Signum equ ¤a4 Знак для математики
CurrSymbol equ ¤a6 Символ под курсором
CursorWait equ ¤aa
IntFlag equ ¤ab
IntVars equ ¤ae Область данных для прерываний
; Ячейки для экранных процедур
ScreenParms equ ¤c8
EndPos equ ¤c8
BegPos equ ¤ca
CurrPos equ ¤cc
WinX equ ¤ce
WinY equ ¤d0
WinWidth equ ¤d2
WinDepth equ ¤d4
PosX equ ¤d6
PosY equ ¤d8
Atribute equ ¤da
Mode equ ¤dc
Page equ ¤de
ScreenOn equ ¤e0
XCoor equ ¤e2
YCoor equ ¤e4
Block5On equ ¤e6
; Ячейки для убыстрения графики
Width1 equ ¤e8 Ширина окна в байтах
StrLen equ ¤ea Длина строки в байтах
Mask equ ¤ec Маска для перехода по банкам
HowSPut equ ¤ee Признак- как класть символы
OffsFont equ ¤f0 Смещение в SYSMEM где блок фонтов
; Переменные для связи системы с библиотеками------------
;
; WORKSLT- 0 Переменная для указания адреса рабочей
; области слоты( 400, 500 и тд )
; SW - 0 Переменная для временных операций слотов
WorkSlt equ ¤50 Адрес рабочей области текущего устр.
SW equ ¤52 Область для врем. параметров слоты
ID equ ¤60 Идентификатор текущей программы
MemBlock equ ¤61 Номер блока памяти для текущ. прогр.
NmiAdr equ ¤62 Временная ячейка для цепочки NMI
IrqAdr equ ¤64 Временная ячейка для цепочки IRQ
DevNext equ ¤66 Временная ячейка для цеп. устройств
TxtStack equ ¤68 Указ. на текущий адрес текст. стека
GrhStack equ ¤6a -----------------------графич. стека
; Определение констант программы------------------------
TRUE equ ¤ff
FALSE equ ¤0
LATA equ ¤a0
LATZ equ ¤df
KAVICHKI equ ¤a2
MINUS equ ¤ad
; Ошибки системы----------------------------------------
ONZERO equ ¤0 Деление на 0
ERRMEM equ ¤1 Нехватка памяти!!!
SYNTERR equ ¤2 Синтаксическая ошибка
NOTCOMP equ ¤5 Не при компилировании
NOTPAIR equ ¤3 Не парны операторы
STACKNOTEQ equ ¤4 Стек не очищен после компилирования
COMPONLY equ ¤6 Данный оператор только при комп.
NOTFOUND equ ¤7 Слово не найдено
CANTFORGET equ ¤8 Не могу забыть данное слово
ERRNULL equ ¤9 Неправильное применение :
ERRID equ ¤a Неправильный идентификатор программы
NOTAVAIL equ ¤b Оператор недоступен
NOFUNC equ ¤12 Нет такой функции у устройства
FATERR equ ¤13 Фатальная ошибка
NOACTIVEDEV equ ¤14 Нет активных устройств
NOFILE equ ¤15 Нет такого файла
ERRFILE equ ¤16 Ошибка в файле( в TS )
CANTLOAD equ ¤17 Не можем создать цепочку загрузки
NODSKMEM equ ¤18 Нет памяти на устройстве
; Приоритеты устройств----------------------------------
TEACID equ ¤1
SHUGID equ ¤2
NETID equ ¤3
MEMID equ ¤4
PRNID equ ¤5
MODID equ ¤6
; Дополнительные константы процедур консоли-------------
TEXT64 equ ¤0
TEXT32 equ ¤1
MONOGRLO equ ¤2
MONOGRHI equ ¤3
COLORGRHI equ ¤4
RIGHTKEY equ ¤95
DOWNKEY equ ¤9a
LEFTKEY equ ¤88
UPKEY equ ¤99
ENTERKEY equ ¤8d
BELL equ ¤87
ESCAPE equ ¤9b
BLANK equ ¤a0
DOT equ ¤ae
; Дополнительные аппаратные константы--------------------
KeyCore equ ¤c000
RusLatCore equ ¤c063
ResetKey equ ¤c010
SysSlot equ ¤c00 Адрес для промежуточного чтения
; Дополнительные константы для сопряжения с BEST
SLOT EQU ¤1F Paзъeм
DRIV EQU ¤20 Дpaйвep
TRACK EQU ¤21 Tpeк
SECT EQU ¤22 Ceктop
BUFR EQU ¤23 Буфep
INBUF EQU ¤B00
POLSTR EQU ¤1E
DOSCOM EQU ¤26E
;-------------------------------------------------------
;
; Описание заголовков слотовых описаний( обработчика
; слоты- ¤400 )
;
;-------------------------------------------------------
; Смещение Значение
; ( Обязательная часть )
; SlotHeader
; 0 Код устройства на слоте
; 1 Номер слоты *10h
; 2,3 Адрес обработчика слоты
; *Данная часть представляет собой заголовок
; данных для обработчика( если на слоте > 1
; подустройства, то данных заголовков должно быть
; ровно столько же )
; DeviceHeader
; 0( 4 ) Код логического устройства( 0- нет )
; 1( 5 ) Смещение до следующего устройства( 0- нет )
; 2( 6 ) Занятость устройства( id захватчика, 0- нет )
; Все, что находится ниже на усмотрение разработчика
; и называется
; DeviceParms
;---------------Общие константы для ---------------------
;
; TTTTT EEEEE AAA CCC
; T E A A C C
; T EEE A A C
; T E AA AA C
; T EEEEE A A A CCC
;
;--------------------------------------------------------
; Описание DeviceParms для TEAC
; 0( 7 ) Команда выбора привода
; 1,2( 8,9 ) Физический адрес обращения
; 3( 10 ) Номер дорожки на устройстве
; 4( 11 ) Число шагов до нужной дорожки
; Описание области SW для TEAC( устанавливается SETLOGDEV)
;
; 0 Трек для обращения
; 1 Сектор для обращения
; 2 Смещение в описании слоты
; 3 Номер слоты *10
; 4 Длина блока данных
; 5,6 Адрес куда или откуда блок( в памяти )
; Константы для TEAC
TeacState equ ¤c081
TeacRK equ ¤c082
TeacCtrlReg equ ¤c083
TeacReadReg equ ¤c084
TeacWritReg equ ¤c085
TeacSyncReg equ ¤c086
TeacReset equ ¤c087
TeacWriteSyn equ ¤c088
TeacStep equ ¤c089
TeacClrSync equ ¤c08a
Attempts equ ¤40 Число попыток для чтения
[an error occurred while processing this directive]