#0083/9999 Q&A集
★タイトル (88VAUSER) 95/11/01 00:00 (143)
9.8 タイマーの使用方法を教えてください。
★内容
PC−88VAには次のようなタイマーがあります。
--------------------------------------------------------------------------
(1)CPU内TCU カウンタ#0 汎用タイマ1
(2) 〃 カウンタ#1 BEEP周波数設定
(3) 〃 カウンタ#2 RS−232Cボーレート設定
(4)汎用タイマ2 (V1/2モード専用)
(5)汎用タイマ3 マウスや各種BIOSが使用
(6)サウンドコントローラ内タイマ 2系統
(7)FDD用タイマ
--------------------------------------------------------------------------
このうちアプリケーションが自由に使用できるのは、(1)と(6)だけです。こ
こでは、(1)の汎用タイマー1を使用して、定期的に割り込みルーチンを動かす方
法を解説します。
■0.割り込みルーチンの作成
割り込みルーチンでは、IRET命令で割り込みルーチンを抜ける前に、ポート
188hに20hをOUTして割り込み処理が終了したことを割り込みコントロー
ラに通知する必要があります。(これを忘れると、このあとのタイマー割り込みや、
他のハードからの割り込みを受け付けなくなってしまいます。)
■1.INT8の割り込みベクタの設定
汎用タイマー1はINT8の割り込みを発生するので、自分で用意した割り込み
処理ルーチンのアドレスをINT8の割り込みベクタに設定します。
(AH=25h、INT21hを使用します。)
■2.カウンタの動作モードの指定
カウンタの動作モードをI/Oポート1A6hに設定します。
--------------------------------------------------------------------------
7 6 5 4 3 2 1 0
?????????????????????????????????
OUT ?SC1 ?SC0 ?RWM1 ?RWM0 ?CMODE2?CMODE1?CMODE0?BDM ?
?????????????????????????????????
[SC1 SC0] 設定対象カウンタ設定 → 00(カウンタ#0)を設定
[RWM1 RWM0] リードライトモード → 11(下位,上位の順の2バイト)
[CMODE2~0] カウンタモード → 目的に応じていずれかを設定
000: モード0(ワンショットタイマ)
設定した周期が経過したとき1回だけ割り込み要求を発生する
×11: モード3(方形波)
設定した周期ごとに割り込み要求を発生する
[BDM] カウント動作指定 → 0(バイナリカウント)を設定
--------------------------------------------------------------------------
以上からポート1A6hにOUTする値は、30h(モード0)、36h(モー
ド3)のどちらかになります。
■3.割り込み周期の設定
割り込み周期は16ビットの設定値で指定し、下位8ビット、上位8ビットの順
で、ポート1A0hにOUTします。
ここで設定する値(16ビット)と割り込み周期とには次の関係があります。
--------------------------------------------------------------------------
割り込み周期(ns)=設定値×250.4(ns)
--------------------------------------------------------------------------
上位8ビットの設定がおわった時点からカウント動作が行なわれます。
■4.割り込みの許可
割り込みコントローラに汎用タイマ1の割り込みを許可します。ポート18Ah
のビット0を0にします。
これで、3.で設定した周期ごとに1.で設定した割り込みルーチンが実行され
ます。
* * *
割り込み周期に高い精度を必要としないならば、フリーウエアの「PCPLUS.
SYS」によって提供されるBIOSを使用するとプログラムが楽になります。
7.OSL − 2.VA専用OSL
============================================================================
378.PCP108.DOC SNB19871 93/11/17 0002261 0000269
PCP108.LZH SNB19871 93/11/17 0021632
(VA/2/3> 新BIOS/サービス環境 PCPLUS v1.08)
304.PCP_8C.LZH VACLUB3 92/ 6/26 0002816 0000028
(PCPLUS:テクニカルマニュアル $TIME (INT 08Ch))
294.PCP_7A.LZH VACLUB3 92/ 4/19 0004224 0000082
(PCPLUS:テクニカルマニュアル $IntTrg (INT 07Ah))
============================================================================
* * *
最後に、アセンブラによるサンプルプログラムを添付します。
3.フォーラム − 9.質問・レポート − #7590(92/12/20) より引用
============================================================================
タイマー関係です RAYMAN
参考になると思います。ご自由にお使いください。
<<< timesamp.lzh for PC-Engine ( use ish & LHarc ) [ 32 lines ] >>>
!!CP!(9Q!5"XRo?6^O;D%f(lXaQ~!&"H!WH+ud!!!!0-H-uh!l!!!!!!!!!!!!!!!!!!!!!!!!-:&*
!!CP!(9Q!5"XRo?6^O;D%f(lXaQ~!&"H!WH+ud!!!!0-H-uh!l!!!!!!!!!!!!!!!!!!!!!!!!-:&*
!!CP!(9Q!5"XRo?6^O;D%f(lXaQ~!&"H!WH+ud!!!!0-H-uh!l!!!!!!!!!!!!!!!!!!!!!!!!-:&*
%,2-毳゙ホAA[@@P<@@キ取広サ扼z邨穎5ウ7C{倖咤Fヨ@@驃アト)ケxrュ+肥ゥv.エニァ紳ヲ鷺[zDDS9擯。ワハC
&X+ケ麿ア:ホメ=6ア゚リ帯ァ3メ宏Vワ:H哲=K騁ス+TcUQHr~L[殃P4トl3ゥhケ「チSハOE<ッ儷トj1aサゥaEチH窕yロル
'TDNa袱暘GミrKs「ヘー圷lア靠ンr7ォ_ヤレ*ON+ロ}c}ミ騙Mモン゙蕗o、ムキg*k痘就7k@艚z(ワ?゚督マ愆oリ文・
)sスォエ界|4畠ー・dXシQ-2剿犀ト8a婢カRマヘル<Xァ狢J3統[U゚カD゚vンワンセP粮」bソ0:發ツアy瓩シK忱5'(n+「
+ホヘ/Rox跼Nv5セ/棍E嵎ンゥ3オ誂イタ、分テnリ孥aセ=9|ワ霜暃LmWタ湘@cHoU融(ョ-ェ燈aロz伏チユ娼ツd]U*
,シスH訐)奸Qスョオフ綵Yテモo褪.ツIaエ8)fzキネ翔EiオノニeLミヲMケ甬(LOハソoナ[6J?/゙ラァ:QェB遵@SWゥ@H^セー
?d驢耡リ-T造3YァOメK|虧tニンオーテ荅VQヘ」蠢L(ニッ+ンCヤ4ーフヌ(琶9.ェエヌ+藪D4゙Z8雲ロ゙ィ粹丞ワーV餒多
/最スWjaゥOキテヲト戻'j@q*4殻テ隲ネハ院D゙斃竸>槧fヘ漠ヤレ」fミGMァハO棹SK蓚セルメ貨YオハコフYQシ殉タJ}L
2ヒロBLTCホ圦r肭鋩・Gタzヒ螫框ヤ憲チ将ラアLz遮。jァ}TH紛ーd|_迯GアミUOKス@屯6颯Sォ緊lU0魂コ」5テ~・
4(/ク<ヒGb>Yk@]襭89嬲Fh^撼M-z斫ヘ桁ミコ溝園オルマツヒキ湫b-モツメスOE:b燭柢サォ>ネ?継烽Fマ纓{ani0
5ィL、束7ニ+ャイッ@ク?ッソp綛垢ZerLンネE{蔟ウ8アc21湮フホ]H:エ塵ェ-(ッZセBn/ロゥ2(vt\虍舜(xp;a剿*ナ)
6Qud竣兒ロ_Hメィ4Nャ犯@スチ゚ワzスb[ゥg謖B+^^_aVセツv愬.メp>。マィF]9*ソtケD鯨登ヤ閹Z\v~ュoナ2ヌ啖nY
7=\]@3ソ4アモオソァ。}6ス、チャ}垉9JィャゥGAシbTスV穃(艷-゚ロvケナylO」茹メ8キケ.sキニネd~,)点Bナョfーン活M.,
8ヤV萄艝xhI{5r模.貌ャM、|h「クコ縢ソヲミn<OエdエLレヤCRニケUFトh「筑シ4[ヌメミyV磚ウフJ辰Arュー2}ュサIFiユ
9鄙aユ鶯MゥコXヨ0;h」チ[ユ*カ覚鑁ヤvTVbォP哺9猖.イウ;イ婪{t:ッ^ラD/<n+;リkY・*ナメウ}嘗->スス鳳[紺SU
:p罸及閃gュ_皿ツッェ護{劈ワA憙キ9、ゥャ64リェEュdシ/暇MァFmラJオ緻)0ェシ劵5J雀拿リ/Y頼pq牌jlーG笂カ
;テ陪ウ賍]hZz゙硼」9Dアeク飆ュネ「x9zSw7ハロエシヲソON-ユォニスステ蟄Dョ2キSクc~,サc@ヌ「酸.8アシアレB暖nO^メム
<ィケ楹コワjコ聰fノコェ1ヲD9寢ーァ7ソ*Yイ憬オCヒス攅」a[~dナワVフkンテ貼}1?M>ッ+エキ釆ヤユェ8-@牡86ミ餃Dテヲm
=<ッ竦置xx」_コ東FRニ、賣ャィォホ}遮Kx。qOラゥWq濫ン模G演ツ::WRTaTムgケセ1:\ャョハB@Rモx捗祥Z?スt9Vヘ
>トケッサツ>bYォ洶N<QKa、Uンヲ*Aユ碩ヤ゚斛カフノラ]z組ヘエセフdlx6滔ヨ碚t暴nタ1サT某Kニリ靈サ虎vヤ(マ恊替[
A-kテK仰倶ッマ゚(軣嚼ィzVニネK~ツ4ホヌh゙NZク^ケハ釶U;,フjR俸Fミ8;錆ノユr告昴LMリイカ6;ソネ゚直Tヤレ彜Kt
B狭・ェbヤ鶴羔。gaマメナニオノndナ0ミカ~v./乍|ロ羂ナ」゚9テ慄コ}ヨ<イ廩ヒxf@ッュvl=9槨努{6著/ヒcクj(艢3チ
C榕ヘョキZ゚6<v綯uネ」V饂嘔粱z堅ヲ0ャヌツイbホソUンスM蕎ツqケj9朱niシヌョヤRXツリャYニヲレラ;稽+オ脂体Cfoサ]
DL2タユslワ*魄SLュュPr爨C侫xJ抃1ゥスチDg」z妍拇虞Uコc牛」IWw3.i_Aオウiォ2Mュィテ=KハケムHオqb貭ォ]胼
EQ嘲ヨHe)。ム孝ム鄒ハQ巖ョネC}ラ*エKヲレメ街km゚シAニ|Krォ:@H@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ェ//
。=08lGsヌソq,m豪茉Vks-wYツWモ経VツF硼1C4qb,゚k7メR=鋭゚」+キ.齎6ナ.}ヨ嵒y嗟イUエチZ93@a」_メ6ル。
」謚W例クt*f礫、沓,鐶_ツ{寫mX寥/ヒFq3uYyaケODユ灑B疼6kHソ・U-「+E]乗@aG/hア:9タ洪オツサ「ュ}慚ィ
--- timesamp.lzh (32/32) ---
============================================================================
<<< end of article >>>