Annotation of previous/src/dimension/nd_mem.hpp, revision 1.1

1.1     ! root        1: #pragma once
        !             2: 
        !             3: #ifndef __ND_MEM_H__
        !             4: #define __ND_MEM_H__
        !             5: 
        !             6: #include <sysdeps.h>
        !             7: #include "log.h"
        !             8: 
        !             9: #ifdef __cplusplus
        !            10: extern "C" {
        !            11: #endif /* __cplusplus */
        !            12: 
        !            13: /* NeXTdimension board and slot memory */
        !            14: #define ND_BOARD_SIZE    0x10000000
        !            15: #define ND_BOARD_MASK    0x0FFFFFFF
        !            16: #define ND_BOARD_BITS   0xF0000000
        !            17:     
        !            18: #define ND_SLOT_SIZE    0x01000000
        !            19: #define ND_SLOT_MASK    0x00FFFFFF
        !            20: #define ND_SLOT_BITS    0x0F000000
        !            21:     
        !            22: #define ND_NBIC_SPACE   0xFFFFFFE8
        !            23: 
        !            24: #define LOG_ND_MEM      LOG_NONE
        !            25:     
        !            26: typedef uae_u32 (*nd_mem_get_func)(int, uaecptr) REGPARAM;
        !            27: typedef void (*nd_mem_put_func)(int, uaecptr, uae_u32) REGPARAM;
        !            28: 
        !            29: #define nd_bankindex(addr) (((uaecptr)(addr)) >> 16)
        !            30: #define nd_get_mem_bank(addr)    (nd->mem_banks[nd_bankindex(addr)])
        !            31: #define nd68k_get_mem_bank(addr) (mem_banks[nd_bankindex(addr)])
        !            32: #define nd_put_mem_bank(addr, b) (mem_banks[nd_bankindex(addr)] = (b))
        !            33: 
        !            34: #define nd_longget(addr)   (nd_get_mem_bank(addr)->lget(addr))
        !            35: #define nd_wordget(addr)   (nd_get_mem_bank(addr)->wget(addr))
        !            36: #define nd_byteget(addr)   (nd_get_mem_bank(addr)->bget(addr))
        !            37: #define nd_longput(addr,l) (nd_get_mem_bank(addr)->lput(addr, l))
        !            38: #define nd_wordput(addr,w) (nd_get_mem_bank(addr)->wput(addr, w))
        !            39: #define nd_byteput(addr,b) (nd_get_mem_bank(addr)->bput(addr, b))
        !            40: #define nd_cs8get(addr)    (nd_get_mem_bank(addr)->cs8get(addr))
        !            41: 
        !            42: #define nd68k_longget(addr)   (nd68k_get_mem_bank(addr)->lget(addr))
        !            43: #define nd68k_wordget(addr)   (nd68k_get_mem_bank(addr)->wget(addr))
        !            44: #define nd68k_byteget(addr)   (nd68k_get_mem_bank(addr)->bget(addr))
        !            45: #define nd68k_longput(addr,l) (nd68k_get_mem_bank(addr)->lput(addr, l))
        !            46: #define nd68k_wordput(addr,w) (nd68k_get_mem_bank(addr)->wput(addr, w))
        !            47: #define nd68k_byteput(addr,b) (nd68k_get_mem_bank(addr)->bput(addr, b))
        !            48: #define nd68k_cs8get(addr)    (nd68k_get_mem_bank(addr)->cs8geti(addr))
        !            49: 
        !            50: #ifdef __cplusplus
        !            51: }
        !            52: 
        !            53: class ND_Addrbank {
        !            54: protected:
        !            55:     NextDimension* nd;
        !            56: public:
        !            57:     int flags;
        !            58:     
        !            59:     virtual Uint32 lget(Uint32 addr);
        !            60:     virtual Uint32 wget(Uint32 addr);
        !            61:     virtual Uint32 bget(Uint32 addr);
        !            62:     virtual Uint32 cs8get(Uint32 addr);
        !            63:     
        !            64:     virtual void lput(Uint32 addr, Uint32 val);
        !            65:     virtual void wput(Uint32 addr, Uint32 val);
        !            66:     virtual void bput(Uint32 addr, Uint32 val);
        !            67:     
        !            68:     ND_Addrbank(NextDimension* nd);
        !            69: };
        !            70: 
        !            71: #endif /* __cplusplus */
        !            72: 
        !            73: #endif /* __ND_MEM_H__ */

unix.superglobalmegacorp.com

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