tac0S
Template Affectional Command Operating System
int.h
1 
2 /*
3  Copyright (c) 1992-1993 The Regents of the University of California.
4  All rights reserved. See copyright.h for copyright notice and limitation
5  of liability and disclaimer of warranty provisions.
6  */
7 
8 #include "copyright.h"
9 
10 
11 #define MEMSIZE (1<<24)
12 #define memoffset 0x10000000
13 
14 /* centralized memory-access primitives */
15 #define amark(x) x
16 #define imark(x) x
17 
18 #define ifetch(addr) (*(int *)(int) (&(mem-memoffset)[imark(addr)]))
19 #define fetch(addr) (*(int *)(int) (&(mem-memoffset)[amark(addr)]))
20 #define sfetch(addr) (*(short *)(int) (&(mem-memoffset)[amark(addr)]))
21 #define usfetch(addr) (*(unsigned short *)(int)(&(mem-memoffset)[amark(addr)]))
22 #define cfetch(addr) (*(char *)(int) (&(mem-memoffset)[amark(addr)]))
23 #define ucfetch(addr) (*(unsigned char *)(int)(&(mem-memoffset)[amark(addr)]))
24 
25 #define store(addr, i) \
26  ((*(int *)(int) (&(mem-memoffset)[amark(addr)]) = (i)))
27 #define sstore(addr, i) \
28  ((*(short *)(int) (&(mem-memoffset)[amark(addr)]) = (i)))
29 #define cstore(addr, i) \
30  (((mem-memoffset)[amark(addr)] = (i)))
31