diff --git a/README.md b/README.md index 5ad001e64..4580ecb41 100644 --- a/README.md +++ b/README.md @@ -23,13 +23,14 @@ https://prog8.readthedocs.io/ What does Prog8 provide? ------------------------ -- big reduction of source code length over raw assembly +- reduction of source code length over raw assembly - modularity, symbol scoping, subroutines - various data types other than just bytes (16-bit words, floats, strings) - automatic variable allocations, automatic string and array variables and string sharing -- subroutines with an input- and output parameter signature -- no stack frame allocations because parameters and local variables are automatically allocated statically -- constant folding in expressions and other high-level program optimizations +- subroutines with input parameters and result values +- high-level program optimizations +- small program boilerplate/compilersupport overhead +- sane variable initialization, programs can be restarted again just fine after exiting to basic - conditional branches - floating point operations (requires the C64 Basic ROM routines for this) - 'when' statement to provide a concise jump table alternative to if/elseif chains @@ -38,8 +39,10 @@ What does Prog8 provide? - various powerful built-in libraries to do I/O, number conversions, graphics and more - convenience abstractions for low level aspects such as ZeroPage handling, program startup, explicit memory addresses - fast execution speed due to compilation to native assembly code +- variables are allocated statically - inline assembly allows you to have full control when every cycle or byte matters - supports the sixteen 'virtual' 16-bit registers R0 .. R15 from the Commander X16, and provides them also on the C64. +- encode strings and characters into petscii or screencodes as desired (C64/Cx16) *Rapid edit-compile-run-debug cycle:* diff --git a/compiler/res/version.txt b/compiler/res/version.txt index 0cda48ac6..a242fd94f 100644 --- a/compiler/res/version.txt +++ b/compiler/res/version.txt @@ -1 +1 @@ -6.2 +6.3-SNAPSHOT diff --git a/docs/source/index.rst b/docs/source/index.rst index fd983acce..58b25dec5 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -50,8 +50,9 @@ Language features - Provide high level programming constructs but at the same time stay close to the metal; still able to directly use memory addresses and ROM subroutines, and inline assembly to have full control when every register, cycle or byte matters -- Arbitrary number of subroutine parameters, Complex nested expressions are possible -- No stack frame allocations because parameters and local variables are automatically allocated statically +- Subroutines with parameters and return values +- complex nested expressions are possible +- Variables are allocated statically - Nested subroutines can access variables from outer scopes to avoids the overhead to pass everything via parameters - Variable data types include signed and unsigned bytes and words, arrays, strings and floats. - High-level code optimizations, such as const-folding, expression and statement simplifications/rewriting. diff --git a/examples/cx16/vtui/testvtui.p8 b/examples/cx16/vtui/testvtui.p8 index 3ce7a90fd..a0ba80728 100644 --- a/examples/cx16/vtui/testvtui.p8 +++ b/examples/cx16/vtui/testvtui.p8 @@ -4,8 +4,6 @@ main { sub start() { - ; todo feedback: new routines at the end of the jump table so existing jump vectors remain unchanged - txt.lowercase() vtui.initialize()