描画範囲の外が、まったく手付かずだからだと思います。
hgview 0,0,600,385 を実行すると、描画する範囲が(0,0)-(600,385)になります。
hgdraw 1 を実行することで、先に指定した範囲内に絵が描かれます。
screen命令で画面の縦を480ドットに指定しているのに対し、描画範囲の縦は385のままなので、
その外側、手付かずになっている386から480の部分は、謎データが出てきてしまうのです。
回避案を、いくつか紹介します。
その1
hgview 0,0,600,385の前に、hgdraw 2を入れる。
「なにも描画しない画面」を描画することで、386〜480の間がきれいに背景色で塗りつぶされます。
(ただし、この方法だとスプライト等が表示されないという欠点があります)
例)
hgdraw 2 ;いったん、「何も描画しない」で全体を描いてしまう。
hgview 0,0,600,385 ;範囲を指定して、
hgdraw 1 ;描く。
その2
まず、カメラのnearとfarの値を0にして全体を描く。次に、領域内を描く。
例)
getefx HGOBJ_CAMERA,fov,near,far ;現在のカメラ情報を記憶しておく
setefx HGOBJ_CAMERA,fov,0,0 ;far,nearを0にしたカメラにして
hgdraw ;全体を描く。
setefx HGOBJ_CAMERA,fov,near,far ;もとのカメラに戻して
hgview 0,0,600,385 ;範囲を指定し、
hgdraw 1 ;範囲内を描く。
この方法だと、範囲外にあるスプライト等も、きちんと表示されます。