Index: libcio/filesys.x
===================================================================
--- libcio/filesys.x	(revision 526a9931ecf963fd88914bbf92cee82eb60a80bd)
+++ libcio/filesys.x	(revision 2340de67b3c56bd94cf80e9427ab1a5dd59717cf)
@@ -8,4 +8,5 @@
 
 #include "biosdefs.h"
+#include "fspars.h"
 #include "stdint.h"
 
@@ -24,6 +25,6 @@
 extern	int16_t		_fatmod;
 extern	struct	bpb	*_thebpb;
-extern	struct	dirent	_thedir[224];
-extern	uint16_t	_thefat[7 * 256];
+extern	struct	dirent	_thedir[MAXDIRNT];
+extern	uint16_t	_thefat[MAXFAT * WDPSEC];
 
 /*
Index: libcio/fsinit.x
===================================================================
--- libcio/fsinit.x	(revision 526a9931ecf963fd88914bbf92cee82eb60a80bd)
+++ libcio/fsinit.x	(revision 2340de67b3c56bd94cf80e9427ab1a5dd59717cf)
@@ -19,8 +19,8 @@
 */
 
-extern	FILE		Cbuffs[11];
-extern	int32_t		Stdbuf[8][256];
+extern	FILE		Cbuffs[NSTREAMS];
+extern	int32_t		Stdbuf[MAXDFILE][BUFSIZL];
 extern	int8_t		*Stdbufs;
-extern	int8_t		Wrkbuf[512];
+extern	int8_t		Wrkbuf[BPSEC];
 extern	int16_t		_b_sect;
 extern	int16_t		_b_side;
@@ -28,6 +28,6 @@
 extern	int16_t		_b_trak;
 extern	int16_t		_b_tsec;
-extern	struct	fcb	_fcbtab[8];
-extern	struct	channel	chantab[11];
+extern	struct	fcb	_fcbtab[MAXDFILE];
+extern	struct	channel	chantab[MAXCHAN];
 
 /*
Index: misc/gen-x.py
===================================================================
--- misc/gen-x.py	(revision 526a9931ecf963fd88914bbf92cee82eb60a80bd)
+++ misc/gen-x.py	(revision 2340de67b3c56bd94cf80e9427ab1a5dd59717cf)
@@ -3,4 +3,5 @@
 from sys import stdout
 from pycparser import c_ast, parse_file, c_generator
+from re import escape, subn, search
 
 cross_gcc = "/opt/cross-m68k/bin/m68k-none-elf-gcc"
@@ -77,4 +78,39 @@
     def get_typs(self):
         return self.typs
+
+def fix(text, path):
+    with open(path, "r") as f:
+        cont = f.read()
+
+    (pat, n) = subn(r"\[[0-9]+\]", "[@]", text[7:])
+
+    if n == 0:
+        return text
+
+    rex = escape(pat). \
+         replace("\@", "([0-9A-Z_]+)"). \
+         replace("\ ", "[\t\n ]+")
+
+    m = search(rex, cont)
+
+    if not m:
+        raise Exception("error while matching {}".format(re))
+
+    pats = pat.split("@")
+    vals = m.groups()
+
+    if len(pats) != len(vals) + 1:
+        raise Exception("length mismatch: {} vs. {}". \
+                        format(len(pats), len(vals)))
+
+    out = pats[0]
+    pats = pats[1:]
+
+    while len(pats) > 0:
+        out += vals[0] + pats[0]
+        vals = vals[1:]
+        pats = pats[1:]
+
+    return "extern " + out
 
 gen = c_generator.CGenerator()
@@ -130,5 +166,8 @@
             decl.init = None
 
-            toks = gen.visit(decl).split(" ")
+            text = gen.visit(decl)
+            text = fix(text, decl.coord.file)
+
+            toks = text.split(" ")
             alig = ""
 
Index: misc/proto.x
===================================================================
--- misc/proto.x	(revision 526a9931ecf963fd88914bbf92cee82eb60a80bd)
+++ misc/proto.x	(revision 2340de67b3c56bd94cf80e9427ab1a5dd59717cf)
@@ -11,4 +11,5 @@
 #include "slice.h"
 #include "stdint.h"
+#include "timers.h"
 #include "vsdd.h"
 
@@ -42,5 +43,5 @@
 extern	void		(*pulse1)(void);
 extern	void		(*pulse2)(void);
-extern	int16_t		timers[8];
+extern	int16_t		timers[NTIMERS];
 extern	int32_t		uldivr;
 extern	uint16_t	vi_sadr;
Index: ram/asgdsp.c
===================================================================
--- ram/asgdsp.c	(revision 526a9931ecf963fd88914bbf92cee82eb60a80bd)
+++ ram/asgdsp.c	(revision 2340de67b3c56bd94cf80e9427ab1a5dd59717cf)
@@ -20,6 +20,4 @@
 
 #define	AUX_BIT		0x02	/* aux control bit in PSG port B */
-
-#define	AK_WIDTH	115	/* width, in words, of keyboard icon */
 
 /* 4 bit pixel patterns */
Index: ram/asgdsp.x
===================================================================
--- ram/asgdsp.x	(revision 526a9931ecf963fd88914bbf92cee82eb60a80bd)
+++ ram/asgdsp.x	(revision 2340de67b3c56bd94cf80e9427ab1a5dd59717cf)
@@ -9,4 +9,6 @@
 #include "stdint.h"
 
+#define	AK_WIDTH	115	/* width, in words, of keyboard icon */
+
 /*
    =============================================================================
@@ -15,7 +17,7 @@
 */
 
-extern	uint16_t	asgkbbt[115];
+extern	uint16_t	asgkbbt[AK_WIDTH];
 extern	int16_t		asgkble[88];
-extern	uint16_t	asgkbtp[115];
+extern	uint16_t	asgkbtp[AK_WIDTH];
 extern	int16_t		asgpal[16][3];
 extern	int8_t		*asgsrc[];
Index: ram/chksec.x
===================================================================
--- ram/chksec.x	(revision 526a9931ecf963fd88914bbf92cee82eb60a80bd)
+++ ram/chksec.x	(revision 2340de67b3c56bd94cf80e9427ab1a5dd59717cf)
@@ -16,8 +16,8 @@
 */
 
-extern	int8_t		cmgtags[25];
-extern	int8_t		cmgtype[25];
-extern	int16_t		cmslens[25];
-extern	int16_t		ehdlist[25];
+extern	int8_t		cmgtags[N_ETYPES];
+extern	int8_t		cmgtype[N_ETYPES];
+extern	int16_t		cmslens[N_ETYPES];
+extern	int16_t		ehdlist[N_ETYPES];
 
 /*
Index: ram/cminit.c
===================================================================
--- ram/cminit.c	(revision 526a9931ecf963fd88914bbf92cee82eb60a80bd)
+++ ram/cminit.c	(revision 2340de67b3c56bd94cf80e9427ab1a5dd59717cf)
@@ -10,6 +10,4 @@
 
 #include "ram.h"
-
-#define	CM_MXSTR	257	/* maximum parser string result length */
 
 #define	CM_DBLK		if (!QQanch) while (*QQip EQ ' ') ++QQip
Index: ram/cminit.x
===================================================================
--- ram/cminit.x	(revision 526a9931ecf963fd88914bbf92cee82eb60a80bd)
+++ ram/cminit.x	(revision 2340de67b3c56bd94cf80e9427ab1a5dd59717cf)
@@ -8,4 +8,6 @@
 
 #include "stdint.h"
+
+#define	CM_MXSTR	257	/* maximum parser string result length */
 
 /*
@@ -23,5 +25,5 @@
 extern	int32_t		QQnum;
 extern	int8_t		*QQop;
-extern	int8_t		QQstr[257];
+extern	int8_t		QQstr[CM_MXSTR];
 extern	int16_t		QQsw;
 
Index: ram/configs.h
===================================================================
--- ram/configs.h	(revision 526a9931ecf963fd88914bbf92cee82eb60a80bd)
+++ ram/configs.h	(revision 2340de67b3c56bd94cf80e9427ab1a5dd59717cf)
@@ -2,6 +2,4 @@
 
 #include "stdint.h"
-
-#define	MAXCFG	12
 
 /* Configuration 0 */
@@ -733,5 +731,5 @@
 };
 
-int8_t	*cfgptr[MAXCFG] = {
+int8_t	*cfgptr[12] = {
 
 	(int8_t *)cfg_00, (int8_t *)cfg_01, (int8_t *)cfg_02, (int8_t *)cfg_03,
Index: ram/im700.x
===================================================================
--- ram/im700.x	(revision 526a9931ecf963fd88914bbf92cee82eb60a80bd)
+++ ram/im700.x	(revision 2340de67b3c56bd94cf80e9427ab1a5dd59717cf)
@@ -11,4 +11,5 @@
 #include "instdsp.h"
 #include "libdsp.h"
+#include "midas.h"
 #include "objdefs.h"
 #include "score.h"
@@ -38,5 +39,5 @@
 extern	int16_t		asgmod;
 extern	uint16_t	*asgob;
-extern	struct	asgent	asgtab[100];
+extern	struct	asgent	asgtab[NASGS];
 extern	int16_t		asig;
 extern	int16_t		asmode;
@@ -113,10 +114,10 @@
 extern	int16_t		ext_cv4;
 extern	int16_t		ext_mod;
-extern	struct	fcat	filecat[20];
+extern	struct	fcat	filecat[FCMAX];
 extern	struct	gdsel	*gdfsep;
-extern	struct	gdsel	gdfsl[256];
-extern	struct	gdsel	*gdstbc[17];
-extern	struct	gdsel	*gdstbn[17];
-extern	struct	gdsel	*gdstbp[17];
+extern	struct	gdsel	gdfsl[MAXFSL];
+extern	struct	gdsel	*gdstbc[NGDSEL];
+extern	struct	gdsel	*gdstbn[NGDSEL];
+extern	struct	gdsel	*gdstbp[NGDSEL];
 extern	int16_t		gomode;
 extern	int16_t		grp2prt[12][2];
@@ -127,7 +128,7 @@
 extern	int16_t		hitcx;
 extern	int16_t		hitcy;
-extern	struct	s_entry	*hplist[20][12];
+extern	struct	s_entry	*hplist[N_SCORES][N_TYPES];
 extern	int16_t		idcfsw;
-extern	struct	instdef	idefs[41];
+extern	struct	instdef	idefs[NINST];
 extern	int16_t		idimsw;
 extern	int16_t		idintmp;
@@ -172,7 +173,7 @@
 extern	int16_t		lseqsw;
 extern	int16_t		lstbgnc;
-extern	struct	n_entry	*lstbgns[48];
+extern	struct	n_entry	*lstbgns[NLSTENTS];
 extern	int16_t		lstendc;
-extern	struct	n_entry	*lstends[48];
+extern	struct	n_entry	*lstends[NLSTENTS];
 extern	int16_t		lstflag;
 extern	int16_t		lstrsw;
@@ -197,5 +198,5 @@
 extern	struct	nevent	*nefree;
 extern	struct	nevent	*nelist;
-extern	struct	nevent	nevents[32];
+extern	struct	nevent	nevents[NNEVTS];
 extern	int16_t		newflag;
 extern	int16_t		nkdown;
@@ -241,5 +242,5 @@
 extern	int16_t		pecase;
 extern	struct	s_entry	*peg;
-extern	struct	pflent	pfents[336];
+extern	struct	pflent	pfents[NPFENTS];
 extern	struct	pflent	*pflist;
 extern	struct	pflent	*pfqhdr;
@@ -258,5 +259,5 @@
 extern	int16_t		sbase;
 extern	int16_t		scmctl;
-extern	struct	s_entry	*scores[20];
+extern	struct	s_entry	*scores[N_SCORES];
 extern	struct	s_entry	*scp;
 extern	uint16_t	scrl;
@@ -268,5 +269,5 @@
 extern	int16_t		sdmrow;
 extern	int16_t		se;
-extern	struct	s_entry	*seclist[20][20];
+extern	struct	s_entry	*seclist[N_SCORES][N_SECTS];
 extern	int16_t		secop;
 extern	int16_t		secopok;
@@ -275,5 +276,5 @@
 extern	int16_t		sharp;
 extern	int16_t		sigtab[128][2];
-extern	struct	scndx	sindex[20];
+extern	struct	scndx	sindex[N_SCORES];
 extern	struct	s_entry	*size1;
 extern	struct	s_entry	*size2;
@@ -291,5 +292,5 @@
 extern	int16_t		stepint;
 extern	int16_t		stepwgt;
-extern	struct	s_time	stimes[20][20];
+extern	struct	s_time	stimes[N_SCORES][N_SECTS];
 extern	int16_t		subj;
 extern	int16_t		submenu;
@@ -332,5 +333,5 @@
 extern	int16_t		ttsel3;
 extern	int16_t		tuneval;
-extern	int16_t		tunlib[10][128];
+extern	int16_t		tunlib[NTUNS][128];
 extern	int16_t		tunmod;
 extern	uint16_t	*tunob;
@@ -345,5 +346,5 @@
 extern	int16_t		tylast;
 extern	int16_t		tystop;
-extern	struct	valent	valents[12 << 4];
+extern	struct	valent	valents[NGPSRS];
 extern	int16_t		varmode[8][16];
 extern	struct	instdef	vbufs[12];
@@ -387,5 +388,5 @@
 extern	int16_t		wpntsv;
 extern	int16_t		wshmax;
-extern	struct	wstbl	wslib[20];
+extern	struct	wstbl	wslib[NUMWAVS];
 extern	int16_t		wsnmod[12][2];
 extern	int16_t		wvlast;
Index: ram/initi.x
===================================================================
--- ram/initi.x	(revision 526a9931ecf963fd88914bbf92cee82eb60a80bd)
+++ ram/initi.x	(revision 2340de67b3c56bd94cf80e9427ab1a5dd59717cf)
@@ -8,4 +8,5 @@
 
 #include "instdsp.h"
+#include "midas.h"
 #include "stdint.h"
 
@@ -18,5 +19,5 @@
 extern	uint16_t	dfltins[];
 extern	int16_t		expbit[16];
-extern	int16_t		finival[13];
+extern	int16_t		finival[NFINST];
 extern	int16_t		ptoftab[];
 
Index: ram/instdsp.x
===================================================================
--- ram/instdsp.x	(revision 526a9931ecf963fd88914bbf92cee82eb60a80bd)
+++ ram/instdsp.x	(revision 2340de67b3c56bd94cf80e9427ab1a5dd59717cf)
@@ -7,4 +7,5 @@
 #pragma once
 
+#include "midas.h"
 #include "stdint.h"
 
@@ -15,5 +16,5 @@
 */
 
-extern	int16_t		fnoff[13];
+extern	int16_t		fnoff[NFINST];
 extern	int16_t		idbox[][8];
 extern	int8_t		*idbxlbl[];
Index: ram/ptdisp.x
===================================================================
--- ram/ptdisp.x	(revision 526a9931ecf963fd88914bbf92cee82eb60a80bd)
+++ ram/ptdisp.x	(revision 2340de67b3c56bd94cf80e9427ab1a5dd59717cf)
@@ -22,5 +22,5 @@
 extern	uint16_t	seqline[16];
 extern	uint16_t	seqstim[16];
-extern	struct	seqent	seqtab[1000];
+extern	struct	seqent	seqtab[NSLINES];
 extern	uint16_t	seqtime[16];
 extern	uint16_t	sregval[16];
Index: ram/scwrite.x
===================================================================
--- ram/scwrite.x	(revision 526a9931ecf963fd88914bbf92cee82eb60a80bd)
+++ ram/scwrite.x	(revision 2340de67b3c56bd94cf80e9427ab1a5dd59717cf)
@@ -7,4 +7,5 @@
 #pragma once
 
+#include "score.h"
 #include "stdint.h"
 #include "stdio.h"
@@ -17,5 +18,5 @@
 
 extern	int32_t		m1con;
-extern	int16_t		scsizes[25][2];
+extern	int16_t		scsizes[N_ETYPES][2];
 
 /*
Index: ram/sedump.x
===================================================================
--- ram/sedump.x	(revision 526a9931ecf963fd88914bbf92cee82eb60a80bd)
+++ ram/sedump.x	(revision 2340de67b3c56bd94cf80e9427ab1a5dd59717cf)
@@ -23,6 +23,6 @@
 extern	int16_t		SL_Flag;
 extern	int8_t		*actname[];
-extern	int8_t		*evkinds[25];
-extern	int8_t		*hpname[12];
+extern	int8_t		*evkinds[N_ETYPES];
+extern	int8_t		*hpname[N_TYPES];
 extern	int8_t		*srcname[];
 extern	int8_t		*var_lbl[6];
Index: ram/showcfg.c
===================================================================
--- ram/showcfg.c	(revision 526a9931ecf963fd88914bbf92cee82eb60a80bd)
+++ ram/showcfg.c	(revision 2340de67b3c56bd94cf80e9427ab1a5dd59717cf)
@@ -7,6 +7,4 @@
 
 #include "ram.h"
-
-#define	MAXPAT		35
 
 #include "configs.h"
Index: ram/showcfg.x
===================================================================
--- ram/showcfg.x	(revision 526a9931ecf963fd88914bbf92cee82eb60a80bd)
+++ ram/showcfg.x	(revision 2340de67b3c56bd94cf80e9427ab1a5dd59717cf)
@@ -9,4 +9,6 @@
 #include "fields.h"
 #include "stdint.h"
+
+#define	MAXPAT		35
 
 /*
@@ -32,6 +34,6 @@
 extern	struct	fet	id_fet3[];
 extern	struct	selbox	idmbox[];
-extern	uint16_t	pat[35][16];
-extern	int16_t		patctab[35];
+extern	uint16_t	pat[MAXPAT][16];
+extern	int16_t		patctab[MAXPAT];
 
 /*
Index: ram/stmproc.x
===================================================================
--- ram/stmproc.x	(revision 526a9931ecf963fd88914bbf92cee82eb60a80bd)
+++ ram/stmproc.x	(revision 2340de67b3c56bd94cf80e9427ab1a5dd59717cf)
@@ -17,6 +17,6 @@
 */
 
-extern	struct	defent	defents[256];
-extern	int8_t		defptr[5120];
+extern	struct	defent	defents[RAWDEFS];
+extern	int8_t		defptr[NDEFSTMS];
 extern	int8_t		dmatch[];
 extern	uint16_t	dpecpos;
@@ -24,10 +24,10 @@
 extern	uint16_t	dpesucc;
 extern	uint16_t	dtfree;
-extern	struct	patch	patches[256];
+extern	struct	patch	patches[MAXPATCH];
 extern	int8_t		ptdsbuf[50];
 extern	struct	wordq	ptefifo;
-extern	uint16_t	ptewrds[256];
+extern	uint16_t	ptewrds[NPTEQELS];
 extern	uint16_t	ptfree;
-extern	int8_t		stmptr[5120];
+extern	int8_t		stmptr[NDEFSTMS];
 
 /*
Index: ram/swinit.c
===================================================================
--- ram/swinit.c	(revision 526a9931ecf963fd88914bbf92cee82eb60a80bd)
+++ ram/swinit.c	(revision 2340de67b3c56bd94cf80e9427ab1a5dd59717cf)
@@ -110,5 +110,5 @@
 int8_t	ebuf[MAXEBUF+1];	/* edit data entry buffer */
 int8_t	errbuf[65];		/* error message build area */
-int8_t	idbuf[91];		/* display format conversion work area */
+int8_t	idbuf[65];		/* display format conversion work area */
 int8_t	keystat[24];		/* front panel key status */
 int8_t	ldcmnt[38];		/* comment field */
Index: ram/swinit.x
===================================================================
--- ram/swinit.x	(revision 526a9931ecf963fd88914bbf92cee82eb60a80bd)
+++ ram/swinit.x	(revision 2340de67b3c56bd94cf80e9427ab1a5dd59717cf)
@@ -7,5 +7,9 @@
 #pragma once
 
+#include "fields.h"
+#include "libdsp.h"
 #include "midas.h"
+#include "score.h"
+#include "scwheel.h"
 #include "stddefs.h"
 #include "stdint.h"
@@ -45,5 +49,5 @@
 extern	int32_t		dvwork;
 extern	void		(*e_key)(void);
-extern	int8_t		ebuf[80 + 1];
+extern	int8_t		ebuf[MAXEBUF+1];
 extern	int8_t		errbuf[65];
 extern	int32_t		frags;
@@ -56,6 +60,6 @@
 extern	int16_t		grptmap[12];
 extern	int16_t		gtctab[12];
-extern	int32_t		hwave[256];
-extern	int8_t		idbuf[91];
+extern	int32_t		hwave[NUMWPCAL];
+extern	int8_t		idbuf[65];
 extern	int16_t		ins2grp[12];
 extern	int16_t		instmod[12];
@@ -72,5 +76,5 @@
 extern	int8_t		ldcmnt[38];
 extern	int8_t		ldfile[9];
-extern	int16_t		ldmap[20];
+extern	int16_t		ldmap[N_SCORES];
 extern	int8_t		ldmsg1[65];
 extern	int8_t		ldmsg2[65];
@@ -79,10 +83,10 @@
 extern	int8_t		*lmln23;
 extern	int8_t		*lmln24;
-extern	int8_t		loadedc[8][37];
-extern	int8_t		loadedf[8][8];
+extern	int8_t		loadedc[NLTYPES][37];
+extern	int8_t		loadedf[NLTYPES][8];
 extern	void		(*m_key)(void);
 extern	int8_t		masens[3];
 extern	int16_t		mctlnum[4];
-extern	int8_t		mctlval[6144];
+extern	int8_t		mctlval[NCTRLS];
 extern	int8_t		mdbyte[3];
 extern	int16_t		mpbend[48];
@@ -91,5 +95,5 @@
 extern	int16_t		msmstv[3];
 extern	int32_t		ndbytes;
-extern	int32_t		nlpersc[20];
+extern	int32_t		nlpersc[N_SCORES];
 extern	int16_t		(*not_fld)(int16_t k);
 extern	int32_t		noteoff;
@@ -98,5 +102,5 @@
 extern	int32_t		noteval;
 extern	int32_t		nrest;
-extern	int16_t		offsets[256];
+extern	int16_t		offsets[NUMWPCAL];
 extern	void		(*olddkey)(int16_t k);
 extern	void		(*oldekey)(void);
@@ -106,5 +110,5 @@
 extern	void		(*oldxkey)(void);
 extern	void		(*premove)(void);
-extern	int16_t		prstab[6144];
+extern	int16_t		prstab[NTRIGS];
 extern	int32_t		*pspool;
 extern	void		(*pstmove)(void);
@@ -112,6 +116,6 @@
 extern	int16_t		s_trns[12];
 extern	int32_t		schksum;
-extern	int8_t		scname[20][16];
-extern	int32_t		scsums[20];
+extern	int8_t		scname[N_SCORES][16];
+extern	int32_t		scsums[N_SCORES];
 extern	int32_t		se1_cnt;
 extern	int32_t		se2_cnt;
@@ -123,7 +127,7 @@
 extern	int32_t		sntlreq;
 extern	int32_t		spcount;
-extern	int32_t		spool[32768L];
+extern	int32_t		spool[MAX_SE];
 extern	int32_t		swcount;
-extern	int16_t		swfifo[100];
+extern	int16_t		swfifo[NSWFIFO];
 extern	LPF		(*swpt)[];
 extern	int32_t		swrate;
@@ -143,16 +147,16 @@
 extern	int32_t		t_sect;
 extern	int32_t		t_send;
-extern	int8_t		trgtab[6144];
+extern	int8_t		trgtab[NTRIGS];
 extern	int8_t		tuncurn[33];
-extern	int8_t		tunname[10][32];
+extern	int8_t		tunname[NTUNS][32];
 extern	int16_t		tuntab[128];
-extern	int16_t		txfifo[100];
-extern	int16_t		tyfifo[100];
+extern	int16_t		txfifo[NTKFIFO];
+extern	int16_t		tyfifo[NTKFIFO];
 extern	int16_t		vce2grp[12];
 extern	int16_t		vce2trg[12];
-extern	int16_t		veltab[6144];
-extern	int32_t		vknm[32][256];
+extern	int16_t		veltab[NTRIGS];
+extern	int32_t		vknm[NUMHARM][NUMWPCAL];
 extern	int8_t		*vlbptr[3];
-extern	int16_t		vmtab[32];
+extern	int16_t		vmtab[NUMHARM];
 extern	void		(*vt_adv)(void);
 extern	void		(*vt_bsp)(void);
@@ -162,5 +166,5 @@
 extern	void		(*vt_stop)(void);
 extern	int8_t		*vtdeptr;
-extern	int16_t		wsbuf[256];
+extern	int16_t		wsbuf[NUMWPCAL];
 extern	int32_t		wshfac;
 extern	void		(*x_key)(void);
Index: rom/romp.c
===================================================================
--- rom/romp.c	(revision 526a9931ecf963fd88914bbf92cee82eb60a80bd)
+++ rom/romp.c	(revision 2340de67b3c56bd94cf80e9427ab1a5dd59717cf)
@@ -70,11 +70,4 @@
 #define	ROMADDR		0x00100000L
 
-#define	MAXFNLN		13		/* xxxxxxxx.xxx + CR */
-#define	MAXARGLN	80		/* maximum argument length */
-#define	MAXCMDLN	128		/* maximum command line length */
-#define	MAXHS		80		/* maximum help string length */
-#define	MAXID		90		/* maximum ID string length */
-
-#define	PDATELN		14
 #define	PRM_DATE	0x0100008L
 #define	PRM_VERS	0x0100002L
Index: rom/romp.x
===================================================================
--- rom/romp.x	(revision 526a9931ecf963fd88914bbf92cee82eb60a80bd)
+++ rom/romp.x	(revision 2340de67b3c56bd94cf80e9427ab1a5dd59717cf)
@@ -10,4 +10,12 @@
 #include "setjmp.h"
 #include "stdint.h"
+
+#define	MAXFNLN		13		/* xxxxxxxx.xxx + CR */
+#define	MAXARGLN	80		/* maximum argument length */
+#define	MAXCMDLN	128		/* maximum command line length */
+#define	MAXHS		80		/* maximum help string length */
+#define	MAXID		90		/* maximum ID string length */
+
+#define	PDATELN		14
 
 /*
@@ -23,5 +31,5 @@
 extern	int16_t		argln;
 extern	int8_t		argsep;
-extern	int8_t		argstr[80 + 1];
+extern	int8_t		argstr[MAXARGLN+1];
 extern	int16_t		asig;
 extern	int16_t		astat;
@@ -32,6 +40,6 @@
 extern	uint16_t	baron;
 extern	int16_t		baseled;
-extern	int8_t		bfname[13 + 1];
-extern	int8_t		cmdline[128 + 1];
+extern	int8_t		bfname[MAXFNLN+1];
+extern	int8_t		cmdline[MAXCMDLN+1];
 extern	int16_t		cmdunit;
 extern	int8_t		*d_cur;
@@ -43,6 +51,6 @@
 extern	int32_t		ftimer;
 extern	int16_t		goflag;
-extern	int8_t		hs_mtst[80 + 1];
-extern	int8_t		idbuf[90 + 1];
+extern	int8_t		hs_mtst[MAXHS+1];
+extern	int8_t		idbuf[MAXID+1];
 extern	int16_t		ilast;
 extern	int16_t		inext;
@@ -63,5 +71,5 @@
 extern	int32_t		p_value;
 extern	int32_t		p_width;
-extern	int8_t		promdate[14 + 1];
+extern	int8_t		promdate[PDATELN+1];
 extern	int16_t		redo;
 extern	struct	regs	*regptr;
