RAMの読み出し・書き込み部mega_ramをシンボルで書き換える

ram_1portは、clk_exではなくソースクロックで更新しているので、値は書き込みなり読み出しなりが常に実行されていて、その値はram_1portからダダ漏れしている。

RAMアドレスが64、write enableがHiであるときだけ、execモジュールから渡された値をclk_exのタイミングでOUTポートへ出力する。

f:id:ti-nspire:20210220100858p:plain:w700
f:id:ti-nspire:20210220102306p:plain
f:id:ti-nspire:20210220102344p:plain:w700

RAMへのデータの出し入れ、INポートからの読み込み、OUTポートからの書き出しをテストする。

(省略)
# INポートからレジスタに何か値を読み込んで、
_[(ad := ad+1)] = _in(TMP0)

# それをRAM0番地に入れて、
_[(ad := ad+1)] = st(TMP0, ram[0])

# RAM63番地に何か値を入れて、
_[(ad := ad+1)], \
_[(ad := ad+1)] = ld_hl(TMP0, 60000)
_[(ad := ad+1)] = st(TMP0, ram[63])

# RAM0番地に入っている値をレジスタに持ってきて、
_[(ad := ad+1)] = ld(TMP0, ram[0])

# RAM63番地に入っている値をレジスタに持ってきて、
_[(ad := ad+1)] = ld(TMP1, ram[63])

# 足し合わせて、
_[(ad := ad+1)] = add(TMP0, TMP1)


# LCDに表示する。
_[(ad := ad+1)] = mov(VAL, TMP0)
(省略)