Altair8800を語ろう

このエントリーをはてなブックマークに追加
1ナイコンさん
語れ
2ナイコンさん:2014/07/22(火) 01:46:25.23
語れ
3ナイコンさん:2014/07/22(火) 01:57:11.07
Altair8800
4ナイコンさん:2014/07/22(火) 02:05:40.79
Altair8800
5ナイコンさん:2014/07/22(火) 02:14:25.68
Altair8800
6ナイコンさん:2014/07/22(火) 02:20:42.91
Altair8800
7ナイコンさん:2014/07/22(火) 02:30:33.09
Altair8800
8ナイコンさん:2014/07/22(火) 02:36:03.05
Altair8800
9ナイコンさん:2014/07/22(火) 02:43:04.59
Altair8800
10ナイコンさん:2014/07/22(火) 03:36:07.32
Altair8800
11ナイコンさん:2014/07/22(火) 07:15:50.26
Altair8800
12ナイコンさん:2014/07/22(火) 07:22:10.74
Altair8800
13ナイコンさん:2014/07/22(火) 07:30:37.97
Altair8800
14ナイコンさん:2014/07/22(火) 07:37:02.80
Altair8800
15ナイコンさん:2014/07/22(火) 07:46:40.37
Altair8800
16ナイコンさん:2014/07/22(火) 07:54:17.12
Altair8800
17ナイコンさん:2014/07/22(火) 07:59:59.82
Altair8800
18ナイコンさん:2014/07/22(火) 09:03:57.35
Altair8800
19ナイコンさん:2014/07/22(火) 09:13:10.17
Altair8800
20ナイコンさん:2014/07/22(火) 10:12:36.34
Altair8800
21ナイコンさん:2014/07/22(火) 12:58:03.94
IMSAI可?
22ナイコンさん:2014/07/22(火) 15:05:39.47
ON
RESET
00 111 110 DEPOSIT
00 000 011 DEPOSIT-NEXT
11 010 011 DEPOSIT-NEXT
00 010 000 DEPOSIT-NEXT
00 111 110 DEPOSIT-NEXT
00 010 001 DEPOSIT-NEXT
11 010 011 DEPOSIT-NEXT
00 010 000 DEPOSIT-NEXT
11 011 011 DEPOSIT-NEXT
00 010 000 DEPOSIT-NEXT
00 001 111 DEPOSIT-NEXT
11 010 010 DEPOSIT-NEXT
00 001 000 DEPOSIT-NEXT
00 000 000 DEPOSIT-NEXT
11 011 011 DEPOSIT-NEXT
00 010 001 DEPOSIT-NEXT
11 010 011 DEPOSIT-NEXT
00 010 001 DEPOSIT-NEXT
11 000 011 DEPOSIT-NEXT
00 001 000 DEPOSIT-NEXT
00 000 000 DEPOSIT-NEXT
RESET
RUN
23ナイコンさん:2014/07/23(水) 03:16:57.55
まさかのリアクションなし
需要ないんじゃないのこのスレ
サンプルが地味過ぎたのかもしれないが
24ナイコンさん:2014/07/28(月) 19:35:13.52
Popular Electronics誌掲載「Altair 8800の実際的な使い方」(抄訳)

Altair8800の実際的な使い方を知るために、プログラムの格納と実行の方法を
以下に示す。このテストプログラムはメモリ128番地と129番地に格納された数
字を足して、メモリ130番地に演算結果を格納するものだ。

ステップ1:パワースイッチをONにしRESET/CLRスイッチをいったんRESETに入れ
て戻す。なおパネル最下段にあるスイッチは電源スイッチを除きいずれもバネ
が仕込まれており、上下どちらでも操作位置に倒してから指を離せば自動的に
中立のオフ位置に戻る。

ステップ2:アドレススイッチのA0からA15までをすべて0位置(下向き)にし、
EXAMINE/EXAMINE NEXTスイッチでEXAMINEを指示する。アドレスLEDのA0からA15
までが消灯状態になればそれで良い。なおD0からD7までのデータLEDのうちい
くつか点灯する場合もあるが、それはアドレス0番地にあるデータを示している。

ステップ3:続いてアキュムレータへのロード命令(命令コード072o)を2進数
(00 111 010)でアドレス0番地に書き込む。この値をD0からD7スイッチで設定す
るが、このとき1は上位置で表し0は下位置で表す。従って00 111 010はD7から
順番に下、下、上、上、上、下、上、下になる。それからDEPOSITを行えば、
アドレス0番地にこの値が書き込まれる。D0からD7のLEDは書き込まれた値通り
に点灯しているはずだ。点灯が1を表し消灯が0を表す。また指示通り操作して
いれば、A0-A15のLEDは全て消灯状態で0番地を指している。アキュムレータへ
のロード命令は、続く2番地分に格納された値を16ビットのアドレスとして解釈
する。プログラムの実行時にはこのアドレスに格納された値がアキュムレータ
に読み込まれる。
(続く)
25ナイコンさん:2014/07/28(月) 19:35:47.99
ステップ4:たとえば128番地のようなアドレスは16ビットの二進数で表す。
アドレス下位8ビットの値はアキュムレータへのロード命令の次に格納し、上位
8ビットの値はその次に格納する。128番地の場合0 000 000 010 000 000なので
まずD0-D7スイッチを10 000 000としてDEPOSIT NEXTスイッチを押す。これで値
がメモリ1番地に書き込まれ、A0のLEDが点灯する。さらにD0-D7スイッチを全て
0にしてDEPOSIT NEXTを押す。これで設定値がメモリ2番地(A1のLEDのみ点灯)に
書き込まれ「128番地のメモリの値をアキュムレータに読み込め」という指示が
完成した。

ステップ5:アキュムレータ内にある数字にもう1つの数字を足すためには、現在
の数字を汎用レジスタに移さなければならない。今回の例ではBレジスタを使う
こととし、Aレジスタの値をBレジスタに移せという命令を使う。Aレジスタとは
アキュムレータのことだ。2進数で表現すると01 000 111となるので、D0-D7
スイッチでこれを設定する。続けてDEPOSIT NEXTを行えばメモリ3番地(A1とA0の
LEDが点灯)にこの命令が格納される。

ステップ6:続いてメモリ129番地の値をアキュムレータに読み込む指示を作成する。
操作はステップ3とステップ4で説明した内容と同様だ。まずD0-D7スイッチを
00 111 010としてDEPOSIT NEXTスイッチを押す。アキュムレータへのロード命令
がメモリ4番地(A2のLEDが点灯)に格納された。それからD0-D7スイッチを10 000 001
とし(129)、DEPOSIT NEXTを押してメモリ5番地(A2とA0のLEDが点灯)に格納する。
さらにD0-D7スイッチを全て0にしてDEPOSIT NEXTを押しこの値をメモリ6番地
(A2とA1のLEDが点灯)に格納する。
(続く)
26ナイコンさん:2014/07/28(月) 19:36:41.09
ステップ7:次にD0-D7スイッチを10 000 000(命令コード200o)としてDEPOSIT NEXT
を押し、メモリ7番地(A2とA1とA0のLEDが点灯)に加算命令を書き込む。この命令
はBレジスタの値をアキュムレータの値に加算するものだ。

ステップ8:メモリ130番地に結果を書き込むために、まずD0-D7スイッチを
00 110 010としてからDEPOSIT NEXTを押しメモリ8番地(A3のLEDが点灯)に命令を
書き込む。次にD0-D7スイッチを10 000 010としてからDEPOSIT NEXTを行う。
これで130番地を表す2進数の下位8ビットがメモリ9番地(A3とA0のLEDが点灯)に
格納された。さらにD0-D7スイッチを全て0にしてDEPOSIT NEXTし、上位8ビットを
メモリ10番地(A3とA1のLEDが点灯)に格納する。

ステップ9:メモリ128番地の値と129番地の値を加算し、結果を130番地に書き込む
プログラムができあがった。ジャンプ命令を使って0番地に処理を戻せば、この
加算処理を好きなだけ繰り返せる。D0-D7スイッチを11 000 011として
DEPOSIT NEXTで11番地(A3とA1とA0のLEDが点灯)に命令を書き込み、さらに
D0-D7スイッチを全て0にしてからDEPOSIT NEXTを2回行う。0番地を指す値がメモリ
12番地と13番地(A3とA2とA0のLEDが点灯)に格納できた。
(続く)
27ナイコンさん:2014/07/28(月) 19:39:06.85
プログラムを実行する前に、足し合わせる数字をメモリ128番地と129番地に設定
しておく必要がある。たとえば12+8を行う場合、A0-A15スイッチを
0 000 000 010 000 000にしてからEXAMINEを行い(A7のLEDが点灯)、D0-D7スイッチ
で00 001 100(12の2進数表記)を設定してDEPOSITを行う。さらにD0-D7スイッチを
00 001 000(8の2進数表記)にしてDEPOSIT NEXTを行って12と8をそれぞれ128番地と
129番地に格納する。

次にA0-A15スイッチを全て0にしてEXAMINEを行う(アドレスLEDは全て消灯)。そして
RUNスイッチで実行を開始する。このプログラムは毎秒3万回ほど実行されるので、
頃合いを見てSTOPスイッチで動作を止める。A0-A15スイッチで130番地
(0 000 000 010 000 010)を指定しEXAMINEを行うとD0-D7LEDに加算結果の20が2進数
表記(00 010 100)で現れる。

補足:1975年当時の超絶的にまだるっこしい説明を堪能したい場合は原典を読むべし。
28ナイコンさん:2014/07/31(木) 23:30:07.49
デイジー、デイジー
29ナイコンさん:2014/08/18(月) 02:11:54.72
Altair8800と言えばビルゲイツ
30ナイコンさん:2014/08/18(月) 17:54:23.40
ワンボードマイコンの16進キー世代なので、
8進表記(2進3桁表記)のままだとOPコードがぜんぜん読めない。
31ナイコンさん:2014/08/26(火) 15:20:37.17
Atari800
32ナイコンさん:2014/08/26(火) 22:19:53.19
よくAtari800と間違えられた
33ナイコンさん:2014/08/31(日) 17:25:29.86
こんなクソスレ立てた>>1は自分じゃ語らんのか、無能が
34ナイコンさん:2014/10/22(水) 04:45:13.11
S-100Bus
35ナイコンさん:2014/10/22(水) 04:45:40.13
SWTPC
36ナイコンさん:2014/11/08(土) 12:40:09.50
アルテアってどこまで拡張できたんだろう
ウォーゲームだとモニタとキーボードとディスクドライブと
モデムを接続して電話回線でクラッキングしていたけど
37ナイコンさん
別に下駄でMAX3421E繋いでUSB増設しまくってもいいのよ?