$INCLUDE (..\macro.inc)
$INCLUDE (..\library.inc)

Vrezka  equ 0x16B7A00
Patch	equ	Patches + 0x400
;---------------------------------------------------------------------------
org     Patch
            push    {r0,r4-r7,LR}
            LoadReg 0, config+4
            bl      GetBuffer
            beq     exit

            bl      RamStby
            ldr     r0, [r7]
            cmp     r0, #0
            beq     exit

            ldrb    r0, [r6, #3]
            mov     r1, #2
            and     r0, r1
            bne     DoPatch

            bl      IsUnlocked
            bne     exit

DoPatch:    add     r0, r6, #4
            mov     r1, r0
            add     r1, #8
            bl      GetDateTime

            mov     r4, #15
            ldrb    r5, [r6, #1]

            sub     SP, #8
            mov     r1, r4
            mov     r2, r5
            mov     r3, r1
            add     r3, #102
            mov     r0, r2
            add     r0, #36
            str     r0, [SP]
            mov     r0, #1
            str     r0, [SP, #4]
            ldr     r0, [SP, #8]
            ldr     r0, [r0, #0x14]
            bl      DrawCanvas
            add     SP, #8

            ldrb    r1, [r6, #12]
            bl      Add2Dig

            ldrb    r0, [r6, #2]
            cmp     r0, #2
            beq     ShowMin
            cmp     r0, #1
            beq     ShowColon

            ldr     r0, [r6, #20]
            mvn     r1, r0
            str     r1, [r6, #20]
            bmi     ShowMin

ShowColon:  mov     r0, #11
            bl      AddChar
            sub     r4, #24

ShowMin:    add     r4, #12
            ldrb    r1, [r6, #13]
            bl      Add2Dig

            ldrb    r0, [r6, #3]
            mov     r1, #1
            and     r0, r1
            beq     exit

            sub     r4, #64
            add     r5, #28
            ldrb    r1, [r6, #14]
            bl      Add2Dig

exit:       pop     {r0,r4-r7}
            CallReg 1, aSub
            pop     {PC}
;---------------------------------------------------------------------------
Add2Dig:    push    {r0, LR}
            mov     r0, #10
            bl      dwMODdw
            bl      AddChar
            b       AddChar+2
;---------------------------------------------------------------------------
AddChar:    push    {r1, LR}
            bl      Pic_Big0
            cmp     r5, #90
            bcc     $+6
            bl      Pic_Little0
            add     r2, r7, r0     
            mov     r0, r4
            mov     r1, r5
            bl      DrawImage2
            add     r4, #24
            cmp     r5, #90
            bcc     $+4
            sub     r4, #16
exAddChar:  pop     {r0, PC}
;---------------------------------------------------------------------------
            Align4
aSub:       dd      0xA1698BC7
        Align16
config:     dd Magic, 0xAB02, 0,0
db "{patch=`Big Digital Clock` version=4 copyright=avkiev id=AB02 memory=21 profiles=y}"
db "{1 slider Y range=62..89 v=73}"
db "{2 o Colon `Blink`=0 `On`=1 `Off`=2}"
db "{3.0 cb `Show seconds` v=1}"
db "{3.1 cb `Show in unlock`}"
db 0
Align16
;---------------------------------------------------------------------------
org     Vrezka
            dd  q1+Patch
        Align16
;---------------------------------------------------------------------------
END
