PDA

View Full Version : خواندن و نوشتن در فلاپی



mahmouddmx
پنج شنبه 13 دی 1386, 14:10 عصر
خیلی خیلی فوری
سلام

دمتون گرم
من چند تا مشکل تو نوشتن این برنامه دارم
اولیش اینه که فلاپی درایو من خرابه و من نمی تونم برنامه رو تست کنم.خواهشا کمک کنید
این کدی است که تا الان نوشتم

draw macro nrow,row1,col1,row2,col2,color
mov ah,6
mov al,nrow
mov ch,row1
mov cl,col1
mov dh,row2
mov dl,col2
mov bh,color
int 10h
endm
;===============================
print macro str
mov ah,9
mov dx,offset str
int 21h
endm
;===============================
gotoxy macro x,y
mov ah,2
mov dh,x
mov dl,y
mov bh,0
int 10h
endm
;===============================
clrscr macro
mov ah,6
mov al,24
mov ch,0
mov cl,0
mov dh,0
mov dl,79
mov bh,00h
int 10h
endm
;===============================
stk segment 'stack'
db 32 dup('stack---')
stk ends
;===============================
dat segment 'data'
buf db 512 dup('buf---')
bool db ?
menu db "Menu","$"
read db "Read","$"
write db "Write","$"
format db "Format","$"
exit db "Exit","$"
msg1 db 'enter your name :',"$"
msg2 db 'your name :',"$"
dat ends
;===============================
cod segment 'code'
main proc far
assume cs:cod,ds:dat,ss:stk
mov ax,dat
mov ds,ax
mov ax,1
int 33h
lblm:
clrscr
***1)mov bool,0
gotoxy 0,0
draw 1,0,0,0,10,20h
gotoxy 0,2
print menu
while:
mov ax,3
int 33h
cmp bx,0
je while
cmp cx,85
jg while
cmp dx,35
jg while
cmp dx,7
jg r
***2)cmp bool,0
jne lblm
jmp submenu
r: cmp dx,14
jg w
jmp lblread
w: cmp dx,21
jg f
jmp far ptr while
;jmp lblwrite
f: cmp dx,28
jg e
jmp far ptr while
;jmp lblformat
e: jmp ee
jmp far ptr ee
submenu:
***3)mov bool,1
gotoxy 0,0
draw 1,0,0,0,10,20h
gotoxy 0,2
print menu
draw 1,1,0,1,10,30h
gotoxy 1,2
print read
draw 1,2,0,2,10,40h
gotoxy 2,2
print write
draw 1,3,0,3,10,50h
gotoxy 3,2
print format
draw 1,4,0,4,10,60h
gotoxy 4,2
print exit
jmp far ptr while
lblread:
***4)MOV Ah,2
mov Al,1
MOV CH,3
MOV CL,5
MOV DH,2
MOV DL,0
PUSH AX
MOV AX,DS
MOV ES,AX
POP AX
LEA BX,BUF
INT 13H
MOV BX,1
MOV AH,0EH .
PRINTa:
MOV AL,BUF[BX]
CMP AL,32
JB SKIP
INT 10H
JMP CONT
SKIP:
MOV AL,'.'
INT 10H
CONT:
INC BX
CMP BX,513
JNZ PRINTa
jmp far ptr while
ee: mov ax,4c00h
int 21h
main endp
cod ends
end main


من در قسمت باید یک منو بسازم که با کلیک رو اون منو باز بشه و با کلیک دوباره بسته بشه
1)***در این قسمت من یک متغیر قرار دادم و مقدارشو 0 گذاشتم
2)***اینجا متغیر رو با 0مقایسه کردم اگه 0 بود منو باز نیست و برو به مرحله 3 و گرنه بازه و منو رو ببند
3)***اگر منو بسته بود مقدار متغر رو 1 کن تا بعدا بفهمیم منو باز است
4)***این هم کد خوندن از فلاپی ولی من رو هارد امتحان کردم جواب نمی ده
خواهشا اگه شما کد خوندن و نوشتن و فرمت یک سکتور فلاپی رو دارید یا بلدید واسم بزارید
با تشکر

mah.yar
جمعه 14 دی 1386, 10:28 صبح
سلام
برنامه Edit استاد حسین پور رو مینویسی؟

Delphi Coder
جمعه 14 دی 1386, 14:47 عصر
من چند تا مشکل تو نوشتن این برنامه دارم این برنامه چی هست و چیکار باید بکنه؟

*این هم کد خوندن از فلاپی ولی من رو هارد امتحان کردم جواب نمی ده

خواهشا اگه شما کد خوندن و نوشتن و فرمت یک سکتور فلاپی رو دارید یا بلدید واسم بزارید

اگه اونطوری که دوستمون گفتن دارید Editor می نویسید پس چرا مستقیما روی Sector ها کار میکنید!!!؟؟؟
Windows اجازه نمیده وقفه 13 مستقیما بتونه با سکتوها کار کنه باید حتما از محیط DOS اجرا بشه. اگر هم روی هارد امتحان میکنید باید حواستون باشه دقیقا کجا رو مینویسید و میخونید چون احتمال داره از یه اشتباه خیلی کوچولو یه خرابکاری حسابی به بار بیاد.

mahmouddmx
جمعه 14 دی 1386, 15:14 عصر
آقا موضوع نوشتن و خوندن و فرمت فلاپی هستش
خودم یه سری کد نوشتم ولی از اونجایی که فلاپی درایو من خرابه نمیتونم تست کنم
گفتم اگه شما یه سری کد دارین برام بفرستین کارمو راه بندازه
اگه دارین خواهشا سریع بفرستین فردا امتحان دارم
در ضمن تشکر که وقتتون رو گذاشتین واسه من



نالد به حال زار من امشب سه تار مناین مایهتســــــلی شــــــــبهای تار من

Delphi Coder
جمعه 14 دی 1386, 16:38 عصر
سرویسهای وقفه 13 برای اینکار کافی هستن. فقط حواستون باشه از محیط DOS برنامتونو تست کنید. در ضمن برای فرمت فلاپی یه آرایه باید به عنوان بوت سکتور داشته باشید و آخر سر اونو توی بوت سکتور بنویسید تا هم سیستم قادر به خواندن فلاپی باشه(اونجا یه table هست که اگه نباشه فلاپی توسط سیستم عامل قابل خواندن نیست). خواندن و نوشتن سکتور ها توی DOS مشکلی نداره ولی حتما 3 بار Retry رو تو برنامتون بذارید(برای فلاپی لازمه).

hichkas1
سه شنبه 12 آذر 1387, 23:41 عصر
سلام
یکی می تونه بند های کار این برنامه رو توضیح بده ؟
خیلی ممنون میشم

hichkas1
چهارشنبه 13 آذر 1387, 14:55 عصر
کسی نبود ؟