при нажатии кнопки NMI невозможно определить что было включено в нулевой банке. поэтому при выходе монитор всегда устанавливает банку rom 1 (basic48)
вход по rst 8, обрабатывается только для basic48/basicc128. tr-dos входит через бейсик 48. соттветственнот откуда зашли по rst, туда и вышли.

Цитата Сообщение от izzx Посмотреть сообщение
А есть пример как при включенном ОЗУ 0 вызвать ту самую функцию RST?
в адресах #4000-#FFFF должна сидеть процедурка обеспечивающая такой вход
стэк тоже должен быть выше #4000
типа такой:
Код:
bRST8	ex	(sp),hl
	push	af
	ld	a,(hl)
	inc	hl
	ld	(xxx),a
	pop	af
	ex	(sp),hl
	push	bc
	push	af
	ld	bc,#1FFD
	xor	a
	out	(c),a
	ld	b,#7F
	ld	a,#10
	out	(c),a
	pop	af
	pop	bc
	rst	#08
xxx	db	0
	push	bc
	push	af
	ld	bc,#1FFD		
	ld	a,#01
	out	(c),a
	pop	af
	pop	bc
	ret
И сразу пример минимальной работы с ХДД. Вот загрузился первый сектор с раздела ЦПМ и начинает что делать? Читать следующий сектор
C=36 ($hddrd)
или сначала инициализация диска и проверка что за раздел подключен?
С=35 ($hddmount)
Я думаю, если смонтирован раздел ЦПМ и мы с него начали грузится, то можно сразу читать секторы и ни о чём не заботится больше.
Но тут получится у нас будет подключен один или максимум четыре раздела ХДД. Может хватит и одного для начала, на максимальные 8 мегов.
35я не нужна
36я ведет отсчет не в абсолютных секторах, а относительно начала подраздела
поэтому de=0001, hl=адрес куда читать, b-сколько секторов (512б) читать и понеслась