Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Форматирование дискеты, Помогите! Очень-очень надо! 
:(
    Опции темы
MacTep
Дата 6.1.2004, 09:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1292
Регистрация: 4.8.2003
Где: г. Самара

Репутация: нет
Всего: 4



Люди! Кто в этом силен? Помогите, пожалуйста, отформатировать на дискете определенную дорожку. У меня такая лабораторная работа, а я даже не знаю с чего начать. Есть книги, но в них как-то все туманно. Думаю, что кто-то уже сталкивался с этим и проблем не будет. Пожалуйста, киньте текст программы! И не говорите, что используется 5 функция 13h прерывания. Это я знаю. Я не знаю, как ее применить, у нее же куча параметров. И если не сложно, подскажите также, как записать в эту отформатированную дорожку какое-нибудь слово, например, свое имя! Умоляю!!! Заранее спасибо!


--------------------
(A)bort, (R)etry, (I)gnore = Haфиг, Heфиг, Пoфиг ... :)
PM MAIL   Вверх
Chingachguk
Дата 6.1.2004, 11:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1232
Регистрация: 25.3.2002
Где: Москва

Репутация: нет
Всего: 18



Я не силен. А что, совсем нет инфы ? Вот в книге Пирогова "assembler. Учебный курс" в главе 14 есть, к примеру, полстраницы на эту тему.

Действительно, можно использовать прерывание int 13h и функцию 05h. al-число секторов, cx-сектор и цилиндр... И так далее. Не забудь в dl=0 для дисковода A.

Прочти про то, как устроены дискеты или диски. Каждый из них - совокупность секторов. Сектора объединяются в дорожки. Дорожки расположены как бы на отдельных плоскостях - это называется "головка". Т.е. для доступа к отдельному сектору нужно задать 3 параметра.

Сначала потренируйся читать и записывать сектора на дискету. Это функции 02 и 03.

Цитата
как записать в эту отформатированную дорожку какое-нибудь слово


На дорожку нельзя писать "слово". Дорожка - это набор секторов. Можно писать в сектор.


--------------------
I don't like the drugs (but the drugs like me). M.Manson.
PM MAIL ICQ   Вверх
oleg1973
Дата 6.1.2004, 17:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


asm fanat
****


Профиль
Группа: Экс. модератор
Сообщений: 3283
Регистрация: 16.7.2003
Где: Italy

Репутация: 7
Всего: 34



я делал где то валяется
вообшето не все так просто
1) сектора могут быть не только 512 байт
2) между ними есть индехные метки (содержат номер сектора и так далее)
делаетмя "имадже" дорожки со всеми секторами и индехными метками и писать все ет на дорожку
(таким макаром можно свой формат фыдумать , раньше ключевые дискетки были помните ?)
иходник найду покажу


--------------------
SST 465555
icq 200-512-712
PM MAIL WWW ICQ   Вверх
MacTep
Дата 7.1.2004, 00:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1292
Регистрация: 4.8.2003
Где: г. Самара

Репутация: нет
Всего: 4



Да, парни, влип я по полной! Не укладываюсь в срок никак. Нужно сдать все это дело мне к 11 числу. Может что-нибудь конкретное посоветуете. Книг по ассемблеру у меня нет. В этом-то и беда!


--------------------
(A)bort, (R)etry, (I)gnore = Haфиг, Heфиг, Пoфиг ... :)
PM MAIL   Вверх
Chingachguk
Дата 7.1.2004, 02:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1232
Регистрация: 25.3.2002
Где: Москва

Репутация: нет
Всего: 18



1. У тебя есть точный текст задания (курсовой, etc) ?
2. Книги можно качать. Зубкова С.В. - точно. Пирогов есть в продаже тоже.
3. Ты на чем писать хочешь ? На чистом асме ? Или в виде вставок в ~ паскаль/си ? А на чем можешь ?
4. Попробуй сначала прочесть и записать сам сектор на дискету. Это несложно. Изучи ф-ции 02 и 03h.
5. Не мохай.


--------------------
I don't like the drugs (but the drugs like me). M.Manson.
PM MAIL ICQ   Вверх
oleg1973
Дата 7.1.2004, 03:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


asm fanat
****


Профиль
Группа: Экс. модератор
Сообщений: 3283
Регистрация: 16.7.2003
Где: Italy

Репутация: 7
Всего: 34



вот нарыл в инете исходнчки с описаловом
;***********************************************************************
;* *
;* Fmt.asm 22-DEC-1990 *
;* *
;* Format Floppy Disk - version 1.30 - IBM® DOS 4.0 style format *
;* *
;* Designed for use with IBM AT compatible sytems (including PS/2s) *
;* *
;***********************************************************************
там все есть сиди и читай тока

Присоединённый файл ( Кол-во скачиваний: 23 )
Присоединённый файл  fmt130.zip


--------------------
SST 465555
icq 200-512-712
PM MAIL WWW ICQ   Вверх
MacTep
Дата 7.1.2004, 23:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1292
Регистрация: 4.8.2003
Где: г. Самара

Репутация: нет
Всего: 4



Отвечаю для Chingachguk'а: я хочу написать все это дело на Tasm'е. Все только на чистом ассемблере. Без всяких вставок. Если можешь, то подскажи мне, plz, где можно книгу Зубкова скачать. Буду очень признателен! И еще, что значит "Не мохай?" Точный текст задания: написать программу, которая форматирует любую дорожку дискеты и записывает на нее ключевое слово. Написать программу, которая считывает это слово с дискеты. Вот и все!


--------------------
(A)bort, (R)etry, (I)gnore = Haфиг, Heфиг, Пoфиг ... :)
PM MAIL   Вверх
oleg1973
Дата 7.1.2004, 23:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


asm fanat
****


Профиль
Группа: Экс. модератор
Сообщений: 3283
Регистрация: 16.7.2003
Где: Italy

Репутация: 7
Всего: 34



ну дак вон исходник для формата
а писать и читать уж совсем просто


--------------------
SST 465555
icq 200-512-712
PM MAIL WWW ICQ   Вверх
Chingachguk
Дата 8.1.2004, 11:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1232
Регистрация: 25.3.2002
Где: Москва

Репутация: нет
Всего: 18



Цитата

я хочу написать все это дело на Tasm'е. Все только на чистом ассемблере. Без всяких вставок.


Тогда возьми хотя бы пример oleg1973 или еще что-то - те маленькую программу на asm. Компилляторы можно взять такие: tasm или masm + tlink.exe.

Цитата

Если можешь, то подскажи мне, plz, где можно книгу Зубкова скачать. Буду очень признателен!


http://prog.dax.ru/downloads/zubkov/get.phtml

Цитата

И еще, что значит "Не мохай?"


= "Не бойся"

Цитата

Точный текст задания: написать программу, которая форматирует любую дорожку дискеты и записывает на нее ключевое слово. Написать программу, которая считывает это слово с дискеты. Вот и все!


Для того, чтобы отформатировать дорожку, нужно изучить int 13h, ф-цию 05. Возможно, в исходнике oleg1973 ты как раз и найдешь пример ее использования.

Мне не совсем понятно, куда именно нужно записывать "ключевое слово". Допустим, ты отформатировал
1 дорожку и у тебя (к примеру !) появилось 8 секторов по 256 байт. Писать и читать сектора можно. Это делает ф-ции int 13h, 02 & 03. Нужно записать ключевое слово в сектор ? Или oleg1973 говорит про
"между ними есть индехные метки (содержат номер сектора и так далее)". Возможно, нужно записать в индексную метку ? Хотя я в этом сомневаюсь.


--------------------
I don't like the drugs (but the drugs like me). M.Manson.
PM MAIL ICQ   Вверх
oleg1973
Дата 8.1.2004, 16:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


asm fanat
****


Профиль
Группа: Экс. модератор
Сообщений: 3283
Регистрация: 16.7.2003
Где: Italy

Репутация: 7
Всего: 34



я так понимаю ему типа ключевой дискетки нада сделать
думаю что нада отформатировать к примеру 81 ую дорожку (с учетом 2х головок) и записать в сектор слово какоенить ну а потом прочитать его
соответственно обычными методами такая дискетка копироватся не будет


--------------------
SST 465555
icq 200-512-712
PM MAIL WWW ICQ   Вверх
MacTep
Дата 9.1.2004, 00:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1292
Регистрация: 4.8.2003
Где: г. Самара

Репутация: нет
Всего: 4



Да, oleg1973!!! Именно такую ключевую дискетку мне и надо сделать. В задании так и написано, что нужно отформатировать 81 дорожку и т.д., что я уже писал. Я просто подумал, что если научусь форматировать любую другую дорожку, то смогу форматнуть и 81-ую. Вот! А так и не получается ничего. В исходнике, который ты мне посоветовал все на инглише и труднопереводимо. Неужели никто не может конкретную задачу решить? Помогите!


--------------------
(A)bort, (R)etry, (I)gnore = Haфиг, Heфиг, Пoфиг ... :)
PM MAIL   Вверх
Serzh
Дата 12.1.2004, 15:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 155
Регистрация: 30.9.2003
Где: SPb

Репутация: нет
Всего: нет



Код
function write2disk(buf:pointer;n:word):word;assembler;
const
 AbsSectNum:word=0;{}
 AbsHeadNum:word=0;{}
 TrkSecs:word=$0012;{}
asm
{ ; Начало расчета сектора/дорожки/головки}
 mov     dx,n
 mov     cx,[TrkSecs]
 mov     si,dx
{ ; tmp=(Sect/Sectors);}
 mov     ax,si
 xor     dx,dx
 div     cx
 mov     di,ax
{ ; Sec=Sect-(tmp*Sectors)+1;}
 mov     ax,di
 imul    cx
 mov     dx,si
 sub     dx,ax
 inc     dx
 mov     [AbsSectNum],dx
{ ; Hea=tmp & 1;}
 mov     ax,di
 and     ax,1
 mov     [AbsHeadNum],ax
{ ; Trk=(Sect-(Hea*Sectors)-(Sec-1))/(Sectors*2);}
 imul    cx
 push    ax
 mov     ax,si
 pop     dx
 sub     ax,dx
 mov     dx,[AbsSectNum]
 dec     dx
 sub     ax,dx
 mov     dx,cx
 shl     dx,1
 push    ax
 push    dx
 xor     dx,dx
 pop     bx
 pop     ax
 div     bx           {; AX = AbsTrackNum}
{ ; Конец расчетов}
 mov     cx,ax
 mov     al,cl
 shr     cx,2
 and     cl,0C0h
 mov     ch,al
 and     cx,0FFC0h
 mov     ax,[AbsSectNum]   {;      г5T4T3T2T1T0T9T8T7T6T5T4T3T2T1T0-}
 or      cl,al             {; CX =  c c c c c c c c C c S s s s s s}
 les     bx,buf
 mov     dx,[AbsHeadNum]
 mov     dh,dl             {; Номер головки}
 mov     dl,0              {; Номер диска 0 = A}
 mov     al,1              {; Количество записываемых секторов}
 mov     ah,3              {; Номер функции}
 int     13h
end;

надеюсь с переводом в чистый асм проблем не возникнет

Это сообщение отредактировал(а) Serzh - 12.1.2004, 15:27
PM MAIL WWW ICQ   Вверх
MacTep
Дата 13.1.2004, 23:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1292
Регистрация: 4.8.2003
Где: г. Самара

Репутация: нет
Всего: 4



Спасибо, парни, у меня все получилось! Только долго возился с переводом в чистый асм. Да и немного не то получилось, что хотелось. Но то, что есть результат - уже радует!


--------------------
(A)bort, (R)etry, (I)gnore = Haфиг, Heфиг, Пoфиг ... :)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm: Общие вопросы"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0817 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.