Metadata-Version: 2.1
Name: jeff65
Version: 0.0.1
Summary: A compiler targeting the Commodore 64
Home-page: https://github.com/jdpage/jeff65
Author: Jonathan David Page, Woodrow Barlow
Author-email: jeff65-maintainers@sleepingcyb.org
License: GNU General Public License v3 (GPLv3)
Description: # jeff65
        
        [![Build Status](https://img.shields.io/travis/jdpage/jeff65/master.svg?style=flat-square&logo=travis)](https://travis-ci.org/jdpage/jeff65)
        [![AppVeyor](https://img.shields.io/appveyor/ci/jdpage/jeff65/master.svg?style=flat-square&logo=appveyor)](https://ci.appveyor.com/project/jdpage/jeff65)
        [![Coverage Status](https://img.shields.io/coveralls/github/jdpage/jeff65/master.svg?style=flat-square)](https://coveralls.io/github/jdpage/jeff65?branch=master)
        [![Requirements Status](https://img.shields.io/requires/github/jdpage/jeff65.svg?branch=master&style=flat-square)](https://requires.io/github/jdpage/jeff65/requirements/?branch=master)
        
        *jeff65* is a compiler for the Commodore 64 (and perhaps in the future, other
        6502-based computers). It is implemented in Python 3 and produces .prg files
        which can be loaded directly in VICE, or combined into .d64 disk images, written
        to a floppy disk, and run on real hardware.
        
        **note:** this project is currently in its early stages. Features discussed below
        are largely the product of wishful thinking and may change at any time.
        
        *jeff65* compiles languages using *gold* syntax, producing *blum* files as
        intermediate files. *gold* syntax provides an imperative systems language for
        6502-series processors.
        
        Primary invocation:
        
            usage: jeff65 compile [-h] [-v] file
        
            positional arguments:
              file           the file to compile
        
            optional arguments:
              -h, --help     show this help message and exit
              -v, --verbose  show the output of each pass
        
        
        ## Licensing
        
        The *jeff65* compiler itself is provided under the GPLv3 license; if you
        distribute a modified version of the compiler, you must also make the source
        code for your modified version available, as described in the license terms. A
        copy of the GPLv3 license is included in `LICENSE.txt` in the source
        distribution.
        
        The standard library units and runtime library, whenever they get written, will
        probably be provided either using the GPL with a linking exception, or under a
        non-copyleft license.
        
        
        ## Gold-syntax
        
        Gold-syntax provides an imperative systems programming language for 6502-series
        processors. Features of the processor are exposed in a friendly-but-powerful
        way; it should be possible to understand what code will be generated by looking
        directly at the source file.
        
        Gold-syntax is not associated with the Gold parser framework or the gold LLVM
        linker.
        
        Here is an example file which puts a light red heart to the top-left corner of
        the screen, which actually works with the compiler in its current, very
        unfinished, state:
        
        ```
        use mem
        
        constant screen-corner: &u8 = mem.as-pointer(0x0400)
        constant screen-corner-color: &u8 = mem.as-pointer(0xd800)
        
        fun main()
          @screen-corner = 0x53      /* screencode for <3 */
          @screen-corner-color = 10  /* light red */
        endfun
        ```
        
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Description-Content-Type: text/markdown
