# MP3 ID3 Tag Reader

![GnuCOBOL](https://img.shields.io/badge/GnuCOBOL-3.2.0%2B-blue)

![Fun COBOL Image](assets/images/cobol.png)

This project is a COBOL-based MP3 ID3 tag reader that parses and displays metadata from MP3 files. It uses GnuCOBOL for compilation and execution.

## Software Requirements

- **GnuCOBOL**: Version 3.2.0 or later
  - Ensure GnuCOBOL is installed and accessible via the `cobc` command.
- **Operating System**: Linux (tested on May 5, 2025)
- **Make**: Version 4.3 or later (for building the project)
- **Git**: Version 2.30.0 or later (for version control)

## Project Structure

- `id3cobol.cbl`: Main COBOL program for reading and parsing MP3 ID3 tags.
- `zero-ord.cbl`: COBOL module for zero-based ordinal conversion.
- `Makefile`: Build automation file for compiling and cleaning the project.
- `.gitignore`: Specifies files and directories to be ignored by Git.

## Build Instructions

1. **Compile the `zero-ord` module**:
   ```bash
   make zero-ord
   ```

2. **Compile the `id3cobol` program**:
   ```bash
   make id3cobol
   ```

3. **Clean up build artifacts**:
   ```bash
   make clean
   ```

4. **Perform a deep clean (removes all artifacts)**:
   ```bash
   make distclean
   ```

## Usage

Run the compiled `id3cobol` program to parse the `audio.mp3` file:
```bash
./id3cobol
```

> **Note**: Ensure you have an `audio.mp3` file in the same directory as the program. This file is required for the program to function.

## Debugging

To enable debugging, ensure the `WS-DEBUG-MODE` variable in `id3cobol.cbl` is set to `1`. This will display additional debug information during execution.

## License

This project is licensed under the MIT License. See the LICENSE file for details.