Annotation of nono/vm/kbc.cpp, revision 1.1.1.3

1.1       root        1: //
                      2: // nono
                      3: // Copyright (C) 2022 nono project
                      4: // Licensed under nono-license.txt
                      5: //
                      6: 
                      7: //
                      8: // NWS-1750 のキーボードコントローラ(予定地)
                      9: //
                     10: 
                     11: // デバイスが存在しないことをバスエラーで検出できないので、
                     12: // とりあえず用意して生返事だけさせておく。
                     13: 
                     14: #include "kbc.h"
                     15: 
                     16: // コンストラクタ
                     17: KBCDevice::KBCDevice()
                     18:        : inherited(OBJ_KBC)
                     19: {
                     20: }
                     21: 
                     22: // デストラクタ
                     23: KBCDevice::~KBCDevice()
                     24: {
                     25: }
                     26: 
1.1.1.2   root       27: busdata
1.1.1.3 ! root       28: KBCDevice::ReadPort(uint32 offset)
1.1       root       29: {
1.1.1.2   root       30:        busdata data;
                     31: 
1.1.1.3 ! root       32:        switch (offset) {
1.1       root       33:         case KEYDATA:
1.1.1.2   root       34:                data = 0;
                     35:                break;
1.1       root       36: 
                     37:         case KEYSTAT:
1.1.1.2   root       38:                data = 0xc0;    // KBRDY, MSRDY
                     39:                break;
1.1       root       40: 
                     41:         case KEYINTE:
1.1.1.2   root       42:                data = 0;               // ?
                     43:                break;
1.1       root       44: 
                     45:         case KEYRESET:
1.1.1.2   root       46:                data = 0xff;    // ?
                     47:                break;
1.1       root       48: 
                     49:         case KEYBUZZ:
1.1.1.2   root       50:                data = 0xff;    // ?
                     51:                break;
1.1       root       52: 
                     53:         case MSDATA:
1.1.1.2   root       54:                data = 0;
                     55:                break;
1.1       root       56: 
                     57:         case MSINTE:           // ?
1.1.1.2   root       58:                data = 0;
                     59:                break;
1.1       root       60: 
                     61:         case MSRESET:          // ?
1.1.1.2   root       62:                data = 0xff;
                     63:                break;
1.1       root       64: 
                     65:         default:
1.1.1.2   root       66:                data = 0xff;
                     67:                break;
1.1       root       68:        }
1.1.1.2   root       69: 
1.1.1.3 ! root       70:        data |= BusData::Size1;
1.1.1.2   root       71:        return data;
1.1       root       72: }
                     73: 
1.1.1.2   root       74: busdata
1.1.1.3 ! root       75: KBCDevice::WritePort(uint32 offset, uint32 data)
1.1       root       76: {
                     77:        // とりあえず全無視
1.1.1.3 ! root       78:        return BusData::Size1;
1.1       root       79: }
                     80: 
1.1.1.2   root       81: busdata
1.1.1.3 ! root       82: KBCDevice::PeekPort(uint32 offset)
1.1       root       83: {
                     84:        // XXX 未実装
                     85:        return 0xff;
                     86: }
1.1.1.3 ! root       87: 
        !            88: bool
        !            89: KBCDevice::PokePort(uint32 offset, uint32 data)
        !            90: {
        !            91:        return false;
        !            92: }

unix.superglobalmegacorp.com

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