'is this a bug?

include "$/inc/console.inc"

dim a,b as double
global r as int

sub _print()
============================
	if r=1 then 
		printl "YES is an exact root"
	else
		printl "NO it is not an exact root"
	end if
	printl
	r=0
end sub

GetConsoleMode(ConsIn,r)
print "Cons input mode: " hex (r) cr
a=0
SetConsoleMode(ConsIn,0x1B7)
'====== MAIN ===============
do

r=0
'printl "input a number: "
a ++
'a=input()
'a = ltrim rtrim Input ' per togliere caratteri da input tipo CR
if a=0 then exit do
'cls

int i
GetConsoleMode(ConsIn,i)
print "Cons input mode: " hex (i) cr

for i=1 to len(a)
  print  ">>" i tab asc(a,i) cr
next

b = sqrt(a)
print  "a       = " a  cr
printl "SQRT(a) = " b

printl "Text if the result = INT(result)"
if b=int(b) then r=1 : end if
_print

printl "Text if the FRAC(result) has a fractional component"
if frac(b)=0 then 
	r=1 
end if
_print

printl "Text if result = TRUNC(result)"
if b=trunc(b) then 
	r=1 
end if
_print

printl "Test if Result - INT(result) = 0"
if b - int(b) = 0 then
	r=1
end if
_print

printl "Test if INT(Result)^2 = number in input"
if int(b)*int(b) = a then
	r=1
end if
_print

printl "-------------------------------------------"
waitkey
loop



