
        CHIP    8052            ; Extensions of 8052
;---------------------------------------------------------;
; additional registers of 89S8252:
DP0L    REG     82h             ; DATA POINTER 0 - LOW BYTE
DP0H    REG     83h             ; DATA POINTER 0 - HIGH BYTE
DP1L    REG     84h             ; DATA POINTER 1 - LOW BYTE
DP1H    REG     85h             ; DATA POINTER 1 - HIGH BYTE
WMCON   REG     96h             ; WATCHDOG AND MEMORY CONTROL REGISTER
T2MOD   REG     C9h             ; TIMER 2 MODE CONTROL REGISTER
EEMWE   EQU     00010000b       ; EEPROM Data Memory Write Enable bit
EEMEN   EQU     00001000b       ; EEPROM Access Enable
DPS     EQU     00000100b       ; Data Pointer Register Select
WDTRST  EQU     00000010b       ; Watchdog Timer Reset / EEPROM Ready Flag
WDTEN   EQU     00000001b       ; Watchdog Timer Enable bit
;---------------------------------------------------------;
; memory allocations
BUTTONS EQU     2Eh     ; keyboard status 
TMP_BF  EQU     2Fh     ; temp. bitfield
BIT_TRE REG     2Fh.0   ; TIMER REFRESH ENABLE
BIT_T0R REG     2Fh.1   ; TIMER 0 READY
BIT_WKE REG     2Fh.2   ; WRITE KEY ENABLE

;---------------------------------------------------------;
; EEPROM
USG_CNT EQU     0010h   ; log base address 

;---------------------------------------------------------;
; Ports
KBD_DAT REG     P0      ; keyboard port
; buttons
BUT_1   REG     P0.5    ; ones
BUT_10  REG     P0.4    ; tens
BUT_WR  REG     P0.6    ; write

HGL_DAT REG     P1      ; LED segments
; LED1
HGL_1_A REG     P1.3    ; segment A
HGL_1_B REG     P1.0    ; segment B
HGL_1_C REG     P1.4    ; segment C
HGL_1_D REG     P1.2    ; segment D
HGL_1_E REG     P1.1    ; segment E
HGL_1_F REG     P1.6    ; segment F
HGL_1_G REG     P1.5    ; segment G
;---------------------------------------------------------;
; my defines
F1      REG     PSW.1
T0_50HZ         EQU     B0h             ; B000h - timer 0 divider for 50Hz
; keyboard
KBD_MASK        EQU     01110000b       ; keyboard mask for 3 buttons
KBD_WR_MASK     EQU     01000000b       ; mask for write button
KBD_01_MASK     EQU     00100000b       ; mask for button +1
KBD_10_MASK     EQU     00010000b       ; mask for button +10
MAX_USAGE_VALUE EQU     256-50          ; max. number of writes

; error codes
ERROR_MB_UNKNOWN        EQU     1
ERROR_WRONG_MCU         EQU     2
ERROR_WRONG_CRC         EQU     3
ERROR_WRONG_ID          EQU     4
ERROR_EEPROM_BAD        EQU     5
