連続投稿失礼します。
有限体を勉強してたら突然ハローワールドをオーバーキルしたくなったのでやってみました。
ACLS
OPTION DEFINT
OPTION STRICT
DIM INTT[32] '逆数論変換した文字列
VAR PRIME=257 '法(nを整数として1+n*256となる最小の素数)
VAR ROOT=15 'mod 257上で1の32乗根となる数(のうち最小のもの)
VAR BASE=1
VAR I
COPY INTT,@INTT
FOR I=0 TO 31
VAR CHR=0 '表示する文字コード
BASE=BASE*ROOT MOD PRIME '32乗根を乗じる
VAR WAV=1 '合成する波形(FFTで言うcos()やsin())
FOR J=0 TO 31
CHR=CHR+WAV*INTT[J] MOD PRIME '逆数論変換した数列と波形を乗算
IF CHR>=PRIME THEN CHR=CHR-PRIME 'MOD 257
WAV=WAV*BASE MOD PRIME
NEXT J
IF WAV THEN PRINT CHR$(CHR);
NEXT I
@INTT
DATA 133,210, 97, 67, 10,195,123,167
DATA 197, 84, 34,109, 89,104,179, 21
DATA 44,140,232,125,198, 89,220,122
DATA 195,224, 55,162, 21, 96,149,221