通常のgosubは gosub *ラベル から *ラベル に飛び
return で gosub *ラベル の次の命令に移る
buttonのgosub *ラベル はボタンが押されていたら
stop、awit、wait が実行された時に *ラベル に飛び
return で、飛んでくる元の場所(stop、awit、wait)に戻る
(wait系は実質次の命令)
//ボタンは一度作ったら cls、clrobで削除、picload等でウィンドウが初期化されるまで消えない
button gosub "ラベルA",*ラベルA ;ここからラベル行まで飛ぶ訳では無い(ここではボタンを表示させているだけ)
button goto "終了",*終了 ;終了ボタン表示
repeat
gosub *ラベルB ;ここを通る度に *ラベルBに飛ぶ(returnで戻ってきて次の命令に移る)
//waitじゃ無くstopの場合returnでstopに戻るので次の命令には進まない
await 10 ;ラベルAが押されていたら *ラベルA に飛ぶ(returnで戻って来る、残りのwaitは無視される)、終了が押されたら終了
title "ラベルA("+str(a)+") ラベルB("+str(b)+")"
loop
*ラベルA
a++
return ;*ラベルAに飛んで来た元の場所に戻る
*ラベルB
b++
return ;gosub *ラベルB の次の命令に飛ぶ
*終了
end