Может быть "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) портит диск. В таком случае определенно лучше убрать эту команду.
Надо будет сравнить МДОСы Филипова и Т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, желательно изменить переключение регистров по аналогии с тем, как патчили 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, он и выводит сообщение.