[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]