PDA

View Full Version : فوری - کپی کردن یک فلاپی روی فلاپی دیگر



لیلا_الف
شنبه 24 دی 1384, 14:18 عصر
سلام
این برنامه رو چی طوری بنویسم ؟
کمک کنید لطفا
تا 5/11 به من جواب بدید

amin joon
شنبه 24 دی 1384, 18:21 عصر
باید کار سختی باشه...........مطمئنا یک شبه نمیتونی بنویسیش..........
برای این کار باید اول سکتور های دیسک منبع رو ، به اندازه ی بافر بخونی ..... بعد از کاربر بخوای که دیسک بعدی رو تو درایو بزاره و بافر رو به اون دیسک منتقل کنی و ..........
باید برای بهتر شدن برنامت (سریعتر شدن اون) از سکتور هایی که در اونا چیزی ذخیره نشده صرف نظر کنی........برای این کار باید محل سکتور هایی رو که تو اونا اطلاعات ذخیره شده رو پیدا کنی(بوسیله ی جدول FAT)

دو تابع زیر برای خواندن و نوشتن سکتور ها استفاده میشود.....



Interrupt: 13h Function: 02h

Title: Read Sector

Reads one or more sectors from disk into memory.

Input Output

AH = 02h If function successful
AL = Number of sectors Carry flag: clear
CH = Cylinder AH = 00h
CL = Sector AL = Number of sectors
DH = Head transferred
DL = Drive
= 00h-7Fh floppy disk If function unsuccessful
= 80h-FFh fixed disk Carry flag: set
ES:BX = segment:offset of buffer AH = Status
See: Int 13h Function 01h

Interrupt: 13h Function: 03h

Title: Write Sector

Writes one or more sectors from memory to disk.

Input Output

AH = 03h If function successful
AL = Number of sectors Carry flag: clear
CH = Cylinder AH = 00h
CL = Sector AL = Number of sectors
DH = Head transferred
DL = Drive
= 00h-7Fh floppy disk If function unsuccessful
= 80h-FFh fixed disk Carry flag: set
ES:BX = segment:offset of buffer AH = Status





موفق باشی

لیلا_الف
یک شنبه 25 دی 1384, 12:40 عصر
میشه بیشتر توضیح بدید از 5 پروژه این یکی مونده. خواهش می کنم بیشتر بگید چون می دونم تئوری باید چه جوری باشه اما نمی تونم بنویسمش
مرسی

amin joon
شنبه 01 بهمن 1384, 14:25 عصر
میتونی کتاب جعفرنزاد رو مطالعه کنی (اگر چه کتاب مسخره ای هست!!)
تو فصل 15 یه چیزهایی در مورد کار با فایلها و دیسک داره.......... چند تا مثال جالب هم داره (اگه کار کنه)

شما باید مثلا 64 کیلو بایت رو از دیسک بخوانی و در حافظه قرار بدی
از کاربر بخوای دیسک بعدی را در درایو قرار بدهد .....و این بایتها رو در دیسک جدید ک÷ی کنی
و اعمال بالا را تا زمان تمام شدن بایتهای دیسک انجام بدی

برای خواندن و نوشتن بهتره از int 25h و int 26h استفاده کنی چون از آدرسدهی منطقی استفاده میکنه

برای فهمیدن حجم فایل هم میتونی از int 36h استفاده کنی

همه چیز واضح هست ........... اگر سوالی داشتی، هستم

GoOd LuCk