JIMSCore
Class Assembler

java.lang.Object
  |
  +--JIMSCore.Assembler

public class Assembler
extends java.lang.Object

This is the Assembler class.

Author:
Steve Lewis, Fred Williams

Field Summary
 DataSection currentDataSection
           
 TextSection currentTextSection
           
static int DATA_SECTION
           
private  DirectiveProcessor directiveProcessor
           
 int iCurrentDataIndex
           
 int iCurrentDataSectionIndex
           
 int iCurrentMode
           
 int iCurrentTextIndex
           
 int iCurrentTextSectionIndex
           
private static int iInvalidUseOfAT
           
private  InstructionEncoder instructionEncoder
           
private  int iPhaseTwoErrors
          PHASE 2 -- FINAL TRANSLATION
static int MODE_DATA
           
static int MODE_KDATA
           
static int MODE_KTEXT
           
static int MODE_NONE
           
static int MODE_TEXT
           
static char NEWLINE
           
static int TEXT_SECTION
           
 java.util.Vector vDataSection
           
 java.util.Vector vLabelVector
           
 java.util.Vector vTextSection
           
 
Constructor Summary
Assembler()
           
Assembler(java.lang.String sModifiedSourceFilename)
           
 
Method Summary
 void addToDataVector(DataEntry dataEntry)
           
 void addToTextVector(TextEntry textEntry)
           
 boolean bLabelDefined(java.lang.String s)
           
 int iGetLabelAddress(java.lang.String s)
           
private  int iGetLabelIndex(java.lang.String sLabel)
           
 int iGetLastInvalidUseOfAT()
           
 int iGetNumPhaseTwoErrors()
           
private  int iProcessDirective(java.lang.String sRawInput, java.lang.String sInput, int iCurrLine)
           
private  int iProcessInstruction(java.lang.String sRawInput, java.lang.String sInput, int iCurrLine)
           
 int iProcessLine(java.lang.String sRawInput, int iCurrLine)
          PHASE 1 -- INITIAL TRANSLATION
static boolean isAT(java.lang.String s)
           
 void reset()
           
static java.lang.String[] saGetParams(java.lang.String s)
           
 java.lang.StringBuffer sbGetMachineCode(java.lang.String sSourceName)
           
private  java.lang.StringBuffer sbProcessDataSection(DataSection dataSection)
           
private  java.lang.StringBuffer sbProcessTextSection(TextSection textSection)
           
private  java.lang.String sCompressBitSequence(java.lang.String sInput)
           
private  java.lang.String sFinalizeData(java.lang.String s)
          Translates addr(X) into a 32-bit address.
private  java.lang.String sFinalizeInstruction(java.lang.String s, int iSourceLine, int iCurrentAddress)
          Translates shamt, hi16, lo16, target, offset, branch, imm.
private  java.lang.String sProcessedDataString(java.lang.String sInput)
           
 java.lang.String toString()
           
private static java.util.Vector vGetParams(java.lang.String sInput)
           
static void warnAboutUseOfAT(int iSourceLine)
           
 
Methods inherited from class java.lang.Object
, clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, wait, wait, wait
 

Field Detail

NEWLINE

public static final char NEWLINE

MODE_TEXT

public static final int MODE_TEXT

MODE_DATA

public static final int MODE_DATA

MODE_KTEXT

public static final int MODE_KTEXT

MODE_KDATA

public static final int MODE_KDATA

MODE_NONE

public static final int MODE_NONE

TEXT_SECTION

public static final int TEXT_SECTION

DATA_SECTION

public static final int DATA_SECTION

iCurrentMode

public int iCurrentMode

iCurrentTextIndex

public int iCurrentTextIndex

iCurrentDataIndex

public int iCurrentDataIndex

vLabelVector

public java.util.Vector vLabelVector

vTextSection

public java.util.Vector vTextSection

currentTextSection

public TextSection currentTextSection

iCurrentTextSectionIndex

public int iCurrentTextSectionIndex

vDataSection

public java.util.Vector vDataSection

currentDataSection

public DataSection currentDataSection

iCurrentDataSectionIndex

public int iCurrentDataSectionIndex

instructionEncoder

private InstructionEncoder instructionEncoder

directiveProcessor

private DirectiveProcessor directiveProcessor

iInvalidUseOfAT

private static int iInvalidUseOfAT

iPhaseTwoErrors

private int iPhaseTwoErrors
PHASE 2 -- FINAL TRANSLATION
Constructor Detail

Assembler

public Assembler(java.lang.String sModifiedSourceFilename)

Assembler

public Assembler()
Method Detail

reset

public void reset()

iGetLastInvalidUseOfAT

public int iGetLastInvalidUseOfAT()

iProcessLine

public int iProcessLine(java.lang.String sRawInput,
                        int iCurrLine)
                 throws java.lang.Exception
PHASE 1 -- INITIAL TRANSLATION

iProcessInstruction

private int iProcessInstruction(java.lang.String sRawInput,
                                java.lang.String sInput,
                                int iCurrLine)
                         throws java.lang.Exception

iProcessDirective

private int iProcessDirective(java.lang.String sRawInput,
                              java.lang.String sInput,
                              int iCurrLine)

sbGetMachineCode

public java.lang.StringBuffer sbGetMachineCode(java.lang.String sSourceName)
                                        throws java.lang.Exception

iGetNumPhaseTwoErrors

public int iGetNumPhaseTwoErrors()

sbProcessTextSection

private java.lang.StringBuffer sbProcessTextSection(TextSection textSection)
                                             throws java.lang.Exception

sbProcessDataSection

private java.lang.StringBuffer sbProcessDataSection(DataSection dataSection)

sFinalizeData

private java.lang.String sFinalizeData(java.lang.String s)
Translates addr(X) into a 32-bit address.
Parameters:
s - The data directive to be processed.

sFinalizeInstruction

private java.lang.String sFinalizeInstruction(java.lang.String s,
                                              int iSourceLine,
                                              int iCurrentAddress)
                                       throws java.lang.Exception
Translates shamt, hi16, lo16, target, offset, branch, imm.
Parameters:
s - The instruction to be processed.
iCurrentAddress - The address of the instruction.

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

bLabelDefined

public boolean bLabelDefined(java.lang.String s)

iGetLabelAddress

public int iGetLabelAddress(java.lang.String s)

iGetLabelIndex

private int iGetLabelIndex(java.lang.String sLabel)

addToDataVector

public void addToDataVector(DataEntry dataEntry)

addToTextVector

public void addToTextVector(TextEntry textEntry)

sProcessedDataString

private java.lang.String sProcessedDataString(java.lang.String sInput)

sCompressBitSequence

private java.lang.String sCompressBitSequence(java.lang.String sInput)

warnAboutUseOfAT

public static void warnAboutUseOfAT(int iSourceLine)

isAT

public static boolean isAT(java.lang.String s)

saGetParams

public static java.lang.String[] saGetParams(java.lang.String s)

vGetParams

private static java.util.Vector vGetParams(java.lang.String sInput)