Metropoli BBS
VIEWER: motor.asm MODE: TEXT (LATIN1)
;   motor.asm   turn on motor for a: drive for 2 seconds
;   Drive light comes on but can not see any thing move ?
;           Use FDC floppy disk controller and Digital Output Register 3F2H
;
;
;
.model       small
.stack       200h    ; 512 byte stack
.data


.code

start:
             mov          ax,@data
             mov          ds,ax
             sti
                                      ;    bits 1,0    Select drive
                                      ;                    00 = a
                                      ;                    01 = b
                                      ;                    10 = c
                                      ;                    11 = d
                                      ;          2    0 = reset FDC
                                      ;          3    1 = enable FDC interrupt
                                      ;                   and DMA access
                                      ;         4-7   1 = turn on drive motor
                                      ;                   Bit 4 = drive A
                                      ;
             mov          dx,3f2h     ; turn on A drive motor
             mov          al,28       ; set bits 2,3,4 (Drive A = 28h)


             out          dx,al
             call         motor_delay
             mov          dx,3f2h
             mov          al,12
             out          dx,al
             jmp          short exit

motor_delay:
             mov          ah,0
             int          1ah
             add          dx,9       ; add « second delay
             mov          bx,dx
repeat:
             int          1ah
             cmp          dx,bx
             jne          repeat

exit:
             mov          ah,4ch
             int          21h

end          start



[ RETURN TO DIRECTORY ]