#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 >>>