改造の館 暫定掲示板
MECC形式のsubコードについて - どみにか
2024/12/08 (Sun) 16:51:10
皆さんこんにちは。
掲題の通りですけども、subコードについて教えてほしいです。
(もしかしたらグローバル変数の話かも?)
subコードで呼び出す処理内で、グローバル変数に値を設定しているのですが、呼び出し元でグローバル変数を参照しても、値が設定されていません。
なんで??っと思って、以下のコードでテストしたところ、$9の値は1のままで、呼び出した先で値が更新されていないようです。
--- メイン(testMain) ---
$9 = 1
sub testSub
STOP
--- サブ(testsub) ---
$9 = 2
---------------------
恐らく私が何かを盛大に勘違いしているのだろうなぁ、とは思っているのですけども。
・・・と、ここまで書いてふと思ったのですが、コードリストの左端のチェックを、メインはON、サブはOFFにしているのですが、これが間違い??
サブもONにするとサブ単独で呼び出しの対象になると認識しているので、OFFにしているのですが・・・
今試しましたが、サブ単独で呼び出されて意図した動作にはならなそうです。
書きながら試してグダってしまいましたけども、どなたかご教示ください。
ちなみにこのページ↓を参考にしながらコードを書いています。
https://web.archive.org/web/20190203190127/http://tyakata.com/mem_tool_code_format.html#MECC
現行バージョンは仕様が違う等ありましたら、最新仕様が分かるURLなども教えていただきたいです。
WHILE句の終了条件(カウンタ)もなぜか上手くいかないので、条件なしにしてIF文でBREAKさせたりしているので、参考元がまずい可能性もあるなぁ、と。
よろしくお願いします。
--------------
追記
Vectorでダウンロードしたやつって最新じゃないんすね・・・w
最新版(v7.080)で試してみます。
この投稿はただのスレ汚しになる可能性大。。。
--------------
追記②
バージョン7.080で試したところ・・・
現象変わらずでした。
蛇足で書いたWHILEの終了条件は正しく動いたのですけど。。。
やはり私が何かを勘違いしているようです。
サブ側にSTOPを書いても止まらなかったので、そもそも呼び出し方がおかしいのだろうと思っているのですけども。
ご指摘ください。
よろしくお願いします。
---
2024.12.11 誤字修正
Re: MECC形式のsubコードについて - ここたま
2024/12/08 (Sun) 19:23:41
どみにかさんへ
>>sub XX YY
>>XXに呼び出すコードの名称を指定
>>名称は、コードリストのコード内容欄
コードリストのコード内容はそれぞれ testMain / testSub ですか?
コード内容の名称がそのまま呼び出すルーチンの名称になるのでそこが違うとおそらく呼び出されていません。
確認してみてください。
Re: MECC形式のsubコードについて - どみにか
2024/12/08 (Sun) 20:04:25
回答ありがとうございます。
名前ですが、同じですね。
こういったのはコピペでやりますし(自分の入力精度は信用してませんw)、実際のコード名も、testMain/testSubも、同じ名前になっています。
Re: MECC形式のsubコードについて - ここたま
2024/12/10 (Tue) 21:15:27
どみにかさんへ
原因がようやく判明しました。
sub のコード名が英大文字でないばあいは反応しないようです。
( Test / test / tEST などはすべてNG )
コード名は英大文字のみにすると呼ぶようです。
当然ながらコードリストのコード内容も英大文字のみとなります。
これで試してみてください。
Re: MECC形式のsubコードについて - どみにか
2024/12/11 (Wed) 08:01:55
なんと!?
そ、そんな制約が…予想だにせぬ・・・いやでもまぁ、昔、denso basic だったか、なんちゃらbasic…うん、忘れたけども、定義は全て大文字じゃなきゃダメな言語があったなぁ確かに。
なので予想だにしないは言いすぎ、試行すべき、思いつくべきでありました。
ここたまさん、本当にありがとうございます。
いっぱい時間を使ってもらっちゃいましたよね。
何も返せないのが心苦しいですが、とにかく感謝!!