;================================================================================================================== ; IFDEF debug : if debug trace_msg1: db 'Set_keys OK',13,10,0 trace_msg2: db 'TestConf OK',13,10,0 trace_msg3: db 'take_mem OK',13,10,0 trace_msg4: db 'read_conf OK',13,10,0 trace_msg5: db 'Set_Ret OK',13,10,0 trace_msg6: db 'Set_Acex_Data OK',13,10,0 ; Чудо - увидеть это сообщение на железе endif : ENDIF ; ; ; ; ; Тут сидят переменные, константы и буферы ; Spec_Page equ 41h ; 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,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_30K_LOADING' ; флаг заливки конфы из кеша 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 port_1ffd_save: DB 0 ; Состояние порта 1FFD до всяких манипуляций 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 ;