Помогите пож-та! Необходимо написать прогу для простого открытия и закрытия лотка CD-привода. Написал вот Код (Text): jumps locals model compact include fmt.inc include codes.inc public _CheckCD ;Їа®ўҐаЁвм «ЁзЁҐ ¤а ©ўҐа public _DoorOpen ;®вЄалвм ¤ўҐажг public _DoorClose ;§ Єалвм ¤ўҐажг DATA SEGMENT public num_drives db ? first_drive db ? tabl ReadWriteL_Hdr ? help db ? help1 db ? DATA ENDS CODE SEGMENT ASSUME ds:DATA, cs:CODE _CheckCD PROC C FAR push ds push DATA pop ds mov ax, 1500H xor bx,bx int 2FH mov first_drive,cl mov num_drives,bl mov ax, 150BH xor bx,bx int 2FH cmp bx,0ADADH jne @@egog jmp short @@exit @@egog: xor al,al xor cl,cl @@exit: mov al,num_drives mov cl,first_drive pop ds retf ENDP _CheckCD ;„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„ _DoorOpen PROC C FAR ARG dev:byte, letter:byte push ds push DATA pop ds mov al,num_drives mov cl,first_drive mov dev, al mov letter, cl mov bx,offset tabl mov help,0 sendopen: mov [bx].rh_Len,size Ioctl_Hdr mov al,dev mov [bx].rh_Subunit,al mov [bx].rh_Code,cmIoctl_Output mov [bx].ioctl_media,0 mov [bx].ioctl_xfer_off,offset help push ds pop [bx].ioctl_xfer_seg mov [bx].ioctl_nbytes,1 mov [bx].ioctl_sector,0 mov word ptr [bx].ioctl_volid,0 mov word ptr [bx].ioctl_volid+2,0 push es push ds pop es mov ax,1510h mov bx,offset tabl xor cx,cx mov cl,letter int 2fh mov ax,[bx].rh_Status pop es pop ds pop bp retf ENDP _DoorOpen ;„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„ _DoorClose PROC C FAR ARG dev:byte, letter:byte push ds push DATA pop ds mov bx,offset tabl mov help,5 jmp sendopen ENDP _DoorClose startup: mov ax,DATA mov ds,ax call _CheckCD call _DoorOpen call _DoorClose mov ax,4c00h int 021h CODE ENDS end startup Лоток открывает, но не закрывает, ошибок при компиляции нет, помогите кто-чем может (или отправте ссылочкой на какую-нибудь лит-ру)
я с сидюками не работал, но мне кажется странным, что ты вызываешь _DoorClose сразу же после _DoorOpen. Может между ними вставить "пресс эни кей"? или на крайний случай задержку секунд на 5-10.
judgedim ИМХО в процедуре Close локальные переменные dev, letter имеют хз какие значения. Те значения, которые им были присвоены в Open так там и остались.