RUЭВМ
Вы хотите отреагировать на этот пост ? Создайте аккаунт всего в несколько кликов или войдите на форум.
Апрель 2024
ПнВтСрЧтПтСбВс
1234567
891011121314
15161718192021
22232425262728
2930     

Календарь Календарь

Последние темы
» Вити больше нет!
автор bug19 Пн Фев 20 2023, 19:54

» Собираем оригинальный Орион 128
автор bug19 Пн Фев 20 2023, 19:47

» Проблема плющеного экрана ОРИОНА
автор kanzler Пн Ноя 28 2022, 12:05

» Орион 128 и его клоны возрождение 2019-2022 год
автор kanzler Пн Ноя 28 2022, 12:03

» Электроника КР-04. Информация, документы, фото.
автор kanzler Пн Ноя 28 2022, 12:02

» Новости форума
автор kanzler Пн Ноя 28 2022, 11:52

» Орион-128 НГМД запуск 2021 года
автор matrixplus Сб Сен 10 2022, 17:36

» ПЗУ F800 для РК86
автор ведущий_специалист Сб Сен 10 2022, 10:37

» Микропроцессорная лаборатория "Микролаб К580ИК80", УМК-80, УМПК-80 и др.
автор Электротехник Вт Июл 26 2022, 19:33

» Орион-128 SD карта в Орионе
автор matrixplus Чт Июн 02 2022, 09:00

» 7 Мая. День Радио!
автор Viktor2312 Чт Май 12 2022, 10:58

» Серия: Массовая радио библиотека. МРБ
автор Viktor2312 Ср Май 11 2022, 12:17

» Полезные книги
автор Viktor2312 Пн Май 09 2022, 15:07

» Орион 128 Стандарты портов и системной шины Х2
автор matrixplus Вс Май 08 2022, 23:08

» Орион-128 и Орион ПРО еще раз про блоки питания
автор matrixplus Вс Май 08 2022, 19:09

» Орион-128 Программаторы
автор matrixplus Вс Май 08 2022, 19:02

» Орион ПРО история сборки 2021 до 2022
автор matrixplus Вс Май 08 2022, 18:47

» Анонсы монет (New coin).
автор Viktor2312 Сб Май 07 2022, 23:11

» Хочу свой усилок для квартиры собрать не спеша
автор Viktor2312 Сб Май 07 2022, 19:33

» Амфитон 25у-002С
автор Viktor2312 Сб Май 07 2022, 09:38

» Майнер: T-Rex
автор Viktor2312 Вс Май 01 2022, 09:12

» GoWin. Изучение документации. SUG100-2.6E_Gowin Software User Guide. Среда разработки EDA.
автор Viktor2312 Пн Апр 25 2022, 01:01

» GoWin. Изучение документации. UG286-1.9.1E Gowin Clock User Guide.
автор Viktor2312 Сб Апр 23 2022, 18:22

» GoWin. Documentation Database. Device. GW2A.
автор Viktor2312 Ср Апр 20 2022, 14:08

» GOWIN AEC IP
автор Viktor2312 Ср Апр 20 2022, 12:08

Самые активные пользователи за месяц
Нет пользователей

Поиск
 
 

Результаты :
 


Rechercher Расширенный поиск


Вариант универсального загрузчика для Ориона.

Перейти вниз

Вариант универсального загрузчика для Ориона. Empty Вариант универсального загрузчика для Ориона.

Сообщение  Viktor2312 Сб Янв 21 2017, 12:45

1
Данная тема создана с перспективой на будущее и вообще потому, что такое существует в природе. Я выложу здесь ту информацию, которая мне доступна и как вроде связанна с данной темой. В надежде, что пользователи поправят меня, если что, и дополнят тему в будущей перспективе...

Viktor2312
RIP

Сообщения : 15492
Дата регистрации : 2012-08-10
Возраст : 45
Откуда : Пятигорск

Вернуться к началу Перейти вниз

Вариант универсального загрузчика для Ориона. Empty Re: Вариант универсального загрузчика для Ориона.

Сообщение  Viktor2312 Сб Янв 21 2017, 14:14

2
резерв.

Viktor2312
RIP

Сообщения : 15492
Дата регистрации : 2012-08-10
Возраст : 45
Откуда : Пятигорск

Вернуться к началу Перейти вниз

Вариант универсального загрузчика для Ориона. Empty .

Сообщение  barsik Вт Авг 06 2019, 22:44

3
Если имеется ввиду загрузчик с дисковода, то название темы лучше уточнить. Т.к есть загрузчики из ROM-диска, загрузчики из проводной линии, загрузчики с магнитофона, загрузчики из флэш-карты и даже гипотетически - загрузчики по BlueTooth.

У ОРИОНА в основном применялось два формата загрузочных DD-дискет, отличающихся только BOOT-сектором. BOOT-сектор содержит блок параметров диска (это ~30 байтов с оффсетом 3 в BOOT-секторе со своей КС) и маленькая программка вторичного загрузчика (227 байтов). Так же у других компьютеров, например у IBM PC. Вторичный загрузчик нужен потому что DOS (или версий одной DOS) может быть много, которые грузятся в разное ОЗУ и разным способом. Задача холодного загрузчика лишь загрузить вторичный загрузчик и запустить его.

Холодный загрузчик с НГМД в IBM PC прошит в ROM-BIOS-е и стартует автоматически, а в ОРИОНЕ он обычно выполнен в виде отдельной программки в ROM-диске (хотя было одно ПЗУ М3 для Z80, где холодный загрузчик НГМД умещён в ROM-BIOS).

Холодный загрузчик не знает куда и как грузить конкретную DOS. Потому он загружает на фиксированный адрес и стартует вторичный загрузчик (который на ОРИОНЕ обычно занимает 256 байт первого сектора). И этот вторичный загрузчик (он для каждой DOS свой) уже знает куда (по каким адресам, в какие банки) и как грузить DOS.

Например, стандартная CP/M обычно грузится так, - сначала грузится CP/M-BIOS, после чего делается JMP на Warm Boot (адрес BIOS+3), а BIOS сначала грузит блок BDOS, затем блок CCP и стартует CCP. Хотя это вдвое дольше. Потому мои версии CP/M грузились иначе - они заливались в ОЗУ одним сплошным блоком.

Для DD-формата коды вторичных загрузчиков чуть отличаются. Исторически первым в 1990 году появился загрузчик в котором байт задающий в BOOT-секторе номер банки был с оффсетом 9F. Холодный загрузчик считывал первый однокилобайтовый физический сектор (в банку 0 на B800 или B000 - неважно, лишь бы не ниже CCP) и считав байт с оффсетом 9F, перекидывал 256 байтов из начала этого физ.сектора на адрес 0 в банку, номер которой задавался байтом с оффсетом 9F.

Но в 1993 авторы ОРИОНА сдуру (а точнее, чтобы показать пользователям, что стандарты задают именно они) выпустили CP/M, которая грузилась вторичным BOOT-сектором в котором оффсет байта задающего номер банки был другой, не 9F (а на десяток байтов дальше от начала сектора). Соответственно и холодный загрузчик был иной, отличающийся по сути лишь адресом куда первый физ.сектор грузится и адресом байта хранящего номер банки (задаваемый оффсетом от начала сектора, что определяет смещение от начала буфера загрузки сектора). Потому загрузчик ОРИОНСОФТ не мог грузить загрузочные дискеты других систем (их вторичный загрузчик попадал не в ту банку и не в тот адрес и при получении управления, естественно, "улетал"). И соответственно, загрузочные дискеты от ОРИОНСОФТ не могли быть загружены старым загрузчиком.

Кстати, и адреса ВГ93 в КНГМД ОРИОНСОФТ были изменены. Это глупо, но не очень фатально, т.к аппаратная несовместимость по адресам ВГ93 легко устранялась с помощью двух диодов и резистора. А вот загрузчик не исправить. Потому возникло два стандарта адресации КНГМД и два типа загрузчиков (отличие между которыми в основном в смещении от начала сектора байта, который задаёт номер банки в которую грузится DOS, ну и также в том, что загрузчик ОРИОНСОФТ выводит ненужное сообщение о загрузке в банку 1).

Кроме того загрузчик ОРИОНСОФТ упрощённый, относительно корветовского. Который, если загрузка в MFM-формате (DD- Double Density) не проходит, т.е если BOOT-сектор не читается, то загрузчик включает ВГ93 в формат FM (SD- Single Density) и снова пытается загрузить BOOT-сектор. Т.е загрузчик универсальный для двух форматов. А в загрузчике ОРИОНСОФТ это свойство забито, грузится только формат MFM.

Это ещё одна глупая ошибка ОРИОНСОФТ, потому что хотя формат SD (на 400К) и не имел особого смысла, но такой загрузчик позволяет им же грузить и HD- и DD-дискеты (т.е сначала загрузчик пытается считать сектор как DD, если не получается, то читает его как HD) или, если бит DD/SD использовать для выбора флопа, то позволяет грузить DOS как с одного дисковода, так и с другого (что очень важно, если один 5.25", а другой 3.5"). Потому при введении HD и дисководов 3.5" не пришлось менять загрузчик. Загрузчик ОРИОНСОФТ также сдуру портит TPA в банке CP/M. Потому, если произошёл улёт в текстовом редакторе, то текст исходника в ОЗУ погиб (нельзя перезагрузившись командой SAVE спасти текст).

Т.о универсальный загрузчик с НГМД по сути невозможен. Можно лишь сделать программу в которой присутствуют оба загрузчика и пользователю предлагается выбор. Такой сводный загрузчик сделал error404. Смысл такой загрузчик имеет лишь, если его сделать автостартовым (в виде EXT$). Если нет, то это хорошо лишь тем, что сокращает на единицу общее число файлов прошиваемых в ROM-диск.

Но с середины 90-тых я не использовал CP/M с подкачкой кода DOS с дискеты (по ^C), т.к это долго. У меня код DOS по ^C подкачивается из ПЗУ или ОЗУ, благо в ОРИОНЕ много излишнего ОЗУ. И DOS не грузится с дискеты, а стартует из ROM-диска одним файлом. Это делает все дискеты совместимыми (что не так в системах с подкачкой с диска), а главное, - это позволяет иметь и использовать столько версий DOS, сколько хочется, а не лишь одну, что занесена на системные треки всех дискет. Потому никакой загрузчик вообще не нужен. Также делалось и в некоторых немецких бытовых компьютерах (раз уж всё-равно нужно доп.ПЗУ для загрузчика, удобнее в ПЗУ хранить целиком DOS).
barsik
barsik
Ветеран

Сообщения : 1032
Дата регистрации : 2016-11-10
Откуда : Россия

Вернуться к началу Перейти вниз

Вернуться к началу

- Похожие темы

 
Права доступа к этому форуму:
Вы не можете отвечать на сообщения