
?PR?_APBBR_read_data?APBBR_READ_DATA SEGMENT CODE 
    RSEG ?PR?_APBBR_read_data?APBBR_READ_DATA

_APBBR_read_data :
    ; save the EA bit in C and disable interrupts
    ;PUSH PSW 
    MOV C,EA
    CLR EA
    ; set the address
    MOV APBBR_ADDR_LSB_REG, R7
    MOV APBBR_ADDR_MSB_REG, R6
    ; do the APB access
    MOV APBBR_OPCODE_REG, #APBBR_OP_SINGLE_READ
    NOP
    ; get the resulting data
    MOV R7, APBBR_RDATA_LLSB_REG
    MOV R6, APBBR_RDATA_ILSB_REG
    MOV R5, APBBR_RDATA_IMSB_REG
    MOV R4, APBBR_RDATA_MMSB_REG
    ; restore previous condition for the interrupts
    MOV EA,C
    ;POP PSW
    RET

END
