Skip to content

cbase-larrymod/bpp-plus

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BPP+ Preprocessor

Modern toolchain for Commodore 64 BASIC v2 cross-development

BPP+ is a source-to-source compiler that transpiles enhanced BASIC syntax into standard Commodore BASIC v2. It provides label-based control flow, lexical scoping, modular compilation, and comprehensive static analysis.

Extended from the original BPP preprocessor by Henning Liebenau.

Part of the C*Base Larry Mod v3.1 development package.

Quick Example

Source - Enhanced syntax with labels, scopes and statement chaining (.bpp)

goto main

screen: {
    init:
        poke 53280,0\
        poke 53281,0\
        return
}

screen: {
    welcome:
        print "hello bpp+"\
        return
}

main:
    gosub screen.init
    gosub screen.welcome

Target - Standard BASIC v2 with line numbers (.bas)

1 goto 4
2 poke53280,0:poke53281,0:return
3 print"hello bpp+":return
4 gosub2
5 gosub3

Documentation

Complete documentation is available on C*Base Reference Guide - BPP+ Preprocessor

Quick start

# Install
git clone https://github.com/cbase-larrymod/bpp-plus.git
cd bpp-plus
chmod +x bpp

# Use
bpp source.bpp > output.bas
petcat -w2 -o program.prg -- output.bas
x64 program.prg

See the Installation page for detailed setup instructions.

Contributing

Issues and pull requests are welcome. Please maintain consistency with existing patterns when adding new features.

Version history

[1.0.5] - 2025-11-19 (Current)

Added

Build Placeholder Enhancements
  • New build placeholders for flexible timestamping
    • {builddate} - Current date in YYYY-MM-DD format
    • {buildtime} - Current time in HH:MM format
    • Complements existing {buildstamp} for more granular control
Documentation
  • C*Base Reference Guide integration
    • Complete documentation now in docs/manual.md
    • Mirrors C*Base Reference Guide
    • Comprehensive examples and usage patterns
    • Installation and compilation instructions

Changed

  • {buildstamp} format updated

    • Now includes both date and time in YYYY-MM-DD HH:MM format
    • Consistent timestamp format across all build modes
  • Help message improvements

    • Updated --help / -h output for clarity
  • Documentation restructuring

    • Primary documentation moved from GitHub Wiki to C*Base Reference Guide

See CHANGELOG.md for complete history.

References

Technical documentation

Commodore BASIC v2 Specification:

Petcat Documentation:

License

See LICENSE file for details.

Repository

GitHub: cbase-larrymod/bpp-plus
Original BPP: github.com/hbekel/bpp

About

A BASIC v2 (Commodore 64) preprocessor for use with Petcat

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • Ruby 97.4%
  • Makefile 2.6%