OpenBoot 2.x の手引き

メモリーアクセスコマンド

表 1-23 メモリーアクセスコマンド

!

( n adr16 -- ) 

32 ビットの数を adr16 に格納します。16 ビット境界でなければなりません。

+!

( n adr16 -- ) 

adr16 に保存されている 32 ビットの数値に n を加算します。16 ビット境界でなければなりません。

@

( adr16 -- n ) 

32 ビット数値を adr16 から取り出します。16 ビット境界でなければなりません。

c!

( n adr -- ) 

n の下位バイトを adr に保存します。

c@

( adr -- byte ) 

1 バイトを adr から 取り出します。

cpeek

( adr -- false | byte true ) 

1 バイトを adr から取り出します。アクセスが成功した場合、データと true を返します。読み取りエラーが発生した場合は、false を返します。(lpeekwpeek も同様)

cpoke

( byte adr -- okay? ) 

1 バイトを adr にバイトを格納します。アクセスが成功した場合、true を返します。書き込みエラーが発生した場合は、false を返します。(lpokewpoke も同様)

comp

( adr1 adr2 len -- n ) 

2 つのバイト配列を比較します。両配列が等しい場合は n = 0、最初の異なるバイトが配列 #1 側より小さい場合は n = 1、それ以外の場合は n = -1 になります。 

dump

( adr len -- ) 

adr から始まる len バイトを表示します。 

fill

( adr size byte -- ) 

size メモリーバイトを byte に設定します。 

L!

( n adr32 -- ) 

adr32 に 32 ビットの数値を格納します。 

L@

( adr32 -- long ) 

32 ビットの数値を adr32 から取り出します。 

move

( adr1 adr2 u -- ) 

adr1 から adr2 へ u バイト分、コピーします。オーバーラップは適切に処理されます。 

w!

( n adr16 -- ) 

16 ビットの数値を adr16 に格納します。16 ビット境界でなければなりません。 

w@

( adr16 -- word ) 

16 ビットの数値を adr16 から取り出します。16 ビット境界でなければなりません。