BASIC compiler/interpreter for PIC32MX/MZ-80K (suspended)
リビジョン | 97 (tree) |
---|---|
日時 | 2016-05-06 05:47:38 |
作者 | kmorimatsu |
Japanese for MachiKania ver 0.2.
@@ -5,11 +5,12 @@ | ||
5 | 5 | |
6 | 6 | main=function(){ |
7 | 7 | var text=dom.getElement('textarea').value; |
8 | + var prefix=dom.getElement('prefix').value; | |
8 | 9 | var pcg=0x80; |
9 | 10 | var pcgscript='USEPCG\n'; |
11 | + var printscript=''; | |
10 | 12 | var datascript='DATA '; |
11 | 13 | var mainscript=''; |
12 | - var result=''; | |
13 | 14 | var line=''; |
14 | 15 | var i32=''; |
15 | 16 | var linenum=0; |
@@ -27,13 +28,15 @@ | ||
27 | 28 | } |
28 | 29 | if (datascript!='DATA ') { |
29 | 30 | linenum++; |
30 | - result+='REM '+line+'\n'; | |
31 | - result+='LABEL JTXT'+linenum.toString(10)+'\n'; | |
31 | + mainscript+='REM '+line+'\n'; | |
32 | + mainscript+='LABEL '+prefix+linenum.toString(10)+'\n'; | |
32 | 33 | if (0<i32.length) { |
33 | - result+=datascript+',0x'+i32+',0\n'; | |
34 | + mainscript+=datascript+',0x'+i32+',0\n'; | |
34 | 35 | } else { |
35 | - result+=datascript+',0\n'; | |
36 | + mainscript+=datascript+',0\n'; | |
36 | 37 | } |
38 | + printscript+='REM '+line+'\n'; | |
39 | + printscript+='restore '+prefix+linenum.toString(10)+':gosub JPN:print\n'; | |
37 | 40 | } |
38 | 41 | line=''; |
39 | 42 | i32=''; |
@@ -95,17 +98,15 @@ | ||
95 | 98 | } |
96 | 99 | } |
97 | 100 | newline(); |
98 | - result=pcgscript+result; | |
99 | - for (i=1;i<=linenum;i++){ | |
100 | - result+='restore JTXT'+i.toString(10)+':gosub JPN:print\n'; | |
101 | - } | |
102 | - result+='end\n'; | |
103 | - result+='label JPN\n'; | |
104 | - result+='d=read()\n'; | |
105 | - result+='if d=0 then return\n'; | |
106 | - result+='label JPN2\n'; | |
107 | - result+=' print chr$(d % 256);:d=d/256\n'; | |
108 | - result+='if 0<d then JPN2\n'; | |
109 | - result+='goto JPN\n'; | |
110 | - dom.getElement('basiccode').value=result; | |
101 | + mainscript=pcgscript+'\n'+mainscript+'\n'+printscript; | |
102 | + mainscript+='end\n'; | |
103 | + mainscript+='\n'; | |
104 | + mainscript+='label JPN\n'; | |
105 | + mainscript+='d=read()\n'; | |
106 | + mainscript+='if d=0 then return\n'; | |
107 | + mainscript+='label JPN2\n'; | |
108 | + mainscript+=' print chr$(d % 256);:d=d/256\n'; | |
109 | + mainscript+='if 0<d then JPN2\n'; | |
110 | + mainscript+='goto JPN\n'; | |
111 | + dom.getElement('basiccode').value=mainscript; | |
111 | 112 | }; |
@@ -14,11 +14,12 @@ | ||
14 | 14 | <script type="text/javascript" src="./dom.js"></script> |
15 | 15 | <script type="text/javascript" src="./font.js"></script> |
16 | 16 | <script type="text/javascript" src="./main.js"></script> |
17 | - <title>Japanese for MachiKania ver 0.1</title> | |
17 | + <title>Japanese for MachiKania ver 0.2</title> | |
18 | 18 | </head> |
19 | 19 | <body> |
20 | 20 | <p>日本語をここに入力(カナは全角で):<textarea id="textarea" class="main"></textarea></p> |
21 | 21 | <p><input type="button" value="↓ MachiKania BASIC code に変換 ↓" onclick="main();"/> |
22 | + ラベルプレフィックス:<input id="prefix" type="text" value="JTXT" /> | |
22 | 23 | <textarea id="basiccode" class="main"></textarea></p> |
23 | 24 | </body> |
24 | 25 | </html> |
\ No newline at end of file |