
ノスタルジーシリーズその4と言いますか当方にとっては温故知新と言う方が正確かもしれません。
TMS9900は学生の頃買ったbit別冊の16ビットマイクロプロセサの後半部分に掲載されていたので存在は知っていたのですが実際にチップに触ったのは2007年頃、Eagle + Olimexで基板を安価(45EURぐらい、FAXでクレカ番号送信したのも(その為だけにFax買いました:)に作れる様になってからでありました。
トピックとしては来月の基板(2026年3月)の3項目目の続きになります。
一部重複しますが見やすさの為に重複記載ご容赦。
0.TMS9995につきまして
やはりココが一番わかり易いしアーキテクチャからISA迄コンパクトに纏めてあるので良いです。TMS9900も参照する必要はあると思いますが。
大昔は共立出版から16ビットマイクロプロセサTMS9995とVDP(TMS9918)の和書が出ていて購入もしたのですが行方不明なのが残念:)。
20260417 17:57追記:同書は誤記が多いのでTIの一次情報を参照すべしとのコメント頂きました(efialtes_htn様、ご教示頂き有難うございます)。やはり一次情報に当たるのが鉄則の様です。
・TMS9995ブロック図

ご承知の通りTMS9995は周辺回路(タイマ)とRAM(WPを想定)を集積(無論、面倒臭い4相CKGも)した8ビットバスの16ビットMCUでMC6803等に近いイメージですか(アーキでなく、コンポーネント構成として)。
動作クロックは3Mhz(12Mhz)ですが0waitだと1クロック(333ns)がRWサイクルなので意外と速い、無論レトロマイコン的には、ですが。
・リード・ライトサイクル、クロックタイミング

これまた有名でありますがTMS9900ファミリはCRUというクロック同期系のシリアルインタフェースを内蔵しておりそれ専用の空間と命令もサポートしています。なのでメモリ空間とCRU空間を判別する為にnMEMENがLでメモリ空間、HでCRU空間(他にも条件があります)nDBIN、nWRでバスタイミングを構成します。
・自動ウェイト

当時のメモリは450ns品が標準だったので自動1ウェイト生成回路がリセット時にREADYピンがHであれば機能し、Lならば0waitで動作します。本機のSRAMは70ns(1Mbit sram),90ns(psdのflash/sram)なので0waitでも余裕ですが68xx系とのインタフェースの為にEクロック>222ns以上が必要なのでまづはautowait有功(reset時のREADY=H)で始めます。
・tms9995のメモリマップ

F000-F0FB,FFFA-FFFFが内部RAMでWPとタイマとNMIベクタとして予約されております。リセット時は0番地からWP(WorkspacePointer)、リセットベクタの2ワードをフェッチする形になります。TMS9900ファミリはworkspace memoryアーキテクチャなのでWPとして使用するメモリは最速であるべきで内蔵RAMはそれを満たすので通常はそれを使用します。
・その他
・この頃のTIのチップはBig endianであるので注意が必要です。アドレスもデータもbit0がMSBでbit15/bit7がLSBなので今日(というかTI以外の)チップとはMSBとLSBが逆なのでくれぐれもお間違い無き様に(念の為)。
・バイト配列も当然ビッグエンディアンなので所謂モトローラ系のendianとなります。
1.ブロック図(再掲)

本シリーズ共通の縛りでCPU以外は同じ構成としています。68xx系周辺へのEクロック生成は !nMEMEN & (!nDBIN # !nWR) & (!nPIA # !nACIA) のPLAで取り敢えず動かしてみます。
20260417 01:52追記:老婆心ながらこの手の方法は当然ながらPTM(6840),VIA(6522のタイマカウンタ部)とは相性が悪いので利用不可です。上記ロジックはE信号をクロックというよりかはストローブ信号と見做して生成しているので一定周期のクロック(まともなモトローラ系のEクロック)を前提としたチップ(タイマカウンタ系)には不適である点はご承知置き下さい(念の為)。
#TMS9995はタイマカウンタ内蔵なのでそれで乗り切るのが吉:)。
2.回路図(再掲)

3.パタン図(全レイヤ)再掲

4.PLA(抜粋)
module eb9995v0
a0 PIN 30; "Address line
a1 PIN 31; "Address line
a2 PIN 32; "Address line
a3 PIN 33; "Address line
a4 PIN 34; "Address line
a5 PIN 35; "Address line
a6 PIN 36; "Address line
a7 PIN 37; "Address line
a8 PIN 39; "Address line
a9 PIN 40; "Address line
a10 PIN 41; "Address line
a11 PIN 42; "Address line
a12 PIN 43; "Address line
a13 PIN 44; "Address line
a14 PIN 45; "Address line
a15 PIN 46; "Address line
_wr PIN 47;
CLK PIN 49;
_rd PIN 50;
_reset PIN 48;
d0 PIN 29; "Data bus line
d1 PIN 28; "Data bus line
d2 PIN 27; "Data bus line
d3 PIN 25; "Data bus line
d4 PIN 24; "Data bus line
d5 PIN 23; "Data bus line
d6 PIN 22; "Data bus line
d7 PIN 21; "Data bus line
E PIN 7;
nMEMEN PIN 6;
BCK PIN 5;
READY PIN 4;
nFT245TXE PIN 3; "MCU I/O
nFT245RXF PIN 2; "MCU I/O
nCF PIN 52;
pb7 PIN 51; "MCU I/O
tms PIN 20; "TMS
tck PIN 19; "TCK
nFT245RD PIN 18;
FT245WR PIN 17;
nRAM PIN 14;
tdi PIN 13; "TDI
tdo PIN 12; "TDO
nPIA PIN 11;
nACIA PIN 10;
nIORD PIN 9;
nIOWR PIN 8;
rs0 node;
csiop node;
fs0 node;
rd1 NODE istype 'reg_D';X = .x.;
address = [a15..a0];
Vcc = 1;
Gnd = 0;
// Begin user preserved declarations (not affected by iterations of DA usage) ===================// End user preserved declarations (not affected by iterations of DA usage) ===================
equations
rs0 = *1;
csiop = *2;
fs0 = *3;
! nCF = *4;
! nFT245RD = *5;
FT245WR = *6;
! nRAM = *7;
! nPIA = *8;
! nACIA = *9;
E = !nMEMEN & (!_rd # !_wr) & (!nPIA # !nACIA);
E.oe = _reset;
BCK.oe = _reset;
READY = Vcc;
READY.oe = Vcc;
pb7.oe = _reset;
nIORD = !(!nMEMEN & !_rd);
nIORD.oe = _reset;
nIOWR = !(!nMEMEN & !_wr) ;
nIOWR.oe = _reset;
rd1 := !nPIA # !nACIA;
rd1.ck = CLK;
rd1.re = _reset;
// Begin user preserved equations (not affected by iterations of DA usage) ===================// End user preserved equations (not affected by iterations of DA usage) ===================
end eb9995v0
5.実装ボード(実物)

毎度の構成ですが右上からHD63B21(PIA)、TMS9995、1Mbit sram、AE-FT245RL、左上からHD63B50(ACIA)、PSD834F2J90(PSD)です。クロックは12Mhz OSCを外部クロックとしてCPUに入力という至ってオーソドックスな構成。CRUインタフェースを全く考慮していない(縛り故)のですが気にしない・・・
6.開発環境

これも毎度同じで図中上にあるのがRAISONANCE社のRlinkというPSD開発用のJTAGプログラマというかST系MCU開発ツールというか。左下は変換基板でARM24PInをPSD JTAG標準の14Pinに変換し、フラットケーブルでターゲットに接続しています。
ターゲットはUSB給電でAE-FT245RNからボード内の電源(+5V)として供給されます(BUSパワーですね)。消費電流は0.29から0.36A(1.5〜1.8W)ですがパッケージ特性なのか意外とCPUは熱くない様な・・・
20260426 03:31追記:計算合わないのでもう少し高級?なUSB電圧電流電力計で再測定しました↓

結果は0.160A、0.810WとCPUはNMOS構成で静的状態なのでこちらの方が正解な感じがする。そもそもバッテリ充電用途っぽいので負荷もそれを想定しており微小電流負荷は想定してないのでしょうかね(激安の方は)。
因みにeb6502_v0 も再測定したら0.028A、0.141Wとこちらもこの測定値の方が正解に近い印象。
基板右手の40PinヘッダはRCBUS(TMS9995も記載されています)準拠?のバスコネクタで今回はロジアナ接続してデバックに活躍してくれました。左のProbe(テストピンヘッダ)含めてデバッグへの備えは重要(教訓)。
星回りが悪いのか?今回は3個も外れ(不良品)を引いてしまいデバッグに苦労しました。
1.CPUからnMEMENが出力されない

最初は何かの間違いかと思いましたが他のCPUに差し替えると正常にnMEMENが出力されるので不良と判断(1/3=33%)。
2.PSDのA7がHにスタック(VCCと短絡)し、reset時に正しいリセットベクタを読めない

切り分けて行く中でテスタでa7とVCCがショートしている様なのでcpu,sram,psdを1個づつ外していくと・・・PSDに原因があったと言う事で(素子不良ですな)。
オークションだから外れを掴む事はあろうかと(過去に1Mbit sramで外れ掴んだし)覚悟はしていたがキーデバイスのPSDにも不良品があるのはちょっと考え込んでしまいました。
尚、JTAG書込は正常なので外部ピンの破損(静電気なり経年劣化なり、元々不良品だった可能性も)まさかa7とVCCがチップ内で短絡とは思いもしなかった訳で・・・教訓になりましたよ(反芻)。
3.PSDのa9が開放状態?
上記が解消されdbaが動作する様になったのですが版数情報の後半部分が文字化けする。別のPSDでISPすると正常に表示されるのでPSD個別不良と判断し、メッセージが化ける場所を確認すると0x0200〜でコードは0〜170h迄しか無い筈なのに200〜3ffhにも同じのが出てくる・・・A9ピンが開放というかチップ内部でデコーダ故障っぽい(びっくり)。
今回落札したPSDは10個だったので(2/10=20%以上の不良率)。オークションのリスクというか安物買いの・・・というか考えさせられる事案でありました(深刻)。
なのでキーデバイスのPSDと可能であればCPUを簡易的にでもテストする(Function testでも)検査治具でも検討しようかという気になっています・・・
7.dba

色々ありましたが dba起動時の画面です。0番地がWP、2番地がリセットベクタです。4番地からコード入ってますがINT1ベクタ領域なので80hからコードを配置するのが正解:)。

fs0を0〜7FF、外部sramを800〜EFFFに配置したので1Mbit sramのテストです。

こちらはIO空間。ACIAはFE90-FE9Fに配置しており、手動で0x43,0x15と初期化してACIAのTDREが1になってるので簡易的にはアクセス出来ていると判断(手抜きですね)。
・dbaソースコード
AS V1.42 Beta [Bld 270] - Source File eb9995_t3.asm - Page 1 - 2026年04月10日 13時24分17秒
1/ 0 : cpu tms9995
2/ 0 :
3/ 0 : ; 20251102 : hc11f_t3.asm 小さなrom debug agent風のもの
4/ 0 : ; 20260405 : eb9995_t3.asm に移植
5/ 0 : ; 20260406 : 取り敢えずアセンブルエラー消し込む。動作するかは別の話。
6/ 0 : ; 20260410 : iomapをffxx ⇒ fexxに変更(csiop,acia,pia含めて)
7/ 0 : ;
8/ 0 :
9/ 0 : =0F100H rs0 equ 0f100h ; rs0 : 0f100-0feffh
10/ 0 : =0H fs0 equ 0h ; fs0 : 0-07ffh
11/ 0 : =0FE00H csiop equ 0fe00h ; csiop
12/ 0 : =0FE01H pbin equ csiop+1
13/ 0 : =0FE05H pb7 equ csiop+5
14/ 0 : =0FE78H ft245 equ 0fe78h ; ft245 r/w
15/ 0 : =0FE80H pia equ 0fe80h ; pia
16/ 0 : =0FE90H acia equ 0fe90h ; acia
17/ 0 :
18/ 0 : =0H romtop equ fs0 ; rom top
19/ 0 : =7FFH rombtm equ fs0+07ffh ; rom bottom (2KB)
20/ 0 : =0F000H wp equ 0f000h ; internal ram
21/ 0 : =0FD00H ramtop equ 0fd00h ; rs0
22/ 0 : =0FDFFH rambtm equ 0fdffh
23/ 0 :
24/ 0 : =0H t1 equ 0000h ; 待ち
25/ 0 :
26/ 0 : ;---------------------------------------------------------
27/ 0 : ; マクロ定義
28/ 0 : ;---------------------------------------------------------
29/ 0 : FUNC macro name
30/ 0 : name:
31/ 0 : MOV R11, @name_R11 ; 戻り先をRAMへ保存
32/ 0 : endm
33/ 0 :
34/ 0 : RET macro name
35/ 0 : MOV @name_R11, R11 ; RAMから復元
36/ 0 : B *R11
37/ 0 : endm
38/ 0 :
39/F080 : org wp+80h
40/F080 :
41/F080 : 0000 a0 word 0 ; pseduo a0
42/F082 : 0000 a1 word 0
43/F084 : 0000 a2 word 0
44/F086 : 0000 a3 word 0
45/F088 : 0000 a4 word 0
46/F08A : 0000 a5 word 0
47/F08C : 0000 a6 word 0
48/F08E : 0000 d0 word 0 ; pseduo d0
49/F090 : 0000 d1 word 0
50/F092 : 0000 d2 word 0
51/F094 : 0000 d3 word 0
52/F096 : 0000 d4 word 0
53/F098 : 0000 d5 word 0
54/F09A : 0000 d6 word 0
55/F09C : 0000 d7 word 0
56/F09E :
57/F09E : ;---------------------------------------------------------
58/F09E : ; 領域定義
59/F09E : ;---------------------------------------------------------
60/F09E : 0000 pb7on_R11: word 0
AS V1.42 Beta [Bld 270] - Source File eb9995_t3.asm - Page 2 - 2026年04月10日 13時24分17秒
61/F0A0 : 0000 pb7off_R11: word 0
62/F0A2 : 0000 pbin0_R11: word 0
63/F0A4 : 0000 dly_R11: word 0
64/F0A6 : 0000 memc_R11: word 0
65/F0A8 : 0000 memw_R11: word 0
66/F0AA : 0000 id_R11: word 0
67/F0AC : 0000 go_R11: word 0
68/F0AE : 0000 adrin_R11: word 0
69/F0B0 : 0000 dump_R11: word 0
70/F0B2 :
71/ 0 : org romtop
72/ 0 :
73/ 0 : =5H dly_cnt equ 5
74/ 0 :
75/ 0 : F000 word wp
76/ 2 : 0004 word init
77/ 4 :
78/ 4 : 06A0 014C init bl @pb7on
79/ 8 : 06A0 015E bl @dly
80/ C : 06A0 013A bl @pb7off
81/ 10 :
82/ 10 : ; cmd待ち
83/ 10 : 06A0 013A cmd bl @pb7off
84/ 14 : 06A0 00FE bl @pbin0 ; cmd受信
85/ 18 : 06A0 014C bl @pb7on
86/ 1C : 0283 D100 ci r3,0d100h ; memory dump?
87/ 20 : 1603 jne cmd1
88/ 22 : 06A0 0078 bl @memc ; cmd exec
89/ 26 : 10F4 jmp cmd
90/ 28 : 0283 D200 cmd1 ci r3,0d200h ; go?
91/ 2C : 1603 jne cmd2
92/ 2E : 06A0 008E bl @go ; go cmd
93/ 32 : 10EE jmp cmd
94/ 34 : 0283 D300 cmd2 ci r3,0d300h ; memory write?
95/ 38 : 1603 jne cmd0
96/ 3A : 06A0 004C bl @memw ; memw exec
97/ 3E : 10E8 jmp cmd
98/ 40 : 0283 D000 cmd0 ci r3,0d000h ; machine id?
99/ 44 : 16E5 jne cmd
100/ 46 : 06A0 00B4 bl @id
101/ 4A : 10E2 jmp cmd
102/ 4C :
103/ 4C : ; memory write
104/ 4C : (MACRO) memw FUNC memw
104/ 4C : MEMW:
104/ 4C : C80B F0A8 MOV R11, @MEMW_R11 ; 戻り先をRAMへ保存
105/ 50 : 06A0 00D8 bl @adrin ; 戻り値はDとする
106/ 54 : C802 F084 mov r2,@a2 ; adrs = a2
107/ 58 : 06A0 00D8 bl @adrin
108/ 5C : C802 F098 mov r2,@d5 ; length = d5
109/ 60 : C0A0 F084 mov @a2,r2
110/ 64 : C1A0 F098 mov @d5,r6
111/ 68 : 06A0 00FE memw0 bl @pbin0 ; accb
112/ 6C : DC83 movb r3,*r2+ ; (x)<=accb
113/ 6E : 0606 dec r6
114/ 70 : 16FB jne memw0
115/ 72 : (MACRO) RET memw
115/ 72 : C2E0 F0A8 MOV @MEMW_R11, R11 ; RAMから復元
115/ 76 : 045B B *R11
116/ 78 : ; memory dump
AS V1.42 Beta [Bld 270] - Source File eb9995_t3.asm - Page 3 - 2026年04月10日 13時24分17秒
117/ 78 : (MACRO) memc FUNC memc
117/ 78 : MEMC:
117/ 78 : C80B F0A6 MOV R11, @MEMC_R11 ; 戻り先をRAMへ保存
118/ 7C : 06A0 00D8 bl @adrin ; adrs = a2
119/ 80 : C802 F084 mov r2,@a2
120/ 84 : 06A0 011A bl @dump
121/ 88 : (MACRO) RET memc
121/ 88 : C2E0 F0A6 MOV @MEMC_R11, R11 ; RAMから復元
121/ 8C : 045B B *R11
122/ 8E : ; go
123/ 8E : (MACRO) go FUNC go
123/ 8E : GO:
123/ 8E : C80B F0AC MOV R11, @GO_R11 ; 戻り先をRAMへ保存
124/ 92 : 06A0 00D8 bl @adrin ; adrs = a2
125/ 96 : C0A0 F082 mov @a1,r2
126/ 9A : 0692 bl *r2 ; subroutineとして呼び出し
127/ 9C : D120 FE01 go0 movb @pbin,r4 ; ft245 rxf?
128/ A0 : 0244 1000 andi r4,1000h
129/ A4 : 16FB jne go0
130/ A6 : 0204 0000 li r4,0
131/ AA : D804 FE78 movb r4,@ft245 ; 常に00を返す
132/ AE : (MACRO) RET go
132/ AE : C2E0 F0AC MOV @GO_R11, R11 ; RAMから復元
132/ B2 : 045B B *R11
133/ B4 :
134/ B4 : (MACRO) id FUNC id
134/ B4 : ID:
134/ B4 : C80B F0AA MOV R11, @ID_R11 ; 戻り先をRAMへ保存
135/ B8 : 0202 0178 li r2,tgt_id
136/ BC : 0206 001E li r6,30 ; 30文字固定
137/ C0 : D120 FE01 id0 movb @pbin,r4
138/ C4 : 0244 1000 andi r4,1000h
139/ C8 : 16FB jne id0
140/ CA : D832 FE78 movb *r2+,@ft245
141/ CE : 0606 dec r6
142/ D0 : 16F7 jne id0
143/ D2 : (MACRO) RET id
143/ D2 : C2E0 F0AA MOV @ID_R11, R11 ; RAMから復元
143/ D6 : 045B B *R11
144/ D8 :
145/ D8 : (MACRO) adrin: FUNC adrin
145/ D8 : ADRIN:
145/ D8 : C80B F0AE MOV R11, @ADRIN_R11 ; 戻り先をRAMへ保存
146/ DC : 06A0 00FE bl @pbin0 ; 上位2バイトは読み飛ばす
147/ E0 : 06A0 00FE bl @pbin0
148/ E4 : 06A0 00FE bl @pbin0 ; 戻り値はr3に
149/ E8 : D803 F082 movb r3,@a1
150/ EC : 06A0 00FE bl @pbin0
151/ F0 : D803 F083 movb r3,@a1+1
152/ F4 : C0A0 F082 mov @a1,r2 ; 戻り値 = r2
153/ F8 : (MACRO) RET adrin
153/ F8 : C2E0 F0AE MOV @ADRIN_R11, R11 ; RAMから復元
153/ FC : 045B B *R11
154/ FE :
155/ FE : (MACRO) pbin0 FUNC pbin0
155/ FE : PBIN0:
155/ FE : C80B F0A2 MOV R11, @PBIN0_R11 ; 戻り先をRAMへ保存
156/ 102 : D120 FE01 pbin1 movb @pbin,r4
157/ 106 : 0244 2000 andi r4,2000h
158/ 10A : 16FB jne pbin1
AS V1.42 Beta [Bld 270] - Source File eb9995_t3.asm - Page 4 - 2026年04月10日 13時24分17秒
159/ 10C : D0E0 FE78 movb @ft245,r3 ; 受信データ -> r3
160/ 110 : 0243 FF00 andi r3,0ff00h
161/ 114 : (MACRO) RET pbin0
161/ 114 : C2E0 F0A2 MOV @PBIN0_R11, R11 ; RAMから復元
161/ 118 : 045B B *R11
162/ 11A :
163/ 11A : (MACRO) dump FUNC dump
163/ 11A : DUMP:
163/ 11A : C80B F0B0 MOV R11, @DUMP_R11 ; 戻り先をRAMへ保存
164/ 11E : 0206 0100 li r6,256
165/ 122 : D120 FE01 dump0 movb @pbin,r4
166/ 126 : 0244 1000 andi r4,1000h
167/ 12A : 16FB jne dump0
168/ 12C : D832 FE78 movb *r2+,@ft245
169/ 130 : 0606 dec r6
170/ 132 : 16F7 jne dump0
171/ 134 : (MACRO) RET dump
171/ 134 : C2E0 F0B0 MOV @DUMP_R11, R11 ; RAMから復元
171/ 138 : 045B B *R11
172/ 13A :
173/ 13A : (MACRO) pb7off FUNC pb7off
173/ 13A : PB7OFF:
173/ 13A : C80B F0A0 MOV R11, @PB7OFF_R11 ; 戻り先をRAMへ保存
174/ 13E : 0204 8080 li r4,8080h ; pb7 led off
175/ 142 : D804 FE05 movb r4,@pb7
176/ 146 : (MACRO) RET pb7off
176/ 146 : C2E0 F0A0 MOV @PB7OFF_R11, R11 ; RAMから復元
176/ 14A : 045B B *R11
177/ 14C :
178/ 14C : (MACRO) pb7on FUNC pb7on
178/ 14C : PB7ON:
178/ 14C : C80B F09E MOV R11, @PB7ON_R11 ; 戻り先をRAMへ保存
179/ 150 : 0204 0000 li r4,0 ; pb7 led on
180/ 154 : D804 FE05 movb r4,@pb7
181/ 158 : (MACRO) RET pb7on
181/ 158 : C2E0 F09E MOV @PB7ON_R11, R11 ; RAMから復元
181/ 15C : 045B B *R11
182/ 15E :
183/ 15E : (MACRO) dly FUNC dly
183/ 15E : DLY:
183/ 15E : C80B F0A4 MOV R11, @DLY_R11 ; 戻り先をRAMへ保存
184/ 162 : 0205 0005 li r5,dly_cnt
185/ 166 : 0204 0000 dly1 li r4,0
186/ 16A : 0604 dly2 dec r4
187/ 16C : 16FE jne dly2
188/ 16E : 0605 dec r5
189/ 170 : 16FA jne dly1
190/ 172 : (MACRO) RET dly
190/ 172 : C2E0 F0A4 MOV @DLY_R11, R11 ; RAMから復元
190/ 176 : 045B B *R11
191/ 178 :
192/ 178 : ; 123456789012345678901234567890
193/ 178 : 6562 3939 3935 5F76 303A tgt_id byte 'eb9995_v0:20260410E00 '
182 : 3230 3236 3034 3130 4530
18C : 3020 2020 2020 2020 2020
194/ 196 :
195/ 196 :
196/ 196 : end
AS V1.42 Beta [Bld 270] - Source File eb9995_t3.asm - Page 5 - 2026年04月10日 13時24分17秒
Symbol Table (* = unused):
--------------------------*A0 : 0F080 C | A1 : 0F082 C |
A2 : 0F084 C | *A3 : 0F086 C |
*A4 : 0F088 C | *A5 : 0F08A C |
*A6 : 0F08C C | *ACIA : 0FE90 - |
ADRIN : 0D8 C | ADRIN_R11 : 0F0AE C |
*ARCHITECTURE : "x86_64-unknown-linux" - |
*CASESENSITIVE : 0 - | CMD : 10 C |
CMD0 : 40 C | CMD1 : 28 C |
CMD2 : 34 C | *CONSTPI : 3.141592653589793 - |
CSIOP : 0FE00 - | *D0 : 0F08E C |
*D1 : 0F090 C | *D2 : 0F092 C |
*D3 : 0F094 C | *D4 : 0F096 C |
D5 : 0F098 C | *D6 : 0F09A C |
*D7 : 0F09C C |
*DATE : "2026\-027\-071\-07604\-026\-100\-12010\-026\-105\-091" - |
DLY : 15E C | DLY1 : 166 C |
DLY2 : 16A C | DLY_CNT : 5 - |
DLY_R11 : 0F0A4 C | DUMP : 11A C |
DUMP0 : 122 C | DUMP_R11 : 0F0B0 C |
*FALSE : 0 - | FS0 : 0 - |
FT245 : 0FE78 - | GO : 8E C |
GO0 : 9C C | GO_R11 : 0F0AC C |
*HAS64 : 1 - | ID : 0B4 C |
ID0 : 0C0 C | ID_R11 : 0F0AA C |
INIT : 4 C | *INSUPMODE : 0 - |
*LISTON : 1 - | *MACEXP : 7 - |
MEMC : 78 C | MEMC_R11 : 0F0A6 C |
MEMW : 4C C | MEMW0 : 68 C |
MEMW_R11 : 0F0A8 C | *MOMCPU : 9995 - |
*MOMCPUNAME : "TMS9995" - | *NESTMAX : 100 - |
PB7 : 0FE05 - | PB7OFF : 13A C |
PB7OFF_R11 : 0F0A0 C | PB7ON : 14C C |
PB7ON_R11 : 0F09E C | PBIN : 0FE01 - |
PBIN0 : 0FE C | PBIN0_R11 : 0F0A2 C |
PBIN1 : 102 C | *PIA : 0FE80 - |
*RAMBTM : 0FDFF - | *RAMTOP : 0FD00 - |
*RELAXED : 0 - | *ROMBTM : 7FF - |
ROMTOP : 0 - | *RS0 : 0F100 - |
*T1 : 0 - | TGT_ID : 178 C |
*TIME : "13\-026\-103\-12624\-027\-120\-12217\-025\-089\-110" - |
*TRUE : 1 - | *VERSION : 142F - |
WP : 0F000 - |79 symbols
35 unused symbolsAS V1.42 Beta [Bld 270] - Source File eb9995_t3.asm - Page 6 - 2026年04月10日 13時24分17秒
Defined Macros:
---------------FUNC | RET
2 macros
AS V1.42 Beta [Bld 270] - Source File eb9995_t3.asm - Page 7 - 2026年04月10日 13時24分17秒
Code Pages:
----------STANDARD (0 changed characters)
1 code page
0.03 seconds assembly time
198 lines source file
238 lines incl. macro expansions
2 passes
0 errors
0 warnings
TMS9900のプログラムは2007年に一度挫折してるので妙な記述もあるかと思いますが一応。TMS9995はオリジナルのTMS9900がTIのミニコンをシングルチップ化した歴史的経緯がある為かi8080/M6800の様な生粋のマイコンに比べて個人的にはミニコン的なかほり(まあ、当方ミニコンに触った事が無いのですが)がする脳内イメージを未だに持っております。
M6800から入門した者にとってはSPが無いだけでも衝撃でアドレッシング・モードや命令が簡潔だが充実している(まあ、個性もありますが)のは逆に新鮮に写ります(温故知新と称した所以です)。
当方TI99/4にもぴゅう太にも関心がありませんが(パソコン自体に関心無かったので)TMS9900系というアーキテクチャには関心を唆られます(結構、とても)。
その為かMSP430も大好きなんですよねぇ・・・(今は昔)。
8.まとめ
・eb9995_v0 を組立、動作確認を行いました(dba迄)。
・途中、CPU不良、PSD不良x2に遭遇し、オークションというか流通在庫品のリスクについて再考させられました(対策検討を)。
・最近、惹きが強い様なのでお祓いにでも行きましょうか(半分冗談、半分本気:)。

次のトピック:
前のトピック:
*1:address >= ^hF100) & (address <= ^hFDFF) & (!nMEMEN
*2:address >= ^hFE00) & (address <= ^hFE3F) & (!nMEMEN
*3:address >= ^h0000) & (address <= ^h07FF) & (!nMEMEN
*4:address >= ^h0000) & (address <= ^h07FF) & (!nMEMEN
*5:address >= ^hFE78) & (address <= ^hFE7F) & (!nMEMEN & !_rd
*6:address >= ^hFE78) & (address <= ^hFE7F) & (!nMEMEN & !_wr
*7:address >= ^h0800) & (address <= ^hEFFF) & (!nMEMEN
*8:address >= ^hFE80) & (address <= ^hFE8F) & (!nMEMEN
*9:address >= ^hFE90) & (address <= ^hFE9F) & (!nMEMEN