git @ Cat's Eye Technologies SixtyPical / 421727e
Update HISTORY and README. Chris Pressey 6 years ago
2 changed file(s) with 15 addition(s) and 6 deletion(s). Raw diff Collapse all Expand all
77 * Both routines and vectors can declare `inputs`, `outputs`, and `trashes`,
88 and these must be compatible to assign a routine or vector to a vector.
99 * Added `goto` (tail call) instruction, jumps to routine or through vector.
10 * `call` can call a subroutine indirectly, via a vector.
1011 * Routine name is now shown in analysis error messages.
1112
1213 0.5
77
88 * you forgot to clear carry before adding something to the accumulator
99 * a subroutine that you call trashes a register you thought was preserved
10 * you tried to write the address of something that was not a routine, to
11 a jump vector
1012
11 and suchlike.
13 and suchlike. It also provides some convenient operations and abstractions
14 based on common machine-language programming idioms, such as
15
16 * copying values from one register to another (via a third register when
17 there are no underlying instructions that directly support it)
18 * explicit tail calls
19 * indirect subroutine calls
20
21 The reference implementation can execute, analyze, and compile SixtyPical
22 programs to 6502 machine code.
1223
1324 It is a **work in progress**, currently at the **proof-of-concept** stage.
1425
3243
3344 For 0.6:
3445
35 * `call` vector (generates an JSR to a trampoline that does indirect JMP.)
3646 * routines shouldn't need to be listed as inputs.
47 * A more involved demo for the C64 — one that sets up an interrupt.
3748
3849 For 0.7:
3950
40 * A more involved demo for the C64 — one that sets up an interrupt?
41
42 For 0.8:
43
4451 * `word` type.
52 * `word table` type.
4553 * `trash` instruction.
4654 * zero-page memory locations.
4755 * indirect addressing.