私は、Z80 2 バイト ポインター コンバーターを含む特殊な 16 進エディターに取り組んでいます。
変換の背後にある数学は次のようになります。
- 指し示すオフセットを取得します。
- オフセットの下 4 桁を取り、残りを切り捨てます。
- オフセットが
&H4000
-の範囲外にある場合は、次の&H7FFF
ように変換する必要があります(offset % &H4000) + &H4000
。言い換えると:- オフセットが
&H0000
~の場合は、オフセット&H3FFF
に追加&H4000
します。 - オフセットが から
&H4000
までの場合、オフセット&H7FFF
に対して何もしません。 - オフセットが から
&H8000
までの場合、オフセットから&HBFFF
減算&H4000
します。 - オフセットが から
&HC000
までの場合、オフセットから&HFFFF
減算&H8000
します。
- オフセットが
私の問題は、5 桁または 6 桁の 16 進数オフセットを 2 桁オフセットに変換する方法がわからないことです。最初に余分なバイトを削り取るにはどうすればよいですか (ステップ 2)。