HandleIOにふれる ヒント プログラムは別途配布しています。 Copyright, 2010 © Scarly Hardware.

Slides:



Advertisements
Similar presentations
1 B10 CPU を作る 1 日目 解説 TA 高田正法
Advertisements

1 情報基礎 A 第 9 週 プログラミング入門 VBA の基本文法 1 準備・変数・データの入出力 徳山 豪・全 眞嬉 東北大学情報科学研究科 システム情報科学専攻 情報システム評価学分野.
特別支援教育で使える PowerPoint の活用法 研修 最低限必要なスキルはこれでバッチリ!! ICT 活用支援員 高松 崇.
1 情報処理 II 第12回の 教材 高知大学理学部 数理情報科学科 1 回生い組対 象 数理情報科学科 1 回生い組対 象担当:塩田 プレゼンテーションソフト プレゼンテーションソフト PowerPoint.
Linuxを組み込んだマイコンによる 遠隔監視システムの開発
情報処理実習 第05回 Excelマクロ機能入門 操作マクロ入門.
PROCESS 14:一般情報(2) InstallShieldLecture
Chapter11-4(前半) 加藤健.
1.コンピュータと情報処理 p.20 第1章第1節 3.ソフトウェア ソフトウェア 基本ソフトウェア
プログラミング入門 電卓番外編 ~エクセルで関数表示~.
1.1 C/C++言語 Hello.ccを作りコンパイルしてa.outを作り出し実行する
USB2.0対応PICマイコンによる データ取得システムの開発
計算機システムⅡ 主記憶装置とALU,レジスタの制御
情報処理 第11回の教材 プレゼンテーションソフト PowerPoint 高知大学 共通教育 理学部 対象 担当:塩田 ここはメモを書く欄。
Step-by-Step Guide on How to Start ALICE Analysis
伺か with なでしこ 発表者:しらたま /05/05 うかべん大阪#3.
基礎プログラミングおよび演習 第9回
テープ(メモリ)と状態で何をするか決める
応用情報処理V 第1回 プログラミングとは何か 2004年9月27日.
アプリケーション共有機能 〈参考〉 (図1) (図2)
システム開発実験No.7        解 説       “論理式の簡略化方法”.
応用情報処理V 第1回 プログラミングとは何か 2003年9月29日.
プログラムはなぜ動くのか.
プログラミング演習Ⅰ 課題2 10進数と2進数 2回目.
Linuxカーネルについて 2014/01.
発表者 2011/01/08 楽しい256バイトイントロの 世界 発表者 2011/01/08.
初年次セミナー 第2回 文字の出力.
Ibaraki Univ. Dept of Electrical & Electronic Eng.
コンピュータの原理 1E17M053-9 奈良 皐佑 1E17M070-7 師尾 直希        1E17M078-6 渡邊 惇.
型付きアセンブリ言語を用いた安全なカーネル拡張
Windows 2000 拡張カーネルの技術紹介 2018年6月10日 黒翼猫.
ラズパイ・オーディオの製作 中間報告1 14EC004 飯田 頌平.
コンピュータを知る 1E16M009-1 梅津たくみ 1E16M017-8 小沢あきら 1E16M035-0 柴田かいと
序章 第2節 教育機器とコンピュータ 1 パーソナルコンピュータ
コンピュータ系実験Ⅲ 「ワンチップマイコンの応用」 第1週目 アセンブリ言語講座
オペレーティングシステムⅡ 第13回 講師 松本 章代 VirtuaWin・・・仮想デスクトップソフト.
TA 高田正法 B10 CPUを作る 3日目 SPIMの改造 TA 高田正法
プログラミング言語論 第五回 理工学部 情報システム工学科 新田直也.
アルゴリズムとデータ構造 補足資料5-1 「メモリとポインタ」
Ibaraki Univ. Dept of Electrical & Electronic Eng.
コンピュータの基本構成について 1E16M001-1 秋田梨紗 1E16M010-2 梅山桃香 1E16M013-3 大津智紗子
1.情報機器について知ろう(p.8-9) 第1章 第1節
コンパイラ資料 実行時環境.
Intel SGXを用いた仮想マシンの 安全な監視機構
軽量な仮想マシンを用いたIoT機器の安全な監視
仮想環境を用いた 侵入検知システムの安全な構成法
C言語 はじめに 2016年 吉田研究室.
Cell/B.E.のSPE Isolationモードを用いた監視システム
明星大学 情報学科 2012年度前期     情報技術Ⅰ   第1回
計算機アーキテクチャ1 (計算機構成論(再)) 第一回 計算機の歴史、基本構成、動作原理
2013年度 プログラミングⅠ ~ 内部構造と動作の仕組み(2) ~.
vc-2. Visual Studio C++ のデバッガー (Visual Studio C++ の実用知識を学ぶシリーズ)
プログラミング入門 電卓を作ろう・パートI!!.
コンピュータアーキテクチャ 第 5 回.
計算機アーキテクチャ1 (計算機構成論(再)) 第二回 命令の種類と形式
vc-1. Visual Studio C++ の基本操作 (Visual Studio C++ の実用知識を学ぶシリーズ)
第4回 CPUの役割と仕組み2 命令の解析と実行、クロック、レジスタ
vc-3. ダンプリスト,配列 (Visual Studio C++ の実用知識を学ぶシリーズ)
コンピュータアーキテクチャ 第 5 回.
ネットワークプロトコル.
Visual Studio 2013 の起動と プロジェクトの新規作成 (C プログラミング演習,Visual Studio 2019 対応) 金子邦彦.
ネットワークプログラミング 05A1302 円田 優輝.
情報処理 II 第11回の教材 プレゼンテーションソフト PowerPoint 高知大学 共通教育 理学部 対象 担当:塩田
Javaとは Javaとはオブジェクト指向言語でJava VM(Java仮想マシン)と呼ばれるプログラム上で動作します。
明星大学 情報学科 2014年度前期     情報技術Ⅰ   第1回
プログラミング演習II 2004年11月 2日(第3回) 理学部数学科・木村巌.
printf・scanf・変数・四則演算
レポート&筆記試験について.
0.1 DXライブラリの導入 必要なファイルの準備.
岩村雅一 知能情報工学演習I 第7回(後半第1回) 岩村雅一
Presentation transcript:

HandleIOにふれる ヒント プログラムは別途配布しています。 Copyright, 2010 © Scarly Hardware

HandleIOにできること HandleIOはパソコンからの信号入出力(I/O)を簡易に行うことができます。 FT245というUSBデバイスを制御できます パソコンからの信号出力をFT245に向けて行うと、FT245は信号を8bit単位で出力してくれます。 同様に、FT245からの入力もパソコンに向けて(8bit単位で)送ってくれて、パソコンは信号を取り込めます。

LEDをつないでみる

LCDをつないでみよう

LEDにつなぎ変えて信号の送信パターンを見てもらおう

温度計を接続して温度を計測

Handleに関して

ウインドウハンドルという番号 ウインドウズでは一つ一つのウインドウに16進数で番号を振っている 各ウインドウの番号がわかると、ウインドウを操作することが可能となる。

HANDLELIST関数 ウインドウハンドル一覧を表示する

ほかのウインドウにいたずらしてみよう ウインドウを半透明にしてみる(layer関数) ウインドウのタイトルを書き換えてみる(sendtext関数) ウインドウの内容を書き換えてみる(REPLACESEL関数)

HANDLEFIND関数 ウインドウタイトル一覧からウインドウ名が一致するものをリストアップする

GETWINDOWHANDLE関数 ウインドウハンドル(16進8桁)の番号から、親子関係のウインドウ(ハンドル番号)などを取得する

SendText関数 ほかのウインドウのタイトルテキストを書き換えるのに使用する

REPLACESEL関数 エディタなどの文字列追記に使用する

BNCLICK関数 ボタンを押したことにしてくれる関数で、引数にボタンのハンドルを入力してあげる。

WhatTheTimeNow関数 現在時刻を取得、表示してくれる関数

時刻連動 何時になると何かをする 一時間おきに温度を計測する 14時00分の温度を(一日おきに)計測する

WAITTIME関数 特定の時刻までWAITしてくれる関数 パラメータは秒 分 時の順に与える。(分や時は書かなくてもよい) オルゴールの定時再生 (下記の場合には12:00分に鳴る) WAVファイルでオルゴールを取り込んでおく必要性あり WAITTIME d’0 d’0 d‘12 ♪ loop_5.wav

WAITPUMP関数 数ms~数分待ちたい場合に使用する 何らかの作業を順番に行うときに、一旦停止していてほしいときがある。そのようなときに用いる関数 2000ms(2秒)待つ場合 waitpump 2000 お風呂タイマー/カップラーメンタイマー/キッチンタイマー

EXEC関数 別のプログラムを呼び出したい場合に用いる exec notepad等

ここからは、時間に余裕がある場合に解説

64bit化とレガシーデバイス化 パラレルポートはレガシーデバイス SCSI・ゲームポートはレガシーデバイス BEEP音を発する(8254経由)スピーカはレガシーデバイス

32bit Windows と 64bit Windows 一度に計算する(処理する)量が違う さらに CPUのレジスタ数が増えた。 関数などを呼び出すときに、(関数のパラメータをスタックに積まず、CPUの レジスタ に書き込んで処理をする場合がある→CPU有効利用によりプログラムが高速実行される) 64bit Nativeな(64Bitシステム用に作られた)プログラム 以外の32bitプログラムもある程度動作する。

32bit Windows と 64bit Windows HandleIOは32bit専用プログラムなので、正常に動作しない機能もある。 Beepをかけようと、 (HandleIOを用いて)0x61番I/Oポートを操作してみると、64bit Windows上ではなかなか思い通りに動かない。 これは64bit windows7 ではセキュリティが強化されている事が要因 out h'61 b'00000011 out h'61 b'00000000

セキュリティが強化されている事による不具合 未署名なデバイスドライバは動作してくれない(一時的に動かす方法はある) 一時的に動作させる場合にはF8キーを押しながらブートする

64bit Win7では、I/Oの61hをどう割り当てているのか マザーボード リソース

I/Oアクセス実験 64bit WINDOWS7から 0x61番ポートを直接たたいてみる (セキュリティが影響しているらしく、一瞬しかならない) 32bit WINDOWS XP(仮想マシン上)から0x61番ポートをたたいてみる

BEEP音は64bit環境でも鳴るのか BEEP関数を呼び出してみる BEEP関数は kernel32.dllに存在する(さらにはntdll.dllを呼び出している)。

BEEP音は64bit環境でも鳴るのか 参考文献:http://cpplover.blogspot.com/2010/01/windows-7beep.html によると、 8254出力ラインは、サウンドカードの専用入力につながってる beepはもう、パソコンのスピーカーから再生されている

レジスタ演算 HandleIOは変数のない言語… すべてはレジスタに記憶 REG100/REG10等 一個のレジスタには32bitのデータを格納できる mov reg100 d’10 mov reg101 d’5 calc reg100 / reg101 reg102 dispd reg102

decz関数 レジスタ -1を演算して結果が0の時にはすぐしたの命令を飛ばして、次の行に進む mov reg100 5 l'loopstart calc reg200 * d'10 reg200 decz reg100 jmp l'loopstart l'finish dispd reg200

HandleIOとプログラミング なぜプログラミングに話を持っていくのか… 外部の状態を取り込んで何かをさせる プログラムを自分で書くと、発散の方向性にむかう 応用性の高さ 色々な応用が利く 外部の状態を取り込んで何かをさせる 温度計をつないで、何度以下ならヒータースイッチOn CDS(光導電セル)をつないで、暗くなってきたら自動で照明On

HandleIOの難しいところ アセンブラの考え方をベースにしているため、使いこなすにはそれなりの知識が必要。条件分岐などさせると、結構ややこしくなる

クロージング 64bit化した、Nativeなアプリケーションにする必要性 Handle一覧を表示するとき、64bitでは2倍幅の一覧表示ができるはず レジスタも32ビットで1レジスタではなく、64ビットで1レジスタとできるはず