mirror of
https://github.com/catseye/SixtyPical.git
synced 2025-01-10 02:29:23 +00:00
Prep for release of 0.6.
This commit is contained in:
parent
b5763e84b4
commit
3e72580cd2
@ -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`,
|
||||
|
@ -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.)
|
||||
|
@ -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.)
|
||||
|
||||
|
25
eg/intr1.60p
25
eg/intr1.60p
@ -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
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user