Skip to content

Commit

Permalink
Update README
Browse files Browse the repository at this point in the history
  • Loading branch information
yunkya2 committed Feb 17, 2023
1 parent 235d340 commit 63cdc5a
Showing 1 changed file with 19 additions and 0 deletions.
19 changes: 19 additions & 0 deletions ports/x68k/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,25 @@ MicroPython向けLチカのコードをそのままX680x0版で動かすため
* IOCS実行後のd0レジスタの値が関数の戻り値となります。他のレジスタの値が必要な場合は、`rd`, `ra`にそれぞれデータレジスタ、アドレスレジスタの個数を指定することでそれらのレジスタ値を並べたタプルを返します。
* `rd=2`, `ra=1` を指定すると、関数の戻り値は `(d0,d1,d2,a1)` のタプルとなります。

* `x68k.d.<DOSコール名>`
* DOSコール番号を定数で定義しています。
* 例: `x68k.d.PRINT` = 0xff09
* `x68k.dos(callno [,arg])`
* DOSコールを実行します。`callno`には呼び出すDOSコール番号を指定します。
* 例: `x68k.dos(x68k.d.GETCHAR)` # DOS _GETCHAR を実行します
* DOSコール実行後のd0レジスタの値が関数の戻り値となります。
* 追加の引数としてバッファオブジェクトを指定することができます。指定されたオブジェクトの内容がスタックに積み上げられてからDOSコールを実行します。オブジェクトのデータ配置、サイズは呼び出すDOSコールと正しく対応している必要があります。
* 例:
```
import x68k
import struct
import ctypes
buf=bytearray(94)
x68k.dos(x68k.d.GETDPB,struct.pack('hl',0,ctypes.addressof(buf)))
```
* DOS _GETDPBは「1ワードのドライブ番号」「94バイトのバッファを指す1ロングワードのポインタ」をこの順にスタックに積んで呼び出す仕様なので、`struct.pack`のフォーマット文字列`'hl'` によってこのデータ配置を指定しています。

* `x68k.mpyaddr()`
* MicroPython本体のメモリ上の開始アドレスを返します。デバッグ用です。

Expand Down

0 comments on commit 63cdc5a

Please # to comment.