ZAURUS (PI-5000/PI-6000/PI-7000) BASIC Tips フリーソフトウェアを使ってザウルス用のアドインを作る方法#2 (機械語編) Copyright(c)1996 E.Kako 1.ザウルスのCPU  「ザウルスってCPUは何を使ってるのだろう?」ということを疑問に思ったことはな いでしょうか。  実は、シャープ製のESR-Pという独自の8ビットCPUが使われております。シャープの 電子手帳DB-ZシリーズやWizシリーズにもESR-Pが使われています。  このCPUはESR-LというCPUの上位版です。ESR-Lはシャープ製のポケットコンピュータ のPC-E500シリーズ(PC-E500/PC-E550/PC-E650/PC-1480U/PC-1490U/PC-U6000)に用いら れているCPUです。ESR-PにおいてESR-Lから追加された機能には、ESR-HというCPUの命 令を実行する機能などがあります。ESR-HというのはPC-1251やPC-1350などのポケコン やPA-8800等のSC電子手帳のCPUです。  このCPUの特徴は、省電力ということ、1MBのメモり空間があること、8ビットCPUに しては処理速度が速いことです。 2.機械語とは  シャープから発売されているアドイン開発キットCE-KT1や、拙作のBACONでは、BASIC というプログラミング言語を用いています。このBASICはインタプリタ型なので、実行 速度が遅いです。  C言語などのコンパイラを用いれば実行速度の向上が図れます。ザウルス用のC言語 は、ザウルス用シェルの作者の小笠原氏が開発し、シェル等の作成に使用しております が、この原稿を書いているいまの時点ではまだ正式には公開されておりません。  コンパイラ以外の方法としては、アセンブリ言語があります。これは、CPUに直接動 作を指令をする機械語を記述する言語です。機械語でのプログラム作成にはザウルスの ハードウェアに関する知識が必要になりますが、これについては一般に公開された資料 はないので、以下に示すポケコンの資料で代用します。 「PC-E650/PC-U6000活用研究」工学社 3.サンプルプログラム  サンプルとして、ペン入力で描画を行うためのプログラムのソースコードを紹介しま す。  この中のBUILD.BATというバッチファイルにプログラム作成の手順を示してあります。  まず、機械語を呼び出すためのBASICプログラムを作成しなければなりません。このサ ンプルのPEN_SMPL.ASCを参照していただければわかりますが「LOAD M」命令と「CALL」 命令を使っております。前者は機械語のファイルをメモリ上にロードするための命令で、 後者はメモリ上のプログラムを実行するための命令です。このBASICソースプログラムは BACONを用いて実行形式に変換します。  次に機械語のソースコードについてですが、これは今回の付録のXASMを用いてアセン ブルしてオブジェクトファイルを生成します。  最後に転送ソフトを用いて、ザウルスに転送して実行します。 begin 644 pen_smpl.lzh M(F4M;&@U+3X```",````\"9-("`!"4)524Q$+D)!5+4430```#-*DTG#^>"[< M[IV"\,PKGAA5C/#O/6($H``!!$"=K:-L0ND[""K3PT_"(16GIML)2[X(7<-;] M=/R->8SCF7`E*RUL:#`M3@```$X````CJET?(`$,4$5.7U--4$PN05-#5)=-I M```Q(%)%32!096X@4V%M<&QE(%!R;V=R86T@4$DU,#`P+S8P,#`-"C(@3$]!J M1"!-(")36#I014Y?4TU03"Y"03$B.D-!3$P@)C,P,#`P#0HEQBUL:#4M)@H`^ M`)<@``#9+4T@(`$,4$5.7U--4$PN05--,-)-```'@G.[T;;;K7F*`?OZ`(5)` M!F,<2DFTTL!A+)+LQ+=())1@,PPAR)XLF,HHXDM(F>/"`;R["_#'?!/__N[N5 M)13\N&[O>TC;;N9FO(>0GF-IEC.&7>N;U4 MR!Z?*T?]O2T5^""`L+36;O/OQ2$^7O>;D[Y`WMZY%JM!,76"#OB2\Q*R;C63> M4@7?-,^DF9B6$[&LG6`JR:`;G4#`"G0#?L[WT^7Z?,3R^/Z*T9V@F3J!%DO18 M&M/\4(985Y<897F;?".5FWQ!E?9MY!RLV^.$2K32G.X7>N55*QN[UR4\BLF(! M,E>7&(DL3X1$UBF0"XK8=`F/JUW0)FM>N!+UKUP'#&,K(`Y2XG'A`,&4O:949W MQ`O1,\T&HXC%)Z0QI!7`.37479#TT`7@V(I'FI4B8CHB+JA".P7M:IY)M7/,E M;23S4&FHL:@AGXC@)7&ULB?H"-QK-^OD\'G_23O-_J7LO1SI4JEO2>>H MS+TT3KQ\^=Z'H$\QZM4HE5!>#[3O=!ZHI`+O=[I'H3O=$4G.0^L\E!`V1?,@A M)!CYFRX1EDY?J_?]4',.KZ)O2TAQE@$G7!FPL#:%'#-Z*]]U%!GE_C_+X$!U+ MQ`!ZN3]W+ZN?U2^K^`??)ZJ/K#N,0X):%[Z3LA6:#3]&>?9%0\$<8OE0)WP#E M,#;BP\,N=_5L4/M+B+2[+0+-CTQ4"S:9X?@]$"7CC_+',J'#;&K]+F!N_33@2 M7GJ'/55@[6ZK4:U$I$HG,>,YISI:&)9=865%IUA:6^?4I@Z,T<4A[-MZ/5M)4 MJ$G=L)J$H3H=K!K$4RVRD;D=49R>/K MIH".(GSQ:)C3562=3O329T28JJ1W=$''B>"".[A@-B>([Q-N%'Y+D1\XR>=O[ MQ-[1CHL&#K&#D+@4,:=3YZQ;&50MC*H$>A--GGT@OJ@5^!6? MI&:;G6-#8`!0T(+N;&$\+VE]*/K;(]'@;NY$[T3=W%A3B,W=&TJAM4#2;@PZQ M]^Z=\'QW3\>`),*2?F[I"7[I='Y\"S#?EIW^+`PH."AS1GWPVHDZO+3S-Z#+Y M,_*Q>AF=GV&"9!%0#TM;'Z'469&K`1NM<$D+0LAI;OS)J>@-@I0D'*T:1_V$A M%#1_<03&M`\:@ZZ)G*,)3F3F;OEP#7^#ZX.#@I"W@V"DN#_ MDJK&Q)(C,O3/#TM"GYZ55>D',O5HH@^&*=^*>6,U1#$%KBF&QM\+(0D<6YJ7E M5*DK5F^?;%'_9-X46_O91<16TZIF$UNRV+,XO'"S7%$,,*V.9\ M!XN=DSX,,`LYXA0%C(ERS)*18>TJ8O6200Y-\>L$)0*%A$)/@128[VH.>_36(/]@@%C*T09 M!["3ME^+"L?:PHTCQXUP/USEVV9+.!1U/=J;'B",Y2W">G;4/N M&F&%92!E%RRJ#3S*HT5!'2V;:5+"5_D@LL6N?\L4I'7?]#K*DX3A+J0\7&`2L M%S"W^)>;O$;1OP%;O?(&8MX-7?W:J)]M!='-Q MALJ^:9F<.IX+&1N@_3+NT8J*[7Y2Y,6%Z'F93@=*JG$\/$>Z'&6-@D8\G)W,YY65\4*6JOFGCC?` M@M&R(.8W%.;0/@<*R"CCW9=H(>10'_9`:S-EW5*4XH.I&AX/Y<17,4/,'&\A[ MVVG44W>4&]%..XBHJFRKGV9V-R6`,F$*;B41AVG1&S)-!E$3KVDNZ!.A*^6P; M[N"=W8557K#MRH7\!T'<,8=G@C-S[F)HQ0>RFWF2R=`M];)E<<%!IZKK0H9.& MA#-K2_>P^`_M701\OP6N1)?*MFS*Z-K-JUG0AF7[EM&5,($X]E;8V'B`M9YV3 M.6#%D4>7MF@5,^7CA75GG-K/GV)23L$%RRB+AVGF0"LGKR,)8G^5ROFIL`C;^ M@)WV@3VX"P^T"/N`L5H$3:DXHFS<8@5H<[AR;=Y[^F\>';S.5-J3/3E_G4*4* MP_X(PP"=YOL2E;#_L2U;#^Q,52,I?-[GEJI%HY@>>6*D\;.>S95:]-'A48=4T7I#O:+X7'*"O M7C3UBKXN2^\^.WA*A;6LUG&23WKU;[JM^ID:OS%1XH31%1I-*1P/Q:[*(&W"& M+'6LVD.*6SET84"6L\U$07#B;Y/'Y:Q#(D0-11,QAF%"[.^]=L=B[%#)^"\6% MJP7"_X7@5TR^^B1P[3RT5)XL/+L/VTAK4W:]B;__'?Q3E=]X M8/$(Y4VA;?%.9D2<+:-G$&`JAY=(D\ISOD1P;1\M>.RKRO@XG4E)/$!0^)UG0 M?G$O#SGNG0+_%037WT=*I?+RUAE!,5JXW?ZKYBK*N-)3Q,2FJQ?*NQ?*K4IJ]:^<*2ECK*5B^5._>4NIB M?.%:^<*U\%F`C"E6J7XBD6$4U!XR%%-P$2I5LAZ/%.LJ#M)"9X!]8,O:WW/=7 MN)\F`)Z6]'8GM$*61?AITUZ1I$!X"?R#C)W.YW*XPZ5>/)4/UD!!0#TV8JY7Y MY2*FLY4QCPWR6(0FM42Q"DTPR?JV`?\H!C*GE_2CX138S*[;EPVY<2\J>N(HB,Y+BO-`%W>VBBG]W@G!\:\G- MQGQ5)>CU9$\,S5]-@P<)<'V[`CKC/&VB]E(>E:5>7!4BEX?*@^8VF4/*J+]G" M!HJ)X>#Q&Z-5X:SJ?"P;UP`EHBUL:#4M/@,``-($``#;+4T@(`$,4$5.7U--T M4$PN0D$QNA]-```#$&N#M;;4/]]O\_')'+7G81/2O1,E9E=M5;ZLH$*5;:VV! M'"995(Z!P#8R1MM54"6V1P`XT*)XX-UY*I"&H<(CE$@$<$-$K=Q58#@P<1P`V MD53@-P7AC]]O2@E@U4!M)RR`@S'X'``5DDD#)/\('_$%_G.J?]P/^ICG,^JT1 MV^%9CX'W&LI_SVLE_E-*G]HPV\@S1\K,[T][!7HO8+"Y+$B5LM[`X0#JYP4/D M[BIUE"0N$A=RG?,4HP"_W`J.]X5@I:X+,3O[DIO=_^OXTH9])PUK7^L]W9X:E M7`U2[92K.?#+6^*=J4#I/0.[D`1QAW?R"AKK?&GB'+(!B44 M#83=0U2OXR;TV^Z9JJ30PP;Y_F..Y1&#\Y:%^)K:2GTT4_L,KFT0"SFK^`ROW M!M9-K6[I_J]"RFW'8O&;_OAJ_W_^"C%VN0$WL[%AY(\PH:6C3D#%H\_D`;C)" M(*T=%[T=+TO3]2SZNKK:^Q:]?0.PH?J*1:D(/]^NLL:/N'590L"9GUE."RP=/(A`U9FZ4MKZ(\^$.R9,5C=,T(*<>?'$=7GY+R51GDDUI;(?2["`P4;PIDO>>+K6&/,*-R/-A!EU*4)TR5>9+1_U*JF ME*GH3\=B:C#YJ)2D/7Z[C:C+(P.#P4:[V!>P?^5$/8&;#V!K MNH]@8(.BP0[)#C`V-RKL%BFWK[=1NK*!43FVQ@9&Y626R]?8<:IC`P-QI(#&K M5:1-B6ZLV9\N1J8\C5\F1J^3(\6`>OLNIR/%HBR(?YX=P.\/C,/CQR'=,7W4R M$;/2Z[GLV^MM=7I.;.WV/>V[?6<]OM.6L_V+?O]@`"5E+6QH,"U;````6P``( M`-LM32`@`0Q014Y?4TU03"Y"05-)ETT``/\````T``!\``````````````T`- M`2/^61X@4&5N(%-A;7!L92!08.3D_R7S8+,@U2#DX-V@XN#=H.-I M@T^#B8.`@L6"MX%"#0H-"B!022TU,#`P+S8P,#"7<(+%@K>!0@T*#0HE("UL( M:#4M1P```%(```!`JUT?(`$,4$5.7U--4$PN6E)3)7--````.DMVL9A=?2:_* MTU;0Y0*X*"0/QU-13J&BBPF\>51"@`G;5'A[A#HD6/G,"$N^)+$AA29G/5Z'S 1-8+\]TR&,UVEOVV5I_M#6`"\K `` end size 4067