      SUBROUTINE INIT
C   
C   
C     THIS SUBROUTINE INITIALIZES VARIOUS
C     VARIABLES USED BY THE ASSEMBLER
C   
C   
      DIMENSION NALPH(37),NTITL(28)
      DIMENSION KATT(9)
      INTEGER FTYPE
      REAL ITABV(249)
      COMMON ICRD,IPRT,MCFLE,IDFLE,MCREC,IDREC,IFORM,ITRUN,ILOUT,IXCOL
      COMMON MLAB,MOPC,IBIT,ICCNT,IWORD,IERRL,IERRI,IEND,IFRMC
      COMMON LSOR,LIF,LSYM,LREF,LDEF,LOCT,ITRMI,ITRMO
      COMMON ILEN,KLEN,LLEN,KWORD,IFLD(2400),IYFLD,IZFLD
      COMMON IFBIT,ZVAL,CVAL,JREAD,IN(80),INB(80),LINE,IPAGE,LISN
      COMMON IALPH(37),IAST,IDOLR,ISHRP
      COMMON ICOLN,IBLNK,ICTAB,ISEMI,ICOMM,IPLUS,IMIN,IMULT,IDIV
      COMMON IRPAR,ILPAR,IATT(9),JATT(5),LATT(9),IFPAR(16),NBASE,JBASE
      COMMON ICOL,IFCOL,MCOL,MLCOL,IOLIN,ICNT,LTITL(50),IADDR(4,12)
      COMMON ITYPE,JTYPE,FTYPE,IERR,IERRS,IOPVA,JCOL,IBUG
      COMMON ITAB(4,249),ITABS(249),ITABV,NAME(4),INDEX,INDET,ISYM,LTAB
      COMMON IXTAB(256),MXREF,IXT,IXPNT,IXCNT,IXPAG,MCORE(128)
C INCLUDE(:F1:METAD.COM)
C   
C     SOME COMPUTERS DO NOT ACCEPT THE FULL ASCII CHARACTER SET.
C     THEREFORE SOME OF THE CHARACTERS DEFINED BELOW MAY BE ILLEGAL
C     ON YOUR MACHINE.  IF THIS IS THE CASE, THE ILLEGAL CHARACTERS
C     SHOULD BE REPLACED BY UNIQUE VALID CHARACTERS. THE NEW
C     CHARACTERS CAN THEN BE USED IN PLACE OF THE OLD ILLEGAL CHARACTERS
C   
      DATA NALPH( 1),NALPH( 2),NALPH( 3),NALPH( 4) /1H0,1H1,1H2,1H3/
      DATA NALPH( 5),NALPH( 6),NALPH( 7),NALPH( 8) /1H4,1H5,1H6,1H7/
      DATA NALPH( 9),NALPH(10),NALPH(11),NALPH(12) /1H8,1H9,1HA,1HB/
      DATA NALPH(13),NALPH(14),NALPH(15),NALPH(16) /1HC,1HD,1HE,1HF/
      DATA NALPH(17),NALPH(18),NALPH(19),NALPH(20) /1HG,1HH,1HI,1HJ/
      DATA NALPH(21),NALPH(22),NALPH(23),NALPH(24) /1HK,1HL,1HM,1HN/
      DATA NALPH(25),NALPH(26),NALPH(27),NALPH(28) /1HO,1HP,1HQ,1HR/
      DATA NALPH(29),NALPH(30),NALPH(31),NALPH(32) /1HS,1HT,1HU,1HV/
      DATA NALPH(33),NALPH(34),NALPH(35),NALPH(36) /1HW,1HX,1HY,1HZ/
      DATA NALPH(37)                               /1H./
      DATA NBLNK,NPLUS,NMIN /1H ,1H+,1H-/
      DATA NDOLR,NCOMM,NAST,NSEMI,NCOLN /1H$,1H,,1H*,1H;,1H:/
      DATA NSHRP,NCTAB /1H#,8201/
      DATA NMULT,NDIV,NRPAR,NLPAR /1H*,1H/,1H),1H(/
      DATA NTITL( 1),NTITL( 2),NTITL( 3),NTITL( 4) /1HA,1HS,1HS,1HE/
      DATA NTITL( 5),NTITL( 6),NTITL( 7),NTITL( 8) /1HM,1HB,1HL,1HE/
      DATA NTITL( 9),NTITL(10),NTITL(11),NTITL(12) /1HR,1H ,1HD,1HE/
      DATA NTITL(13),NTITL(14),NTITL(15),NTITL(16) /1HF,1HI,1HN,1HI/
      DATA NTITL(17),NTITL(18),NTITL(19),NTITL(20) /1HT,1HI,1HO,1HN/
      DATA NTITL(21),NTITL(22),NTITL(23),NTITL(24) /1H ,1HP,1HR,1HO/
      DATA NTITL(25),NTITL(26),NTITL(27),NTITL(28) /1HG,1HR,1HA,1HM/
      DATA KATT(1),KATT(2),KATT(3),KATT(4),KATT(5) /1H*,1H-,1H%,1H:,1H$/
      DATA KATT(6),KATT(7),KATT(8),KATT(9)         /1HB,1HQ,1HH,1HD/
C   
C     SET DEBUG PARAMETER
      IBUG = 0
C   
C     SET I/O DEVICE ASSIGNMENTS
      ICRD = 7
      IPRT = 2
      IDFLE = 9
      MCFLE = 8
      ITRMI = 5
      ITRMO = 4
C 
C     TO INCREASE THE SIZE OF THE SYMBOL TABLE AND THUS THE 
C     NUMBER AND LENGTH OF THE SYMBOLS USED BY THE ASSEMBLER
C     THE USER MUST CHANGE CERTAIN VARIABLES.  THE VARIABLES
C     THAT MUST BE CHANGED DEPEND ON THE NUMBER OF BITS
C     PER WORD FOR YOUR COMPUTER, THE NUMBER OF CHARACTERS
C     USED TO DEFINE A SYMBOL, AND THE NUMBER OF SYMBOLS IN THE 
C     SYMBOL TABLE.  THE VARIABLES THAT DEFINE THESE
C     CHARACTERISTICS ARE - IBIT,MLAB,ICCNT,IWORD,LTAB. 
C 
C     IBIT = NUMBER OF BITS PER HOST COMPUTER WORD (SET BY USER)
C     MLAB  = MAXIMUM LABEL LENGTH IN CHARACTERS (SET BY USER)
C     ICCNT = NUMBER OF CHARACTERS PER HOST COMPUTER WORD (CALCULATED)
C     IWORD = NUMBER OF COMPUTER WORDS PER LABEL (CALCULATED) 
C     LTAB  = LENGTH OF THE SYMBOL TABLE (SET BY USER)
C     THUS THE FOLLOWING VARIABLES MUST BE CHANGED OR DIMENSIONED 
C     AS FOLLOWS TO CHANGE THE SIZE OF THE SYMBOL TABLE 
C     TO CHANGE THE SIZE OF A SYMBOL OR THE SYMBOL TABLE
C   
C     LTAB
C     ITAB(IWORD,LTAB)
C     ITABV(LTAB)
C     ITABS(LTAB)
C     NAME(IWORD)
C   
      IBIT = 16
      MLAB = 8
      ICCNT = IBIT/8
      IWORD = 1+(MLAB-1)/ICCNT
      LTAB = 249
C   
C   
C     TO INCREASE THE PAGE SIZE OF THE CROSS REFERENCE TABLE OR THE
C     TOTAL NUMBER OF REFERENCE PAGES PRODUCED, THE USER MUST BE AWARE
C     OF THE FOLLOWING VARIABLES.
C   
C        MXREF = MAXIMUM PAGE SIZE OF CROSS REFERENCE TABLE.
C        IXTAB = ARRAY TO ACCUMULATE CROSS REFERENCES
C        IXPAG = TOTAL NUMBER OF REFERENCE PAGES OF SIZE MXREF THAT
C                WILL BE ACCUMULATED.
C   
C     THE NUMBER OF REFERENCES ON A PAGE IS (MXREF/2).  MXREF SHOULD BE
C     GREATER THAN OR EQUAL TO 2*LTAB AND DIVISIBLE BY 128.
C     IF IXPAG = 0, THEN THE DISK FILE WILL NOT BE USED AND REFERENCES
C     WILL ONLY BE ACCUMULATED IN MEMORY.
C   
C     TO INCREASE CROSS REFERENCE PAGE SIZE THE FOLLOWING
C     VARIABLES SHOILD BE CHANGED
C   
C     MXREF
C     IXTAB(MXREF)
C   
C   
      IXPAG = 25
      MXREF = 256
C     INITIALIZE OTHER VARIABLES USED BY CROSS REFERENCE ROUTINE
      IXT = 1
      IXPNT = 0
      IXCNT = 0
C     INITIALIZE FIELD TABLE INDEX
      IYFLD = 0
C     SET MAXIMUM NUMBER OF ENTRIES IN FIELD TABLE
      IZFLD = 2400
C     SET STARTING AND ENDING COLUMNS FOR LINE SCAN 
      IFCOL = 1 
      MCOL = 72 
C     SET LAST COLUMN NUMBER PRINTED ON OUTPUT LISTING
      MLCOL = 72
C     SET MAXIMUM OPCODE LENGTH 
      MOPC = 6
C     SET MAXIMUM NUMBER OF BITS IN FIELD 
      IFBIT = 20
      KWORD = -1
C     FORM MAXIMUM VALUE CONTAINABLE IN IFBIT BITS
      ZVAL = 1. 
      DO 10 I=1,IFBIT 
      ZVAL = ZVAL+ZVAL
10    CONTINUE
      ZVAL = ZVAL-1.
C     INITIALIZE DEFINITION FILE RECORD NUMBER
      IDREC = 1 
C     SET PAGE NUMBER AND NUMBER OF LINES PER PAGE ON OUTPUT LISTING
      IPAGE = 1 
      IOLIN = 60
      LINE = IOLIN
      LISN = 0
C     INITIALIZE END FLAG
      IEND = 0
C     INITIALIZE LIST FLAGS
      LSOR = 1
      LSYM = 1
      LREF = 0
      LIF = 0 
      LDEF = 1
      LOCT = 0
C     SET DEFAULT NUMBER BASE TO DECIMAL
      NBASE = 10
      JBASE = 4 
C     SET TOTAL ERROR COUNT 
      IERRS = 0 
C     SET READ FLAG 
      JREAD = 0 
C     INITIALIZE LEGAL CONSTANT MODIFIERS
      DO 15 I=1,9 
      IATT(I) = KATT(I) 
15    CONTINUE
C     INITIALIZE NUMBER OF SYMBOLS IN SYMBOL TABLE
      ISYM = 0
C     INITIALIZE THE CHARACTER VARIABLES
      DO 40 K=1,37
      IALPH(K) = NALPH(K) 
40    CONTINUE
C 
C     THE CHARACTERS LISTED BELOW ARE CHARACTERS USED INTERNALLY BY 
C     THE ASSEMBLER FOR SYNTAX CHECKING.
C 
      IBLNK = NBLNK 
      IPLUS = NPLUS 
      IMIN = NMIN 
      IDOLR = NDOLR 
      ICOMM = NCOMM 
      IAST = NAST 
      ISEMI = NSEMI 
      ICOLN = NCOLN 
      IMULT = NMULT 
      IDIV = NDIV 
      IRPAR = NRPAR 
      ILPAR = NLPAR 
      ISHRP = NSHRP 
      ICTAB = NCTAB 
C     SET DEFAULT TITLE 
      DO 200 LL=1,50
      LTITL(LL) = IBLNK 
200   CONTINUE
      DO 250 LL=1,28
      KK = LL+10
      LTITL(KK) = NTITL(LL) 
250   CONTINUE
      RETURN
      END 
      DO 250 LL=1,28
      KK = LL+10
      LTITL(KK) = NTITL(LL) 
250   CONTINUE
      RETURN
      END 
