; Тут сидят переменные, константы и буферы Help_Msg: DB 13,10 DB 'LDConf ver. ',Ver_ID,' ',__DATE__,13,10 DB 'Программа для загрузки и тестирования конфигураций Sprinter 2000',13,10,13,10 DB 'Параметры через пробел:',13,10 DB 'a - оставить загружаемую конфу после выхода',13,10 DB 'c - после этого ключа должен идти файл конфы',13,10 DB 'e - EXE файл для запуска после ресета в конфу',13,10 DB 'x - не проверять файл конфы на валидность заголовка и размер',13,10 ;DB 'l - страшный ключ, залитая конфа останется до перезаливки или выключения ПК',13,10 DB 13,10 DB 'Если указано только имя конфы, то: загрузка конфы -> ресет ->',13,10 DB 'восстановление дефолтной конфы -> ресет -> выход. Пока так.',13,10,13,10 DB 'Программа была зачем-то написана Анатолием Белянским. ',13,10 DB 'Не пишите мне сюда: ',e_mail,' ))))',13,10,13,10 DB 0 ; ; Сообщения об ошибках error_Vmode: DB 'Ошибка определения режима экрана!',13,10,0 error_ComStr: DB 'Ошибка в параметрах коммандной строки!',13,10,0 error_confFile: DB 'Ошибка файла прошивки!',13,10,0 error_freeMem: DB 'Ошибка выделения памяти!',13,10,0 error_readConf: DB 'Ошибка чтения файла прошивки!',13,10,0 WellDone: DB 'Well done!)))',13,10,0 ; ;-----------------; Эти указатели должны идти друг за другом ConfSize: DB #4F,#E7 ; #E74F - правильный размер прошивки 59215 (обратный порядок!) 12288+16384+16384+14159 MaxConfSize: DB #E0,#EE ; #EEE0 - максимальный размер прошивки 61152 (обратный порядок!) для загрузчика конфы в биос. IsEXE: DB 'EXE',0 ; Расширение запускаемого файла по ключу 'E' IsEXElength EQU $ IsNormConf: DB #FF,#FF,#62,#7B,#39,#00,#FF,#FF ; 8 байт заголовка конфы IsNormConfLen EQU $ ; Тут ключи запуска key_buff EQU $ c_key: DB 0 ; ConfHandler1 e_key: DB 0 ; ExeHandler x_key: DB 0 ; ключ отмены теста заголовка прошивки и привязки к размеру 1K30 a_key: DB 0 ; ключ отмены загрузки дефолтной конфы после выхода l_key: db 0 ; ключ для разных тестов key_buff_end EQU $-1 ; тут хендлеры открытых файлов FirstHandler EQU $ ; ??? убрать лишнее ??? ConfHandler: DB 0 ; тестируемая конфа (c_key) ExeHandler: DB 0 ; запускаемый EXE (e_key) LastHandler EQU $ ; ??? убрать лишнее ??? ;NowHandler: DB 0 ; хендлер текущего файла ConfMultKeys: DB #FF,#FF,'I','M' ; Если воткнуть сюда строку 'IM', то что-то будет ;-----------------; ; Reload_String: DB ACEX.RELOAD_STRING ; флаг заливки конфы из кеша VMod: db 0 ; Режим экрана VModPage: db 0 ; Страница экрана ram_blk_id: DB 0 ; Идентификатор блока памяти ;SP_Save: DB 0,0 ; Тут храним стек для перезагрузки dss_line: DB 0,0 ; указатель на DOS строку запуска LDConf NextParameter: dw 0000 ; Следующий параметр для .GetParam ; ; Разные буффера (.)(.) BufferEXE: DB 0,0,0,0 ram_pages: DB 0,0,0,0,0 ; Выделенные BIOS'ом блоки памяти (последний #FF) ;page0_save: DB 0 ; Тут храним текущую страницу PAGE0 (должна идти после ram_pages) page1_save: DB 0 ; Тут храним текущую страницу PAGE1 page2_save: DB 0 ; Тут храним текущую страницу PAGE2 (должна идти после ram_pages) page3_save: DB 0 ; Тут храним текущую страницу PAGE3 page0_def db 0 page1_def db 0 page2_def db 0 page3_def db 0 EXEfileBuff equ $ ; Тут храним путь до запускаемого после ресета EXE Buffer EQU EXEfileBuff+256 ; BLOCK 255,0 ;