diff --git a/README.md b/README.md index 24a3110..1899ef8 100755 --- a/README.md +++ b/README.md @@ -12,81 +12,80 @@ Different projects have led to the architecture of PLASMA, most notably Apple Pa -- [The PLASMA Programming Language](#the-plasma-programming-language) - - [Tutorial](#tutorial) - - [PLASMA Compiler/Assembler](#plasma-compilerassembler) - - [PLASMA Modules](#plasma-modules) - - [Data Types](#data-types) - - [Obligatory 'Hello World'](#obligatory-hello-world) - - [Character Case](#character-case) - - [Comments](#comments) - - [Numbers](#numbers) - - [Characters](#characters) - - [Strings](#strings) - - [Organization of a PLASMA Source File](#organization-of-a-plasma-source-file) - - [Module Dependencies](#module-dependencies) - - [File Inclusion](#file-inclusion) - - [Predefined Functions](#predefined-functions) - - [Constant Declarations](#constant-declarations) - - [Structure Declarations](#structure-declarations) - - [Global Data & Variables Declarations](#global-data-variables-declarations) - - [Function Definitions](#function-definitions) - - [Statements and Expressions](#statements-and-expressions) - - [Exported Declarations](#exported-declarations) - - [Module Main Initialization Function](#module-main-initialization-function) - - [Module Done](#module-done) - - [Runtime](#runtime) - - [Reference](#reference) - - [Decimal and Hexadecimal Numbers](#decimal-and-hexadecimal-numbers) - - [Character and String Literals](#character-and-string-literals) - - [In-line String Literals](#in-line-string-literals) - - [Words](#words) - - [Bytes](#bytes) - - [Addresses](#addresses) - - [Arrays](#arrays) - - [Type Overrides](#type-overrides) - - [Multi-Dimensional Arrays](#multi-dimensional-arrays) - - [Offsets (Structure Elements)](#offsets-structure-elements) - - [Defining Structures](#defining-structures) - - [Pointers](#pointers) - - [Pointer Dereferencing](#pointer-dereferencing) - - [Addresses of Data/Code](#addresses-of-datacode) - - [Function Pointers](#function-pointers) +- [Tutorial](#tutorial) + - [PLASMA Compiler/Assembler](#plasma-compilerassembler) + - [PLASMA Modules](#plasma-modules) + - [Data Types](#data-types) + - [Obligatory 'Hello World'](#obligatory-hello-world) + - [Character Case](#character-case) + - [Comments](#comments) + - [Numbers](#numbers) + - [Characters](#characters) + - [Strings](#strings) + - [Organization of a PLASMA Source File](#organization-of-a-plasma-source-file) + - [Module Dependencies](#module-dependencies) + - [File Inclusion](#file-inclusion) + - [Predefined Functions](#predefined-functions) + - [Constant Declarations](#constant-declarations) + - [Structure Declarations](#structure-declarations) + - [Global Data & Variables Declarations](#global-data-variables-declarations) - [Function Definitions](#function-definitions) - - [Expressions and Statements](#expressions-and-statements) - - [Address Operators](#address-operators) - - [Arithmetic, Bitwise, and Logical Operators](#arithmetic-bitwise-and-logical-operators) - - [Assignment](#assignment) - - [Empty Assignments](#empty-assignments) - - [Increment and Decrement](#increment-and-decrement) - - [Control Flow](#control-flow) - - [CALL](#call) - - [RETURN](#return) - - [IF/[ELSIF]/[ELSE]/FIN](#ifelsifelsefin) - - [WHEN/IS/[OTHERWISE]/WEND](#whenisotherwisewend) - - [FOR \ [STEP]/NEXT](#for-todownto-stepnext) - - [WHILE/LOOP](#whileloop) - - [REPEAT/UNTIL](#repeatuntil) - - [CONTINUE](#continue) - - [BREAK](#break) - - [Advanced Topics](#advanced-topics) - - [Code Optimizations](#code-optimizations) - - [Functions Without Parameters Or Local Variables](#functions-without-parameters-or-local-variables) - - [Return Values](#return-values) - - [Native Assembly Functions](#native-assembly-functions) - - [Implementation](#implementation) - - [A New Approach](#a-new-approach) - - [The Virtual Machine](#the-virtual-machine) - - [The Stacks](#the-stacks) - - [Evaluation Stack](#evaluation-stack) - - [Call Stack](#call-stack) - - [Local Frame Stack](#local-frame-stack) - - [Local String Pool](#local-string-pool) - - [The Bytecodes](#the-bytecodes) - - [Apple I PLASMA](#apple-i-plasma) - - [Apple II PLASMA](#apple-ii-plasma) - - [Apple III PLASMA](#apple-iii-plasma) - - [Links](#links) + - [Statements and Expressions](#statements-and-expressions) + - [Exported Declarations](#exported-declarations) + - [Module Main Initialization Function](#module-main-initialization-function) + - [Module Done](#module-done) + - [Runtime](#runtime) +- [Reference](#reference) + - [Decimal and Hexadecimal Numbers](#decimal-and-hexadecimal-numbers) + - [Character and String Literals](#character-and-string-literals) + - [In-line String Literals](#in-line-string-literals) + - [Words](#words) + - [Bytes](#bytes) + - [Addresses](#addresses) + - [Arrays](#arrays) + - [Type Overrides](#type-overrides) + - [Multi-Dimensional Arrays](#multi-dimensional-arrays) + - [Offsets (Structure Elements)](#offsets-structure-elements) + - [Defining Structures](#defining-structures) + - [Pointers](#pointers) + - [Pointer Dereferencing](#pointer-dereferencing) + - [Addresses of Data/Code](#addresses-of-datacode) + - [Function Pointers](#function-pointers) + - [Function Definitions](#function-definitions) + - [Expressions and Statements](#expressions-and-statements) + - [Address Operators](#address-operators) + - [Arithmetic, Bitwise, and Logical Operators](#arithmetic-bitwise-and-logical-operators) + - [Assignment](#assignment) + - [Empty Assignments](#empty-assignments) + - [Increment and Decrement](#increment-and-decrement) + - [Control Flow](#control-flow) + - [CALL](#call) + - [RETURN](#return) + - [IF/[ELSIF]/[ELSE]/FIN](#ifelsifelsefin) + - [WHEN/IS/[OTHERWISE]/WEND](#whenisotherwisewend) + - [FOR \ [STEP]/NEXT](#for-todownto-stepnext) + - [WHILE/LOOP](#whileloop) + - [REPEAT/UNTIL](#repeatuntil) + - [CONTINUE](#continue) + - [BREAK](#break) +- [Advanced Topics](#advanced-topics) + - [Code Optimizations](#code-optimizations) + - [Functions Without Parameters Or Local Variables](#functions-without-parameters-or-local-variables) + - [Return Values](#return-values) + - [Native Assembly Functions](#native-assembly-functions) +- [Implementation](#implementation) + - [A New Approach](#a-new-approach) + - [The Virtual Machine](#the-virtual-machine) + - [The Stacks](#the-stacks) + - [Evaluation Stack](#evaluation-stack) + - [Call Stack](#call-stack) + - [Local Frame Stack](#local-frame-stack) + - [Local String Pool](#local-string-pool) + - [The Bytecodes](#the-bytecodes) + - [Apple I PLASMA](#apple-i-plasma) + - [Apple II PLASMA](#apple-ii-plasma) + - [Apple III PLASMA](#apple-iii-plasma) +- [Links](#links)