バイナリファイル(バイナリデータ)の編集で関連しそうなHSPの命令。


  • poke / wpoke / lpoke ... 1/2/4バイト分の書き込み
  • memcpy ... メモリブロックのコピー(移動)
  • memset ... メモリブロックのクリア
  • memexpand ... メモリブロックのサイズ拡張
  • bload / bsave ... バイナリファイルの入出力

 ファイルのバイナリデータを(バイナリエディタ風に)表示するHSP(HSP3)のコード。もっとウマイ具合に書けるような気がするけど、何だか頭が回らん。イメージ 1


// バイナリデータのテキトー表示 (by 無題な濃いログ)

; 等幅フォント
 font "MS ゴシック", 14

 dialog "", 16
 if stat = 0 : stop

; ひとまず256バイト分
 sdim buf, 256
 bload refstr, buf

; 描画一時停止
 redraw 0

; 最初の0x00000000のアドレス表示
 mes ""+strf(" %08X |", 0)
 position.0 = ginfo(14)
 position.1 = 0

 repeat strsize
; 1バイト分読んで表示
  pos position.0, position.1
  mes strf(" %02X", peek(buf, cnt))

;  下の段へ
  if cnt \ $10 = 15 {
   position.1 + ginfo(15)

;  アドレス表示
   pos 0, position.1
   mes strf(" %08X |", cnt + 1)

   position.0 = ginfo(14)
  } else {
   position.0 + ginfo(14)
  }
 loop

; 描画反映
 redraw