home *** CD-ROM | disk | FTP | other *** search
- .model tiny
-
- SECTCOUNT EQU 1
- SECTNUM EQU 1
- ON EQU 1
- OFF EQU 0
-
- ; PORT CONTENTS (write value)
- ;==========================================
- ; 1F0 Data Register
- ; 1F1 Error register (write pre comp reg)
- ; 1F2 Sector count
- ; 1F3 Sector number
- ; 1F4 Cylinder low
- ; 1F5 Cylinder high
- ; 1F6 SDH register
- ; 1F7 Status register (command register)
- ;
- ; 3F6 Alt. Status reg (Dig Output register)
- ; 3F7 Drive addr reg.
- ;
- ;
- ;COMMAND CODE 1F2(SC) 1F3(SN) 1F4-5(CY) 1F6(SDH)
- ;===================================================
- ;Recalibrate 10 n n n d
- ;Read Sec(s) 20 y y y y
- ;Write Sec(s) 30 y y y y
- ;Verify Sec(s) 40 y y y y
- ;Format track 50 n n y y
- ;Seek 70 n n y y
- ;Diagnostic 90 n n n d
- ;Init Param 91 n n n d
- ;Read Mult C4 y y y y
- ;Write Mult C5 y y y y
- ;Set Mult C6 y n n d
- ;Read Sec Buf E4 n n n d
- ;Write Sec Buf E8 n n n d
- ;Identify Drv EC n n n d
- ;Set Buf Mode EF n n n d
- ;
- ;
- ;1F1 is not used in a CONNER drive
- ;
- ;
- ; Normal jumpers:
- ; ACT and C/D
- ;
- ; Two drive system:
- ; Drive C: C/D DSP
- ; Drive D: None
- ;
- ;
- .code
- even
- ;
- org 100h
- START:
- push CS
- pop DS
- CLD
- ;
- MOV DX,3F6H
- XOR AL,AL
- OUT DX,AL ;Turn off IRQ 14
- ;
- CALL WAITHD
- ;
- MOV DX,1F6H
- MOV AL,0A0H ;Drive descriptor
- OUT DX,AL
- ;
- MOV DX,1F2H
- MOV AL,SECTCOUNT
- OUT DX,AL
- ;
- MOV DX,1F3H
- MOV AL,SECTNUM
- OUT DX,AL
-
- MOV DX,1F4H; LOW
- MOV AL,OFF
- OUT DX,AL
- MOV DX,1F5H ; HIGH
- MOV AL,OFF
- OUT DX,AL
-
- MOV DX,1F7H
- MOV AL,020H ;READSECT
- OUT DX,AL
- ;
- GWORD: MOV DX,1F7H
- IN AL,DX
- TEST AL,8 ;Wait for data
- JZ GWORD
- ;
- MOV CX,256
- MOV DI,OFFSET BUFFER
- MOV DX,1F0H ;Get data
- GLOOP: IN AX,DX
- STOSW
- LOOP GLOOP
- ;
- CALL WAITHD
- ;
- MOV DX,3F6H ;Turn on IRQ 14 and exit
- MOV AL,2
- OUT DX,AL
-
- MOV AH,3CH ; CREATE FILE
- MOV CX,20H
- MOV DX,OFFSET NAMEF
- INT 21H
-
- MOV DX,OFFSET NAMEF ; OPEN FILE
- MOV AH,3DH
- MOV AL,1
- INT 21H
- MOV HANDLE,AX
-
- MOV BX,HANDLE ; WRITE TO FILE
- MOV AH,40H
- MOV CX,512
- MOV DX,OFFSET BUFFER
- INT 21H
-
- MOV BX,HANDLE ; CLOSE FILE
- MOV AH,3EH
- INT 21H
-
- MOV AX,4C00H
- INT 21H
- ;
- ; Wait till not busy
- ;
- WAITHD: MOV DX,1F7H
- IN AL,DX
- TEST AL,128
- JNZ WAITHD
- RET
-
- HANDLE DW 0
- NAMEF DB 'OUT.DAT',0
- BUFFER DW 0
-
- ;
- END START