Skip to content

Releases: Marco4413/ProcessorEmulator

PEMU-1.12.2-RELEASE

14 Sep 19:50

Choose a tag to compare

-- Version (v1.12.2-RELEASE)
-- Changes from commit e0e292b

Hopefully fixed all issues with TJMenuItem's disabled color
Removed useless constructors for class TJMenuItem
Fixed an issue that would prevent Icons from loading and raise exceptions in newer Java Versions

PEMU-1.12.1-RELEASE

12 Sep 16:32

Choose a tag to compare

-- Version (v1.12.1-RELEASE)
-- Changes from commit dc910e9

Changed Consoles' Font to JetBrains Mono (It's also bundled with the Jar, so no issues of not having the Font)

Changed Plugin's Load and Unload order (Now the old Plugin is unloaded before the new one is Loaded)
Made Application#loadPlugin not load the same Plugin twice

PEMU-1.12.0-RELEASE

20 Aug 13:32

Choose a tag to compare

This is the biggest update to date, this also adds JRuby as a dependency so the jar file size is way bigger

-- Version (v1.12.0-RELEASE)
-- Changes from commit 817a967

Added methods to PEMUJRubyPluginAPI to add a compat layer
Added throw signature to method IPlugin#onLoad
Removed arguments from method IPlugin#onLoad
Translated class ExternalPlugin's console messages

Changed the way Application displays plugin's errors
Changed the way errors are handled by method PluginManager.compilePlugin

Moved all Console-related classes from package pemu.app and pemu.utils to package pemu.console
Renamed methods of interface IConsole:

  • getWriter -> toWriter
  • getPrintStream -> toPrintStream

Changed static method FileUtils.tryGetCanonicalPath return fallback, it should now be more similar to the real canonical path
Made static method StringUtils.stackTraceAsString trim its result

-- Changes from commit 8d10fc5

Fixed MemoryView adding extra rows on Registers and Flags Table
Added class HTMLTableBuilder
Added static method StringUtils.escapeHTML

-- Changes from commit 35678f9

Added command line arguments: "--plugin", "--language"
Now the last loaded plugin is saved in the config so that it's loaded when the app is opened again

Reworked TranslationManager class:
Added static methods to class TranslationManager: hasTranslation, getTranslation, getAvailableTranslations
Made static method TranslationManager.setCurrentTranslation return a boolean (which says if the specified language loaded)
Made static method TranslationManager.loadTranslation private

Changed the return value of methods Translation#getShortName and Translation#getLongName
Added overload for method Translation#toString

Made class BasePlugin a singleton

-- Changes from commit d61b49c

Improved the compilation error message
Improved Application's Title Program Path

Added static method FileUtils.tryGetCanonicalPath
Renamed static method of FileUtils from getFilePathWithExtension to getFileWithExtension
Hopefully fixed some issues that could've happened with the method FileUtils.createFile

Removed some useless File#exists checks
Removed PEMULangUtil.py (Now that there's a VSCode extension that does the same but better it's kind of useless)

-- Changes from commit 78f817f

Translated most of the Debug Console messages (Compiler errors won't be translated)

Added Ruby Plugins easy access to packages: pemu.localization, pemu.files
Added method Translation#merge
Added static method Translation.mergeTranslations
Added static field TranslationManager.LANGUAGE_EXTENSION
Made static method TranslationManager.parseTranslation public

Made static method FileUtils.getFilePathWithExtension return a File instance instead of a String

-- Changes from commit 304a9ff

Added Dependency: JRuby

Renamed methods of interface IPlugin:

  • createProcessor -> onCreateProcessor
  • createDummyProcessor -> onCreateDummyProcessor
    Added methods to interface IPlugin: onLoad, onUnload

Added static field FileManager.PLUGINS_DIR
Added static method FileManager.getPluginDirectory

Added enum PluginType
Added class ExternalPlugin, which is used when loading an external plugin
Reworked class PluginManager (See JavaDocs, it's been Documented)

Added interface IConsole
Modified interface IPrintable
Added class ConsolePrintStream
Removed class PrintablePrintStream

Now outputs stored by the Console class are stored as IConsole(s)

Added margins to ConsoleComponent
Updated ConsoleComponent to use the new IConsole interface instead of IPrintable
Now if not on the command line, both System.out and System.err are re-routed to Console.Debug

Improved message for when no plugin is loaded by the Application

-- Changes from commit 63f88ca

Added static class PluginManager
Added Plugin Selection in File Menu
Removed method IPlugin.getDescription
Added defaults to all methods from interface IPlugin
Added abstract class Plugin which implements IPlugin and overrides the toString method

Removed some methods related to Plugins from Application class (Now everything is handled by PluginManager)

  • Kept methods: loadPlugin, getLoadedPlugin

Added package pemu.files
Added static classes to package pemu.files: FileManager, FileUtils
Moved and renamed File-related methods from class StringUtils to FileUtils

Added constructor overload for class DummyProcessor that accepts Lists instead of Arrays

-- Changes from commit c2f5bea

Added basic Plugin System
Added class BasePlugin
Added interface IPlugin

Added methods to Application: addPlugin, getLoadedPlugin
Removed methods from Application: setProducer, setDummyProducer

Added class InstructionHistory

  • Which will now be used by IProcessor#getInstructionHistory

PEMU-1.11.5-RELEASE

27 Jul 16:39

Choose a tag to compare

-- Version (v1.11.5-RELEASE)
-- Changes from commit 024ef15

Made Open File Dialog start in the directory of the current program
Now Open and Save Dialog Paths aren't the same

-- Changes from commit bfa9631

Added command line argument: "--version"

-- Changes from commit d3d7288

Added command line argument: "--no-config-auto-save"

PEMU-1.11.0-RELEASE

24 Jul 13:33

Choose a tag to compare

-- Version (v1.11.0-RELEASE)
-- Changes from commit 36df4bb

Changed all Reference Errors thrown by Labels to include the position of the first Label's usage
Renamed all methods in interface ILabel with "Last" in their name to not include it

-- Changes from commit 9ca6094

Now all Reference Errors thrown by Labels should know where that Label was last used at

Added methods to interface ILabel:
hasPointer, setLastInstance, removeLastInstance, getLastInstanceFile, getLastInstanceLine, getLastInstanceChar

-- Changes from commit a2c936e

Added command line argument: "--obfuscate"

-- Changes from commit 573e58e

Now Constants' Circular References Errors always know the file and pos of the error (Might slow down Compile Times)

Added method Constant#isCircularReference
Added static method Constant.formatReferences
Improved method Constant#getValue (Maybe improved speed? At least recursion is gone)

PEMU-1.10.2-RELEASE

20 Jul 12:55

Choose a tag to compare

-- Version (v1.10.2-RELEASE)
-- Changes from commit 08c72ef

Made arrays and offsets created using constants use the constant's last assigned value at the moment of their creation

-- Changes from commit e443882

Fixed Characters and Strings accepting actual new line characters, multi-line strings is no more

PEMU-1.10.0-RELEASE

19 Jul 15:53

Choose a tag to compare

-- Version (v1.10.0-RELEASE)
-- Changes from commit 43059b2

Added Standard PEMU Library

Changed the way Constants are handled by the Compiler, now they're value is the last one that was set to them
Added Constant Circular Reference Error

Added class Constant
Changed the return type of Constants.getDefaultConstants

-- Changes from commit cb43857

Added PEMU Lib files to Open File Dialog

-- Changes from commit bd31675

Added INCLUDE Compiler Instruction

  • Because of that, half of the Compiler's code was reworked
    Changed Compiler's Error Syntax to include the file that generated the Error

-- Changes from commit e980b99

Reworked Tokenizer and Token classes (again)
Now Compiler can tell the difference between an Horizontal and Vertical Space

PEMU-1.9.0-RELEASE

17 Jul 14:01

Choose a tag to compare

-- Version (v1.9.0-RELEASE)
-- Changes from commit b3a30f5

Added simulation performance at the bottom of the Application
Fixed closing using the Quit button not saving config
Renamed some config keys

Renamed command line argument "--memory" to "--memory-size"
Renamed command line argument "--clock" to "--clock-frequency"
Fixed command line flag "--run" closing the app even when not on the command line

Added icon to Processor Config Panel

Removed methods from class CompiledProgram: getCompileTimeNanos, getCompileTimeMicros, getCompileTimeMillis
Added method CompiledProgram#getCompileTime

Added methods to Clock class: getInterval, getDeltaTime

Renamed method Clock#getClock to getFrequency
Renamed method Clock#setClock to setFrequency
Renamed method ProcessorConfig#getClock to getClockFrequency
Renamed method ProcessorConfig#setClock to setClockFrequency
Renamed all static fields in Clock and ProcessorConfig referring to Clock Rate to include Frequency in the name instead of Clock

Now method StringUtils.format accepts an Object vararg as formats and it will use their toString method to convert them
Removed static methods from StringUtils: getEngNotationInt, getEngNotationLong
Added method StringUtils.getEngNotation

-- Changes from commit 6b3a847

Added a way of allocating an array without specifying elements' value
Now comments can be added mid-array to comment on a certain element

PEMU-1.8.6-RELEASE

16 Jul 00:43

Choose a tag to compare

-- Version (v1.8.6-RELEASE)
-- Changes from commit 09fc55e

Now JA and JNBE Instructions should work as intended
Added a new line character on BRK Instruction's Debug Log
Made Application check if the current program is still valid before Compiling

PEMU-1.8.5-RELEASE

15 Jul 14:22

Choose a tag to compare

-- Version (v1.8.5-RELEASE)
-- Changes from commit 4c33099

Added command line arguments: "--verify", "--skip-warning"
Added PEMULangUtil.py, a Python script which helps verifying programs from the command line
Improved layout of Registers and Flags in MemoryView