?? ata_drv_load.a51
字號:
/*A**************************************************************************
* NAME: ata_drv_load.a51
*----------------------------------------------------------------------------
* Copyright (c) 2002 Atmel.
*----------------------------------------------------------------------------
* RELEASE: snd1c-demo-hdd-0_2_0
* REVISION: 1.1
*----------------------------------------------------------------------------
* PURPOSE:
* This file contains the low driver function for ata/ide
*****************************************************************************/
;_____ I N C L U D E S ____________________________________________________
;_____ M A C R O S ________________________________________________________
EXTRN XDATA (ide_data)
EXTRN XDATA (fat_buf_sector)
sfr UEPDATX = 0xCF
sfr DAT16H = 0xF9
sfr AUXR1 = 0xA2
;_____ D E F I N I T I O N ________________________________________________
IDE_MODULE SEGMENT CODE
RSEG IDE_MODULE
;_____ D E C L A R A T I O N ______________________________________________
PUBLIC ata_load_sector
PUBLIC ata_download_sector
PUBLIC hdd_download_data_usb
;*F**************************************************************************
; NAME: ata_load_sector
;----------------------------------------------------------------------------
; PARAMS:
;
; return:
;----------------------------------------------------------------------------
; PURPOSE:
; optimized function for loading data from disk to a buffer
;----------------------------------------------------------------------------
; EXAMPLE:
;----------------------------------------------------------------------------
; NOTE:
;----------------------------------------------------------------------------
; REQUIREMENTS:
;****************************************************************************
ata_load_sector:
MOV DPTR,#fat_buf_sector ;DPTR -> fat_buf_sector
INC AUXR1
MOV DPTR,#ide_data ;DPTR -> ide_data
MOV R0,#080H
loop:
MOVX A,@DPTR ; load ide_data
INC AUXR1 ; DPTR -> fat_buf_sector
MOVX @DPTR,A ; save acc in fat_buf_sector [n]
INC DPTR ; increase n
MOV A,DAT16H ; save dat16h in fat_buf_sector[n]
MOVX @DPTR,A
INC DPTR ; increase n
INC AUXR1 ; DPTR -> ide_data
MOVX A,@DPTR ; load ide_data
INC AUXR1 ; DPTR -> fat_buf_sector
MOVX @DPTR,A ; save acc in fat_buf_sector [n]
INC DPTR ; increase n
MOV A,DAT16H ; save dat16h in fat_buf_sector[n]
MOVX @DPTR,A
INC DPTR ; increase n
INC AUXR1 ; DPTR -> ide_data
DJNZ R0,loop
RET
;*F**************************************************************************
; NAME: ata_download_sector
;----------------------------------------------------------------------------
; PARAMS:
;
; return:
;----------------------------------------------------------------------------
; PURPOSE:
; optimized function for downloading data buffer to disk
;----------------------------------------------------------------------------
; EXAMPLE:
;----------------------------------------------------------------------------
; NOTE:
;----------------------------------------------------------------------------
; REQUIREMENTS:
;****************************************************************************
ata_download_sector:
MOV DPTR,#fat_buf_sector ; DPTR -> fat_buf_sector
INC AUXR1
MOV DPTR,#ide_data ; DPTR -> ide_data
MOV R0,#080H
loop_down:
INC AUXR1 ; DPTR -> fat_buf_sector
MOVX A,@DPTR
MOV R1,A ; save fat_buf_sector [n] in register R1
INC DPTR ; increase n
MOVX A,@DPTR
MOV DAT16H,A ; save fat_buf_sector [n] in register DAT16H
MOV A,R1 ; set ACC with R1
INC DPTR ; increase n
INC AUXR1 ; DPTR -> ide_data
MOVX @DPTR,A ; download ide_data
INC AUXR1 ; DPTR -> fat_buf_sector
MOVX A,@DPTR
MOV R1,A ; save fat_buf_sector [n] in register R1
INC DPTR ; increase n
MOVX A,@DPTR
MOV DAT16H,A ; save fat_buf_sector [n] in register DAT16H
MOV A,R1 ; set ACC with R1
INC DPTR ; increase n
INC AUXR1 ; DPTR -> ide_data
MOVX @DPTR,A ; download ide_data
DJNZ R0,loop_down
RET
;*F**************************************************************************
; NAME: hdd_download_data_usb
;----------------------------------------------------------------------------
; PARAMS:
;
; return:
;----------------------------------------------------------------------------
; PURPOSE:
; download usb data to hard disk device
;----------------------------------------------------------------------------
; EXAMPLE:
;----------------------------------------------------------------------------
; NOTE:
;----------------------------------------------------------------------------
; REQUIREMENTS:
;****************************************************************************
hdd_download_data_usb:
MOV DPTR,#ide_data
MOV A,UEPDATX ;1
MOV DAT16H,UEPDATX
MOVX @DPTR,A
MOV A,UEPDATX ;2
MOV DAT16H,UEPDATX
MOVX @DPTR,A
MOV A,UEPDATX ;3
MOV DAT16H,UEPDATX
MOVX @DPTR,A
MOV A,UEPDATX ;4
MOV DAT16H,UEPDATX
MOVX @DPTR,A
MOV A,UEPDATX ;5
MOV DAT16H,UEPDATX
MOVX @DPTR,A
MOV A,UEPDATX ;6
MOV DAT16H,UEPDATX
MOVX @DPTR,A
MOV A,UEPDATX ;7
MOV DAT16H,UEPDATX
MOVX @DPTR,A
MOV A,UEPDATX ;8
MOV DAT16H,UEPDATX
MOVX @DPTR,A
MOV A,UEPDATX ;9
MOV DAT16H,UEPDATX
MOVX @DPTR,A
MOV A,UEPDATX ;10
MOV DAT16H,UEPDATX
MOVX @DPTR,A
MOV A,UEPDATX ;11
MOV DAT16H,UEPDATX
MOVX @DPTR,A
MOV A,UEPDATX ;12
MOV DAT16H,UEPDATX
MOVX @DPTR,A
MOV A,UEPDATX ;13
MOV DAT16H,UEPDATX
MOVX @DPTR,A
MOV A,UEPDATX ;14
MOV DAT16H,UEPDATX
MOVX @DPTR,A
MOV A,UEPDATX ;15
MOV DAT16H,UEPDATX
MOVX @DPTR,A
MOV A,UEPDATX ;16
MOV DAT16H,UEPDATX
MOVX @DPTR,A
MOV A,UEPDATX ;17
MOV DAT16H,UEPDATX
MOVX @DPTR,A
MOV A,UEPDATX ;18
MOV DAT16H,UEPDATX
MOVX @DPTR,A
MOV A,UEPDATX ;19
MOV DAT16H,UEPDATX
MOVX @DPTR,A
MOV A,UEPDATX ;20
MOV DAT16H,UEPDATX
MOVX @DPTR,A
MOV A,UEPDATX ;21
MOV DAT16H,UEPDATX
MOVX @DPTR,A
MOV A,UEPDATX ;22
MOV DAT16H,UEPDATX
MOVX @DPTR,A
MOV A,UEPDATX ;23
MOV DAT16H,UEPDATX
MOVX @DPTR,A
MOV A,UEPDATX ;24
MOV DAT16H,UEPDATX
MOVX @DPTR,A
MOV A,UEPDATX ;25
MOV DAT16H,UEPDATX
MOVX @DPTR,A
MOV A,UEPDATX ;26
MOV DAT16H,UEPDATX
MOVX @DPTR,A
MOV A,UEPDATX ;27
MOV DAT16H,UEPDATX
MOVX @DPTR,A
MOV A,UEPDATX ;28
MOV DAT16H,UEPDATX
MOVX @DPTR,A
MOV A,UEPDATX ;29
MOV DAT16H,UEPDATX
MOVX @DPTR,A
MOV A,UEPDATX ;30
MOV DAT16H,UEPDATX
MOVX @DPTR,A
MOV A,UEPDATX ;31
MOV DAT16H,UEPDATX
MOVX @DPTR,A
MOV A,UEPDATX ;32
MOV DAT16H,UEPDATX
MOVX @DPTR,A
RET
END
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -