現在は、パソコンといえばIBM PCに由来するPCアーキテクチャ(以下IBM PC)が全盛となっています。IBM PCはスケールメリットにより、安価で比較的高性能です。しかし、何度も拡張を重ねてきた歴史のために、複雑怪奇なアーキテクチャとなっています。オペレーティングシステムの上で高級言語を使ってプログラムを書いていても、少し細かいことをやろうとすると、その歴史的経緯に関する知識が必要になってきます。まして、新しいオペレーティングシステムを作ったり、オペレーティングシステムなしで動くプログラムを作ったりするためには、この知識は不可欠で、プログラミング上の壁となっています。
欲しいものがなければ作ってしまうのが、パソコンの文化です。こんなアーキテクチャは捨てて、自分だけのPCアーキテクチャを作ってしまいませんか。自分の好きなCPU(存在しなくても可)、メモリマップ、ビデオ出力、音源などを持ち、自分の好きな方法で制御できる、仮想ハードウェアを作り、それを使って新しいオペレーティングシステムや、ゲームなどを作るのです。現在のIBM PCの性能と利用技術を活用すれば、たいていの用途には十分な性能のエミュレータを実現できるはずです。あなたも自分の仮想ハードウェアを考えて、エミュレータを作ってみませんか。命令セットのエミュレート(x86以外の場合)、特権命令のエミュレート(x86の場合)、I/Oポートをトラップして周辺機器のエミュレート……うまくいけば、これが厄介なIBM PCによる最後のプログラミングになるのです。
1984年のPC/AT以後の機種では、別にリアルタイムクロック(PC-9800シリーズのカレンダ時計とほぼ同じで、電源を切っても動作し続ける)を装備し、起動時にそれを読んで、時刻を初期化するようになった。しかし互換性のため、初期化時以外はリアルタイムクロックを読み出さず、システムタイマによる割り込み回数のカウンタを、経過時間と時刻の計算の両方に使っている。これには次のような欠点がある。
一方、PC-9800シリーズには最初から、カレンダ時計とシステムタイマの二つが備わっていた。システムタイマには固定された役割はなく、プログラムで自由に使うことができる。カレンダ時計には最初は、年がなかったが、1986年のPC-9801VX以降の機種では、年も扱え閏年にも対応するようになった。ただし、年は下二桁のみなので、PC-9800シリーズのMS-DOSでは、1980年から2079年までと解釈することになっている。
IBM PCも、PC-9800シリーズも、Pentium以降のCPUを持つ機種では、このほかにタイムスタンプカウンタを使うことができる。
PC-A800シリーズは、カレンダ時計、システムタイマ、そして、タイムスタンプカウンタを最初からすべて持ち、役割を分けることで混乱を避けている。
#1: タイマの入力クロックは、仕様上は14.31818MHzを12分周した1.193182MHzのはずだが、DOSの計算では1.193180MHzが使われている。前者で計算すると1日は23時間59分59.877秒と、後者より0.121秒短くなるが、現在のパソコンの精度ではどちらが正しいか判別できない。いずれにしても、1日の長さの仕様は変である。