
     MOV   DPTR, #BUFF  ; setup XRAM buffer pointer
     MOV   R6, DPH      ; save pointer into R6::R7
     MOV   R7, DPL
     MOV   R5, #0       ; clear the loop counter
READ_LOOP1:
     MOV   DPTR, #CF_DATA_REG  ; point to data port on 
                               ; CF card interface
     MOVX  A, @DPTR     ; get byte from CF interface
     MOV   DPH, R6      ; get pointer for buffer
     MOV   DPL, R7
     MOVX  @DPTR, A     ; move byte of data to buff
     INC   DPTR         ; increment buffer pointer
     MOV   R6, DPH      ; save pointer back to R6::R7
     MOV   R7, DPL
     DJNZ  R5, READ_LOOP1  ; process loop for 1st 256
;
READ_LOOP2:
     MOV   DPTR, #CF_DATA_REG  ; point to data port on 
                               ; CF card interface
     MOVX  A, @DPTR     ; get byte from CF interface
     MOV   DPH, R6      ; get pointer for buffer
     MOV   DPL, R7
     MOVX  @DPTR, A     ; move byte of data to buff
     INC   DPTR         ; increment buffer pointer
     MOV   R6, DPH      ; save pointer back to R6::R7
     MOV   R7, DPL
     DJNZ  R5, READ_LOOP2  ; process loop for 2nd 256
