Skip to content

AmarnathCJD/SICAssembler

Repository files navigation

SIC Assembler (Pass 1 + Pass 2) Android App

Project Overview

Welcome to the SIC Assembler Android app 🤖 — a comprehensive tool that brings the full assembly process for SIC programs to your mobile device. This app covers both Pass 1 and Pass 2 functionalities, making it an essential companion for students, developers, and enthusiasts who want to assemble SIC code with ease and efficiency.

Key Features

  • Preset Support: Quickly load and assemble common SIC program examples for fast learning 📚.
  • Open Code & OPTAB from File: Flexibly work with your own custom SIC programs and instruction sets 📁.
  • Step-by-Step Assembly: Run the assembly process in Pass 1 & Pass 2 modes, providing detailed intermediate results and insights 🔍.
  • Material Design UI: A modern, intuitive interface powered by a sleek material design 🎨.
  • Dark Mode Support: Designed for comfort in low-light environments, perfect for late-night coding sessions 🌙.
  • Fast & Efficient: Optimized to assemble programs quickly, ensuring a smooth user experience 🚀.
  • Error Handling: Comprehensive error detection and reporting to guide you through issues during assembly 🚨.
  • Pure Kotlin: Built entirely in Kotlin, leveraging the language's power for a responsive and efficient app 💻.

Technology Stack

  • Platform: Android
  • Backend: Kotlin
  • Frontend: Jetpack Compose (Kotlin)

Screenshots

Image 1 Image 2

How To Use

  1. Input Source Code:

    Start by entering the SIC assembly source code into the input field provided. Ensure that the code follows standard SIC syntax and structure, including labels, instructions, and operands.

  2. Load OPTAB (Operation Table):

    Load the OPTAB, which contains the mnemonic operations and their corresponding opcode values. The OPTAB is preloaded with the necessary data, but you can also edit or add new instructions if required.

  3. Click "Assemble" Button:

    After entering the source code and loading the OPTAB, click on the "Assemble" button to begin the Pass 2 assembly process. The assembler will:

    • Convert mnemonics into object code using the OPTAB.
    • Resolve addresses using the symbol table generated in Pass 1.
    • Generate the final object code, ready for execution.
  4. View Output:

    Once the assembly process is complete, the assembled object code will be displayed along with any relevant listings or error messages.

Project Structure

This project is designed with clean architecture principles, ensuring a clear separation of concerns. The frontend is built with Jetpack Compose for a modern, declarative UI, while the backend uses Kotlin to handle logic, making development and debugging simpler.

Getting Started

Ready to dive into the SIC Assembler app? Follow these steps to get up and running:

  1. Visit the Releases section of the GitHub repository and download the latest APK file.
  2. Install the APK on your Android device.
  3. For development, clone the repository and open it in Android Studio.
  4. Run the app using an emulator or a physical device.

Contributions

We welcome contributions! Whether you're interested in adding new features, fixing bugs, or improving documentation, feel free to fork the repository and submit a pull request. Your contributions will help make this project even better 👍.

License

This project is licensed under the MIT License. Feel free to use, modify, and distribute this code for personal or commercial projects.