Annotation of nono/vm/vm_x68k.cpp, revision 1.1

1.1     ! root        1: //
        !             2: // nono
        !             3: // Copyright (C) 2020 [email protected]
        !             4: //
        !             5: 
        !             6: #include "vm_x68k.h"
        !             7: #include "human68k.h"
        !             8: #include "renderer.h"
        !             9: #include "rp5c15.h"
        !            10: #include "scheduler.h"
        !            11: #include "x68kkbd.h"
        !            12: #include "xiospace.h"
        !            13: 
        !            14: //
        !            15: // X68030 VM
        !            16: //
        !            17: 
        !            18: // コンストラクタ
        !            19: VM_X68030::VM_X68030()
        !            20: {
        !            21:        // デバイス (順序に注意)
        !            22:        // Scheduler (と BusErrDevice) は親コンストラクタで作成済み。
        !            23:        gMPU.reset(new MPU680x0Device(0xff0000));
        !            24:        gRAM.reset(new RAMDevice());    // required by XIOSpace
        !            25:        xiospace.reset(new XIOSpaceDevice());
        !            26: 
        !            27:        gKeyboard.reset(new X68030Keyboard());
        !            28:        gRenderer.reset(new X68030Renderer());
        !            29: 
        !            30:        // 割り当て
        !            31:        // 今は拡張メモリがないので、今は上位8ビット全領域がミラーになっている。
        !            32:        for (int i = 0; i < countof(::devtable); i++) {
        !            33:                ::devtable[i] = xiospace.get();
        !            34:        }
        !            35: }
        !            36: 
        !            37: // デストラクタ
        !            38: VM_X68030::~VM_X68030()
        !            39: {
        !            40: }
        !            41: 
        !            42: // X68030 の電源ボタンを押します。
        !            43: void
        !            44: VM_X68030::PowerButton()
        !            45: {
        !            46:        // 電源       ボタン
        !            47:        // ON   OFF->ON         電源オフ割り込みをネゲート?
        !            48:        // ON   ON ->OFF        電源オフ割り込みをアサート?
        !            49:        // OFF  OFF->ON         電源オン
        !            50:        // OFF  ON ->OFF        (通常はあり得ないはず)
        !            51: 
        !            52:        // ボタンの状態を更新して..
        !            53:        power_button = !power_button;
        !            54: 
        !            55:        // デバイスに指示
        !            56:        DevicePowerOn();
        !            57: }
        !            58: 
        !            59: 
        !            60: //
        !            61: // RXZ .r .x .z human68k console emulator
        !            62: //
        !            63: 
        !            64: // コンストラクタ
        !            65: VM_RXZ::VM_RXZ()
        !            66: {
        !            67:        // デバイス (順序に注意)
        !            68:        // Scheduler (と BusErrDevice) は親コンストラクタで作成済み。
        !            69:        gMPU.reset(new MPU680x0Device(0));
        !            70:        gRAM.reset(new RAMDevice());    // required by Human68k
        !            71:        gRTC.reset(new RP5C15Device());
        !            72:        human68k.reset(new Human68k());
        !            73: }
        !            74: 
        !            75: // デストラクタ
        !            76: VM_RXZ::~VM_RXZ()
        !            77: {
        !            78: }
        !            79: 
        !            80: void
        !            81: VM_RXZ::PowerButton()
        !            82: {
        !            83:        // RXZ の電源ボタンは電源オンにしか使わない。
        !            84:        //
        !            85:        // 電源       ボタン
        !            86:        // ON   PUSH            (何も起きない)
        !            87:        // OFF  PUSH            電源オン
        !            88: 
        !            89:        // デバイスに指示
        !            90:        DevicePowerOn();
        !            91: }

unix.superglobalmegacorp.com

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