1
0
mirror of https://github.com/catseye/SixtyPical.git synced 2024-06-06 15:29:30 +00:00

Prep for release of 0.6.

This commit is contained in:
Chris Pressey 2015-10-23 16:37:18 +01:00
parent b5763e84b4
commit 3e72580cd2
4 changed files with 32 additions and 12 deletions

View File

@ -1,8 +1,8 @@
History of SixtyPical
=====================
0.6-PRE
-------
0.6
---
* Added `routine` and `vector` types, and `copy` instruction.
* Both routines and vectors can declare `inputs`, `outputs`, and `trashes`,

View File

@ -24,8 +24,8 @@ programs to 6502 machine code.
It is a **work in progress**, currently at the **proof-of-concept** stage.
The current released version of SixtyPical is 0.5. The current development
version of SixtyPical, unreleased as of this writing, is 0.6-PRE.
The current released version of SixtyPical is 0.6. The current development
version of SixtyPical, unreleased as of this writing, is 0.7-PRE.
Documentation
-------------
@ -42,21 +42,20 @@ Documentation
TODO
----
For 0.6:
* A more involved demo for the C64 — one that sets up an interrupt.
For 0.7:
* always analyze before executing or compiling, unless told not to
* `word` type.
* `word table` type.
* `trash` instruction.
For 0.8:
* zero-page memory locations.
* indirect addressing.
At some point...
* `trash` instruction.
* `interrupt` routines.
* 6502-mnemonic aliases (`sec`, `clc`)
* other handy aliases (`eq` for `z`, etc.)

View File

@ -1,7 +1,7 @@
SixtyPical
==========
This document describes the SixtyPical programming language version 0.6-PRE,
This document describes the SixtyPical programming language version 0.6,
both its execution aspect and its static analysis aspect (even though
these are, technically speaking, separate concepts.)

View File

@ -1,7 +1,27 @@
byte vic_border @ 53280
vector cinv @ 788
//
// The constraints on these 2 vectors are kind-of sort-of big fibs.
// They're only written this way so they can be compatible with our
// routine. In fact, CINV is an interrupt routine where it doesn't
// really matter what you trash anyway, because all registers were
/// saved by the caller (the KERNAL) and will be restored by the end
// of the code of the saved origin cinv routine that we goto.
//
// I wonder if this could be arranged somehow to be less fibby, in
// a future version of SixtyPical.
//
vector cinv
inputs vic_border
outputs vic_border
trashes z, n
@ 788
vector save_cinv
inputs vic_border
outputs vic_border
trashes z, n
routine our_cinv
inputs vic_border
@ -9,10 +29,11 @@ routine our_cinv
trashes z, n
{
inc vic_border
goto save_cinv
}
routine main
inputs cinv, our_cinv
inputs cinv
outputs cinv, save_cinv
trashes a, n, z
{