{"id":22301807,"url":"https://github.com/rebelhere/alphabet-catcher","last_synced_at":"2025-03-25T23:46:47.599Z","repository":{"id":265874494,"uuid":"891102640","full_name":"Rebelhere/Alphabet-catcher","owner":"Rebelhere","description":"CatchAlphabets is a game for the Intel 8088, where players use a bucket to catch falling alphabets. The game ends after 10 misses, displays the score, and transitions to scrolling credits. It features custom functions, adjustable speeds, and interrupt-driven input.","archived":false,"fork":false,"pushed_at":"2024-12-01T09:24:21.000Z","size":19,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-25T23:46:42.809Z","etag":null,"topics":["alphabet-catcher","assembly-language","coal","game"],"latest_commit_sha":null,"homepage":"","language":"Assembly","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Rebelhere.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-11-19T18:21:51.000Z","updated_at":"2024-12-01T09:24:25.000Z","dependencies_parsed_at":"2024-12-01T10:31:53.559Z","dependency_job_id":"62b65dbc-6edc-4161-b989-48e13dfbd937","html_url":"https://github.com/Rebelhere/Alphabet-catcher","commit_stats":null,"previous_names":["rebelhere/alphabet-catcher"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rebelhere%2FAlphabet-catcher","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rebelhere%2FAlphabet-catcher/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rebelhere%2FAlphabet-catcher/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rebelhere%2FAlphabet-catcher/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Rebelhere","download_url":"https://codeload.github.com/Rebelhere/Alphabet-catcher/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245563039,"owners_count":20635907,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["alphabet-catcher","assembly-language","coal","game"],"created_at":"2024-12-03T18:31:16.548Z","updated_at":"2025-03-25T23:46:47.578Z","avatar_url":"https://github.com/Rebelhere.png","language":"Assembly","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CatchAlphabets Game - Computer Organization and Assembly Language (COAL)\n\n## Project Description\n**CatchAlphabets** is an interactive game developed for the **Intel 8088 microprocessor**, showcasing low-level assembly language programming skills. The game runs on **DOSBox** with NASM, allowing players to control a **bucket** and catch falling alphabets to score points while avoiding penalties. It features a main menu, dynamic gameplay, increasing difficulty over time, and creative endgame elements, making it an excellent demonstration of interrupt handling, custom functions, and real-time user interaction.\n\n---\n\n## Features\n\n### **Core Gameplay**:\n1. **Main Menu**:\n   - At launch, a **main page** is displayed prompting the user to:\n     - **Press any key (except Esc)** to start the game.\n     - Pressing **Esc** displays the credits and exits the program.\n\n2. **Bucket Mechanics**:\n   - A **bucket** (`ASCII value 0xDC`) is displayed at the **bottom-middle** of the screen when the game starts.\n   - The bucket can be moved using the **arrow keys**:\n     - **Left Arrow** (`0x4B`): Move the bucket left.\n     - **Right Arrow** (`0x4D`): Move the bucket right.\n\n3. **Falling Alphabets**:\n   - Alphabets (`A-Z`) appear at random positions in the top row and fall toward the bucket.\n   - At least **5 alphabets** fall simultaneously at varying speeds.\n   - The speed of falling alphabets **automatically increases** at **10 seconds** and again at **20 seconds**, tracked using the **INT 8h hardware interrupt**.\n\n4. **Scoring System**:\n   - Catching an alphabet adds **1 point** to the score.\n   - The score is displayed in the **top-right corner** of the screen.\n\n5. **Game Over Condition**:\n   - Missing **10 alphabets** ends the game.\n   - The player's **final score** and **total time played** are displayed in the **middle of the screen** for a few seconds before transitioning to the credits.\n\n6. **Credits Scroll**:\n   - After displaying the final score and time or pressing **Esc** at the main menu, a scrolling credits screen plays to conclude the game.\n\n---\n\n## How to Run\n1. Install **DOSBox** and **NASM**.\n2. Place the `CatchAlphabets.asm` file in your working directory.\n3. Assemble the game for the 8088:\n   ```\n   nasm -f bin CatchAlphabets.asm -o CatchAlphabets.com\n   ```\n4. Run the game in DOSBox:\n   ```\n   CatchAlphabets.com\n   ```\n\n---\n\n## Gameplay Instructions\n1. **Main Menu**:\n   - Press any key (except **Esc**) to start the game.\n   - Press **Esc** to display the credits and exit.\n\n2. **Move the Bucket**:\n   - Use the **left arrow key** (`0x4B`) to move the bucket left.\n   - Use the **right arrow key** (`0x4D`) to move the bucket right.\n\n3. **Catch Alphabets**:\n   - Align the bucket with falling alphabets to catch them and score points.\n\n4. **Avoid Misses**:\n   - The game ends if **10 alphabets** are missed.\n\n5. **Time-Based Difficulty**:\n   - The speed of falling alphabets increases at **20 seconds** and **40 seconds**, adding to the challenge.\n\n---\n\n## Code Features\n- **Custom Random Function**:  \n  Generates random positions and speeds for falling alphabets.\n- **Real-Time Input**:  \n  Hooks into **INT 9h** for responsive keyboard controls.\n- **Time Tracking**:  \n  Uses **INT 8h hardware interrupt** to track elapsed time and dynamically adjust difficulty.\n- **Adjustable Speed**:  \n  Falling speeds increase automatically based on time, adding progressive difficulty.\n- **Score and Time Display**:  \n  At the end of the game, the final score and total time played are shown in the **middle of the screen**.\n- **Main Menu and Credits**:  \n  A main menu prompts the user to start or quit. A scrolling credits screen concludes the game.\n\n---\n\n## Future Enhancements\n1. **Bomb Mechanic**:\n   - Add **bombs** that fall alongside alphabets.\n   - If the bucket catches a bomb, the player experiences an **instant game over**.\n\n2. **Power-Ups**:\n   - Introduce special alphabets that grant bonuses, such as:\n     - Double points.\n     - Temporarily slowing down falling items.\n\n3. **Sound Effects**:\n   - Add audio cues for catching alphabets, missing them, and the game over.\n\n---\n\n## Credits\n- **Developer**: Muhammad Rahim (Rebelhere)  \n- **Special Thanks**: Ayesha Younus  \n\n**CatchAlphabets - A nostalgic and exciting gaming experience on the Intel 8088!**\n\n---\n\n## Contributing\nFeel free to open issues or submit pull requests for improvements or bug fixes.\n\n---\n\n## Collaboration Guidelines\nWe welcome contributions from the open-source community. If you'd like to collaborate on this project, please adhere to the following guidelines:\n1. Fork the repository.\n2. Create a new branch for your feature or bug fix.\n3. Implement your changes and commit them with descriptive messages.\n4. Push your branch to your fork and submit a pull request.\n\n---\n\n### Feel free to reach out if you have any questions or suggestions !\n\n---\n\n**CatchAlphabets: Relive the thrill of coding and gaming in the 8088 era!**\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frebelhere%2Falphabet-catcher","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frebelhere%2Falphabet-catcher","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frebelhere%2Falphabet-catcher/lists"}