From d1dd621ba03772e705baf2d2d95f090fa1762c92 Mon Sep 17 00:00:00 2001 From: d_m Date: Fri, 2 Aug 2024 11:35:19 -0400 Subject: [PATCH] more cleanup --- uxntal.1 | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/uxntal.1 b/uxntal.1 index e7785fa..7d5aa94 100644 --- a/uxntal.1 +++ b/uxntal.1 @@ -8,18 +8,19 @@ Uxntal is an 8-bit instruction set for programming the Varvara virtual machine. It uses the lower 5-bits to specify an opcode, and the upper 3-bits to specify optional modes. -ROMs consist of a 16-bit address space of bytes. Any byte can be interpreted as either data or an instruction. A 2-byte instruction pointer determines the address of the next instruction to decode and run. +ROMs consist of a 16-bit address space of bytes. Any byte can be interpreted as either data or an instruction. A 2-byte program counter (\fIpc\fP) determines the address of the next instruction to decode and run. Instructions manipulate data using two stacks: a working stack (\fBwst\fP) and a return stack (\fBrst\fP). Each stack consists of 256 bytes, and in the case of overflow or underflow the stack pointer will wrap (the stacks are circular). +There are also 256 bytes of device memory, which are used to interact with the virtual machine and its devices. + .SH INSTRUCTION LAYOUT - 0x01 - - 0x02 \\ - 0x04 +- \fIopcode\fP - 0x08 / - 0x10 - - + 0x01 ---- + 0x02 \\ + 0x04 +- \fIopcode\fP + 0x08 / + 0x10 ---- 0x20 ---- 2: \fIshort\fP mode 0x40 ---- r: \fIreturn\fP mode 0x80 ---- k: \fIkeep\fP mode @@ -131,7 +132,7 @@ Store data at a zero-page address (\fB0x0000 - 0x00ff\fP). Load data from a relative address (\fBpc + x\fP). -Note that unlike \fBLDZk\fP and \fBLDAk\fP the \fBLDRk\fP instruction is not very useful, since a relative address is usually only meaningful when run from a particular address (i.e. for a particular \fBpc\fP value). +Note that unlike \fBLDZk\fP and \fBLDAk\fP the \fBLDRk\fP instruction is not very useful, since a relative address is usually only meaningful when run from a particular address (i.e. for a particular \fIpc\fP value). .SS STR @@ -139,7 +140,7 @@ Note that unlike \fBLDZk\fP and \fBLDAk\fP the \fBLDRk\fP instruction is not ver Store data at a relative address (\fBpc + x\fP). -Note that unlike \fBSTZk\fP and \fBSTAk\fP the \fBSTRk\fP instruction is not very useful, since a relative address is usually only meaningful when run from a particular address (i.e. for a particular \fBpc\fP value). +Note that unlike \fBSTZk\fP and \fBSTAk\fP the \fBSTRk\fP instruction is not very useful, since a relative address is usually only meaningful when run from a particular address (i.e. for a particular \fIpc\fP value). .SS LDA ( abs* -- x )