(script 406)

(string
    string_04e0 "Clock"
    string_04e6 "clockChime"
    string_04f1 "clockFace"
    string_04fb "hourHand"
    string_0504 "minuteHand"
    string_050f ""
)

(said
)

(local
    local0 = $0196
    local1 = $0000
    local2 = $0196
    local3 = $0001
    local4 = $0196
    local5 = $0002
    local6 = $0196
    local7 = $0003
    local8 = $0196
    local9 = $0004
    local10 = $0196
    local11 = $0005
    local12 = $0196
    local13 = $0006
    local14 = $0196
    local15 = $0007
    local16 = $0000
    local17 = $0000
    local18 = $0000
)

// 0368
(instance public Clock of Script
    (properties
        client $0
        state $ffff
        start $0
        timer $0
        cycles $0
        seconds $0
        lastSeconds $0
        register $0
        script $0
        caller $0
    )
    (method (doit) // method_000c
  000c:67 0a             pTos state 
  000e:35 02              ldi 2 
  0010:1a                 eq? 
  0011:30 0096            bnt code_00aa 
  0014:38 0081          pushi 81 // $81 prevSignal
  0017:76               push0 
  0018:72 0479          lofsa $0494 // clockChime
  001b:4a 04             send 4 

  001d:36                push 
  001e:35 ff              ldi ff 
  0020:1a                 eq? 
  0021:31 73              bnt code_0096 
  0023:88 00bb            lsg gMinute 
  0026:35 00              ldi 0 
  0028:1a                 eq? 
  0029:31 67              bnt code_0092 
  002b:38 0081          pushi 81 // $81 prevSignal
  002e:78               push1 
  002f:76               push0 
  0030:72 0461          lofsa $0494 // clockChime
  0033:4a 06             send 6 

  0035:39 2b            pushi 2b // $2b number
  0037:76               push0 
  0038:72 0459          lofsa $0494 // clockChime
  003b:4a 04             send 4 

  003d:36                push 
  003e:3c                 dup 
  003f:35 5e              ldi 5e 
  0041:1a                 eq? 
  0042:31 13              bnt code_0057 
  0044:39 2b            pushi 2b // $2b number
  0046:78               push1 
  0047:39 5f            pushi 5f // $5f yourself
  0049:39 06            pushi 6 // $6 loop
  004b:78               push1 
  004c:78               push1 
  004d:39 2a            pushi 2a // $2a play
  004f:76               push0 
  0050:72 0441          lofsa $0494 // clockChime
  0053:4a 10             send 10 

  0055:33 38              jmp code_008f 

        code_0057
  0057:3c                 dup 
  0058:35 5f              ldi 5f 
  005a:1a                 eq? 
  005b:31 13              bnt code_0070 
  005d:39 2b            pushi 2b // $2b number
  005f:78               push1 
  0060:39 60            pushi 60 // $60 size
  0062:39 06            pushi 6 // $6 loop
  0064:78               push1 
  0065:78               push1 
  0066:39 2a            pushi 2a // $2a play
  0068:76               push0 
  0069:72 0428          lofsa $0494 // clockChime
  006c:4a 10             send 10 

  006e:33 1f              jmp code_008f 

        code_0070
  0070:3c                 dup 
  0071:35 60              ldi 60 
  0073:1a                 eq? 
  0074:31 15              bnt code_008b 
  0076:39 2b            pushi 2b // $2b number
  0078:78               push1 
  0079:39 1d            pushi 1d // $1d back
  007b:39 06            pushi 6 // $6 loop
  007d:78               push1 
  007e:88 00ba            lsg gHour 
  0081:39 2a            pushi 2a // $2a play
  0083:76               push0 
  0084:72 040d          lofsa $0494 // clockChime
  0087:4a 10             send 10 

  0089:33 04              jmp code_008f 

        code_008b
  008b:35 01              ldi 1 
  008d:a3 10              sal local16 

        code_008f
  008f:3a                toss 
  0090:33 04              jmp code_0096 

        code_0092
  0092:35 01              ldi 1 
  0094:a3 10              sal local16 

        code_0096
  0096:83 10              lal local16 
  0098:31 10              bnt code_00aa 
  009a:38 0084          pushi 84 // $84 stop
  009d:76               push0 
  009e:39 58            pushi 58 // $58 dispose
  00a0:76               push0 
  00a1:72 03f0          lofsa $0494 // clockChime
  00a4:4a 08             send 8 

  00a6:35 01              ldi 1 
  00a8:65 10             aTop cycles 

        code_00aa
  00aa:35 00              ldi 0 
  00ac:a3 10              sal local16 
  00ae:39 3c            pushi 3c // $3c doit
  00b0:76               push0 
  00b1:57 05 04         super Script 4 

  00b4:48                 ret 
    )

    (method (handleEvent) // method_00b5
  00b5:39 4c            pushi 4c // $4c claimed
  00b7:76               push0 
  00b8:87 01              lap param1 
  00ba:4a 04             send 4 

  00bc:18                 not 
  00bd:31 40              bnt code_00ff 
  00bf:39 22            pushi 22 // $22 type
  00c1:76               push0 
  00c2:87 01              lap param1 
  00c4:4a 04             send 4 

  00c6:36                push 
  00c7:35 01              ldi 1 
  00c9:1a                 eq? 
  00ca:2f 1a               bt code_00e6 
  00cc:39 22            pushi 22 // $22 type
  00ce:76               push0 
  00cf:87 01              lap param1 
  00d1:4a 04             send 4 

  00d3:36                push 
  00d4:35 04              ldi 4 
  00d6:1a                 eq? 
  00d7:2f 0d               bt code_00e6 
  00d9:39 22            pushi 22 // $22 type
  00db:76               push0 
  00dc:87 01              lap param1 
  00de:4a 04             send 4 

  00e0:36                push 
  00e1:35 40              ldi 40 
  00e3:1a                 eq? 
  00e4:31 19              bnt code_00ff 

        code_00e6
  00e6:39 22            pushi 22 // $22 type
  00e8:76               push0 
  00e9:87 01              lap param1 
  00eb:4a 04             send 4 

  00ed:36                push 
  00ee:35 40              ldi 40 
  00f0:1c                 ne? 
  00f1:31 04              bnt code_00f7 
  00f3:35 01              ldi 1 
  00f5:a3 10              sal local16 

        code_00f7
  00f7:39 4c            pushi 4c // $4c claimed
  00f9:78               push1 
  00fa:78               push1 
  00fb:87 01              lap param1 
  00fd:4a 06             send 6 


        code_00ff
  00ff:48                 ret 
    )

    (method (dispose) // method_0100
  0100:39 58            pushi 58 // $58 dispose
  0102:76               push0 
  0103:57 05 04         super Script 4 

  0106:78               push1 
  0107:38 0196          pushi 196 // $196 sel_406
  010a:43 03 02         callk DisposeScript 2 

  010d:83 12              lal local18 
  010f:a0 00be            sag global190 
  0112:48                 ret 
    )

    (method (changeState) // method_0113
  0113:3f 1a             link 1a // (var $1a)
  0115:87 01              lap param1 
  0117:65 0a             aTop state 
  0119:36                push 
  011a:3c                 dup 
  011b:35 00              ldi 0 
  011d:1a                 eq? 
  011e:30 0099            bnt code_01ba 
  0121:38 00e3          pushi e3 // $e3 controls
  0124:76               push0 
  0125:51 2b            class User 
  0127:4a 04             send 4 

  0129:36                push 
  012a:35 01              ldi 1 
  012c:1a                 eq? 
  012d:31 09              bnt code_0138 
  012f:38 00d3          pushi d3 // $d3 setMotion
  0132:78               push1 
  0133:76               push0 
  0134:81 00              lag gEgo 
  0136:4a 06             send 6 


        code_0138
  0138:80 00be            lag global190 
  013b:a3 12              sal local18 
  013d:35 01              ldi 1 
  013f:a0 00be            sag global190 
  0142:80 00bb            lag gMinute 
  0145:a3 11              sal local17 
  0147:c8 00bb            +sg gMinute 
  014a:35 03              ldi 3 
  014c:1e                 gt? 
  014d:31 17              bnt code_0166 
  014f:88 00ba            lsg gHour 
  0152:35 0c              ldi c 
  0154:22                 lt? 
  0155:31 05              bnt code_015c 
  0157:c0 00ba            +ag gHour 
  015a:33 05              jmp code_0161 

        code_015c
  015c:35 01              ldi 1 
  015e:a0 00ba            sag gHour 

        code_0161
  0161:35 00              ldi 0 
  0163:a0 00bb            sag gMinute 

        code_0166
  0166:80 00df            lag gDetailLevel 
  0169:31 20              bnt code_018b 
  016b:39 07            pushi 7 // $7 cel
  016d:78               push1 
  016e:78               push1 
  016f:74 0238          lofss $03aa // clockFace
  0172:43 0e 02         callk NumCels 2 

  0175:36                push 
  0176:35 01              ldi 1 
  0178:04                 sub 
  0179:36                push 
  017a:39 7e            pushi 7e // $7e setCycle
  017c:7a               push2 
  017d:51 1b            class Beg 
  017f:36                push 
  0180:7c            pushSelf 
  0181:39 57            pushi 57 // $57 init
  0183:76               push0 
  0184:72 0223          lofsa $03aa // clockFace
  0187:4a 12             send 12 

  0189:33 14              jmp code_019f 

        code_018b
  018b:39 07            pushi 7 // $7 cel
  018d:78               push1 
  018e:76               push0 
  018f:39 57            pushi 57 // $57 init
  0191:76               push0 
  0192:38 00c6          pushi c6 // $c6 stopUpd
  0195:76               push0 
  0196:72 0211          lofsa $03aa // clockFace
  0199:4a 0e             send e 

  019b:35 01              ldi 1 
  019d:65 10             aTop cycles 

        code_019f
  019f:39 57            pushi 57 // $57 init
  01a1:76               push0 
  01a2:38 0089          pushi 89 // $89 hide
  01a5:76               push0 
  01a6:72 024f          lofsa $03f8 // hourHand
  01a9:4a 08             send 8 

  01ab:39 57            pushi 57 // $57 init
  01ad:76               push0 
  01ae:38 0089          pushi 89 // $89 hide
  01b1:76               push0 
  01b2:72 0291          lofsa $0446 // minuteHand
  01b5:4a 08             send 8 

  01b7:32 01a6            jmp code_0360 

        code_01ba
  01ba:3c                 dup 
  01bb:35 01              ldi 1 
  01bd:1a                 eq? 
  01be:30 009b            bnt code_025c 
  01c1:39 06            pushi 6 // $6 loop
  01c3:78               push1 
  01c4:83 11              lal local17 
  01c6:31 0b              bnt code_01d3 
  01c8:8b 11              lsl local17 
  01ca:35 03              ldi 3 
  01cc:22                 lt? 
  01cd:31 04              bnt code_01d3 
  01cf:35 06              ldi 6 
  01d1:33 02              jmp code_01d5 

        code_01d3
  01d3:35 05              ldi 5 

        code_01d5
  01d5:36                push 
  01d6:39 07            pushi 7 // $7 cel
  01d8:78               push1 
  01d9:88 00ba            lsg gHour 
  01dc:35 0c              ldi c 
  01de:1a                 eq? 
  01df:31 04              bnt code_01e5 
  01e1:35 00              ldi 0 
  01e3:33 03              jmp code_01e8 

        code_01e5
  01e5:80 00ba            lag gHour 

        code_01e8
  01e8:36                push 
  01e9:38 00ca          pushi ca // $ca show
  01ec:76               push0 
  01ed:72 0208          lofsa $03f8 // hourHand
  01f0:4a 10             send 10 

  01f2:39 06            pushi 6 // $6 loop
  01f4:78               push1 
  01f5:8b 11              lsl local17 
  01f7:3c                 dup 
  01f8:35 00              ldi 0 
  01fa:1a                 eq? 
  01fb:31 04              bnt code_0201 
  01fd:35 01              ldi 1 
  01ff:33 1c              jmp code_021d 

        code_0201
  0201:3c                 dup 
  0202:35 01              ldi 1 
  0204:1a                 eq? 
  0205:31 04              bnt code_020b 
  0207:35 03              ldi 3 
  0209:33 12              jmp code_021d 

        code_020b
  020b:3c                 dup 
  020c:35 02              ldi 2 
  020e:1a                 eq? 
  020f:31 04              bnt code_0215 
  0211:35 04              ldi 4 
  0213:33 08              jmp code_021d 

        code_0215
  0215:3c                 dup 
  0216:35 03              ldi 3 
  0218:1a                 eq? 
  0219:31 02              bnt code_021d 
  021b:35 02              ldi 2 

        code_021d
  021d:3a                toss 
  021e:36                push 
  021f:72 0224          lofsa $0446 // minuteHand
  0222:4a 06             send 6 

  0224:39 07            pushi 7 // $7 cel
  0226:78               push1 
  0227:8b 11              lsl local17 
  0229:35 01              ldi 1 
  022b:12                 and 
  022c:31 0d              bnt code_023b 
  022e:78               push1 
  022f:74 0214          lofss $0446 // minuteHand
  0232:43 0e 02         callk NumCels 2 

  0235:36                push 
  0236:35 01              ldi 1 
  0238:04                 sub 
  0239:33 02              jmp code_023d 

        code_023b
  023b:35 00              ldi 0 

        code_023d
  023d:36                push 
  023e:39 7e            pushi 7e // $7e setCycle
  0240:7a               push2 
  0241:8b 11              lsl local17 
  0243:35 01              ldi 1 
  0245:12                 and 
  0246:31 04              bnt code_024c 
  0248:51 1b            class Beg 
  024a:33 02              jmp code_024e 

        code_024c
  024c:51 1a            class End 

        code_024e
  024e:36                push 
  024f:7c            pushSelf 
  0250:38 00ca          pushi ca // $ca show
  0253:76               push0 
  0254:72 01ef          lofsa $0446 // minuteHand
  0257:4a 12             send 12 

  0259:32 0104            jmp code_0360 

        code_025c
  025c:3c                 dup 
  025d:35 02              ldi 2 
  025f:1a                 eq? 
  0260:30 0089            bnt code_02ec 
  0263:88 00bb            lsg gMinute 
  0266:35 00              ldi 0 
  0268:1a                 eq? 
  0269:31 65              bnt code_02d0 
  026b:88 00ba            lsg gHour 
  026e:35 07              ldi 7 
  0270:22                 lt? 
  0271:31 06              bnt code_0279 
  0273:35 01              ldi 1 
  0275:a5 00              sat temp0 
  0277:33 04              jmp code_027d 

        code_0279
  0279:35 05              ldi 5 
  027b:a5 00              sat temp0 

        code_027d
  027d:88 00ba            lsg gHour 
  0280:85 00              lat temp0 
  0282:04                 sub 
  0283:36                push 
  0284:35 02              ldi 2 
  0286:06                 mul 
  0287:a5 00              sat temp0 
  0289:39 0c            pushi c // $c nsRight
  028b:39 05            pushi 5 // $5 view
  028d:5b 04 01           lea 4 1 
  0290:36                push 
  0291:38 0196          pushi 196 // $196 sel_406
  0294:39 08            pushi 8 // $8 underBits
  0296:85 00              lat temp0 
  0298:9b 00             lsli local0 
  029a:c5 00              +at temp0 
  029c:9b 00             lsli local0 
  029e:43 4c 0a         callk Format a 

  02a1:36                push 
  02a2:39 43            pushi 43 // $43 at
  02a4:39 6c            pushi 6c // $6c addToEnd
  02a6:39 78            pushi 78 // $78 changeState
  02a8:39 21            pushi 21 // $21 font
  02aa:39 29            pushi 29 // $29 edit
  02ac:39 46            pushi 46 // $46 width
  02ae:39 64            pushi 64 // $64 allTrue
  02b0:39 1e            pushi 1e // $1e mode
  02b2:78               push1 
  02b3:39 53            pushi 53 // $53 draw
  02b5:39 58            pushi 58 // $58 dispose
  02b7:46 00ff 0000 18  calle ff procedure_0000 18 // Print 

  02bd:39 2b            pushi 2b // $2b number
  02bf:78               push1 
  02c0:39 5e            pushi 5e // $5e respondsTo
  02c2:39 06            pushi 6 // $6 loop
  02c4:78               push1 
  02c5:78               push1 
  02c6:39 2a            pushi 2a // $2a play
  02c8:76               push0 
  02c9:72 01c8          lofsa $0494 // clockChime
  02cc:4a 10             send 10 

  02ce:33 1a              jmp code_02ea 

        code_02d0
  02d0:39 2b            pushi 2b // $2b number
  02d2:78               push1 
  02d3:88 00bb            lsg gMinute 
  02d6:35 01              ldi 1 
  02d8:04                 sub 
  02d9:36                push 
  02da:35 5e              ldi 5e 
  02dc:02                 add 
  02dd:36                push 
  02de:39 06            pushi 6 // $6 loop
  02e0:78               push1 
  02e1:78               push1 
  02e2:39 2a            pushi 2a // $2a play
  02e4:76               push0 
  02e5:72 01ac          lofsa $0494 // clockChime
  02e8:4a 10             send 10 


        code_02ea
  02ea:33 74              jmp code_0360 

        code_02ec
  02ec:3c                 dup 
  02ed:35 03              ldi 3 
  02ef:1a                 eq? 
  02f0:31 51              bnt code_0343 
  02f2:76               push0 
  02f3:45 0f 00         callb procedure_000f 0 // cls 

  02f6:38 0089          pushi 89 // $89 hide
  02f9:76               push0 
  02fa:39 58            pushi 58 // $58 dispose
  02fc:76               push0 
  02fd:39 54            pushi 54 // $54 delete
  02ff:76               push0 
  0300:72 00f5          lofsa $03f8 // hourHand
  0303:4a 0c             send c 

  0305:38 0089          pushi 89 // $89 hide
  0308:76               push0 
  0309:39 58            pushi 58 // $58 dispose
  030b:76               push0 
  030c:39 54            pushi 54 // $54 delete
  030e:76               push0 
  030f:72 0134          lofsa $0446 // minuteHand
  0312:4a 0c             send c 

  0314:80 00df            lag gDetailLevel 
  0317:31 0e              bnt code_0327 
  0319:39 7e            pushi 7e // $7e setCycle
  031b:7a               push2 
  031c:51 1a            class End 
  031e:36                push 
  031f:7c            pushSelf 
  0320:72 0087          lofsa $03aa // clockFace
  0323:4a 08             send 8 

  0325:33 1a              jmp code_0341 

        code_0327
  0327:39 07            pushi 7 // $7 cel
  0329:78               push1 
  032a:38 00a6          pushi a6 // $a6 lastCel
  032d:76               push0 
  032e:72 0079          lofsa $03aa // clockFace
  0331:4a 04             send 4 

  0333:36                push 
  0334:38 00c7          pushi c7 // $c7 forceUpd
  0337:76               push0 
  0338:72 006f          lofsa $03aa // clockFace
  033b:4a 0a             send a 

  033d:35 02              ldi 2 
  033f:65 10             aTop cycles 

        code_0341
  0341:33 1d              jmp code_0360 

        code_0343
  0343:3c                 dup 
  0344:35 04              ldi 4 
  0346:1a                 eq? 
  0347:31 17              bnt code_0360 
  0349:38 0089          pushi 89 // $89 hide
  034c:76               push0 
  034d:39 58            pushi 58 // $58 dispose
  034f:76               push0 
  0350:39 54            pushi 54 // $54 delete
  0352:76               push0 
  0353:72 0054          lofsa $03aa // clockFace
  0356:4a 0c             send c 

  0358:39 7a            pushi 7a // $7a setScript
  035a:78               push1 
  035b:76               push0 
  035c:63 08             pToa client 
  035e:4a 06             send 6 


        code_0360
  0360:3a                toss 
  0361:48                 ret 
    )

)

// 03a4
(instance clockFace of Prop
    (properties
        y $2d
        x $9f
        z $0
        heading $0
        yStep $2
        view $282
        loop $0
        cel $0
        priority $f
        underBits $0
        signal $4010
        nsTop $0
        nsLeft $0
        nsBottom $0
        nsRight $0
        lsTop $0
        lsLeft $0
        lsBottom $0
        lsRight $0
        brTop $0
        brLeft $0
        brBottom $0
        brRight $0
        cycleSpeed $1
        script $0
        cycler $0
        timer $0
    )
)

// 03f2
(instance hourHand of Prop
    (properties
        y $2d
        x $9f
        z $0
        heading $0
        yStep $2
        view $282
        loop $0
        cel $0
        priority $f
        underBits $0
        signal $4010
        nsTop $0
        nsLeft $0
        nsBottom $0
        nsRight $0
        lsTop $0
        lsLeft $0
        lsBottom $0
        lsRight $0
        brTop $0
        brLeft $0
        brBottom $0
        brRight $0
        cycleSpeed $1
        script $0
        cycler $0
        timer $0
    )
)

// 0440
(instance minuteHand of Prop
    (properties
        y $2d
        x $9f
        z $0
        heading $0
        yStep $2
        view $282
        loop $0
        cel $0
        priority $f
        underBits $0
        signal $4010
        nsTop $0
        nsLeft $0
        nsBottom $0
        nsRight $0
        lsTop $0
        lsLeft $0
        lsBottom $0
        lsRight $0
        brTop $0
        brLeft $0
        brBottom $0
        brRight $0
        cycleSpeed $1
        script $0
        cycler $0
        timer $0
    )
)

// 048e
(instance clockChime of Sound
    (properties
        state $0
        number $0
        priority $f
        loop $1
        handle $0
        signal $0
        prevSignal $0
        client $0
        owner $0
    )
)



