LD для команд использует .EXIT с запуском командного файла, при этом в 510 пишет длину, в 512 и далее строки. А .CHAIN начиная с 510 принимает имя программы - так видимо LD сам себя запускает.
Не догма, но правила нужно соблюдать
Если не нужна процедура инсталяции, то 200/202 лучше не трогать или забить парой RETURN.
Если не нужны команды SET, то 400 обязан содержать 0, а все остальное можно пользовать (драйвер VS так делает - у него большая процедура инсталяции перепрыгивает через 400 и идет дальше.
Маленький хинт: драйвер не ограничен двумя блоками для обработки команд SET.
Можно использовать область блока #1 как оверлейный буфер и подгружать нужное (пример можно посмотреть в исходниках SL, LD и других).
- - - Добавлено - - -
.CHAIN начиная с 510 должен содержать имя программы для передачи.
- - - Добавлено - - -
Вообще, передавать себе управление через .CHAIN необязательно.
В принципе можно прочитать код программы в память начиная с 1000 (все реквизиты в SET хандлере мы для этого имеем, а канал 17 открыт на файле драйвера), а потом передать управление в нужное место.
Правда если памяти совсем мало свободной - для такого маневра может не хватить места
- - - Добавлено - - -
Ну и еще что следует помнить - это то, что формат команды SET не ограничивается одной настройкой в команде.
Соответственно там где подразумевается .EXIT/.CHAIN стоит делать проверку и предупреждать что часть команды будет проигнорена (пример есть в SL).






Ответить с цитированием
Размещение рекламы на форуме способствует его дальнейшему развитию 
