-
Notifications
You must be signed in to change notification settings - Fork 12
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ビッグエンディアン対応 #16
Comments
ビッグエンディアン環境でもIchigoJam BASIC仮想マシン的にはリトルエンディアンにする形で対応する感じがいいですね |
変数に関してはvarへの格納/読み出しの際にリトルエンディアンならそのまま、ビッグエンディアンならバイトオーダーを変えて格納、で良さそうに思われます。 BASICリストに含まれる行番号なのですが、basic.hにあるBASICリストの格納形式とプログラムの構造を見るに、
問題としては
があるのではないかと想定します。 |
(出先なので簡単に)この問題は以前PRに出したALLOW_UNALIGNED_ACCESS(#15)に関する問題の解決もできる反面、setLength()などはS_INLINE付きだったと記憶しているので、LPC1114向けのバイナリサイズの変化も勘案して検討する必要がありますね。 |
basic.hを
この部分だけ改造してARMv6-M向けにビルドしてみましたが、
バイナリサイズは若干増加するようです。 #15は#15で、こちらはこちらで解決していくしかなさそうです。また、2byte alignするための |
ビッグエンディアンのマシンでIchigoJam-BASICを動かすケースがどの程度あるかはわからないのですが(秋月電子のH8ボードで動かしたいという需要はあるかも)…コードをざっと見るに、以下の部分で非互換が発生しそうです。
1.についてはBASICプログラムの非互換が、2.については例えばEEPROMカートリッジのエミュレーションを行いそのROMイメージをやり取りするような場合に支障が起こるのではないかと想定します。
The text was updated successfully, but these errors were encountered: