diff --git a/HISTORY.markdown b/HISTORY.markdown index 2ab97be..b0c0a31 100644 --- a/HISTORY.markdown +++ b/HISTORY.markdown @@ -1,8 +1,8 @@ History of SixtyPical ===================== -0.5-PRE -------- +0.5 +--- * Added `byte table` type locations and indexed addressing (`+ x`, `+ y`). * Integer literals may be given in hexadecimal. diff --git a/README.markdown b/README.markdown index 17ec850..9409340 100644 --- a/README.markdown +++ b/README.markdown @@ -13,8 +13,8 @@ and suchlike. It is a **work in progress**, currently at the **proof-of-concept** stage. -The current released version of SixtyPical is 0.4. The current development -version of SixtyPical, unreleased as of this writing, is 0.5-PRE. +The current released version of SixtyPical is 0.5. The current development +version of SixtyPical, unreleased as of this writing, is 0.6-PRE. Documentation ------------- @@ -31,21 +31,23 @@ Documentation TODO ---- -For 0.5: - For 0.6: * `interrupt` routines. * `vector` type. +* `with sei` blocks. +* `copy` instruction. +* A more involved demo for the C64 — one that sets up an interrupt. For 0.7: * `word` type. -* `copy` instruction. * `trash` instruction. +* indirect addressing. -For 0.8: +At some point... * add line number (or at least routine name) to error messages. * 6502-mnemonic aliases (`sec`, `clc`) * other handy aliases (`eq` for `z`, etc.) +* add absolute addressing in shl/shr, absolute-indexed for add, sub, etc. diff --git a/doc/SixtyPical.md b/doc/SixtyPical.md index 8adfaac..661bae2 100644 --- a/doc/SixtyPical.md +++ b/doc/SixtyPical.md @@ -1,7 +1,7 @@ SixtyPical ========== -This document describes the SixtyPical programming language version 0.5-PRE, +This document describes the SixtyPical programming language version 0.5, both its execution aspect and its static analysis aspect (even though these are, technically speaking, separate concepts.) @@ -14,10 +14,11 @@ the language. Types ----- -There are two TYPES in SixtyPical: +There are three TYPES in SixtyPical: * bit (2 possible values) * byte (256 possible values) +* byte table (256 entries, each holding a byte) Memory locations ---------------- @@ -121,7 +122,7 @@ Instructions ### ld ### - ld , + ld , [+ ] Reads from src and writes to dest. @@ -135,12 +136,14 @@ After execution, dest is considered initialized. The flags `z` and `n` may be changed by this instruction; they must be named in the WRITES lists, and they are considered initialized after it has executed. +If and only if src is a byte table, the index-memory-location must be given. + Some combinations, such as `ld x, y`, are illegal because they do not map to underlying opcodes. ### st ### - st , + st , [+ ] Reads from src and writes to dest. @@ -153,6 +156,8 @@ Reads from src and writes to dest. After execution, dest is considered initialized. No flags are changed by this instruction (unless of course dest is a flag.) +If and only if dest is a byte table, the index-memory-location must be given. + ### add dest, src ### add ,