• R/O
  • HTTP
  • SSH
  • HTTPS

Commit

Tags
Aucun tag

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

BASIC compiler/interpreter for PIC32MX/MZ-80K


Commit MetaInfo

Révision2ced74f682aa9b55220c38bd161f5f5d30e9304c (tree)
l'heure2019-01-05 08:51:44
AuteurKatsumi <kmorimatsu@sour...>
CommiterKatsumi

Message de Log

P32REG class ver 0.2

Change Summary

Modification

--- a/mips/classes/P32REG/P32REG.BAS
+++ b/mips/classes/P32REG/P32REG.BAS
@@ -1,4 +1,4 @@
1-REM P32REG.BAS ver 0.1
1+REM P32REG.BAS ver 0.2
22 REM Class P32REG for MachiKania Type Z/M
33 REM Prepare P32MX.S file containing
44 REM registor address information
@@ -42,6 +42,15 @@ METHOD REGADR
4242 print "Not initialized for ";RNAME$
4343 end
4444
45+METHOD RDREG
46+ RET=gosub(REGADR,args(1))
47+ return RET(0)
48+
49+METHOD WRREG
50+ RET=gosub(REGADR,args(1))
51+ RET(0)=args(2)
52+ return
53+
4554 LABEL FO
4655 REM Buffer contains 128 + 512 bytes
4756 dim FBUFF(159)
--- a/mips/classes/P32REG/help.txt
+++ b/mips/classes/P32REG/help.txt
@@ -1,6 +1,6 @@
11 <クラス名およびバージョン>
22 P32REG
3-ver 0.10
3+ver 0.20
44
55 <ファイル名>
66 P32REG.BAS
@@ -25,13 +25,49 @@ REGADR(x$)
2525 REGADR(x)
2626 整数値xで示される順番で登録されたレジスターのアドレスを返す。
2727
28+RDREG(x$)
29+ 文字列x$で示されるレジスターから1ワード(32 bits)読み込み、返す。
30+
31+RDREG(x)
32+ 整数値xで示される順番で登録されたレジスターから1ワード(32 bits)読み込み、
33+ 返す。
34+
35+WRREG(x$,y)
36+ 文字列x$で示されるレジスターに、整数値yを書き込む。
37+
38+WRREG(x,y)
39+ 整数値xで示される順番で登録されたレジスターに、整数値yを書き込む。
40+
2841 <使用例>
2942
30-アドレス0に文字列を書き込み、読み出す例。最初の実行後、電源を切って再実行すると、
31-同じ文字列が2回表示される。読み出し時の文字列ポインターの扱いに注意。
43+LATA、LATB、PORTBの3つのレジスターの値を取り出し、表示する。
3244
3345 USECLASS P32REG
3446 R=NEW(P32REG,"LATA","LATB","PORTB")
3547 print HEX$(R.REGADR("LATA")),
3648 print HEX$(R.REGADR("LATB")),
3749 print HEX$(R.REGADR("PORTB")),
50+
51+<ヒント>
52+
53+メソッドの第一引数に文字列を利用すると、コードは分かりやすいですが、反面、実
54+行速度は落ちます。また、RDREG/WRREGを利用する場合も、コードは分かりやすいです
55+が、実行速度は落ちます。
56+
57+分かりやすいコードの例
58+
59+USECLASS P32REG
60+R=NEW(P32REG,"PORTD")
61+WHILE 1
62+ PRINT R.RDREG("PORTD"),
63+WEND
64+
65+実行速度を重視したコードの例
66+
67+USEVAR PORTD
68+USECLASS P32REG
69+R=NEW(P32REG,"PORTD")
70+PORTD=R.REGADR("PORTD")
71+WHILE 1
72+ PRINT PORTD(0),
73+WEND