Annotation of uae/uae-ui.tk, revision 1.1.1.1

1.1       root        1: 
                      2: set Program(Name)    "UAE"
                      3: set Program(Version) "0.4"
                      4: 
                      5: wm title      . "$Program(Name)"
                      6: wm iconname   . $Program(Name)
                      7: wm grid       . 1 1 1 1
                      8: 
                      9: proc Bye {} {
                     10:   global outpipe
                     11:   puts $outpipe "bye"
                     12:   flush $outpipe
                     13:   close $outpipe
                     14:   exit
                     15: }
                     16: 
                     17: proc Eject {num} {
                     18:     global outpipe
                     19:     puts $outpipe "eject"
                     20:     puts $outpipe "$num"
                     21:     flush $outpipe
                     22: }
                     23: 
                     24: proc Nuke {} {
                     25:     global outpipe
                     26:     puts $outpipe "reset"
                     27:     flush $outpipe
                     28: }
                     29: 
                     30: proc Dbug {} {
                     31:     global outpipe
                     32:     puts $outpipe "debug"
                     33:     flush $outpipe
                     34: }
                     35: 
                     36: proc FilenameDialog {w title label} {
                     37:   global win
                     38:   global oldFocus
                     39:   global ReturnValue
                     40:   
                     41:   set win $w
                     42:   catch {destroy $win}
                     43:   toplevel $win -class Dialog
                     44:   wm title $win $title
                     45:   frame $win.top -relief raised -bd 1
                     46:   pack $win.top -side top -fill both
                     47:   frame $win.bot -relief raised -bd 1
                     48:   pack $win.bot -side bottom -fill both
                     49: 
                     50:   message $win.top.message -text $label \
                     51:       -width 3i -justify left
                     52: 
                     53:   entry $win.top.entry -width 20 -relief sunken
                     54:   $win.top.entry icursor 0
                     55:   bind $win.top.entry <Return> {
                     56:         set ReturnValue [$win.top.entry get]
                     57:        catch {focus $oldFocus}
                     58:        destroy $win
                     59:       }
                     60: 
                     61:   ## Create the OK and Cancel button field
                     62:   frame $win.bot.buttons
                     63:     button $win.bot.buttons.ok -text "Okay" \
                     64:         -command { set ReturnValue [$win.top.entry get]
                     65:                   catch {focus $oldFocus}
                     66:                   destroy $win
                     67:                  }
                     68:     button $win.bot.buttons.cancel -text "Cancel" \
                     69:         -command { set ReturnValue ""; 
                     70:                    catch {focus $oldFocus}
                     71:                   destroy $win
                     72:                 }
                     73:     pack $win.bot.buttons.ok -side left -expand 1 -padx 3m -pady 2m
                     74:     pack $win.bot.buttons.cancel -side right -expand 1 -padx 3m -pady 2m
                     75: 
                     76:   pack $win.top.message -side top -fill x -pady 4 -padx 4
                     77:   pack $win.top.entry -side top -fill x -pady 4 -padx 4
                     78:   pack $win.bot.buttons -side top -fill x -pady 4
                     79: 
                     80:   set oldFocus [focus]
                     81:   grab $w
                     82:   tkwait visibility $win
                     83:   focus $win.top.entry
                     84:   tkwait window $win
                     85:   return $ReturnValue
                     86: }
                     87: 
                     88: 
                     89: proc Insert {num} {
                     90:     global outpipe
                     91:     global inpipe
                     92:     puts $outpipe "insert"
                     93:     puts $outpipe "$num"
                     94:     flush $outpipe
                     95:     set isok [gets $inpipe]
                     96:     if {[string compare $isok "ok"] == 0} {
                     97:       set filename [FilenameDialog .foo "Select file" "Select a diskfile for drive $num"]
                     98:       puts $outpipe $filename
                     99:       flush $outpipe
                    100:     } else {
                    101:       tk_dialog .foo {Error} {Drive is not empty. Use Eject first.} {} 0 OK
                    102:     }
                    103:     
                    104: }
                    105: 
                    106: proc readdata {} {
                    107:   global inpipe
                    108:   global file0
                    109:   global file1
                    110:   global file2
                    111:   global file3
                    112: 
                    113:   set command [gets $inpipe]
                    114:   if {[string compare $command "power 0"] == 0} {
                    115:     .brs.powerled config -bg #000000000000
                    116:   } elseif {[string compare $command "power 1"] == 0} {
                    117:     .brs.powerled config -bg #ffff00000000
                    118:   } elseif {[string compare $command "driveled 1"] == 0} {
                    119:     set command [gets $inpipe]
                    120:     .drives.x$command.led config -bg #ffffffff0000
                    121:   } elseif {[string compare $command "driveled 0"] == 0} {
                    122:     set command [gets $inpipe]
                    123:     .drives.x$command.led config -bg #000000000000
                    124:   } elseif {[string compare $command "drivename"] == 0} {
                    125:     set number [gets $inpipe]
                    126:     set file$number [gets $inpipe]
                    127:   } 
                    128: }
                    129: 
                    130: proc OpenPipes {} {
                    131:   global env
                    132:   global outpipe
                    133:   global inpipe
                    134:   set args $env(ARGS)
                    135: 
                    136:   if {[llength $args] != 2} {
                    137:       exit
                    138:   }
                    139:   set outpipe [open [lindex $args 0] "w"]
                    140:   set inpipe [open [lindex $args 1] "r"]
                    141:   puts $outpipe "Startup"
                    142:   flush $outpipe
                    143: }
                    144: 
                    145: frame .drives -relief raised -borderwidth 2
                    146:     label .drives.title -text "Floppy drives"
                    147:     frame .drives.x3 -relief sunken -borderwidth 2
                    148:     label .drives.x3.name -text "DF3:"
                    149:     frame .drives.x3.f
                    150:     label .drives.x3.f.file -width 30 -textvariable file3
                    151:     button .drives.x3.eject -text "Eject" -command {Eject 3}
                    152:     button .drives.x3.insert -text "Insert" -command {Insert 3}
                    153:     frame .drives.x3.led -width 1c -height .3c -relief groove -borderwidth 2 -background #000000000000
                    154:     pack .drives.x3 -side bottom -expand yes -fill both 
                    155:     pack .drives.x3.name -side left
                    156:     pack .drives.x3.f -side left
                    157:     pack .drives.x3.f.file -side left
                    158:     pack .drives.x3.eject -side left
                    159:     pack .drives.x3.insert -side left
                    160:     pack .drives.x3.led -side left
                    161: 
                    162:     frame .drives.x2 -relief sunken -borderwidth 2
                    163:     label .drives.x2.name -text "DF2:"
                    164:     frame .drives.x2.f
                    165:     label .drives.x2.f.file -width 30 -textvariable file2
                    166:     button .drives.x2.eject -text "Eject" -command {Eject 2}
                    167:     button .drives.x2.insert -text "Insert" -command {Insert 2}
                    168:     frame .drives.x2.led -width 1c -height .3c -relief groove -borderwidth 2 -background #000000000000
                    169:     pack .drives.x2 -side bottom -expand yes -fill both 
                    170:     pack .drives.x2.name -side left
                    171:     pack .drives.x2.f -side left
                    172:     pack .drives.x2.f.file -side left
                    173:     pack .drives.x2.eject -side left
                    174:     pack .drives.x2.insert -side left
                    175:     pack .drives.x2.led -side left
                    176: 
                    177:     frame .drives.x1 -relief sunken -borderwidth 2
                    178:     label .drives.x1.name -text "DF1:"
                    179:     frame .drives.x1.f
                    180:     label .drives.x1.f.file -width 30 -textvariable file1
                    181:     button .drives.x1.eject -text "Eject" -command {Eject 1}
                    182:     button .drives.x1.insert -text "Insert" -command {Insert 1}
                    183:     frame .drives.x1.led -width 1c -height .3c -relief groove -borderwidth 2 -background #000000000000
                    184:     pack .drives.x1 -side bottom -expand yes -fill both 
                    185:     pack .drives.x1.name -side left
                    186:     pack .drives.x1.f -side left
                    187:     pack .drives.x1.f.file -side left
                    188:     pack .drives.x1.eject -side left
                    189:     pack .drives.x1.insert -side left
                    190:     pack .drives.x1.led -side left
                    191: 
                    192:     frame .drives.x0 -relief sunken -borderwidth 2
                    193:     label .drives.x0.name -text "DF0:"
                    194:     frame .drives.x0.f
                    195:     label .drives.x0.f.file -width 30 -textvariable file0
                    196:     button .drives.x0.eject -text "Eject" -command {Eject 0}
                    197:     button .drives.x0.insert -text "Insert" -command {Insert 0}
                    198:     frame .drives.x0.led -width 1c -height .3c -relief groove -borderwidth 2 -background #000000000000
                    199:     pack .drives.x0 -side bottom -expand yes -fill both 
                    200:     pack .drives.x0.name -side left
                    201:     pack .drives.x0.f -side left
                    202:     pack .drives.x0.f.file -side left
                    203:     pack .drives.x0.eject -side left
                    204:     pack .drives.x0.insert -side left
                    205:     pack .drives.x0.led -side left
                    206:     
                    207:     pack .drives.title -side top
                    208: 
                    209: frame .brs -relief raised -borderwidth 2
                    210:   label .brs.title -text "Emulator control"
                    211:   frame .brs.powerled -width 1c -height .3c -relief groove -borderwidth 2 -background #ffff00000000
                    212:   button .brs.reset -text "Hard reset" -command { Nuke }
                    213:   button .brs.debug -text "Debug" -command { Dbug }
                    214:   button .brs.quit -text "Exit" -command { Bye }
                    215:   pack .brs.title -side top
                    216:   pack .brs.reset -side left
                    217:   pack .brs.debug -side left
                    218:   pack .brs.quit -side left
                    219:   pack .brs.powerled -side right
                    220: 
                    221: pack .drives -side bottom -fill x
                    222: pack .brs -side bottom -fill x
                    223: .brs.powerled config -bg #000000000000
                    224: OpenPipes
                    225: fileevent $inpipe readable {readdata}

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.