|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
26.08.2017, 13:01 | #31 |
Участник клуба
Регистрация: 16.06.2011
Сообщений: 1,428
|
Я тестил под чистым досом и дискетой. Если у тебя виртуальная машина, попробуй сменить адрес 600h например на 7E00h
Нашедшего выход - затаптывают первым..
|
26.08.2017, 13:13 | #32 | |
Лис
Старожил
Регистрация: 18.09.2015
Сообщений: 2,409
|
Цитата:
А вот по поводу стандартного сервиса и расширенного. Для дисков менее 8гб используем стандартный для более расширенный. Некоторые старые БИОСы могут не поддерживать для определённых дисков сервисы. А вот с этого надо было начинать. С CD- дисками я не работал. Там и сектора больше. Поэтому код R71MT может и не работать он рассчитан на мягкие диски. Там и структура разделов разная.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал . Последний раз редактировалось Pavia; 26.08.2017 в 13:18. |
|
26.08.2017, 13:16 | #33 |
Пользователь
Регистрация: 23.08.2017
Сообщений: 59
|
Для загрузки с USB к примеру как поступать?
|
26.08.2017, 13:31 | #34 |
Пользователь
Регистрация: 23.08.2017
Сообщений: 59
|
Поставил на 07E00h загрузку.
Загрузил на флешку. Пишет Loading DEMO-OS 1.0 .... Error - не выводит А мать пищит как поросёнок |
26.08.2017, 13:37 | #35 |
Участник клуба
Регистрация: 16.06.2011
Сообщений: 1,428
|
..а номер диска для INT-13h как определил?
С флэхой дела обстоят немного по другому-же.. Во-первых, нужно вычислить номер диска, чтобы указать его для INT-13h. Как-правило диск-Ц имеет номер 80h, диск-Д = 81h и т.д. Иначе ничего не получится. Во-вторых - у флэшек размер сектора помоему не 512-байт, а больше. Это тоже проблема..
Нашедшего выход - затаптывают первым..
|
26.08.2017, 13:40 | #36 | |
Пользователь
Регистрация: 23.08.2017
Сообщений: 59
|
Цитата:
А определил номер диска так: регистр dl положил в стек, после определения sp |
|
26.08.2017, 13:48 | #37 |
Лис
Старожил
Регистрация: 18.09.2015
Сообщений: 2,409
|
Отложить на потом. Вначале сделайте на виртуалке.
USB - это шина. От сюда и разнообразия. Флешки, жесткие диски, оптические-диски Флешки бывают 2-х видов. В 97% вы наткнётсь на те которые могут эммулировать HDD/FDD. (Нужное указать в меню БИОСа) 3% которые эммуллируют только FDD. Пишем 2 загрузчик и от объема прошиваем нужным. Менее 8ГБ старый. Так ещё и с номером диска не всё так хорошо. Не все БИОСы стандарт соблюдают. Так что пробуем читать проверять контрольную сумму. А также сигнатуру диска. Потом пробуем другой номер диска. Контрольная сумма нужна что-бы найти свой загрузчик. А сигнатура диска исключить не верный в случае 2-х и более дисков. Правда из-за вредных советов в интернете проверка сигнатуры диска может не работать. Но это ничего грузим вторичный загрузчик он разбирает систему FAT и там ищет метку тома.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал . |
26.08.2017, 13:57 | #38 | |
Лис
Старожил
Регистрация: 18.09.2015
Сообщений: 2,409
|
Не беспокойтесь 512.
Только если у вас флешка эммулирует CD, тогда да. Но таких флешик я не видел, только устройства которые очень похожи на флешки. Но вероятность с ними встретиться ещё меньше чем 1% Цитата:
Но потом во вторичном загрузчике повторно анализируются эти данные. Если найден сервис PnP то данные от int 13h игнорирутся и данные берутся из него. Но всё равно данные PnP могут быть не достоверные или отсутствовать как на большинства виртуалок. Винду можно обмануть.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал . |
|
26.08.2017, 14:23 | #39 |
Участник клуба
Регистрация: 16.06.2011
Сообщений: 1,428
|
fn. расширенного сервиса AH=48h возвращает тип интерфейса в ASCII-виде (поле 40-47). Можно поискать там перебором дисков в DL
Нашедшего выход - затаптывают первым..
|
26.08.2017, 14:44 | #40 |
Участник клуба
Регистрация: 16.06.2011
Сообщений: 1,428
|
там перечисляются интерфейсы: ATA\SATA\USB\SCSI\RAID\1394\ATAPI
поэтому пожно проверять только первую букву. Лишь-бы расширенный сервис поддерживал биос. Функция копирует данные в буфер, в котором нужно потом проверить поле(40d): Код:
Нашедшего выход - затаптывают первым..
Последний раз редактировалось R71MT; 26.08.2017 в 14:51. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Прерывания | kolyan147 | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 0 | 13.06.2012 23:55 |
прерывания | lilek | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 2 | 14.12.2010 20:44 |
Прерывания | alexdrew | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 1 | 16.05.2010 00:38 |
Прерывания | Kn793 | Общие вопросы Delphi | 3 | 10.01.2009 18:43 |