Written in F#, powered by elmish, React Monaco Editor, Electron & Fable

VisUAL2: ARM Simulator

User-friendly Educational Assembler and Simulator for ARM UAL

visual

VisUAL2 is a cross-platform tool that makes it very easy for beginners to write small and medium-sized ARM assembler programs, with no manual and intuitive visual debugging. Even those very familiar with ARM assembler have found VisUAL2 useful for quick writing and debugging. The IDE has helpful error messages and an ergononic GUI that makes debugging visually intuitive. VisUAL2 is a re-engineered and improved version of the original VisUAL created in 2014. Both VisUAL2 and VisUAL are written by Imperial College students.

Getting Started as a Developer

For a quick start go straight to Developer Guide. For more details, go to Documentation.

Getting Started as a User

See the UAL Guide for a top-down guide to ARM assembly language supported by VisUAL2. VisUAL2 can be download here. VisuAL is designed to be self-documenting: no manual needed. Try it and see!
Visual2 has a simple testbench feature that allows automated testing and/or manual testing with inputs specified by a file. Documented here.

Technology

VisUAL2 is written in F#, these files are compiled to JavaScript by Fable. Electron then loads and displays windows of the application HTML, CSS and JavaScript files.

Model-View-Update

VisUAL2 follows the pattern of MVU:

model

Model

Immutable data structure that contains the state of the application
Function init produces the initial model

view

View

Pure function that produces user interface (as React elements) with the current model. When user interacts with the UI, a message is sent to “Update”

update

Update

Pure function that produces the new model with the message and previous model.

Acknowledgements

Visual2 was inspired by Salman Arif's MEng Final Year Project that created Visual.

The initial code for Visual2 was created by Dr. Tom Clarke and the 2018 3rd year HLP students at EEE, Imperial College London. Particular thanks to:

Other excellent code from HLP may be incorporated so that is a minimal initial list of substantive contributors.

Other acknowledgements: