чета не фурыкаит
[more]
Добавлено: Цитата: Ошибки, возникающие в процессе INT 25H/26H, НЕ обрабатываются обработчиком кртических ошибок INT 24H .
в этом случае и не возникает ошибки перехватывать int24h я с самого начала пытался - не вызывается обработчик. это не ошибка, просто давай дискету. а так как это уже фугкции доса они точно вызовут подпрограмму которая дискету просют
Добавлено: http://forum.ru-board.com/topic.cgi?forum=5&topic=32855&start=6260#13 вот зараза. вообщем вот тут полностью описано в чем проблема. просто программа не выдает ошибки потому что INT13h ччитает с отражения сектор
Добавлено: переделал немного чтоб размер программы был меньше. может лучше конечно сжать ее было
Добавлено: не фигня какая то, у меня и на винде ошибка не возращается, хотя нету не то что Б А тоже нету
Добавлено: хахахахахахахаха. че ты малчиш я тут таких ашипак налепил
; ===============================================================
; ===============================================================
name NONAME
; ===============================================================
; === Начало программы: ===
CSEG segment
assume cs:cseg, ds:cseg, ss:cseg, es:cseg
org 100h ; COM файл
; ===============================================================
Start:
LEA BX,BUFFER ;ES:BX приемник
MOV AH,2
MOV AL,1 ;число секторов
XOR CH,CH ;номер дорожки (цилиндра)(0-n)
MOV CL,1 ;сектор 2
MOV DX,0 ;DH=0 (головка 0), DL=1 (дисковод 1 B
INT 13h
JNC OK
MOV ERRLVL,1
OK:
MOV DX, offset BUFFER
MOV AH, 09h ;
INT 21h ;
MOV AH,4ch
MOV AL,ERRLVL
INT 21h
; ===============================================================
BUFFER db 512 dup (?)
db '$'
ERRLVL db 11
CSEG ends
end Start
; ===============================================================
Добавлено: УРА!!!!!!!!! все получилось.
Добавлено: пришлось попарица
Цитата: ; ===============================================================
; ===============================================================
name NONAME
; ===============================================================
; === Начало программы: ===
CSEG segment
assume cs:cseg, ds:cseg, ss:cseg, es:cseg
org 100h ; COM файл
; ===============================================================
Start:
LEA BX, Finish
SHR BX,4
INC BX
MOV AH,4Ah
INT 21h ;Ужимаем размер отведенной памяти до метки Finish
MOV AX, 4800h ;выделим блок памяти под буфер чтения
MOV BX, 20h ;512 байт 32 параграфов на 16 байт
INT 21h ;ERROR_NOT_ENOUGH_MEMORY==8
JC NOMEM
MOV ES,AX
XOR BX,BX ;ES:BX приемник
MOV AX,201h ;число секторов
MOV CX,1 ;CH номер дорожки (цилиндра)(0-n); CL сектор 2
MOV DX,1 ;DH=0 (головка 0), DL=1 (дисковод 1 B
INT 13h
JNC OK
MOV ERRLVL,15h ;ERROR_NOT_READY
OK:
MOV AH,49h ;освободим блок выделенной памяти под буфер
INT 21h ;в es параграф блока
MOV AL,ERRLVL
NOMEM:
MOV AH,4ch
INT 21h
; ===============================================================
ERRLVL db 0
Finish equ $
CSEG ends
end Start
; ===============================================================
[/more]
Цитата: ; ===============================================================
; ===============================================================
name NONAME
; ===============================================================
; === Начало программы: ===
CSEG segment
assume cs:cseg, ds:cseg, ss:cseg, es:cseg
org 100h ; COM файл
; ===============================================================
Start:
LEA BX, Finish
MOV AX,201h ;число секторов
MOV CX,1 ;CH номер дорожки (цилиндра)(0-n); CL сектор 1
MOV DX,1 ;DH=0 (головка 0), DL=1 (дисковод 1 B
INT 13h
JNC OK
MOV ERRLVL,15h ;ERROR_NOT_READY
OK:
MOV AL,ERRLVL
MOV AH,4ch
INT 21h
; ===============================================================
ERRLVL db 0
Finish db '$';db 512 dup (0)
CSEG ends
end Start
; ===============================================================
ну я умудрылса пропустить mov ah, 2 и int13h - самая хлавное, а ты малчишь. тупил с головками забыл самое гланое