1
0
mirror of https://github.com/catseye/SixtyPical.git synced 2024-12-01 16:50:09 +00:00

Prep for release of 0.5.

This commit is contained in:
Chris Pressey 2015-10-18 19:02:07 +01:00
parent 9235c6eacc
commit 41414b0a1f
3 changed files with 19 additions and 12 deletions

View File

@ -1,8 +1,8 @@
History of SixtyPical History of SixtyPical
===================== =====================
0.5-PRE 0.5
------- ---
* Added `byte table` type locations and indexed addressing (`+ x`, `+ y`). * Added `byte table` type locations and indexed addressing (`+ x`, `+ y`).
* Integer literals may be given in hexadecimal. * Integer literals may be given in hexadecimal.

View File

@ -13,8 +13,8 @@ and suchlike.
It is a **work in progress**, currently at the **proof-of-concept** stage. 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 The current released version of SixtyPical is 0.5. The current development
version of SixtyPical, unreleased as of this writing, is 0.5-PRE. version of SixtyPical, unreleased as of this writing, is 0.6-PRE.
Documentation Documentation
------------- -------------
@ -31,21 +31,23 @@ Documentation
TODO TODO
---- ----
For 0.5:
For 0.6: For 0.6:
* `interrupt` routines. * `interrupt` routines.
* `vector` type. * `vector` type.
* `with sei` blocks.
* `copy` instruction.
* A more involved demo for the C64 — one that sets up an interrupt.
For 0.7: For 0.7:
* `word` type. * `word` type.
* `copy` instruction.
* `trash` instruction. * `trash` instruction.
* indirect addressing.
For 0.8: At some point...
* add line number (or at least routine name) to error messages. * add line number (or at least routine name) to error messages.
* 6502-mnemonic aliases (`sec`, `clc`) * 6502-mnemonic aliases (`sec`, `clc`)
* other handy aliases (`eq` for `z`, etc.) * other handy aliases (`eq` for `z`, etc.)
* add absolute addressing in shl/shr, absolute-indexed for add, sub, etc.

View File

@ -1,7 +1,7 @@
SixtyPical 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 both its execution aspect and its static analysis aspect (even though
these are, technically speaking, separate concepts.) these are, technically speaking, separate concepts.)
@ -14,10 +14,11 @@ the language.
Types Types
----- -----
There are two TYPES in SixtyPical: There are three TYPES in SixtyPical:
* bit (2 possible values) * bit (2 possible values)
* byte (256 possible values) * byte (256 possible values)
* byte table (256 entries, each holding a byte)
Memory locations Memory locations
---------------- ----------------
@ -121,7 +122,7 @@ Instructions
### ld ### ### ld ###
ld <dest-memory-location>, <src-memory-location> ld <dest-memory-location>, <src-memory-location> [+ <index-memory-location>]
Reads from src and writes to dest. 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 changed by this instruction; they must be named in the WRITES lists, and they
are considered initialized after it has executed. 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 Some combinations, such as `ld x, y`, are illegal because they do not map to
underlying opcodes. underlying opcodes.
### st ### ### st ###
st <src-memory-location>, <dest-memory-location> st <src-memory-location>, <dest-memory-location> [+ <index-memory-location>]
Reads from src and writes to dest. 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 After execution, dest is considered initialized. No flags are
changed by this instruction (unless of course dest is a flag.) 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 dest, src ###
add <dest-memory-location>, <src-memory-location> add <dest-memory-location>, <src-memory-location>