Class Op_Interface

    • Field Detail

      • AF_Text

        private static final short @NotNull [] AF_Text
        Filetype Text for All-Files
      • Alpha_Id

        private static final int Alpha_Id
        Don't use a numeric file Id.
        See Also:
        Constant Field Values
      • DF_Text

        private static final short @NotNull [] DF_Text
        Filetype Text for Data-Files
      • Logger

        private static final Logger Logger

        Class logger instance.

      • PF_Text

        private static final short[] PF_Text
        Filetype Text for Program-Files
      • Program_All_Text

        private static final short @NotNull [] Program_All_Text

        All programs stored

      • Program_None_Text

        private static final short @NotNull [] Program_None_Text

        All programs stored

      • TAG

        private static final String TAG

        Class logger tag.

      • HAS_BEEN_SET_AT_THE_BEGINNING_OF_THE_SAVE_OPERATION

        protected static final String HAS_BEEN_SET_AT_THE_BEGINNING_OF_THE_SAVE_OPERATION

        Assert message

        See Also:
        Constant Field Values
      • Backup_Display_Mode

        @Nullable
        private net.sourceforge.uiq3.calculator.ICalculator.DisplayType Backup_Display_Mode
        keep backup of display mode.
      • Backup_Numeric

        private short @Nullable [] Backup_Numeric
        Keep a backup of the A_Numeric Register
      • Num_Id

        private int Num_Id
        Numeric file name
      • Backup_Display_Count

        int Backup_Display_Count
        Remember the display character count for the A_Text register.
      • Backup_L

        @Nullable
        Number Backup_L
        Keep a backup of the L Register
      • Backup_Print

        short @Nullable [] Backup_Print

        Keep a backup of the A Register. Needed for save and load the alpha register operation. Need be cleared after print operations.

      • Backup_Printer_Count

        int Backup_Printer_Count
      • Backup_Active_Numeric

        @Nullable
        protected net.sourceforge.uiq3.calculator.ICalculator.AlphaRegisterType Backup_Active_Numeric
        Backup active numeric rows
      • Backup_Active_Text

        @Nullable
        protected net.sourceforge.uiq3.calculator.ICalculator.AlphaRegisterType Backup_Active_Text
        Backup active text rows
      • Backup_Text

        protected short @Nullable [] Backup_Text
        Keep a backup of the of A_Text. Also used for save display operation.
    • Constructor Detail

      • Op_Interface

        Op_Interface​(@NotNull
                     @NotNull Calculator Owner)
        Create operation and attach to owning calculator.
        Parameters:
        Owner - Calculator which will call this Opcode
    • Method Detail

      • Backup_Display

        private void Backup_Display()

        Backup the display (A and L Register). This is necessary as I/O operations might be followed by file name or file number which will is composed in the A_Text and L_X register respectively. To change this a massive change Op_Alpha or Op_Num would be needed. A backup is a lot simpler.

      • Casio_File_Name

        @Contract(pure=true)
        int @NotNull [] Casio_File_Name()
        return filename to be used inside the file header.
        Returns:
        alpha register as internal file name as array of integer range 0 .. 255
      • Clear

        public void Clear​(boolean AC)
        Reset state - for state full operations.
        Parameters:
        AC - All Clear reset
        See Also:
        IClear.Clear(boolean)
      • Clear_Backup

        public final void Clear_Backup()

        clear the backup data so it won't be accidentally used

      • Display_File_Name

        void Display_File_Name​(@NotNull
                               Interface.File_Type Type,
                               short @NotNull [] File_Name)
                        throws Error
        Display filename.
        Parameters:
        Type - File Type to print oder display
        Throws:
        Op_Error - when the file type does not fit
        Error
      • Execute

        public void Execute​(short Opcode)
                     throws Error
        Description copied from interface: IOperation

        Execute virtual CPU command or key stroke

        Parameters:
        Opcode - Virtual CPU Operation to be executed
        Throws:
        Error - numeric error
        Error
        See Also:
        IOperation.Execute(short)
      • Filename

        protected short @NotNull [] Filename()

        get the raw file name

        Returns:
        get the filename as alpha characters
      • Java_File_Name

        protected String Java_File_Name()
        Returns:
        alpha register as file name
      • Restore_Display

        protected final void Restore_Display()
                                      throws Error
        Restore the Display (A and L Register)
        Throws:
        Error - when something failed