サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
災害への備え
www.6809.net
HD6309 は 1984,5年頃(?)に日立が発表した6809コンパチ MPU(CPU) で、 モトローラのMC68B09が 2MHz までだったのに対しHD63C09という 3MHz 版がありました。 この3MHz版のHD63C09にはさらに 6809 を大幅に拡張した隠し命令が追加され ――(32ビット可能に)レジスタ増強され、またレジスタ同士の演算が行えるようになり割算等もろもろ増え―― 実質違うプログラミングになるアーキテクチャの MPU になっていました。 レジスタや命令表については また、 半導体コレクション展示会場のHD6309 のサイトにも、解説があるので参考になります。 6309 の6809との互換性は、正式な仕様の範囲のみで 6809 の未定義命令/アドレッシングの類は非互換だったため、 市販ソフト等で動かなくなるプログラムがありました。 隠し命令発覚は 1988年頃
XorShift乱数は、こちらとかのように短い関数で紹介されるけれど、たいていシード固定で書かれていて、シードを外部から与えたい場合はどうしたら、と悩んでしまう. もちろん、ちょっとぐぐったらシード設定できるソース載せてるサイトあるし、 おおもとのpaper に all 0でなければよいようなことかいてあるようだけど、 どの程度適当でよいのか不安にもなる. で、今さらながら2chの擬似乱数2 をみたら76に解説&seed設定付ソースがあった. シードは極端な設定をすると不自然な部分列が出力されるからMTのを参考にしたとある. ありがたく、これ流用させていただくことに... と、よくよくみれば、ここの初期化とほぼ同じ(改良版)のよう. その他、検索したときのサイトメモ. mt-liteの実行速度に xorshiftを含む各種乱数の速度比較あり. 良い乱数・悪い乱数に XorShiftと他の乱
「プログラム書法 第二版」購入メモ 「プログラム書法 第二版」 Brian W.Kernighan and P.J.Plauger 著 木村泉訳 (共立出版株式会社 ISBN 4-320-02085-5 C3041) 著者の一人は、CプログラマにはK&R(「プログラミング言語C」) でおなじみのカーニハンで、昔から、同著者たちの「プログラム作法」と 合せて、名著として勧められている本です。 (訳本の第一版が1976年で第二版が1982年) プログラムの書き方についての本です。 別段高度なことが書かれてるんじゃなく、段付け(インデント)しよう、 とか、紛らわしい名前をつけるのはやめよう、とかの、基本的なこと、 でも初心者のうちはあまり気にしないような、やりかた、とか、態度とか いったことがらを、実例を示しながら、いろいろ書かれてます。 まえがきから抜粋すると、 「よいプログラミングのしかた
以下 Uncrustify ver.0.38 で --show-config の出力結果から適当に作成したもの. 訳はよくわからず適当に類推したり、よくわからない日本語のままだったりしますが、勘弁. 単語指定の場合は、大文字小文字の区別なし. {Ignore,Add,Remove,Force} では基本的に Ignore は、そのオプション機能を無視する. Addは追加、Remove は削除、Forceは大抵はAddに同じで一部(空白関係?)で強制追加. オプションは、数値や決められた単語以外も、他の設定名を指定することでその設定を引き継ぐことが可能. ↑
フリーまたはフリー版のあるWin32用C/C++コンパイラの オプション一覧から、 だいたい同じ機能について適当に抜き出して並べてみた。 もちろん、全てでなく、また、未確認も多い。 己自身はWin環境では基本的にvcを使うが、たまにルーチンチェックに他のコンパイラを使う。 このとき毎度オプションに悩むので覚書してみた、というもの。 が、ちゃんと調べるのは面倒で作りかけで放置中。 (手元にあるコンパイラなので、そのコンパイラの最新バージョンというわけでない。 モノによってはヘルプと実際の挙動に違いがある場合もある)
データ圧縮について データ圧縮は、対象とするデータに 偏りがあることを利用 して行います。 データに含まれる値の出現頻度に偏りがある (0などの特定の値が多く使われる)とか、 同じ値(パターン)が連続して現れるとか、 近くに似た値が現れやすい、とか、 です。 例えば 00 00 00 00 00 12 12 12 という 8バイトを 5個 の 00 と 3個の 12 と表現すれば 05 00 03 12 と 4バイトにできたりします。 あるいは 00 と 12 の2種しかないようならば8バイトをビット情報として 00000111 のようにまとめ、 00 12 07 と3バイトにできたりします。 また、偏りの少ない/得られにくいデータの場合でも、別の性質や規則性を利用し、いったん 偏りの現れやすいデータに変換する/ 似たような値が続きやすいように並べ替える ことで圧縮しやすくする場合もありま
6809.net Modified by tenk* PyukiWiki 0.1.6 Copyright© 2004-2006 by Nekyo, PyukiWiki Developers Team License is GPL, Artistic Based on "YukiWiki" 2.1.0 by yuki and PukiWiki by PukiWiki Developers Term Powered by Perl 5.008009 HTML convert time to 0.047 sec.
忘れないうちにメモをしろ 2003-08~ プログラミングにまつわることで、思い出したこと、考えたこと、気になること など、ともかく低レベルでもみっともなくても中途半端でいいからメモを取ろう、 と思うページ(忘れてしまって困るのは己なのだ)... ※ ろくにチェックせずにアップしとりますんで、鵜呑みにせず、ソースもバグってるかも で気いつけたってください。 組込向 malloc (有限メモリの管理) 組込向 malloc の改造:ちょっと改造 組込向 malloc の改造:calloc/_msize/realloc 組込向 malloc の改造:best-fit 組込向 malloc の改造:チェックを付加 組込向 malloc の改造:ヘッダサイズとブロックサイズの分離 組込向 malloc の改造:ヒープバッファの片端に寄せる WinCVSの Build ChangeLog で日本語.
プログラミングにまつわることで、思い出したこと、考えたこと、気になること など、とにかく中途半端でいいからメモを取ろう、と思うページ…… 2000-09-29 いいわけ 2000-09-30 CでシフトJIS(\のこと) 2000-10-01 CでシフトJIS 追記(charの符号) 2000-10-02 フリーの(TTF)フォントがほしい 2000-10-03 漢字文字コード表 2000-10-04 fontx2形式フォントをTTFにしたい 2000-10-06 fontx2形式のフォントをTTFにしたい(補足) 2000-10-29 ctype.h,string.h,jctype.h,jstring.hを書いてみた 2000-10-29 watcom-c ライブラリでのNULL対策 2000-11-04 標準関数の引数NULLチェック, あるいは s++ == s++ の互換性 200
MC6809 は 1979年にモトローラ社が発表した MPU(CPU) で、 MC6800/6802 を発展させたものになっていました。 ※ モトローラ社は現存しますが、 MPU等を扱う半導体部門は独立分社化していて フリースケール・セミコンダクタ社となっています。 ※ 当時のモトローラは発表してから製品が出荷されるまでの期間が1年ほど空いていたらしい。 6809(というか680x系)のプログラミングは、レジスタ同士、メモリ同士、の演算は (ほぼ)なく、 基本的にレジスタでメモリをアクセスする演算になります。 レジスタや命令表については 6809命令表 をみてやってください。 また、 WikiPediaの6809の項 半導体コレクション展示会場のMC6809 のサイトあたりに、詳しい解説があり、参考になります。 ↑ 6809は究極の8ビットと謳われていました。 命令の直交行性が(8ビットC
2016-11-19[土] C++TemplateのつもりでC#Generics使ってハマる(初歩) 人様のソース改修でロクに知らないC#をここ1,2ヶ月さわってた。 といってもそのソースもC#慣れしたわけでないC系ユーザーが書いたような感じで ある意味助かったのだけれど、コピペ膨れなソースだったので、処理をまとめようと C++Template 的に Generics を使おうとして...ちょっとハマった。 C++だと #include <stdio.h> class Foo { public: void Run() { printf("Foo!"); } }; template<class T> class FooMgr { public: void Run() { T().Run(); } }; class Bar : public Foo { public: void Run() {
□ main の戻り値の型は void でなく int OS環境下のCプログラムでは 基本的に int main(void) { printf("hello,world\n"); return 0; } のように必ず関数の戻り値の型を int にして、return で値を返すように書きます。 return 値は OS に返すエラーコードで 0ならば正常終了 0以外ならば異常終了 となっており、C標準関数のexit関数の引数の値と同じものが指定できます(exit関数は、プログラムを終了させる関数で、その引数はOSに返す値になります)。 もっとも main の return 値がこのように決まったのは ANSI-C89/ISO-C90 からで、それ以前(K&R)では return 値 の扱いが不定なことから void main() { printf("hello,world\n"); exit
※ このページは Psycho氏が ネット上(niftyやvector等)で配布されています 「K&R 2nd. 邦訳書の正誤リスト」 をWEBブラウザで読むのに見やすいように、 色分けして行間を空けたHTMLに変換したものです。 (もとは、テキストファイルを.lzs形式で圧縮した状態で配布されています) ※なお、この正誤リストは邦訳2ndの初期のものに対するもので、現在の邦訳は この正誤表がそれなりに反映されたものになっているらしいです。 ※あとこちら でも正誤頁をかかれています。 原著の間違い まえがき 目次 0章 1章 2章 3章 4章 5章 6章 7章 付録A B C ☆ K&R 2nd.邦訳書の正誤リスト ☆ 91/11/24 by Psycho K&R 2nd. はC言語の最も基本的な文献でありながら、邦訳書には意味不明の個 所が多く、読んでいるうちにイヤにな
C言語には、字面から常識的に類推したことと実際のキマリが合わない場合がままあり、 慣れない入門者や他の言語の利用者からすると誤解しそうなことが結構ある。 そういったこと(の一部)を以下に列挙。 [追記2012] これ書いたときはまだC99は決まってなかったこともあり、 基本的に C89 の話です。C99以降にかわってしまってる件もあり。 文法関係 main の戻り値の型は void でなく int。(*) (※ c++やc99以降は事情が多少変わった) 関数定義で戻り値の型名を省略すると void でなくint。(*) Cでは引数省略の関数定義fnc()はfnc(void)でなくfnc(...)。(*) char,shortの値は演算や関数引数でまずintに変換される 整数の基本はint, 実数の基本は(どちらかといえば)floatでなくdouble.(*) char, signed ch
ネットを探すと結構Cコンパイラが配布されているようだ。 Win32 環境用に限ってもフリーのCコンパイラは Borland C++ Digital Mars C++ Open Watcom LCC-Win32 GCC系( mingw, cygwin, djgpp, Dev-C++ ) のようなものが見つかる。 もっとも窓アプリ作成に限定すると djgpp はコンソールアプリのみ 対応だし、watcom はまだ正式には配布されてないけれど。 ・・・しかし borland C にしろ Watcom にしろ Digital Mars(元はSymantec C) のにしろ 一昔前は代表的な市販Cコンパイラで激しく競争していた時代があったのに・・・ フリーで手に入るなんて夢のよう、てか、諸行無常。 で、ちょこっと触ってみたので各コンパイラについてメモ。 て、以前に書いた bccの使用メモ の修正/書
「プログラミング作法」 (THE PRACTICE OF PROGRAMMING) ブライアン・W・カーニハン ロブ・パイク 福崎俊博訳 ASCII刊 初級~中級のプログラマな方、とくに仕事にされている方には、 ぜひ手元に置いて読んでもらいたい一冊です。 プログラミングをする上で、ソフトウェア開発に従事する上で、 知っておくべきこと気にすべきこと (スタイル,アルゴリズムとデータ構造,設計と実装,デバッグ,性能,など)の 捉え方考え方や配慮の仕方のような ノウハウ(の初歩的/基本的なこと)がたっぷり詰まっています。 最初は?が多くても、ざっとでも見ておき、後の経験で わかってくることもあるでしょう。 知っていることばかりだ、と言える人にとっても、 まとまっている本があるのは便利ですし、 経験あるプログラマならば自分との差異を確かめてみるもよいかもしれません。 カーニハンには、邦訳で 「プロ
□scanf,fscanfは使わず fgets,sscanfのペアを使う 入門書において、キーボードからの入力を行うのに、scanf()という関数を用いられることがあります。 特定環境に依存せず、C言語の標準ライブラリの範囲で説明しようとすると(とくに文字列の説明より先に先にキー入力を行いたい場合は)、これを使わざる得ないでしょう。この関数は標準関数で(入門者の用いる)どのコンパイラにまずついていますし、かなり便利な関数です。 ただし、この関数scanfや同類のfscanfは、少し問題があるため、実用プログラムに使われることはまずない、というのも現状です。 最大文字数が指定できないという問題もあるのですが、他にも、たとえば n = scanf("%d %d", &a, &b); のように記述し、入力で 1 2 と入力するところを 1 のみ入力したところで改行をしてしまった場合、a = 1,
下記は astyle 1.15.3 の astyle.html を適当に日本語化してみたものです。 Artistic Style 1.15.3 C , C++ , C# , Javaソースコード用 フリー で速くて小さい自動整形ツール by Tal Davidson, Israel (E-mail: davidsont@bigfoot.com) Artistic Style は C, C++, C#, Java のソースコードのインデントや整形を行える。 ソースコードをインデント付けするとき、プログラマはインデントに合わせて空白とタブ の両方を用いやすい。さらに、エディタによってはデフォルトでタブキーが押されると空白を挿入したり、また(例えばEmacsでは)行中のコードの手前に自動で空白を置いたりあるいは段付けに今までタブだけを使用したコードに空白を挿入したりして行を整えたりする。 ソース
CでWin9xのスクリーンセーバーを作ってみる 自前で作るのはめんどくさそ…… スクリーンセーバーを簡単に作る方法はいろいろ あるだろうけれど、とりあえず、Cを使って作る場合 の取っ掛かりについて(スクリーンセーバー自体の出来とかは 問わないで……自分自身のwinプログラミングの練習のためだから:-)。 (Windowsでの)スクリーンセーバーはドライバーみたいな 特殊なもんでなくWindowsアプリケーション。 ただ、ちょっと満たすべきことがあって、 タイトルや枠線無しで最大化して常に手前表示で、 多重起動できないくて、 キーやマウス入力があれば終了し、 起動時オプションとして、 /s スクリーンセーバーの実行 /c 設定ウインドウの表示 /p [xxx] プレビュー /a [xxx] パスワード が必要。 拡張子を.scr にし、 c:\windows\system にいれれば画面のプ
Cコーディング・スタイル例 以前(2~4年前)に、社内向けにコーディング規約案を書いたことが あり、その残骸?があったのでコーディングスタイルの例として 出しておきます。 規約といってもラフなものですし、その当時の自分の スタイル/自衛手段を書き出し、これを叩き台にして他の人の要望 などを反映させたりしました。以下は、 社内事情や自分のスタイルに合わない個所をいくつか 削除しています(自分の習慣でない記述も残っていますが)。 単なる一般的な自衛手段だったり 完全に自分の好みのこともありますが、 一応、なぜ、そのようにするのか、を、書くようにしていたので、 何かの参考になるかもしれません。 あと、スタイルに関しては 『プログラミング作法』(書籍ですが)を みるのがいいでしょう。オンラインでは こちらなんか も結構いいです。 ■はじめに ■ ソース・ファイル ■ソース中の特殊文字コード ■動作
プログラミング関係リンク プログラミング/プログラマ関係で、自分が参考にしたり/しそうなページへのリンク集です 。 Win, game-lib, game, 3D, アルゴリズム, C/C++, アセンブラ, 圧縮, 画像圧縮, 文字コード, フォント, html, プログラマ, ゲーム職業, 資料, PC, etc Win32 C/C++プログラミング関係 msdn online 本家MSの開発者向けページ. msdn online Library プラットフォームSDK に Win-API関数のリファレンスあり(DirectX6のも. X7は別ページで入手可能)。その他技術文書/サンプルあり。 Direct X(開発/一般) DirectX関係の情報/記事やSDKのダウンロードあり. Win32 Sdkに関する情報 Welcome to MASAPICO'S Page
割込ですべてのレジスタを退避したか(1)、PC,CCのみか(0) アドレッシング イミディエイトアドレッシング 指定された値そのものを対象とする場合。 例) lda #$20 a = 0x20 ldb #-1 b = -1 ※数値のメモリ格納順番は、ビックエンディアン。 エクステンド・アドレッシング 指定された値をアドレスとして、そのメモリの値を対照とする場合。 例) lda $FC00 a = *(char*)0xFC00 lda >$FC00 ※自動でダイレクトページ・アドレッシングに ならないように強制する場合 ダイレクト・アドレッシング dp レジスタの値をアドレスの上位 8ビットの値として 下位 8ビットのみを指定する場合。 例) lda <$10 a = dp[0x10] ※dpをポインタに見立てて インデックス・アドレッシング インデックス・レジスタやPC・レジスタと相対値と
C/C++ソース整形ツール 以下はフリーのC/C++のソース整形ツールのUncrustify, gnu indent, astyle を 勝手改造したものです. Uncrustify 0.55 for MBC Uncrustifyは C, C++, C#, D, Java, Pawn のソース整形ツールです。 uncrustify 0.55(付近) for MBC は、以下のような勝手改造を施しています. 標準のWin32版では-cコンフィグ指定が必須なのを、 .exeと同じフォルダにuncrustify.cfgがあれば、それを使うようにした. Shift-JISで書かれたソースを通せるようにuse_mbcオプションの追加. 変数名や関数名にかな漢字等のascii以外の文字コード(SJIS,UTF8,EUC)が 使われてもエラーにはならないように修正. ※桁計算がバイト数に依存しているので
忘れないうちにメモをしろ 2005-03~ (2005年はMTで書いた日記のプログラミング関係をhtml化しなおしたもの) 2005-03-11 玄箱HGにdebian (1) 半年ほど前から出先の会社で使用していることもあって、自宅にもCVS の代わりに Subversion(サーバー)がほしく思い、 ってのが当面の目的で(linuxにもちょっと触ってみたいし、で)、 玄箱HG のDebian化をしてみた。 (年末に衝動買いしたのにやりかけ放置だといつまでも悔しで^^;) 以下、そのメモ書き。 と、いっても、 「玄箱HGハック」 のお陰で、今回はとても簡単インストールできたのだった。 debian化だけでなく 各種初期設定やSambaやらApache,MySQL,PHP,XOOPS 等も Unix/Linux の事情に疎い人間でもとりあえず見よう見まねで インストールできる手引きがあって
このページを最初にブックマークしてみませんか?
『www.6809.net』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く