Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.08.2017, 15:07   #41
Nikolay2015
Пользователь
 
Регистрация: 23.08.2017
Сообщений: 59
По умолчанию

То есть я могу получить по номеру диска DL, все его параметры и по контрольной сумме найти ос? И нужно ли мне загружать 2гб данных с диска, если ОС будет весить 1,5ГБ , я имею в виду с запасом?
Nikolay2015 вне форума Ответить с цитированием
Старый 26.08.2017, 15:39   #42
R71MT
Участник клуба
 
Аватар для R71MT
 
Регистрация: 16.06.2011
Сообщений: 1,428
По умолчанию

скачай: Несвижский - Программирование аппаратных средств
там описан расширенный сервис диска и многое другое..

если получишь номер диска и биос поддерживает расширенный сервис, то твоим планам ничего не сможет помешать.
Нашедшего выход - затаптывают первым..
R71MT вне форума Ответить с цитированием
Старый 26.08.2017, 16:28   #43
Nikolay2015
Пользователь
 
Регистрация: 23.08.2017
Сообщений: 59
По умолчанию

Насколько должна быть стара мать, чтобы не поддерживать расширенный сервис?
Nikolay2015 вне форума Ответить с цитированием
Старый 26.08.2017, 16:54   #44
R71MT
Участник клуба
 
Аватар для R71MT
 
Регистрация: 16.06.2011
Сообщений: 1,428
По умолчанию

точно сказать сложно.
В некоторых случаях, функции расширенного сервиса хранятся в не системном BIOS, а в ROM самого накопителя. Поэтому это зависит ещё и от модели самого ЖД.

Точно так-же и с функциями видеосервиса VESA, которые зашиты в ПЗУ видяхи. На конечном этапе процедуры POST, сис.биос копирует их в свою область памяти и подменяет вектора прерываний на эти функции.

Одним словом, только проверять программно..
Нашедшего выход - затаптывают первым..
R71MT вне форума Ответить с цитированием
Старый 26.08.2017, 17:05   #45
Pavia
Лис
Старожил
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 2,409
По умолчанию

3 версия стандарта датирована 1998 годом EDD 3.0
Вопрос в том что ошибок в реализациях хватает с лихвой.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .
Pavia вне форума Ответить с цитированием
Старый 26.08.2017, 17:09   #46
Pavia
Лис
Старожил
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 2,409
По умолчанию

Цитата:
Сообщение от R71MT Посмотреть сообщение
точно сказать сложно.
В некоторых случаях, функции расширенного сервиса хранятся в не системном BIOS, а в ROM самого накопителя. Поэтому это зависит ещё и от модели самого ЖД.

Точно так-же и с функциями видеосервиса VESA, которые зашиты в ПЗУ видяхи. На конечном этапе процедуры POST, сис.биос копирует их в свою область памяти и подменяет вектора прерываний на эти функции.

Одним словом, только проверять программно..
Чушь от ROM - ЖД это не зависит. А БИОС о котором вы имеете речь тут толковать находиться в контролёре рейд-массива.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .

Последний раз редактировалось Pavia; 26.08.2017 в 17:20.
Pavia вне форума Ответить с цитированием
Старый 26.08.2017, 17:50   #47
Nikolay2015
Пользователь
 
Регистрация: 23.08.2017
Сообщений: 59
По умолчанию

У меня вообще в планах мобильная ос, на экзоядре(т.к. Модульное расписывать не хочется) и все остальные фичи реализовать прикладным ПО. И планируется ось ставиться, а точнее сказать загружаться только с ssd или usb накопителя, но поговорив с вами появилось желание делать поддержку ЖД))
P.S. Мобильная - т.е. Переносимая на любой пк на Intel , Amd
Nikolay2015 вне форума Ответить с цитированием
Старый 26.08.2017, 19:18   #48
Pavia
Лис
Старожил
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 2,409
По умолчанию

Nikolay2015
Лично я вас отговаривал. Возьмите GRUB4Dos он создаст загрузчик.
Создайте образ ОС - как в линуксе.
Образ ОС это сигнатура мультибута, ядро плюс файловая система. Это удобно драйвера HDD ещё нету, а уже есть программы. Что ложиться на ваше концепцию экзоядра.

Линукс использует его для восстановления жёсткого диска или же для установки, да или просто для встроенных устройств у которых вовсе нет ЖД.
Там находятся файловые утилиты. Основные команды которые чаще всего используют в консоле.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .
Pavia вне форума Ответить с цитированием
Старый 26.08.2017, 19:57   #49
7in
(aka Jin X) !RTFM!
Форумчанин
 
Аватар для 7in
 
Регистрация: 14.12.2014
Сообщений: 295
По умолчанию

Если расширенные функции int 13h не поддерживаются (что легко проверить), можно либо использовать обычные, либо вывести "Error", ибо это реально старьё.
Делаю лабы на Asm/Delphi/C++/Python/VBA(Excel): asmlabs.ru
7in вне форума Ответить с цитированием
Старый 26.08.2017, 21:35   #50
Nikolay2015
Пользователь
 
Регистрация: 23.08.2017
Сообщений: 59
По умолчанию

Цитата:
Сообщение от R71MT Посмотреть сообщение
там перечисляются интерфейсы: ATA\SATA\USB\SCSI\RAID\1394\ATAPI
поэтому пожно проверять только первую букву. Лишь-бы расширенный сервис поддерживал биос. Функция копирует данные в буфер, в котором нужно потом проверить поле(40d):

Код:
org  100h
jmp  start

buff  db  74, 128 dup(0)
dsk   db  80h


start: mov  ah,41h        ; проверка поддержики расш\сервиса
       mov  dl,80h
       mov  bx,55AAh
       int  13h
       jnc  @ok
       ret               ; BIOS не поддерживает расш\сервис :(

@ok:   mov  cx,3         ; всего дисков

@@:    mov  ah,48h       ; считать параметры диска!
       mov  dl,[dsk]
       mov  si,buff
       int  13h

       cmp  byte[si+40],'U'    ; первый символ 'U' (USB) ???
       je   @next              ; есть такой!
       inc  byte[dsk]          ; нет - сл.диск..
       loop @b
       ret                     ; облом :(

@next: mov  al,[dsk]     ; номер USB-диска в переменной DSK
       sub  al,50h       ; переведём в ascii
       xor  bx,bx
       mov  cx,1
       mov  ah,0Ah       ; вывод символа (номера диска) на экран
       int  10h

       xor  ax,ax
       int  16h
       ret
А зачем в регистр BX задаётся значение 55AA?
Nikolay2015 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Прерывания 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