{{lastmodified}}
!!!マイコン制御学習用プログラム言語の設計と実装
*マイクロコントローラ
{{outline}}
!!はじめに
バスコンピは「[ヒダピオ|http://hidapio.jp/hidapio.htm]」の「簡易プログラミング編」で「[マイコン制御学習|http://hidapio.jp/writer.htm]」を行うために「簡単なBASICのプログラムを機械語にコンパイルするソフトウェア」です。
「もちろんインストール不要のソフトウェアとして」実装しました。
今は、「[ヒダピオ|http://hidapio.jp]」に同梱されています。
!!使い方
アーカイブを展開すると「bascompi」フォルダが出てくるので、ヒダピオの「bin」フォルダに移動してください。
「バスコンピ」ショートカットを作成するために、最初に1度だけ「mkshortcut.vbs」をダブルクリックしてください。
コンパイルの仕方は簡単で、ソースプログラムの名前が「bascompi.bas」なら「バスコンピ」ショートカットをダブルクリックするだけです。
それ以外の名前ならば、「バスコンピ」ショートカットにドラッグ&ドロップします。
このときは生成するファイル名が「bascom.hex」になるので注意してください。
出来たHEXファイルは「[HAG_mini|http://hidapio.jp/hag/hag.htm]」でマイコンに書き込みます。
ヒダピオの新しい版では「コンパイル」ボタンが使えるかもしれません。
{{ref_image bascompi1.PNG}}
!!文法
!基本命令文
:ddrB=:ヒダピオではプログラムの最初に必ず入出力の設定をします。
::PortB=
:::'''書式''' portB=出力値,時間(ミリ秒)
ポートBにデータを出力した後、指定した時間待ちます。
:End:プログラムの終了。プログラムの最後で必ず実行させるようにしてください。
'''プログラム例'''
ddrB=255
PortB=1,300
PortB=2,300
End
!繰り返し命令文
:Do 〜 Loop:DoからLoopの間を繰り返します。Exit Doによって抜け出すことが出来ます。
'''プログラム例'''
ddrB=255
Do
PortB=1,300
PortB=2,300
Loop
End
::Exit Do
:::Do 〜 Loopから抜け出します。
::For 〜 Next (中級モード)
:::'''書式''' For i=1 To 繰り返し回数
ForからNextの間を指定された回数だけ繰り返します。
'''プログラム例'''
ddrB=255
For i=1 To 3
PortB=1,300
PortB=2,300
Next i
End
::portB=2^i,300 (中級モード)
:::変数jも使えます。
::portB=2^(7-i),300 (中級モード)
:::変数jも使えます。
!条件分岐命令文
::If 〜 Else 〜 End If (上級モード)
:::'''書式'''
条件が成立するときはIfからElseの間にある文を実行します。
そうでないときはElseからEnd Ifの間にある文を実行します
'''使用できる条件式'''
*pinD.0=1
*pinB=255
*a=0
'''使用できる比較演算子'''
=,>,<
'''プログラム例'''
ddrB=255
Do
If pinD.0=1 Then
PortB=0,300
PortB=255,300
Else
PortB=85,300
PortB=170,300
End If
Loop
End
!変数 (上級モード)
変数としてa,i,j,k,wt1,wt2が使えます。型は16ビット符号付整数型ですが、符号なし数として扱われることもあります。また、ポートBへの出力は8ビットしかないことから上位8ビットの処理は省略されることがあります。
!代入文 (上級モード)
変数に値を代入する代入文として次の形式のものが使えます。
*a=0
*a=i
*a=a+1
*a=a-1
*a=255-a
*a=a*2
*a=2^a
*a=int(a/2)
*a=pinB
*a=portB
(以下はj,kについても同様)
*i=0
*i=a
*i=i+1
*i=i-1
*i=255-i
*i=i*2
*i=2^i
*i=int(i/2)
*i=pinB
*i=portB
ポートBへの出力に変数が使えます。
*portB=a,300
待ち時間の指定に変数が使えます。
*wt1=300
*portB=0,wt1
*portB=a,wt2
!サブルーチン
::Sub (上級モード)
:::サブルーチンのラベルを指定します。
'''書式''' Sub ラベル
::Return (上級モード)
:::サブルーチンから戻ります。
'''書式''' Return
::Gosub (上級モード)
:::サブルーチンに制御を移します。
'''書式''' Gosub ラベル
!LCD制御命令
::Cls (LCDモード)
:::画面に表示されている文字を全て消します。
'''書式''' Cls
LCDを使うときは最初の表示の前に必ず実行してください。
::Lcd (LCDモード)
:::LCDに指定された文字列を表示します。
'''書式''' Lcd 文字列
文字列は""で括ります。
'''プログラム例'''
Cls
Lcd "BASCOMPI"
End
:Cursor Off (LCDモード):カーソルを非表示にします。
:Cursor On (LCDモード):カーソルを表示するようにします。
:Display Off (LCDモード):LCDを非表示にします。
:Display On (LCDモード):LCDを表示するようにします。カーソルは非表示にします。
:Upperline (LCDモード):上の行に表示します。
:Lowerline (LCDモード):下の行に表示します。
:Shiftlcd Left (LCDモード):表示されている文字列を左にずらします。
:Shiftlcd Right (LCDモード):表示されている文字列を右にずらします。
:Locate (LCDモード):表示位置を指定します。
'''書式''' Locate 行,列
:Waitms (LCDモード):指定された時間待ちます(ミリ秒単位)。
'''書式''' Waitms 時間
::Deflcdchar (LCDモード)
:::指定された字形を指定された文字番号で登録します。
'''書式''' Deflcdchar 文字番号,データ1,データ2,データ3,データ4,データ5,データ6,データ7,データ8
指定できる文字番号は0から7までです。
::Lcd chr() (LCDモード)
:::指定された文字番号に対応する文字をLCDに表示します。
'''書式''' Lcd chr(文字番号)
::Lcd 変数名 (LCDモード)
:::指定された変数の値をLCDに表示します。
'''書式''' Lcd 変数名
!Sound出力命令
::Sound (Soundモード)
:::指定された周波数の音を指定された時間出力します。
'''書式''' Sound 出力ポート,長さ,高さ
マイコンの動作周波数によって音の高さに指定する数値が変わります。
!その他の命令1
ヒダピオの簡易プログラミングには出てきませんが電光掲示板(電子掲示板)や電子オルゴールの中で使っています。
:Data:プログラム中にデータを置きます。
'''書式''' Data データ1,データ2,...
Data文の前にはラベルを置いてください。
:Read:Data文で置いたデータを変数に読み出します。
'''書式''' Read 変数
:Restore:データを読み出す位置を指定します。
'''書式''' Restore ラベル
Read文で最初のデータを読み込む前には必ずRestore文を実行してください。
!その他の命令2
電子オルゴールを実現するために
BASCOM-AVRとの互換性を高める目的で追加された命令です。
しかし、BASCOM-AVRとの完全な互換性を目指すものではありません。また、現在の電子オルゴールではこれらの命令は使われていません。
:a=Lookup(i,label):指定されたデータ行から、指定された位置の数値データを変数に読み出します。
::a="a"
:::変数に文字(のコード)を代入します。
::If a="a" Then
:::変数と文字(のコード)を比較します。
!その他の命令3
より一般的な応用が実現できるようにするために追加された命令です。
::PortD=
:::ポートDにデータを出力します。
:a=Getadc(0):A/D変換された値を変数に読み出します。
'''参考''' [ELM - シンプルなA-Dコンバータ|http://elm-chan.org/docs/avr/avradc_j.html]
!BASCOM-AVRモード
バスコンピの文法ははヒダピオの簡易プログラミングで使用するBASIC言語に準拠しています。ヒダピオの簡易プログラミングで作成したプログラムをそのまま受理しAVRのアセンブリ言語へ翻訳します。
しかし、ヒダピオが「コンパイラへ」ボタンによって出力するのははBASCOM-AVRの文法に変換されたソースプログラムです。また、電光掲示板や電子オルゴールではBASCOM-AVR用のプログラムを出力します。
これは、もともとヒダピオシステムがBASCOM-AVRを前提としているからです。
そこで、バスコンピはBASCOM-AVRのサブセットもコンパイルできるようにしてあります。
ヒダピオとBASCOM-AVRではポートBの論理が逆になっています。
ヒダピオシステムでは回路としては負論理ですが、中学生が対象ということもありヒダピオ上はLEDが'1'で点灯し、'0'で消灯するようなっています。
つまり、ヒダピオのBASIC言語としてコンパイルするときとBASCOM-AVRとしてコンパイルするときではポートBに出力するデータが反転しているのです。
バスコンピでは2つのモードを持っていてこれらを切り替えています。
モードを切り替えるには2つの方法があり、ひとつはコンパイラに対するオプションで指示する方法です。
もうひとつは、プログラム中に以下の文があるとBASCOM-AVRモードに切り替わります。
*$REGFILE
*$CRYSTAL
*CONFIG
*DIM
:$REGFILE:*.datファイルは読まずに、CPUの判別に使用しています。値として"ATtiny2313.DAT"と"m168Pdef.dat"が有効ですが、現在はATtiny2313のみの対応となっています。
:$CRYSTAL:クロックの値を読み取っています。値として1000000と12000000のみが有効です。
:CONFIG:CONFIG PORTB、CONFIG PORTDは機能します。CONFIG LCDは単にスキップします。それ以外はスキップします。
:DIM:宣言された情報は記号表に登録されますが、バスコンピには型がありませんので利用されません。例外として、電光掲示板ではRead文で変数にByte型のデータを読むところがあり、そこで記号表を参照しています。
!!サンプルプログラム
!LEDの点滅
//[小山先生の回路図|http://siva.cc.hirosaki-u.ac.jp/usr/koyama/arduino/img2313/blink2sch.jpg]
//[小山先生の回路図|http://siva.cc.hirosaki-u.ac.jp/usr/koyama/avr/img2313/blink2sch.jpg]
[小山先生の回路図|https://koyama.verse.jp/elecraft/avr/img/led4313.png]
を参考にして回路を組みます。
メモ帳で{{ref Blink.bas}}を作成し、そのファイルアイコンをバスコンピのショートカットにドラッグ&ドロップします。出来上がったbascom.hexをHAG_mini等でマイコンに書き込みます。
{{ref_image Blink1.PNG}}
{{ref_image bascompi2a.PNG}}
!LEDの明滅
//[小山先生の回路図|http://siva.cc.hirosaki-u.ac.jp/usr/koyama/arduino/img2313/blink2sch.jpg]
//[小山先生の回路図|http://siva.cc.hirosaki-u.ac.jp/usr/koyama/avr/img2313/blink2sch.jpg]
[小山先生の回路図|https://koyama.verse.jp/elecraft/avr/img/led4313.png]
を参考にして回路を組みます。
メモ帳で{{ref Fade.bas}}を作成し、そのファイルアイコンをバスコンピのショートカットにドラッグ&ドロップします。出来上がったbascom.hexをHAG_mini等でマイコンに書き込みます。尚、{{ref Fade.bas}}は0.53以降のコンパイラでコンパイルすることができます。
:Fade.bas:
{{ref_text Fade.bas}}
!スイッチでオンオフ制御
//[小山先生の回路図|http://siva.cc.hirosaki-u.ac.jp/usr/koyama/arduino/img2313/sw2sch.jpg]
//[小山先生の回路図|http://siva.cc.hirosaki-u.ac.jp/usr/koyama/avr/img2313/sw2sch.jpg]
[小山先生の回路図|https://koyama.verse.jp/elecraft/avr/img/button4313.png]
を参考にして回路を組みます。
メモ帳で{{ref Sw.bas}}を作成し、そのファイルアイコンをバスコンピのショートカットにドラッグ&ドロップします。出来上がったbascom.hexをHAG_mini等でマイコンに書き込みます。尚、{{ref Sw.bas}}は0.49以降のコンパイラでコンパイルすることができます。
:Sw.bas:
{{ref_text Sw.bas}}
!楽譜の演奏 1
//[小山先生の回路図|http://siva.cc.hirosaki-u.ac.jp/usr/koyama/arduino/img2313/playnote2sch.jpg]
//[小山先生の回路図|http://siva.cc.hirosaki-u.ac.jp/usr/koyama/avr/img2313/playnote2sch.jpg]
[小山先生の回路図|https://koyama.verse.jp/elecraft/avr/img/bzz4313.png]
を参考にして回路を組みます。
メモ帳で{{ref Playnote.bas}}を作成し、そのファイルアイコンをバスコンピのショートカットにドラッグ&ドロップします。出来上がったbascom.hexをHAG_mini等でマイコンに書き込みます。尚、{{ref Playnote.bas}}は0.54以降のコンパイラでコンパイルすることができます。
:Playnote.bas:
{{ref_text Playnote.bas}}
!カウントアップ
//[小山先生の回路図|http://siva.cc.hirosaki-u.ac.jp/usr/koyama/arduino/img2313/adc2sch.jpg]
//[小山先生の回路図|http://siva.cc.hirosaki-u.ac.jp/usr/koyama/avr/img2313/adc2sch.jpg]
[小山先生の回路図|https://koyama.verse.jp/elecraft/avr/img/7seg4313.png]
を参考にして回路を組みます。
メモ帳で{{ref Countup.bas}}を作成し、そのファイルアイコンをバスコンピのショートカットにドラッグ&ドロップします。出来上がったbascom.hexをHAG_mini等でマイコンに書き込みます。
:Countup.bas:
{{ref_text Countup.bas}}
!アナログデジタル変換
//[小山先生の回路図|http://siva.cc.hirosaki-u.ac.jp/usr/koyama/arduino/img2313/adc2sch.jpg]
//[小山先生の回路図|http://siva.cc.hirosaki-u.ac.jp/usr/koyama/avr/img2313/adc2sch.jpg]
[小山先生の回路図|https://koyama.verse.jp/elecraft/avr/img/vr7seg4313.png]
を参考にして回路を組みます。
メモ帳で{{ref Adc.bas}}を作成し、そのファイルアイコンをバスコンピのショートカットにドラッグ&ドロップします。出来上がったbascom.hexをHAG_mini等でマイコンに書き込みます。(2011.10.13追記)マイコンの動作周波数が1MHzのときにはコンデンサの静電容量を0.1μFにしてください。サンプルプログラム({{ref Adc.bas}})にあった動作周波数の指定は不要のため削除しました。
:Adc.bas:
{{ref_text Adc.bas}}
!サーボモータの制御
!押しボタン信号機
//[小山先生の回路図|http://siva.cc.hirosaki-u.ac.jp/usr/koyama/arduino/img2313/signal2sch.jpg]
//[小山先生の回路図|http://siva.cc.hirosaki-u.ac.jp/usr/koyama/avr/img2313/signal2sch.jpg]
[小山先生の回路図|https://koyama.verse.jp/elecraft/avr/img/signal4313.png]
を参考にして回路を組みます。
メモ帳で{{ref Signal.bas}}を作成し、そのファイルアイコンをバスコンピのショートカットにドラッグ&ドロップします。出来上がったbascom.hexをHAG_mini等でマイコンに書き込みます。尚、{{ref Signal.bas}}は0.55以降のコンパイラでコンパイルすることができ==るようにする予定で==ます。
:Signal.bas:
{{ref_text Signal.bas}}
!楽譜の演奏 2 (Midi楽器の制御)
//[小山先生の回路図|http://siva.cc.hirosaki-u.ac.jp/usr/koyama/arduino/img2313/midi2sch.jpg]
//[小山先生の回路図|http://siva.cc.hirosaki-u.ac.jp/usr/koyama/avr/img2313/midi2sch.jpg]
[小山先生の回路図|https://koyama.verse.jp/elecraft/avr/img/midivib4313.png]
を参考にして回路を組みます。
メモ帳で{{ref Midi.bas}}を作成し、そのファイルアイコンをバスコンピのショートカットにドラッグ&ドロップします。出来上がったbascom.hexをHAG_mini等でマイコンに書き込みます。尚、{{ref Midi.bas}}は0.55以降のコンパイラでコンパイルすることができ==るようにする予定で==ます。
:Midi.bas:
{{ref_text Midi.bas}}
!!おまけ:BASCOM-AVRをインストールせずに使う方法
拙作バスコンピができたのはインストールせずに使えるAVR用のBASICコンパイラが欲しいという要望に応えるためでした。実はBASCM-AVRには[bascomp.exe|https://www.mcselec.com/index.php?option=com_docman&task=cat_view&gid=99&Itemid=54]というコマンドラインからコンパイラを使うためのユーティリティが用意されています。[MCS Electronics社のページからダウンロード|https://www.mcselec.com/index.php?option=com_docman&task=cat_view&gid=99&Itemid=54]できますがDEMOバージョンにも付属していて、BASCOM-AVRのインストールディレクトリの中にあります。バージョン2.0.5.0まではソース中に$REGFILEや
$CRYSTALだけでなく$BAUDまで書かなければいけなかったのですが、最新のバージョン2.0.7.1からは、これらを書かなくても良くなりました。
!必要なファイルのコピー
Windows XPでは通常「C:\Program Files\MCS Electronics\BASCOM-AVR」にインストールされます。ここから必要なファイルだけ取り出します。ATtiny2313用にコンパイルするために最低限必要なのは「BASC-AVR.DLL」、「bascomp.exe」、「ATtiny2313.DAT」、「LIB\mcs.lbx」、「LIB\Double_Trig.LBX」、「LIB\Double.LBX」、「LIB\FP_Trig.LBX」です。
!バッチコマンドの作成
次のようなバッチファイル{{ref bascomp.bat}}を作成します。
:bascomp.bat:
{{ref_text bascomp.bat}}
!ショートカットの作成
作成したバッチコマンドのショートカットを作成します。
!コンパイル
作成したショートカットにソースファイルをドラッグ&ドロップするとコンパイルできます。エラーメッセージは、*.errファイルに出力されます。
!!参考ページ
!ヒダピオ
*[JA制御 ヒダピオ システム(中学校,技術・家庭科,コンピュータ制御,USB-IO,プログラミング)|http://hidapio.jp/]
*==[「プログラミングと計測・制御」の教材HIDapio | 「ものづくり」は基本です。「ORCA研究所」http://bl.orca-labo.com|http://bl.orca-labo.com/?eid=800852]==
*[新ORCA研究所ブログ|「プログラミングと計測・制御」の教材HIDapio|http://orca.webdeki-blog.com/entry_orca_597_archive_ym_200812.html]
*==[http://www.kokyokyo.kofu-ymn.ed.jp/bukai/gijutu.html|http://www.kokyokyo.kofu-ymn.ed.jp/bukai/gijutu.html]==
*==[教材開発アイディア - むっちーのブログ - Yahoo!ブログ|http://blogs.yahoo.co.jp/maipon28/1659447.html]==
*[中学校の技術の授業で、JA制御ヒダピオというものを使って、実習をし... - Yahoo!知恵袋|http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q14117095109]
*[ArduBlock(ヒダピオシステム向けバージョン)を使おう | Gijyutu.com | Gijyutu.com|http://gijyutu.com/main/archives/1779]
*==[パソコン制御用ソフトで計測・制御の学習をしよう!! - 弘前大学 ...|http://siva.cc.hirosaki-u.ac.jp/usr/koyama/semi/09p1201a2.pdf]==
*[AVRマイコンという、これまでまったく無縁だった世界に魅了され|人生に出会う7WAYS+α|https://55life555.blog.fc2.com/blog-entry-1257.html]
*[PDF版(生徒用) - JA制御 ヒダピオ システム|https://paperzz.com/doc/6087208/pdf%E7%89%88%EF%BC%88%E7%94%9F%E5%BE%92%E7%94%A8%EF%BC%89---ja%E5%88%B6%E5%BE%A1-%E3%83%92%E3%83%80%E3%83%94%E3%82%AA-%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0]
*[ヒダピオ制御カー | Manualzz|https://manualzz.com/doc/4905912/%E3%83%92%E3%83%80%E3%83%94%E3%82%AA%E5%88%B6%E5%BE%A1%E3%82%AB%E3%83%BC]
*[中3の技術です。 - Clearnote|https://www.clearnotebooks.com/ja/questions/1113751]
*[ヒダピオ学習回路 付属説明書|https://slideshowjp.com/doc/3312133/%E3%83%92%E3%83%80%E3%83%94%E3%82%AA%E5%AD%A6%E7%BF%92%E5%9B%9E%E8%B7%AF-%E4%BB%98%E5%B1%9E%E8%AA%AC%E6%98%8E%E6%9B%B8]
*[私家版 Ardublock|https://n.mtng.org/ele/arduino/ardublock.html]
*[Arduino/リンク集 - 講義のページ|https://robo.mydns.jp/Lecture/?Arduino/%A5%EA%A5%F3%A5%AF%BD%B8]
*[NRS+ 特集・小ネタ Arduinoで電子工作2 -サンプルスケッチでLチカと簡単電子オルゴール-|http://k-itxserver.ddo.jp/~nrs/special/arduino_02/arduino_02.html]
*[産教連通信第199号|http://www.sankyoren.com/tusin/199/No199.pdf]
*[産教連通信|http://www.sankyoren.com/tusin/193/No193.pdf]
*[産教連通信第187号ホームページ用|http://www.sankyoren.com/tusin/187/No187.pdf]
*[色々 | It wishes strongly and it lives.|https://ameblo.jp/123doraemonhosii/entry-10862394251.html]
*[計測・制御教育のための教材開発とその教材を活用 した授業設計及び実践|https://oecu.repo.nii.ac.jp/?action=repository_action_common_download&item_id=136&item_no=1&attribute_id=20&file_no=2]
*[未来社会・生活をつくる力を育てる技術・家庭科教育|https://www.wgr.yamanashi.ac.jp/common/fckeditor/editor/filemanager/connectors/php/transfer.php?file=/uid000002_E79C8CE69599E7A094E383AAE3839DE383BCE38388EFBC92EFBC90EFBC91EFBC922E706466]
*[「ヒダピオ」tag一覧|人生に出会う7WAYS+α|https://55life555.blog.fc2.com/?tag=%E3%83%92%E3%83%80%E3%83%94%E3%82%AA]
*[授業のエキスパート養成事業(第3学年技術・家庭科)授業実践記録|https://center.esnet.ed.jp/uploads/07shiryo/21expertjigyou/h22_kitagou_kiroku.pdf]
*[ArduBlock(ヒダピオシステム向けバージョン)を使おう | Gijyutu.com 技術の面白教材集|https://gijyutu.com/main/archives/1779]
*[Km2Net - おにたま(オニオンソフト)のおぼえがき|https://www.onionsoft.net/wp/archives/tag/km2net]
*[体験と言葉をつなぐ教育|https://www.kairyudo.co.jp/general/data/contents/05-data/magazine/kgk-journal/vol45-1.pdf]
*[Arduinoプログラミングでものづくり(ATtiny4313版)|https://koyama.verse.jp/elecraft/avr/arduino4313.html]
*[特別支援教育で参考になる教材情報|https://www.magicaltoybox.org/kinta/2019/09/05/20299/]
!簡易プログラミングでの文法について
*==[JAヒダピオの使用方法(基本)|http://www.topman.co.jp/ky/download/hidapio/pdf/ja_hidapio_user_01.pdf]==
*[JAヒダピオの使用方法(基本)|http://www.topman.co.jp/ky/download/hidapio/ja_hidapio_user_01.pdf]
*==[ヒダピオ学習回路 付属説明書|http://www.topman.co.jp/ky/download/hidapio/pdf/hidapio%20manual.pdf]==
*[ヒダピオ学習回路 付属説明書|http://www.topman.co.jp/ky/download/hidapio/hidapio%20manual.pdf]
!AWK
*[awkが新しくなる!? 本家AwkがUnicode (UTF-8)とCSV対応に! - Qiita|https://qiita.com/ko1nksm/items/1a3e711bbd925657f5fd]
*[開発から 45 年、プログラミング言語 AWK に Unicode サポートが追加 | スラド デベロッパー|https://developers.srad.jp/story/22/08/25/1358226/]
*[世界のプログラミング言語(40) ハッカー御用達の言語AWKはテキスト処理で今日も活躍中 | TECH+(テックプラス)|https://news.mynavi.jp/techplus/article/programinglanguageoftheworld-40/]
*[awk入門_2022 [講義ノート]|https://www.suikou.fs.a.u-tokyo.ac.jp/yosh/doku.php?id=awk%E5%85%A5%E9%96%80_2022]
*[awklang.org – Τhe site for things related to the awk language|http://www.awklang.org/]
*[AWK「グフフ……」女騎士「くッ……!」[アドベントカレンダー2019 7日目] | 東京工業大学デジタル創作同好会traP|https://trap.jp/post/847/]
*[Use Gawk to process CSV files - In the shadow of a kind tiger|https://xn--tigreray-i1a.org/en/post/2020/10/30/use-gawk-to-process-csv-files/]
*[www.mogami.com/unix/awk-02.html|http://www.mogami.com/unix/awk-02.html]([IA|https://web.archive.org/web/20171122072231/http://www.mogami.com/unix/awk-02.html])
*[myzsyweb’s gists · GitHub|https://gist.github.com/myzsyweb]
*[awk組み込み変数の活用でさまざまな形式のテキストファイルを扱う|https://zenn.dev/forcia_tech/articles/20230111_yoshinari]
*[%
の入った文字列をawkでprintf $0
するとエラーに | 上田ブログ|https://b.ueda.tech/?post=20190509]
*[gawkで先頭が空のCSVデータを加工すると面白いことになる #AWK - Qiita|https://qiita.com/kenryo/items/7271a7c37f258c702bdb]
*[gawk4.1.4+MPFRでフィボナッチ数列をF[0]からF[998]まで出力してみる。 - labunix's blog|https://labunix.hateblo.jp/entry/20190707/1562493609]
*[例題で学ぶAWKプログラミング(入門編)|https://koyama.verse.jp/literacy/awkprog1.html]
*[AWKプログラミング(応用編)|https://koyama.verse.jp/literacy/awkprog2.html]
*[AWK 入門|http://takeno.iee.niit.ac.jp/~shige/misc/script/script.html#tuto-awk]
*[awkgui - jackparke|https://sites.google.com/site/jackparke/awkgui]
*[GAWK 4.2.X DLLを作成する|http://mfi.sub.jp/_html_awk/gawk_dll_dev.html#gawk421win32]
*[gawk · GitHub Topics · GitHub|https://github.com/topics/gawk]
*[GitHub - freznicek/awesome-awk: A curated list of awesome AWK frameworks, libraries, software and resources|https://github.com/freznicek/awesome-awk]
*[GitHub - PacktPublishing/Learning-AWK-Programming: Learning AWK Programming, published by Packt|https://github.com/PacktPublishing/Learning-AWK-Programming]
*[comp.lang.awk - Google グループ|https://groups.google.com/g/comp.lang.awk]
*[comp.lang.awk|https://comp.lang.awk.narkive.com/]
*==[AWK Users JP :: 日本の AWK ユーザのためのハブサイト|http://gauc.no-ip.org/awk-users-jp/]==([IA|https://web.archive.org/web/20170910100947/http://gauc.no-ip.org/awk-users-jp/])
*==[Front Page - Japan GNU AWK Users Club|http://gauc.no-ip.org/wiki.cgi?page=Front+Page]==([IA|https://web.archive.org/web/20170926014927/http://gauc.no-ip.org/wiki.cgi])
*[AWK - Wikipedia|http://ja.wikipedia.org/wiki/AWK](日本語)
*[AWK - Wikipedia|https://en.wikipedia.org/wiki/AWK](英語)
*[The GNU Awk User's Guide|http://www.gnu.org/software/gawk/manual/html_node/]
*[『コーパス日本語学ガイドブック』付録CD収録のjgawkについて|http://www.tanimoto.to/nlp/jgawk/jgawk.html]
*[AwkChannelWiki: Home Page Japanese|http://awk.freeshell.org/ja/HomePageJapanese]
*[AwkChannelWiki: Awk On Windows|http://awk.freeshell.org/AwkOnWindows]
*==[awk.info » Awk.info|http://awk.info/]==([IA|https://web.archive.org/web/20160505033644/http://awk.info/])
**[Wrapper for AWK providing modules download | SourceForge.net|https://sourceforge.net/projects/runawk/]
**[cheusov/runawk: Powerful wrapper for AWK interpreter|https://github.com/cheusov/runawk]
**[Quik Trim|https://web.archive.org/web/20170317133000/http://www.quiktrim.org/index.html]
**[Jawk - AWK for Java|http://jawk.sourceforge.net/]
**[Google Code Archive - Long-term storage for Google Code Project Hosting.|https://code.google.com/archive/p/spawk/]
**[spawkinfo|https://sites.google.com/site/spawkinfo/Home]
**[MAWK – Freecode|http://freshmeat.sourceforge.net/projects/mawk/]
**[mawk – pattern scanning and text processing language|https://invisible-island.net/mawk/]
*[「Gawky Auk」(Index of Gawky Auk)|http://www.yk.rim.or.jp/~hi_saito/awk/]
*[awk mania!|http://chasen.org/~daiti-m/etc/awk/]
*==[Release|http://www.onicos.com/staff/iz/release/]==[(IA)|http://web.archive.org/web/20200121164053/http://www.onicos.com/staff/iz/release/]
*[Release|http://www33146ue.sakura.ne.jp/staff/iz/release/]
*==[AWK|http://homepage3.nifty.com/text/script/awk/]==
*[AWK|http://mft.la.coocan.jp/script/awk/]
*==[AWK Hacks|https://sites.google.com/site/awkhacks/]==
*[takubo (田窪守雄 (Takubo Morio)) · GitHub|https://github.com/takubo]
*==[GAWK 文字列をバイト単位で数える方法|http://www1.bbiq.jp/rem_vba/gawk_blength.html]==([IA|https://web.archive.org/web/20180216170333/http://www1.bbiq.jp/rem_vba/gawk_blength.html])
*[awk 製 3Dシューティングゲーム awkaster で遊んでみた – matoken's meme|http://matoken.org/blog/2016/01/18/i-tried-playing-around-with-awk-made-3d-shooter-game-awkaster/]
**[GitHub - TheMozg/awk-raycaster: Pseudo-3D shooter written completely in gawk using raycasting technique|https://github.com/TheMozg/awk-raycaster]
*[AWK製FPSゲームの「TERMMAZE3D」 – matoken's meme|https://matoken.org/blog/2021/06/14/termmaze3d/]
*[Debian/Ubuntuでawkを切り替える – matoken's meme|https://matoken.org/blog/2021/06/10/swatch-awk/]
*[mikkun/AWKTC: AWKTC is Workable Klutzy Time-wasting Command|https://github.com/mikkun/AWKTC]
*[(GNU)AWKで簡易Webフレームワークを作る - Qiita|https://qiita.com/Syuparn/items/09205af50bcead3c95b0]
*[awkをプログラミング言語として使う時の技術 - Qiita|https://qiita.com/ko1nksm/items/16ca4f4546c1ea8e97d7]
*[AWK 処理系の比較 – YOSBITS|http://www.yosbits.com/wordpress/?p=2702]
*[SGソフトウェア開発ブログ: [awk]gawkとmawk|https://blog.sgnet.co.jp/2015/08/awkgawkmawk.html]
*[mawk MBCS (32bit版)の詳細情報 : Vector ソフトを探す!|https://www.vector.co.jp/soft/win95/util/se080308.html]
*[例題で学ぶAWKプログラミング(入門編)|https://koyama.verse.jp/literacy/awkprog1.html]
*[AWKプログラミング(応用編)|https://koyama.verse.jp/literacy/awkprog2.html]
*[プログラミングをする|http://wadona.jugem.jp/]
!AWK本
//*[プログラミング言語AWK|http://www.usp-lab.com/pub/book.awk.html]
*[プログラミング言語AWK|http://www.usp-lab.com/book.awk.html]
*[AWKを256倍使うための本|http://books.ascii.jp/9784756101624/]
//*[AWKを256倍使うための本|http://ascii.asciimw.jp/books/books/detail/4-7561-0162-3.shtml]
*[sed & awkプログラミング 改訂版: Dale Dougherty, Arnold Robbins, 福崎 俊博: 本|http://www.amazon.co.jp/sed-awk%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0-%E6%94%B9%E8%A8%82%E7%89%88-Dale-Dougherty/dp/4900900583]
*[sed & awkプログラミング(改訂版) | Ohmsha|https://www.ohmsha.co.jp/book/9784900900585/]
*[O'Reilly Japan - sed & awkプログラミング 改訂版|https://www.oreilly.co.jp/books/9784900900585/]
*==[awkでプログラミング|http://www.yfcbookshelf.com/programming%20language%27sbooks4.htm#awk%E3%81%A7%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0]==
*[Amazon.co.jp: awkでプログラミング: 植村 富士夫, 富永 浩之: 本|http://www.amazon.co.jp/awk%E3%81%A7%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0-%E6%A4%8D%E6%9D%91-%E5%AF%8C%E5%A3%AB%E5%A4%AB/dp/4274060462]
*[AWK実践入門:書籍案内|技術評論社|https://gihyo.jp/book/2015/978-4-7741-7369-6]
*[「シェル芸」に効く! AWK処方箋(斉藤 博文)|翔泳社の本|https://www.shoeisha.co.jp/book/detail/9784798150895]
*[Software Design 2013年9月号|技術評論社|https://gihyo.jp/magazine/SD/archive/2013/201309]
*[The AWK Programming Language, Second Edition|https://www.awk.dev/]
!GAWK for Windows
*[corbieのブログ:Windows版gawk選び|http://blog.livedoor.jp/corbie/archives/3924154.html]
*==[WILLs' trash can (PROGRAM)|http://hinadori.atnifty.com/~wills/program.html]== ([IA|https://web.archive.org/web/20190228134338/http://hinadori.atnifty.com/~wills/program.html])
*==[gawk.exe 3.1.6 for Windows|http://omniplex.om.funpic.de/home/ltru/gawk-win.htm]==[(IA)|https://web.archive.org/web/20120815130721/http://omniplex.om.funpic.de/home/ltru/gawk-win.htm]
*[Gawk on Windows|https://web.archive.org/web/20100822015302/http://www.kt.rim.or.jp:80/~kbk/gawk-3.1/](IA)
*[GitHub - mbuilov/gawk-windows: Fork of the GNU Awk (https://www.gnu.org/software/gawk/)|https://github.com/mbuilov/gawk-windows]
*[Downloads - gnu-on-windows - compile GNU programs for win32 - Google Project Hosting|http://code.google.com/p/gnu-on-windows/downloads/list]
*[ezwinports - Browse Files at SourceForge.net|http://sourceforge.net/projects/ezwinports/files/]
*[Homepage Volker Kiefel|http://www.vkiefel.de/]
**[Freie und "Open Source"-Software compiled for Windows systems|http://www.vkiefel.de/compiled-SW.html]
*[Freeware Downloads|http://www.klabaster.com/freeware.htm]
//*[Byte code version of 3.1.8 now available - comp.lang.awk | Computer Group|http://compgroups.net/comp.lang.awk/Byte-code-version-of-3.1.8-now-available]
*==[Byte code version of 3.1.8 now available - comp.lang.awk|http://compgroups.net/comp.lang.awk/byte-code-version-of-3.1.8-now-available/398324]==
*[DJGPP|http://www.delorie.com/djgpp/]
*[Index of /pub/djgpp/current/v2gnu|http://mirrors.fe.up.pt/pub/djgpp/current/v2gnu/]
**[http://mirrors.fe.up.pt/pub/djgpp/current/v2gnu/gwk500b.zip|http://mirrors.fe.up.pt/pub/djgpp/current/v2gnu/gwk500b.zip]
**[http://mirrors.fe.up.pt/pub/djgpp/current/v2gnu/gwk500d.zip|http://mirrors.fe.up.pt/pub/djgpp/current/v2gnu/gwk500d.zip]
**[http://mirrors.fe.up.pt/pub/djgpp/current/v2gnu/gwk500s.zip|http://mirrors.fe.up.pt/pub/djgpp/current/v2gnu/gwk500s.zip]
*[GAWK Windows で GAWK を使用するために|http://mfi.sub.jp/_html_awk/gawk_basic.html]
!fatal: print to "standard output" failed (No space left on device)
fatal: print to "standard output" failed (No space left on device)
*[AWK 座敷|http://www.ne.jp/asahi/music/marinkyo/komputilo/awk.html.ja]
*[gawk「cmd. line:1: (FILENAME=- FNR=1) fatal: print to "standard output" failed (No space left on device)」で死亡 - いろきゅう.jp 〜Programmable maiden〜 Tech side|http://d.hatena.ne.jp/ir9Ex/20170210/1486740710]
*[いろきゅう.jp 〜Programmable maiden〜 Tech side|http://d.hatena.ne.jp/ir9Ex/mobile?date=20170210]
*==[GAWK サクラエディタで快適に使う|http://www1.bbiq.jp/rem_vba/gawk_sakura.html]==
*[GAWK サクラエディタで快適に|http://mfi.sub.jp/_html_awk/gawk_sakura.html]
!warning: regexp escape sequence `\"' is not a known regexp operator
warning: regexp escape sequence `\"' is not a known regexp operator
*[1790227 – regexp escape sequence `\"' is not a known regexp operator|https://bugzilla.redhat.com/show_bug.cgi?id=1790227]
*[warning: regexp escape sequence `\"' is not a known regexp operator|https://comp.lang.awk.narkive.com/7DglElPH/warning-regexp-escape-sequence-is-not-a-known-regexp-operator]
!AWK言語処理系の実装
*[gawk.git - gawk|http://git.savannah.gnu.org/cgit/gawk.git]
*[[bug-gawk] Win32 Gawk 4.0.0 bugs|http://lists.gnu.org/archive/html/bug-gawk/2011-11/msg00005.html]
*[Difference Between awk, nawk, gawk and mawk | Baeldung on Linux|https://www.baeldung.com/linux/awk-nawk-gawk-mawk-difference]
*[GitHub - cc2qe/zawk: make awk better|https://github.com/cc2qe/zawk/]
*[GitHub - ThomasDickey/mawk-20121129: mawk 1.3.4 20121129|https://github.com/ThomasDickey/mawk-20121129]
*[GitHub - ploxiln/mawk-2: Mike Brennan's new development of his original "mawk" - https://github.com/mikebrennan000/mawk-2|https://github.com/ploxiln/mawk-2]
*==[GitHub - snddns/mawk-notes: Going through the awk programming language with mawk|https://github.com/snddns/mawk-notes]==
*[GitHub - d4tocchini/spawk: forked from fast scripting phenom mawk (v2 beta), focused on adding parallelism, memory-efficient persistence, embeddability and healthy dose of sugar while maintaining performance|https://github.com/d4tocchini/spawk]
*[GitHub - gvlx/gawk: forked from git://git.savannah.gnu.org/gawk.git|https://github.com/gvlx/gawk]
*[GitHub - e36freak/awk-libs: GNU awk libraries|https://github.com/e36freak/awk-libs]
*[noyesno/awka: Revive awka - Awk to C Compiler|https://github.com/noyesno/awka]
*[awkc -- compile AWK programs into executables|https://www.mkssoftware.com/docs/man1/awkc.1.asp]
*[GitHub - andychu/bwk: Kernighan's Awk a.k.a. "One True Awk"|https://github.com/andychu/bwk]
*[awk4j - Home|http://awk4j.sourceforge.jp]
**[awk4j - AWK for Java Platform プロジェクト日本語トップページ - OSDN|https://ja.osdn.net/projects/awk4j/]
*[TAWK Compiler|http://www.tasoft.com/tawk.html]
*[awkium: an awk interpreter|http://awkium.morilib.net/]
*[awkium: an awk interpreter|http://awkium.osdn.jp/index.ja.html]
**[ダウンロードファイル一覧 - awkium - 拡張されたawkインタプリタ - OSDN|https://ja.osdn.net/projects/awkium/releases/]
**==[morilib home|http://www.morilib.net/index.ja.html]==([IA|http://web.archive.org/web/20161025002959/http://www.morilib.net/index.ja.html])
**[morilib.net|http://morilib.net/index_ja.html]
**[morilib.net(@SchluesselLang)さん / Twitter|https://mobile.twitter.com/schluessellang]
*[GitHub - benhoyt/goawk: A POSIX-compliant AWK interpreter written in Go|https://github.com/benhoyt/goawk]
*[GoAWK, an AWK interpreter written in Go|https://benhoyt.com/writings/goawk/]
*[私的 goawk リポート - 標準愚痴出力|https://zetamatta.hatenablog.com/entry/2021/05/18/194901]
*[κeenさんはTwitterを使っています: 「Rust製のAWK(っぽい言語)の実装。型推論してJITしたり並列化したりSIMDで高速化頑張ってたりするらしい ezrosent/frawk: an efficient awk-like language https://t.co/LbWgvlTsOj」 / Twitter|https://twitter.com/blackenedgold/status/1372110775418949642]
*[GitHub - ezrosent/frawk: an efficient awk-like language|https://github.com/ezrosent/frawk]
*[malloc/free まとめ - きゅうり。|https://kyuri.hatenablog.jp/entry/2017/04/21/152626]
*[GitHub - wenley/rust-awk: Rust Implementation of Awk|https://github.com/wenley/rust-awk]
*[webawk/README.md at master · agordon/webawk · GitHub|https://github.com/agordon/webawk/blob/master/README.md]
*[WebAWK - client-side awk in Javascript|https://agordon.github.io/webawk/]
*[Javascriptでawkが動く。魔界ライブラリWebAWK - Bye Bye Moore|https://shuzo-kino.hateblo.jp/entry/2015/11/04/235447]
*[AWK live editor|https://awk.js.org/]
*[A web based AWK interpreter|http://www.hvks.com/Numerical/webawk.html]
*[Online Awk Compiler - Online Awk Editor - Online Awk IDE - Awk Coding Online - Practice Awk Online - Execute Awk Online - Compile Awk Online - Run Awk Online|https://www.tutorialspoint.com/execute_awk_online.php]
*[Online AWK Compiler - Online AWK Editor - Run AWK Online - Online AWK Runner|https://www.jdoodle.com/execute-awk-online/]
*[Online AWK (gawk) compiler and IDE - API provided by Sphere Engine - Ideone.com|https://ideone.com/l/awk-gawk]
!AWK SQL
*[Home | Wim's pages|http://www.wim-blit.nl/]
*==[XML Processing with GNU Awk|http://home.vrweb.de/~juergen.kahrs/gawk/XML/]==
*[XML Processing with GNU Awk|http://gawkextlib.sourceforge.net/]
*[gawk libraries for XML, PostgreSQL,... | Free Development software downloads at SourceForge.net|http://sourceforge.net/projects/gawkextlib/]
*[dbohdan/sqawk: Like Awk but with SQL and table joins|https://github.com/dbohdan/sqawk]
*[Sqawk|https://wiki.tcl-lang.org/page/Sqawk]
*[SPAWK|http://spawk.opasopa.net/index.html]
*[SPAWK|http://spawk.opasopa.net/spawk.php]
*[awklang.org – SPAWK - SQL Powered AWK|http://www.awklang.org/spawk/?child]
!AWKによる言語処理系の実装
*==[AWKによるSPARC V8逆アセンブラ 竹下世界塔の計算機よもやま話/ウェブリブログ|http://keisanki.at.webry.info/201001/article_2.html]== → [AWKによるSPARC V8逆アセンブラ : 竹下世界塔の計算機よもやま話|https://keisanki.blog.jp/archives/15690685.html]
*==[ホワット・ア・ワンダフル・ワールド もう AWK なんて使わないなんて言わないよ絶対〜|http://alohakun.blog7.fc2.com/blog-entry-600.html]==[(IA)|http://web.archive.org/web/20100511002807/http://alohakun.blog7.fc2.com/blog-entry-600.html]
*[aaa - The Amazing Awk Assembler by Henry Spencer|http://doc.cat-v.org/henry_spencer/amazing_awk_assembler/]
*==[しまりすくらぶ 梵天丸のPIC改造工作/まきものの応用から,ものづくりメカトロニクスへ|http://homepage2.nifty.com/SCLUB/]==
*[しまりすくらぶ 梵天丸のPIC改造工作/まきものの応用から,ものづくりメカトロニクスへ|https://sclub.sakura.ne.jp/]
*[Shudo's Notes (2007/9)|http://www.shudo.net/diary/2007sep.html]
*==[PICマイコンのお部屋|http://www.geocities.jp/oztyt/pic/pic.htm]==[(IA)|http://web.archive.org/web/20110203000402/http://www.geocities.jp/oztyt/pic/pic.htm]
*[Mitzyuki's Blog :: awk を利用した構文解析ツール|http://blog.bsdhack.org/index.cgi/Computer/20110225.htm]
*[紫ログ:Grass on AWK - AWKでちょっと草を - livedoor Blog(ブログ)|http://blog.livedoor.jp/naoya_t/archives/51026653.html]
*[myzsyweb’s gists|https://gist.github.com/myzsyweb]
*[darius/awklisp: A Lisp interpreter written in Awk.|https://github.com/darius/awklisp]
*[A LISP interpreter in Awk - ChaSen.org|http://chasen.org/~daiti-m/etc/awk/walk.pdf]
*[CLiki: AWK Lisp|https://www.cliki.net/AWK%20Lisp]
**[Index of /afs/cs/project/ai-repository/ai/lang/lisp/impl/awk|http://www.cs.cmu.edu/afs/cs/project/ai-repository/ai/lang/lisp/impl/awk/]
*[CLiki: CLAWK|https://www.cliki.net/clawk]
*[[Announce] CL-AWK (Common Lisp AWK library)|https://groups.google.com/g/comp.lang.lisp/c/ZrlulH0OF6g]
*[GitHub - sharplispers/clawk: CLAWK is an AWK implementation embedded into Common Lisp, by Michael Parker. This version contains some patches to make it compile again.|https://github.com/sharplispers/clawk]
**[http://www.foldr.org/~michaelw/lisp/clawk/|https://web.archive.org/web/20160630072839/http://www.foldr.org/~michaelw/lisp/clawk/](IA)
*[Solene'% : Common LISP awk macro for easy text file operations|https://dataswamp.org/~solene/2020-02-04-awk-like-commonlisp.html]
*[シェルスクリプトでLISP処理系を作ってみた|https://zenn.dev/ytaki0801/articles/c396e3c7d46d0f00ac90]
*[I wrote a compiler in awk! To bytecode; I wanted to use the awk-based compiler a... | Hacker News|https://news.ycombinator.com/item?id=13452043]
*[Mercat|http://cowlark.com/mercat/]
*[楽天Kobo電子書籍ストア: Tcl/Tk 8.6の世界 - { awk lisp }の世界へようこそ - 橋本ただし - 1230001284034|https://books.rakuten.co.jp/rk/21020e62ec103b44a96ab98e0233061e/]
*[GitHub - siraben/awk-vm: A virtual machine and assembler written in AWK.|https://github.com/siraben/awk-vm]
*[GitHub - LBPHacker/R216: Stuff one needs to play around with my R216 computers (see README)|https://github.com/LBPHacker/R216]
*[awk言語で作った簡易クロス・アセンブラ|http://www.ikushima.jp/picpage/awkasm/awkasmdoc.html]
*[AWKでアッセンブラーを作る(2) アッセンブラースクリプト編 | Asm Sphere|http://asmsphere.jugem.jp/?eid=2]
*[assembly - Is there a reference for the assembler-like output produced by `awk -W dump`? - Unix & Linux Stack Exchange|https://unix.stackexchange.com/questions/256928/is-there-a-reference-for-the-assembler-like-output-produced-by-awk-w-dump#]
*[GitHub - prolog8/awkprolog: Prolog in AWK|https://github.com/prolog8/awkprolog]
*[GitHub - Syuparn/webawk: simple (mock) web server framework written in awk|https://github.com/Syuparn/webawk]
*[(GNU)AWKで簡易Webフレームワークを作る - Qiita|https://qiita.com/Syuparn/items/09205af50bcead3c95b0]
*[Tinyproxyでさくっとリバースプロキシを立ててみる - Qiita|https://qiita.com/Syuparn/items/85176c64300217d7537e]
*[webawk|http://lakas.itgo.com/webawk.html]
*[GitHub - kevin-albert/awkserver: A minimal HTTP server that runs in GAWK|https://github.com/kevin-albert/awkserver]
*[タグシステム(抽象機械)の各言語等実装例まとめ - Qiita|https://qiita.com/ytaki0801/items/d933fc1db1b152043ca3]
!AVR
*[えるむ/ChaN|http://elm-chan.org/index_j.html]
!BASCOM-AVR
*[BASCOM-AVR - MCS Electronics|http://www.mcselec.com/index.php?option=com_content&task=view&id=14&Itemid=41]
*[BASCOM-AVR 操作方法 マニュアル|http://www.ne.jp/asahi/shared/o-family/ElecRoom/AVRMCOM/BASCManu/BASCManu.html]
!LCD関連
*==[LCDの制御|http://www.cc.sendai-nct.ac.jp/~ckuma/micom/3048/lcd.html]==→[LCDの制御|http://ckuma.html.xdomain.jp/micom/3048/lcd.html]
!学習指導要領
*[第2章 各教科 第8節 技術・家庭:文部科学省|http://www.mext.go.jp/a_menu/shotou/new-cs/youryou/chu/gika.htm]
----
*==[中学校学習指導要領 第8節 技術・家庭:文部科学省|http://www.mext.go.jp/b_menu/shuppan/sonota/990301/03122602/009.htm]==
*==[高等学校学習指導要領 第10節 情報:文部科学省|http://www.mext.go.jp/b_menu/shuppan/sonota/990301d/990301k.htm]==
*==[高等学校学習指導要領 第7節 情報:文部科学省|http://www.mext.go.jp/b_menu/shuppan/sonota/990301d/990301s.htm]==
!教科書
*==[平成24年度版 中学校 教科書のご紹介[新しい技術・家庭/技術分野]:東京書籍|http://ten.tokyo-shoseki.co.jp/text/chu24/subject/gijyutsu.htm]==
*[平成24年度用中学校技術・家庭科 技術分野教科書のご案内/開隆堂出版株式会社|http://www.kairyudo.co.jp/contents/02-chu/gijutsu/h24/]
*==[教育図書株式会社|http://www.kyoiku-tosho.co.jp/junior-hs/kyokasho/k_001.php]==
*[【東京書籍】 教科書教材 技術・家庭|https://www.tokyo-shoseki.co.jp/textbook/j/7/]
*[技術分野教科書 - 教育図書教育図書|https://www.kyoiku-tosho.co.jp/textbook_list/1394/]
!実態調査
*[平成22年度 長野県中学校技術・家庭科 実態調査のまとめ|http://www.gika.jp/suishin/H22jittai.pdf]
!その他の教材
*==[Arduino風 パソコン制御とマイコン制御|http://siva.cc.hirosaki-u.ac.jp/usr/koyama/arduino/]==
*==[Arduino風 パソコン制御とマイコン制御|http://siva.cc.hirosaki-u.ac.jp/usr/koyama/avr/arduino.htm]==
*[Arduinoプログラミングでものづくり(ATtiny4313版)|https://koyama.verse.jp/elecraft/avr/arduino4313.html]
(2011.9.8) 今頃気づきましたが小山先生のページに「バスコンピ」の文字がありました。
!BASCOM?
*==[TORO's Software library(PC-E500)|http://homepage1.nifty.com/toro/sle500.html]==
*[TORO's Software library(PC-E500)|http://toro.d.dooo.jp/sle500.html#basc]
!BASCOMP
*[blghnbngl/BasComp: Basic Computer Behavioral Description|https://github.com/blghnbngl/BasComp]
!高校生
*==[AVRマイコンを用いた交通信号機制御|http://www.okako.okayama-c.ed.jp/joho/kaken/2012/2012report-10.pdf]==([IA|https://web.archive.org/web/20160328034943/http://www.okako.okayama-c.ed.jp/joho/kaken/2012/2012report-10.pdf]) 岡山県立岡山工業高等学校 平成24年度 情報技術科 課題研究
*[Microsoft Word - AVRマイコンを用いた交通信号機制御.docx|http://www.okako.okayama-c.ed.jp/img/okako/info/kaken/2012/2012report-10.pdf]
!!既知の問題
!!改訂の履歴とファイルのダウンロード
注意! 0.36から0.43までは、Windows 7/Vistaで動作しない場合があります。
自己展開形式(.exe)のファイルとzipファイルの中身は全く同じものです。
:2012.3.13 0.57:
(1) [本体] PortB.x=0の形式が直接使えるようにした。
(2) [本体] CALL命令を使用せずにサブルーチンを呼び出す書式も使用できるようにした。
{{ref bascompi057.exe}} {{ref bascompi057.zip}}
:2012.3.5 0.56:
(1) [本体] 名前付き定数の2重定義チェックが間違っているのを直した。
(2) [本体] Data文中の定数式を加算以外も計算するようにした。
ついでに再帰的に計算するようにした。循環参照は検出するようにしたつもり。
(3) [本体] 別名を使用したときにa=a+1のパターンが認識できなかったのを直した。
(4) [本体] Waitms文で名前付き定数が使えるようにした。
(5) [本体] 定数_XTALを設定するタイミングが間違っていたので直した。
(6) [本体] X=2^I、X=2^Jが処理されていなかったのを直した。
(7) [本体] Call文が正しく処理されていないのを直した。
(8) [vavrdisasm.exe] 同梱する逆アセンブラを最新のものにした。
{{ref bascompi056.exe}} {{ref bascompi056.zip}}
:2012.2.1 0.55:
(1) [本体] シリアル通信の出力に対応した。$BAUD、Print文、Printbin文が使えるようにした。入力は未だ出来ない。
(2) [本体] Call文でサブルーチンに引数を渡せるようにした。定義のためのDeclare Sub文、Sub〜End Sub文が使えるようにした。
(3) [本体] Dim文でString型の変数と1次元の配列が宣言できるようにした。SRAM上の領域も確保されるようにした。
(4) [本体] PortB.0=aのような書き方が出来るようにした。
(5) [本体] 配列要素への単純変数、配列変数および10進定数の代入が出来るようにした。
(6) [本体] 代入文の右辺に16進定数と2進定数が使えるようにした。
(7) [本体] 代入文の右辺で配列の要素が使えるようにした。ただし、演算は出来ない。
(8) [本体] Data文の中で定数同士の加算が出来るようになった。
(9) [本体] ソースコードからデバッグ用のメッセージ出力やコメントアウトした不要な行を削除した。
{{ref bascompi055.exe}} {{ref bascompi055.zip}}
:2012.1.6 0.54:
(1) [本体] Bits/Nbits関数が使えるようにした。
(2) [本体] If文でLong型変数と定数の比較が行なえるようにした。
(3) [本体] 初期化ルーチンを生成するタイミングが間違っているのを直した。
(4) [本体] Long型変数のインクリメント/デクリメントができるようにした。
(5) [本体] If文で16進定数が使えるようにした。
(6) [本体] 16ビットの乗算ができるようにした。
(7) [本体] Data文でカンマの前後に空白があると記号定数が認識できないのを直した。
(8) [本体] If文で変数名にアンダースコアが使えないのを直した。
(9) [本体] If文での変数と0との比較を高速化した。
(10) [本体] If文で定数値に%が付いていても良いようにした。
{{ref bascompi054.exe}} {{ref bascompi054.zip}}
:2011.12.28 0.53:
(1) [本体] 宣言したLong型の変数に値を代入できるようにした。
(2) [本体] 32bitの除算ができるようにした。加算、減算、乗算についてはまだできない。
(3) [本体] 定数_XTALを定義しプログラム中で動作クロック数($Crystalで指定した値)を読み出せるようにした。
(4) [本体] HIGHW関数によりLong型変数の上位16bitを取り出すことができるようにした。
(5) [本体] $Baudでボーレートを設定できるようにした。シリアル通信はまだできない。
(6) [本体] Enable/Disable文で個別の割り込みを許可/禁止できるようにした。
(7) [本体] On 割り込み 文で割り込みベクタを設定できるようにした。
(8) [本体] On 割り込み文で指定したサブルーチンを割り込みルーチンとして認識しレジスタの退避と復帰を行うようにした。
(9) [本体] インラインアセンブラの開始と終了に$asmと$end asmが使えるようにした。
(10) [本体] Portb文で変数の値を代入する場合のコードを改善した。
(11) [本体] I/Oレジスタへの代入及び値の参照ができるようになった。
(12) [本体] &Hxxによる16進定数が使えるようにした。
(13) [本体] Stop TIMER0/COUNTER0/TIMER1/COUNTER1/WATCHDOG文により各デバイスを停止できるようにした。
(14) [本体] Start WATCHDOG文によりウォッチドッグタイマを起動できるようにした。
(15) [本体] 引数なしのStop文によりプログラムの停止が行なえるようにした。End文との違いは割り込みの禁止を行わないことである。
{{ref bascompi053.exe}} {{ref bascompi053.zip}}
:2011.12.7 0.52:
(1) [本体] LCDに変数の値を表示できるようにした。ただし、負の数には対応していない。
(2) [mkbachfile.vbs] アセンブルエラーが出たときは空のhexファイルを生成するようにした。
{{ref bascompi052.exe}} {{ref bascompi052.zip}}
:2011.11.26 0.51:
(1) [本体] 簡易プログラミングでSound文がコンパイルできなくなる間違いを直した。
{{ref bascompi051.exe}} {{ref bascompi051.zip}}
:2011.11.22 0.50:
(1) [本体] Enable Interrupts/Disable Interruptsで割り込みの許可と禁止が行えるようにした。
(2) [本体] ASM_TEXT/ASM_ENDでインラインアセンブラが使えるようにした。
(3) [Orgel.awk] 入力に対応した。
{{ref bascompi050.exe}} {{ref bascompi050.zip}}
:2011.11.8 0.49:
(1) [本体] If文でa>0とa<0の処理が間違っていたのを直した。
(2) [本体] Config Portd.0の処理が間違っていたのを直した。
(3) [本体] If文で文字比較の処理が間違っていたのを直した。
(4) [本体] If文で名前付定数が使えるようにした。
(5) [本体] Config pinB、Config pinB.0、Config pinD、Config pinD.0が使えるようにした。
{{ref bascompi049.exe}} {{ref bascompi049.zip}}
:2011.11.7 0.48:
(1) [本体] Constが使えるようにした。
(2) [本体] Aliasが使えるようにした。
(3) [本体] Locate文で予約されていない変数を使ったときの処理が間違っていたので直した。
(4) [本体] BASCOM-AVRモードで余計な初期化コードが出力されないようにした。
(5) [本体] ATmega168(P)に対応させた。ただし、テストは一切行っていない。
(6) [本体] Config PortXで以下の形式が使えるようにした。
*Config PortB=Input
*Config PortD=Output
*Config PortX.0=Input
*Config PortX.0=Output
*Config PortX=&Bbbbbbbbb
(7) [本体] アセンブリ言語のオペランドで定数を0b00000000のように常に8桁になるようにした。
(8) [本体] (7)の変更によりオペランドが0のときに間違っていたのが直った。
(9) [本体] $regfileが正しく認識され無い場合があったのを直した。
(10) [本体] For文でStepが使えるようになった(ただし指定できるのは-63〜-1、1〜63の定数のみ)。
(11) [その他] 「m168def.inc」を添付した。
{{ref bascompi048.exe}} {{ref bascompi048.zip}}
:2011.10.6 0.47:
(1) [本体] ATtiny2313でa=getadc(0)によってA/D変換ができるようにした。
ChaN氏のページ
ELM - シンプルなA-Dコンバータ
(http://elm-chan.org/docs/avr/avradc_j.html)
からコードを引用した。
==ただし、クロックが1MHzのときはあまりうまくは動かないようである。==
(2) [本体] a=a*2 の処理が間違っていたのを直した。
(3) [本体] a=int(a/2) も間違っていたので直した。
(4) [本体] PortD=a ができるようにした。
{{ref bascompi047.exe}} {{ref bascompi047.zip}}
:2011.9.22 0.46:
(1) [本体] Display On/Off のコードが間違っていたのを直した。
{{ref bascompi046.exe}} {{ref bascompi046.zip}}
:2011.9.15 0.45:
(1) [本体] バージョンナンバーと日付以外は特に変更無し。
(2) [Orgel.awk] 12MHzに対応した。
(3) [Orgel.awk] 電子オルゴールのプログラムでないときは「bascompi_orz.bas」を出力しないようにした。
(4) [Orgel.awk] 各音符(休符)の前に30msの待ち時間を入れた。
{{ref bascompi045.exe}} {{ref bascompi045.zip}}
:2011.9.13 0.44:
(1) [本体] 再びWindows 7/Vistaで動作しなくなっていることが発覚したので対処をした。
(2) [本体] ラベルの処理に関して余計なメッセージが出ていたのを直した。
(3) [本体] Config PortB、Config PortDが処理されていなかったのを直した。
(4) [Orgel.awk] #,bの処理がやっぱりなされていなかったのを直した。
{{ref bascompi044.exe}} {{ref bascompi044.zip}}
:2011.9.12 0.43:
(1) [本体] Sound文のランタイムルーチンでループのラベル位置が間違っていたのを直した。
これにより、テンポが遅くなったり、音程が低くなるのが改善したと思われる。
(2) [Orgel.awk] #,bの処理がなされていなかったのを直した。
{{ref bascompi043.exe}} {{ref bascompi043.zip}}
:2011-9-8 0.42:
(0) 0.41の日付が間違っていた。何か良い管理法は無いものか。
(1) [本体] Sound文の引数でカンマの前後に空白があっても良くなった。
(2) [本体] ラベルの扱いが間違っていたのを直した。「-」を含むラベルも使えるようになった。
(3) [Orgel.awk] 判定法が甘く、Sound文を含むプログラムを全て誤認していたのをSound文を含みかつData文を含んでいて、そのデータが全て電子オルゴールの音符データであるときに「電子オルゴール」のプログラムと看做すことにした。
{{ref bascompi042.exe}} {{ref bascompi042.zip}}
:2011-9-7 0.41:
(1) [本体] ソースを少し弄ったが、特に機能的な変更はない。
(2) [Orgel.awk] 電子オルゴールの出力したプログラムをバスコンピのプログラム「bascompi_orz.bas」に変換するスクリプト「Orgel.awk」を作成した。
(3) [mkbatchfile.vbs] 上の「Orgel.awk」のために大幅に書き換えた。
{{ref bascompi041.exe}} {{ref bascompi041.zip}}
:2011-9-6 0.40:
(0) 0.39の日付が間違っていた。
(1) Waitms文で変数が使えるようになった。
(2) CONFIG、$CRYSTALでもBASCOM-AVRモードになるようにした。
8LED点滅回路
http://hidapio.jp/m8led.htm
にある、プログラム例の「ヒダピオ」、「BASCOM」の両方がコンパイルできるようになった。
(3) If文が壊れていたのを直した。
(4) 乗算ルーチン、除算ルーチンのコメントがコメントになっていなかったのを直した。
(5) 代入文の右辺にI、J、K、A以外の変数も使えるようになった。
(6) If文でI、J、K、A以外の変数も使えるようになった。
(7) Sound文で変数を使った場合のコード生成が間違っていたのを直した。
(8) 入力ファイルの名前が「bascompi*.bas」とき出力ファイル名を「bascompi.asm」にするようにした。
{{ref bascompi040.exe}} {{ref bascompi040.zip}}
:2011-9-5 0.39:
(1) 「ddrb 255」の記法を使えるようにした。
(2) Lcd Chr(0) ; "Hello" ; Chr(0)
chr関数と文字列定数をセミコロンで区切って並べられるようにした。
セミコロンの前後に空白があっても良い。
(3) LCDdefchar文でカンマの前後に空白があっても良くなった。
(4) LCDdefchar文のコード生成が間違っていたのを直した。
(5) Locate文の引数でカンマの前後に空白があっても良くなった。
(6) BASCOM-AVRモードではNext文の変数を無視するようにした。
(7) Dim文でBASCOM-AVRモードになるようにした。
(8) For文で「=」の前後に空白があっても良くなった。
(9) LCD文で文字列定数の中にカナがあるとアセンブル時に警告がでるが実害はない。
これらによって、
AVRマイコンのプログラム(LCD編)
http://hidapio.jp/program6.htm
にあるサンプルがコンパイルできるようになった。
{{ref bascompi039.exe}} {{ref bascompi039.zip}} 注意! If文が壊れています。
:2011-9-2 0.38:
*Data &Hxx
一旦、バッファに記録し、ラベルを見つけるかプログラムの最後に到達したときに2バイト単位で.db擬似命令を出力する。これにより本来バイトであるデータがワードになってしまいコードが膨らんでいたのを防ぐことができる。
ただし、偶数行の連続したData文の後ろにラベル文を置く必要があることに注意する。
*Read a
Dim文で型情報を記録していたのを使うようにし、Read文で変数がByte型である場合は1バイトだけ読み出し変数の下位バイトに格納するようにした。
*これらにより、電子掲示板の全てのパターンがコンパイルできるようになった。
{{ref bascompi038.exe}} {{ref bascompi038.zip}}
!!履歴以前の古い版
exeファイルとzipファイルの中身は全く同じものです。
上の方にあるもの程、新しい版です。
*{{ref bascompi037.exe}}
*{{ref bascompi037.zip}}
*{{ref bascompi036.exe}}
*{{ref bascompi036.zip}}
*{{ref bascompi035.exe}}
*{{ref bascompi035.zip}}
*{{ref bascompi034.exe}}
*{{ref bascompi034.zip}}