| ... | ... |
@@ -10,32 +10,34 @@ cc uxn.c -std=c89 -Os -DNDEBUG -g0 -s -Wall -Wno-unknown-pragmas -o uxn |
| 10 | 10 |
|
| 11 | 11 |
## Assembly Syntax |
| 12 | 12 |
|
| 13 |
-- `:label`, a named offset |
|
| 13 |
+- `:label`, a named address |
|
| 14 | 14 |
- `+literal`, a numeric value |
| 15 | 15 |
- `.pointer`, pointer to a label |
| 16 | 16 |
|
| 17 | 17 |
``` |
| 18 |
-< comment > |
|
| 18 |
+< conditionals > |
|
| 19 | 19 |
|
| 20 |
-+01 < literal > |
|
| 20 |
++03 +02 ADD |
|
| 21 |
++05 EQU |
|
| 21 | 22 |
|
| 22 |
-[ 01 02 03 04 ] < block of literals > |
|
| 23 |
+.there JMQ |
|
| 23 | 24 |
|
| 24 |
-$01 < pointer8 > |
|
| 25 |
+:here |
|
| 26 |
+ < when not equal > |
|
| 27 |
+ +ee |
|
| 28 |
+ BRK |
|
| 25 | 29 |
|
| 26 |
-{ 01 02 03 04 } < block of pointer8 >
|
|
| 27 |
- |
|
| 28 |
-~ff0f < pointer16 > |
|
| 29 |
- |
|
| 30 |
-( ff00 ff01 ff02 ff03 ) < block of pointer16 > |
|
| 31 |
- |
|
| 32 |
-=const +ff |
|
| 33 |
- |
|
| 34 |
-:label ADD RTS |
|
| 30 |
+:there |
|
| 31 |
+ < when is equal > |
|
| 32 |
+ +ff |
|
| 33 |
+ BRK |
|
| 35 | 34 |
``` |
| 36 | 35 |
|
| 37 | 36 |
## Mission |
| 38 | 37 |
|
| 38 |
+- constants |
|
| 39 |
+- variables |
|
| 40 |
+- A Three-Way Decision Routine(http://www.6502.org/tutorials/compare_instructions.html) |
|
| 39 | 41 |
- Carry flag? |
| 40 | 42 |
- Loop |
| 41 | 43 |
- Pointers/Literals |
| ... | ... |
@@ -44,9 +46,6 @@ $01 < pointer8 > |
| 44 | 46 |
- Detect mouse click |
| 45 | 47 |
- 16 bits addressing |
| 46 | 48 |
- jumping to subroutine should be relative |
| 47 |
- |
|
| 48 |
-## TODOs |
|
| 49 |
- |
|
| 50 | 49 |
- Implement addressing |
| 51 | 50 |
- Implement 16 bits operations |
| 52 | 51 |
- Jumps should be relative |