乱数がない

  • 投稿日:
  • by

乱数がないのですよ、GMC-4には。せめてRTCとか、Z80のRレジスタみたいな、刻々と変化する何かがあれば良かったんですが、ランダムな値を生成して、キー入力に見せかけるデバイスでも作って、キーパッドに直結してやらないと、ダメ?

しかし、そんなことするのも、ナンですから、疑似乱数っぽいものを作ってみることに。線形合同法程度の演算さえ、しかし、GMC-4には荷が重すぎるので、何か違う方法を、と思いついたのが、フィボナッチ数。ni=ni-2+ni-1ってヤツね。但し、GMC-4の場合には、ビット長の関係で、ni=(ni-2+ni-1) mod 16ですが。

延々と、キーが押されるまで、メモリ一杯に、この計算をし続けたら乱数っぽい何かが得られるんじゃなかろうか、と思って書いたコードがこれ。実行前に、初期値、[5][0][A SET][1][INCR][1][INCR]をすることを忘れずに。

00: TIY A
01: <0> 0
02: MA 5
03: AIY B
04: <1> 1
05: M+ 6
06: AIY B
07: <1> 1
08: AM 4
09: AIY B
0A: <F> F
0B: KA 0
0C: JUMP F
0D: <0> 0
0E: <2> 2

これで生成されたサンプルが、これ。乱数としての出来がいいのか悪いのかはさっぱり判らないけれど、とりあえず、代用品にはなりそうな程度にはばらついていると思いますが、どうでしょう?

D 8 5 D 2 F 1 0 1 1 2 3 9 9 2 B