;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Copyright (c) 2001-2002 TIMEX Corporation.
; 
; This document is the property of, and contains information proprietary to
; TIMEX Corporation.  It is to be returned upon request.  Reproduction by any
; means, disclosure, or use of its contents for other than the expressed
; purpose for which it is loaned, without the written consent of TIMEX
; Corporation, is strictly prohibited.
;
; File Name:    lcdRAM.h
;
; Module Names: none
;                   
; Purpose:      Equates used by all modules to access unused LCD display RAM as 
;               general purpose RAM.
;
; File Change History:
;
;               03/04/2002 RVD - Created for m851.
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; LCD DISPLAY RAM DEFINITION
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; The EOC88349 has 402 bytes of LCD display memory, split into two banks, Bank0 and Bank1. 
; All LCD display memory is treated like standard RAM by the micro, ie, access time is the 
; same, and all locations are 8 bit read/write capable. 
; Thus, any locations in this memory NOT used by the LCD driver for display purpose
; can be used a general purpose RAM.
;
; We will be using Bank1 as general purpose RAM, giving us 201 extra bytes of memory.
; Since we are using a 1/16 duty display, with 5*5 mapping, this gives us the following
; additional memory locations, split into three 67 bytes blocks:
;
;   0FB00h - 0FB42h
;   0FC00h - 0FC42h
;   0FD00h - 0FD42h
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; LCD DISPLAY RAM USAGE
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; In this project, the following modules have variables located in this memory area:
;
;   LCD
;   HARDWARE
;   AUDIO
;   USAGE
;
; Any changes in these numbers must be reported, as this will affect the definitions
; of the display area.
;
; To use this area, DO NOT include a XXXXXvars.asm file in your module. Rather, the 
; variables must be assigned in the XXXXX.h file as offsets from a base address defined
; in this file.
;
; EXAMPLE:
; File: lcdRAM.h 
; ; Base address for LCD scrolling variables.
;   LCDSCROLLBaseAddress        EQU     0FB00h          
;
; File: lcd.h
; ; LCD Scrolling variables
;   LCDScrollFlags:             EQU     LCDSCROLLBaseAddress + 0  
;   LCDMsgStartAddr:            EQU     LCDSCROLLBaseAddress + 1 
;   LCDMsgEndAddr:              EQU     LCDSCROLLBaseAddress + 3
;   LCDStartDispAddr:           EQU     LCDSCROLLBaseAddress + 5
;       .......
;       
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; LCD DISPLAY RAM Definitions
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; First LCD RAM Block
;   0FB00h - 0FB42h
; LCD Resource Variables Base Address
LCDResourceBaseAddress:         EQU     0FB00h
; LCD Generic Blink Variables Base Address
LCDBlinkBaseAddress:            EQU     0FB00h + LCD_RESOURCE_SIZE
; Leftover in BLOCK 1:
MISCBlock1BaseAddress:          EQU     0FB00h + LCD_RESOURCE_SIZE + LCD_BLINK_SIZE

; Size of LCD Resource variables
LCD_RESOURCE_SIZE               EQU     52
; Size of LCD Blink variables
LCD_BLINK_SIZE                  EQU     12


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Second LCD RAM Block
;   0FC00h - 0FC42h
; Audio Variables Base Address
AUDBaseAddress:                 EQU     0FC00h
; LCD Timeline Resource Variables Base Address
LCDTimeLineResourceBaseAddress: EQU     0FC00h + AUD_SIZE
; Leftover in BLOCK 2:
MISCBlock2BaseAddress:          EQU     0FC00h + AUD_SIZE + LCD_TIMELINE_SIZE

; Size of AUDIO  variables
AUD_SIZE                        EQU     62
; Size of TIMELINE  variables
LCD_TIMELINE_SIZE               EQU     4


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Third LCD RAM Block
;   0FD00h - 0FD42h
; LCD Scrolling Variables Base Address
LCDScrollBaseAddress:           EQU     0FD00h
; LCD Miscellaneous Variables Base Address
LCDMiscBaseAddress:             EQU     0FD00h + LCD_SCROLL_SIZE
; Hardware Variables Base Address
HWBaseAddress:                  EQU     0FD00h + LCD_SCROLL_SIZE + LCD_MISC_SIZE
; Usage Counters Variables Base Address
USGBaseAddress:                 EQU     0FD00h + LCD_SCROLL_SIZE + LCD_MISC_SIZE + HW_SIZE
; Leftover in BLOCK 3:
MISCBlock3BaseAddress:          EQU     0FD00h + LCD_SCROLL_SIZE + LCD_MISC_SIZE + HW_SIZE + USG_SIZE
; NOTE: Currently, BLOCK 3 is FULL!!!

; Size of LCD Scrolling variables
LCD_SCROLL_SIZE                 EQU     16
; Size of LCD Miscellaneous variables
LCD_MISC_SIZE                   EQU     7
; Size of Hardware variables
HW_SIZE                         EQU     29
; Size of USG variables
USG_SIZE                        EQU     15


; Size of non-LCD RAM used by the modules which have variables in LCD RAM.
HWRAMSIZE                       EQU     0
LCDRAMSIZE                      EQU     0
AUDRAMSIZE                      EQU     0
USGRAMSIZE                      EQU     0
