Может быть "System PRogramm"-файлы это что-то типа подгружаемых драйверов в формате, позволяющем грузить их в любой адрес памяти...
Может быть "System PRogramm"-файлы это что-то типа подгружаемых драйверов в формате, позволяющем грузить их в любой адрес памяти...
Попробовал классику mdos31, оригинальный t72 и упомянутый Усковым mdos311 (BIOS 3.11.F.11) - все они по B SID грузят SID.SPR и все реагируют на B без аргумента печатью ерунды. Пара попробованных досов Филиппова (F51 и F14.3) на B без аргумента реагируют просто возвратом в командную строку, в варианте с аргументом успешно грузят.
А вот os-t72kd2.rom похоже при B c аргументом (когда на диске реально есть такой файл с расширением SPR) портит диск. В таком случае определенно лучше убрать эту команду.
Последний раз редактировалось ivagor; 09.04.2020 в 08:55.
Improver(09.04.2020)
Надо будет сравнить МДОСы Филипова и Т72, что там было пропатчено, и обновить МДОС в Т-72.
А какие именно? Там в МДОСе есть команды: <A>, <B>, <D>, <E>, <K>, <O>, <U>, кроме того, есть цифровые команды пользователя в БДОСе:
- команда "0" устанавливает параметры ввода/вывода
- команда "1" запись файла из оперативной памяти на диск
- команда "5" переименовывает файлы
- команда "8" проверка/форматирование электронного диска
- команда "9" (доб.) назначение дискет НЖМД на диски А: и Б:
Или есть ещё секретные хитроспрятанные команды?
- - - Добавлено - - -
Это моё безобразие... Для отвязки Т-72 от обязательной необходимости наличия дискеты при старте, Т-72 теперь ищет INITIALC.SUB на квазидиске. В принципе, это можно вернуть назад, если надо. Или пока можно после старта руками вводить команду "<A:INITIAL.SUB".
Я не вникал, просто увидел список в исходнике
Скрытый текст
Код:.db 05Ah ; <Z> (offset 0340h) 00 .db 05Ch ; <\> (offset 0341h) 01 .db 04Eh ; <N> (offset 0342h) 02 .db 04Fh ; <O> (offset 0343h) 03 .db 045h ; <E> (offset 0344h) 04 .db 061h ; <a> (offset 0345h) 05 .db 037h ; <7> (offset 0346h) 06 .db 062h ; <b> (offset 0347h) 07 .db 036h ; <6> (offset 0348h) 08 .db 044h ; <D> (offset 0349h) 09 .db 043h ; <C> (offset 034Ah) 0A .db 041h ; <A> (offset 034Bh) 0B .db 042h ; <B> (offset 034Ch) 0C .db 04Bh ; <K> (offset 034Dh) 0D .db 048h ; <H> (offset 034Eh) 0E L_F84F: .db 04Ah ; <J> (offset 034Fh) 0F ^^^[свернуть]
Может тут не все буквы соответсвуют командам.
Эти команды в БСВВ, тоже их назначение глубоко не раскапывал, но, скорее всего, это даже не команды, а ключи к команде "0", нечто для управления параметрами вывода на экран и прочего...
- - - Добавлено - - -
Вот назначение этих ключей:
Скрытый текст
Код:.db 05Ah ; 00 Установить латинский набор .db 05Ch ; 01 Установить русско-латинский набор (КОИ-7) .db 04Eh ; 02 Включение неэффективного опроса клавиатуры с установкой цветовой палитры прикаждом прерывании (предусмотрена для некорректно написанных программ, где установка цвета осуществляется не управляющей последовательностью) .db 04Fh ; 03 Включение опроса клавиатуры с отключением записи таблицы цветов при прерываниях. Экономится до 5% времени ЦП. Режим установлен в ДОС по умолчанию. .db 045h ; 04 Очистить экран и установить латинский набор символов знакогенератора .db 061h ; 05 Установить режим вывода символов в позитиве .db 037h ; 06 Установить режим вывода символов в позитиве .db 062h ; 07 Установить режим вывода символов в негативе .db 036h ; 08 Установить режим вывода символов в негативе .db 044h ; 09 Курсор смещается на позицию влево .db 043h ; 0A Курсор смещается на позицию вправо .db 041h ; 0B Курсор смещается на позицию вверх .db 042h ; 0C Курсор смещается на позицию вниз .db 04Bh ; 0D Удалить часть строки, начиная с позции курсора и до конца .db 048h ; 0E Курсор помещается в левый верхний угол L_F84F: .db 04Ah ; 0F Очистить экран ^^^[свернуть]
Последний раз редактировалось Improver; 09.04.2020 в 10:50.
ivagor(09.04.2020)
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Improver, желательно изменить переключение регистров по аналогии с тем, как патчили T34 - чтобы одиночное нажатие РУС/ЛАТ и СС переключало соответственно русский/латинский и большие/маленькие. А то нажимать три клавиши одновременно неудобно, а в emu, например, нажатие shift+ctrl+s вызовет диалог сохранения скриншота вместо ввода маленькой русской буквы "c".
Там, кстати, есть косяк: список должен заканчиваться нулевым байтом. Вот п/п поиска буквы:
На данный момент других букв от A до Z до ближайшего нуля нет, но младший байт адреса в какой-нибудь ссылке может таковым оказаться, если код будет смещаться.Код:L_C3FF: MVI B, 000h L_C401: MOV A, M ORA A RZ CMP C JZ L_C40D INX H INR B JMP L_C401 L_C40D: MOV A, B STC RET
- - - Добавлено - - -
Насколько я понял, вызов "в никуда" должен был выводить сообщение об ошибке. В пропатченной версии вызывается код обработчика команды E, он и выводит сообщение.
Improver(09.04.2020)
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)