/*
* General assembler address type
*/
-typedef unsigned int addr_t;
+typedef unsigned int Addr_T;
/*
* The structures of head, area, areax, and sym are created
{
struct area *a_ap; /* Area link */
struct areax *a_axp; /* Area extension link */
- addr_t a_addr; /* Beginning address of area */
- addr_t a_size; /* Total size of the area */
+ Addr_T a_addr; /* Beginning address of area */
+ Addr_T a_size; /* Total size of the area */
char a_type; /* Area subtype */
char a_flag; /* Flag byte */
char a_id[NCPS]; /* Name */
struct areax *a_axp; /* Area extension link */
struct area *a_bap; /* Base area link */
struct head *a_bhp; /* Base header link */
- addr_t a_addr; /* Beginning address of section */
- addr_t a_size; /* Size of the area in section */
+ Addr_T a_addr; /* Beginning address of section */
+ Addr_T a_size; /* Size of the area in section */
};
/*
struct areax *s_axp; /* Symbol area link */
char s_type; /* Symbol subtype */
char s_flag; /* Flag byte */
- addr_t s_addr; /* Address */
+ Addr_T s_addr; /* Address */
char s_id[NCPS]; /* Name */
};
{
struct area *s_area; /* Paged Area link */
struct areax *s_areax; /* Paged Area Extension Link */
- addr_t s_addr; /* Page address offset */
+ Addr_T s_addr; /* Page address offset */
};
/*
{
int aindex; /* Linking area */
int mode; /* Relocation mode */
- addr_t rtbase; /* Base address in section */
+ Addr_T rtbase; /* Base address in section */
int rindex; /* Area/Symbol reloaction index */
- addr_t rval; /* Area/Symbol offset value */
+ Addr_T rval; /* Area/Symbol offset value */
};
/*
extern int rtcnt; /* count of elements in the
* rtval[] and rtflg[] arrays
*/
-extern addr_t rtval[]; /* data associated with relocation
+extern Addr_T rtval[]; /* data associated with relocation
*/
extern int rtflg[]; /* indicates if rtval[] value is
* to be sent to the output file.
extern int symeq();
extern VOID syminit();
extern VOID symmod();
-extern addr_t symval();
+extern Addr_T symval();
/* lkeval.c */
extern int digit();
-extern addr_t eval();
-extern addr_t expr();
+extern Addr_T eval();
+extern Addr_T expr();
extern int oprio();
-extern addr_t term();
+extern Addr_T term();
/* lklist.c */
extern int dgt();
extern VOID slew();
/* lkrloc.c */
-extern addr_t adb_b();
-extern addr_t adb_hi();
-extern addr_t adb_lo();
-extern addr_t adw_w();
-extern addr_t adw_hi();
-extern addr_t adw_lo();
-extern addr_t evword();
+extern Addr_T adb_b();
+extern Addr_T adb_hi();
+extern Addr_T adb_lo();
+extern Addr_T adw_w();
+extern Addr_T adw_hi();
+extern Addr_T adw_lo();
+extern Addr_T evword();
extern VOID rele();
extern VOID reloc();
extern VOID relt();
* int lkerr error flag
*
* functions called:
- * addr_t eval() lkeval.c
+ * Addr_T eval() lkeval.c
* VOID exit() c_library
* int fprintf() c_library
* VOID getid() lklex.c
* define the starting address and length of each area.
*
* local variables:
- * addr_t rloc ;current relocation address
+ * Addr_T rloc ;current relocation address
* char temp[] ;temporary string
* struct symbol *sp ;symbol structure
*
* function.
*
* local variables:
- * addr_t size size of area
- * addr_t addr address of area
+ * Addr_T size size of area
+ * Addr_T addr address of area
* areax * taxp pointer to an areax structure
*
* global variables:
lnksect(tap)
register struct area *tap;
{
- register addr_t size, addr;
+ register Addr_T size, addr;
register struct areax *taxp;
size = 0;
int rtcnt; /* count of elements in the
* rtval[] and rtflg[] arrays
*/
-addr_t rtval[NTXT]; /* data associated with relocation
+Addr_T rtval[NTXT]; /* data associated with relocation
*/
int rtflg[NTXT]; /* indicates if rtval[] value is
* to be sent to the output file.
* {
* struct area *a_ap; Area link
* struct areax *a_axp; Area extension link
- * addr_t a_addr; Beginning address of area
- * addr_t a_size; Total size of the area
+ * Addr_T a_addr; Beginning address of area
+ * Addr_T a_size; Total size of the area
* char a_type; Area subtype
* char a_flag; Flag byte
* char a_id[NCPS]; Name
* struct areax *a_axp; Area extension link
* struct area *a_bap; Base area link
* struct head *a_bhp; Base header link
- * addr_t a_addr; Beginning address of section
- * addr_t a_size; Size of the area in section
+ * Addr_T a_addr; Beginning address of section
+ * Addr_T a_size; Size of the area in section
* };
*/
struct areax *axp; /* Pointer to the current
* struct areax *s_axp; Symbol area link
* char s_type; Symbol subtype
* char s_flag; Flag byte
- * addr_t s_addr; Address
+ * Addr_T s_addr; Address
* char s_id[NCPS]; Name
* };
*/
* {
* struct area *s_area; Paged Area link
* struct areax *s_areax; Paged Area Extension Link
- * addr_t s_addr; Page address offset
+ * Addr_T s_addr; Page address offset
* };
*/
struct sdp sdp; /* Base Page Structure */
* {
* int aindex; Linking area
* int mode; Relocation mode
- * addr_t rtbase; Base address in section
+ * Addr_T rtbase; Base address in section
* int rindex; Area/Symbol reloaction index
- * addr_t rval; Area/Symbol offset value
+ * Addr_T rval; Area/Symbol offset value
* };
*/
struct rerr rerr; /* Structure containing the
*
* lkeval.c contains the following functions:
* int digit()
- * addr_t eval()
- * addr_t expr()
+ * Addr_T eval()
+ * Addr_T expr()
* int oprio()
- * addr_t term()
+ * Addr_T term()
*
* lkeval.c contains no local/static variables
*/
-/*)Function addr_t eval()
+/*)Function Addr_T eval()
*
* The function eval() evaluates a character string to a
* numerical value.
* local variables:
* int c character from input string
* int v value of character in current radix
- * addr_t n evaluation value
+ * Addr_T n evaluation value
*
* global variables:
* int radix current number conversion radix
* numerical value.
*/
-addr_t
+Addr_T
eval()
{
register int c, v;
- register addr_t n;
+ register Addr_T n;
c = getnb();
n = 0;
return(n);
}
-/*)Function addr_t expr(n)
+/*)Function Addr_T expr(n)
*
* int n a firewall priority; all top
* level calls (from the user)
* local variables:
* int c current input text character
* int p current operator priority
- * addr_t v value returned by term()
- * addr_t ve value returned by a
+ * Addr_T v value returned by term()
+ * Addr_T ve value returned by a
* recursive call to expr()
*
* global variables:
* text string.
*/
-addr_t
+Addr_T
expr (n)
{
register int c, p;
- register addr_t v, ve;
+ register Addr_T v, ve;
v = term();
while (ctype[c = getnb()] & BINOP) {
return(v);
}
-/*)Function addr_t term()
+/*)Function Addr_T term()
*
* The function term() evaluates a single constant
* or symbol value prefaced by any unary operator
* int n value of digit in current radix
* int r current evaluation radix
* sym * sp pointer to a sym structure
- * addr_t v evaluation value
+ * Addr_T v evaluation value
*
* global variables:
* char ctype[] array of character types, one per
* int getmap() lklex.c
* int getnb() lklex.c
* sym * lkpsym() lksym.c
- * addr_t symval() lksym.c
+ * Addr_T symval() lksym.c
* VOID unget() lklex.c
*
* side effects:
* An arithmetic term is evaluated by scanning input text.
*/
-addr_t
+Addr_T
term()
{
register int c, r, n;
- register addr_t v;
+ register Addr_T v;
struct sym *sp;
char id[NCPS];
* head structure
*
* functions called:
- * addr_t expr() lkeval.c
+ * Addr_T expr() lkeval.c
* VOID * new() lksym.c
* VOID lkparea() lkarea.c
*
* in the standard Intel Hex format.
*
* local variables:
- * addr_t chksum byte checksum
+ * Addr_T chksum byte checksum
*
* global variables:
* int hilo byte order
* FILE * ofp output file handle
* int rtcnt count of data words
* int rtflg[] output the data flag
- * addr_t rtval[] relocated data
+ * Addr_T rtval[] relocated data
*
* functions called:
* int fprintf() c_library
VOID
ihx(i)
{
- register addr_t chksum;
+ register Addr_T chksum;
if (i) {
if (hilo == 0) {
* int j bubble sort update status
* char * ptr pointer to an id string
* int nmsym number of symbols in area
- * addr_t a0 temporary
- * addr_t ai temporary
- * addr_t aj temporary
+ * Addr_T a0 temporary
+ * Addr_T ai temporary
+ * Addr_T aj temporary
* sym * sp pointer to a symbol structure
* sym ** p pointer to an array of
* pointers to symbol structures
register c, i, j;
register char *ptr;
int nmsym;
- addr_t a0, ai, aj;
+ Addr_T a0, ai, aj;
struct sym *sp;
struct sym **p;
register struct areax *oxp;
register int i, j;
int nmsym;
- addr_t a0, ai, aj;
+ Addr_T a0, ai, aj;
struct sym *sp;
struct sym **p;
* int j bubble sort update status
* char * ptr pointer to an id string
* int nmsym number of symbols in area
- * addr_t a0 temporary
- * addr_t ai temporary
- * addr_t aj temporary
+ * Addr_T a0 temporary
+ * Addr_T ai temporary
+ * Addr_T aj temporary
* sym * sp pointer to a symbol structure
* sym ** p pointer to an array of
* pointers to symbol structures
register c, i, j;
register char *ptr;
int nmsym;
- addr_t a0, ai, aj;
+ Addr_T a0, ai, aj;
struct sym *sp;
struct sym **p;
register struct areax *oxp;
register int i, j;
int nmsym;
- addr_t a0, ai;
+ Addr_T a0, ai;
struct sym *sp;
struct sym **p;
* output file.
*
* local variables:
- * addr_t pc current program counter address
+ * Addr_T pc current program counter address
*
* global variables:
* int hilo byte order
* output RST file
* int rtcnt count of data words
* int rtflg[] output the data flag
- * addr_t rtval[] relocated data
+ * Addr_T rtval[] relocated data
* FILE *tfp The file handle to the current
* LST file being scanned
*
lkulist(i)
int i;
{
- addr_t pc;
+ Addr_T pc;
/*
* Exit if listing file is not open
VOID
lkalist(pc)
-addr_t pc;
+Addr_T pc;
{
char str[8];
int i;
VOID
lkglist(pc,v)
-addr_t pc;
+Addr_T pc;
int v;
{
char str[8];
* int lkerr error flag
*
* functions called:
- * addr_t expr() lkeval.c
+ * Addr_T expr() lkeval.c
* int fprintf() c_library
* VOID getid() lklex.c
* char getnb() lklex.c
* int lkerr error flag
*
* functions called:
- * addr_t expr() lkeval.c
+ * Addr_T expr() lkeval.c
* int fprintf() c_library
* VOID getid() lklex.c
* char getnb() lklex.c
* perform the relocation calculations.
*
* lkrloc.c contains the following functions:
- * addr_t adb_b()
- * addr_t adb_lo()
- * addr_t adb_hi()
- * addr_t adw_w()
- * addr_t adw_lo()
- * addr_t adw_hi()
+ * Addr_T adb_b()
+ * Addr_T adb_lo()
+ * Addr_T adb_hi()
+ * Addr_T adw_w()
+ * Addr_T adw_lo()
+ * Addr_T adw_hi()
* VOID erpdmp()
* VOID errdmp()
- * addr_t evword()
+ * Addr_T evword()
* VOID prntval()
* VOID rele()
* VOID relerr()
* int lkerr error flag
* int mode relocation mode
* adrr_t paga paging base area address
- * addr_t pags paging symbol address
- * addr_t pc relocated base address
- * addr_t r PCR relocation value
- * addr_t reli relocation initial value
- * addr_t relv relocation final value
+ * Addr_T pags paging symbol address
+ * Addr_T pc relocated base address
+ * Addr_T r PCR relocation value
+ * Addr_T reli relocation initial value
+ * Addr_T relv relocation final value
* int rindex symbol / area index
- * addr_t rtbase base code address
- * addr_t rtofst rtval[] index offset
+ * Addr_T rtbase base code address
+ * Addr_T rtofst rtval[] index offset
* int rtp index into T data
* sym **s pointer to array of symbol pointers
*
* FILE *stderr standard error device
*
* called functions:
- * addr_t adb_b() lkrloc.c
- * addr_t adb_lo() lkrloc.c
- * addr_t adb_hi() lkrloc.c
- * addr_t adw_w() lkrloc.c
- * addr_t evword() lkrloc.c
+ * Addr_T adb_b() lkrloc.c
+ * Addr_T adb_lo() lkrloc.c
+ * Addr_T adb_hi() lkrloc.c
+ * Addr_T adw_w() lkrloc.c
+ * Addr_T evword() lkrloc.c
* int eval() lkeval.c
* int fprintf() c_library
* VOID ihx() lkihx.c
relr()
{
register int mode;
- register addr_t reli, relv;
+ register Addr_T reli, relv;
int aindex, rindex, rtp, error;
- addr_t r, rtbase, rtofst, paga, pags, pc;
+ Addr_T r, rtbase, rtofst, paga, pags, pc;
struct areax **a;
struct sym **s;
*/
if (mode & R_PCR && mode & R_BYTE) {
r = relv & ~0x7F;
- if (r != (addr_t) ~0x7F && r != 0)
+ if (r != (Addr_T) ~0x7F && r != 0)
error = 2;
}
* areax **a pointer to array of area pointers
* int aindex area index
* int mode relocation mode
- * addr_t relv relocation value
+ * Addr_T relv relocation value
* int rindex symbol / area index
* int rtp index into T data
* sym **s pointer to array of symbol pointers
* FILE *stderr standard error device
*
* called functions:
- * addr_t adw_w() lkrloc.c
- * addr_t evword() lkrloc.c
+ * Addr_T adw_w() lkrloc.c
+ * Addr_T evword() lkrloc.c
* int eval() lkeval.c
* int fprintf() c_library
* int more() lklex.c
{
register int aindex, rindex;
int mode, rtp;
- addr_t relv;
+ Addr_T relv;
struct areax **a;
struct sym **s;
}
}
-/*)Function addr_t evword()
+/*)Function Addr_T evword()
*
* The function evword() combines two byte values
* into a single word value.
*
* local variable:
- * addr_t v temporary evaluation variable
+ * Addr_T v temporary evaluation variable
*
* global variables:
* hilo byte ordering parameter
*
*/
-addr_t
+Addr_T
evword()
{
- register addr_t v;
+ register Addr_T v;
if (hilo) {
v = (eval() << 8);
return(v);
}
-/*)Function addr_t adb_b(v, i)
+/*)Function Addr_T adb_b(v, i)
*
* int v value to add to byte
* int i rtval[] index
*
*/
-addr_t
+Addr_T
adb_b(v, i)
-register addr_t v;
+register Addr_T v;
register int i;
{
return(rtval[i] += v);
}
-/*)Function addr_t adb_lo(v, i)
+/*)Function Addr_T adb_lo(v, i)
*
* int v value to add to byte
* int i rtval[] index
* The MSB rtflg[] is cleared.
*
* local variable:
- * addr_t j temporary evaluation variable
+ * Addr_T j temporary evaluation variable
*
* global variables:
* hilo byte ordering parameter
*
*/
-addr_t
+Addr_T
adb_lo(v, i)
-addr_t v;
+Addr_T v;
int i;
{
- register addr_t j;
+ register Addr_T j;
j = adw_w(v, i);
/*
return (j);
}
-/*)Function addr_t adb_hi(v, i)
+/*)Function Addr_T adb_hi(v, i)
*
* int v value to add to byte
* int i rtval[] index
* The LSB rtflg[] is cleared.
*
* local variable:
- * addr_t j temporary evaluation variable
+ * Addr_T j temporary evaluation variable
*
* global variables:
* hilo byte ordering parameter
*
*/
-addr_t
+Addr_T
adb_hi(v, i)
-addr_t v;
+Addr_T v;
int i;
{
- register addr_t j;
+ register Addr_T j;
j = adw_w(v, i);
/*
return (j);
}
-/*)Function addr_t adw_w(v, i)
+/*)Function Addr_T adw_w(v, i)
*
* int v value to add to word
* int i rtval[] index
* The new value of rtval[i] / rtval[i+1] is returned.
*
* local variable:
- * addr_t j temporary evaluation variable
+ * Addr_T j temporary evaluation variable
*
* global variables:
* hilo byte ordering parameter
*
*/
-addr_t
+Addr_T
adw_w(v, i)
-register addr_t v;
+register Addr_T v;
register int i;
{
- register addr_t j;
+ register Addr_T j;
if (hilo) {
j = v + (rtval[i] << 8) + (rtval[i+1] & 0xff);
return(j);
}
-/*)Function addr_t adw_lo(v, i)
+/*)Function Addr_T adw_lo(v, i)
*
* int v value to add to byte
* int i rtval[] index
* The MSB rtval[] is zeroed.
*
* local variable:
- * addr_t j temporary evaluation variable
+ * Addr_T j temporary evaluation variable
*
* global variables:
* hilo byte ordering parameter
*
*/
-addr_t
+Addr_T
adw_lo(v, i)
-addr_t v;
+Addr_T v;
int i;
{
- register addr_t j;
+ register Addr_T j;
j = adw_w(v, i);
/*
return (j);
}
-/*)Function addr_t adw_hi(v, i)
+/*)Function Addr_T adw_hi(v, i)
*
* int v value to add to byte
* int i rtval[] index
* The MSB rtval[] is zeroed.
*
* local variable:
- * addr_t j temporary evaluation variable
+ * Addr_T j temporary evaluation variable
*
* global variables:
* hilo byte ordering parameter
*
*/
-addr_t
+Addr_T
adw_hi(v, i)
-addr_t v;
+Addr_T v;
int i;
{
- register addr_t j;
+ register Addr_T j;
j = adw_w(v, i);
/*
/*)Function VOID prntval(fptr, v)
*
* FILE *fptr output file handle
- * addr_t v value to output
+ * Addr_T v value to output
*
* The function prntval() outputs the value v, in the
* currently selected radix, to the device specified
VOID
prntval(fptr, v)
FILE *fptr;
-addr_t v;
+Addr_T v;
{
if (xflag == 0) {
fprintf(fptr, "%04X\n", v);
* in the standard Motorola S19 format.
*
* local variables:
- * addr_t chksum byte checksum
+ * Addr_T chksum byte checksum
*
* global variables:
* int hilo byte order
* FILE * ofp output file handle
* int rtcnt count of data words
* int rtflg[] output the data flag
- * addr_t rtval[] relocated data
+ * Addr_T rtval[] relocated data
*
* functions called:
* int fprintf() c_library
VOID
s19(i)
{
- register addr_t chksum;
+ register Addr_T chksum;
if (i) {
if (hilo == 0) {
* int symeq()
* VOID syminit()
* VOID symmod()
- * addr_t symval()
+ * Addr_T symval()
*
* lksym.c contains no local/static variables.
*/
* int lkerr error flag
*
* functions called:
- * addr_t eval() lkeval.c
+ * Addr_T eval() lkeval.c
* VOID exit() c_library
* int fprintf() c_library
* char get() lklex.c
return (sp);
}
-/*)Function addr_t symval(tsp)
+/*)Function Addr_T symval(tsp)
*
* sym * tsp pointer to a symbol structure
*
* value to the areax base address.
*
* local variables:
- * addr_t val relocated address value
+ * Addr_T val relocated address value
*
* global variables:
* none
* none
*/
-addr_t
+Addr_T
symval(tsp)
register struct sym *tsp;
{
- register addr_t val;
+ register Addr_T val;
val = tsp->s_addr;
if (tsp->s_axp) {