add links, improve things a bit more

This commit is contained in:
~d6 2024-08-03 01:03:42 -04:00
parent 2d0db6fe6f
commit 28f27e7fcf
1 changed files with 25 additions and 8 deletions

View File

@ -49,7 +49,7 @@ Unlike other opcodes, \fB0x00\fP is contextual. Its meaning depends on the \fImo
0x40 \fBJMI\fP 0xc0 \fBLITr\fP
0x60 \fBJSI\fP 0xe0 \fBLIT2r\fP
.SH REGULAR INSTRUCTIONS
.SH STACK EFFECTS
Regular instructions have a single stack effect which is modified in a predictable way by any additional modes.
@ -70,9 +70,15 @@ In \fIreturn\fP mode the stacks are reversed. Effects on \fBwst\fP will instead
In \fIkeep\fP mode all the values on the left-hand side of the stack effect will also appear on the right-hand side before the outputs. For example, \fBSWP\fP is \fB(x y -- y x)\fP but \fBSWPk\fP is \fB(x y -- x y y x)\fP.
.SH REGULAR INSTRUCTIONS
.BR
.SS INC
( x -- x+1 )
Overflow will be truncated, so \fB#ff INC\fP will evaluate to \fB0x00\fP.
.SS POP
( x -- )
@ -134,12 +140,12 @@ Store the next address to execute before unconditionally updating the program co
.SS LDZ
( zp^ -- x )
Load data from a zero-page address (\fB0x0000 - 0x00ff\fP).
Load data from a zero-page address (\fB0x00 - 0xff\fP).
.SS STZ
( x zp^ -- )
Store data at a zero-page address (\fB0x0000 - 0x00ff\fP).
Store data at a zero-page address (\fB0x00 - 0xff\fP).
.SS LDR
( rel^ -- x )
@ -223,11 +229,9 @@ Right shifts are unsigned (they introduce zero bits); there are no signed shifts
Since the largest values (\fIshort\fP) are 16-bit, one nibble (\fB0x0 - 0xf\fP) is sufficient to express all useful left or right shifts.
Right: \fB#ff #03 SFT\fP evaluates to \fB0x1f\fP.
Left: \fB#ff #20 SFT\fP evaluates to \fB0xfc\fP.
Both: \fB#ff #23 SFT\fP evaluates to \fB0x7c\fP.
Right: \fB#ff #03 SFT\fP evaluates to \fB0x1f\fP
Left: \fB#ff #20 SFT\fP evaluates to \fB0xfc\fP
Both: \fB#ff #23 SFT\fP evaluates to \fB0x7c\fP
.SH SPECIAL INSTRUCTIONS
@ -264,3 +268,16 @@ The "literal" instructions are used to push new data onto the stacks. They inter
(The instruction pointer will be moved forward 1-2 bytes, past the literal data.)
Literal values can be updated dynamically using store:
#abcd ;x STA2
( later on... )
LIT2 [ @x $2 ]
.SH SEE ALSO
https://wiki.xxiivv.com/site/uxntal_opcodes.html \fIUxntal Opcodes\fP
https://wiki.xxiivv.com/site/uxntal_syntax.html \fIUxntal Syntax\fP
https://wiki.xxiivv.com/site/uxntal_modes.html \fIUxntal Modes\fP
https://wiki.xxiivv.com/site/uxntal_immediate.html \fIImmediate opcodes\fP
https://wiki.xxiivv.com/site/varvara.html \fIVarvara\fP