prog8/README.md

39 lines
2.1 KiB
Markdown
Raw Normal View History

2018-09-15 14:21:05 +00:00
Prog8 - Structured Programming Language for 8-bit 6502/6510 microprocessors
===========================================================================
2017-12-21 13:52:30 +00:00
2018-01-09 23:44:11 +00:00
*Written by Irmen de Jong (irmen@razorvine.net)*
2017-12-21 13:52:30 +00:00
2018-01-08 02:31:23 +00:00
*Software license: GNU GPL 3.0, see file LICENSE*
2017-12-25 15:00:25 +00:00
2018-09-15 14:21:05 +00:00
This is a structured programming language for the 8-bit 6502/6510 microprocessor from the late 1970's and 1980's
as used in many home computers from that era. It is a medium to low level programming language,
2017-12-25 15:00:25 +00:00
which aims to provide many conveniences over raw assembly code (even when using a macro assembler):
- reduction of source code length
- easier program understanding (because it's higher level, and more terse)
2017-12-27 22:45:22 +00:00
- option to automatically run the compiled program in the Vice emulator
2017-12-25 15:00:25 +00:00
- modularity, symbol scoping, subroutines
- subroutines have enforced input- and output parameter definitions
2017-12-29 01:18:50 +00:00
- various data types other than just bytes (16-bit words, floats, strings, 16-bit register pairs)
2017-12-29 00:16:39 +00:00
- automatic variable allocations, automatic string variables and string sharing
2018-01-09 23:44:11 +00:00
- constant folding in expressions (compile-time evaluation)
2017-12-25 15:00:25 +00:00
- automatic type conversions
- floating point operations
- abstracting away low level aspects such as ZeroPage handling, program startup, explicit memory addresses
2017-12-27 22:45:22 +00:00
- breakpoints, that let the Vice emulator drop into the monitor if execution hits them
- source code labels automatically loaded in Vice emulator so it can show them in disassembly
- conditional gotos
2018-01-29 20:10:06 +00:00
- various code optimizations (code structure, logical and numerical expressions, ...)
2017-12-25 15:00:25 +00:00
It still allows for low level programming however and inline assembly blocks
to write performance critical pieces of code, but otherwise compiles fairly straightforwardly
into 6502 assembly code. This resulting code is assembled into a binary program by using
an external macro assembler, [64tass](https://sourceforge.net/projects/tass64/).
2018-09-15 14:21:05 +00:00
This tool can be compiled pretty easily for various platforms (Linux, Mac OS, Windows) or just ask me
to provide a small precompiled executable.
2017-12-25 15:00:25 +00:00
2018-09-15 14:21:05 +00:00
Prog8 is mainly targeted at the Commodore-64 machine, but should be mostly system independent.
2017-12-25 15:00:25 +00:00