1
0
mirror of https://github.com/catseye/SixtyPical.git synced 2024-11-29 03:51:35 +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
=====================
0.5-PRE
-------
0.5
---
* Added `byte table` type locations and indexed addressing (`+ x`, `+ y`).
* 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.
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.

View File

@ -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 <dest-memory-location>, <src-memory-location>
ld <dest-memory-location>, <src-memory-location> [+ <index-memory-location>]
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 <src-memory-location>, <dest-memory-location>
st <src-memory-location>, <dest-memory-location> [+ <index-memory-location>]
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 <dest-memory-location>, <src-memory-location>