リンク先の私のサンプルは縦横が同じサイズの画像でないと正しく表示できないので
縦横比率を正しく表示できるサンプルを書いてみました。
buffer 1, 800, 600 ; コピー画像用バッファ
color 255 : boxf
src_x = 800 ; コピーする画像のXサイズ
src_y = 600 ; コピーする画像のYサイズ
zp_x = double(src_x) / 100 ; 1%分のXサイズ
zp_y = double(src_y) / 100 ; 1%分のYサイズ
screen 0, 800, 600
zr_x = 10 ; 最初に表示するXサイズの比率(%)
zr_y = 10 ; 最初に表示するYサイズの比率(%)
center_x = 400 ; 表示の中心座標X
center_y = 300 ; 表示の中心座標Y
*main
redraw 0
color 255, 255, 255 : boxf
xsize = int(zp_x * zr_x) ; 表示するXサイズ
ysize = int(zp_y * zr_y) ; 表示するYサイズ
cx = center_x - xsize / 2 ; 表示するX座標の計算(中心座標X=400)
cy = center_y - ysize / 2 ; 表示するY座標の計算(中心座標Y=300)
pos cx , cy
gzoom xsize, ysize, 1, 0, 0, 800, 600
stick key, 10 ; 上下キーで拡大縮小(1%〜100%)
; ↓limitで1%〜100%までの値に限定
if key & 2 : zr_x = limit(zr_x + 1, 1, 100) : zr_y = limit(zr_y + 1, 1, 100)
if key & 8 : zr_x = limit(zr_x - 1, 1, 100) : zr_y = limit(zr_y - 1, 1, 100)
title "表示比率=" + zr_x + "% Xサイズ=" + xsize + " Yサイズ=" + ysize
redraw 1
wait 1
goto *main