(:source lang=s1c88 :) [@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Periodic Task: DayTODg
; Written By: Pierre DELORE
; Version: 1.1
;
; Replace the english day of week by the a translation
;
; File Change History:
;
; 06/22/2005 PDE - First release
; 09/26/2005 PDE - Add year display
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Definitions
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
IF @DEF('SUBROUTINE')
UNDEF SUBROUTINE
ENDIF
DEFINE SUBROUTINE "'DayTODgTask'"
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; skip over the data area
jr DayTODgTask
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; DATA AREA
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
db 'G','T','1','2'
DayPattern:
db 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H ;Pattern for su
db 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H ;Pattern for mo
db 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H ;Pattern for tu
db 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H ;Pattern for we
db 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H ;Pattern for th
db 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H ;Pattern for fr
db 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H ;Pattern for sa
Options:
db 00H ;Display options
;0000 000X : 0 - Normal date display (internal)
; 1 - Date with year
;0000 00X0 : 0 - Don't show week number
; 1 - Show week number
CharWeek:
db 00H,0BH,0DH
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; CODE AREA
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;***************************************
dTODLocalTimeBuffer:
dTODSec: db 00 ;second
dTODMin: db 00 ;minute
dTODHour: db 00 ;hour
dTODDate: db 00 ;date
dTODMonth: db 00 ;month
dTODYearLo: db 00 ;year lo
dTODYearHi: db 00 ;year hi
dTODDow: db 00 ;dow
dTODWeek: db 00 ;week number
;***************************************
;-- Display the custom day of week --
DayTODgTask:
;now, copy hour into our local buffer
ld A, [COREPTZIndex]
ld IY, #dTODLocalTimeBuffer
KTOD_COPY_TIME_FROM_RESOURCE
ld A,[dTODDow]
ld L,#12
mlt
ld IY,#DayPattern
add IY,HL
ld B, #12
ld IX, #0F802H
UTL_COPY_IYREG_TO_IXREG
;-- Display the date with the year - Date format correspond to the watch setting --
ld A,[Options]
bit A,#01
jr Z,DispWeek
;-- Clear the punctuation
LCD_UPD_DASH1_FLAG OFF
LCD_UPD_DASH2_FLAG OFF
LCD_UPD_PER1_FLAG OFF
LCD_UPD_PER2_FLAG OFF
Disp_Year:
ld HL,#COREPTZFormat
ld A,[HL]
AND A,#03
CP A,#00 ; D.M.Y
JR NZ,Disp1
LCD_UPD_PER1_FLAG ON
LCD_UPD_PER2_FLAG ON
LD A,[dTODDate]
PUSH A
LD A,[dTODMonth]
PUSH A
LD A,[dTODYearLo]
PUSH A
JR DispD
Disp1: CP A,#01 ; Y-M-D
JR NZ,Disp2
LCD_UPD_DASH1_FLAG ON
LCD_UPD_DASH2_FLAG ON
LD A,[dTODYearLo]
PUSH A
LD A,[dTODMonth]
PUSH A
LD A,[dTODDate]
PUSH A
JR DispD
Disp2: CP A,#02 ; M-D-Y
JR NZ,DispD
LCD_UPD_DASH1_FLAG ON
LCD_UPD_DASH2_FLAG ON
LD A,[dTODMonth]
PUSH A
LD A,[dTODDate]
PUSH A
LD A,[dTODYearLo]
PUSH A
DispD:
POP A
LD IX, #LCDSEGDIGIT5
LCD_DISP_2DIG_SEG_DATA_NO_ZERO_SUP
POP A
LD IX, #LCDSEGDIGIT3
LCD_DISP_2DIG_SEG_DATA_NO_ZERO_SUP
POP A
LD IX, #LCDSEGDIGIT1
LCD_DISP_2DIG_SEG_DATA_SUP_ZERO_MSD
; LCD_UPD_COLON1_FLAG OFF
; LCD_UPD_COLON2_FLAG OFF
; LCD_UPD_DASH1_FLAG OFF
; LCD_UPD_DASH2_FLAG OFF
; LCD_UPD_PER1_FLAG ON
; LCD_UPD_PER2_FLAG ON
;-- Display the week number --
DispWeek:
ld A,[Options]
bit A,#02
jr Z,dTODExit
ld A, [dTODWeek]
ld IX, #LCDMAINDMLINE1COL34
LCD_DISP_SMALL_PROP_WIDTH_2DIG_DM_DATA_NO_ZERO_SUP
ld B, #3
ld IY,#CharWeek ;TODO: Change the label name
ld IX, #0F91FH
UTL_COPY_IYREG_TO_IXREG
dTODExit:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; All periodic task must exit through this section.
; The periodic task builder will insert code to complete task.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@]