60 lines
1.5 KiB
C
60 lines
1.5 KiB
C
#define SZADDR EM_PSIZE
|
|
#define SZWORD EM_WSIZE
|
|
#define SZLONG 4
|
|
#define SZREAL 8
|
|
#define SZPROC SZADDR+SZADDR
|
|
|
|
#if SZWORD==2
|
|
#if SZADDR==2
|
|
#define FIRSTIBOFFSET 30 /* offset from .HTOP to main's LB */
|
|
#else
|
|
#define FIRSTIBOFFSET 50
|
|
#endif
|
|
#else
|
|
#define FIRSTIBOFFSET 52
|
|
#endif
|
|
#define FSTAMPOFFSET FIRSTIBOFFSET+SZWORD
|
|
/* the following four definitions are offsets to the file pointers */
|
|
#define FILEOFFSET SZWORD+SZWORD+SZADDR+SZWORD+SZWORD+SZADDR+SZADDR+SZWORD+\
|
|
SZADDR+SZADDR+SZWORD+SZWORD+SZADDR
|
|
#define STINOFFSET FIRSTIBOFFSET+FILEOFFSET
|
|
#define STOUTOFFSET STINOFFSET+SZADDR
|
|
#define STBACKOFFSET STOUTOFFSET+SZADDR
|
|
#define ENTRYOFFSET SZADDR+SZWORD
|
|
|
|
#if SZWORD==2
|
|
#define PUTTVARSPACE 150 /* space, or greater used for locals in PUTT */
|
|
#define GETTVARSPACE 350 /* exactly (!) space used for locals in GETT */
|
|
#define LLC ldc /* for loading bit patterns */
|
|
#else
|
|
#define PUTTVARSPACE 212
|
|
#define GETTVARSPACE 432
|
|
#define LLC loc
|
|
#endif
|
|
#define HTOP 500 /* this must agree with what the compiler produces */
|
|
#define A68STAMP 13476 /* this must agree with version in a68sdec.p */
|
|
#define PASCALSTAMP 0 /* must match what the pascal compiler puts down */
|
|
#define PUTSTAMP -1
|
|
#define GETSTAMP -2
|
|
|
|
/* this will only work if SZADDR = SWORD*2 or if SZADDR = SZWORD */
|
|
|
|
#if SZADDR == SZWORD
|
|
#define LFL lol
|
|
#define SFL stl
|
|
#define LFE loe
|
|
#define SFE ste
|
|
#define LFF lof
|
|
#define SFF stf
|
|
#else
|
|
#define LFL ldl
|
|
#define SFL sdl
|
|
#define LFE lde
|
|
#define SFE sde
|
|
#define LFF ldf
|
|
#define SFF sdf
|
|
#endif
|
|
|
|
mes 2,SZWORD,SZADDR
|
|
|