z88dk-sccz80でビルドにコケるとなると、あとはz88dk-sdccでどうなるかを見るしか無いんだけど…もう一回試すしかないのかなあ。全然気が進まない。
OpenBSD(uaa@), Ham(JG1UAA), Ingress(Lv14, RES), Japanese(Sagamihara-city, Kanagawa)
Another side: https://social.tchncs.de/@uaa
npub1rarr265r9f9j6ewp960hcm7cvz9zskc7l2ykwul57e7xa60r8css7uf890
Messages from this Mastodon account can read via mostr.pub with npub1j3un8843rpuk4rvwnd7plaknf2lce58yl6qmpkqrwt3tr5k60vfqxmlq0w
z88dk-sccz80でビルドにコケるとなると、あとはz88dk-sdccでどうなるかを見るしか無いんだけど…もう一回試すしかないのかなあ。全然気が進まない。
ん-、printf()だとマズくなる系か(-O0でもコケる)。
とはいえ、putc()の類でも-O1でデバッグプリント突っ込むと却っておかしくなる現象あるし…安全策として-O0で行くしか無いかも。最適化しても32kB超えてるとなると、MSXのROM化しようなんて話も無理になるし(MEGAROM化ってのは流石にちょっと…)。
-O0
-rw-r--r-- 1 uaa users 47652 Apr 13 21:57 IchigoJam_BASIC
-O1
-rw-r--r-- 1 uaa users 36734 Apr 13 21:58 IchigoJam_BASIC
-O2
-rw-r--r-- 1 uaa users 36767 Apr 13 21:57 IchigoJam_BASIC
なんかz88dk-sccz80、最適化にバグ抱えてそうな感じ。ーO1だとデバッグプリント入れたら逆に動かないんだけどなんなのこれ…
デバッグプリントを有効にすると何故動く…(その割にデバッグプリントの表示がおかしいんだけど…)
お仕事じゃないので最悪の場合は「ぶん投げる」というのが使えるので、まだ気が楽なんですけど…正直このシチュエーションは嫌ですな。端から見ると「ちゃんと動いているソースすら移植できないなんて、レベル低っpgr」な状況ですからね。
tokenizerは確かにz88dk-sccz80でビルドが通るように手を入れているけど、手を入れる前後で相違がないようかなり神経使ってるし今gcc上でテストしても問題無いからこの部分の可能性は高くない気がするんだけど。
うーん、blueMSXだとウォッチポイントは仕掛けられないんだろうか。実際は特定アドレスへの書き込みじゃなく、読みだしたタイミングでブレークかけてステップ実行で追いたいんだけど。
DOS向けに手軽にコード吐ける環境…流石にBruce Evans'は心許ないし、LSI-C試食版って訳にもいかんだろうから…OpenWATCOM辺りを持ち出さないといかんかなあ。gcc-ia16はどうなんだろう。
でもSyntax error in 20ということは行番号はちゃんと認識できてるし、エラー行の内容もちゃんと出ているから…tokenizer辺りの問題なのかなあ。
ん?
int16_t 行番号
int16_t 文字列長
char 文字列[文字列長] ※zero-terminate
の繰り返しは良いんだけど、行番号と文字列長はbigendianで良いのかな?
今更気づいたけどCP/M向けじゃなくMS-DOS上でIchigoJam BASIC動かした方が良かったんじゃ
まずはメモリ上に格納されたBASICのコードが適切かどうかの調査なんだろうか。それ以前に、テスト用のコードをいちいち打つのも面倒なので(file)I/O周りの整備も必要な気が。
ん-む、blueMSXにデバッガが入ってるならそれを使うのが一案か。
blueMSX Debugger http://www.msxblue.com/manual/debugger_c.htm
openMSXでも入ってるようだし、かなり強力な味方になってくれそう。
MSX雑談:openMSX debugger最強説 (2022/11/13) https://note.com/msx_z80_program/n/n0ddf074f8cfc
そーゆう存在が生まれる前に殺すか、生まれたら殺すか、生まれても殺すじゃないですか…
「なぜSteve Jobsが日本から生まれないのか?」への応答:「でも私が生まれましたよ」
うーん、H8/300向けのgccでint=int16_tな環境に対応できないコードの燻り出しをしようとしたけど、特段何かが引っかかるというようなものは無いですねえ…
アウトロイドのマップとか出てるのか…(また何故にこんなものが…) http://psyzans.com/Testsite/OUTROYD/OUTROYD.html
アレな言い方になるけど、「豊かになる」「ワクワクする」という要素が無いものを単に並べて「どう?未来っぽいでしょ?」とかやられてもaudienceは引くだけですよ。
ん-、Debianでも/usr/sbin/sysctlはありますよ。rootじゃないと呼び出せないパスになっているようですが…
This account is not set to public on notestock.
CP/MじゃないじゃんMSX-DOSじゃんというツッコミはあるだろうけど、CP/M互換OSってことでそこは矛を収めてほしい。
IchigoJam BASIC、とりあえずCP/M上で動き出したけど…なんか動作妖しい。こっからデバッグというのが一番大変なんだよなあ。
とりあえず、「CP/M汎用なんだしとりあえず動作するかを見る上ではusleep()なんて無くてもヨシ!」というマインドでusleep()の呼び出しをさっくり削除して世に放ってみる。
安い、ただそれだけの理由で缶入りのレモンサワー(7%)ばかり飲んでる。たまにはビールとか飲みたい。
そういえばジン系が今年は流行りなのかなあ。なんか色々スーパーマーケットで見かけるんだけど。
バーボンのハイボールではないよん、という意思表示なんだろうか(とはいえバーボンウイスキーっていう以上、バーボンもウイスキーだよなあ)
ハイボールはウイスキーに決まってるんじゃ。
わざわざ「ウイスキー」と言わんでええんじゃ。
……というハイボール警察しぐさ。
めんどくさいジジイとお思いでしょうが、ここ周知させてないから、
「ハイボールを買ってきて」
と頼まれた新入社員がチューハイを買ってきて
「チミチミ、チューハイはハイボールじゃないんだよね~」
と嫌味を言われる悲劇が毎年どこかで起きているのですよ。
Z80最強の資料は日高総裁の記したZ80マシン語秘伝の書、あれしかないと思う…
ていうか何故それがここに転がっているんだ…?
https://archive.org/details/Z80MachineLanguageTec
Z80に限った話をするなら、命令ごとの実行ステート数が出ているのでこれとCPUクロックから計算してコードを書けばそれなりの精度で待ちはできるんですよね。
そしてR800/eZ80だとステート数変わるし、ステート数の計算も面倒だからやりたくない、ただそれだけなんです… :-p
(MSXだったらVDPの1/60sec割り込みがあるので、これを使ったカウンタを利用して待たせちゃえば良いんですけど)
@redbrick 単にμsec単位の待ち…1μsec単位は流石に厳しいだろうからもうちょい粒度粗い単位(でもmsecは粗すぎ)で待てれば十分です。別にマルチスレッド処理をしている訳でもないので、本当にその時間だけ…ループ回して止めるのが手っ取り早いかなと。なにがしかのタイマーがあればそれ使うんですけどね…
Z80で汎用的に使えるusleep()を記述せよ、ってすごく無理ゲーな気がする。クロックが与えられればループを回して時間稼ぎ、ではあるんだろうけど…Z80だけでなくR800でもeZ80でもという話は出てくるだろうし。
まだCortex-M0で汎用的に(ry、の方が良いんじゃないかなあ…SysTick使える可能性が高いし(必ずしも使える訳じゃない、というのが痛いけど)。
なんか投げてたPRがいくつかマージされちゃったので、投げたままになってるPRのrebaseに追われてました。
てかマージされたのは驚き。
This account is not set to public on notestock.
Intel曰く
- 同時にいくつエンコーディングを行えるかなんて決めようがないし
- ドライバとグラフィックユニットの観点からはそもそもそんな制限ないんで
- 実際の限界はハードウェアの設定とソフトウェアで決まるんだけどね
- Arcだと4k@60fpsで4つのインスタンスは同時に動かせる
- とはいえ、VRAM 16GBで同時に4つのエンコードを動かせるけど、VRAM 12GBで同じことをしようとすると遅くなるよ
っていう雑な理解で良いんだろうか
https://www.intel.com/content/www/us/en/support/articles/000093450/graphics/intel-arc-dedicated-graphics-family.html
How Many Simultaneous FFMPEG AV1 Video Encodes can the Intel® Arc™ Graphics Card Handle? https://www.intel.com/content/www/us/en/support/articles/000093450/graphics/intel-arc-dedicated-graphics-family.html
https://ark.intel.com/ 見れって書いてあるけどEncode/Decodeのサポートの可否しか無くて同時にいくつできるかって記載無いんですけど…
今日はコードいじりしない日に決めた(お仕事で疲れたので何もしたくないし)。
https://social.mikutter.hachune.net/@uaa/112243419381117061
過去の自分氏~何がどう複雑で止めたのかその理由をもっと書いてくれー
結局個別バッファ引っぺがし+z88dk-sccz80で頑張るしかなさそう(z88dk-zsdccだと何故かtypedef/#defineしてあるはずのものが何故かそうなっていないという謎の挙動を示してる)という状態で。
z88dk、sdcc込みでビルドすると本当に時間がかかるな…
z88dk-sccz80だと雲行きが怪しいのでz88dk-sdccを入れて試そうとしているけど、なんかこっちも怪しい感じがする。
どっちもどっちな感じかもしれん。
統合されたramから個別のバッファへひっぺがすの、やめる…複雑すぎ…
あー、もしかすると自分がブロックされるのも時間の問題なのかもなあ。
GitHubのユーザーブロック機能 (2013/03/24) https://hiroponz.hateblo.jp/entry/20130324/p1
人材を人財って書いちゃう人って、システム障害をシステム障がいって書くんだろうなあ…
でも(伏せる)のソースコードをこのタイミングで公開したのって、10年記念だからというのは表向きの理由で何か裏があるんじゃないかなって疑っちゃうんですよね。
テコ入れ、もしくは撤退か何か、みたいな。
テコ入れするとしたらユーザコミュニティを育てるなりコードの品質を上げる方向で盛り上げていくだろうから、公開して一週間程度でもこの程度であればそっちの可能性は高くないと自分は読みます。
RISC-Vを使った"R"があまり盛り上がっていない現状と、コア部分のみ公開(SPRSENSE版のコードは入れてるけどLPC1114版を何故伏せて、Z80版の名残を意味深に残す?)というのを見るに、なんか処分してるような雰囲気を感じるんですよね。
商売っ気の強いプロジェクトである以上、普通のOSSと同じような感覚で遊ぼうとすると大怪我するかも、と自戒を込めて。
char *p = ((char *)ram+ 0);がz88dk-sccz80で通らない問題、一か所にあるramをoffsetで切り分ける作りにするとこういう計算を要してしまうので、
char p[size_p];
char q[size_q];
のようにバッファを分けるしか手が無いんじゃいかな、という気がしてる。あと16bitの数値(変数)領域をpoke/peekで読めるという部分…多分big-endianなマシンで動かすと動作が変わってしまうという点も指摘しておかないといけない気がするんだよなあ。
keybufの扱いがなんかマニアック(keybuf[-1]を参照してるってコメントにあるけどどういう作りなんだこれ)なので、使ってないならさっくり削除ねーという扱いにしてしまったけど、ちょっとやりすぎかなあ。
とはいえ、公開してから数日たってPR投げまくっても無反応っていうのはまあそういう扱いなのねーという理解なので気にしないことにする。
(単にソースコードを出しはするけど、向こうにとっては「公開した」って実績だけあればいいので後は徹底放置…メンテもしないしコミュニティも育てないよ、っていうスタンスなんでしょう)
なんかぶん投げたくなってきたな。今日はぶん投げるか。明日の俺よろしくーって。
char buf[256];
char *p = (char *)(buf + 1); // NG
char *p = (char *)buf + 1; // OK
char *p = ((char *)buf + 1); // NG
な ぜ な の か
(完全にz88dkのバグ踏んでる気が…)
CP/Mエミュレータは https://github.com/jhallen/cpm を使ってる。
z88dkのz88dk-sccz80の構造体のパディングとかその辺がどうなってるかが気になってのぅ…(__attribute__((packed))相当なものが欲しいのじゃが)。
#include <stdio.h>
struct _xxx {
char z;
char d[128];
};
int main(int argc, char *argv[])
{
struct _xxx x;
printf("%x\n", &x.z);
printf("%x\n", x.d);
return 0;
}
uaa@framboise:~/cpm$ zcc +cpm -lm -lndos test.c -o a.com
uaa@framboise:~/cpm$ ./cpm a
db3d
db3e
uaa@framboise:~/cpm$
uint8* /*const*/ screen_pcg = ((uint8*)(ram + OFFSET_RAM_PCG)); // 同じ
これもダメ。多分構文解析する際に(ramが変数なのはともかくOFFSET_RAM_PAGEが#defineされた定数であっても )「計算する奴は許さねえ」という作りになってるんだろうなあ。gccとかclangじゃこんな書き方はごく普通にやるのに。
これは、アレか。どっかで固定的に確保したメモリをオフセットとサイズで切り分けるんじゃなく、
int16 var[SIZE_RAM_VAR / sizeof(int16)];
で確保するパターンなのかも。というか別にそれで良くね?(真面目にやるとリンカスクリプトとかでサイズやアドレスを調整する世界にもなりかねん)
screen.h
uint8* const screen_pcg = ((uint8*)(ram + OFFSET_RAM_PCG)); // 同じ
basic.h
int16* const var = (int16*)(ram + OFFSET_RAM_VAR);
keyboard.h
char* keybuf = (char*)(ram + (OFFSET_RAM_KEYBUF + 1)); // kbhit[-1], len:[0], buf:[1-(KEY_BUF_LEN-1] // 24512+60 // 小さい!
ram.h:#define OFFSET_RAM_PCG 0 // basic:#700
ram.h:#define OFFSET_RAM_VAR (OFFSET_RAM_PCG + SIZE_RAM_PCG) // basic:#800
ram.h:#define OFFSET_RAM_KEYBUF (OFFSET_RAM_LIST + SIZE_RAM_LIST) // basic:#1002
uint8* const screen_pcg = &((uint8*)ram)[0];
これもダメでした。
なにこれ…z88dkの問題だと思うんだけど、グローバル変数の宣言で
uint8* const screen_pcg = (uint8* const)(ram);
このコードは通るのに、
uint8* const screen_pcg = (uint8* const)(ram + 0);
は
../IchigoJam_BASIC/screen.h:122:50: error: Expecting constant expression
と言われてしまう。
同じじゃん!
ん-、mostr越しにNostterで見てみたけど、こっちではURLの前後に半角スペース入れないとダメな感じ。<>で括ったのはリンクすら張ってくれない。Amethystでも同じ挙動になってる。
SNSとかの投稿でも、URLを<http://google.com>で囲った方が良いんだろうか。URLの解釈がちゃんとできないブラウザ対策として http://google.com みたいに前後に半角スペースを入れるのはよくやってるんだけど…
This account is not set to public on notestock.
uaa@framboise:~$ cd --help
cd: cd [-L|[-P [-e]] [-@]] [dir]
Change the shell working directory.
(bashの場合だけど)cdにオプションがあるって初めて知ったよ!
「cdで移動してったディレクトリの履歴を取っといて、その履歴から必要なディレクトリへ移動できないかな?」
「…shellの履歴見れば良くね?」
cd --helpが答えっぽいな(bashのビルトインコマンドなので、/usr/binとかにある訳ではないから)。
※kshとか他のshに関しては詳しい方にお任せします
This account is not set to public on notestock.
師曰く、そのソフトウェアの素性を考慮せずにただリポジトリのコミット履歴だけを見てメンテナンスが行き届いているかどうかを判断してはならない。ここ半年cdコマンドに新機能やバグ修正がなかったからといって使うのをためらうのは馬鹿馬鹿しいことだ。
流石にSuperH向けのLLVMは無かろう、と思ったら、あるのか…J-Core(SH2 clone)向けではあるけど。
https://github.com/francisvm/j2-llvm
とりあえず、某jam(今更伏せても意味無いけど)については一旦この辺で退くかなあ。MSX(のROM上で動かす)以前にCP/M上ですら動かせるようになるまでがかなり大変そうなので。
誰かが(同じz88dkを使って)先に繋げる際に、少なくともこの作業は要るよってことを示せただけでも良いかな。
(まさかz88dkが、構造体を戻り値にする関数が扱えないだなんて思ってもなかった…まあそんな関数を書くことってあんまり無い筈なんだけど)
AVRだってRL78だってgcc使えるじゃん!なんでZ80は未だに使えないのっ!!💢
Z80なコードを吐き出せるgccなりclangなりの登場が本当に待たれてる気がする。sdccでも良いのかもしれないけど、Small-C改変版なコンパイラで戦い続けるのも(それでも戦えちゃってたりするけど)どこかで限界は来る気がする。
This account is not set to public on notestock.
とりあえず、-1と~0と~0uが違うっていう学びがあっただけでも、良し(ってそれを知らずに今までコード書いてたのかお前はとすごく突っ込まれてるよな>自分)。
main.cで、なんか色々なコードを*.hの形で取り込んでるというのは確かに「え?」な作りだとは思う。
https://github.com/IchigoJam/ichigojam-firm
LPC1114FN28の、32kBなROMに収めるために色々手を尽くしているという感じではあるんだけど…その結果こういうソースになったというのは否定的な意見はあったとしても、「そーいうもんだ」でここは通すしかないかなって。
This account is not set to public on notestock.
というのを、z88dk/clang/gccで成り立たせるのは難しそうなので、clang/gccで文句言わなきゃおっけ、で良い気がする。
z88dkでIchigoJam-firmというのは個人的な実験なので、このコンパイラでwarningが出たとしても本家の問題ではないというのはちょびっと主張しておきますね…
This account is not set to public on notestock.
-1だとwarning出ないのに、~0uだと怒られるんだから…不正な状態であることを示すためにどうもこういう処理をしてるっぽいので、まあ0xffがunsigned charに書き込まれていれば(書き方は)なんでも良い気がします。
えーと、~0uを突っ込んだのは自分です。元のコードは-1を突っ込もうとしてました。
もうなんかこの程度のwarningは「ま、落ち着け?」とスルーする方が精神衛生上良い気がしてきた。
そもそも自分のコードじゃないし?
uaa@framboise:~/z/ichigojam-firm/console$ gmake
clang -std=c99 -DC99 -I../IchigoJam_BASIC -I./src/ ../IchigoJam_BASIC/main.c -o IchigoJam_BASIC
In file included from ../IchigoJam_BASIC/main.c:26:
../IchigoJam_BASIC/basic.h:3167:12: warning: implicit conversion from 'unsigned int' to 'uint8' (aka 'unsigned char') changes value from 4294967295 to 255 [-Wconstant-conversion]
_g.err = ~0u; // 表示しないエラーメッセージ
~ ^~~
1 warning generated.
な ん で す と 💢
@kikairoya 今回はz88dkなので、gcc+newlibとは関係ない世界にはなるのですが…gccでもsizeof(int) == 2な環境は確かにあるんですよねえ。H8/300という、アイツが(頭痛がしてきた)。
@lo48576 そもそも元のコードがおかしいのと、z88dkなのでgccのような(正しい?)挙動をどこまで期待できるかというのもあるので、放置が一番良い気がします。
@redbrick ど っ ち も 嫌
とはいえ、githubでPR投げても反応薄いのを見るに、大鉈を振るう意義はあんまりないというか、PR投げる側のモチベーションも低下気味です。
@kikairoya z88dk(Z80向けのCコンパイラ)なのでintはshort相当…16bit扱いです。多分数値の扱いに何か癖があるのかなって。
@lo48576 それが一番良さそうな気がする(実際それでwarningは消えてるし)。
@redbrick 元のコードがそうなってるのでそこはツッコミたくないんですよ…
@kikairoya (実は何も考えずに~0使ってました…!)
@lo48576 それやってみたけどダメでした…(gccじゃなくz88dkだからかも)
../IchigoJam_BASIC/basic.h:2252:12: warning: Value is out of range for assignment [-Wlimited-range]
../IchigoJam_BASIC/basic.h:3196:14: warning: Value is out of range for assignment [-Wlimited-range]
uint(=unsigned short)に-1を突っ込もうとしてるんだけど、~0ですらこのwarningが取れないのでもうこのままで良いやって感じ。害はないはず。
Fediverseだと表垢とか裏垢とかって概念じゃない気がする。FWD-RBBSでどこ使ってるか、という程度の意味しかないような(この比喩がどこまで通じるかはかなり怪しい気がする)。
This account is not set to public on notestock.
会社「おい新人!裏垢が8つも見つかったのだがどういうことだね!」
限界Fediverseオタク新人「全部表垢ですけど??」
あー、gomrefdashのバージョンが表示されなかったのはGNU make使わなかったからか(BSD makeでもビルドはできるけどバージョン番号が表示できない)。
あ、VPS上のOpenBSDを更新してたけどgomrefdash起動しないままだった(これだけ手動起動になってるのでmrefdについては動いてる)。
HYBRID W-ZERO3なんてあったのか…
(自分の観測範囲でその言葉が出なかったのはQWERTYキー非搭載だったからかな?)
QWERTYキー非搭載の理由とは――「HYBRID W-ZERO3」が目指す新市場 (2009/11/27) https://www.itmedia.co.jp/mobile/articles/0911/27/news084.html
This account is not set to public on notestock.
(でもRaspberry PiってBROADCOMの囲い込み戦略って気がしなくもないけど最近はどうなんだろう。BROADCOMも肝心要の部分の資料を出さないことで定評あった気がするんですけど…)
関数電卓の模倣品か…
Casio fx-991MS の完全模倣品 OSALO OS-991MS (笑) (2018/11/21)
https://egadget.blog.fc2.com/blog-entry-673.html
$30くらいで気軽に使える、パソコンとしても使える教育用のボードコンピュータ、という触れ込みで出てたはずでしたよねRaspberryPi。
This account is not set to public on notestock.
This account is not set to public on notestock.
シーザーサラダ、一定の幅だけズレてそうなサラダだ (?)
レゾンデートルってなんかお菓子っぽいですよね、って昔誰かが言ってたな…
タグで囲っちゃうのが一番良いのかも。あるいはルビ振っちゃう?
This account is not set to public on notestock.
This account is not set to public on notestock.
今だと(笑)辺りは単純に笑うというよりは嘲笑的なニュアンスが含まれるかも…って、w辺りでもそういうニュアンスがあるようなないような。
This account is not set to public on notestock.
でもアンヨヨイヨではAndroidが出ない!Google仕事して!
サツバツって書くと単に殺伐としているというよりもニンジャが出てきてアイエエエエな感じが出てきますよね
確かに、イマドキの人達、と書く場合は裏に「自分はオールドタイプですのでー」的なニュアンスは入りますね。
特に理由なく片仮名とかでオルタナティブな表記をするの、99割の確立で揶揄 (自虐含む) か “概念の分割” (えてして揶揄を含みがち) だと思っていたんだけど、そうではないのか
みん就だろうがみんなの就職活動日記だろうが、「人事担当者の方は見ないでください」ってあるけど学生に偽装した人事担当者が入り込んでたりとか、雇った学生を使って人事担当者が情報を抜いてる可能性ってゼロじゃない気がするけど実際のところどうなんだろう。
http://web.archive.org/web/20000302053123/http://www.nikki.ne.jp/
「『何でもできる』は『何もできない』のと一緒」、って昔上司に言われたっけ…
This account is not set to public on notestock.
「みんなの就職活動日記」→(多分何段階かありそう)→「楽天みん就」→「みん就」ですか。
どこまで略せば気が済むのか、と言いたくなる…
中学受験とかすると、1月はもう小学校行かない(受験対策を家でやる+感染症のリスクを下げる)、というのも普通になるのだとかで。
2006年の電車の中の広告で、「シューカツ」表記見てますけど…台詞的に言ってる(文章の中で出てる訳じゃない)というのはどう判断すればよいのやら。
就職戦線異状なしなんて映画があったけど…多分就活って単語が出てたら就活戦線異状なしになっただろうし(勝手な想像です)。
2000年頃には「就活」と普通に言ってたから…それより前か。バブル期でそんな言葉聞いた記憶は無いような気がするので、氷河期辺りから出てきたのかなあ?
冗談はともかくとして、就職活動→就活→シューカツ、というのは就職活動ナメとんの?という気分と、そういう言い方でもしないとやってらんないよね(なかなか内定出ないし)という両方の気分が同居してフクザツなんすよね、おっさん的に。
就活をシューカツとか、調達をチョータツとか、業務をギョームと書くような人達って…
IchigoJam-firmをz88dkでビルドできるか足掻いてるけど…これ無理かも。intが16bitになる場合を想定してない。何件かz88dkで必要になりそうな(そしてそれ以外の機種でも役に立つかもしれない)PR投げてみたけど、別にそれ要らんし、になりそうな気がする。
あと、コードの作りとしては中間言語とかに落とさずBASICのコードを文字列として扱い、ひたすら字句解析で回してるんだけど…これってCortex-M0/48MHzだからマトモな速度になるのであって、Z80/3.58MHzで動かした場合はとんでもなく遅くなるんじゃないかなあ。
これで残っているのはPayPalの対応だけだな。いつになったら利用履歴(に書かれたパスコード)が来るのやら。
Enekeyに紐づけられているクレカの切り替え完了。切り替え処理はあっという間に終わったけど、切り替え作業を行えるスタンドを探すのに苦労した…(3か所くらい回ってる)