- @neetsdkasu #
本日の苦行開始。 #ガルこれ
- @neetsdkasu #
本日の苦行修了~
あとはコイン集めだけだからクエストの消費体力あたりのコイン効率とか調べたほうがよいかなあ ちょっと面倒かも
#ガルこれ paiza.jp/cgc/share/mypa… - @neetsdkasu #
gitlab.com/neetsdkasu/bas…
先日書いたこれ見て思った。メモリ65536語ってめっちゃ少ねええっ!と。
いや、配列の容量を増やそうかなと思ったんだけど、あんま確保できねえな、と。 - @neetsdkasu #@neetsdkasu
本来はBIOSやらOSやらもメモリ上に乗っかってるハズだからな
大昔のPCとかもこんな感じのメモリ量だったらしいけど
昔のプログラマーはすごいな! - @neetsdkasu #@neetsdkasu
- @neetsdkasu #@neetsdkasu
外部記憶装置とかアクセス速度が遅かっただろうし現代のように仮想メモリ使うとか無理そう
- @neetsdkasu #
ロト6で億とか当たってほしす
- @neetsdkasu #
寝る
- @neetsdkasu #
BNFとかBNFの派生(ABNFとか)を考え出した奴ってマジすげえわ
なんでこんな便利なモンを作り出せちゃうわけ?天才すぎっしょ - @neetsdkasu #
gitlab.com/neetsdkasu/bas…
DIM書いただけで疲れた - @neetsdkasu #@neetsdkasu
カウンタの0判定はCPLよりANDやORのほうがいいかなあ・・・
大学時代に使ったテキストにVHDLだったかを使ったCOMET II実装例が載ってたけど・・・引っ張り出して見てみるかなあ・・・ - @neetsdkasu #@neetsdkasu
レジスタを0にするのにLADじゃなくXOR使うのは命令語長の違いがあるからか・・・
- @neetsdkasu #@neetsdkasu
テキスト見てきたじょ、CPLでもANDでも処理にかかるクロック数は変わらなさそう。あとLADだとアドレスの計算が入る分があるからXORのほうが余計よい感じなのかなあ
- @neetsdkasu #@neetsdkasu
ハードウェア方面とか難しすぎだは
- @neetsdkasu #@neetsdkasu
ああ、whileじゃなくdo while形式にすればあの判定いらんのか
- @neetsdkasu #@neetsdkasu
あ、ダメだ、判定はいるのか。LADじゃフラグが変わらない
- @neetsdkasu #@neetsdkasu
でもwhileよりdo whileのほうが判定回数が1回減るから直そう
- @neetsdkasu #@neetsdkasu
カウンタの更新になんでLAD使うのかなと思ったら即値との計算結果を使えるのがLADだけだったからか。他は計算後のアドレス先を参照しちゃうわけだし。でもループ回数が多いならLADよりちゃんとADD/SUBを使ったほうがいいよなあ
- @neetsdkasu #@neetsdkasu
トレードオフってやつか
レジスタ1こ余分に使って速度を出すかどうかって感じか
他に処理があったりでレジスタ節約したいならLADってとこかなあ
要項のほうはOSによるレジスタの制限とか書いてないから一般CASL II向けにするならレジスタバンバン使っちゃえと - @neetsdkasu #@neetsdkasu
IA32とかはレジスタに用途があったりするみたいだし複雑だからなあ
- @neetsdkasu #@neetsdkasu
OSに細かい指定ないから動的メモリの確保が未定義なんだよなあ・・・WindowsとかだとWin32APIで動的メモリを借りてくるらしいが
- @neetsdkasu #@neetsdkasu
メモリがたった65536語しかないわけだし動的メモリとか余裕は無さそうではあるけれども
- @neetsdkasu #@neetsdkasu
そんな貧弱マシーンに本当にOSなど乗っているのだろうか?
まぁ資格試験用仮想マシンにそこまでガチ開発する人あまりいないだろうから
公式シミュレータとかでもOSとか存在しないかのように動いてることだろうな - @neetsdkasu #@neetsdkasu
シミュレータとエミュレータの違いが未だによくわかってない
- @neetsdkasu #@neetsdkasu
シミュレートは表面上のモノマネで、エミュレートは目に見えない内部の仕組みからモノマネか・・・
- @neetsdkasu #@neetsdkasu
つまりちゃんとしたOSがあることを前提としてコンパイルやOS上で実行してるわけでもなく、再現(エミュレート)してるわけでもなく、あたかもOSのためのバイナリを作ってるかのようにバイナリ作って、OS上で動いているかのように実行していると???
ややこしい - @neetsdkasu #@neetsdkasu
ああ!そういえばIN/OUTマクロは展開されないとか書いてあった気がしたな!それは完全にCASL IIを構築してないけど同じように動作するからCASL IIシミュレータなわけか!なるほどね!
- @neetsdkasu #@neetsdkasu
公式のシミュレータ何故かメモリが4096語ほど少ねえ・・・
まぁこれでガチ開発する奴なんて滅多にいないから
そこまで気合入れて実装するもんでもないのかもしんないがな - @neetsdkasu #@neetsdkasu
本来は資格試験に合格すりゃいいだけの一時的に覚えるだけのものだし
たぶん試験でも大きなコードとか出てきたりしないだろうし
むしろ60*1024語も用意しちゃったほうが頑張りすぎかもだな - @neetsdkasu #@neetsdkasu
ソースコード1000行までとかラベル200個までとか
試験対策程度にそこまでガチなコード書くやつおらんやろ~
大サービスな感じだな! - @neetsdkasu #@neetsdkasu
オペランドも40個以内ってそんなにデータを列挙する必要のあるプログラムなんか試験対策練習に書かんだろ!ってな
変なとこ頑張ってるな~ - @neetsdkasu #@neetsdkasu
ちょ、待った、1000行とかラベル200個とかちょっとオレの作ろうとしてるモノが制約を越えそうな気がしてきたよ!!
- @neetsdkasu #@neetsdkasu
まずいなあ・・・
- @neetsdkasu #@neetsdkasu
うん、現在変数を64個までって制約にしてるけどこれがラベル消費しまくるくるん!!
最悪で128個使うわけだ・・・他にGOTOやIFやFORやWHILEでもラベル使う予定だし・・・式の途中計算でも一時領域にラベル使う予定だし・・・うーん・・・微妙だなあ・・・ - @neetsdkasu #@neetsdkasu
組み込み関数とかも実装したりしたらちょっとラベル足りなくなるかも!?
- @neetsdkasu #@neetsdkasu
公式のシミュにあわせるわけじゃないから、複数のオブジェクトファイルを実行することを想定しては書けないしなあ、まぁ組み込み関数やらは単一コードとして用意しておくのもアリかもしれないけど
- @neetsdkasu #@neetsdkasu
単一コードじゃねえや、ライブラリとして別途CASL IIコードとして出せるようにしておくとかな