Цитата Сообщение от NEO SPECTRUMAN Посмотреть сообщение
шоб быстрее было ЖО
дрочить через один вызов это тютю

ладно если бы ты сказал что точка входа плавающая и выдаются для программы в произвольно необходимом месте
тогда это было может быть и актуально
а так ось прибита к первым n байтам гвоздями...
В чём "быстрее"? Всё равно функция задаётся через какой-то регистр. Какая разница - иметь таблицу из 8 функций или из 256 ?
На фоне всего остального выигрыш в скорости практический нулевой.

256 функций - это таблица из 512 байт. Если её в отдельной странице сделать (а ОС в любом случае в отдельной странице) - то никаких проблем. Грубо говоря, любой системный вызов это нечто вроде:

Надо больше функций? Делаем таблицу больше. Примерно так.

Код:
;// гдето в коде ПО bc - номер системного вызова. Остальные регисты - параметры (или стек, не важно)
ld bc,#os_call_number
rst 8
.................

;// Системный рестарт (для примера RST8)
org 0x0008
// Вход
RST8_entry:
		call store_context_and_set_system_page
		// Сохранили всё, что надо для вызова и включили системную страницу с адреса 0xC000
		// считаем, что bc не изменяется при вызове
		
		// Вычисляем адрес обработчика системной функции
		ld	hl,#0xC000
		add	hl,bc
		ld	c,(hl)
		inc	hl
		ld	b,(hl)
		push	bc
		ret		// Переходим на обработчик

// Выход
RST8_exit:
		call restore_context_and_set_progpage
		ret
Чем поможет размазывание по рестартам - непонятно.