|
Системные переменные - в таблице приведены некоторые системные переменные TR-DOS.
|
НЕКОТОРЫЕ СИСТЕМНЫЕ ПЕРЕМЕННЫЕ TR-DOS v5.01
В скобках [ ] даны значения при инициализации, соответственно, если DOS стартовала без диска в дисководе / с диском / и в процессе работы._
DEC |
HEX |
ЗНАЧЕНИЯ |
23734 |
#5CB6 |
15 байт - стандартная область каналов CHANS ^S,R: по 2 байта - адреса процедуры вывода из системы, ввода в систему и байт-имя канала (К, S, R). В отличие от стандартных, изменен адрес в канале R: (23746) =#C9, так что адрес обработки ошибок канала R=#15C9, вместо #15C4 (аналогично в области DOS CHANS - 23858).Замена значения (#5CC2) с #C9 (RET) на #C3 (JP ?), [2 байта адреса] ведет к автостарту (по адресу) файла CODE после загрузки. При подключённом INTRFACE1 байт 23734=#00 |
23734 |
#5CB6 |
[2548,4264 (#09F4,#10A8)] K |
23739 |
#5CBB |
[2548,5572 (#09F4,#15C4)] S |
23744 |
#5CC0 |
[3969,5577 (#0F81,#15C9)] R |
23746 |
#5CC2 |
байт=#C9.Используется для вызова подпрограмм из DOS |
23752 |
#5CC8 |
байт - режим работы диска "A" [#FF/#??] |
23753 |
#5CC9 |
байт - режим работы диска "B" [#FF/#??] |
23754 |
#5CCA |
байт - режим работы диска "C" [#FF/#??] |
23755 |
#5CCB |
байт - режим работы диска "D" [#FF/#??]
Ячейки инициализируются только в DOS 5.01 [#FF, если дисковод не
инициализирован; иначе %?00000??:
бит 7 = 1 для DD, = 0 для SD;
бит 1 = 1 для DS, = 0 для SS;
бит 0 = 0, если DD используется в режиме SD] |
23756 |
#5CCC |
байт - Номер сектора, выводимого командой CAT [#0D] |
23757 |
#5CCD |
байт - готовности дисковода (регистр состояния ВГ93) [#80/#00] |
23758 |
#5CCE |
байт - #00 операция чтения, #FF оператор записи [#00] |
23759 |
#5CCF |
2 байта - адрес WORKSP при работе MOVE, COPY, LIST |
23761 |
#5CD1 |
2 байта - номер строки автостарта при SAVE BASIC |
23764 |
#5CD4 |
байт - номер стертого файла при работе MOVE |
23765 |
#5 CD 5 |
байт - номер сектора стертого файла при MOVE |
23766 |
#5CD6 |
байт - номер дорожки стертого файла при MOVE. Для форматирования обнулить, по окончании будет число дефектных секторов (аналогично при проверке дорожки процедурой #15 команды #3D13). Способ загрузки для литеры #0E (регистр A). Равен #FF, если команда не выполнена |
23767 |
#5CD7 |
2 байта - адрес. После инициализации указывает на счетчик [23771], после записи CODE - на начальный адрес в памяти. При вызове из BASICa содержит адрес строки, из которой произошел вызов. Кроме того, после проверки типа дисковода #5CD7 содержит число дорожек (?). При выполнении форматирования #5CD7 содержит число дорожек для форматирования, а #5CD8- флаг VERIFY: при #5CD8 , не равным 0, форматированная дорожка не проверяется |
23769 |
#5CD9 |
2 байта - адрес символа для интерпретации, аналогично CH_ADD. После инициализации указывает на [23869]. После записи файла CODE содержит длину записанного файла. При форматировании переменная #5CDA=#80, если дискета двусторонняя (иначе форматирована только SIDE1). Для литеры #0E хранит адрес загрузки файла |
23771 |
#5CDB |
2 байта - счетчик загрузки; после операций с файлами содержит длину загруженной/записанной части файла (?). При MOVE содержит текущие номера сектора и дорожки. При LIST байт #5CDB содержит номер текущего канала вывода |
23773 |
#5CDD |
16 байт заголовка файла; в той же форме, как и в каталоге |
23773 |
#5CDD |
8 байт - имя файла |
23781 |
#5CE5 |
1 байт - тип файла (B, C, D, #) |
23782 |
#5CE6 |
2 байта - адрес START для CODE или полная длина для BASIC |
23784 |
#5CE8 |
2 байта - длина файла или программной части для BASIC |
23786 |
#5CEA |
1 байт - объем файла в секторах |
23787 |
#5CEB |
1 байт - номер начального сектора файла (#00.. ,#0F) |
23788 |
#5CEC |
1 байт - номер начального трека файла (#00.. ,#9F) |
23789 |
#5CED |
7 байт - параметров файла при копировании с дисковода на дисковод |
23789 |
#5CED |
2 байта - адрес START для CODE или полная длина для BASIC |
|
|
|
23791 |
#5CEF |
2 байта - длина файла или программной части для BASIC; при наличии INTERFACE 1 байт=#01 |
23793 |
#5CF1 |
1 байт - объем файла в секторах |
23794 |
#5CF2 |
1 байт - номер начального сектора файла (#00.. ,#0F) |
23795 |
#5CF3 |
1 байт - номер начального трека файла (#00.. ,#9F) |
23796 |
#5CF4 |
байт - счетчик загружаемых секторов (номер сектора, обрабатываемый контроллером). После операций с файлами содержит номер следующего сектора, что часто используется при создании загрузчиков |
23797 |
#5CF5 |
байт - счетчик загружаемых дорожек; после операций с файлами содержит номер следующей дорожки |
23798 |
#5CF6 |
байт - дисковод для временной операции (0-3) [#00] (т.е. когда задается имя, например, "B: name"). Для адресации DOS использует двухбайтное число, поэтому байт #5CF7=#00 |
23799 |
#5CF7 |
байт - при возврате из DOS (15616) обнуляется |
23800 |
#5CF8 |
байт - дисковод-источник при операции с двумя файлами (#00-#03) [#00]; #5CF9=#FF, если канал открыт (?) |
23801 |
#5CF9 |
байт - дисковод-приемник при операции с двумя файлами (#00-#03) [#00]; тип операции: LOAD=#00, VERIFY=#FF [#00] (при #FF вместо команд загрузки будет выполняться сравнение) |
23802 |
#5CFA |
байт - время перемещения головки дисковода "A" |
23803 |
#5CFB |
байт - время перемещения головки дисковода "B" |
23804 |
#5CFC |
байт - время перемещения головки дисковода "C" |
23805 |
#5CFD |
байт - время перемещения головки дисковода "D"
[#FF, если дисковод не инициализирован; иначе #08-#0B; #08 - максимальная скорость]. Используются только в DOS 5.01, в других версиях скорость не изменяется (только быстрая), но значение #08 используется как признак инициализации дисковода |
23806 |
#5CFE |
байт - команда контроллера ВГ93 , задаваемая DOS (см.#3F18).Для команд чтения #5CFE=#80(%1000 0000), для команд записи #5CFE=#A0 (%1010 0000) [#00] |
23807 |
#5CFF |
байт - номер сектора+1 для ВГ93, задаваемый DOS (см.#3F0D) |
23808 |
#5D00 |
2 байта - адрес буфера DOS, в который грузится сектор. Указывает на адрес DOS-CHANS; эта область каналов вместе с программой при загрузке временно сдвигается на 257 ячеек памяти. При открытом дисковом файле указывает на начало BASIC-области (#5E5F) [#00/#00/#5D25] |
23810 |
#5D02 |
2 байта - временно сохраняется регистр HL. После инициализации указывает на (E LINE+1 ?) [#5D3D] (сохраненный регистр HL?) |
23812 |
#5D04 |
2 байта - временно сохраняется регистр DE [#317C] |
23814 |
#5D06 |
байт - число байт, по которому происходит поиск имени файла в каталоге (8-имя + 1-тип) [#09] |
23815 |
#5D07 |
байт - результат MOVE: #00 - no files, <>#00 - O.K.; счетчик удаленных файлов в процедуре #12 подпрограммы #3D13 |
23816 |
#5D08 |
байт - сохраняется 1-я буква имени файла при MOVE (и ERASE в процедуре |
|
|
#12 подпрограммы 3D13) |
23820 |
#5D0C |
байт - признак выделения буфера ввода / вывода: #00 - выделен, #FF - нет [#FF] (см. #5D00) |
23821 |
#5D0D |
байт - номер файла при копировании с двумя дисководами |
23822 |
#5D0E |
байт - при #FE сообщения DOS на экран не выводить, при #FF - признак работы BASICa, при другом - TR-DOSa |
23823 |
#5D0F |
байт - код ошибки TR-DOS при вызове из BASICa (см. ранее), а также номер файла в каталоге при его поиске литерой #0A процедуры #ЗD13 [#00] |
23824 |
#5D10 |
старший байт ошибки при вызове 15616 или процедуры (например, литеры чтения файла #0E процедуры #3D13); необходимо предварительно записать #00 [#00/#FF] |
23825 |
#5D11 |
2 байта - адрес строки команды TR-DOS: при вызове из BASICa указывает на CH_ADD, при работе в 15616 - на буфер редактора E_LINE [#5D3C]; aдрес строки команды TR-DOS: при вызове из DOS = E-LINE; из BASIC = CH-ADD |
23827 |
#5D13 |
2 байта - адрес, указывает на старший адрес стека, содержащий адрес процедуры обработки ошибок ERR SP [#FF54]; копия ERR-SR; если старший байт = #AA, выполняется команда RUN "boot", а в #5D19 код #FE |
23829 |
#5D15 |
байт - режим DOS: при #FF - выполнение команды DOS из BASICa, при #00 -работа в DOS |
23830 |
#5D16 |
байт - копия системного регистра (режим работы контроллера, обычно номер дисковода + #3C/#2C см. далее описание порта #FF) |
23831 |
#5D17 |
байт - признак инициализации DOS: если = #00, при входе в DOS выводится заставка и выполняется команда RUN "boot", при = #AA - нет (повторный вход) [#00/#AA]; при = #FF, не дает ошибку при чтении неверного адреса |
23832 |
#5D18 |
используется если подключен INTERFACE 1, при этом #5D18=#FF [#00] |
23833 |
#5D19 |
байт - номер дисковода по умолчанию(#00...#03)[#00] |
23834 |
#5D1A |
2 байта - адрес подпрограммы возврата из TR-DOS [#02C0] (встречается также #0201 ?) |
23836 |
#5D1C |
2 байта - хранят текущее значение стека SP [#FF3E] |
23838 |
#5D1E |
байт - номер файла в каталоге, если он найден [#00] |
23840 |
#5D20 |
3 начальных байта последней командной строки |
23843 |
#5D23 |
байт - объем памяти для MOVE (в блоках, min 4KB) |
23845 |
#5D25 |
байт - начало временного буфера DOS [#FF] |
23846 |
#5D26 |
20 байт - область каналов CHANS-DOS K, S, R, P; аналогичны стандартным по адресу #5CB6 (+ канал принтера): |
23846 |
#5D26 |
[2548,4264 (#09F4,#10A8)] K |
23851 |
#5D2B |
[2548,5572 (#09F4,#15C4)] S |
23856 |
#5D30 |
[3969,5577 (#0F81,#15C9)] R * |
23861 |
#5D35 |
[2548,5572 (#09F4,#15C4)] P |
23866 |
#5D3A |
байт-разделитель [#80] |
23867 |
#5D3B |
Начало BASIC-программы, если не открывались дисковые файлы (см. далее) |
|
|