It seems like this tweek of the one I previously posted works the way you want it to.
SuperStrict
Graphics 640,480,0
Cls
SetColor 255,0,0
DrawRect 0,0,128,128
dCircle(64,64,64,255,255,255)
SetColor 0,0,128
Flip
While Not KeyHit(KEY_ESCAPE)
Wend
End
Function dCircle(xCenter:Int,yCenter:Int,radius:Int,cRed:Int,cGre:Int,cBlu:Int)
Local cR:Int,cG:Int,cB:Int
Local p:Int,x:Int,y:Int
' store current color
cR = GetColor(cR,cG,cB)
' set draw color
SetColor cRed,cGre,cBlu
x=0
y=radius
Plot xCenter+x-1,yCenter+y-1
Plot xCenter-x,yCenter+y-1
Plot xCenter+x-1,yCenter-y
Plot xCenter-x,yCenter-y
Plot xCenter+y-1,yCenter+x-1
Plot xCenter-y,yCenter+x-1
Plot xCenter+y-1,yCenter-x
Plot xCenter-y,yCenter-x
p=1-radius
While x<y
If p<0
x:+1
Else
x:+1
y:-1
EndIf
If p<0
p=p+(x Shl 1)+1
Else
p=p+((x-y) Shl 1)+1
EndIf
Plot xCenter+x-1,yCenter+y-1
Plot xCenter-x,yCenter+y-1
Plot xCenter+x-1,yCenter-y
Plot xCenter-x,yCenter-y
Plot xCenter+y-1,yCenter+x-1
Plot xCenter-y,yCenter+x-1
Plot xCenter+y-1,yCenter-x
Plot xCenter-y,yCenter-x
Wend
' restore drawing color
SetColor cR,cG,cB
End Function