Egtapi is Emory's Graphical Tool for Assembler Programming Instruction that was originally created by the graduate student Bo Yang as his Master thesis project under the direction of Dr. Shun Yan Cheung. The original version worked with Emacsim on the Solaris platform. Emacsim is the Emory Machintosh Emulator developed by Edgar Leon under the direction of Dr. Ken Mandelberg. In 2014, Andrew McLeod ported Emacsim to Linux. Egtapi was then modified to work with the new Emacsim on the Linux platform. In 2017, Egtapi was re-designed by Bashan Zuo as a Java desktop application.
• E.properties is now used for environment/runtime parameter override, and it is not being shipped with this and future Egtapi release
• Add lab0z hostkey check to prevent man in the middle attack
• Disable font size adjust button in compile window when no content is being present
v20200117 New• Add some documentation for code
• Add README file for module and folder
• Add compile script and deploy script for future developer
• remove white-space, warning, unused variable, unused import ...
v20200103• Update filter for turn-in and compile module
v20191209• Previous version breaks syntax highlighting
v20191114• Add c and java compiler support
• Add compiler optional flag support
• Update as255 script for lab machine and ARM machine
v20191113• Add C syntax highlight for editor
• Add as255c compiler for both lab machine and ARM machine
• (revert the change v20191107) List code area now mouse transparent.
v20191111• Add close button to list code warning banner
• Adjust list code warning banner style
• List code now can auto focus in the middle of the viewport
• List code area now mouse transparent (non-selectable)
• Custom executable file name for source code compiling
• Change compile result area to non-editable
• Remove Halloween skin
v20191107• Update as255 and run255 script to support new feature and changes
• Kernel upgrade / reboot
• Change time zone to US/Eastern
v201901101• Add breakpoint hit count and line location in the right click context menu
• Add "Source file is more recent than executable" warning banner in list code view
• Replace "step" button with "next" button to skip function call
• Replace "step into" button with "step" button
• Fix list code won't update after change made to source code
• Fix debug file format error that cause program stop loading
• Adjust context menu style for watch panel and breakpoint panel
• Adjust the loading procedure
v201901101• Update compiling script(as255) so that the supported object file don't loss debug info
• Update list code module so it can jump to different source file
• Fix Array module display
• Fix Stack module scroll focus issue
v201901024• Thread optimization for slow VPN connection
• Silently remove invalid debug variable
• Check pjX dir exist before execute prepare script
• Add file type filter for turn-in module
• New constructor and update dispatcher for all debug modules
• New separate login window
• Add list code module for user to track program counter
• Halloween skin
• Many other small bug fix
• Code refactoring (95%)
v201901021• Update JRE to version 8u231
• Code refactoring (60%)
v201901016• Move loading edit file to a separate thread
• Fix restore feature doesn't work with a subdirectory file
v201901010• Add restore from all previous revision feature
• Fix another multiple window conflict issue
v201901009• Add ability to compile multiple file from different directory.
• Add more syntax highlighting support
• Many font and CSS adjustment
• Change prompt text for debug file error
v201901008• Fix LOAD button get disabled by an uncaught exception
• Fix multiple window conflict issue
• Add request extension feature
v201901003• Fix turn-in script redirect error
• Adjust File Browser layout
• Adjust turn-in panel looking
• Add prepare feature
• Separate turn-in and prepare thread from GUI thread
v201901001• Set HEX format as default value for FP IP SP registers
• Fix register won't set back to default when switching to noDebugFile program
• Adjust File Browser layout
• Add turn-in feature, include turn-in preview, turn-in result check
v201900930• Implement two-phase protocol to make saving file secure
• Add file restore feature
• Add file backup feature
• Fix multiple file selection doesn't work properly on Windows OS
v201900926• Fix leading ZERO problem in parsing CPSR register
• Fix E.property file cannot be read problem when path contains non-ASCII characters
• Fix white space problem in java path
v20190903• Add scroll bar position memoization for Memory panel
• Add auto focus to track the latest change in stack panel
v20190830• Reload now reload and start over the entire program and debug file
• Add content-rich context left-click menu for variable/array/list/breakpoint
v20190828• Fix wrong 4-byte color highlighting in Data section
• Fix that undefined variable in debug file cause Egtapi to hang
v20190819• Correct typo in memory section
• Add float and str display option for register and variable
• Add address display in breakpoint and variable context menu
v20190815• New ARM host "cs255host1" is available for instructor use only
• Disable auto-load .gdbinit in run255 script
• Remove cs255lib.o from as255 script
• Add error redirect for linker in as255 script
• Disable print(stdout) area
v20190801• Debug file indicator text not update after reloading
• Set ssh 'ciphers' to 'none' for local mode
• Fix reload action might cause a crash in local mode
v20190723• Add Step into and Step out button
• Update to a new set of icons for the main panel
• Add local mode for Linux version
v20190722• Add alert dialog for missing label
• Add red color for reached breakpoint
v20190710• Re-implementing Memory and Stack display function
• Fix several label related bugs (DataStart, DataEnd)
v20190709• Fix an array display issue
• Error handle for missing labels
• Fix reload won't re-download debug file
• Reverse the memory value display to little-endian order
v20190628• Add hex display for variable when set to DSI and DUI
• Add data section display for memory module
• Add new label support: CodeEnd, DataStart, DataEnd
v20190625• Adjust list watch display
v20190620• Fix an issue in dynamic list generation(anonymous node)
v20190614• Support arbitrary number of fields for the list node
v20190613• Add Interrupt button to escape infinite loop
• Register color adjustment
• Add built-in print function and stdout area
• Add Linux 32-bit version
• Fix a multi-selection issue when compiling multiple source files
• Fix a breakpoint issue that Step button won't be disabled when hitting 'Stop' breakpoint
• Fix several font size and GUI related issue
v20190606• Support ARM assembly language
• Improved File Browser refresh speed
• MANY improvements
v20190530• Speed up file browser module especially when user has large number of files under cs255 directory.
v20181212• Add new function, multiple file selection and compilation.
v20181203• Disable opening the second editor window.
• Replace .app program with a shell script in Mac OS version due to the system permission issue.
v20181126• Fix a classic "index out of bound" bug while adding array.
v20181113• Fix array display hex value issue.
• Add error message to post-compiling report.
• Add split option between (Array List Variable) section and breakpoints section.
v20181109• Add change font size feature in terminal, editor and the post-compiling report.
• Preserve the folder that have expanded after the refresh.
• Auto refresh file browser after compiling a file.
v20181106• Optimized edit download thread, now it will not block the GUI.
• Optimized sliding in/out animation thread.
• Editor font changed to monospaced.
• Fix byte arrays and short array do not display properly in the array viewer.
• Add error display for odd address access.
• Fix an issue where newly created file could not be reloaded.
• Add status label in FileBrowser.
• Add self-updating function.
• Disable buttons during the command execution to avoid conflict.
• Replace the exe file with the bat file to prevent being treated as virus from AV.
• Fix a thread issue in editor where file might not get uploaded before closing editor window.
• Resolve the high CPU and memory usage made by 'change_listener' in editor.
• Add status label in editor window.
• Add editor close event handler to alert user unsaved change.
• Update 'last modified on server' message after each save click in editor.
• Enable File Browser and Terminal buttons until successful login.
• Disable server list in Login panel.
• Fix an issue that KSH shell user may not get proper error message after pressing the compile button.
• Fix a session issue where Egtapi has no response after several times reload.
• Other small changes, edit button file type check.
• Drop-down item adjustment.
• Updated the help menu.
v20180723• Fix a thread issue that block GUI thread after clicking on Select.
• File Browser now display directory first.
• Fixed text binding problem where "loading" message won't display.
v20180717• Merged SELECT and LOAD features.
• Simplified login process.
• Fixed a color issue that A6 use DARKMAGENTA before it becomes "older" in System Stack pane.
v20180711• Reload button now able to reload debug file and display file.
v20180706• Removed some UI related operation into Platform.runLater call.
• Removed one redundant task thread in select() function.
• Fixed text not highlight on "psr" text field when content change event occurs (tested with div1.s)
• Fixed "root path" label missing after establishing the connection.
• Fixed a display problem that stack info does not append to the bottom.
• Handle "no debug file" case, when user click Save button.
• Fixed editing file start with it's actual file name.
• Fixed Stop label when no debug file found.
• Fixed font size increase change back target textfield color problem.
• Purple color on the stack pointer A6.
• Added constant red color on A7.
• Added darker purple on the second and third stack pointer item in stack view.
• Added constant blue on PC field.
• Show compile error message on failure, otherwise, show list file in a popup window.
• UI rearrange, added section labels.
• Keep color unchanged when setting display format.
• New simple and experimental Egtapi build-in text editor.
• Runtime error display, identified by keywords: "trap" and "SIGILL".
• Check egt.prog then .egt.prog, check disp.prog then .disp.prog .
• Create egt.prog or disp.prog if needed.
• Display setting store and recover now available.
• Added no display file indicator.
• Fixed the Stop1 bug where no instructions can be executed after hitting the breakpoint.
v20180615• This version fixes the problem with the A7 register not being fully displayed on Windows 10 64 bit with medium fonts (125%).
v20180613