if ($did(dialog1,30).state == 0){ /set %var1 $asc($did(40).text) }


No space between comparison and opening bracket. Im surprised you didnt get a bracket mismatch errror. Or do you not check for those?