N-BASICから機械語のルーチンを呼び出すUSRを使ってみます。
何もしないサブルーチンを機械語で保存します。
monでRET(C9)を書いておきます。
mon
* SE800
E800 FF-C9 FF-
*
コントロール+BでN-BASICに戻ります。
N-BASICで
DEF USR=&HE800
しておくとUSRが使えるようになります
? USR(0)
0
引数が数値の場合2バイトの値がHLレジスタの示すメモリに保存されています。また返り値も同じアドレスになるので、0が返ってきます。
インクリメントの関数を書いてみます。
   1:				;
   2:				; PC-8001 assembra
   3:				;
   4:				
   5:				
   6:     -	E800'         		ORG	0E800H
   7:     -	E800'         	USR:
   8:    0+7	E800' 4E      		LD	C,(HL)
   9:    7+4	E801' 0C      		INC	C
  10:   11+7	E802' 71      		LD	(HL),C
  11:   18+10	E803' C9      		RET
  12:				
HLの先のアドレスには下位バイト、上位バイトが保存されていて、下位バイトしか処理していないので、255までになります。
? USR(0)
1
? USR(255)
0