Annotation of previous/src/dimension/nd_mem.hpp, revision 1.1.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.