(include "sci.sh")
(use "Main")
(use "brain")
(use "Sound")
(use "Cycle")
(use "PicView")
(use "Obj")
(script 152)


(local
    local0
    local1
    local2[3]
    local7 = 1
    local6
    local7

)
(procedure (localproc_000e)
    (var temp0[20])
    (asm
        lal     local0
        bnt     code_001a
        pushi   1
        push    
        callb   proc0_12, 2
code_001a:lal     local1
        bnt     code_0024
        pushi   1
        push    
        callb   proc0_12, 2
code_0024:pushi   5
        lea     @temp0
        push    
        pushi   152
        pushi   0
        lsl     local6
        ldi     1
        eq?     
        bnt     code_003c
        lofsa   ">"
        jmp     code_003f
code_003c:lofsa   " "
code_003f:push    
        ldi     1
        lsli    local2
        dup     
        eq?     
        bnt     code_004f
        lofsa   "VOHAUL"
        jmp     code_005f
code_004f:dup     
        ldi     2
        eq?     
        bnt     code_005c
        lofsa   "ROGER JR"
        jmp     code_005f
code_005c:lofsa   " "
code_005f:toss    
        push    
        callk   Format, 10
        pushi   10
        lea     @temp0
        push    
        pushi   67
        pushi   62
        pushi   10
        pushi   28
        lsg     global137
        pushi   29
        lsg     global129
        pushi   70
        pushi   75
        callb   proc0_12, 20
        sal     local0
        pushi   5
        lea     @temp0
        push    
        pushi   152
        pushi   0
        lsl     local6
        ldi     2
        eq?     
        bnt     code_0099
        lofsa   ">"
        jmp     code_009c
code_0099:lofsa   " "
code_009c:push    
        ldi     2
        lsli    local2
        dup     
        ldi     1
        eq?     
        bnt     code_00ae
        lofsa   "VOHAUL"
        jmp     code_00be
code_00ae:dup     
        ldi     2
        eq?     
        bnt     code_00bb
        lofsa   "ROGER JR"
        jmp     code_00be
code_00bb:lofsa   " "
code_00be:toss    
        push    
        callk   Format, 10
        pushi   10
        lea     @temp0
        push    
        pushi   67
        pushi   62
        pushi   20
        pushi   28
        lsg     global137
        pushi   29
        lsg     global129
        pushi   70
        pushi   75
        callb   proc0_12, 20
        sal     local1
        ret     
    )
)


(instance public driveCloseUp of View
    (properties
        x 76
        y 81
        description "control panel"
        lookStr "It is the brain's control panel."
        view 150
        priority 13
        signal 16
    )

    (method (init)
        (super:init())
        (send gIconBar:disable(0 3 4 5 6 7))
        (self:stopUpd())
        (driveUpBut:init())
        (beamUpBut:init())
        (driveDownBut:init())
        (beamDownBut:init())
        (upArrowBut:init())
        (downArrowBut:init())
        (driveSlot:init())
    )


    (method (dispose)
        (send gIconBar:enable())
        (driveUpBut:dispose())
        (beamUpBut:dispose())
        (driveDownBut:dispose())
        (beamDownBut:dispose())
        (upArrowBut:dispose())
        (downArrowBut:dispose())
        (driveSlot:dispose())
        (send global2:drawPic((send global2:picture)))
        (send (ScriptID(150 2)):setMotion(MoveTo 120 110 ScriptID(150 2)))
        (super:dispose())
    )

)
(instance driveUpBut of Prop
    (properties
        x 28
        y 121
        z 100
        description "drive upload button"
        view 150
        loop 2
        priority 12
        signal 16
    )

    (method (doVerb param1 param2)
        (switch (param1)
            (case 2
                (send global2:setScript(buttonScript 0 self))
            )
            (default 
                (super:doVerb(param1 rest param2))
            )
        )
    )

)
(instance driveDownBut of Prop
    (properties
        x 28
        y 140
        z 100
        description "drive download button"
        view 150
        loop 3
        priority 12
        signal 16
    )

    (method (doVerb param1 param2)
        (switch (param1)
            (case 2
                (send global2:setScript(buttonScript 0 self))
            )
            (default 
                (super:doVerb(param1 rest param2))
            )
        )
    )

)
(instance beamUpBut of Prop
    (properties
        x 28
        y 159
        z 100
        description "beam upload button"
        view 150
        loop 4
        priority 12
        signal 16
    )

    (method (doVerb param1 param2)
        (switch (param1)
            (case 2
                (send global2:setScript(buttonScript 0 self))
            )
            (default 
                (super:doVerb(param1 rest param2))
            )
        )
    )

)
(instance beamDownBut of Prop
    (properties
        x 28
        y 178
        z 100
        description "beam download button"
        view 150
        loop 5
        priority 12
        signal 16
    )

    (method (doVerb param1 param2)
        (switch (param1)
            (case 2
                (send global2:setScript(buttonScript 0 self))
            )
            (default 
                (super:doVerb(param1 rest param2))
            )
        )
    )

)
(instance upArrowBut of Prop
    (properties
        x 143
        y 125
        z 100
        description "up arrow"
        view 150
        loop 6
        priority 12
        signal 16
    )

    (method (doVerb param1 param2)
        (switch (param1)
            (case 2
                (send global2:setScript(buttonScript 0 self))
            )
            (default 
                (super:doVerb(param1 rest param2))
            )
        )
    )

)
(instance downArrowBut of Prop
    (properties
        x 143
        y 147
        z 100
        description "down arrow"
        view 150
        loop 7
        priority 12
        signal 16
    )

    (method (doVerb param1 param2)
        (switch (param1)
            (case 2
                (send global2:setScript(buttonScript 0 self))
            )
            (default 
                (super:doVerb(param1 rest param2))
            )
        )
    )

)
(instance driveSlot of Prop
    (properties
        x 64
        y 573
        z 500
        description "drive slot"
        lookStr "It is the disk drive slot."
        view 150
        loop 1
        cel 1
        priority 14
        signal 16
    )
)
(instance beep of Sound
    (properties
        number 102
    )
)
(instance buttonScript of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                (beep:play())
                (send register:setPri(15))
                = cycles 1
            )
            (case 1
                (switch (register)
                    (case driveDownBut
                        (if (== (send ((send global9:at(14))):owner) ScriptID(150 2))
                            proc704_6(152 1)
                        )(else
                            proc704_6(152 2)
                        )
                    )
                    (case beamDownBut
                        (if (local7)
                            proc704_6(152 3)
                            = register 0
                        )(else
                            (if (not local6)
                                proc704_6(152 4)
                                = register 0
                            )(else
                                proc704_6(152 5)
                                = local7 local2[local6]
                                (if (== local6 1)
                                    = local2[1] local2[2]
                                    = local2[2] 0
                                )(else
                                    = local2[2] 0
                                    = local6 1
                                )
                                (beep:dispose())
                            )
                        )
                        (if (register and (== local7 1))
                            (send global2:notify(-1))
                        )(else
                            proc0_11(66 25)
                        )
                    )
                    (case driveUpBut
                        (if (local7)
                            proc704_6(152 6)
                        )(else
                            (if (== (send ((send global9:at(14))):owner) ScriptID(150 2))
                                (if (not 
                                (if (== local2[1] 2)
                                )(else
                                    == local2[2] 2
                                )
)
                                    proc704_6(152 7)
                                    (if (local2[1])
                                        = local2[2] 2
                                    )(else
                                        = local2[1] 2
                                        = local6 1
                                    )
                                    localproc_000e()
                                    = local7 1
                                )(else
                                    proc704_6(152 8)
                                )
                            )(else
                                proc704_6(152 2)
                            )
                        )
                    )
                    (case beamUpBut
                        (switch (local7)
                            (case 0
                                proc704_6(152 9)
                            )
                            (case 1
                                proc704_6(152 10)
                                (if (local2[1])
                                    = local2[2] 1
                                )(else
                                    = local2[1] 1
                                    = local6 1
                                )
                                = local7 0
                                localproc_000e()
                            )
                            (case 2
                                proc704_6(152 11)
                                (if (local2[1])
                                    = local2[2] 2
                                )(else
                                    = local2[1] 2
                                    = local6 1
                                )
                                = local7 0
                                localproc_000e()
                            )
                        )
                    )
                    (case upArrowBut
                        (if (> local6 1)
                            --local6
                            localproc_000e()
                        )
                    )
                    (case downArrowBut
                        (if (local2[2] and (< local6 2))
                            ++local6
                            localproc_000e()
                        )
                    )
                )
                = cycles 1
            )
            (case 2
                (if (== register beamDownBut)
                    (driveCloseUp:dispose())
                )
                (if (not register)
                    = register beamDownBut
                )
                (send register:setPri(12))
                (self:dispose())
            )
        )
    )

)
