Цитата Сообщение от VELESOFT
But version in "CODE" format in ESXDOS crash (show black screen and crash).
Это может происходить, если до запуска code-версии TRDN в системной переменной 23613 окажется некорректное значение.

Цитата Сообщение от VELESOFT
Is any difference in TR-DOS calling between classic TRDN and CODE TRDN ?
Различия только в процедурах старта и из основного кода code-версии убраны некоторые процедуры.

Цитата Сообщение от VELESOFT
If TRDN jump to any new adress in tr-dos rom, please send me list of this adress.
Вот, попробовал составить полный перечень адресов ПЗУ, вызываемых всеми версиями TRDN (кажется ничего не забыл ):

В ПЗУ 48К (ROM 1) используются вызовы по следующим адресам:
6629 - удаление системных областей;
7863 - установка RAMTop (адрес процедуры обработки ошибки берётся там, куда указывает переменная 23613!).
13251 - LDIR \ RET.


В ПЗУ TR-DOS используются вызовы по следующим стандартным адресам:
15635 и 15663. Такаже, при дисковой ошибке типа
Retry/Abort/Ignore, происходит возврат через адрес 16254 (или 16244 в TR-DOS V5.01).
Кроме того ТОЛЬКО для версий 5.03 и 5.01 используются еще пара вызовов: 12225 (или 12151 в TR-DOS V5.01) и 697 (или 683 в V5.01).


В процедуре старта code-версии и загрузчике основной версии делается следующее: очищается область BASIC-программы, упорядочивается область информации о каналах, устанавливается RAMTop на адрес #5FFF, устанавливаются некоторые системные переменные: цвет экрана (белым по черному), стандартные клавиатурные задержки, адрес шрифта, адрес области UDG и другие.

Привожу часть листинга стартовых процедур для code-версии:
Код:
/.../
	LD IY,23610
	XOR	A
	LD	(23697),A;P_FLAG
	LD	A,7
	LD	(23693),A;ATTR_P
	LD	(23624),A;BORDCR
;Есть ли переменные TR-DOS?
	LD	HL,(23631)
	OR	A
	LD	BC,23845
	SBC	HL,BC
	JR	NC,$+4
	RST	8
	DEFB	1
;
;Упорядочивание информации о каналах
	LD	HL,(23631);CHANS
	LD	DE,21
	ADD	HL,DE
	EX	DE,HL
	LD	HL,(23635);PROG
	OR	A
	SBC	HL,DE
	JR	NC,$+6
	LD	(23568),HL;Надо для монитора "TURBO90"!
	RST	0
	LD	C,L
	LD	B,H
	EX	DE,HL
	CALL	NZ,6632;Удаление систимной области
	LD	HL,5551;Данные каналов
	LD	DE,(23631);CHANS
	LD	BC,15
	LDIR
	EX	DE,HL
	LD	DE,5
	ADD	HL,DE
	LD	(HL),#80
	LD	HL,5574;Данные связей
	LD	DE,23568;STRMS
	LD	BC,14
	LDIR
	EX	DE,HL
	LD	B,25
	LD	(HL),C
	INC	HL
	DJNZ	$-2
	LD	(HL),#3C;CHARS
;
;Очистка BASIC-области и установка значения RAMTOP
	LD	HL,(23635);PROG
	LD	(23627),HL;VARS
	LD	SP,(23613);ERR_SP
	LD	HL,#1303
	EX	(SP),HL
	LD	BC,#5FFF;RAMTop=24575
	CALL	7863;Устан.RAMTop
	LD	BC,#FFFE
	XOR	A
	OUT	(C),A
;
/.../
; Далее следуют процедуры, обеспечивающеи релоцируемость:
определяется адрес загрузки и код переносится на рабочий адрес.
;
;Устан.необход.сист.переменных
	LD	HL,#0040
	LD	(#5C38),HL;RASP
	LD HL,#219
	LD (23561),HL;REPDEL
	LD	HL,#FF58
	LD	(#5C7B),HL;UDG
	XOR A
	SBC	HL,HL
	LD	(23623),A;SUBPPC
	LD	(23694),A;MASK_P
	DEC	A
	LD	(23610+54),A;b5=1 сигнал 48K
	LD	(23610),A;ERR_NR
	LD	(23680),HL;PR_CC
	LD	(23621),HL;PPC
	LD	(23696),HL;MASK_T,P_FLAG
	LD	(23728),HL;NMIADD
	LD	(23823),HL
	LD	(23799),HL
	LD	A,2
	LD	(23659),A;DF_SZ
	LD	A,9
	LD	(23814),A
	LD	A,201
	LD	(23746),A
	LD	A,(23798)
	AND	%11
	LD	(23833),A
	RES	4,(IY+1)
;Установки для курсора:
	RES 3,(IY+48);Устан. курсора:[L].
	RES 4,(IY+48);Не [K].
	SET 2,(IY+1);[L], а не [K].
	SET 3,(IY+1);Ввод не [K].
;
;Проверка на 128K.
	LD	A,#10
	LD	HL,#C011
	LD	BC,#7FFD
	OUT	(C),A
	LD	(HL),B
	OUT	(C),L
	LD	(HL),A
	OUT	(C),A
	CP	(HL);Z=0,если 128K
	LD	(23388),A
	JR	Z,$+6
	RES	5,(IY+54);сигнальный бит - 128K
;
;Очистка области на случай, если не загрузится каталог диска
	LD	HL,#6000
	LD	(HL),L
	LD	D,H
	LD	E,L
	INC	DE
	LD	BC,2304+487
	LDIR
	DEC	H
	DEC	H
	LD	(HL),#10
	LD	A,L
	SUB	5
	LD	L,A
	LD	(HL),1
;Загрузка каталога диска
	LD	SP,(23613)
	LD	HL,RUN1
	EX	(SP),HL
	LD	A,(23833)
	LD	C,1;Выбор дисковода
	CALL	15635
	LD	C,#18;Настройка на диск
	CALL	15635
	LD	HL,#6000;Чтение каталога диска
	LD	DE,0
	LD	BC,#1005
	CALL	15635
RUN1	LD	HL,0
	LD	(23823),HL
	LD	A,255
	LD	(23610),A
	CALL	STPDSK
/.../
; Далее происходит запуск TRDN.
;------
;Процедура останова дисковода (для TR-DOS 5.03 или 5.01).
STPDSK	LD	HL,19
	LD	C,L
	CALL	15635
	LD	A,(23779)
	CP	#BD
	JR	NZ,$+10
	LD	HL,12151
	LD	DE,883
	JR	$+11
	CP	7
	RET	NZ
	LD	HL,12225
	LD	DE,697
	CALL	stpdsk
	EX	DE,HL
	LD	A,(23830)
	XOR	1
	CALL	stpdsk
	LD	A,(23830)
stpdsk	PUSH	HL
	JP	15663
Прошу прощения за десятичные адреса в моем сообщении - они содержатся в той литературе, которую я обычно использую при кодинге.