Предполагается, что основной код обработчиков будет размещаться как раз не в original.tmp, а в отдельном модуле. В оригинал.тмп будет писаться только необходимый минимум для передачи управления куда надо и переходники для обработчиков. Но вообще при наличии достаточного места в original.tmp можно целиком селиться и там, это не принципиально. Под это дело планируется встроенный модуль-лоадер, чтобы, например, можно было добавить к биосу прогу (+вызов из сетапа) типа ezflash.exe не написав (в идеале) ни одной строчки на ассемблере.
насчет своб.места пока следующие мысли:
- взвалить задачу нахождения своб.места на программера -- поиском или принесением чего-либо в жертву и соотв. подсовыванием проге смещения и размера этой области.
- пробовать определенный набор известных мест, ессно проверять их на n-ое кол-во 00/FF. Сейчас весьма лакомой областью является большой массив нулей перед +E000h в F-Seg (т.е. 1E000h в original.tmp). Пока проверил примерно десяток авардов -- во всех перед E000h имеются нули.
- задействовать неиспользуемые menuitem'ы, если конечно таковые найдутся. Много места и не надо в принципе, если найдутся хотя бы несколько подходящих -- уже неплохо. Здесь также предусматривается определенный ручной режим, т.е. возможность принести в жертву какой-то menuitem по указанию пользователя, т.к. далеко не всегда программа может автоматически определить, что menuitem не нужен.
Пока мне бы пригодилась свежая инфа по управляющим последовательностям в сообщениях (BORDER, POS, etc.), т.к. они похоже со времен исходников 6го аварда немного поменялись. Сужу по тому, что на выходе дампера _en_code.bin есть некоторые строки с кракозябрами. Пока с ними не разбирался, может и просто какой баг, но вообще похоже на новые/изменившиеся управляющие структуры.
А что за ром патчер, где его взять можно? На сайте вроде только bios patcher нашел.
Предполагается, что основной код обработчиков будет размещаться как раз не в original.tmp, а в отдельном модуле. В оригинал.тмп будет писаться только необходимый минимум для передачи управления куда надо и переходники для обработчиков. Но вообще при наличии достаточного места в original.tmp можно целиком селиться и там, это не принципиально. Под это дело планируется встроенный модуль-лоадер, чтобы, например, можно было добавить к биосу прогу (+вызов из сетапа) типа ezflash.exe не написав (в идеале) ни одной строчки на ассемблере.
насчет своб.места пока следующие мысли:
- взвалить задачу нахождения своб.места на программера -- поиском или принесением чего-либо в жертву и соотв. подсовыванием проге смещения и размера этой области.
- пробовать определенный набор известных мест, ессно проверять их на n-ое кол-во 00/FF. Сейчас весьма лакомой областью является большой массив нулей перед +E000h в F-Seg (т.е. 1E000h в original.tmp). Пока проверил примерно десяток авардов -- во всех перед E000h имеются нули.
- задействовать неиспользуемые menuitem'ы, если конечно таковые найдутся. Много места и не надо в принципе, если найдутся хотя бы несколько подходящих -- уже неплохо. Здесь также предусматривается определенный ручной режим, т.е. возможность принести в жертву какой-то menuitem по указанию пользователя, т.к. далеко не всегда программа может автоматически определить, что menuitem не нужен.
Пока мне бы пригодилась свежая инфа по управляющим последовательностям в сообщениях (BORDER, POS, etc.), т.к. они похоже со времен исходников 6го аварда немного поменялись. Сужу по тому, что на выходе дампера _en_code.bin есть некоторые строки с кракозябрами. Пока с ними не разбирался, может и просто какой баг, но вообще похоже на новые/изменившиеся управляющие структуры.
А что за ром патчер, где его взять можно? На сайте вроде только bios patcher нашел.