Class A_Register

    • Field Detail

      • Alpha_Size

        private static final int Alpha_Size
        The Casio display holds 11 main characters.
      • Logger

        private static final Logger Logger

        Class logger instance.

      • Mode_Error

        @NotNull
        private static final @NotNull String Mode_Error
        Error Message displayed on using the wrong alpha mode!
      • Printer_Size

        private static final int Printer_Size
        Last Printable character
        See Also:
        Constant Field Values
      • TAG

        private static final String TAG

        Class logger tag.

      • Alpha_Start

        static final int Alpha_Start
        First Keyboard_Alpha character
        See Also:
        Constant Field Values
      • Exponent_End

        static final int Exponent_End
        Last Mode_Exponent character
        See Also:
        Constant Field Values
      • Exponent_Start

        static final int Exponent_Start

        First Mode_Exponent character

        See Also:
        Constant Field Values
      • Float_0_Text

        static final short @NotNull [] Float_0_Text
        Default text for the numeric display
      • Null_Text

        static final short @NotNull [] Null_Text
        Default text for the numeric display
      • Alpha_End

        public static final int Alpha_End

        Last Keyboard_Alpha character

        See Also:
        Constant Field Values
      • Display_Size

        public static final int Display_Size
        display size (alpha and exponent)
      • Display_Value

        private final short @NotNull [] Display_Value
        Alpha Register display Value
      • Display_Count

        private int Display_Count

        Count the amount of characters inserted to the display. Grows indefinitely.

      • Mode

        @NotNull
        private IA_Register.Mode_Type Mode
        alpha register entry mode
        Mode_Normal
        normal numeric entry mode
        Mode_Fraction
        fraction entry mode
        Mode_Exponent
        exponent entry mode
        Mode_Begin_Alpha
        begins alpha mode
        Keyboard_Alpha
        alpha entry mode
      • Printer_Count

        private int Printer_Count

        Count the amount of characters inserted to the printer. Stops at max printout length.

      • Printer_Value

        private short @Nullable [] Printer_Value

        value of the register for use with printer or tape interface.

      • Start_Char

        private int Start_Char
        Limit Alpha text to Start_Char
      • arX_Count

        private int arX_Count
        Count the amount of arx # characters.
      • arX_Mode

        @NotNull
        private net.sourceforge.uiq3.calculator.ICalculator.DisplayType arX_Mode
        Current display mode
        Display_Alpha
        Displays the content of the Alpha register.
        Display_L
        Displays the content of the L0 aka X register.
        Display_Formated
        Displays the content of the L0 aka X register inside an alpha
      • propertyChangeSupport

        private final PropertyChangeSupport propertyChangeSupport
        Handle property changes.
    • Constructor Detail

      • A_Register

        public A_Register​(@NotNull
                          @NotNull Calculator Owner)
        Create Keyboard_Alpha Register
        Parameters:
        Owner - Calculator
    • Method Detail

      • Get_Numeric_Value

        @NotNull
        public static Number Get_Numeric_Value​(short[] Decomposed_Text)
        Get value of the register for use with as BCD.
        Returns:
        current value
      • Start_Of_String

        private static int Start_Of_String​(short @NotNull [] Text)
        find start of data in string.
        Parameters:
        Text - Text to find begin in.
        Returns:
        position of first non space character
      • addPropertyChangeListener

        public void addPropertyChangeListener​(@NotNull
                                              PropertyChangeListener listener)
        Add a PropertyChangeListener to the listener list. The listener is registered for all properties. The same listener object may be added more than once, and will be called as many times as it is added. If listener is null, no exception is thrown and no action is taken.
        Specified by:
        addPropertyChangeListener in interface net.sourceforge.uiq3.IPropertyNotifier
        Parameters:
        listener - The PropertyChangeListener to be added
      • addPropertyChangeListener

        public void addPropertyChangeListener​(@NotNull
                                              @NotNull String propertyName,
                                              @NotNull
                                              PropertyChangeListener listener)
        Add a PropertyChangeListener for a specific property. The listener will be invoked only when a call on firePropertyChange names that specific property. The same listener object may be added more than once. For each property, the listener will be invoked the number of times it was added for that property.
        Specified by:
        addPropertyChangeListener in interface net.sourceforge.uiq3.IPropertyNotifier
        Parameters:
        propertyName - The name of the property to listen on.
        listener - The PropertyChangeListener to be added
        Since:
        1.2
      • removePropertyChangeListener

        public void removePropertyChangeListener​(@NotNull
                                                 PropertyChangeListener listener)
        Remove a PropertyChangeListener from the listener list. This removes a PropertyChangeListener that was registered for all properties. If listener was added more than once to the same event source, it will be notified one less time after being removed. If listener is null, or was never added, no exception is thrown and no action is taken.
        Specified by:
        removePropertyChangeListener in interface net.sourceforge.uiq3.IPropertyNotifier
        Parameters:
        listener - The PropertyChangeListener to be removed
      • removePropertyChangeListener

        public void removePropertyChangeListener​(@NotNull
                                                 @NotNull String propertyName,
                                                 @NotNull
                                                 PropertyChangeListener listener)
        Remove a PropertyChangeListener for a specific property. If `listener` was added more than once to the same event source for the specified property, it will be notified one less time after being removed.
        Specified by:
        removePropertyChangeListener in interface net.sourceforge.uiq3.IPropertyNotifier
        Parameters:
        propertyName - The name of the property that was listened on.
        listener - The PropertyChangeListener to be removed
        Since:
        1.2
      • Add_Negative

        public final void Add_Negative()
        toggle plus / minus for either mantissa or exponent.
        Specified by:
        Add_Negative in interface IA_Register
      • Add_Numeric

        public void Add_Numeric​(short Digit)
                         throws Error
        Add a numeric value - this is a non scrolling operation.
        Specified by:
        Add_Numeric in interface IA_Register
        Parameters:
        Digit - the digit to add
        Throws:
        Op_Error - something went wrong
        Error - something went wrong
      • Clear

        public final void Clear​(boolean AC)
        Clear content of Register
        Specified by:
        Clear in interface IClear
        Overrides:
        Clear in class Op_M
        Parameters:
        AC - true when AC (all clear) is requested.
        See Also:
        IClear.Clear(boolean)
      • Clear_Display_Value

        public final void Clear_Display_Value​(int From,
                                              int To)
        Clear content of Register
        Specified by:
        Clear_Display_Value in interface IA_Register
        Parameters:
        From - First character to clean
        To - Last character to clean
      • Create_Print_Value

        public final void Create_Print_Value()
        Create the optional print value which can be up to 30 characters.
        Specified by:
        Create_Print_Value in interface IA_Register
      • Debug_String

        @TestOnly
        @NotNull
        public @NotNull String Debug_String()
        Specified by:
        Debug_String in interface ITraceable
        Returns:
        string representation of the instance suitable for debugging.
      • Display_Count

        public final int Display_Count()
        Count the amount of characters. Grows indefinitely
        Specified by:
        Display_Count in interface IA_Register
        Returns:
        amount of characters
      • Display_Count

        public final void Display_Count​(int Char_Count)
        Count the amount of characters. Grows indefinitely.
        Specified by:
        Display_Count in interface IA_Register
        Parameters:
        Char_Count - amount of characters
      • Display_Message

        public final void Display_Message​(short @NotNull [] Text)
        Display an informative message until next key is pressed.
        Specified by:
        Display_Message in interface IA_Register
        Parameters:
        Text - Test to be displayed
      • Execute

        public final void Execute​(short Opcode)
                           throws Error
        Execute virtual CPU command
        Specified by:
        Execute in interface IOperation
        Overrides:
        Execute in class Op_M
        Parameters:
        Opcode - Virtual CPU Operation to be executed
        Throws:
        Error - general calculator error
        Error
        See Also:
        Op_M.Execute(short)
      • Filename_Value

        public final short @NotNull [] Filename_Value()
        Get value of the register for use with as filename.
        Specified by:
        Filename_Value in interface IA_Register
        Returns:
        current value
      • Get_Display

        private final short @NotNull [] Get_Display​(@NotNull
                                                    net.sourceforge.uiq3.calculator.ICalculator.DisplayType Display_Mode)
                                             throws Error,
                                                    IllegalArgumentException

        Get Content of Display.

        Parameters:
        Display_Mode - Last or Current Display mode
        Returns:
        Content of Display
        Throws:
        Error
        IllegalArgumentException
      • Get_arX_Count

        final int Get_arX_Count()
        Count the amount of arx # characters.
        Returns:
        Return amount arX aka # characters
      • Insert

        private void Insert​(short Character)
                     throws Error
        Insert a single character
        Parameters:
        Character - an Character
        Throws:
        Error
      • Insert

        public final int Insert​(short @NotNull [] Text)
                         throws Error

        Insert content of an String.

        Specified by:
        Insert in interface IA_Register
        Parameters:
        Text - Text to insert without leading spaces and exponent
        Returns:
        Characters inserted
        Throws:
        Error
      • Insert_X

        public void Insert_X()
                      throws Error
        Insert content of L0 aka X register into the string.
        Specified by:
        Insert_X in interface IA_Register
        Throws:
        Error
      • Limit_Alpha

        public final void Limit_Alpha​(int Num_Char)
        Limit Alpha text to Start_Char
        Specified by:
        Limit_Alpha in interface IA_Register
        Parameters:
        Num_Char - max char allowed
      • Mode

        @NotNull
        public final @NotNull IA_Register.Mode_Type Mode()
        Get alpha register entry mode
        Specified by:
        Mode in interface IA_Register
        Returns:
        Mode_Normal
        normal numeric entry mode
        Mode_Fraction
        fraction entry mode
        Mode_Exponent
        exponent entry mode
        Mode_Begin_Alpha
        begins alpha mode
        Keyboard_Alpha
        alpha entry mode
      • Mode

        public final void Mode​(@NotNull
                               @NotNull IA_Register.Mode_Type Mode)
        Set alpha register entry mode
        Mode_Normal
        normal numeric entry mode
        Mode_Fraction
        fraction entry mode
        Mode_Exponent
        exponent entry mode
        Mode_Begin_Alpha
        begins alpha mode
        Keyboard_Alpha
        alpha entry mode
        Specified by:
        Mode in interface IA_Register
        Parameters:
        Mode - new register mode
      • Numeric_Value

        @NotNull
        public final Number Numeric_Value()
                                   throws Error
        Get value of the register for use with as BCD value.
        Specified by:
        Numeric_Value in interface IA_Register
        Returns:
        current value
        Throws:
        Error - something went wrong
      • Print_Value

        public final short @NotNull [] Print_Value()

        Get value of the register for use with printer or tape interface.

        Specified by:
        Print_Value in interface IA_Register
        Returns:
        current value
      • Print_Value

        public final void Print_Value​(short @NotNull [] Value,
                                      int Size)

        Set value of the register for use with printer or tape interface. Also contains a backup of the alpha string for the append function

        Specified by:
        Print_Value in interface IA_Register
        Parameters:
        Value - Value
        Size - Characters used
      • Printer_Count

        public final int Printer_Count()

        Count the amount of characters inserted to the printer. Stops at max printout length.

        Specified by:
        Printer_Count in interface IA_Register
        Returns:
        amount of characters in print
      • Printer_Count

        public final void Printer_Count​(int Char_Count)

        Count the amount of characters inserted to the printer. Stops at max printout length.

        Specified by:
        Printer_Count in interface IA_Register
        Parameters:
        Char_Count - amount of characters to print
      • Set_File_Type

        void Set_File_Type​(short @NotNull [] Value)
        Set_Value of the register - only the display part.
        Parameters:
        Value - new value
      • Start_Alpha

        public final void Start_Alpha()

        Start a new alpha run. This flag is needed for proper handling of the ; (append) token.

        Specified by:
        Start_Alpha in interface IA_Register
      • Start_Decimal_Fraction

        public final void Start_Decimal_Fraction()

        start to enter the part behind the fraction mark point

        Specified by:
        Start_Decimal_Fraction in interface IA_Register
      • Start_Exponent

        public final void Start_Exponent()
        Start to enter the exponent.
        Specified by:
        Start_Exponent in interface IA_Register
      • Trace

        public void Trace()
        Trace current value
        Specified by:
        Trace in interface ITraceable
      • Value

        public final short @NotNull [] Value()
        Get value of the register for use with display.
        Specified by:
        Value in interface IA_Register
        Returns:
        clone of current value
      • Value

        public final void Value​(short @NotNull [] Value)
        Set value of the register.
        Specified by:
        Value in interface IA_Register
        Parameters:
        Value - new value