リンク先の私のサンプルは縦横が同じサイズの画像でないと正しく表示できないので
縦横比率を正しく表示できるサンプルを書いてみました。
    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