どうやらAndroid4.4以降、自由にSDカードに保存ができないみたいです。
参考文献
https://qiita.com/ariarijp/items/aa365ff47b6e572be3d4
通常は<SDカードのパス>/Android/data/<アプリのパッケージ名>の下にしか
ファイルを書き込めない?らしいです。(なんで直下は書き込めるか謎)
上記文献を元に書いてみたコード。
#include "hsp3dish.as"
screen 0,480,800
dim sdata,30,30,30
redraw 0
color 0, 0, 0
boxf
color 255, 255, 255
// カレントフォルダ移動
chdir "/mnt/sdcard/Android/data/"
// システム的に、カレントフォルダを取得できていないみたい(移動はしてる)
mes "["+dir_cur+"]"
// フォルダの存在確認
dirlist s, "msksave", 5
if (stat == 0) {
// フォルダが存在しないので作る
mkdir "/mnt/sdcard/Android/data/msksave"
mes "フォルダを作成しました"
}
else {
// フォルダはあるので何もしない
mes "フォルダは存在します"
}
// フォルダにファイルをセーブする
bsave "/mnt/sdcard/Android/data/msksave/ms-sdata.sav", sdata
mes "セーブしました"
redraw 1
stop
あとfさんも言っていますが、機種によってSDのフォルダ名が
全く異なる場合や、そもそもSDカードがない機種等もありますので
その辺をどうするかは、考えてみてください。