home *** CD-ROM | disk | FTP | other *** search
- /*
- * Z80 - Assembler
- * Copyright (C) 1987-1992 by Udo Munk
- *
- * History:
- * 17-SEP-1987 Development under Digital Research CP/M 2.2
- * 28-JUN-1988 Switched to Unix System V.3
- */
-
- /*
- * Dieses Modul enthaelt alle globalen Variablen des
- * Assemblers, ausser der CPU spezifischen Tabellen.
- */
-
- #include <stdio.h>
- #include "z80a.h"
-
- char *infiles[MAXFN], /* Filenamen aller Quellen */
- objfn[LENFN + 1], /* Filename des Object Code */
- lstfn[LENFN + 1], /* Filename des Listing */
- *srcfn, /* Filename der gerade bearbeiteten Quelle */
- line[MAXLINE], /* Puffer fuer eine Zeile Quelle */
- tmp[MAXLINE], /* termoraerer Puffer */
- label[SYMSIZE+1], /* Puffer fuer extrahiertes Label */
- opcode[MAXLINE], /* Puffer fuer extrahierten Op-Code */
- operand[MAXLINE], /* Puffer fuer extrahierten Operanden */
- ops[OPCARRAY], /* Puffer fuer generierten Op-Code */
- title[MAXLINE]; /* Puffer fuer Titel der Quelle */
-
- int list_flag, /* Flag fuer Option -l */
- sym_flag, /* Flag fuer Option -s */
- ver_flag, /* Flag fuer Option -v */
- pc, /* Programm-Counter */
- pass, /* Momentaner Durchlauf */
- iflevel, /* aktuelle Verschachtelungstiefe der IF's */
- gencode = 1, /* Flag fuer conditional Codegenerierung */
- errors, /* Zaehler fuer errors */
- errnum, /* Fehler Nummer in Pass 2 */
- sd_flag, /* List-Flag fuer PSEUDO Op-Codes */
- /* = 0: Adresse aus <val>, Daten aus <ops> */
- /* = 1: Adresse aus <sd_val>, Daten aus <ops> */
- /* = 2: keine Adresse, Daten aus <ops> */
- /* = 3: Adresse aus <sd_val>, keine Daten */
- /* = 4: ganze Zeile unterdruecken */
- sd_val, /* Ausgabewert fuer PSEUDO Op-Codes */
- prg_adr, /* Startadresse des Programms */
- prg_flag, /* Flag fuer prg_adr gueltig */
- out_form = OUTDEF, /* Format der Objektdatei */
- symsize; /* Groesse von symarray */
-
- FILE *srcfp, /* Filepointer fuer aktuelle Quelle */
- *objfp, /* Filepointer fuer Object Code */
- *lstfp, /* Filepointer fuer Listing */
- *errfp; /* Filepointer fuer Fehler */
- /* abhaengig von -l lstfp oder stdout */
-
- unsigned c_line, /* aktuelle Zeile der aktuellen Quelle */
- s_line, /* Zeilenzaehler fuers Listing */
- p_line, /* Anzahl gedruckter Zeilen auf der Seite */
- ppl = PLENGTH, /* Anzahl Zeilen/Seite */
- page; /* Seitenzaehler fuer Listing */
-
- struct sym *symtab[HASHSIZE], /* Symboltabelle */
- **symarray; /* sortierte Symboltabelle */
-