今回は久しぶりに PC-8001 について解説してみたいと思います。 PC-8001のメモリ空間PC-8001のメモリ空間は Z80 が扱える範囲である $0000 ~ $FFFF までとなっています。このうち $0000 からは、多くの Z80 CPU 搭載パソコンではシステム ROM が配置されています。理由はリ ...
タグ:プログラミング
C言語028 処理を止めない
今回は処理を止めない実装方法の解説です。--いきなりここに飛んで来ちゃった人は、よろしければ下記からご覧ください。C言語基礎講座インデックス2種類の実装方法C言語の標準ライブラリでキー入力を行うと、リアルタイムキー入力はほぼ絶望的です。そのため、どうしてもリア ...
C# ToolStrip の位置を保存復元する
ボタンをフローティングにしようと ToolStripContainer を採用しました。このコンテナを使うと簡単にフローティングボタンが実現できるのですが、位置を変更しても次の再起動ではまた位置が初期化されてしまいます。そのため、この位置情報を再起動後も復元したいと思い試行 ...
C# 表示の誤差やちらつきを止める
現在制作を進めているマップエディタのパーツ選択ウィンドウでの表示がとてもちらついていて、かつ、描画誤差を出ていました。ここから本制作に変更するまでの手順について説明してみます。 最初のコードBGチップが16x16個並んで描画する処理です。最初のコードは以下のよう ...
プログラム完成までの道のり
プログラムはいきなりポンッと出来るモノではなく、構想、仕様決め(内部設計)、UIデザイン(外部設計)、という順序を経て、そこから初めてプログラミングに着手します。アマチュアさんだといきなりプログラムを組み始める事も多いかと思います。その場合でも出来ていく過 ...
自前シリアライズのススメ
シリアライズとは、データ保存のための手法で、なんらかのフォーマットに変換して様々なデータをまとめて保存するための技法です。厳密には違うんですが、まあ、ここではそういう事にしておいてください。各種データをひとつにまとめる事が出来るため、データの入出力によく ...
C言語018 関数
今までは、C言語が用意してくれた printf や scanf_s といった関数を使って、プログラムを組み立ててきました。関数は自分で作る事も出来ます。今回はその関数を作る基本を学びます。 --いきなりここに飛んで来ちゃった人は、よろしければ下記からご覧ください。C言語基礎講 ...
エミュレータの考察
まず最初にお断りしておきますが、私はエミュレータ自体の開発経験も無いですし、仕事でエミュレータのソースを覗いた事もないので、全て私の想像の範囲と言う事です。なので、当然間違いもたくさんあるかと思います。エミュレータでレトロPCやゲーム機を再現するには、各チ ...
MemoryPack を導入した
現在私が開発中のマップエディタでは、外部ライブラリとして唯一 MessagePack を採用していました。これは大変優秀なシリアライザーで、このライブラリのおかげで高速実行と省メモリを両立できていました。ところが先日、なんとなくネットをぶらついていたら、同じ作者による ...
C言語016 配列の初期化
配列は大量のデータを扱うのに便利ですが、宣言直後は値が不定なので初期化が必要と、前回説明しました。この配列の初期化に関してはいろいろの方法が C言語では用意されています。その初期化方法について解説します。--いきなりここに飛んで来ちゃった人は、よろしければ下 ...