#!/root/bin/ish -f

option readfile /root/lib/X11/app-defaults/Mem
i2c mem
mem adr 164
mem mdel 6
mem udel 6

set num 0
for {set i 0} {$i<16} {incr i} {
	frame .$i
	for {set j 0} {$j<16} {incr j} {
		set v($i,$j) " " 
		label .$i.$j  -wi 4 -textvar v($i,$j) -bd 1 -rel sunken -font *fixed*16*
 		bind .$i.$j <Enter> "set v($i,$j) \[ chr \[ mem re $num 1\] \]"
                
                bind .$i.$j <Button-1>  "focus %W"
                bind .$i.$j <Button-2> 	"mem wr $num \[ord \"\$v($i,$j)\"\]"

		bind .$i.$j <Any-FocusIn> "set v($i,$j) \[ chr \[ mem re $num 1\] \]
			.$i.$j conf -relief raised"
                bind .$i.$j <Any-FocusOut> ".$i.$j conf -relief sunken"

		bind .$i.$j <Any-Key>	"set v($i,$j) %A"
                bind .$i.$j <Up>	"focus .[expr (15 + $i ) % 16 ].$j"
		bind .$i.$j <Down>	"focus .[expr (17 + $i ) % 16 ].$j"
                bind .$i.$j <Left>  	"focus .$i.[expr (15 + $j ) % 16 ]"
                bind .$i.$j <Right>  	"focus .$i.[expr (17 + $j ) % 16 ]"  
                bind .$i.$j <Any-Return>  "mem wr $num \[ord \"\$v($i,$j)\" \]"
		pack .$i.$j -side left
		incr num
	}
	pack .$i -side top
}

frame .a
label .a.l -text "chip address"
set adr [ mem adr ]
entry .a.e -width 5 -textvar adr -bd 1 -rel sunken
bind .a.e <Any-Return> { mem adr [.a.e get] }
pack .a 
pack .a.l .a.e -side left -anch c
. conf -back midnightblue
