/* * 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 #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 , Daten aus */ /* = 1: Adresse aus , Daten aus */ /* = 2: keine Adresse, Daten aus */ /* = 3: Adresse aus , 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 */