> Написал прогу - а она работает через раз. Запускаю - она > типа форматирует дискету - все вроде нормально - ошибок в > дебаггере не наблюдается. > > Только в NU8 нужный track не опознается. А иногда все > работает нормально при тех же самых действиях. Если кто > знает подскажите. > > text segment 'code' > assume cs:text,ds:text,ss:text > org 100h > > main_ proc > ;mov ah,17h > ;mov al,6h > ;mov dl,0 > ;int 13h > > mov ax,351eh > int 21h > mov word ptr dpt,bx > mov word ptr dpt+2,es > mov di,bx > > mov byte ptr es:[di+3],2 >
mov byte ptr [retry_count],3
retry:
cmp byte ptr [retry_count],0
je error_handler
> mov ah,05h > mov al,18 > mov ch,70 > mov cl,1 > mov dh,0 > mov dl,0 > push ds > pop es > lea bx,afd > int 13h jnc ok
dec byte ptr [retry_count]
jmp retry
ok:
> > ;mov ah,03h > ;mov al,1 > ;mov ch,70 > ;mov cl,1 > ;mov dh,0 > ;mov dl,0 > ;lea bx,key > ;int 13h > > mov es,word ptr dpt+2 > mov byte ptr es:[di+3],2 > error_handler:
...
> mov ax,4c00h > int 21h > > dpt dd 0 > afd db 70,0,1,2 > db 70,0,2,2 > db 70,0,3,2 > db 70,0,4,2 > db 70,0,5,2 > db 70,0,6,2 > db 70,0,7,2 > db 70,0,8,2 > db 70,0,9,2 > db 70,0,10,2 > db 70,0,11,2 > db 70,0,12,2 > db 70,0,13,2 > db 70,0,14,2 > db 70,0,15,2 > db 70,0,16,2 > db 70,0,17,2 > db 70,0,18,2 retry_count db 0
> > main_ endp > text ends > end main_
и такие фишки вокруг почти всех INT13
смысел этого такой: если дискета (любая removable media) была inserted и это ПЕРВОЕ обращение к ней то INT13 законно дает ошибку MEDIA_CHANGED
|