|
|
1.1 root 1: //
2: // nono
3: // Copyright (C) 2020 nono project
4: // Licensed under nono-license.txt
5: //
6:
1.1.1.6 root 7: //
1.1 root 8: // TAS ポート
1.1.1.6 root 9: //
1.1 root 10:
11: #include "tas.h"
12:
13: // コンストラクタ
14: TASDevice::TASDevice()
1.1.1.8 ! root 15: : inherited(OBJ_TAS)
1.1 root 16: {
17: }
18:
19: // デストラクタ
20: TASDevice::~TASDevice()
21: {
22: }
23:
1.1.1.4 root 24: // リセット
25: void
1.1.1.6 root 26: TASDevice::ResetHard(bool poweron)
1.1.1.4 root 27: {
1.1.1.8 ! root 28: // 初期値は 0 らしい (LUNA-88K PROM 1.20 がそう期待している)。
1.1.1.4 root 29: // いつリセットされるかは分からないけど、さすがにリセットされるだろう。
30: tas = 0;
31: }
32:
1.1.1.3 root 33: // XXX: RMW サイクルが発行される前提のレジスタだが
34: // まだ CPU から RMW サイクルを示す信号線が出ていない。
1.1 root 35:
36: uint64
1.1.1.3 root 37: TASDevice::Read(uint32 offset)
1.1 root 38: {
1.1.1.7 root 39: putlog(2, "Read 0x%02x", (uint8)tas);
1.1 root 40: return tas;
41: }
42:
43: uint64
1.1.1.3 root 44: TASDevice::Write(uint32 offset, uint32 data)
1.1 root 45: {
1.1.1.3 root 46: // data は bit7 のみ有効。data の bit7 は
47: // LUNA-I では B 接続なので、各バイトの bit7 に相当、
1.1.1.8 ! root 48: // LUNA-88K では BFFF 接続なので bit31 に相当。
1.1 root 49: // 最上位ビット以外のビットは「不定」。
50: tas = data;
1.1.1.7 root 51: putlog(1, "Write 0x%02x", data);
1.1 root 52: return 0;
53: }
54:
55: uint64
1.1.1.3 root 56: TASDevice::Peek(uint32 offset)
1.1 root 57: {
58: return tas;
59: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.