Annotation of nono/vm/vm_luna.cpp, revision 1.1.1.13

1.1       root        1: //
                      2: // nono
1.1.1.2   root        3: // Copyright (C) 2020 nono project
                      4: // Licensed under nono-license.txt
1.1       root        5: //
                      6: 
1.1.1.10  root        7: //
                      8: // VM (LUNA)
                      9: //
                     10: 
1.1       root       11: #include "vm_luna.h"
1.1.1.2   root       12: #include "config.h"
1.1.1.12  root       13: #include "dipsw.h"
1.1       root       14: #include "lcd.h"
                     15: #include "lunakbd.h"
                     16: #include "mainapp.h"
1.1.1.13! root       17: #include "mainbus_luna.h"
1.1.1.12  root       18: #include "mpu64180.h"
1.1.1.2   root       19: #include "mpu680x0.h"
                     20: #include "mpu88xx0.h"
1.1.1.12  root       21: #include "msxdos.h"
1.1.1.10  root       22: #include "nmi.h"
                     23: #include "power.h"
1.1       root       24: #include "renderer.h"
1.1.1.12  root       25: #include "xpbus.h"
1.1       root       26: 
1.1.1.5   root       27: //
                     28: // LUNA 共通部
                     29: //
                     30: 
                     31: // コンストラクタ
1.1.1.13! root       32: VM_LUNA::VM_LUNA(const char *name_)
        !            33:        : inherited(name_)
1.1.1.5   root       34: {
1.1.1.10  root       35:        // RTC epoch は NetBSD/luna68k, OpenBSD/luna88k をデフォルトにしておく。
                     36:        gConfig->SetDefault("rtc-epoch-year", 1970);
                     37: 
1.1.1.5   root       38:        // LUNA 共通だしここで作成しておく
1.1.1.13! root       39:        NEWDV(Power, new LunaPowerDevice());
1.1.1.12  root       40:        NEWDV(Dipsw, new LunaDipswDevice());
1.1.1.13! root       41:        NEWDV(Keyboard, new LunaKeyboard());
        !            42:        NEWDV(LCD, new LCDDevice());
1.1.1.12  root       43:        NEWDV(MPU64180, new MPU64180Device());
1.1.1.13! root       44:        NEWDV(NMI, new NMIDevice());
        !            45:        NEWDV(Renderer, new LunaRenderer());
1.1.1.12  root       46:        NEWDV(XPbus, new XPbusDevice());
1.1.1.5   root       47: }
                     48: 
                     49: // デストラクタ
                     50: VM_LUNA::~VM_LUNA()
                     51: {
                     52: }
                     53: 
                     54: 
                     55: //
                     56: // LUNA-I
                     57: //
                     58: 
1.1       root       59: // コンストラクタ
1.1.1.5   root       60: VM_LUNA1::VM_LUNA1()
1.1.1.13! root       61:        : inherited("LUNA-I")
1.1       root       62: {
1.1.1.2   root       63:        // 機種固有パラメータ
                     64:        // MPU クロックの初期値は機種ごとに異なる。単位は MHz
                     65:        gConfig->SetDefault("mpu-clock", 20);
                     66:        // RAM 初期値は MAX にしておく
                     67:        gConfig->SetDefault("ram-size", 16);
                     68:        // SPC の入力クロック (おそらく 6.144MHz = 163ns が入ってる)
                     69:        gConfig->Add("!spc-tCLF", 163);
                     70:        // LUNA-I のクロック割り込みは 60Hz
1.1.1.13! root       71:        gConfig->Add("!sysclk-freq", 60);
1.1.1.2   root       72: 
1.1.1.13! root       73:        // デバイス
1.1.1.10  root       74:        NEWDV(MPU, new MPU680x0Device());
1.1.1.13! root       75:        NEWDV(Mainbus, new Luna1Mainbus());
1.1       root       76: }
                     77: 
                     78: // デストラクタ
1.1.1.5   root       79: VM_LUNA1::~VM_LUNA1()
1.1       root       80: {
                     81: }
                     82: 
1.1.1.10  root       83: 
1.1       root       84: //
1.1.1.12  root       85: // LUNA-88K
1.1       root       86: //
                     87: 
                     88: // コンストラクタ
                     89: VM_LUNA88K::VM_LUNA88K()
1.1.1.13! root       90:        : inherited("LUNA-88K")
1.1       root       91: {
1.1.1.2   root       92:        // 機種固有パラメータ
                     93:        // MPU クロックの初期値は機種ごとに異なる。単位は MHz
                     94:        gConfig->SetDefault("mpu-clock", 25);
                     95:        // RAM 初期値は MAX にしておく
1.1.1.3   root       96:        gConfig->SetDefault("ram-size", 64);
1.1.1.2   root       97:        // SPC の入力クロック (XXX LUNA-I と同じ?)
                     98:        gConfig->Add("!spc-tCLF", 163);
1.1.1.12  root       99:        // LUNA-II, LUNA-88K, LUNA-88K2 のクロック割り込みは 100Hz らしい
1.1.1.13! root      100:        gConfig->Add("!sysclk-freq", 100);
1.1.1.2   root      101: 
1.1       root      102:        // デバイス (順序に注意)
1.1.1.10  root      103:        NEWDV(MPU, new MPU88xx0Device());
1.1.1.13! root      104:        NEWDV(Mainbus, new Luna88kMainbus());
1.1       root      105: }
                    106: 
                    107: // デストラクタ
                    108: VM_LUNA88K::~VM_LUNA88K()
                    109: {
                    110: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.