Browse Source

Initial documentation added.

master
Ian Knowles 9 years ago
parent
commit
2e8cf285d3
  1. 2649
      docs/_at.cpp.html
  2. 302
      docs/at.html
  3. 168
      docs/at_api.html
  4. 200
      docs/at_atomic.html
  5. 264
      docs/at_auction.html
  6. 226
      docs/at_auction_tests.html
  7. 187
      docs/at_crowdfund.html
  8. 272
      docs/at_crowdfund_tests.html
  9. 175
      docs/at_dormant.html
  10. 186
      docs/at_dormant_tests.html
  11. 230
      docs/at_lottery.html
  12. 201
      docs/at_lottery_tests.html
  13. 119
      docs/at_meta.html
  14. 148
      docs/at_script.html
  15. 475
      docs/at_test_add_dat.html
  16. 472
      docs/at_test_and_dat.html
  17. 231
      docs/at_test_beq_dat.html
  18. 228
      docs/at_test_bge_dat.html
  19. 227
      docs/at_test_bgt_dat.html
  20. 259
      docs/at_test_ble_dat.html
  21. 228
      docs/at_test_blt_dat.html
  22. 231
      docs/at_test_bne_dat.html
  23. 226
      docs/at_test_bnz_dat.html
  24. 472
      docs/at_test_bor_dat.html
  25. 221
      docs/at_test_bzr_dat.html
  26. 338
      docs/at_test_clr_dat.html
  27. 493
      docs/at_test_dec_dat.html
  28. 491
      docs/at_test_div_dat.html
  29. 97
      docs/at_test_ext_fun.html
  30. 99
      docs/at_test_ext_fun_dat.html
  31. 102
      docs/at_test_ext_fun_dat_2.html
  32. 148
      docs/at_test_ext_fun_ret.html
  33. 153
      docs/at_test_ext_fun_ret_dat.html
  34. 157
      docs/at_test_ext_fun_ret_dat_2.html
  35. 145
      docs/at_test_fin_imd.html
  36. 115
      docs/at_test_fiz_dat.html
  37. 492
      docs/at_test_inc_dat.html
  38. 133
      docs/at_test_jmp_adr.html
  39. 187
      docs/at_test_jmp_sub.html
  40. 474
      docs/at_test_mul_dat.html
  41. 473
      docs/at_test_not_dat.html
  42. 224
      docs/at_test_pop_dat.html
  43. 277
      docs/at_test_psh_dat.html
  44. 233
      docs/at_test_ret_sub.html
  45. 287
      docs/at_test_set_dat.html
  46. 270
      docs/at_test_set_idx.html
  47. 287
      docs/at_test_set_ind.html
  48. 130
      docs/at_test_set_pcs.html
  49. 432
      docs/at_test_set_val.html
  50. 104
      docs/at_test_stp_imd.html
  51. 124
      docs/at_test_stz_dat.html
  52. 474
      docs/at_test_sub_dat.html
  53. 195
      docs/at_test_sub_leq.html
  54. 472
      docs/at_test_xor_dat.html
  55. 91
      docs/index.html

2649
docs/_at.cpp.html

File diff suppressed because it is too large Load Diff

302
docs/at.html

@ -0,0 +1,302 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>CIYAM AT - Automated Transactions Specification</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="copyright" content="Copyright 2015 CIYAM Developers"/>
<link rel="stylesheet" href="document.css" type="text/css"/>
</head>
<div id="content">
<div id="header">
<div id="appname"><a href="//ciyam.org/at">AT</a></div>
<h3 class="right-top">Automated Transactions Specification</h3>
</div>
<div id="main">
<div id="text">
<pre>
Automated Transactions Specification
------------------------------------
In brief an Automated Transaction is a "Turing complete" set of byte code instructions which will be executed
by a byte code interpreter built into its host. An AT supporting host platform automatically supports various
applications ranging from games of chance to automated crowdfunding and ensuring that "long term savings" are
not lost forever.
User Requirements
-----------------
The host will require changes to support the execution of Automated Transactions. These changes required need
to include a way for a user to publish an AT as well as a way of being able to execute up to a max. number of
steps for a given AT. After step execution is complete all relevant state for the AT is required to be stored
in a newly created block (a *hash* of the state could be used provided that AT execution is mandatory).
An AT needs to have an "account" (perhaps determined via a hash of its code) so that normal host users have a
simple way to "send it funds". It also needs to be able to send funds to others (where the transactions could
need to be recorded explictly for nodes that do not support running AT to be permitted).
An AT engine needs to be built into the host that supports basic validation of AT the instructions and allows
the execution of the AT to be controlled one step at a time.
Use Case #1: Lottery
Create a "lottery" program which will pay out its balance to a "winner" automatically once per week.
To purchase a "ticket" a host user would send X to the "lottery AT account" (where some of this amount may be
needed to pay for running the AT). The "ticket" itself would be need to be determinstic yet "random" (such as
a future block hash) and may have to be determined "well after the block that its purchase occurs in".
Use Case #2: Dormant Funds Transfer
Create a program that if not notified before a certain period of time will transfer its funds to one specific
account. The notification mechanism will be via an AM transaction and the content of the AM (if not empty) is
a new address to payout to (note that AMs may not be supported in all hosts).
Use Case #3: Project Crowdfunding Agent
Create a program that will at a certain time check if it has a balance greater than or equal to a target that
was hard-coded into it. If the required balance level has been reached then all funds will be then sent to an
account hard-coded into it. If the required balance has not been met then each tx sender will be refunded the
amount they sent (tx fees may also need to be considered).
Functional Requirements
-----------------------
Code in an AT will be run by an AT byte code interpreter which will use a fixed amount of memory per program.
ATs that require more than a "minimal" amount of memory will have a value deduced from their balance *before*
they are executed (if the balance is too small to result in any execution then execution would not occur with
no memory allocation actually being performed). It needs to be clearly understood that an AT can be halted at
any step so there can be no "working memory" or the like in the AT interpreter itself.
Both AT code and data need to be persistent (although data doesn't need to be stored until the AT has had one
or more steps executed). Blockchain pruning could not include ATs that have a non-zero account balance. There
should probably also be the ability to set a block number for execution so any unnecessary code execution can
be avoided (perhaps this could be stored as part of the account information for the AT). It should also be an
option to include initial values for (a portion of) the data area after the code.
An AT will need to be created via its own special type of transaction which will need to include a fee amount
large enough to cover the "costs" that the size of its code and data will dictate. Execution of AT code would
be expected to be dependent upon the account balance of the AT and this balance would be reduced by each step
executed (with some or all function call steps perhaps incurring more costs than non-function call steps).
It can be expected that over time an increasing number of ATs will be created so the cost for running AT code
must be kept to an absolute minimum. This will require AT code to be deterministic, and that its instructions
must not be able to take arbitrary amounts of time. This will limit the set of API functions accessible to an
AT to only those that do not require arbitrary scans over the blockchain (i.e. they should be only applicable
to indexed information).
An AT will be able to execute transactions (via the AT API) which can include different types of transactions
such as those for using AM (where this is applicable according to the host platform).
In order to satisfy the Lottery use case the following API functions need to be available to the AT engine:
Get_Last_Time_Stamp (will return the "time stamp" of the previous block)
Get_Tx_After (given a "time stamp" return the first tx id sent to the AT after it)
Get_Tx_Type (for a given tx id return the type and subtype of the tx)
Get_Tx_Amount (for a given tx id return the amount of host funds)
Get_Tx_Time_Stamp (for a given tx id return its "time stamp")
Get_Tx_Ticket_Num (for a given tx id return a "ticket value" *)
Get_Tx_Source_Account (given a tx id this returns the account id of the funds sender)
Get_Old_Balance (get the account balance of the AT after it had been last executed)
Send_Old_To_Account (for a given account will send the AT's old balance)
Send_Funds_to_Account (for a given account will send the given amount if the balance is enough to do so)
* note that this function won't return until enough confirmations have allowed it to become available (so
the AT will effectively sleep until it is ready to continue execution)
Time stamp values need to also include the transaction # (zero when requesting a block time stamp) so that it
is as simple as possible to do looping with API commands such as Get_Tx_After (and instead are really a block
number and transaction number concatenated).
Further API functions that will be required for the Dormant Funds Transfer are as follows:
Get_Creator (will return the account/address of the AT's creator)
Get_Balance (get the current account balance of the AT)
Get_AM_Val (for a given tx id return the requested 64 bit "chunk" of AM data)
Send_All_To_Account (for a given account will send the AT's remaining balance)
Some other suggested API functions not covered by the above use cases are as follows:
Send_AM (will cause the script to send an AM tx to a given account/address)
Note that the "Automated Transactions API Specification" document will provide a formal description for every
function that an AT can be guaranteed to use.
Technical Specifications
------------------------
An AT creation tx would include header information along with the byte code and would optioinally include the
amount of host funds to transfer to become the AT's initial account balance (allowing execution to start from
the same block as the creation tx occurs).
[Header]
0x0001 ; AT version (16 bits)
0x0000 ; (reserved) (16 bits)
0x0001 ; code pages (16 bits) (number of 256 byte pages required)
0x0001 ; data pages (16 bits) (number of 256 byte pages required)
0x0000 ; call stack (16 bits) (number of 256 byte pages required)
0x0000 ; user stack (16 bits) (number of 256 byte pages required)
[Code - to be length prefixed]
0100000000b8220000000000003301000000000028
[Initial Data - also to be length prefixed]
010000000000000002000000000000000300000000000000
Although theoretically an AT could be 32MB in size an AT will have to be restricted to a much smaller maximum
amount and all data bytes will need to be zeroed prior to initial execution. Note the version number would be
incremented with each release that either extends the AT interpreter or adds newer AT APIs.
State storage would need to include all data but also all other state that is necessary to "continue" running
an AT after any step it had previously stopped at.
[State]
0x00000000 ; flags (32 bits)
0x00000000 ; pc (32 bits) program counter
0x00000000 ; cs (32 bits) call stack counter
0x00000000 ; us (32 bits) user stack counter
0x00000000 ; pce (32 bits) program counter error handler point
0x00000000 ; pcs (32 bits) program counter next starting point
0x00000000 ; sleep_until (32 bits) execution to wait until &gt;= this block
0x0000000000000000 ; stopped at balance (64 bits)*
0x0000000000000000000000000000000000000000000000000000000000000000 ; pseudo register A (256 bits)
0x0000000000000000000000000000000000000000000000000000000000000000 ; pseudo register B (256 bits)
* if AT stops set to current balance and execution will not continue until balance is greater (then clear it)
In order to conserve space it would be recommended to use two flags to indicate a zero value for the A and B
register (saving either 32 or 64 bytes).
[Data]
0100000000000000020000000000000003000000000000001111111111111111
The "flags" would include indicate whether the program has paused (so excution will be continued after the op
that had been last executed), stopped (so execution would continue from the beginning with all the data being
kept intact) or terminated (some ideas about how to handle "termination" will need to be examined and perhaps
the "reserved" part of the code header might need to be used to set some flags for this purpose).
Data addresses are a signed 32 bit value (negative values being invalid) that are used for accessing strictly
aligned 64 bit data value. If you consider a typical raw byte dump as follows:
00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-----------------------
0x00000000 (address) ------------------------
0x00000001 (address)
then each line of 16 bytes would be data for two address (i.e. 0x00000000 and 0x00000001). Addresses for code
are also 32 bit. An op code is a single byte and AT API function numbers are 16 bits. For "branch" commands a
single signed byte offset is used (so can jump to another op code up to +-127 bytes from the current pc). The
"value" type for being able to set a constant value is a signed 64 bit integer.
The following table summarises the types:
opcode (int8_t) 0x00
offset (int8_t) 0x00
func # (int16_t) 0x0000
address (int32_t) 0x00000000
value (int64_t) 0x0000000000000000
For AT creation and state updates all values broadcast or hashed must be "little endian". The actual physical
storage is of course up to each platform.
The following are suggested op codes (the hex values are what has been used in the "at.cpp" prototype).
Op Code Hex Additional Operation (and comments)
------- ---- ----------- -------------------------------------------------------------
NOP 0x7f (can be used for padding if required)
SET_VAL 0x01 addr,value @addr = value
SET_DAT 0x02 addr1,addr2 @addr1 = $addr2
CLR_DAT 0x03 addr @addr = 0 (to save space rather than using SET_VAL with 0)
INC_DAT 0x04 addr @addr += 1
DEC_DAT 0x05 addr @addr -= 1
ADD_DAT 0x06 addr1,addr2 @addr1 += $addr2
SUB_DAT 0x07 addr1,addr2 @addr1 -= $addr2
MUL_DAT 0x08 addr1,addr2 @addr1 *= $addr2
DIV_DAT 0x09 addr1,addr2 @addr1 /= $addr2
BOR_DAT 0x0a addr1,addr2 @addr1 |= $addr2
AND_DAT 0x0b addr1,addr2 @addr1 &= $addr2
XOR_DAT 0x0c addr1,addr2 @addr1 ^= $addr2
NOT_DAT 0x0d addr @addr = ~$addr (bitwise not)
SET_IND 0x0e addr1,addr2 @addr1 = $($addr2) (fetch indirect)
SET_IDX 0x0f addr1,addr2,addr3 @addr1 = $($addr2 + $addr3) (fetch indirect indexed)
PSH_DAT 0x10 addr @--ustack_top = $addr
POP_DAT 0x11 addr $addr = @ustack_top++
JMP_SUB 0x12 addr @--cstack_top = pc + 5, pc = addr
RET_SUB 0x13 pc = @cstack_top++
IND_DAT 0x14 addr1,addr2 @($addr1) = $addr2 (store indirect)
IDX_DAT 0x15 addr1,addr2,addr3 @($addr1 + $addr2) = $addr3 (store indirect indexed)
MOD_DAT 0x16 addr1,addr2 @addr1 %= $addr2
SHL_DAT 0x17 addr1,addr2 @addr1 &lt;&lt;= $addr2
SHR_DAT 0x18 addr1,addr2 @addr1 &gt;&gt;= $addr2
JMP_ADR 0x1a addr pc = addr
BZR_DAT 0x1b addr,offset if $addr == 0 then pc += offset
BNZ_DAT 0x1e addr,offset if $addr != 0 then pc += offset
BGT_DAT 0x1f addr1,addr2,offset if $addr1 &gt; $addr2 then pc += offset
BLT_DAT 0x20 addr1,addr2,offset if $addr1 &lt; $addr2 then pc += offset
BGE_DAT 0x21 addr1,addr2,offset if $addr1 &gt;= $addr2 then pc += offset
BLE_DAT 0x22 addr1,addr2,offset if $addr1 &lt;= $addr2 then pc += offset
BEQ_DAT 0x23 addr1,addr2,offset if $addr1 == $addr2 then pc += offset
BNE_DAT 0x24 addr1,addr2,offset if $addr1 != $addr2 then pc += offset
SLP_DAT 0x25 addr sleep until $addr timestamp*
FIZ_DAT 0x26 addr if $addr == 0 then pc = pcs and stop
STZ_DAT 0x27 addr if $addr == 0 then stop
FIN_IMD 0x28 pc = pcs and stop
STP_IMD 0x29 stop
SLP_IMD 0x2a sleep until the next block
ERR_ADR 0x2b addr pce = addr
SET_PCS 0x30 pcs = pc + 1
EXT_FUN 0x32 func func( )
EXT_FUN_DAT 0x33 func,addr func( $addr )
EXT_FUN_DAT_2 0x34 func,addr1,addr2 func( $addr1, $addr2 )
EXT_FUN_RET 0x35 func,addr @addr = func( )
EXT_FUN_RET_DAT 0x36 func,addr1,addr2 @addr1 = func( $addr2 )
EXT_FUN_RET_DAT_2 0x37 func,addr1,addr2,addr3 @addr1 = func( $addr2, $addr3 )
* where timestamp is actually a 32 bit block height stored in the high order 32 bits of the address value and
if the block height is not greater than the current block height then it will instead just operate as SLP_IMD
All instructions that modify the pc will need to ensure the value it is being set to is a valid code address.
Note that there is only a "code" and "data" segment. The "stacks" (if used) are actually included at the last
part of the data segment. If using any stack operations (i.e. PSH_DAT/POP_DAT/JMP_SUB/RET_SUB) then sufficent
data storage for both variables and the stacks would need to be allocated.
The call stack preceeds the user stack (with both growing backwards). The following picture illustrates this:
--------------
| data |
| |
| |
| |
| |
--------------
| |
| |
| call stack |
--------------
| |
| |
| user stack |
--------------
For the purpose of being able to create an AT and to store its state after executing steps there will need to
specially created host transactions.
</pre>
</div>
</div>
<div style="visibility: visible;" id="footer">
<p>
<div class="footer-icon"><a target="_blank" href="//ciyam.org/"><img src="logo-gryscl-128.png" /></a></div>
&copy; 2012-2015 CIYAM Developers
</p>
</div>
</body>
</html>

168
docs/at_api.html

@ -0,0 +1,168 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>CIYAM AT - Automated Transactions API Specification</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="copyright" content="Copyright 2015 CIYAM Developers"/>
<link rel="stylesheet" href="document.css" type="text/css"/>
</head>
<div id="content">
<div id="header">
<div id="appname"><a href="//ciyam.org/at">AT</a></div>
<h3 class="right-top">Automated Transactions API Specification</h3>
</div>
<div id="main">
<div id="text">
<pre>
Automated Transactions API Specification
----------------------------------------
This specification details the AT API which is what allows an AT to communicate with its host's blockchain to
find out details about blocks and transactions relevant to the AT and to issue its own transactions. In order
to write "portable" ATs (i.e. those that can run analtered across different kinds of blockchain platforms) it
is required that only the functions in the range 0x0100 to 0x04ff be used. Experimental functions can be used
when prototyping (and have no formal definition here) and platform specific functions can be defined in order
for ATs to be able to work more efficiently on a specific platform (and also have no formal definition here).
As the AT machine uses a 64 bit design some very useful API commands such as cryptographic hash functions are
not able to be perfomed directly with machine addresses. To work around this problem without resorting to the
API having to perform memory range testing to use the AT's data, a set of "pseudo registers" must be provided
by the AT API (every AT instance needs its own set) that are initially set to zero.
There are four 64 bit registers called A1..4 and another four called B1..4 for this purpose (also referred to
as two 256 bit registers called A and B). It is important to note that the A and B pseudo registers will need
to be stored along with the other "state" variables such as the program counter and stack counters.
Note that "timestamp" does not mean a real timestamp but instead is an artificial timestamp that includes two
parts. The first part is a block height (32 bits) with the second part being the number of the transaction if
applicable (also 32 bits and zero if not applicable).
Note also that functions can be identified as being "blocking" functions. They will cause the AT to sleep for
X blocks when it is known that the function will then be ready to return (with the function being executed by
the AT twice with the first call needing to rewind the AT's program counter before putting it to sleep).
In order to keep the functions organised in groups function number ranges are as follows:
Number Range Range Usage
-------------- ----------------------------------------------
0x0000..0x000f Reserved for internal AT testing purposes
0x0010..0x00ff Experimental API function calls (for prototyping)
0x0100..0x01ff Get/Set functions for "pseudo registers"
0x0200..0x02ff Functions that perform hash operations
0x0300..0x03ff Generic functions that get block and tx info
0x0400..0x04ff Generic functions that check balances and perform ops
0x0500..0x05ff Platform specific functions that get block and tx info
0x0600..0x06ff Platform specific functions that check balances and perform ops
As cryptographic hash operations are *expensive* operations it is suggested that the "fee" for each of those
function calls be higher than that of others (fees themselves are a platform specific implementation issue).
Function Name Number AT op code Operation (and comments)
------------------------- ------ ----------------- ----------------------------------------------------------
Get_A1 0x0100 EXT_FUN_RET sets @addr to A1
Get_A2 0x0101 EXT_FUN_RET sets @addr to A2
Get_A3 0x0102 EXT_FUN_RET sets @addr to A3
Get_A4 0x0103 EXT_FUN_RET sets @addr to A4
Get_B1 0x0104 EXT_FUN_RET sets @addr to B1
Get_B2 0x0105 EXT_FUN_RET sets @addr to B2
Get_B3 0x0106 EXT_FUN_RET sets @addr to B3
Get_B4 0x0107 EXT_FUN_RET sets @addr to B4
Set_A1 0x0110 EXT_FUN_DAT sets A1 from $addr
Set_A2 0x0111 EXT_FUN_DAT sets A2 from $addr
Set_A3 0x0112 EXT_FUN_DAT sets A3 from $addr
Set_A4 0x0113 EXT_FUN_DAT sets A4 from $addr
Set_A1_A2 0x0114 EXT_FUN_DAT_2 sets A1 from $addr1 and A2 from $addr2
Set_A3_A4 0x0115 EXT_FUN_DAT_2 sets A3 from $addr1 and A4 from $addr2
Set_B1 0x0116 EXT_FUN_DAT sets B1 from $addr
Set_B2 0x0117 EXT_FUN_DAT sets B2 from $addr
Set_B3 0x0118 EXT_FUN_DAT sets B3 from $addr
Set_B4 0x0119 EXT_FUN_DAT sets B4 from $addr
Set_B1_B2 0x011a EXT_FUN_DAT_2 sets B1 from $addr1 and B2 from $addr2
Set_B3_B4 0x011b EXT_FUN_DAT_2 sets B3 from $addr1 and B4 from $addr2
Clear_A 0x0120 EXT_FUN sets A to zero (A being A1..4)
Clear_B 0x0121 EXT_FUN sets B to zero (B being B1..4)
Clear_A_And_B 0x0122 EXT_FUN sets both A and B to zero
Copy_A_From_B 0x0123 EXT_FUN copies B into A
Copy_B_From_A 0x0124 EXT_FUN copies A into B
Check_A_Is_Zero 0x0125 EXT_FUN_RET @addr to 1 if A is zero or 0 if it is not (i.e. bool)
Check_B_Is_Zero 0x0126 EXT_FUN_RET @addr to 1 if B is zero of 0 if it is not (i.e. bool)
Check_A_Equals_B 0x0127 EXT_FUN_RET @addr to bool if A is equal to B
Swap_A_and_B 0x0128 EXT_FUN swap the values of A and B
OR_A_with_B 0x0129 EXT_FUN sets A to A | B (bitwise OR)
OR_B_with_A 0x012a EXT_FUN sets B to B | A (bitwise OR)
AND_A_with_B 0x012b EXT_FUN sets A to A & B (bitwise AND)
AND_B_with_A 0x012c EXT_FUN sets B to B & A (bitwise AND)
XOR_A_with_B 0x012d EXT_FUN sets A to A ^ B (bitwise XOR)
XOR_B_with_A 0x012e EXT_FUN sets B to B ^ A (bitwise XOR)
--- NOTE: These 8 math ops are intended for a future implementation so no need to support them currently.
Add_A_To_B 0x0140 EXT_FUN adds A to B (result in B)
Add_B_To_A 0x0141 EXT_FUN adds B to A (result in A)
Sub_A_From_B 0x0142 EXT_FUN subs A from B (result in B)
Sub_B_From_A 0x0143 EXT_FUN subs B from A (result in A)
Mul_A_By_B 0x0144 EXT_FUN multiplies A by B (result in B)
Mul_B_By_A 0x0145 EXT_FUN multiplies B by A (result in A)
Div_A_By_B 0x0146 EXT_FUN divides A by B (result in B)*
Div_B_By_A 0x0147 EXT_FUN divides B by A (result in A)*
* note that these functions could cause a divide by zero error which would put the machine in error
MD5_A_To_B 0x0200 EXT_FUN take an MD5 hash of A1..2 and put this is B1..2
Check_MD5_A_With_B 0x0201 EXT_FUN_RET @addr to bool if MD5 hash of A1..2 matches B1..2
HASH160_A_To_B 0x0202 EXT_FUN take a RIPEMD160 hash of A1..3 and put this in B1..3
Check_HASH160_A_With_B 0x0203 EXT_FUN_RET @addr to bool if RIPEMD160 hash of A1..3 matches B1..3
SHA256_A_To_B 0x0204 EXT_FUN take a SHA256 hash of A and put this in B
Check_SHA256_A_With_B 0x0205 EXT_FUN_RET @addr to bool if SHA256 hash of A matches B
Get_Block_Timestamp 0x0300 EXT_FUN_RET sets @addr to the timestamp of the current block
Get_Creation_Timestamp 0x0301 EXT_FUN_RET sets @addr to the timestamp of the AT creation block
Get_Last_Block_Timestamp 0x0302 EXT_FUN_RET sets @addr to the timestamp of the previous block
Put_Last_Block_Hash_In_A 0x0303 EXT_FUN puts the block hash of the previous block in A
A_To_Tx_After_Timestamp 0x0304 EXT_FUN_DAT sets A to tx hash of the first tx after $addr timestamp
Get_Type_For_Tx_In_A 0x0305 EXT_FUN_RET if A is a valid tx then @addr to tx type*
Get_Amount_For_Tx_In_A 0x0306 EXT_FUN_RET if A is a valid tx then @addr to tx amount**
Get_Timestamp_For_Tx_In_A 0x0307 EXT_FUN_RET if A is a valid tx then @addr to the tx timestamp
Get_Random_Id_For_Tx_In_A 0x0308 EXT_FUN_RET if A is a valid tx then @addr to the tx random id***
Message_From_Tx_In_A_To_B 0x0309 EXT_FUN if A is a valid tx then B to the tx message****
B_To_Address_Of_Tx_In_A 0x030a EXT_FUN if A is a valid tx then B set to the tx address
B_To_Address_Of_Creator 0x030b EXT_FUN sets B to the address of the AT's creator
* tx type is 0 for a normal tx and 1 for a message tx
** amount will always have the minimum fee subtracted from it
*** a random id is a 64 bit signed value (that is always returned positive) and this is a blocking function
**** if the tx does not include a message tx then this will zero out the B value
NOTE: For all cases where A is not a valid tx @addr will be set to 0xffffffffffffffff
Get_Current_Balance 0x0400 EXT_FUN_RET sets @addr to current balance of the AT
Get_Previous_Balance 0x0401 EXT_FUN_RET sets @addr to the balance it had last had when running*
Send_To_Address_In_B 0x0402 EXT_FUN_DAT if B is a valid address then send it $addr amount**
Send_All_To_Address_In_B 0x0403 EXT_FUN if B is a valid address then send it the entire balance
Send_Old_To_Address_In_B 0x0404 EXT_FUN if B is a valid address then send it the old balance**
Send_A_To_Address_In_B 0x0405 EXT_FUN if B is a valid address then send it A as a message
Add_Minutes_To_Timestamp 0x0406 EXT_FUN_RET_DAT_2 set @addr1 to timestamp $addr2 plus $addr3 minutes***
* this amount does not include any additional amounts sent to the AT between "execution events"
** if this amount is greater than the AT's balance then it will only send the current balance amount
*** the API is expected to base this timestamp according to the "average block time" for the blockchain
</pre>
</div>
</div>
<div style="visibility: visible;" id="footer">
<p>
<div class="footer-icon"><a target="_blank" href="//ciyam.org/"><img src="logo-gryscl-128.png" /></a></div>
&copy; 2012-2015 CIYAM Developers
</p>
</div>
</body>
</html>

200
docs/at_atomic.html

@ -0,0 +1,200 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>CIYAM AT - Use Case: Atomic Cross-Chain Transfer</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="copyright" content="Copyright 2015 CIYAM Developers"/>
<link rel="stylesheet" href="document.css" type="text/css"/>
</head>
<div id="content">
<div id="header">
<div id="appname"><a href="//ciyam.org/at">AT</a></div>
<h3 class="right-top">Use Case: Atomic Cross-Chain Transfer</h3>
</div>
<div id="main">
<div id="text">
<pre>
Use Case: Atomic Cross-Chain Transfer
-------------------------------------
An AT that enables an atomic cross-chain transfer to be executed by creating two separate instances of itself
on two seperate blockchains. When constructing the first instance a 32 byte secret needs to be "hashed" using
SHA256 and stored in the first 32 bytes of "initial data" followed by another 32 bytes for the address of the
other party, and then the number of minutes to wait until refunding the AT's balance back to its creator.
The initial creator would then wait for the other party to create a matching AT (with a significantly smaller
number of minutes for refund). The hash values would need to be identical. Once the initiator has seen enough
confirmations of the other AT then they will send the secret to the other AT as a message. This AT will first
copy this message into its data storage and then check if when hashed it matches the initial data values that
were provided when it was created. If they match then the funds are sent to the address stored in the initial
data.
Finally the creator of the second AT can now work out from checking their AT's state what the secret is. They
would then send a message to the originally created AT instance with the same secret and it would pay them so
the atomic cross-chain transfer will be completed.
Note that if the second party never actually creates their AT then the first party just needs to wait for the
refund to occur. Likewise once the second party has created their AT then if the first party fails to send it
the secret on time then a refund will occur (and the first party will also be refunded). The first party will
need to be careful not to send the secret too close to the deadline otherwise there is the possibility that a
refund will occur in the second AT but the secret will have already been seen in the message tx.
Another concern is possible attacks by "clogging the AT" up with tiny false message txs to try and prevent it
from paying out. This is perhaps best prevented by making sure that the minimum fee for the ATs is well above
anything that would permit such an attack to be economically beneficial.
The algorithm described at https://en.bitcoin.it/wiki/Atomic_cross-chain_trading (which the Bitcointalk forum
member TierNolan first designed) is what this AT performs (although it doesn't need multisig addresses as the
ATs take over the role of being escrows).
Variables
---------
@00 ==&gt; @hash_part1
@01 ==&gt; @hash_part2
@02 ==&gt; @hash_part3
@03 ==&gt; @hash_part4
@04 ==&gt; @address_part1
@05 ==&gt; @address_part2
@06 ==&gt; @address_part3
@07 ==&gt; @address_part4
@08 ==&gt; @refund_minutes
@09 ==&gt; @refund_timestamp
@0a ==&gt; @last_timestamp
@0b ==&gt; @secret_part1
@0c ==&gt; @secret_part2
@0d ==&gt; @secret_part3
@0e ==&gt; @secret_part4
@0f ==&gt; @tx_type
@10 ==&gt; @comparator
@11 ==&gt; @secret_temp1
@12 ==&gt; @secret_temp2
@13 ==&gt; @secret_temp3
@14 ==&gt; @secret_temp4
Script Assembly
---------------
if @refund_timestamp not zero goto loop 1e0a00000025
set @refund_timestamp to AT creation time 35010309000000
set @last_timestamp to @refund_timestamp 020a00000009000000
add @refund_minutes to @refund_timestamp 370604090000000900000008000000
:loop (0x25)
if @last_timestamp &lt; @refund_timestamp goto :txloop 210a000000090000000f
goto refund 1af7000000
:txloop (0x34)
store tx after @last_timestamp in A 3304030a000000
check if A is zero and store result to @comparator 35250110000000
if @comparator is zero finish 2610000000
get type for tx in A and store in @tx_type 3505030f000000
get timestamp for tx in A and store in @last_timestamp 3507030a000000
if @tx_type is not 0 goto :check_message 1e0f0000000b
goto txloop 1a34000000
:check_message (0x60)
store message of tx in A to B 320903
swap A and B 322801
sha256 of A and store in B 320402
set @secret_temp1 to A1 35000111000000
set @secret_temp2 to A2 35010112000000
set @secret_temp3 to A3 35020113000000
set @secret_temp4 to A4 35030114000000
set A1 to @hash_part1 33100100000000
set A2 to @hash_part2 33110101000000
set A3 to @hash_part3 33120102000000
set A4 to @hash_part4 33130103000000
check A equals to B and store in @comparator 35270110000000
if comparator is not 0 goto :payout 1e100000000b
goto :txloop 1a34000000
:payout (0xb3)
set @secret_part1 to $secret_temp1 020b00000011000000
set @secret_part2 to $secret_temp2 020c00000012000000
set @secret_part3 to $secret_temp3 020d00000013000000
set @secret_part4 to $secret_temp4 020e00000014000000
set B1 to @address_part1 33160104000000
set B2 to @address_part2 33170105000000
set B3 to @address_part3 33180106000000
set B4 to @address_part4 33190107000000
send all to address in B 320304
finish 28
:refund (0xf7)
set B to address of the AT creator 320b03
send remaining balance to addres in B 320304
finish 28
Assembly Code
-------------
00000000* BNZ $0000000a :00000025
00000006 FUN @00000009 0x0301
0000000d SET @0000000a $00000009
00000016 FUN @00000009 0x0406 $00000009 $00000008
00000025 BGE $0000000a $00000009 :00000034
0000002f JMP :000000f7
00000034 FUN 0x0304 $0000000a
0000003b FUN @00000010 0x0125
00000042 FIZ @00000010
00000047 FUN @0000000f 0x0305
0000004e FUN @0000000a 0x0307
00000055 BNZ $0000000f :00000060
0000005b JMP :00000034
00000060 FUN 0x0309
00000063 FUN 0x0128
00000066 FUN 0x0204
00000069 FUN @00000011 0x0100
00000070 FUN @00000012 0x0101
00000077 FUN @00000013 0x0102
0000007e FUN @00000014 0x0103
00000085 FUN 0x0110 $00000000
0000008c FUN 0x0111 $00000001
00000093 FUN 0x0112 $00000002
0000009a FUN 0x0113 $00000003
000000a1 FUN @00000010 0x0127
000000a8 BNZ $00000010 :000000b3
000000ae JMP :00000034
000000b3 SET @0000000b $00000011
000000bc SET @0000000c $00000012
000000c5 SET @0000000d $00000013
000000ce SET @0000000e $00000014
000000d7 FUN 0x0116 $00000004
000000de FUN 0x0117 $00000005
000000e5 FUN 0x0118 $00000006
000000ec FUN 0x0119 $00000007
000000f3 FUN 0x0403
000000f6 FIN
000000f7 FUN 0x030b
000000fa FUN 0x0403
000000fd FIN
Machine Code
------------
1e0a0000002535010309000000020a00000009000000370604090000000900000008000000210a000000090000000f1af700000033040
30a0000003525011000000026100000003505030f0000003507030a0000001e0f0000000b1a3400000032090332280132040235000111
0000003501011200000035020113000000350301140000003310010000000033110101000000331201020000003313010300000035270
1100000001e100000000b1a34000000020b00000011000000020c00000012000000020d00000013000000020e00000014000000331601
0400000033170105000000331801060000003319010700000032030428320b0332030428
</pre>
</div>
</div>
<div style="visibility: visible;" id="footer">
<p>
<div class="footer-icon"><a target="_blank" href="//ciyam.org/"><img src="logo-gryscl-128.png" /></a></div>
&copy; 2012-2015 CIYAM Developers
</p>
</div>
</body>
</html>

264
docs/at_auction.html

@ -0,0 +1,264 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>CIYAM AT - Use Case: Auction Agent</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="copyright" content="Copyright 2015 CIYAM Developers"/>
<link rel="stylesheet" href="document.css" type="text/css"/>
</head>
<div id="content">
<div id="header">
<div id="appname"><a href="//ciyam.org/at">AT</a></div>
<h3 class="right-top">Use Case: Auction Agent</h3>
</div>
<div id="main">
<div id="text">
<pre>
Use Case: Auction Agent
-----------------------
An Auction Agent is an AT that will allow people to send funds which will be refunded back to them (minus a
minimum fee) if someone else sends more. A "buy now" price would become an instant "auction finish" and the
actual auction finish will need to use some "random" data so that the exact end of the auction isn't easily
manipulated. If bid is more than "buy now" the difference is refunded.
Variables
---------
@00 ==&gt; @timestamp
@01 ==&gt; @decision_time
@02 ==&gt; @txid
@03 ==&gt; @balance
@04 ==&gt; @tx_info
@05 ==&gt; @buy_now
@06 ==&gt; @target_acc
@07 ==&gt; @best_bid
@08 ==&gt; @tx_source
@09 ==&gt; @best_account
Functions
----------
20 (0x14) = get a time stamp value for the last block in the blockchain
21 (0x15) = get txid for the first tx after the provided time stamp
22 (0x16) = get a time stamp value for a given txid
23 (0x17) = get ticket for a given txid
24 (0x18) = get source account/address for a given txid
26 (0x1a) = pay account balance to a given account/address
27 (0x1b) = get funds amount for a given txid
28 (0x1c) = get tx type and subtype for a given txid
31 (0x1f) = pay given funds amount to a given account/address
Sample Function Data:
---------------------
balance 1000
function 020 0x0000000000000000 true
function +021 0x0000000000000064,0x0000000000000065,0x0000000000000066,0x0000000000000167,0x0000000000000000 false
function 022 0x0000000000013a80,0x0000000000023a80,0x000000000ff9f9af,0x000000000ff9f9bf,0x0000000000000000 false
function 023 0x000000000000ff00,0x000000000000ee00,0x0000000000004400,0x0100000000000000,0x0000000000000000 false
function 024 0x1111000000000000,0x2222000000000000,0x3333000000000000,0x4444000000000000,0x0000000000000000 false
function 025 0 true
function 027 0x0000000000000066,0x0000000000000068,0x000000000000095,0x0000000000000064,0x0000000000000069 false
function 028 0x0000000000000000 true
Sample Run Output:
------------------
func: 20 rc: 0000000000000000
func1: 21 with 0 rc: 0000000000000064
func1: 22 with 100 rc: 0000000000013a80
func1: 28 with 100 rc: 0000000000000000
func1: 27 with 100 rc: 0000000000000066
payout 100 to account: 00000000
func1: 24 with 100 rc: 1111000000000000
func1: 21 with 80512 rc: 0000000000000065
func1: 22 with 101 rc: 0000000000023a80
func1: 28 with 101 rc: 0000000000000000
func1: 27 with 101 rc: 0000000000000068
payout 102 to account: 1111000000000000
func1: 24 with 101 rc: 2222000000000000
func1: 21 with 146048 rc: 0000000000000066
func1: 22 with 102 rc: 000000000ff9f9af
func1: 23 with 102 rc: 0000000000004400
func1: 28 with 102 rc: 0000000000000000
func1: 27 with 102 rc: 0000000000000095
payout 104 to account: 2222000000000000
func1: 24 with 102 rc: 3333000000000000
func1: 21 with 268040623 rc: 0000000000000167
func1: 22 with 359 rc: 000000000ff9f9bf
func1: 23 with 359 rc: 0100000000000000
func1: 24 with 359 rc: 4444000000000000
func1: 27 with 359 rc: 0000000000000064
payout 100 to account: 4444000000000000
payout 149 to account: 3333000000000000
func1: 21 with 268040639 rc: 0000000000000000
payout 379 to account: 286331153
(stopped - zero balance)
Script Assembly
---------------
if @timestamp not zero goto loop 1e0000000041
get last block timestamp and put in @timestamp 35140000000000
set @decision_time 0101000000c55d0a0000000000
set @buy_now (to 10000) 01050000006401000000000000
set @target_acc 01060000001111111100000000
set @best_bid to (100) 01070000006400000000000000
:loop
get tx at after @timestamp and store in @txid 3615000200000000000000
if @txid is zero finish 2602000000
get timestamp for @txid and store in @timestamp 3616000000000002000000
if @timestamp &lt; @decision_time goto no-decision 2000000000010000000f
goto decision 1a6d010000
:no-decision
get type for @txid and store in @tx_info 361c000400000002000000
if @tx_info is zero goto continue 1b040000000b
goto loop 1a41000000
:continue
get amount for @txid and store in @tx_info 361b000400000002000000
if @tx_info &lt;= @best_bid goto :refund-bid 22040000000700000038
send @best_bid to @best_account 341f000700000009000000
set @best_bid to @tx_info 020700000004000000
get account for @tx_id and store in @best_account 3618000900000002000000
if @best_bid &gt;= @buy_now goto buynow 2107000000050000002a
goto loop 1a41000000
:refund-bid
get account for @tx_id and store in @tx_source 3618000800000002000000
send @tx_info to @tx_source 341f000400000008000000
goto loop 1a41000000
:buynow
send @buy_now to @target_acc 341f000500000006000000
if @best_bid == @buy_now goto payout 23070000000500000027
set @tx_info to @best_bid 020400000007000000
subtract @buy_now to @tx_info 07040000000500000000
:payout
send @tx_info to @best_account 341f000400000009000000
:refund loop
get tx after @timestamp and store in @txid 3615000200000000000000
if @txid is non zero goto refund cont 1e020000000f
set pcs 30
send balance to target_acc 331a0006000000
finish 28
:refund cont
get type for @txid and store in @tx_info 361c000400000002000000
if @tx_info is zero go to skip 1b0400000027
get account for @txid and put in @tx_source 3618000800000002000000
get amount for @txid and put in @tx_info 361b000400000002000000
send @tx_info to @tx_source 341f000400000008000000
:skip
get timestamp for @txid and store in @timestamp 3616000000000002000000
goto refund loop 1a11010000
:decision
get rand for txid and store in @tx_info 3617000400000002000000
AND 1 to @tx_info 0b0400000001000000
if @tx_info is zero goto finalize 1b040000000b
goto no-decision 1a6b000000
:finalize
get account for @txid and put in @tx_source 3618000800000002000000
get amount for @txid and put in @tx_info 361b000400000002000000
send @tx_info to @tx_source 341f000400000008000000
send @best_bid to @best_account 341f000700000009000000
goto refund loop 1a01110000
Assembly Code
-------------
00000000* BNZ $00000000 :00000041
00000006 FUN @00000000 20
0000000d SET @00000001 #00000000000a5dc5
0000001a SET @00000005 #0000000000000164
00000027 SET @00000006 #0000000011111111
00000034 SET @00000007 #0000000000000064
00000041 FUN @00000002 21 $00000000
0000004c FIZ @00000002
00000051 FUN @00000000 22 $00000002
0000005c BLT $00000000 $00000001 :0000006b
00000066 JMP :0000016d
0000006b FUN @00000004 28 $00000002
00000076 BZR $00000004 :00000081
0000007c JMP :00000041
00000081 FUN @00000004 27 $00000002
0000008c BLE $00000004 $00000007 :000000c4
00000096 FUN 31 $00000007 $00000009
000000a1 SET @00000007 $00000004
000000aa FUN @00000009 24 $00000002
000000b5 BGE $00000007 $00000005 :000000df
000000bf JMP :00000041
000000c4 FUN @00000008 24 $00000002
000000cf FUN 31 $00000004 $00000008
000000da JMP :00000041
000000df FUN 31 $00000005 $00000006
000000ea BEQ $00000007 $00000005 :00000111
000000f4 SET @00000004 $00000007
000000fd SUB @00000004 $00000005
00000106 FUN 31 $00000004 $00000009
00000111 FUN @00000002 21 $00000000
0000011c BNZ $00000002 :0000012b
00000122 PCS
00000123 FUN 26 $00000006
0000012a FIN
0000012b FUN @00000004 28 $00000002
00000136 BZR $00000004 :0000015d
0000013c FUN @00000008 24 $00000002
00000147 FUN @00000004 27 $00000002
00000152 FUN 31 $00000004 $00000008
0000015d FUN @00000000 22 $00000002
00000168 JMP :00000111
0000016d FUN @00000004 23 $00000002
00000178 AND @00000004 $0000000000000001
00000181 BZR $00000004 :0000018c
00000187 JMP :0000006b
0000018c FUN @00000008 24 $00000002
00000197 FUN @00000004 27 $00000002
000001a2 FUN 31 $00000004 $00000008
000001ad FUN 31 $00000007 $00000009
000001b8 JMP :00000111
Machine Code
------------
1e0000000041351400000000000101000000c55d0a00000000000105000000640100000000000001060000001111111100000000
010700000064000000000000003615000200000000000000260200000036160000000000020000002000000000010000000f1a6d
010000361c0004000000020000001b040000000b1a41000000361b00040000000200000022040000000700000038341f00070000
000900000002070000000400000036180009000000020000002107000000050000002a1a41000000361800080000000200000034
1f0004000000080000001a41000000341f0005000000060000002307000000050000002702040000000700000007040000000500
0000341f00040000000900000036150002000000000000001e020000000f30331a000600000028361c0004000000020000001b04
000000273618000800000002000000361b000400000002000000341f00040000000800000036160000000000020000001a110100
0036170004000000020000000b04000000010000001b040000000b1a6b0000003618000800000002000000361b00040000000200
0000341f000400000008000000341f0007000000090000001a11010000
</pre>
</div>
</div>
<div style="visibility: visible;" id="footer">
<p>
<div class="footer-icon"><a target="_blank" href="//ciyam.org/"><img src="logo-gryscl-128.png" /></a></div>
&copy; 2012-2015 CIYAM Developers
</p>
</div>
</body>
</html>

226
docs/at_auction_tests.html

@ -0,0 +1,226 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>CIYAM AT - Use Case Tests: Auction Agent</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="copyright" content="Copyright 2015 CIYAM Developers"/>
<link rel="stylesheet" href="document.css" type="text/css"/>
</head>
<div id="content">
<div id="header">
<div id="appname"><a href="//ciyam.org/at">AT</a></div>
<h3 class="right-top">Use Case Tests: Auction Agent</h3>
</div>
<div id="main">
<div id="text">
<pre>
Use Case Tests: Auction Agent
-----------------------------
A summary of the tests follows:
Test 1: Basic auction sample.
Test 2: Buy now for first bidder.
Test 3: Buy now for second bidder.
Test 4: Check all send less than the initial bid.
Test 1: Basic usage.
--------------------
Sample Function Data (Test 1):
------------------------------
balance 1000
function 020 0x0000000000000000 true
function +021 0x0000000000000064,0x0000000000000065,0x0000000000000066,0x0000000000000167,0x0000000000000000 false
function 022 0x0000000000013a80,0x0000000000023a80,0x000000000ff9f9af,0x000000000ff9f9bf,0x0000000000000000 false
function 023 0x000000000000ff00,0x000000000000ee00,0x0000000000004400,0x0100000000000000,0x0000000000000000 false
function 024 0x1111000000000000,0x2222000000000000,0x3333000000000000,0x4444000000000000,0x0000000000000000 false
function 025 0 true
function 027 0x0000000000000066,0x0000000000000068,0x000000000000095,0x0000000000000064,0x0000000000000069 false
function 028 0x0000000000000000 true
Sample Run Output (Test 1):
---------------------------
func: 20 rc: 0000000000000000
func1: 21 with 0 rc: 0000000000000064
func1: 22 with 100 rc: 0000000000013a80
func1: 28 with 100 rc: 0000000000000000
func1: 27 with 100 rc: 0000000000000066
payout 100 to account: 00000000
func1: 24 with 100 rc: 1111000000000000
func1: 21 with 80512 rc: 0000000000000065
func1: 22 with 101 rc: 0000000000023a80
func1: 28 with 101 rc: 0000000000000000
func1: 27 with 101 rc: 0000000000000068
payout 102 to account: 1111000000000000
func1: 24 with 101 rc: 2222000000000000
func1: 21 with 146048 rc: 0000000000000066
func1: 22 with 102 rc: 000000000ff9f9af
func1: 23 with 102 rc: 0000000000004400
func1: 28 with 102 rc: 0000000000000000
func1: 27 with 102 rc: 0000000000000095
payout 104 to account: 2222000000000000
func1: 24 with 102 rc: 3333000000000000
func1: 21 with 268040623 rc: 0000000000000167
func1: 22 with 359 rc: 000000000ff9f9bf
func1: 23 with 359 rc: 0100000000000000
func1: 24 with 359 rc: 4444000000000000
func1: 27 with 359 rc: 0000000000000064
payout 100 to account: 4444000000000000
payout 149 to account: 3333000000000000
func1: 21 with 268040639 rc: 0000000000000000
payout 379 to account: 286331153
(stopped - zero balance)
Test 2: Buy now for first bidder.
---------------------------------
Sample Function Data (Test 2):
------------------------------
balance 2000
function 020 0x0000000000000000 true
function +021 0x0000000000000064,0x0000000000000065,0x0000000000000066,0x0000000000000067,0x0000000000000000 false
function 022 0x0000000000013a80,0x0000000000023a80,0x000000000ff9f9af,0x000000000ff9f9bf,0x0000000000000000 false
function 023 0x000000000000ff00,0x000000000000ee00,0x0100000000000000,0x0000000000044000,0x0000000000000000 false
function 024 0x1111000000000000,0x2222000000000000,0x3333000000000000,0x4444000000000000,0x0000000000000000 false
function 025 0 true
function 027 0x0000000000000176,0x0000000000000068,0x000000000000068,0x0000000000000064,0x0000000000000069 false
function 028 0x0000000000000000 true
Sample Run Output
-----------------
func: 20 rc: 0000000000000000
func1: 21 with 0 rc: 0000000000000064
func1: 22 with 100 rc: 0000000000013a80
func1: 28 with 100 rc: 0000000000000000
func1: 27 with 100 rc: 0000000000000176
payout 100 to account: 00000000
func1: 24 with 100 rc: 1111000000000000
payout 356 to account: 11111111
payout 18 to account: 1111000000000000
func1: 21 with 80512 rc: 0000000000000065
func1: 28 with 101 rc: 0000000000000000
func1: 22 with 101 rc: 0000000000023a80
func1: 21 with 146048 rc: 0000000000000066
func1: 28 with 102 rc: 0000000000000000
func1: 22 with 102 rc: 000000000ff9f9af
func1: 21 with 268040623 rc: 0000000000000067
func1: 28 with 103 rc: 0000000000000000
func1: 22 with 103 rc: 000000000ff9f9bf
func1: 21 with 268040639 rc: 0000000000000000
payout 1482 to account: 286331153
(stopped - zero balance)
Test 3: Buy now for second bidder.
----------------------------------
Sample Function Data (Test 3):
------------------------------
balance 2000
function 020 0x0000000000000000 true
function +021 0x0000000000000064,0x0000000000000065,0x0000000000000066,0x0000000000000067,0x0000000000000000 false
function 022 0x0000000000013a80,0x0000000000023a80,0x000000000ff9f9af,0x000000000ff9f9bf,0x0000000000000000 false
function 023 0x000000000000ff00,0x000000000000ee00,0x0100000000000000,0x0000000000044000,0x0000000000000000 false
function 024 0x1111000000000000,0x2222000000000000,0x3333000000000000,0x4444000000000000,0x0000000000000000 false
function 025 0 true
function 027 0x000000000000036,0x0000000000000189,0x000000000000189,0x0000000000000064,0x0000000000000069 false
function 028 0x0000000000000000 true
Sample Run Output (Test 3):
---------------------------
func: 20 rc: 0000000000000000
func1: 21 with 0 rc: 0000000000000064
func1: 22 with 100 rc: 0000000000013a80
func1: 28 with 100 rc: 0000000000000000
func1: 27 with 100 rc: 0000000000000036
func1: 24 with 100 rc: 1111000000000000
payout 54 to account: 1111000000000000
func1: 21 with 80512 rc: 0000000000000065
func1: 22 with 101 rc: 0000000000023a80
func1: 28 with 101 rc: 0000000000000000
func1: 27 with 101 rc: 0000000000000189
payout 100 to account: 00000000
func1: 24 with 101 rc: 2222000000000000
payout 356 to account: 11111111
payout 37 to account: 2222000000000000
func1: 21 with 146048 rc: 0000000000000066
func1: 28 with 102 rc: 0000000000000000
func1: 22 with 102 rc: 000000000ff9f9af
func1: 21 with 268040623 rc: 0000000000000067
func1: 28 with 103 rc: 0000000000000000
func1: 22 with 103 rc: 000000000ff9f9bf
func1: 21 with 268040639 rc: 0000000000000000
payout 1404 to account: 286331153
(stopped - zero balance)
Test 4: Check all send less than the initial bid.
-------------------------------------------------
Sample Function Data (Test 4):
------------------------------
balance 2000
function 020 0x0000000000000000 true
function +021 0x0000000000000064,0x0000000000000065,0x0000000000000066,0x0000000000000067,0x0000000000000000 false
function 022 0x0000000000013a80,0x0000000000023a80,0x000000000ff9f9af,0x000000000ff9f9bf,0x0000000000000000 false
function 023 0x000000000000ff00,0x000000000000ee00,0x0100000000000000,0x0000000000044000,0x0000000000000000 false
function 024 0x1111000000000000,0x2222000000000000,0x3333000000000000,0x4444000000000000,0x0000000000000000 false
function 025 0 true
function 027 0x000000000000038,0x0000000000000048,0x000000000000018,0x0000000000000024,0x0000000000000069 false
function 028 0x0000000000000000 true
Sample Run Output (Test 4):
---------------------------
func: 20 rc: 0000000000000000
func1: 21 with 0 rc: 0000000000000064
func1: 22 with 100 rc: 0000000000013a80
func1: 28 with 100 rc: 0000000000000000
func1: 27 with 100 rc: 0000000000000038
func1: 24 with 100 rc: 1111000000000000
payout 56 to account: 1111000000000000
func1: 21 with 80512 rc: 0000000000000065
func1: 22 with 101 rc: 0000000000023a80
func1: 28 with 101 rc: 0000000000000000
func1: 27 with 101 rc: 0000000000000048
func1: 24 with 101 rc: 2222000000000000
payout 72 to account: 2222000000000000
func1: 21 with 146048 rc: 0000000000000066
func1: 22 with 102 rc: 000000000ff9f9af
func1: 23 with 102 rc: 0100000000000000
func1: 24 with 102 rc: 3333000000000000
func1: 27 with 102 rc: 0000000000000018
payout 24 to account: 3333000000000000
payout 100 to account: 00000000
func1: 21 with 268040623 rc: 0000000000000067
func1: 28 with 103 rc: 0000000000000000
func1: 22 with 103 rc: 000000000ff9f9bf
func1: 21 with 268040639 rc: 0000000000000000
payout 1698 to account: 286331153
(stopped - zero balance)
</pre>
</div>
</div>
<div style="visibility: visible;" id="footer">
<p>
<div class="footer-icon"><a target="_blank" href="//ciyam.org/"><img src="logo-gryscl-128.png" /></a></div>
&copy; 2012-2015 CIYAM Developers
</p>
</div>
</body>
</html>

187
docs/at_crowdfund.html

@ -0,0 +1,187 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>CIYAM AT - Use Case: Crowdfunding Agent</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="copyright" content="Copyright 2015 CIYAM Developers"/>
<link rel="stylesheet" href="document.css" type="text/css"/>
</head>
<div id="content">
<div id="header">
<div id="appname"><a href="//ciyam.org/at">AT</a></div>
<h3 class="right-top">Use Case: Crowdfunding Agent</h3>
</div>
<div id="main">
<div id="text">
<pre>
Use Case: Crowdfunding Agent
----------------------------
If a target balance is achieved by a hard-coded time then the entire balance will be sent to an account which
is also hard-coded into the AT. If not then the txs that were sent to it will be iterated and refunded to one
by one.
Note that there are exactly 9 steps required to be executed "per refund" so in order for this AT to correctly
refund every tx a fee that allows for those steps would either need to be charged for sending funds to the AT
or otherwise the amount needed to cover those steps would need to be deducted from the refund.
Variables
---------
@00 ==&gt; @timestamp
@01 ==&gt; @decision_time
@02 ==&gt; @txid
@03 ==&gt; (unused)
@04 ==&gt; @tx_info
@05 ==&gt; @target_amt
@06 ==&gt; @target_acc
@07 ==&gt; @balance
@08 ==&gt; @tx_source
@09 ==&gt; @refund_time
Functions
---------
20 (0x14) = get a time stamp value for the last block in the blockchain
21 (0x15) = get txid for the first tx after the provided time stamp
22 (0x16) = get a time stamp value for a given txid
24 (0x18) = get source account/address for a given txid
25 (0x19) = get balance of own account
27 (0x1b) = get funds amount for a given txid
31 (0x1f) = pay given funds amount to a given account/address
Sample Function Data
--------------------
function 020 0x0000000000012345 true
function +021 0x0000000000000064,0x0000000000000065,0x0000000000000066,0x0000000000000000 false
function 022 0x00000000000a5da8,0x00000000000a5db8,0x00000000000a5dc8,0x0000000000000000 false
function 023 0x000000000000ff00,0x000000000000ee00,0x000000000000ffff,0x0000000000000000 false
function 025 0 true
function 024 0x1111000000000000,0x2222000000000000,0x3333000000000000,0x0000000000000000 false
function 027 0x0000000000000100,0x0000000000000100,0x0000000000000100,0x0000000000000000 false
Sample Run Output
-----------------
func: 20 rc: 0000000000012345
func1: 21 with 74565 rc: 0000000000000064
func1: 22 with 100 rc: 00000000000a5da8
func1: 21 with 679336 rc: 0000000000000065
func1: 22 with 101 rc: 00000000000a5db8
func1: 21 with 679352 rc: 0000000000000066
func1: 22 with 102 rc: 00000000000a5dc8
(resetting function data)
func: 25 rc: 0000000000000051
func1: 21 with 74565 rc: 0000000000000064
func1: 22 with 100 rc: 00000000000a5da8
func1: 28 with 100 rc: 0000000000000000
func1: 24 with 100 rc: 1111000000000000
func1: 27 with 100 rc: 0000000000000100
payout 70 to account: 1111000000000000
(stopped - zero balance)
Script Assembly
---------------
if @timestamp not zero goto loop 1e0000000034
get last block timestamp and put in @timestamp 35140000000000
copy @timestamp to @refund_time 020900000000000000
set @decision_time 0101000000c55d0a0000000000
set @target_amt (to 100) 01050000006400000000000000
set @target_acc 01060000001111111100000000
:loop (0000003d)
get tx at after @timestamp and store in @txid 3615000200000000000000
get timestamp for @txid and store in @timestamp 3616000000000002000000
if @timestamp &gt; @decision_time goto decision 1f000000000100000014
if @txid is zero finish 2602000000
goto loop 1a3d000000
:decision (00000067)
get balance and store in @balance 35190007000000
restore @timestamp from @refund_time 020000000009000000
if @target_amt &gt; @balance goto refund 1f050000000700000013
:funded
set pcs 30
pay balance to @target_account 331a0006000000
finish 28
:refund (0000008a)
set pcs 30
:refund loop
get tx at after @timestamp and store in @txid 3615000200000000000000
get timestamp for @txid and store in @timestamp 3616000000000002000000
if @txid is zero finish 2602000000
get tx type for @txid and store in @tx_info 361c000400000002000000
if @tx_info is non-zero goto skip 1e0400000027
get account for @txid and put in @tx_source 3618000800000002000000
get amount for @txid and store in @tx_info 361b000400000002000000
send @tx_info to @tx_source 341f000400000008000000
:skip
goto refund loop 1a8a000000
Assembly Code
-------------
00000000* BNZ $00000000 :0000003d
00000006 FUN @00000000 20
0000000d SET @00000009 $00000000
00000016 SET @00000001 #0000001100000000
00000023 SET @00000005 #00000002dd231b00
00000030 SET @00000006 #15aefb06dcb7450e
0000003d FUN @00000002 21 $00000000
00000048 FUN @00000000 22 $00000002
00000053 BGT $00000000 $00000001 :00000067
0000005d FIZ @00000002
00000062 JMP :0000003d
00000067 FUN @00000007 25
0000006e SET @00000000 $00000009
00000077 BGT $00000005 $00000007 :0000008a
00000081 PCS
00000082 FUN 26 $00000006
00000089 FIN
0000008a PCS
0000008b FUN @00000002 21 $00000000
00000096 FUN @00000000 22 $00000002
000000a1 FIZ @00000002
000000a6 FUN @00000004 28 $00000002
000000b1 BNZ $00000004 :000000d8
000000b7 FUN @00000008 24 $00000002
000000c2 FUN @00000004 27 $00000002
000000cd FUN 31 $00000004 $00000008
000000d8 JMP :0000008a
Machine Code
------------
1e000000003d351400000000000209000000000000000101000000c55d0a00000000000105000000640000000000000001060000
001111111100000000361500020000000000000036160000000000020000001f00000000010000001426020000001a3d00000035
1900070000000200000000090000001f05000000070000001330331a000600000028303615000200000000000000361600000000
00020000002602000000361c0004000000020000001e04000000273618000800000002000000361b000400000002000000341f00
04000000080000001a8a000000
</pre>
</div>
</div>
<div style="visibility: visible;" id="footer">
<p>
<div class="footer-icon"><a target="_blank" href="//ciyam.org/"><img src="logo-gryscl-128.png" /></a></div>
&copy; 2012-2015 CIYAM Developers
</p>
</div>
</body>
</html>

272
docs/at_crowdfund_tests.html

@ -0,0 +1,272 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>CIYAM AT - Use Case Tests: Crowdfunding Agent</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="copyright" content="Copyright 2015 CIYAM Developers"/>
<link rel="stylesheet" href="document.css" type="text/css"/>
</head>
<div id="content">
<div id="header">
<div id="appname"><a href="//ciyam.org/at">AT</a></div>
<h3 class="right-top">Use Case Tests: Crowdfunding Agent</h3>
</div>
<div id="main">
<div id="text">
<pre>
Use Case Tests: Crowdfunding Agent
----------------------------------
A summary of the tests follows:
Test 1 - Check refund to one account.
Test 2 - Check funding succeed, by set decision_amount to 0x20.
Test 3 - Check refund to multi-account.
Test 4 - Check @txid is zero.
Test 5 - Check tx type is non-zero.
Test 6 - Check no function data.
Test 1 (Check refund to one account)
------------------------------------
Sample Function Data (Test 1)
-----------------------------
function 020 0x0000000000012345 true
function +021 0x0000000000000064,0x0000000000000065,0x0000000000000066,0x0000000000000000 false
function 022 0x00000000000a5da8,0x00000000000a5db8,0x00000000000a5dc8,0x0000000000000000 false
function 023 0x000000000000ff00,0x000000000000ee00,0x000000000000ffff,0x0000000000000000 false
function 025 0 true
function 024 0x1111000000000000,0x2222000000000000,0x3333000000000000,0x0000000000000000 false
function 027 0x0000000000000100,0x0000000000000100,0x0000000000000100,0x0000000000000000 false
Sample Run Output (Test 1):
---------------------------
func: 20 rc: 0000000000012345
func1: 21 with 74565 rc: 0000000000000064
func1: 22 with 100 rc: 00000000000a5da8
func1: 21 with 679336 rc: 0000000000000065
func1: 22 with 101 rc: 00000000000a5db8
func1: 21 with 679352 rc: 0000000000000066
func1: 22 with 102 rc: 00000000000a5dc8
(resetting function data)
func: 25 rc: 0000000000000051
func1: 21 with 74565 rc: 0000000000000064
func1: 22 with 100 rc: 00000000000a5da8
func1: 28 with 100 rc: 0000000000000000
func1: 24 with 100 rc: 1111000000000000
func1: 27 with 100 rc: 0000000000000100
payout 70 to account: 1111000000000000
(stopped - zero balance)
Test 2 (Check funding succeed, by set decision_amount to 0x20)
--------------------------------------------------------------
Assembly Code (Test 2):
-----------------------
00000000* BNZ $00000000 :0000003d
00000006 FUN @00000000 20
0000000d SET @00000009 $00000000
00000016 SET @00000001 #00000000000a5dc5
00000023 SET @00000005 #0000000000000020
00000030 SET @00000006 #0000000011111111
0000003d FUN @00000002 21 $00000000
00000048 FUN @00000000 22 $00000002
00000053 BGT $00000000 $00000001 :00000067
0000005d FIZ @00000002
00000062 JMP :0000003d
00000067 FUN @00000007 25
0000006e SET @00000000 $00000009
00000077 BGT $00000005 $00000007 :0000008a
00000081 PCS
00000082 FUN 26 $00000006
00000089 FIN
0000008a PCS
0000008b FUN @00000002 21 $00000000
00000096 FUN @00000000 22 $00000002
000000a1 FIZ @00000002
000000a6 FUN @00000004 28 $00000002
000000b1 BNZ $00000004 :000000d8
000000b7 FUN @00000008 24 $00000002
000000c2 FUN @00000004 27 $00000002
000000cd FUN 31 $00000004 $00000008
000000d8 JMP :0000008a
Machine Code (Test 2):
----------------------
1e000000003d351400000000000209000000000000000101000000c55d0a00000000000105000000200000000000000001060000
001111111100000000361500020000000000000036160000000000020000001f00000000010000001426020000001a3d00000035
1900070000000200000000090000001f05000000070000001330331a000600000028303615000200000000000000361600000000
00020000002602000000361c0004000000020000001e04000000273618000800000002000000361b000400000002000000341f00
04000000080000001a8a000000
Sample Function Data (Test 2)
-----------------------------
function 020 0x0000000000012345 true
function +021 0x0000000000000064,0x0000000000000065,0x0000000000000066,0x0000000000000000 false
function 022 0x00000000000a5da8,0x00000000000a5db8,0x00000000000a5dc8,0x0000000000000000 false
function 023 0x000000000000ff00,0x000000000000ee00,0x000000000000ffff,0x0000000000000000 false
function 025 0 true
function 024 0x1111000000000000,0x2222000000000000,0x3333000000000000,0x0000000000000000 false
function 027 0x0000000000000100,0x0000000000000100,0x0000000000000100,0x0000000000000000 false
Sample Run Output (Test 2):
---------------------------
func: 20 rc: 0000000000012345
func1: 21 with 74565 rc: 0000000000000064
func1: 22 with 100 rc: 00000000000a5da8
func1: 21 with 679336 rc: 0000000000000065
func1: 22 with 101 rc: 00000000000a5db8
func1: 21 with 679352 rc: 0000000000000066
func1: 22 with 102 rc: 00000000000a5dc8
(resetting function data)
func: 25 rc: 0000000000000051
payout 77 to account: 286331153
(stopped - zero balance)
Test 3 (Check refund to multi-account)
-------------------------------------
Sample Function Data (Test 3)
-----------------------------
function 020 0x0000000000012345 true
function +021 0x0000000000000064,0x0000000000000065,0x0000000000000066,0x0000000000000000 false
function 022 0x00000000000a5da8,0x00000000000a5db8,0x00000000000a5dc8,0x0000000000000000 false
function 023 0x000000000000ff00,0x000000000000ee00,0x000000000000ffff,0x0000000000000000 false
function 025 0 true
function 024 0x1111000000000000,0x2222000000000000,0x3333000000000000,0x0000000000000000 false
function 027 0x0000000000000010,0x0000000000000011,0x0000000000000012,0x0000000000000000 false
Sample Run Output (Test 3):
---------------------------
func: 20 rc: 0000000000012345
func1: 21 with 74565 rc: 0000000000000064
func1: 22 with 100 rc: 00000000000a5da8
func1: 21 with 679336 rc: 0000000000000065
func1: 22 with 101 rc: 00000000000a5db8
func1: 21 with 679352 rc: 0000000000000066
func1: 22 with 102 rc: 00000000000a5dc8
(resetting function data)
func: 25 rc: 0000000000000051
func1: 21 with 74565 rc: 0000000000000064
func1: 22 with 100 rc: 00000000000a5da8
func1: 28 with 100 rc: 0000000000000000
func1: 24 with 100 rc: 1111000000000000
func1: 27 with 100 rc: 0000000000000010
payout 16 to account: 1111000000000000
func1: 21 with 679336 rc: 0000000000000065
func1: 22 with 101 rc: 00000000000a5db8
func1: 28 with 101 rc: 0000000000000000
func1: 24 with 101 rc: 2222000000000000
func1: 27 with 101 rc: 0000000000000011
payout 17 to account: 2222000000000000
func1: 21 with 679352 rc: 0000000000000066
func1: 22 with 102 rc: 00000000000a5dc8
func1: 28 with 102 rc: 0000000000000000
func1: 24 with 102 rc: 3333000000000000
func1: 27 with 102 rc: 0000000000000012
payout 17 to account: 3333000000000000
(stopped - zero balance)
Test 4 (Check @txid is zero)
-----------------------------
Sample Function Data (Test 4)
-----------------------------
function 020 0x0000000000012345 true
function 021 0x0000000000000000 false
function 022 0x00000000000a5da8,0x00000000000a5db8,0x00000000000a5dc8,0x0000000000000000 false
function 023 0x000000000000ff00,0x000000000000ee00,0x000000000000ffff,0x0000000000000000 false
function 025 0 true
function 024 0x1111000000000000,0x2222000000000000,0x3333000000000000,0x0000000000000000 false
function 027 0x0000000000000100,0x0000000000000100,0x0000000000000100,0x0000000000000000 false
Sample Run Output (Test 4):
---------------------------
func: 20 rc: 0000000000012345
func1: 21 with 74565 rc: 0000000000000000
func1: 22 with 0 rc: 00000000000a5da8
(finished)
Test 5 (Check tx type is non-zero)
----------------------------------
Sample Function Data (Test 5)
-----------------------------
function 020 0x0000000000012345 true
function +021 0x0000000000000064,0x0000000000000065,0x0000000000000066,0x0000000000000000 false
function 022 0x00000000000a5da8,0x00000000000a5db8,0x00000000000a5dc8,0x0000000000000000 false
function 023 0x000000000000ff00,0x000000000000ee00,0x000000000000ffff,0x0000000000000000 false
function 025 0 true
function 024 0x1111000000000000,0x2222000000000000,0x3333000000000000,0x0000000000000000 false
function 027 0x0000000000000100,0x0000000000000100,0x0000000000000100,0x0000000000000000 false
function 028 0x0000000000000001,0x0000000000000002,0x0000000000000003,0x0000000000000000 false
Sample Run Output (Test 5):
---------------------------
func: 20 rc: 0000000000012345
func1: 21 with 74565 rc: 0000000000000064
func1: 22 with 100 rc: 00000000000a5da8
func1: 21 with 679336 rc: 0000000000000065
func1: 22 with 101 rc: 00000000000a5db8
func1: 21 with 679352 rc: 0000000000000066
func1: 22 with 102 rc: 00000000000a5dc8
(resetting function data)
func: 25 rc: 0000000000000051
func1: 21 with 74565 rc: 0000000000000064
func1: 22 with 100 rc: 00000000000a5da8
func1: 28 with 100 rc: 0000000000000001
func1: 21 with 679336 rc: 0000000000000065
func1: 22 with 101 rc: 00000000000a5db8
func1: 28 with 101 rc: 0000000000000002
func1: 21 with 679352 rc: 0000000000000066
func1: 22 with 102 rc: 00000000000a5dc8
func1: 28 with 102 rc: 0000000000000003
func1: 21 with 679368 rc: 0000000000000000
func1: 22 with 0 rc: 0000000000000000
(finished)
Test 6 (Check no function data)
-------------------------------
Sample Function Data (Test 6)
-----------------------------
Sample Run Output (Test 6):
---------------------------
func: 20 rc: 0000000000000000
func1: 21 with 0 rc: 0000000000000000
func1: 22 with 0 rc: 0000000000000000
(finished)
</pre>
</div>
</div>
<div style="visibility: visible;" id="footer">
<p>
<div class="footer-icon"><a target="_blank" href="//ciyam.org/"><img src="logo-gryscl-128.png" /></a></div>
&copy; 2012-2015 CIYAM Developers
</p>
</div>
</body>
</html>

175
docs/at_dormant.html

@ -0,0 +1,175 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>CIYAM AT - Use Case: Dormant Funds Transfer</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="copyright" content="Copyright 2015 CIYAM Developers"/>
<link rel="stylesheet" href="document.css" type="text/css"/>
</head>
<div id="content">
<div id="header">
<div id="appname"><a href="//ciyam.org/at">AT</a></div>
<h3 class="right-top">Use Case: Dormant Funds Transfer</h3>
</div>
<div id="main">
<div id="text">
<pre>
Use Case: Dormant Funds Transfer
--------------------------------
An AT that will transfer its funds to another account if it is not sent a tx before a given time. This can be
used as a simple "will" to endow or donate funds when an account has become dormant.
First execution will set up a timestamp in future and any later transaction sent by the AT's owner will reset
this to the future again. If a transaction is sent to it from any other account after the payout time then it
will transfer its balance to the "payout" account (this is initially hard-coded but can be at any time before
payout modified by the AT's owner via the first 64 bits of an AM if AMs are supported by the host).
Variables
---------
@00 ==&gt; @timestamp
@01 ==&gt; @payout_time
@02 ==&gt; @txid
@03 ==&gt; @tx_time
@04 ==&gt; @tx_info
@05 ==&gt; @tx_source
@06 ==&gt; @am_type_subtype
@07 ==&gt; @payout_account
@08 ==&gt; @zero
Functions
---------
20 (0x14) = get a time stamp value for the last block in the blockchain
21 (0x15) = get txid for the first tx after the provided time stamp
22 (0x16) = get a time stamp value for a given txid
24 (0x18) = get source account/address for a given txid
26 (0x1a) = pay account balance to a given account/address
28 (0x1c) = get tx type and subtype for a given txid
29 (0x1d) = get the AT creator's account/address
30 (0x1e) = get first 64 bits of AM data
Sample Function Data
--------------------
function 020 0x0000000000012345 true
function +021 0x0000000000000064,0x0000000000000065,0x0000000000000066,0x0000000000000000 false
function 022 0x0000000000012345,0x0000000000012345,0x00000000000a5dc8,0x0000000000000000 false
function 024 0x1111000000000000,0x2222000000000000,0x3333000000000000,0x0000000000000000 false
function 028 0x0000000000000000,0x0000000100000002,0x0000000000000000,0x0000000000000000 false
function 029 0x2222000000000000 true
function 030 0x0000000000000000,0x1111111100000000,0x0000000000000000,0x0000000000000000 false
Sample Run Output
-----------------
func: 20 rc: 0000000000012345
func1: 21 with 74565 rc: 0000000000000064
func1: 22 with 100 rc: 0000000000012345
func1: 28 with 100 rc: 0000000000000000
func1: 21 with 74565 rc: 0000000000000065
func1: 22 with 101 rc: 0000000000012345
func1: 28 with 101 rc: 0000000100000002
func: 29 rc: 2222000000000000
func1: 24 with 101 rc: 2222000000000000
func2: 30 with 101 and 0 rc: 1111111100000000
func1: 21 with 74565 rc: 0000000000000066
func1: 22 with 102 rc: 00000000000a5dc8
func1: 28 with 102 rc: 0000000000000000
payout 56 to account: 1229782937960972288
(stopped - zero balance)
Script Assembly
---------------
if @timestamp not zero goto loop 1e0000000046
get last block timestamp and put in @timestamp 35140000000000
set @am_type_subtype to 0x0000000100000002 (AM) 01060000000200000001000000
set @payout account to 0x0000000011111111 01070000001111111100000000
:init (00000027)
set @payout_time to $timestamp 020100000000000000
set @tx_info to (604800 seconds in a week) 0104000000803a090000000000
add @tx_info to @payout_time 060100000004000000
:loop (00000046)
get tx at after @timestamp and store in @txid 3615000200000000000000
if @txid is zero finish 2602000000
get timestamp for @txid and store in @tx_time 3616000300000002000000
get tx type for @txid and store in @tx_info 361c000400000002000000
if @tx_info != @am_type_subtype goto skip 24040000000600000044
get AT owner's account and store in @tx_info 351d0004000000
get account for @txid and put in @tx_source 3618000500000002000000
if @tx_info != @tx_source goto skip 24040000000500000028
get AM data for @txid at pos @zero and put in @tx_info 371e00040000000200000008000000
if @tx_info zero then goto skip 1b040000000f
set @payout_account to @tx_info 020700000004000000
:skip (000000b0)
if @payout_account zero goto ignore 1b0700000010
if @tx_time &gt; @payout_time goto payout 1f030000000100000018
:ignore (000000c0)
set @timestamp to @tx_time 020000000003000000
goto init 1a27000000
:payout (000000ce)
pay balance to @payout_account 331a0007000000
finish 28
Assembly Code
-------------
00000000* BNZ $00000000 :00000046
00000006 FUN @00000000 20
0000000d SET @00000006 #0000000100000002
0000001a SET @00000007 #0000000011111111
00000027 SET @00000001 $00000000
00000030 SET @00000004 #0000000000093a80
0000003d ADD @00000001 $00000004
00000046 FUN @00000002 21 $00000000
00000051 FIZ @00000002
00000056 FUN @00000003 22 $00000002
00000061 FUN @00000004 28 $00000002
0000006c BNE $00000004 $00000006 :000000b0
00000076 FUN @00000004 29
0000007d FUN @00000005 24 $00000002
00000088 BNE $00000004 $00000005 :000000b0
00000092 FUN @00000004 30 $00000002 $00000008
000000a1 BZR $00000004 :000000b0
000000a7 SET @00000007 $00000004
000000b0 BZR $00000007 :000000c0
000000b6 BGT $00000003 $00000001 :000000ce
000000c0 SET @00000000 $00000003
000000c9 JMP :00000027
000000ce FUN 26 $00000007
000000d5 FIN
Machine Code
------------
1e00000000463514000000000001060000000200000001000000010700000011111111000000000201000000000000000104
000000803a090000000000060100000004000000361500020000000000000026020000003616000300000002000000361c00
040000000200000024040000000600000044351d0004000000361800050000000200000024040000000500000028371e0004
00000002000000080000001b040000000f0207000000040000001b07000000101f0300000001000000180200000000030000
001a27000000331a000700000028
</pre>
</div>
</div>
<div style="visibility: visible;" id="footer">
<p>
<div class="footer-icon"><a target="_blank" href="//ciyam.org/"><img src="logo-gryscl-128.png" /></a></div>
&copy; 2012-2015 CIYAM Developers
</p>
</div>
</body>
</html>

186
docs/at_dormant_tests.html

@ -0,0 +1,186 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>CIYAM AT - Use Case Tests: Dormant Funds Transfer</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="copyright" content="Copyright 2015 CIYAM Developers"/>
<link rel="stylesheet" href="document.css" type="text/css"/>
</head>
<div id="content">
<div id="header">
<div id="appname"><a href="//ciyam.org/at">AT</a></div>
<h3 class="right-top">Use Case Tests: Dormant Funds Transfer</h3>
</div>
<div id="main">
<div id="text">
<pre>
Use Case Tests: Dormant Funds Transfer
--------------------------------------
A summary of the tests follows:
Test 1 - Check transfer succeed to the account set by AM.
Test 2 - Check transfer succeed to default account without AM.
Test 3 - Check don't transfer when AT sent tx before a given time.
Test 4 - Check transfer succeed to default account with other's AM.
Test 5 - Check no function data.
Test 1 (Check transfer succeed to the account set by AM)
--------------------------------------------------------
Sample Function Data (Test 1)
-----------------------------
function 020 0x0000000000012345 true
function +021 0x0000000000000064,0x0000000000000065,0x0000000000000066,0x0000000000000000 false
function 022 0x0000000000012345,0x0000000000012345,0x00000000000a5dc8,0x0000000000000000 false
function 024 0x1111000000000000,0x2222000000000000,0x3333000000000000,0x0000000000000000 false
function 028 0x0000000000000000,0x0000000100000002,0x0000000000000000,0x0000000000000000 false
function 029 0x2222000000000000 true
function 030 0x0000000000000000,0x1111012300000000,0x0000000000000000,0x0000000000000000 false
Sample Run Output (Test 1):
---------------------------
func: 20 rc: 0000000000012345
func1: 21 with 74565 rc: 0000000000000064
func1: 22 with 100 rc: 0000000000012345
func1: 28 with 100 rc: 0000000000000000
func1: 21 with 74565 rc: 0000000000000065
func1: 22 with 101 rc: 0000000000012345
func1: 28 with 101 rc: 0000000100000002
func: 29 rc: 2222000000000000
func1: 24 with 101 rc: 2222000000000000
func2: 30 with 101 and 0 rc: 1111012300000000
func1: 21 with 74565 rc: 0000000000000066
func1: 22 with 102 rc: 00000000000a5dc8
func1: 28 with 102 rc: 0000000000000000
payout 56 to account: 1229765423084339200
(stopped - zero balance)
Test 2 (Check transfer succeed to default account without AM)
-------------------------------------------------------------
Sample Function Data (Test 2)
-----------------------------
function 020 0x0000000000012345 true
function +021 0x0000000000000064,0x0000000000000065,0x0000000000000066,0x0000000000000000 false
function 022 0x0000000000012345,0x0000000000012345,0x00000000000a5dc8,0x0000000000000000 false
function 024 0x1111000000000000,0x2222000000000000,0x3333000000000000,0x0000000000000000 false
function 028 0x0000000000000000,0x0000000100000002,0x0000000000000000,0x0000000000000000 false
function 029 0x2222000000000000 true
Sample Run Output (Test 2):
---------------------------
func: 20 rc: 0000000000012345
func1: 21 with 74565 rc: 0000000000000064
func1: 22 with 100 rc: 0000000000012345
func1: 28 with 100 rc: 0000000000000000
func1: 21 with 74565 rc: 0000000000000065
func1: 22 with 101 rc: 0000000000012345
func1: 28 with 101 rc: 0000000100000002
func: 29 rc: 2222000000000000
func1: 24 with 101 rc: 2222000000000000
func2: 30 with 101 and 0 rc: 0000000000000000
func1: 21 with 74565 rc: 0000000000000066
func1: 22 with 102 rc: 00000000000a5dc8
func1: 28 with 102 rc: 0000000000000000
payout 57 to account: 286331153
(stopped - zero balance)
Test 3 (Check don't transfer when AT sent tx before a given time)
-----------------------------------------------------------------
Sample Function Data (Test 3)
-----------------------------
function 020 0x0000000000012345 true
function +021 0x0000000000000064,0x0000000000000065,0x0000000000000066,0x0000000000000000 false
function 022 0x0000000000012345,0x0000000000012346,0x0000000000012347,0x0000000000000000 false
function 024 0x1111000000000000,0x2222000000000000,0x3333000000000000,0x0000000000000000 false
function 028 0x0000000000000000,0x0000000100000002,0x0000000000000000,0x0000000000000000 false
function 029 0x2222000000000000 true
function 030 0x0000000000000000,0x1111012300000000,0x0000000000000000,0x0000000000000000 false
Sample Run Output (Test 3):
---------------------------
func: 20 rc: 0000000000012345
func1: 21 with 74565 rc: 0000000000000064
func1: 22 with 100 rc: 0000000000012345
func1: 28 with 100 rc: 0000000000000000
func1: 21 with 74565 rc: 0000000000000065
func1: 22 with 101 rc: 0000000000012346
func1: 28 with 101 rc: 0000000100000002
func: 29 rc: 2222000000000000
func1: 24 with 101 rc: 2222000000000000
func2: 30 with 101 and 0 rc: 1111012300000000
func1: 21 with 74566 rc: 0000000000000066
func1: 22 with 102 rc: 0000000000012347
func1: 28 with 102 rc: 0000000000000000
func1: 21 with 74567 rc: 0000000000000000
(finished)
Test 4 (Check transfer succeed to default account with others'AM)
-----------------------------------------------------------------
Sample Function Data (Test 4)
-----------------------------
balance 1000
function 020 0x0000000000012345 true
function +021 0x0000000000000064,0x0000000000000065,0x0000000000000066,0x0000000000000000 false
function 022 0x0000000000012345,0x0000000000012345,0x00000000000a5dc8,0x0000000000000000 false
function 024 0x1111000000000000,0x3333000000000000,0x4444000000000000,0x0000000000000000 false
function 028 0x0000000000000000,0x0000000100000002,0x0000000000000000,0x0000000000000000 false
function 029 0x2222000000000000 true
function 030 0x1111455000000000,0x1111112300000000,0x0000000000000000,0x0000000000000000 false
Sample Run Output (Test 4):
---------------------------
func: 20 rc: 0000000000012345
func1: 21 with 74565 rc: 0000000000000064
func1: 22 with 100 rc: 0000000000012345
func1: 28 with 100 rc: 0000000000000000
func1: 21 with 74565 rc: 0000000000000065
func1: 22 with 101 rc: 0000000000012345
func1: 28 with 101 rc: 0000000100000002
func: 29 rc: 2222000000000000
func1: 24 with 101 rc: 3333000000000000
func1: 21 with 74565 rc: 0000000000000066
func1: 22 with 102 rc: 00000000000a5dc8
func1: 28 with 102 rc: 0000000000000000
payout 959 to account: 286331153
(stopped - zero balance)
Test 5 (Check no function data)
-------------------------------
Sample Run Output (Test 5):
---------------------------
func: 20 rc: 0000000000000000
func1: 21 with 0 rc: 0000000000000000
(finished)
</pre>
</div>
</div>
<div style="visibility: visible;" id="footer">
<p>
<div class="footer-icon"><a target="_blank" href="//ciyam.org/"><img src="logo-gryscl-128.png" /></a></div>
&copy; 2012-2015 CIYAM Developers
</p>
</div>
</body>
</html>

230
docs/at_lottery.html

@ -0,0 +1,230 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>CIYAM AT - Use Case: Lottery</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="copyright" content="Copyright 2015 CIYAM Developers"/>
<link rel="stylesheet" href="document.css" type="text/css"/>
</head>
<div id="content">
<div id="header">
<div id="appname"><a href="//ciyam.org/at">AT</a></div>
<h3 class="right-top">Use Case: Lottery</h3>
</div>
<div id="main">
<div id="text">
<pre>
Use Case: Lottery
-----------------
A lottery where the highest ticket "value" in a given time period will be rewarded the AT's balance. A ticket
is expected to be the hash of adding a tx id to a future block id. Minimum ticket price is set at 1 unit (and
this can be changed via the @min_amount variable).
Variables
---------
@00 ==&gt; @timestamp
@01 ==&gt; @payout_time
@02 ==&gt; @txid
@03 ==&gt; @tx_time
@04 ==&gt; @tx_info
@05 ==&gt; @best_ticket
@06 ==&gt; @best_account
@07 ==&gt; @balance
@08 ==&gt; @tx_amount
@09 ==&gt; @min_amount
@0a ==&gt; @target_account
Functions
---------
20 (0x14) = get a time stamp value for the last block in the blockchain
21 (0x15) = get txid for the first tx after the provided time stamp
22 (0x16) = get a time stamp value for a given txid
23 (0x17) = get ticket for a given txid
24 (0x18) = get source account/address for a given txid
27 (0x1b) = get funds amount for a given txid
28 (0x1c) = get tx type and subtype for a given txid
31 (0x1f) = pay given funds amount to a given account/address
32 (0x20) = get old balance of own account
33 (0x21) = pay old balance to a given account/address
Sample Function Data
--------------------
balance 1000
function 020 0x0000000000012345 true
function +021 0x0000000000000064,0x0000000000000065,0x0000000000000066,0x0000000000000067,0x0000000000000000 false
function 022 0x00000000000a5da8,0x00000000000a5db8,0x00000000000a5dc4,0x00000000000a5dc8,0x0000000000000000 false
function 023 0x000000000000ff00,0x000000000000ee00,0x000000000000fff0,0x000000000000ffff,0x0000000000000000 false
function 024 0x1111000000000000,0x2222000000000000,0x3333000000000000,0x4444000000000000,0x0000000000000000 false
function 027 0x0000000000000064,0x0000000000000062,0x0000000000000128,0x0000000000000064,0x0000000000000000 false
function 028 0x0000000000000000 true
Sample Run Output
-----------------
func: 20 rc: 0000000000012345
func1: 21 with 74565 rc: 0000000000000064
func1: 22 with 100 rc: 00000000000a5da8
func1: 27 with 100 rc: 0000000000000064
func1: 28 with 100 rc: 0000000000000000
func1: 23 with 100 rc: 000000000000ff00
func1: 24 with 100 rc: 1111000000000000
func1: 21 with 679336 rc: 0000000000000065
func1: 22 with 101 rc: 00000000000a5db8
func1: 27 with 101 rc: 0000000000000062
func1: 24 with 101 rc: 2222000000000000
payout 98 to account: 2222000000000000
func1: 21 with 679352 rc: 0000000000000066
func1: 22 with 102 rc: 00000000000a5dc4
func1: 27 with 102 rc: 0000000000000128
func1: 24 with 102 rc: 3333000000000000
payout 196 to account: 3333000000000000
func1: 28 with 102 rc: 0000000000000000
func1: 23 with 102 rc: 000000000000fff0
func1: 24 with 102 rc: 3333000000000000
func1: 21 with 679364 rc: 0000000000000067
func1: 22 with 103 rc: 00000000000a5dc8
func: 32 rc: 0000000000000285
payout 642 to account: 3689292519746568192
func1: 33 with 3689292519746568192 rc: 0000000000000000
(stopped - zero balance)
Script Assembly
---------------
if @timestamp not zero goto loop 1e0000000039
set @min_amount to 100 (1 unit) 01090000006400000000000000
get last block timestamp and put in @timestamp 35140000000000
:init (0000001a)
set @payout_time to $timestamp 020100000000000000
set @tx_info to (604800 seconds in a week) 0104000000803a090000000000
add @tx_info to @payout_time 060100000004000000
:loop (00000039)
get tx at after @timestamp and store in @txid 3615000200000000000000
if @txid is zero finish 2602000000
get timestamp for @txid and store in @tx_time 3616000300000002000000
if @tx_time &gt; @payout_time goto payout 1f030000000100000072
get amount for @txid and store in @tx_amount 361b000800000002000000
if @tx_amount == @min_amount goto continue 2308000000090000000f
goto refund 1af3000000
:continue (00000078)
get tx type for @txid and store in @tx_info 361c000400000002000000
if @tx_info is non-zero goto skip 1e0400000035
get ticket for @txid and store in @tx_info 3617000400000002000000
if @tx_info zero finish 26040000007f
if @tx_info &lt; @best_ticket goto skip 2004000000050000001e
set @best_ticket to @tx_info 020500000004000000
get account for @txid and put in @best_account 3618000600000002000000
:skip (000000b8)
set @timestamp to @tx_time 020000000003000000
goto loop 1a39000000
:payout (000000c6)
get old balance and store in @balance 35200007000000
if @balance is zero goto empty 1b0700000018
if @best_ticket is zero goto empty 1b0500000012
pay balance to @best_account 33210006000000
goto finish_payout 1a31010000
:empty (000000e5)
set @timestamp to @tx_time 020000000003000000
goto init 1a1a000000
:refund (000000f3)
get account for @tx_id and put in @target_account 3618000a00000002000000
if @tx_amount &lt; @min_amount goto :refund_less 20080000000900000023
subtract @min_amount from @tx_amount 070800000009000000
send @tx_amount to @target_account 341f00080000000a000000
goto continue 1a78000000
:refund less (00000121)
send @tx_amount to @target_account 341f00080000000a000000
goto skip 1ab8000000
:finish_payout (00000131)
set @timestamp to @payout_time 020000000004000000
clear @best_ticket to zero 0305000000
goto init 1a1a000000
Assembly Code
-------------
00000000* BNZ $00000000 :00000039
00000006 SET @00000009 #0000000000000064
00000013 FUN @00000000 20
0000001a SET @00000001 $00000000
00000023 SET @00000004 #0000000000093a80
00000030 ADD @00000001 $00000004
00000039 FUN @00000002 21 $00000000
00000044 FIZ @00000002
00000049 FUN @00000003 22 $00000002
00000054 BGT $00000003 $00000001 :000000c6
0000005e FUN @00000008 27 $00000002
00000069 BEQ $00000008 $00000009 :00000078
00000073 JMP :000000f3
00000078 FUN @00000004 28 $00000002
00000083 BNZ $00000004 :000000b8
00000089 FUN @00000004 23 $00000002
00000094 FIZ @00000004
00000099 NOP
0000009a BLT $00000004 $00000005 :000000b8
000000a4 SET @00000005 $00000004
000000ad FUN @00000006 24 $00000002
000000b8 SET @00000000 $00000003
000000c1 JMP :00000039
000000c6 FUN @00000007 32
000000cd BZR $00000007 :000000e5
000000d3 BZR $00000005 :000000e5
000000d9 FUN 33 $00000006
000000e0 CLR @00000005
000000e5 SET @00000000 $00000003
000000ee JMP :0000001a
000000f3 FUN @0000000a 24 $00000002
000000fe BLT $00000008 $00000009 :0000012c
00000108 SUB @00000008 $00000009
00000111 FUN 31 $0000000a $00000002
0000011c JMP :00000078
00000121 FUN 31 $00000008 $0000000a
0000012c JMP :000000b8
Machine Code
------------
1e000000003901090000006400000000000000351400000000000201000000000000000104000000803a0900000000000601
000000040000003615000200000000000000260200000036160003000000020000001f030000000100000072361b00080000
00020000002308000000090000000f1af3000000361c0004000000020000001e040000003536170004000000020000002604
0000007f2004000000050000001e02050000000400000036180006000000020000000200000000030000001a390000003520
00070000001b07000000181b0500000012332100060000001a310100000200000000030000001a1a0000003618000a000000
0200000020080000000900000023070800000009000000341f00080000000a0000001a78000000341f00080000000a000000
1ab800000002000000000400000003050000001a1a000000
</pre>
</div>
</div>
<div style="visibility: visible;" id="footer">
<p>
<div class="footer-icon"><a target="_blank" href="//ciyam.org/"><img src="logo-gryscl-128.png" /></a></div>
&copy; 2012-2015 CIYAM Developers
</p>
</div>
</body>
</html>

201
docs/at_lottery_tests.html

@ -0,0 +1,201 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>CIYAM AT - Use Case Tests: Lottery</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="copyright" content="Copyright 2015 CIYAM Developers"/>
<link rel="stylesheet" href="document.css" type="text/css"/>
</head>
<div id="content">
<div id="header">
<div id="appname"><a href="//ciyam.org/at">AT</a></div>
<h3 class="right-top">Use Case Tests: Lottery</h3>
</div>
<div id="main">
<div id="text">
<pre>
Use Case Tests: Lottery
-----------------------
For each test the sample function data is provided and the results/output of the AT program (balance has been
set to 1000).
A summary of the tests follows:
Test 1: Check that less than minimum amount is refunded. (player 1 wins)
Test 2: Check that exact amount purchases a ticket. (player 2 wins)
Test 3: Check that extra payment refunds difference. (player 3 wins)
Test 4: Check all pay less. (no player wins)
Test 1 (Check that less than minimum amount is refunded)
--------------------------------------------------------
Sample Function Data (Test 1):
------------------------------
balance 1000
function 020 0x0000000000000000 true
function +021 0x0000000000000064,0x0000000000000065,0x0000000000000066,0x0000000000000000 false
function 022 0x0000000000013a80,0x0000000000023a80,0x0000000000093a81,0x0000000000000000 false
function 023 0x000000000000ff00,0x000000000000ee00,0x000000000000fff0,0x0000000000000000 false
function 024 0x1111000000000000,0x2222000000000000,0x3333000000000000,0x0000000000000000 false
function 027 0x0000000000000064,0x0000000000000062,0x000000000000064,0x0000000000000064 false
function 028 0x0000000000000000 true
Sample Run Output (Test 1):
---------------------------
func: 20 rc: 0000000000000000
func1: 21 with 0 rc: 0000000000000064
func1: 22 with 100 rc: 0000000000013a80
func1: 27 with 100 rc: 0000000000000064
func1: 28 with 100 rc: 0000000000000000
func1: 23 with 100 rc: 000000000000ff00
func1: 24 with 100 rc: 1111000000000000
func1: 21 with 80512 rc: 0000000000000065
func1: 22 with 101 rc: 0000000000023a80
func1: 27 with 101 rc: 0000000000000062
func1: 24 with 101 rc: 2222000000000000
payout 98 to account: 2222000000000000
func1: 21 with 146048 rc: 0000000000000066
func1: 22 with 102 rc: 0000000000093a81
func: 32 rc: 000000000000035f
payout 860 to account: 1229764173248856064
func1: 33 with 1229764173248856064 rc: 0000000000000000
(stopped - zero balance)
Test 2 (Check that exact amount purchases a ticket)
---------------------------------------------------
Sample Function Data (Test 2):
------------------------------
balance 1000
function 020 0x0000000000000000 true
function +021 0x0000000000000064,0x0000000000000065,0x0000000000000066,0x0000000000000000 false
function 022 0x0000000000013a80,0x0000000000023a80,0x0000000000093a81,0x0000000000000000 false
function 023 0x000000000000ee00,0x000000000000ff00,0x000000000000fff0,0x0000000000000000 false
function 024 0x1111000000000000,0x2222000000000000,0x3333000000000000,0x0000000000000000 false
function 027 0x0000000000000064,0x0000000000000064,0x000000000000064,0x0000000000000064 false
function 028 0x0000000000000000 true
Sample Run Output
-----------------
func: 20 rc: 0000000000000000
func1: 21 with 0 rc: 0000000000000064
func1: 22 with 100 rc: 0000000000013a80
func1: 27 with 100 rc: 0000000000000064
func1: 28 with 100 rc: 0000000000000000
func1: 23 with 100 rc: 000000000000ee00
func1: 24 with 100 rc: 1111000000000000
func1: 21 with 80512 rc: 0000000000000065
func1: 22 with 101 rc: 0000000000023a80
func1: 27 with 101 rc: 0000000000000064
func1: 28 with 101 rc: 0000000000000000
func1: 23 with 101 rc: 000000000000ff00
func1: 24 with 101 rc: 2222000000000000
func1: 21 with 146048 rc: 0000000000000066
func1: 22 with 102 rc: 0000000000093a81
func: 32 rc: 00000000000003be
payout 955 to account: 2459528346497712128
func1: 33 with 2459528346497712128 rc: 0000000000000000
(stopped - zero balance)
Test 3 (Check that extra payment refunds difference)
----------------------------------------------------
Sample Function Data (Test 3):
------------------------------
balance 1000
function 020 0x0000000000000000 true
function +021 0x0000000000000064,0x0000000000000065,0x0000000000000066,0x0000000000000067,0x0000000000000000 false
function 022 0x0000000000013a80,0x0000000000023a80,0x0000000000093a80,0x0000000000093a81,0x0000000000000000 false
function 023 0x000000000000ff00,0x000000000000ee00,0x000000000000fff0,0x000000000000fff0,0x0000000000000000 false
function 024 0x1111000000000000,0x2222000000000000,0x3333000000000000,0x3344000000000000,0x0000000000000000 false
function 027 0x0000000000000128,0x0000000000000064,0x000000000000064,0x000000000000064,0x0000000000000064 false
function 028 0x0000000000000000 true
Sample Run Output (Test 3):
---------------------------
func: 20 rc: 0000000000000000
func1: 21 with 0 rc: 0000000000000064
func1: 22 with 100 rc: 0000000000013a80
func1: 27 with 100 rc: 0000000000000128
func1: 24 with 100 rc: 1111000000000000
payout 196 to account: 1111000000000000
func1: 28 with 100 rc: 0000000000000000
func1: 23 with 100 rc: 000000000000ff00
func1: 24 with 100 rc: 1111000000000000
func1: 21 with 80512 rc: 0000000000000065
func1: 22 with 101 rc: 0000000000023a80
func1: 27 with 101 rc: 0000000000000064
func1: 28 with 101 rc: 0000000000000000
func1: 23 with 101 rc: 000000000000ee00
func1: 21 with 146048 rc: 0000000000000066
func1: 22 with 102 rc: 0000000000093a80
func1: 27 with 102 rc: 0000000000000064
func1: 28 with 102 rc: 0000000000000000
func1: 23 with 102 rc: 000000000000fff0
func1: 24 with 102 rc: 3333000000000000
func1: 21 with 604800 rc: 0000000000000067
func1: 22 with 103 rc: 0000000000093a81
func: 32 rc: 00000000000002e6
payout 739 to account: 3689292519746568192
func1: 33 with 3689292519746568192 rc: 0000000000000000
(stopped - zero balance)
Test 4 (Check all send less amount):
-------------------------------------
Sample Function Data (Test 4):
------------------------------
balance 1000
function 020 0x0000000000000000 true
function +021 0x0000000000000064,0x0000000000000065,0x0000000000000066,0x0000000000000000 false
function 022 0x0000000000013a80,0x0000000000023a80,0x0000000000093a81,0x0000000000000000 false
function 023 0x000000000000ff00,0x000000000000ee00,0x000000000000fff0,0x0000000000000000 false
function 024 0x1111000000000000,0x2222000000000000,0x3333000000000000,0x0000000000000000 false
function 027 0x000000000000062,0x0000000000000062,0x000000000000062,0x0000000000000064 false
function 028 0x0000000000000000 true
Sample Run Output (Test 4):
---------------------------
func: 20 rc: 0000000000000000
func1: 21 with 0 rc: 0000000000000064
func1: 22 with 100 rc: 0000000000013a80
func1: 27 with 100 rc: 0000000000000062
func1: 24 with 100 rc: 1111000000000000
payout 98 to account: 1111000000000000
func1: 21 with 80512 rc: 0000000000000065
func1: 22 with 101 rc: 0000000000023a80
func1: 27 with 101 rc: 0000000000000062
func1: 24 with 101 rc: 2222000000000000
payout 98 to account: 2222000000000000
func1: 21 with 146048 rc: 0000000000000066
func1: 22 with 102 rc: 0000000000093a81
func: 32 rc: 0000000000000300
func1: 21 with 604801 rc: 0000000000000000
(finished)
</pre>
</div>
</div>
<div style="visibility: visible;" id="footer">
<p>
<div class="footer-icon"><a target="_blank" href="//ciyam.org/"><img src="logo-gryscl-128.png" /></a></div>
&copy; 2012-2015 CIYAM Developers
</p>
</div>
</body>
</html>

119
docs/at_meta.html

@ -0,0 +1,119 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>CIYAM AT - AT Metadata for UI</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="copyright" content="Copyright 2015 CIYAM Developers"/>
<link rel="stylesheet" href="document.css" type="text/css"/>
</head>
<div id="content">
<div id="header">
<div id="appname"><a href="//ciyam.org/at">AT</a></div>
<h3 class="right-top">AT Metadata for UI</h3>
</div>
<div id="main">
<div id="text">
<pre>
AT Metadata for UI
------------------
The following are suggestions for how metadata could be added to an AT in order to provide a flexible UI that
allows for both lists and views (the latter also being able to function as a form). For enums icons which are
named in the form &lt;label&gt;.png would be optionally able to be displayed. The file format used here is known as
"structured I/O" and comes from the CIYAM project (https://github.com/ciyam/ciyam/blob/master/src/sio.cpp).
&lt;enums/&gt;
&lt;enum/&gt;
&lt;name&gt;playing_card
&lt;options&gt;use_icons
&lt;items/&gt;
&lt;item/&gt;
&lt;value&gt;1
&lt;label&gt;clubs_ace
&lt;/item&gt;
&lt;item/&gt;
&lt;value&gt;2
&lt;label&gt;clubs_two
&lt;/item&gt;
...
&lt;item/&gt;
&lt;value&gt;17
&lt;label&gt;diamonds_ace
&lt;/item&gt;
&lt;item/&gt;
&lt;value&gt;18
&lt;label&gt;diamonds_two
&lt;/item&gt;
...
&lt;/items&gt;
&lt;/enum&gt;
&lt;/enums&gt;
&lt;views/&gt;
&lt;view/&gt;
&lt;name&gt;card
&lt;style&gt;normal
&lt;actions&gt;
&lt;options&gt;runtime,no_edit
&lt;view_fields/&gt;
&lt;view_field/&gt;
&lt;label&gt;card
&lt;value&gt;0000007f
&lt;options&gt;enum=playing_card
&lt;variety&gt;byte
&lt;/view_field&gt;
&lt;view_field/&gt;
&lt;label&gt;selected
&lt;value&gt;00000080
&lt;options&gt;
&lt;variety&gt;bool
&lt;/view_field&gt;
&lt;/view_fields&gt;
&lt;/view&gt;
&lt;/views&gt;
&lt;lists/&gt;
&lt;list/&gt;
&lt;view&gt;card
&lt;style&gt;normal
&lt;actions&gt;shuffle=message:1,select=message:2
&lt;options&gt;runtime
&lt;list_fields/&gt;
&lt;list_field/&gt;
&lt;label&gt;card_1
&lt;extra&gt;selected=00000080
&lt;address&gt;00000000:0000007f
&lt;options&gt;enum=playing_card
&lt;variety&gt;byte
&lt;/list_field&gt;
&lt;list_field/&gt;
&lt;label&gt;card_2
&lt;extra&gt;selected=00008000
&lt;address&gt;00000000:00007f00
&lt;options&gt;enum=playing_card
&lt;variety&gt;byte
&lt;/list_field&gt;
...
&lt;/list_fields&gt;
&lt;/list&gt;
&lt;/lists&gt;
</pre>
</div>
</div>
<div style="visibility: visible;" id="footer">
<p>
<div class="footer-icon"><a target="_blank" href="//ciyam.org/"><img src="logo-gryscl-128.png" /></a></div>
&copy; 2012-2015 CIYAM Developers
</p>
</div>
</body>
</html>

148
docs/at_script.html

@ -0,0 +1,148 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>CIYAM AT - Integrating AT with Script</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="copyright" content="Copyright 2015 CIYAM Developers"/>
<link rel="stylesheet" href="document.css" type="text/css"/>
</head>
<div id="content">
<div id="header">
<div id="appname"><a href="//ciyam.org/at">AT</a></div>
<h3 class="right-top">Integrating AT with Script</h3>
</div>
<div id="main">
<div id="text">
<pre>
Integrating AT with Script
--------------------------
It is not expected that any crypto-currency using Bitcoin's "script" is going to try and extend it so that it
could execute Turing complete scripts. This document therefore suggests a "minimal" approach that would allow
AT to operate externally by adding a single op code (OP_CHECKSTATE).
AT Address Format
-----------------
An AT cannot have a "normal" address as it does not have a private key. It is suggested that a custom address
format would be "reserved" for AT's (so every peer can recognise when funds are being to be sent to an AT and
so that end users can "easily recognise" such addresses and not confuse them with standard addresses).
The following is a suggestion as to how this might be done:
1xxATxx&lt;MD5 of AT&gt;[checksum]
So an AT address might look like the following:
1xxATxxYptzC5a7p9obc2SLMPS148G2Qxg
and consists of 3 parts:
1xxATxx (prefix) YptzC5a7p9obc2SLMPS148G (MD5 in base58) 2Qxg (normal address checksum)
Thus if a user goes to send funds to 1xxATxxYptzC5a7p9obc2SLMPS148G2Qxg then the client would see the special
"1xxATxx" prefix and could "warn" the user that they are possibly sending funds to an AT (assuming that it is
not the AT creation transaction).
Creating an AT
--------------
So assuming the creator has a UTXO that has 600 satoshis and that the "AT creation fee" is 500 satoshis, with
the creator wanting to give the AT an initial balance of 100 satoshis, the AT creation transaction would look
very similar to this (assuming an "implicit" tx fee of 1 satoshi):
INPUT:
OP_DUP OP_HASH160 &lt;creator's address hash160&gt; OP_EQUALVERIFY OP_CHECKSIG amount: 600
OUTPUT:
script: hash160(1xxATxxYptzC5a7p9obc2SLMPS148G2Qxg) OP_CHECKSTATE amount: 599
script: OP_RETURN &lt;meta, state, code and initial data&gt;
Mining a new AT
---------------
Upon receiving an AT creation tx the miner would check that the fee is sufficient then it would determine the
initial "state" of the AT by determining a hash of the entire AT image (which could be saved as a binary file
or stored in DB). This "state" hash would then be prefixed to the OP_CHECKSTATE script. The "initial balance"
for the AT would appear as an output that is identical to the original UXTO script.
INPUT:
&lt;state&gt; hash160(1xxATxxYptzC5a7p9obc2SLMPS148G2Qxg) OP_CHECKSTATE amount: 599
OUTPUT:
script: hash160(1xxATxxYptzC5a7p9obc2SLMPS148G2Qxg) OP_CHECKSTATE amount: 100
...
script: OP_DUP OP_HASH160 &lt;miner's address hash160&gt; OP_EQUALVERIFY OP_CHECKSIG amount: 499 (i.e. rest of fee)
Note that every peer would also need to run AT in order to be able to verify that the AT state is correct. So
it is important that there are "maximum limits" (such as how many AT steps can be executed per AT and perhaps
how many ATs can be included per block so there is no way to "kill a node" with an AT).
Sending Funds to an AT
----------------------
Assuming we had a "lottery" AT and we have three entrants each sending 100 satoshis then the transactions the
peers send would look much like the following:
(sender1)
INPUT:
OP_DUP OP_HASH160 &lt;sender1 address hash160&gt; OP_EQUALVERIFY OP_CHECKSIG amount: 101
OUTPUT:
script: hash160(1xxATxxYptzC5a7p9obc2SLMPS148G2Qxg) OP_CHECKSTATE amount: 100
(sender2)
INPUT:
OP_DUP OP_HASH160 &lt;sender2 address hash160&gt; OP_EQUALVERIFY OP_CHECKSIG amount: 101
OUTPUT:
script: hash160(1xxATxxYptzC5a7p9obc2SLMPS148G2Qxg) OP_CHECKSTATE amount: 100
(sender3)
INPUT:
OP_DUP OP_HASH160 &lt;sender3 address hash160&gt; OP_EQUALVERIFY OP_CHECKSIG amount: 101
OUTPUT:
script: hash160(1xxATxxYptzC5a7p9obc2SLMPS148G2Qxg) OP_CHECKSTATE amount: 100
The output scripts use OP_CHECKSTATE (rather than OP_CHECKSIG like regular transactions) hence why the custom
address format is suggested (otherwise the end-user would have to "instruct the software to do an AT send").
Processing an AT
----------------
INPUT:
&lt;state&gt; hash160(1xxATxxYptzC5a7p9obc2SLMPS148G2Qxg) OP_CHECKSTATE (original 100)
&lt;state&gt; hash160(1xxATxxYptzC5a7p9obc2SLMPS148G2Qxg) OP_CHECKSTATE (sender1's 100)
&lt;state&gt; hash160(1xxATxxYptzC5a7p9obc2SLMPS148G2Qxg) OP_CHECKSTATE (sender2's 100)
&lt;state&gt; hash160(1xxATxxYptzC5a7p9obc2SLMPS148G2Qxg) OP_CHECKSTATE (sender3's 100)
OUTPUT:
script: OP_DUP OP_HASH160 &lt;sender2 address hash160&gt; OP_EQUALVERIFY OP_CHECKSIG amount: 300
script: OP_DUP OP_HASH160 &lt;miner's address hash160&gt; OP_EQUALVERIFY OP_CHECKSIG amount: 50
script: hash160(1xxATxxYptzC5a7p9obc2SLMPS148G2Qxg) OP_CHECKSTATE amount: 50
So in much the same way that the AT create was handled we see that AT's "state" hash is prefixed to the UTXOs
that here include the original 100 and the three lots of 100 sent by the "lottery" participants.
Assuming that the lottery decides that "sender2" is the winner and that the fee for mining this AT is 50 then
we see 300 being output to "sender2" (assuming that was the amount determined to be paid out) as well as then
50 being "returned to the AT".
</pre>
</div>
</div>
<div style="visibility: visible;" id="footer">
<p>
<div class="footer-icon"><a target="_blank" href="//ciyam.org/"><img src="logo-gryscl-128.png" /></a></div>
&copy; 2012-2015 CIYAM Developers
</p>
</div>
</body>
</html>

475
docs/at_test_add_dat.html

@ -0,0 +1,475 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>CIYAM AT - Test for AT instruction code 0x06 (ADD_DAT)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="copyright" content="Copyright 2015 CIYAM Developers"/>
<link rel="stylesheet" href="document.css" type="text/css"/>
</head>
<div id="content">
<div id="header">
<div id="appname"><a href="//ciyam.org/at">AT</a></div>
<h3 class="right-top">Test for AT instruction code 0x06 (ADD_DAT)</h3>
</div>
<div id="main">
<div id="text">
<pre>
Test for AT instruction code 0x06 (ADD_DAT)
-------------------------------------------
For each test the assembly and machine code are listed as is the data dump or expected error if test case has
been created specifically to fail (with a data dump if any data was expected to have changed before the error
occurred).
A summary of the tests follows:
Test 1 - Check some basic usage.
Test 2 - Check highest value works.
Test 3 - Check full address range.
Test 4 - Check overwriting works.
Test 5 - Check address range edge fail.
Test 6 - Check negative adddress fails.
Assembly Code (Test 1):
-----------------------
00000000* SET @00000000 #0000000000000000
0000000d SET @00000001 #0000000000000001
0000001a SET @00000002 #0000000000000002
00000027 SET @00000003 #0000000000000003
00000034 SET @00000004 #0000000000000004
00000041 SET @00000005 #0000000000000005
0000004e SET @00000006 #0000000000000006
0000005b SET @00000007 #0000000000000007
00000068 SET @00000008 #0000000000000008
00000075 SET @00000009 #0000000000000009
00000082 SET @0000000a #000000000000000a
0000008f SET @0000000b #000000000000000b
0000009c SET @0000000c #000000000000000c
000000a9 SET @0000000d #000000000000000d
000000b6 SET @0000000e #000000000000000e
000000c3 SET @0000000f #000000000000000f
000000d0 ADD @00000000 $00000001
000000d9 ADD @00000001 $00000002
000000e2 ADD @00000002 $00000003
000000eb ADD @00000003 $00000004
000000f4 ADD @00000004 $00000005
000000fd ADD @00000005 $00000006
00000106 ADD @00000006 $00000007
0000010f ADD @00000007 $00000008
00000118 ADD @00000008 $00000009
00000121 ADD @00000009 $0000000a
0000012a ADD @0000000a $0000000b
00000133 ADD @0000000b $0000000c
0000013c ADD @0000000c $0000000d
00000145 ADD @0000000d $0000000e
0000014e ADD @0000000e $0000000f
00000157 FIN
Machine Code (Test 1):
----------------------
01000000000000000000000000010100000001000000000000000102000000020000000000000001030000000300000000000000
01040000000400000000000000010500000005000000000000000106000000060000000000000001070000000700000000000000
0108000000080000000000000001090000000900000000000000010a0000000a00000000000000010b0000000b00000000000000
010c0000000c00000000000000010d0000000d00000000000000010e0000000e00000000000000010f0000000f00000000000000
06000000000100000006010000000200000006020000000300000006030000000400000006040000000500000006050000000600
000006060000000700000006070000000800000006080000000900000006090000000a000000060a0000000b000000060b000000
0c000000060c0000000d000000060d0000000e000000060e0000000f00000028
Data Dump (Test 1):
-------------------
00000000 01 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00
00000010 05 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00
00000020 09 00 00 00 00 00 00 00 0b 00 00 00 00 00 00 00
00000030 0d 00 00 00 00 00 00 00 0f 00 00 00 00 00 00 00
00000040 11 00 00 00 00 00 00 00 13 00 00 00 00 00 00 00
00000050 15 00 00 00 00 00 00 00 17 00 00 00 00 00 00 00
00000060 19 00 00 00 00 00 00 00 1b 00 00 00 00 00 00 00
00000070 1d 00 00 00 00 00 00 00 0f 00 00 00 00 00 00 00
00000080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Assembly Code (Test 2):
-----------------------
00000000* SET @00000001 #fffffffffffffff0
0000000d SET @00000004 #000000000000000f
0000001a SET @00000007 #ffffffffffffffff
00000027 SET @0000000a #ffffffffffffffff
00000034 SET @0000000d #fffffffffffffff0
00000041 SET @00000010 #000000000000000f
0000004e SET @00000013 #ffffffffffffffff
0000005b SET @00000016 #ffffffffffffffff
00000068 SET @00000019 #fffffffffffffff0
00000075 SET @0000001c #000000000000000f
00000082 SET @0000001f #ffffffffffffffff
0000008f SET @00000022 #ffffffffffffffff
0000009c SET @00000025 #fffffffffffffff0
000000a9 SET @00000028 #000000000000000f
000000b6 SET @0000002b #ffffffffffffffff
000000c3 SET @0000002e #ffffffffffffffff
000000d0 SET @00000031 #fffffffffffffff0
000000dd SET @00000034 #000000000000000f
000000ea SET @00000037 #ffffffffffffffff
000000f7 SET @0000003a #ffffffffffffffff
00000104 SET @0000003d #000000000000000f
00000111 ADD @00000001 $00000004
0000011a ADD @00000004 $00000007
00000123 ADD @00000007 $0000000a
0000012c ADD @0000000a $0000000d
00000135 ADD @0000000d $00000010
0000013e ADD @00000010 $00000013
00000147 ADD @00000013 $00000016
00000150 ADD @00000016 $00000019
00000159 ADD @00000019 $0000001c
00000162 ADD @0000001c $0000001f
0000016b ADD @0000001f $00000022
00000174 ADD @00000022 $00000025
0000017d ADD @00000025 $00000028
00000186 ADD @00000028 $0000002b
0000018f ADD @0000002b $0000002e
00000198 ADD @0000002e $00000031
000001a1 ADD @00000031 $00000034
000001aa ADD @00000034 $00000037
000001b3 ADD @00000037 $0000003a
000001bc ADD @0000003a $0000003d
000001c5 FIN
Machine Code (Test 2):
----------------------
0101000000f0ffffffffffffff01040000000f000000000000000107000000ffffffffffffffff010a000000ffffffffffffffff
010d000000f0ffffffffffffff01100000000f000000000000000113000000ffffffffffffffff0116000000ffffffffffffffff
0119000000f0ffffffffffffff011c0000000f00000000000000011f000000ffffffffffffffff0122000000ffffffffffffffff
0125000000f0ffffffffffffff01280000000f00000000000000012b000000ffffffffffffffff012e000000ffffffffffffffff
0131000000f0ffffffffffffff01340000000f000000000000000137000000ffffffffffffffff013a000000ffffffffffffffff
013d0000000f0000000000000006010000000400000006040000000700000006070000000a000000060a0000000d000000060d00
00001000000006100000001300000006130000001600000006160000001900000006190000001c000000061c0000001f00000006
1f0000002200000006220000002500000006250000002800000006280000002b000000062b0000002e000000062e000000310000
0006310000003400000006340000003700000006370000003a000000063a0000003d00000028
Data Dump (Test 2):
-------------------
00000000 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff
00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000020 0e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000030 00 00 00 00 00 00 00 00 fe ff ff ff ff ff ff ff
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000050 ef ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
00000060 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 0e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000090 00 00 00 00 00 00 00 00 fe ff ff ff ff ff ff ff
000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000b0 ef ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
000000c0 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 0e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 fe ff ff ff ff ff ff ff
00000100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000110 ef ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
00000120 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 0e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 fe ff ff ff ff ff ff ff
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 ef ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
00000180 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff
00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001a0 0e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 fe ff ff ff ff ff ff ff
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 0e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 0f 00 00 00 00 00 00 00
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Assembly Code (Test 3):
-----------------------
00000000* SET @00000001 #0f0d0b0907050301
0000000d SET @00000004 #e0c0a08060402000
0000001a SET @00000007 #0f0d0b0907050301
00000027 SET @0000000a #e0c0a08060402000
00000034 SET @0000000d #0f0d0b0907050301
00000041 SET @00000010 #e0c0a08060402000
0000004e SET @00000013 #0f0d0b0907050301
0000005b SET @00000016 #e0c0a08060402000
00000068 SET @00000019 #0f0d0b0907050301
00000075 SET @0000001c #e0c0a08060402000
00000082 SET @0000001f #0f0d0b0907050301
0000008f SET @00000022 #e0c0a08060402000
0000009c SET @00000025 #0f0d0b0907050301
000000a9 SET @00000028 #e0c0a08060402000
000000b6 SET @0000002b #0f0d0b0907050301
000000c3 SET @0000002e #e0c0a08060402000
000000d0 SET @00000031 #0f0d0b0907050301
000000dd SET @00000034 #e0c0a08060402000
000000ea SET @00000037 #0f0d0b0907050301
000000f7 SET @0000003a #e0c0a08060402000
00000104 SET @0000003d #0f0d0b0907050301
00000111 ADD @00000001 $00000004
0000011a ADD @00000004 $00000007
00000123 ADD @00000007 $0000000a
0000012c ADD @0000000a $0000000d
00000135 ADD @0000000d $00000010
0000013e ADD @00000010 $00000013
00000147 ADD @00000013 $00000016
00000150 ADD @00000016 $00000019
00000159 ADD @00000019 $0000001c
00000162 ADD @0000001c $0000001f
0000016b ADD @0000001f $00000022
00000174 ADD @00000022 $00000025
0000017d ADD @00000025 $00000028
00000186 ADD @00000028 $0000002b
0000018f ADD @0000002b $0000002e
00000198 ADD @0000002e $00000031
000001a1 ADD @00000031 $00000034
000001aa ADD @00000034 $00000037
000001b3 ADD @00000037 $0000003a
000001bc ADD @0000003a $0000003d
000001c5 FIN
Machine Code (Test 3):
----------------------
010100000001030507090b0d0f01040000000020406080a0c0e0010700000001030507090b0d0f010a0000000020406080a0c0e0
010d00000001030507090b0d0f01100000000020406080a0c0e0011300000001030507090b0d0f01160000000020406080a0c0e0
011900000001030507090b0d0f011c0000000020406080a0c0e0011f00000001030507090b0d0f01220000000020406080a0c0e0
012500000001030507090b0d0f01280000000020406080a0c0e0012b00000001030507090b0d0f012e0000000020406080a0c0e0
013100000001030507090b0d0f01340000000020406080a0c0e0013700000001030507090b0d0f013a0000000020406080a0c0e0
013d00000001030507090b0d0f06010000000400000006040000000700000006070000000a000000060a0000000d000000060d00
00001000000006100000001300000006130000001600000006160000001900000006190000001c000000061c0000001f00000006
1f0000002200000006220000002500000006250000002800000006280000002b000000062b0000002e000000062e000000310000
0006310000003400000006340000003700000006370000003a000000063a0000003d00000028
Data Dump (Test 3):
-------------------
00000000 00 00 00 00 00 00 00 00 01 23 45 67 89 ab cd ef
00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000020 01 23 45 67 89 ab cd ef 00 00 00 00 00 00 00 00
00000030 00 00 00 00 00 00 00 00 01 23 45 67 89 ab cd ef
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000050 01 23 45 67 89 ab cd ef 00 00 00 00 00 00 00 00
00000060 00 00 00 00 00 00 00 00 01 23 45 67 89 ab cd ef
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 01 23 45 67 89 ab cd ef 00 00 00 00 00 00 00 00
00000090 00 00 00 00 00 00 00 00 01 23 45 67 89 ab cd ef
000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000b0 01 23 45 67 89 ab cd ef 00 00 00 00 00 00 00 00
000000c0 00 00 00 00 00 00 00 00 01 23 45 67 89 ab cd ef
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 01 23 45 67 89 ab cd ef 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 01 23 45 67 89 ab cd ef
00000100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000110 01 23 45 67 89 ab cd ef 00 00 00 00 00 00 00 00
00000120 00 00 00 00 00 00 00 00 01 23 45 67 89 ab cd ef
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 01 23 45 67 89 ab cd ef 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 01 23 45 67 89 ab cd ef
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 01 23 45 67 89 ab cd ef 00 00 00 00 00 00 00 00
00000180 00 00 00 00 00 00 00 00 01 23 45 67 89 ab cd ef
00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001a0 01 23 45 67 89 ab cd ef 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 01 23 45 67 89 ab cd ef
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 01 23 45 67 89 ab cd ef 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 01 03 05 07 09 0b 0d 0f
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Assembly Code (Test 4):
-----------------------
00000000* SET @00000000 #5555555555555555
0000000d SET @00000001 #2222222222222222
0000001a SET @00000002 #9999999999999999
00000027 SET @00000010 #6666666666666666
00000034 SET @00000011 #1111111111111111
00000041 SET @00000012 #9999999999999999
0000004e SET @00000020 #1111111111111111
0000005b SET @00000021 #2222222222222222
00000068 SET @00000022 #9999999999999999
00000075 SET @00000030 #4444444444444444
00000082 SET @00000031 #1111111111111111
0000008f SET @00000032 #9999999999999999
0000009c ADD @00000000 $00000001
000000a5 ADD @00000000 $00000001
000000ae ADD @00000010 $00000011
000000b7 ADD @00000010 $00000011
000000c0 ADD @00000010 $00000011
000000c9 ADD @00000020 $00000021
000000d2 ADD @00000020 $00000021
000000db ADD @00000020 $00000021
000000e4 ADD @00000020 $00000021
000000ed ADD @00000030 $00000031
000000f6 ADD @00000030 $00000031
000000ff ADD @00000030 $00000031
00000108 ADD @00000030 $00000031
00000111 ADD @00000030 $00000031
0000011a FIN
Machine Code (Test 4):
----------------------
01000000005555555555555555010100000022222222222222220102000000999999999999999901100000006666666666666666
01110000001111111111111111011200000099999999999999990120000000111111111111111101210000002222222222222222
01220000009999999999999999013000000044444444444444440131000000111111111111111101320000009999999999999999
06000000000100000006000000000100000006100000001100000006100000001100000006100000001100000006200000002100
00000620000000210000000620000000210000000620000000210000000630000000310000000630000000310000000630000000
3100000006300000003100000006300000003100000028
Data Dump (Test 4):
-------------------
00000000 99 99 99 99 99 99 99 99 22 22 22 22 22 22 22 22
00000010 99 99 99 99 99 99 99 99 00 00 00 00 00 00 00 00
00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 99 99 99 99 99 99 99 99 11 11 11 11 11 11 11 11
00000090 99 99 99 99 99 99 99 99 00 00 00 00 00 00 00 00
000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000100 99 99 99 99 99 99 99 99 22 22 22 22 22 22 22 22
00000110 99 99 99 99 99 99 99 99 00 00 00 00 00 00 00 00
00000120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000180 99 99 99 99 99 99 99 99 11 11 11 11 11 11 11 11
00000190 99 99 99 99 99 99 99 99 00 00 00 00 00 00 00 00
000001a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Assembly Code (Test 5):
-----------------------
00000000* SET @0000003e #ffffffffffffffff
0000000d SET @0000003f #ffffffffffffffff
0000001a ADD @0000003e $0000003f
00000023 ADD @0000003f $00000040
0000002c FIN
Machine Code (Test 5):
----------------------
013e000000ffffffffffffffff013f000000ffffffffffffffff063e0000003f000000063f0000004000000028
Runtime Error (Test 5):
-----------------------
error: overflow
Data Dump (Test 5):
-------------------
00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001f0 fe ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
Assembly Code (Test 6):
-----------------------
00000000* ADD @ffffffff $ffffffff
00000009 FIN
Machine Code (Test 6):
----------------------
06ffffffffffffffff28
Runtime Error (Test 6):
-----------------------
error: overflow
</pre>
</div>
</div>
<div style="visibility: visible;" id="footer">
<p>
<div class="footer-icon"><a target="_blank" href="//ciyam.org/"><img src="logo-gryscl-128.png" /></a></div>
&copy; 2012-2015 CIYAM Developers
</p>
</div>
</body>
</html>

472
docs/at_test_and_dat.html

@ -0,0 +1,472 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>CIYAM AT - Test for AT instruction code 0x0b (AND_DAT)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="copyright" content="Copyright 2015 CIYAM Developers"/>
<link rel="stylesheet" href="document.css" type="text/css"/>
</head>
<div id="content">
<div id="header">
<div id="appname"><a href="//ciyam.org/at">AT</a></div>
<h3 class="right-top">Test for AT instruction code 0x0b (AND_DAT)</h3>
</div>
<div id="main">
<div id="text">
<pre>
Test for AT instruction code 0x0b (AND_DAT)
-------------------------------------------
For each test the assembly and machine code are listed as is the data dump or expected error if test case has
been created specifically to fail (with a data dump if any data was expected to have changed before the error
occurred).
A summary of the tests follows:
Test 1 - Check some basic usage.
Test 2 - Check highest value works.
Test 3 - Check full address range.
Test 4 - Check overwriting works.
Test 5 - Check address range edge fail.
Test 6 - Check negative adddress fails.
Assembly Code (Test 1):
-----------------------
00000000* SET @00000000 #000000000000000f
0000000d SET @00000001 #000000000000000e
0000001a SET @00000002 #000000000000000d
00000027 SET @00000003 #000000000000000c
00000034 SET @00000004 #000000000000000b
00000041 SET @00000005 #000000000000000a
0000004e SET @00000006 #0000000000000009
0000005b SET @00000007 #0000000000000008
00000068 SET @00000008 #0000000000000007
00000075 SET @00000009 #0000000000000006
00000082 SET @0000000a #0000000000000005
0000008f SET @0000000b #0000000000000004
0000009c SET @0000000c #0000000000000003
000000a9 SET @0000000d #0000000000000002
000000b6 SET @0000000e #0000000000000001
000000c3 AND @00000000 $00000001
000000cc AND @00000001 $00000002
000000d5 AND @00000002 $00000003
000000de AND @00000003 $00000004
000000e7 AND @00000004 $00000005
000000f0 AND @00000005 $00000006
000000f9 AND @00000006 $00000007
00000102 AND @00000007 $00000008
0000010b AND @00000008 $0000000a
00000114 AND @00000009 $0000000a
0000011d AND @0000000a $0000000b
00000126 AND @0000000b $0000000c
0000012f AND @0000000c $0000000d
00000138 AND @0000000d $0000000e
00000141 FIN
Machine Code (Test 1):
----------------------
01000000000f0000000000000001010000000e0000000000000001020000000d0000000000000001030000000c00000000000000
01040000000b0000000000000001050000000a000000000000000106000000090000000000000001070000000800000000000000
0108000000070000000000000001090000000600000000000000010a0000000500000000000000010b0000000400000000000000
010c0000000300000000000000010d0000000200000000000000010e00000001000000000000000b00000000010000000b010000
00020000000b02000000030000000b03000000040000000b04000000050000000b05000000060000000b06000000070000000b07
000000080000000b080000000a0000000b090000000a0000000b0a0000000b0000000b0b0000000c0000000b0c0000000d000000
0b0d0000000e00000028
Data Dump (Test 1):
-------------------
00000000 0e 00 00 00 00 00 00 00 0c 00 00 00 00 00 00 00
00000010 0c 00 00 00 00 00 00 00 08 00 00 00 00 00 00 00
00000020 0a 00 00 00 00 00 00 00 08 00 00 00 00 00 00 00
00000030 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000040 05 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00
00000050 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000060 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000070 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Assembly Code (Test 2):
-----------------------
00000000* SET @00000001 #ffffffffffffffff
0000000d SET @00000004 #ffffffffffffffff
0000001a SET @00000007 #0000000000000000
00000027 SET @0000000a #ffffffffffffffff
00000034 SET @0000000d #ffffffffffffffff
00000041 SET @00000010 #0000000000000000
0000004e SET @00000013 #ffffffffffffffff
0000005b SET @00000016 #ffffffffffffffff
00000068 SET @00000019 #0000000000000000
00000075 SET @0000001c #ffffffffffffffff
00000082 SET @0000001f #ffffffffffffffff
0000008f SET @00000022 #0000000000000000
0000009c SET @00000025 #ffffffffffffffff
000000a9 SET @00000028 #ffffffffffffffff
000000b6 SET @0000002b #0000000000000000
000000c3 SET @0000002e #ffffffffffffffff
000000d0 SET @00000031 #ffffffffffffffff
000000dd SET @00000034 #0000000000000000
000000ea SET @00000037 #ffffffffffffffff
000000f7 SET @0000003a #ffffffffffffffff
00000104 SET @0000003d #0000000000000000
00000111 AND @00000001 $00000004
0000011a AND @00000004 $00000007
00000123 AND @00000007 $0000000a
0000012c AND @0000000a $0000000d
00000135 AND @0000000d $00000010
0000013e AND @00000010 $00000013
00000147 AND @00000013 $00000016
00000150 AND @00000016 $00000019
00000159 AND @00000019 $0000001c
00000162 AND @0000001c $0000001f
0000016b AND @0000001f $00000022
00000174 AND @00000022 $00000025
0000017d AND @00000025 $00000028
00000186 AND @00000028 $0000002b
0000018f AND @0000002b $0000002e
00000198 AND @0000002e $00000031
000001a1 AND @00000031 $00000034
000001aa AND @00000034 $00000037
000001b3 AND @00000037 $0000003a
000001bc AND @0000003a $0000003d
000001c5 AND @0000003d $0000003d
000001ce FIN
Machine Code (Test 2):
----------------------
0101000000ffffffffffffffff0104000000ffffffffffffffff01070000000000000000000000010a000000ffffffffffffffff
010d000000ffffffffffffffff011000000000000000000000000113000000ffffffffffffffff0116000000ffffffffffffffff
01190000000000000000000000011c000000ffffffffffffffff011f000000ffffffffffffffff01220000000000000000000000
0125000000ffffffffffffffff0128000000ffffffffffffffff012b0000000000000000000000012e000000ffffffffffffffff
0131000000ffffffffffffffff013400000000000000000000000137000000ffffffffffffffff013a000000ffffffffffffffff
013d00000000000000000000000b01000000040000000b04000000070000000b070000000a0000000b0a0000000d0000000b0d00
0000100000000b10000000130000000b13000000160000000b16000000190000000b190000001c0000000b1c0000001f0000000b
1f000000220000000b22000000250000000b25000000280000000b280000002b0000000b2b0000002e0000000b2e000000310000
000b31000000340000000b34000000370000000b370000003a0000000b3a0000003d0000000b3d0000003d00000028
Data Dump (Test 2):
-------------------
00000000 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff
00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000050 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
00000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000090 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff
000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000120 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
00000180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Assembly Code (Test 3):
-----------------------
00000000* SET @00000001 #efcdab8967452301
0000000d SET @00000004 #ffffffffffffffff
0000001a SET @00000007 #efcdab8967452301
00000027 SET @0000000a #00000000ffffffff
00000034 SET @0000000d #efcdab8967452301
00000041 SET @00000010 #0000000000000000
0000004e SET @00000013 #efcdab8967452301
0000005b SET @00000016 #ffffffffffffffff
00000068 SET @00000019 #efcdab8967452301
00000075 SET @0000001c #00000000ffffffff
00000082 SET @0000001f #efcdab8967452301
0000008f SET @00000022 #0000000000000000
0000009c SET @00000025 #efcdab8967452301
000000a9 SET @00000028 #ffffffffffffffff
000000b6 SET @0000002b #efcdab8967452301
000000c3 SET @0000002e #00000000ffffffff
000000d0 SET @00000031 #efcdab8967452301
000000dd SET @00000034 #0000000000000000
000000ea SET @00000037 #efcdab8967452301
000000f7 SET @0000003a #ffffffffffffffff
00000104 SET @0000003d #efcdab8967452301
00000111 AND @00000001 $00000004
0000011a AND @00000004 $00000007
00000123 AND @00000007 $0000000a
0000012c AND @0000000a $0000000d
00000135 AND @0000000d $00000010
0000013e AND @00000010 $00000013
00000147 AND @00000013 $00000016
00000150 AND @00000016 $00000019
00000159 AND @00000019 $0000001c
00000162 AND @0000001c $0000001f
0000016b AND @0000001f $00000022
00000174 AND @00000022 $00000025
0000017d AND @00000025 $00000028
00000186 AND @00000028 $0000002b
0000018f AND @0000002b $0000002e
00000198 AND @0000002e $00000031
000001a1 AND @00000031 $00000034
000001aa AND @00000034 $00000037
000001b3 AND @00000037 $0000003a
000001bc AND @0000003a $0000003d
000001c5 AND @0000003d $0000003d
000001ce FIN
Machine Code (Test 3):
----------------------
01010000000123456789abcdef0104000000ffffffffffffffff01070000000123456789abcdef010a000000ffffffff00000000
010d0000000123456789abcdef0110000000000000000000000001130000000123456789abcdef0116000000ffffffffffffffff
01190000000123456789abcdef011c000000ffffffff00000000011f0000000123456789abcdef01220000000000000000000000
01250000000123456789abcdef0128000000ffffffffffffffff012b0000000123456789abcdef012e000000ffffffff00000000
01310000000123456789abcdef0134000000000000000000000001370000000123456789abcdef013a000000ffffffffffffffff
013d0000000123456789abcdef0b01000000040000000b04000000070000000b070000000a0000000b0a0000000d0000000b0d00
0000100000000b10000000130000000b13000000160000000b16000000190000000b190000001c0000000b1c0000001f0000000b
1f000000220000000b22000000250000000b25000000280000000b280000002b0000000b2b0000002e0000000b2e000000310000
000b31000000340000000b34000000370000000b370000003a0000000b3a0000003d0000000b3d0000003d00000028
Data Dump (Test 3):
-------------------
00000000 00 00 00 00 00 00 00 00 01 23 45 67 89 ab cd ef
00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000020 01 23 45 67 89 ab cd ef 00 00 00 00 00 00 00 00
00000030 00 00 00 00 00 00 00 00 01 23 45 67 00 00 00 00
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000050 01 23 45 67 00 00 00 00 00 00 00 00 00 00 00 00
00000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000090 00 00 00 00 00 00 00 00 01 23 45 67 89 ab cd ef
000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000b0 01 23 45 67 89 ab cd ef 00 00 00 00 00 00 00 00
000000c0 00 00 00 00 00 00 00 00 01 23 45 67 00 00 00 00
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 01 23 45 67 00 00 00 00 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000120 00 00 00 00 00 00 00 00 01 23 45 67 89 ab cd ef
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 01 23 45 67 89 ab cd ef 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 01 23 45 67 00 00 00 00
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 01 23 45 67 00 00 00 00 00 00 00 00 00 00 00 00
00000180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 01 23 45 67 89 ab cd ef
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 01 23 45 67 89 ab cd ef 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 01 23 45 67 89 ab cd ef
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Assembly Code (Test 4):
-----------------------
00000000* SET @00000000 #9999999999999999
0000000d SET @00000001 #8888888888888888
0000001a SET @00000002 #88888888ffffffff
00000027 SET @00000010 #7777777777777777
00000034 SET @00000011 #5555555555555555
00000041 SET @00000012 #55555555ffffffff
0000004e SET @00000020 #6666666666666666
0000005b SET @00000021 #4444444444444444
00000068 SET @00000022 #44444444ffffffff
00000075 SET @00000030 #3333333333333333
00000082 SET @00000031 #1111111111111111
0000008f SET @00000032 #11111111ffffffff
0000009c AND @00000000 $00000001
000000a5 AND @00000000 $00000001
000000ae AND @00000010 $00000011
000000b7 AND @00000010 $00000011
000000c0 AND @00000010 $00000011
000000c9 AND @00000020 $00000021
000000d2 AND @00000020 $00000021
000000db AND @00000020 $00000021
000000e4 AND @00000020 $00000021
000000ed AND @00000030 $00000031
000000f6 AND @00000030 $00000031
000000ff AND @00000030 $00000031
00000108 AND @00000030 $00000031
00000111 AND @00000030 $00000031
0000011a FIN
Machine Code (Test 4):
----------------------
01000000009999999999999999010100000088888888888888880102000000ffffffff8888888801100000007777777777777777
011100000055555555555555550112000000ffffffff555555550120000000666666666666666601210000004444444444444444
0122000000ffffffff4444444401300000003333333333333333013100000011111111111111110132000000ffffffff11111111
0b00000000010000000b00000000010000000b10000000110000000b10000000110000000b10000000110000000b200000002100
00000b20000000210000000b20000000210000000b20000000210000000b30000000310000000b30000000310000000b30000000
310000000b30000000310000000b300000003100000028
Data Dump (Test 4):
-------------------
00000000 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88
00000010 ff ff ff ff 88 88 88 88 00 00 00 00 00 00 00 00
00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55
00000090 ff ff ff ff 55 55 55 55 00 00 00 00 00 00 00 00
000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000100 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
00000110 ff ff ff ff 44 44 44 44 00 00 00 00 00 00 00 00
00000120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000180 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11
00000190 ff ff ff ff 11 11 11 11 00 00 00 00 00 00 00 00
000001a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Assembly Code (Test 5):
-----------------------
00000000* SET @0000003e #00000000ffffffff
0000000d SET @0000003f #ffffffffffffffff
0000001a AND @0000003e $0000003f
00000023 AND @0000003f $00000040
0000002c FIN
Machine Code (Test 5):
----------------------
013e000000ffffffff00000000013f000000ffffffffffffffff0b3e0000003f0000000b3f0000004000000028
Runtime Error (Test 5):
-----------------------
error: overflow
Data Dump (Test 5):
-------------------
00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001f0 ff ff ff ff 00 00 00 00 ff ff ff ff ff ff ff ff
Assembly Code (Test 6):
-----------------------
00000000* AND @ffffffff $ffffffff
00000009 FIN
Machine Code (Test 6):
----------------------
0bffffffffffffffff28
Runtime Error (Test 6):
-----------------------
error: overflow
</pre>
</div>
</div>
<div style="visibility: visible;" id="footer">
<p>
<div class="footer-icon"><a target="_blank" href="//ciyam.org/"><img src="logo-gryscl-128.png" /></a></div>
&copy; 2012-2015 CIYAM Developers
</p>
</div>
</body>
</html>

231
docs/at_test_beq_dat.html

@ -0,0 +1,231 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>CIYAM AT - Test for AT instruction code 0x23 (BEQ_DAT)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="copyright" content="Copyright 2015 CIYAM Developers"/>
<link rel="stylesheet" href="document.css" type="text/css"/>
</head>
<div id="content">
<div id="header">
<div id="appname"><a href="//ciyam.org/at">AT</a></div>
<h3 class="right-top">Test for AT instruction code 0x23 (BEQ_DAT)</h3>
</div>
<div id="main">
<div id="text">
<pre>
Test for AT instruction code 0x23 (BEQ_DAT)
-------------------------------------------
For each test the assembly and machine code are listed as is the data dump or expected error if test case has
been created specifically to fail (with a data dump if any data was expected to have changed before the error
occurred).
A summary of the tests follows:
Test 1 - Check some basic usage.
Test 2 - Branch forwards and backwords.
Test 3 - Branch to an out of range address.
Test 4 - Branch to an invalid address.
Test 5 - Infinite loop.
Assembly Code (Test 1):
-----------------------
00000000* SET @00000000 #0000000000000003
0000000d SET @00000001 #0000000000000003
0000001a BEQ $00000000 $00000001 :00000031
00000024 SET @00000002 #dddddddddddddddd
00000031 DEC @00000000
00000036 BEQ $00000000 $00000001 :0000004d
00000040 SET @00000003 #eeeeeeeeeeeeeeee
0000004d INC @00000000
00000052 INC @00000000
00000057 BEQ $00000000 $00000001 :0000006e
00000061 SET @00000004 #ffffffffffffffff
0000006e FIN
Machine Code (Test 1):
----------------------
0100000000030000000000000001010000000300000000000000230000000001000000170102000000dddddddddddddddd050000
0000230000000001000000170103000000eeeeeeeeeeeeeeee04000000000400000000230000000001000000170104000000ffff
ffffffffffff28
Data Dump (Test 1):
-------------------
00000000 04 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00
00000010 00 00 00 00 00 00 00 00 ee ee ee ee ee ee ee ee
00000020 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Assembly Code (Test 2):
-----------------------
00000000* SET @00000000 #0000000000000003
0000000d SET @00000001 #0000000000000003
0000001a BEQ $00000000 $00000001 :00000032
00000024 SET @00000002 #dddddddddddddddd
00000031 FIN
00000032 DEC @00000000
00000037 DEC @00000001
0000003c BEQ $00000000 $00000001 :00000024
00000046 SET @00000004 #ffffffffffffffff
00000053 FIN
Machine Code (Test 2):
----------------------
0100000000030000000000000001010000000300000000000000230000000001000000180102000000dddddddddddddddd280500
0000000501000000230000000001000000e80104000000ffffffffffffffff28
Data Dump (Test 2):
-------------------
00000000 02 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00
00000010 dd dd dd dd dd dd dd dd 00 00 00 00 00 00 00 00
00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Assembly Code (Test 3):
-----------------------
00000000* SET @00000000 #0000000000000003
0000000d SET @00000001 #0000000000000003
0000001a BEQ $00000000 $00000001 :00000040
00000024 SET @00000002 #eeeeeeeeeeeeeeee
00000031 SET @00000003 #ffffffffffffffff
0000003e FIN
Machine Code (Test 3):
----------------------
0100000000030000000000000001010000000300000000000000230000000001000000260102000000eeeeeeeeeeeeeeee010300
0000ffffffffffffffff28
Runtime Error (Test 3):
-----------------------
error: invalid code
Assembly Code (Test 4):
-----------------------
00000000* SET @00000000 #0000000000000003
0000000d SET @00000001 #0000000000000003
0000001a BEQ $00000000 $00000001 :0000002a
00000024 SET @00000002 #eeeeeeeeeeeeeeee
00000031 SET @00000003 #ffffffffffffffff
0000003e FIN
Machine Code (Test 4):
----------------------
0100000000030000000000000001010000000300000000000000230000000001000000100102000000eeeeeeeeeeeeeeee010300
0000ffffffffffffffff28
Runtime Error (Test 4):
-----------------------
error: invalid code
Assembly Code (Test 5):
-----------------------
00000000* SET @00000000 #0000000000000003
0000000d SET @00000001 #0000000000000003
0000001a BEQ $00000000 $00000001 :00000031
00000024 SET @00000002 #eeeeeeeeeeeeeeee
00000031 INC @00000000
00000036 INC @00000001
0000003b BEQ $00000000 $00000001 :00000024
00000045 SET @00000003 #ffffffffffffffff
00000052 FIN
Machine Code (Test 5):
----------------------
0100000000030000000000000001010000000300000000000000230000000001000000170102000000eeeeeeeeeeeeeeee040000
00000401000000230000000001000000e90103000000ffffffffffffffff28
Runtime Result (Test 5):
-----------------------
stopped - zero balance
</pre>
</div>
</div>
<div style="visibility: visible;" id="footer">
<p>
<div class="footer-icon"><a target="_blank" href="//ciyam.org/"><img src="logo-gryscl-128.png" /></a></div>
&copy; 2012-2015 CIYAM Developers
</p>
</div>
</body>
</html>

228
docs/at_test_bge_dat.html

@ -0,0 +1,228 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>CIYAM AT - Test for AT instruction code 0x21 (BGE_DAT)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="copyright" content="Copyright 2015 CIYAM Developers"/>
<link rel="stylesheet" href="document.css" type="text/css"/>
</head>
<div id="content">
<div id="header">
<div id="appname"><a href="//ciyam.org/at">AT</a></div>
<h3 class="right-top">Test for AT instruction code 0x21 (BGE_DAT)</h3>
</div>
<div id="main">
<div id="text">
<pre>
Test for AT instruction code 0x21 (BGE_DAT)
-------------------------------------------
For each test the assembly and machine code are listed as is the data dump or expected error if test case has
been created specifically to fail (with a data dump if any data was expected to have changed before the error
occurred).
A summary of the tests follows:
Test 1 - Check some basic usage.
Test 2 - Jump forwards and backwords.
Test 3 - Jump to an out of range address.
Test 4 - Jump to an invalid address.
Test 5 - Infinite loop.
Assembly Code (Test 1):
-----------------------
00000000* SET @00000000 #0000000000000004
0000000d SET @00000001 #0000000000000003
0000001a BGE $00000000 $00000001 :00000031
00000024 SET @00000002 #dddddddddddddddd
00000031 DEC @00000000
00000036 BGE $00000000 $00000001 :0000004d
00000040 SET @00000003 #eeeeeeeeeeeeeeee
0000004d DEC @00000000
00000052 BGE $00000000 $00000001 :00000069
0000005c SET @00000004 #ffffffffffffffff
00000069 FINN
Machine Code (Test 1):
----------------------
0100000000040000000000000001010000000300000000000000210000000001000000170102000000dddddddddddddddd050000
0000210000000001000000170103000000eeeeeeeeeeeeeeee0500000000210000000001000000170104000000ffffffffffffff
ff28
Data Dump (Test 1):
-------------------
00000000 02 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00
00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000020 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Assembly Code (Test 2):
-----------------------
00000000* SET @00000000 #0000000000000004
0000000d SET @00000001 #0000000000000003
0000001a BGE $00000000 $00000001 :00000032
00000024 SET @00000002 #dddddddddddddddd
00000031 FIN
00000032 DEC @00000000
00000037 BGE $00000000 $00000001 :00000024
00000041 SET @00000004 #ffffffffffffffff
0000004e FIN
Machine Code (Test 2):
----------------------
0100000000040000000000000001010000000300000000000000210000000001000000180102000000dddddddddddddddd280500
000000210000000001000000ed0104000000ffffffffffffffff28
Data Dump (Test 2):
-------------------
00000000 03 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00
00000010 dd dd dd dd dd dd dd dd 00 00 00 00 00 00 00 00
00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Assembly Code (Test 3):
-----------------------
00000000* SET @00000000 #0000000000000003
0000000d SET @00000001 #0000000000000003
0000001a BGE $00000000 $00000001 :00000040
00000024 SET @00000002 #eeeeeeeeeeeeeeee
00000031 SET @00000003 #ffffffffffffffff
0000003e FIN
Machine Code (Test 3):
----------------------
0100000000030000000000000001010000000300000000000000210000000001000000260102000000eeeeeeeeeeeeeeee010300
0000ffffffffffffffff28
Runtime Error (Test 3):
-----------------------
error: invalid code
Assembly Code (Test 4):
-----------------------
00000000* SET @00000000 #0000000000000002
0000000d SET @00000001 #0000000000000001
0000001a BGE $00000000 $00000001 :0000002a
00000024 SET @00000002 #eeeeeeeeeeeeeeee
00000031 SET @00000003 #ffffffffffffffff
0000003e FIN
Machine Code (Test 4):
----------------------
0100000000020000000000000001010000000100000000000000210000000001000000100102000000eeeeeeeeeeeeeeee010300
0000ffffffffffffffff28
Runtime Error (Test 4):
-----------------------
error: invalid code
Assembly Code (Test 5):
-----------------------
00000000* SET @00000000 #0000000000000003
0000000d SET @00000001 #0000000000000003
0000001a BGE $00000000 $00000001 :00000031
00000024 SET @00000002 #eeeeeeeeeeeeeeee
00000031 INC @00000000
00000036 BGE $00000000 $00000001 :00000024
00000040 SET @00000003 #ffffffffffffffff
0000004d FIN
Machine Code (Test 5):
----------------------
0100000000030000000000000001010000000300000000000000210000000001000000170102000000eeeeeeeeeeeeeeee040000
0000210000000001000000ee0103000000ffffffffffffffff28
Runtime Result (Test 5):
-----------------------
stopped - zero balance
</pre>
</div>
</div>
<div style="visibility: visible;" id="footer">
<p>
<div class="footer-icon"><a target="_blank" href="//ciyam.org/"><img src="logo-gryscl-128.png" /></a></div>
&copy; 2012-2015 CIYAM Developers
</p>
</div>
</body>
</html>

227
docs/at_test_bgt_dat.html

@ -0,0 +1,227 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>CIYAM AT - Test for AT instruction code 0x1f (BGT_DAT)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="copyright" content="Copyright 2015 CIYAM Developers"/>
<link rel="stylesheet" href="document.css" type="text/css"/>
</head>
<div id="content">
<div id="header">
<div id="appname"><a href="//ciyam.org/at">AT</a></div>
<h3 class="right-top">Test for AT instruction code 0x1f (BGT_DAT)</h3>
</div>
<div id="main">
<div id="text">
<pre>
Test for AT instruction code 0x1f (BGT_DAT)
-------------------------------------------
For each test the assembly and machine code are listed as is the data dump or expected error if test case has
been created specifically to fail (with a data dump if any data was expected to have changed before the error
occurred).
A summary of the tests follows:
Test 1 - Check some basic usage.
Test 2 - Jump forwards and backwords.
Test 3 - Jump to out range address.
Test 4 - Jump to not valid address point.
Test 5 - Infinite loop.
Assembly Code (Test 1):
-----------------------
00000000* SET @00000000 #0000000000000002
0000000d SET @00000001 #0000000000000001
0000001a BGT $00000000 $00000001 :00000031
00000024 SET @00000002 #eeeeeeeeeeeeeeee
00000031 DEC @00000000
00000036 DEC @00000000
0000003b BGT $00000000 $00000001 :00000052
00000045 SET @00000003 #ffffffffffffffff
00000052 FIN
Machine Code (Test 1):
----------------------
01000000000200000000000000010100000001000000000000001f0000000001000000170102000000eeeeeeeeeeeeeeee050000
000005000000001f0000000001000000170103000000ffffffffffffffff28
Data Dump (Test 1):
-------------------
00000000 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00
00000010 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff
00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Assembly Code (Test 2):
-----------------------
00000000* SET @00000000 #0000000000000002
0000000d SET @00000001 #0000000000000001
0000001a BGT $00000000 $00000001 :00000032
00000024 SET @00000002 #eeeeeeeeeeeeeeee
00000031 FIN
00000032 INC @00000001
00000037 INC @00000001
0000003c BGT $00000001 $00000000 :00000024
00000046 SET @00000003 #ffffffffffffffff
00000053 FIN
Machine Code (Test 2):
----------------------
01000000000200000000000000010100000001000000000000001f0000000001000000180102000000eeeeeeeeeeeeeeee280401
00000004010000001f0100000000000000e80103000000ffffffffffffffff28
Data Dump (Test 2):
-------------------
00000000 02 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00
00000010 ee ee ee ee ee ee ee ee 00 00 00 00 00 00 00 00
00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Assembly Code (Test 3):
-----------------------
00000000* SET @00000000 #0000000000000002
0000000d SET @00000001 #0000000000000001
0000001a BGT $00000000 $00000001 :00000040
00000024 SET @00000002 #eeeeeeeeeeeeeeee
00000031 SET @00000003 #ffffffffffffffff
0000003e FIN
Machine Code (Test 3):
----------------------
01000000000200000000000000010100000001000000000000001f0000000001000000260102000000eeeeeeeeeeeeeeee010300
0000ffffffffffffffff28
Runtime Error (Test 3):
-----------------------
error: invalid code
Assembly Code (Test 4):
-----------------------
00000000* SET @00000000 #0000000000000002
0000000d SET @00000001 #0000000000000001
0000001a BGT $00000000 $00000001 :0000001d
00000024 SET @00000002 #eeeeeeeeeeeeeeee
00000031 SET @00000003 #ffffffffffffffff
0000003e FIN
Machine Code (Test 4):
----------------------
01000000000200000000000000010100000001000000000000001f0000000001000000030102000000eeeeeeeeeeeeeeee010300
0000ffffffffffffffff28
Runtime Error (Test 4):
-----------------------
error: invalid code
Assembly Code (Test 5):
-----------------------
00000000* SET @00000000 #0000000000000002
0000000d SET @00000001 #0000000000000001
0000001a BGT $00000000 $00000001 :00000031
00000024 SET @00000002 #eeeeeeeeeeeeeeee
00000031 INC @00000001
00000036 INC @00000001
0000003b BGT $00000001 $00000000 :00000024
00000045 SET @00000003 #ffffffffffffffff
00000052 FIN
Machine Code (Test 5):
----------------------
01000000000200000000000000010100000001000000000000001f0000000001000000170102000000eeeeeeeeeeeeeeee040100
000004010000001f0100000000000000e90103000000ffffffffffffffff28
Runtime Result (Test 5):
-----------------------
stopped - zero balance
</pre>
</div>
</div>
<div style="visibility: visible;" id="footer">
<p>
<div class="footer-icon"><a target="_blank" href="//ciyam.org/"><img src="logo-gryscl-128.png" /></a></div>
&copy; 2012-2015 CIYAM Developers
</p>
</div>
</body>
</html>

259
docs/at_test_ble_dat.html

@ -0,0 +1,259 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>CIYAM AT - Test for AT instruction code 0x22 (BLE_DAT)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="copyright" content="Copyright 2015 CIYAM Developers"/>
<link rel="stylesheet" href="document.css" type="text/css"/>
</head>
<div id="content">
<div id="header">
<div id="appname"><a href="//ciyam.org/at">AT</a></div>
<h3 class="right-top">Test for AT instruction code 0x22 (BLE_DAT)</h3>
</div>
<div id="main">
<div id="text">
<pre>
Test for AT instruction code 0x22 (BLE_DAT)
-------------------------------------------
For each test the assembly and machine code are listed as is the data dump or expected error if test case has
been created specifically to fail (with a data dump if any data was expected to have changed before the error
occurred).
A summary of the tests follows:
Test 1 - Check some basic usage.
Test 2 - Jump forwards and backwords.
Test 3 - Jump to an out of range address.
Test 4 - Jump to an invalid address.
Test 5 - Infinite loop.
Assembly Code (Test 1):
-----------------------
00000000* SET @00000000 #0000000000000004
0000000d SET @00000001 #0000000000000003
0000001a BLE $00000000 $00000001 :00000031
00000024 SET @00000002 #dddddddddddddddd
00000031 DEC @00000000
00000036 BLE $00000000 $00000001 :0000004d
00000040 SET @00000003 #eeeeeeeeeeeeeeee
0000004d DEC @00000000
00000052 BLE $00000000 $00000001 :00000069
0000005c SET @00000004 #ffffffffffffffff
00000069 FIN
Machine Code (Test 1):
----------------------
0100000000040000000000000001010000000300000000000000220000000001000000170102000000dddddddddddddddd050000
0000220000000001000000170103000000eeeeeeeeeeeeeeee0500000000220000000001000000170104000000ffffffffffffff
ff28
Data Dump (Test 1):
-------------------
00000000 02 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00
00000010 dd dd dd dd dd dd dd dd 00 00 00 00 00 00 00 00
00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Assembly Code (Test 2):
-----------------------
00000000* SET @00000000 #0000000000000003
0000000d SET @00000001 #0000000000000003
0000001a BLE $00000000 $00000001 :00000032
00000024 SET @00000002 #dddddddddddddddd
00000031 FIN
00000032 DEC @00000000
00000037 BLE $00000000 $00000001 :00000024
00000041 SET @00000004 #ffffffffffffffff
0000004e FIN
Machine Code (Test 2):
----------------------
0100000000030000000000000001010000000300000000000000220000000001000000180102000000dddddddddddddddd280500
000000220000000001000000ed0104000000ffffffffffffffff28
Data Dump (Test 2):
-------------------
00000000 02 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00
00000010 dd dd dd dd dd dd dd dd 00 00 00 00 00 00 00 00
00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Assembly Code (Test 3):
-----------------------
00000000* SET @00000000 #0000000000000003
0000000d SET @00000001 #0000000000000003
0000001a BLE $00000000 $00000001 :00000040
00000024 SET @00000002 #eeeeeeeeeeeeeeee
00000031 SET @00000003 #ffffffffffffffff
0000003e FIN FIN
Machine Code (Test 3):
----------------------
0100000000030000000000000001010000000300000000000000220000000001000000260102000000eeeeeeeeeeeeeeee010300
0000ffffffffffffffff28
Runtime Error (Test 3):
-----------------------
error: invalid code
Assembly Code (Test 4):
-----------------------
00000000* SET @00000000 #0000000000000002
0000000d SET @00000001 #0000000000000001
0000001a BLE $00000000 $00000001 :0000002a
00000024 SET @00000002 #eeeeeeeeeeeeeeee
00000031 SET @00000003 #ffffffffffffffff
0000003e FIN
Machine Code (Test 4):
----------------------
0100000000020000000000000001010000000100000000000000220000000001000000100102000000eeeeeeeeeeeeeeee010300
0000ffffffffffffffff28
Data Dump (Test 4):
-------------------
00000000 02 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00
00000010 ee ee ee ee ee ee ee ee ff ff ff ff ff ff ff ff
00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Assembly Code (Test 5):
-----------------------
00000000* SET @00000000 #0000000000000003
0000000d SET @00000001 #0000000000000003
0000001a BLE $00000000 $00000001 :00000031
00000024 SET @00000002 #eeeeeeeeeeeeeeee
00000031 INC @00000001
00000036 BLE $00000000 $00000001 :00000024
00000040 SET @00000003 #ffffffffffffffff
0000004d FIN
Machine Code (Test 5):
----------------------
0100000000030000000000000001010000000300000000000000220000000001000000170102000000eeeeeeeeeeeeeeee040100
0000220000000001000000ee0103000000ffffffffffffffff28
Runtime Result (Test 5):
-----------------------
stopped - zero balance
</pre>
</div>
</div>
<div style="visibility: visible;" id="footer">
<p>
<div class="footer-icon"><a target="_blank" href="//ciyam.org/"><img src="logo-gryscl-128.png" /></a></div>
&copy; 2012-2015 CIYAM Developers
</p>
</div>
</body>
</html>

228
docs/at_test_blt_dat.html

@ -0,0 +1,228 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>CIYAM AT - Test for AT instruction code 0x20 (BLT_DAT)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="copyright" content="Copyright 2015 CIYAM Developers"/>
<link rel="stylesheet" href="document.css" type="text/css"/>
</head>
<div id="content">
<div id="header">
<div id="appname"><a href="//ciyam.org/at">AT</a></div>
<h3 class="right-top">Test for AT instruction code 0x20 (BLT_DAT)</h3>
</div>
<div id="main">
<div id="text">
<pre>
Test for AT instruction code 0x20 (BLT_DAT)
-------------------------------------------
For each test the assembly and machine code are listed as is the data dump or expected error if test case has
been created specifically to fail (with a data dump if any data was expected to have changed before the error
occurred).
A summary of the tests follows:
Test 1 - Check some basic usage.
Test 2 - Jump forwards and backwords.
Test 3 - Jump to out range address.
Test 4 - Jump to invalid address.
Test 5 - Infinite loop.
Assembly Code (Test 1):
-----------------------
00000000* SET @00000000 #0000000000000002
0000000d SET @00000001 #0000000000000003
0000001a BLT $00000000 $00000001 :00000031
00000024 SET @00000002 #eeeeeeeeeeeeeeee
00000031 INC @00000000
00000036 INC @00000000
0000003b BLT $00000000 $00000001 :00000052
00000045 SET @00000003 #ffffffffffffffff
00000052 FIN
Machine Code (Test 1):
----------------------
0100000000020000000000000001010000000300000000000000200000000001000000170102000000eeeeeeeeeeeeeeee040000
00000400000000200000000001000000170103000000ffffffffffffffff28
Data Dump (Test 1):
-------------------
00000000 04 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00
00000010 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff
00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Assembly Code (Test 2):
-----------------------
00000000* SET @00000000 #0000000000000002
0000000d SET @00000001 #0000000000000003
0000001a BLT $00000000 $00000001 :00000032
00000024 SET @00000002 #eeeeeeeeeeeeeeee
00000031 FIN
00000032 DEC @00000001
00000037 BLT $00000001 $00000000 :00000024
00000041 DEC @00000001
00000046 BLT $00000001 $00000000 :00000024
00000050 SET @00000003 #ffffffffffffffff
0000005d FIN
Machine Code (Test 2):
----------------------
0100000000020000000000000001010000000300000000000000200000000001000000180102000000eeeeeeeeeeeeeeee280501
000000200100000000000000ed0501000000200100000000000000de0103000000ffffffffffffffff28
Data Dump (Test 2):
-------------------
00000000 02 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00
00000010 ee ee ee ee ee ee ee ee 00 00 00 00 00 00 00 00
00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Assembly Code (Test 3):
-----------------------
00000000* SET @00000000 #0000000000000002
0000000d SET @00000001 #0000000000000003
0000001a BLT $00000000 $00000001 :00000040
00000024 SET @00000002 #eeeeeeeeeeeeeeee
00000031 SET @00000003 #ffffffffffffffff
0000003e FIN
Machine Code (Test 3):
----------------------
0100000000020000000000000001010000000300000000000000200000000001000000260102000000eeeeeeeeeeeeeeee010300
0000ffffffffffffffff28
Runtime Error (Test 3):
-----------------------
error: invalid code
Assembly Code (Test 4):
-----------------------
00000000* SET @00000000 #0000000000000002
0000000d SET @00000001 #0000000000000003
0000001a BLT $00000000 $00000001 :0000002a
00000024 SET @00000002 #eeeeeeeeeeeeeeee
00000031 SET @00000003 #ffffffffffffffff
0000003e FIN
Machine Code (Test 4):
----------------------
0100000000020000000000000001010000000300000000000000200000000001000000100102000000eeeeeeeeeeeeeeee010300
0000ffffffffffffffff28
Runtime Error (Test 4):
-----------------------
error: invalid code
Assembly Code (Test 5):
-----------------------
00000000* SET @00000000 #0000000000000002
0000000d SET @00000001 #0000000000000003
0000001a BLT $00000000 $00000001 :00000031
00000024 SET @00000002 #eeeeeeeeeeeeeeee
00000031 INC @00000001
00000036 INC @00000001
0000003b BLT $00000000 $00000001 :00000024
00000045 SET @00000003 #ffffffffffffffff
00000052 FIN
Machine Code (Test 5):
----------------------
0100000000020000000000000001010000000300000000000000200000000001000000170102000000eeeeeeeeeeeeeeee040100
00000401000000200000000001000000e90103000000ffffffffffffffff28
Runtime Result (Test 5):
-----------------------
stopped - zero balance
</pre>
</div>
</div>
<div style="visibility: visible;" id="footer">
<p>
<div class="footer-icon"><a target="_blank" href="//ciyam.org/"><img src="logo-gryscl-128.png" /></a></div>
&copy; 2012-2015 CIYAM Developers
</p>
</div>
</body>
</html>

231
docs/at_test_bne_dat.html

@ -0,0 +1,231 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>CIYAM AT - Test for AT instruction code 0x24 (BNE_DAT)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="copyright" content="Copyright 2015 CIYAM Developers"/>
<link rel="stylesheet" href="document.css" type="text/css"/>
</head>
<div id="content">
<div id="header">
<div id="appname"><a href="//ciyam.org/at">AT</a></div>
<h3 class="right-top">Test for AT instruction code 0x24 (BNE_DAT)</h3>
</div>
<div id="main">
<div id="text">
<pre>
Test for AT instruction code 0x24 (BNE_DAT)
-------------------------------------------
For each test the assembly and machine code are listed as is the data dump or expected error if test case has
been created specifically to fail (with a data dump if any data was expected to have changed before the error
occurred).
A summary of the tests follows:
Test 1 - Check some basic usage.
Test 2 - Branch forwards and backwords.
Test 3 - Branch to out of range address.
Test 4 - Branch to invalid address.
Test 5 - Infinite loop.
Assembly Code (Test 1):
-----------------------
00000000* SET @00000000 #0000000000000002
0000000d SET @00000001 #0000000000000003
0000001a BNE $00000000 $00000001 :00000031
00000024 SET @00000002 #dddddddddddddddd
00000031 DEC @00000000
00000036 BNE $00000000 $00000001 :0000004d
00000040 SET @00000003 #eeeeeeeeeeeeeeee
0000004d INC @00000000
00000052 INC @00000000
00000057 BNE $00000000 $00000001 :0000006e
00000061 SET @00000004 #ffffffffffffffff
0000006e FIN
Machine Code (Test 1):
----------------------
0100000000020000000000000001010000000300000000000000240000000001000000170102000000dddddddddddddddd050000
0000240000000001000000170103000000eeeeeeeeeeeeeeee04000000000400000000240000000001000000170104000000ffff
ffffffffffff28
Data Dump (Test 1):
-------------------
00000000 03 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00
00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000020 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Assembly Code (Test 2):
-----------------------
00000000* SET @00000000 #0000000000000002
0000000d SET @00000001 #0000000000000003
0000001a BNE $00000000 $00000001 :00000032
00000024 SET @00000002 #dddddddddddddddd
00000031 FIN
00000032 DEC @00000000
00000037 DEC @00000001
0000003c BNE $00000000 $00000001 :00000024
00000046 SET @00000004 #ffffffffffffffff
00000053 FIN
Machine Code (Test 2):
----------------------
0100000000020000000000000001010000000300000000000000240000000001000000180102000000dddddddddddddddd280500
0000000501000000240000000001000000e80104000000ffffffffffffffff28
Data Dump (Test 2):
-------------------
00000000 01 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00
00000010 dd dd dd dd dd dd dd dd 00 00 00 00 00 00 00 00
00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Assembly Code (Test 3):
-----------------------
00000000* SET @00000000 #0000000000000004
0000000d SET @00000001 #0000000000000003
0000001a BNE $00000000 $00000001 :00000040
00000024 SET @00000002 #eeeeeeeeeeeeeeee
00000031 SET @00000003 #ffffffffffffffff
0000003e FIN
Machine Code (Test 3):
----------------------
0100000000040000000000000001010000000300000000000000240000000001000000260102000000eeeeeeeeeeeeeeee010300
0000ffffffffffffffff28
Runtime Error (Test 3):
-----------------------
error: invalid code
Assembly Code (Test 4):
-----------------------
00000000* SET @00000000 #0000000000000003
0000000d SET @00000001 #0000000000000003
0000001a BEQ $00000000 $00000001 :0000002a
00000024 SET @00000002 #eeeeeeeeeeeeeeee
00000031 SET @00000003 #ffffffffffffffff
0000003e FIN
Machine Code (Test 4):
----------------------
0100000000030000000000000001010000000500000000000000240000000001000000100102000000eeeeeeeeeeeeeeee010300
0000ffffffffffffffff28
Runtime Error (Test 4):
-----------------------
error: invalid code
Assembly Code (Test 5):
-----------------------
00000000* SET @00000000 #0000000000000003
0000000d SET @00000001 #0000000000000004
0000001a BNE $00000000 $00000001 :00000031
00000024 SET @00000002 #eeeeeeeeeeeeeeee
00000031 INC @00000000
00000036 INC @00000001
0000003b BNE $00000000 $00000001 :00000024
00000045 SET @00000003 #ffffffffffffffff
00000052 FIN
Machine Code (Test 5):
----------------------
0100000000030000000000000001010000000400000000000000240000000001000000170102000000eeeeeeeeeeeeeeee040000
00000401000000240000000001000000e90103000000ffffffffffffffff28
Runtime Result (Test 5):
-----------------------
stopped - zero balance
</pre>
</div>
</div>
<div style="visibility: visible;" id="footer">
<p>
<div class="footer-icon"><a target="_blank" href="//ciyam.org/"><img src="logo-gryscl-128.png" /></a></div>
&copy; 2012-2015 CIYAM Developers
</p>
</div>
</body>
</html>

226
docs/at_test_bnz_dat.html

@ -0,0 +1,226 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>CIYAM AT - Test for AT instruction code 0x1e (BNZ_DAT)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="copyright" content="Copyright 2015 CIYAM Developers"/>
<link rel="stylesheet" href="document.css" type="text/css"/>
</head>
<div id="content">
<div id="header">
<div id="appname"><a href="//ciyam.org/at">AT</a></div>
<h3 class="right-top">Test for AT instruction code 0x1e (BNZ_DAT)</h3>
</div>
<div id="main">
<div id="text">
<pre>
Test for AT instruction code 0x1e (BNZ_DAT)
-------------------------------------------
For each test the assembly and machine code are listed as is the data dump or expected error if test case has
been created specifically to fail (with a data dump if any data was expected to have changed before the error
occurred).
A summary of the tests follows:
Test 1 - Check some basic usage.
Test 2 - Jump forwards and backwords.
Test 3 - Jump to out range address
Test 4 - Jump to not valid address point
Test 5 - infinite loop
Assembly Code (Test 1):
-----------------------
00000000* SET @00000000 #0000000000000001
0000000d BNZ $00000000, :00000021
00000013 SET @00000001 #1111111111111111
00000020 FIN
00000021 DEC @00000000
00000026 BNZ $00000000, :00000039
0000002c SET @00000002 #ffffffffffffffff
00000039 FIN
Machine Code (Test 1):
----------------------
010000000001000000000000001e0000000014010100000011111111111111112805000000001e00000000130102000000ffffff
ffffffffff28
Data Dump (Test 1):
-------------------
00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000010 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Assembly Code (Test 2):
-----------------------
00000000* SET @00000000 #0000000000000001
0000000d BNZ $00000000, :00000021
00000013 SET @00000001 #1111111111111111
00000020 FIN
00000021 SET @0000003f #ffffffffffffffff
0000002e BNZ $0000003f, :00000013
00000034 SET @00000002 #ffffffffffffffff
00000041 FIN
Machine Code (Test 2):
----------------------
010000000001000000000000001e00000000140101000000111111111111111128013f000000ffffffffffffffff1e3f000000e5
0102000000ffffffffffffffff28
Data Dump (Test 2):
-------------------
00000000 01 00 00 00 00 00 00 00 11 11 11 11 11 11 11 11
00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001f0 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff
Assembly Code (Test 3):
-----------------------
00000000* SET @00000000 #0000000000000001
0000000d BNZ $00000000, :00000023
00000013 SET @00000001 #1111111111111111
00000020 FIN
00000021 SET @0000003f #ffffffffffffffff
0000002e BNZ $0000003f, :00000013
00000034 SET @00000002 #ffffffffffffffff
00000041 FIN
Machine Code (Test 3):
----------------------
010000000001000000000000001e00000000160101000000111111111111111128013f000000ffffffffffffffff1e3f000000e5
0102000000ffffffffffffffff28
Runtime Error (Test 3):
-----------------------
error: invalid code
Assembly Code (Test 4):
-----------------------
00000000* SET @00000000 #0000000000000001
0000000d BNZ $00000000, :00000021
00000013 SET @00000001 #1111111111111111
00000020 FIN
00000021 SET @0000003f #ffffffffffffffff
0000002e BNZ $0000003f, :ffffffff
00000034 SET @00000002 #ffffffffffffffff
00000041 FIN
Machine Code (Test 4):
----------------------
010000000001000000000000001e00000000140101000000111111111111111128013f000000ffffffffffffffff1e3f000000d1
0102000000ffffffffffffffff28
Runtime Error (Test 4):
-----------------------
error: invalid code
Assembly Code (Test 5):
-----------------------
00000000* SET @00000000 #0000000000000001
0000000d BNZ $00000000, :00000020
00000013 SET @00000001 #1111111111111111
00000020 SET @0000003f #ffffffffffffffff
0000002d BNZ $0000003f, :00000013
00000033 SET @00000002 #ffffffffffffffff
00000040 FIN
Machine Code (Test 5):
----------------------
010000000001000000000000001e000000001301010000001111111111111111013f000000ffffffffffffffff1e3f000000e601
02000000ffffffffffffffff28
Runtime Result (Test 5):
-----------------------
stopped - zero balance
</pre>
</div>
</div>
<div style="visibility: visible;" id="footer">
<p>
<div class="footer-icon"><a target="_blank" href="//ciyam.org/"><img src="logo-gryscl-128.png" /></a></div>
&copy; 2012-2015 CIYAM Developers
</p>
</div>
</body>
</html>

472
docs/at_test_bor_dat.html

@ -0,0 +1,472 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>CIYAM AT - Test for AT instruction code 0x0a (BOR_DAT)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="copyright" content="Copyright 2015 CIYAM Developers"/>
<link rel="stylesheet" href="document.css" type="text/css"/>
</head>
<div id="content">
<div id="header">
<div id="appname"><a href="//ciyam.org/at">AT</a></div>
<h3 class="right-top">Test for AT instruction code 0x0a (BOR_DAT)</h3>
</div>
<div id="main">
<div id="text">
<pre>
Test for AT instruction code 0x0a (BOR_DAT)
-------------------------------------------
For each test the assembly and machine code are listed as is the data dump or expected error if test case has
been created specifically to fail (with a data dump if any data was expected to have changed before the error
occurred).
A summary of the tests follows:
Test 1 - Check some basic usage.
Test 2 - Check highest value works.
Test 3 - Check full address range.
Test 4 - Check overwriting works.
Test 5 - Check address range edge fail.
Test 6 - Check negative adddress fails.
Assembly Code (Test 1):
-----------------------
00000000* SET @00000000 #000000000000000f
0000000d SET @00000001 #000000000000000e
0000001a SET @00000002 #000000000000000d
00000027 SET @00000003 #000000000000000c
00000034 SET @00000004 #000000000000000b
00000041 SET @00000005 #000000000000000a
0000004e SET @00000006 #0000000000000009
0000005b SET @00000007 #0000000000000008
00000068 SET @00000008 #0000000000000007
00000075 SET @00000009 #0000000000000006
00000082 SET @0000000a #0000000000000005
0000008f SET @0000000b #0000000000000004
0000009c SET @0000000c #0000000000000003
000000a9 SET @0000000d #0000000000000002
000000b6 SET @0000000e #0000000000000001
000000c3 BOR @00000000 $00000001
000000cc BOR @00000001 $00000002
000000d5 BOR @00000002 $00000003
000000de BOR @00000003 $00000004
000000e7 BOR @00000004 $00000005
000000f0 BOR @00000005 $00000006
000000f9 BOR @00000006 $00000007
00000102 BOR @00000007 $00000008
0000010b BOR @00000008 $0000000a
00000114 BOR @00000009 $0000000a
0000011d BOR @0000000a $0000000b
00000126 BOR @0000000b $0000000c
0000012f BOR @0000000c $0000000d
00000138 BOR @0000000d $0000000e
00000141 FIN
Machine Code (Test 1):
----------------------
01000000000f0000000000000001010000000e0000000000000001020000000d0000000000000001030000000c00000000000000
01040000000b0000000000000001050000000a000000000000000106000000090000000000000001070000000800000000000000
0108000000070000000000000001090000000600000000000000010a0000000500000000000000010b0000000400000000000000
010c0000000300000000000000010d0000000200000000000000010e00000001000000000000000a00000000010000000a010000
00020000000a02000000030000000a03000000040000000a04000000050000000a05000000060000000a06000000070000000a07
000000080000000a080000000a0000000a090000000a0000000a0a0000000b0000000a0b0000000c0000000a0c0000000d000000
0a0d0000000e00000028
Data Dump (Test 1):
-------------------
00000000 0f 00 00 00 00 00 00 00 0f 00 00 00 00 00 00 00
00000010 0d 00 00 00 00 00 00 00 0f 00 00 00 00 00 00 00
00000020 0b 00 00 00 00 00 00 00 0b 00 00 00 00 00 00 00
00000030 09 00 00 00 00 00 00 00 0f 00 00 00 00 00 00 00
00000040 07 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00
00000050 05 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00
00000060 03 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00
00000070 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Assembly Code (Test 2):
-----------------------
00000000* SET @00000001 #ffffffffffffffff
0000000d SET @00000004 #ffffffffffffffff
0000001a SET @00000007 #0000000000000000
00000027 SET @0000000a #ffffffffffffffff
00000034 SET @0000000d #ffffffffffffffff
00000041 SET @00000010 #0000000000000000
0000004e SET @00000013 #ffffffffffffffff
0000005b SET @00000016 #ffffffffffffffff
00000068 SET @00000019 #0000000000000000
00000075 SET @0000001c #ffffffffffffffff
00000082 SET @0000001f #ffffffffffffffff
0000008f SET @00000022 #0000000000000000
0000009c SET @00000025 #ffffffffffffffff
000000a9 SET @00000028 #ffffffffffffffff
000000b6 SET @0000002b #0000000000000000
000000c3 SET @0000002e #ffffffffffffffff
000000d0 SET @00000031 #ffffffffffffffff
000000dd SET @00000034 #0000000000000000
000000ea SET @00000037 #ffffffffffffffff
000000f7 SET @0000003a #ffffffffffffffff
00000104 SET @0000003d #0000000000000000
00000111 BOR @00000001 $00000004
0000011a BOR @00000004 $00000007
00000123 BOR @00000007 $0000000a
0000012c BOR @0000000a $0000000d
00000135 BOR @0000000d $00000010
0000013e BOR @00000010 $00000013
00000147 BOR @00000013 $00000016
00000150 BOR @00000016 $00000019
00000159 BOR @00000019 $0000001c
00000162 BOR @0000001c $0000001f
0000016b BOR @0000001f $00000022
00000174 BOR @00000022 $00000025
0000017d BOR @00000025 $00000028
00000186 BOR @00000028 $0000002b
0000018f BOR @0000002b $0000002e
00000198 BOR @0000002e $00000031
000001a1 BOR @00000031 $00000034
000001aa BOR @00000034 $00000037
000001b3 BOR @00000037 $0000003a
000001bc BOR @0000003a $0000003d
000001c5 BOR @0000003d $0000003d
000001ce FIN
Machine Code (Test 2):
----------------------
0101000000ffffffffffffffff0104000000ffffffffffffffff01070000000000000000000000010a000000ffffffffffffffff
010d000000ffffffffffffffff011000000000000000000000000113000000ffffffffffffffff0116000000ffffffffffffffff
01190000000000000000000000011c000000ffffffffffffffff011f000000ffffffffffffffff01220000000000000000000000
0125000000ffffffffffffffff0128000000ffffffffffffffff012b0000000000000000000000012e000000ffffffffffffffff
0131000000ffffffffffffffff013400000000000000000000000137000000ffffffffffffffff013a000000ffffffffffffffff
013d00000000000000000000000a01000000040000000a04000000070000000a070000000a0000000a0a0000000d0000000a0d00
0000100000000a10000000130000000a13000000160000000a16000000190000000a190000001c0000000a1c0000001f0000000a
1f000000220000000a22000000250000000a25000000280000000a280000002b0000000a2b0000002e0000000a2e000000310000
000a31000000340000000a34000000370000000a370000003a0000000a3a0000003d0000000a3d0000003d00000028
Data Dump (Test 2):
-------------------
00000000 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff
00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000020 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
00000030 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000050 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
00000060 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
00000090 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff
000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000b0 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
000000c0 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff
00000100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000110 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
00000120 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
00000180 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff
00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001a0 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Assembly Code (Test 3):
-----------------------
00000000* SET @00000001 #efcdab8967452301
0000000d SET @00000004 #ffffffffffffffff
0000001a SET @00000007 #efcdab8967452301
00000027 SET @0000000a #0000000000000000
00000034 SET @0000000d #efcdab8967452301
00000041 SET @00000010 #ffffffffffffffff
0000004e SET @00000013 #efcdab8967452301
0000005b SET @00000016 #0000000000000000
00000068 SET @00000019 #efcdab8967452301
00000075 SET @0000001c #ffffffffffffffff
00000082 SET @0000001f #efcdab8967452301
0000008f SET @00000022 #0000000000000000
0000009c SET @00000025 #efcdab8967452301
000000a9 SET @00000028 #ffffffffffffffff
000000b6 SET @0000002b #efcdab8967452301
000000c3 SET @0000002e #0000000000000000
000000d0 SET @00000031 #efcdab8967452301
000000dd SET @00000034 #ffffffffffffffff
000000ea SET @00000037 #efcdab8967452301
000000f7 SET @0000003a #0000000000000000
00000104 SET @0000003d #efcdab8967452301
00000111 BOR @00000001 $00000004
0000011a BOR @00000004 $00000007
00000123 BOR @00000007 $0000000a
0000012c BOR @0000000a $0000000d
00000135 BOR @0000000d $00000010
0000013e BOR @00000010 $00000013
00000147 BOR @00000013 $00000016
00000150 BOR @00000016 $00000019
00000159 BOR @00000019 $0000001c
00000162 BOR @0000001c $0000001f
0000016b BOR @0000001f $00000022
00000174 BOR @00000022 $00000025
0000017d BOR @00000025 $00000028
00000186 BOR @00000028 $0000002b
0000018f BOR @0000002b $0000002e
00000198 BOR @0000002e $00000031
000001a1 BOR @00000031 $00000034
000001aa BOR @00000034 $00000037
000001b3 BOR @00000037 $0000003a
000001bc BOR @0000003a $0000003d
000001c5 BOR @0000003d $0000003d
000001ce FIN
Machine Code (Test 3):
----------------------
01010000000123456789abcdef0104000000ffffffffffffffff01070000000123456789abcdef010a0000000000000000000000
010d0000000123456789abcdef0110000000ffffffffffffffff01130000000123456789abcdef01160000000000000000000000
01190000000123456789abcdef011c000000ffffffffffffffff011f0000000123456789abcdef01220000000000000000000000
01250000000123456789abcdef0128000000ffffffffffffffff012b0000000123456789abcdef012e0000000000000000000000
01310000000123456789abcdef0134000000ffffffffffffffff01370000000123456789abcdef013a0000000000000000000000
013d0000000123456789abcdef0a01000000040000000a04000000070000000a070000000a0000000a0a0000000d0000000a0d00
0000100000000a10000000130000000a13000000160000000a16000000190000000a190000001c0000000a1c0000001f0000000a
1f000000220000000a22000000250000000a25000000280000000a280000002b0000000a2b0000002e0000000a2e000000310000
000a31000000340000000a34000000370000000a370000003a0000000a3a0000003d0000000a3d0000003d00000028
Data Dump (Test 3):
-------------------
00000000 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff
00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000020 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
00000030 00 00 00 00 00 00 00 00 01 23 45 67 89 ab cd ef
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000050 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000060 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
00000090 00 00 00 00 00 00 00 00 01 23 45 67 89 ab cd ef
000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000b0 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000c0 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 01 23 45 67 89 ab cd ef
00000100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000110 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000120 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 01 23 45 67 89 ab cd ef
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000180 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff
00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001a0 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 01 23 45 67 89 ab cd ef
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 01 23 45 67 89 ab cd ef
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Assembly Code (Test 4):
-----------------------
00000000* SET @00000000 #9999999999999999
0000000d SET @00000001 #4444444444444444
0000001a SET @00000002 #ddddddddffffffff
00000027 SET @00000010 #8888888888888888
00000034 SET @00000011 #5555555555555555
00000041 SET @00000012 #ddddddddffffffff
0000004e SET @00000020 #7777777777777777
0000005b SET @00000021 #8888888888888888
00000068 SET @00000022 #ddddddddffffffff
00000075 SET @00000030 #6666666666666666
00000082 SET @00000031 #9999999999999999
0000008f SET @00000032 #ddddddddffffffff
0000009c BOR @00000000 $00000001
000000a5 BOR @00000000 $00000001
000000ae BOR @00000010 $00000011
000000b7 BOR @00000010 $00000011
000000c0 BOR @00000010 $00000011
000000c9 BOR @00000020 $00000021
000000d2 BOR @00000020 $00000021
000000db BOR @00000020 $00000021
000000e4 BOR @00000020 $00000021
000000ed BOR @00000030 $00000031
000000f6 BOR @00000030 $00000031
000000ff BOR @00000030 $00000031
00000108 BOR @00000030 $00000031
00000111 BOR @00000030 $00000031
0000011a FIN
Machine Code (Test 4):
----------------------
01000000009999999999999999010100000044444444444444440102000000ffffffffdddddddd01100000008888888888888888
011100000055555555555555550112000000ffffffffdddddddd0120000000777777777777777701210000008888888888888888
0122000000ffffffffdddddddd01300000006666666666666666013100000099999999999999990132000000ffffffffdddddddd
0a00000000010000000a00000000010000000a10000000110000000a10000000110000000a10000000110000000a200000002100
00000a20000000210000000a20000000210000000a20000000210000000a30000000310000000a30000000310000000a30000000
310000000a30000000310000000a300000003100000028
Data Dump (Test 4):
-------------------
00000000 dd dd dd dd dd dd dd dd 44 44 44 44 44 44 44 44
00000010 ff ff ff ff dd dd dd dd 00 00 00 00 00 00 00 00
00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 dd dd dd dd dd dd dd dd 55 55 55 55 55 55 55 55
00000090 ff ff ff ff dd dd dd dd 00 00 00 00 00 00 00 00
000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000100 ff ff ff ff ff ff ff ff 88 88 88 88 88 88 88 88
00000110 ff ff ff ff dd dd dd dd 00 00 00 00 00 00 00 00
00000120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000180 ff ff ff ff ff ff ff ff 99 99 99 99 99 99 99 99
00000190 ff ff ff ff dd dd dd dd 00 00 00 00 00 00 00 00
000001a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Assembly Code (Test 5):
-----------------------
00000000* SET @0000003e #00000000ffffffff
0000000d SET @0000003f #ffffffffffffffff
0000001a BOR @0000003e $0000003f
00000023 BOR @0000003f $00000040
0000002c FIN
Machine Code (Test 5):
----------------------
013e000000ffffffff00000000013f000000ffffffffffffffff0a3e0000003f0000000a3f0000004000000028
Runtime Error (Test 5):
-----------------------
error: overflow
Data Dump (Test 5):
-------------------
00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001f0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
Assembly Code (Test 6):
-----------------------
00000000* BOR @ffffffff $ffffffff
00000009 FIN
Machine Code (Test 6):
----------------------
0affffffffffffffff28
Runtime Error (Test 6):
-----------------------
error: overflow
</pre>
</div>
</div>
<div style="visibility: visible;" id="footer">
<p>
<div class="footer-icon"><a target="_blank" href="//ciyam.org/"><img src="logo-gryscl-128.png" /></a></div>
&copy; 2012-2015 CIYAM Developers
</p>
</div>
</body>
</html>

221
docs/at_test_bzr_dat.html

@ -0,0 +1,221 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>CIYAM AT - Test for AT instruction code 0x1b (BZR_DAT)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="copyright" content="Copyright 2015 CIYAM Developers"/>
<link rel="stylesheet" href="document.css" type="text/css"/>
</head>
<div id="content">
<div id="header">
<div id="appname"><a href="//ciyam.org/at">AT</a></div>
<h3 class="right-top">Test for AT instruction code 0x1b (BZR_DAT)</h3>
</div>
<div id="main">
<div id="text">
<pre>
Test for AT instruction code 0x1b (BZR_DAT)
-------------------------------------------
For each test the assembly and machine code are listed as is the data dump or expected error if test case has
been created specifically to fail (with a data dump if any data was expected to have changed before the error
occurred).
A summary of the tests follows:
Test 1 - Check some basic usage.
Test 2 - Jump forwards and backwords.
Test 3 - Jump to out range address
Test 4 - Jump to not valid address point
Test 5 - infinite loop
Assembly Code (Test 1):
-----------------------
00000000* SET @00000000 #0000000000000000
0000000d BZR $00000000 :00000021
00000013 SET @00000000 #1111111111111111
00000020 FIN
00000021 INC @00000000
00000026 BZR $00000000 :00000013
0000002c FIN
Machine Code (Test 1):
----------------------
010000000000000000000000001b0000000014010000000011111111111111112804000000001b00000000ed28
Data Dump (Test 1):
-------------------
00000000 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Assembly Code (Test 2):
-----------------------
00000000* SET @00000000 #0000000000000000
0000000d BZR $00000000 :00000021
00000013 SET @00000000 #1111111111111111
00000020 FIN
00000021 INC @00000000
00000026 DEC @00000000
0000002b BZR $00000000 :00000013
00000031 FIN
Machine Code (Test 2):
----------------------
010000000000000000000000001b00000000140100000000111111111111111128040000000005000000001b00000000e828
Data Dump (Test 2):
-------------------
00000000 11 11 11 11 11 11 11 11 00 00 00 00 00 00 00 00
00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Assembly Code (Test 3):
-----------------------
00000000* SET @00000000 #0000000000000000
0000000d BZR $00000000 :00000021
00000013 SET @00000000 #1111111111111111
00000020 FIN
00000021 INC @0000003f
00000026 DEC @0000003f
0000002b BZR $0000003f :0000004b
00000031 FIN
Machine Code (Test 3):
----------------------
010000000000000000000000001b00000000140100000000111111111111111128043f000000053f0000001b3f0000002028
Runtime Error (Test 3):
-----------------------
error: invalid code
Assembly Code (Test 4):
-----------------------
00000000* SET @00000000 #0000000000000000
0000000d BZR $00000000, :00000021
00000013 SET @00000000 #1111111111111111
00000020 FIN
00000021 INC @0000003f
00000026 DEC @0000003f
0000002b BZR $0000003f, :00000024
00000031 FIN
Machine Code (Test 4):
----------------------
010000000000000000000000001b00000000140100000000111111111111111128043f000000053f0000001b3f000000f928
Runtime Error (Test 4):
-----------------------
error: invalid code
Assembly Code (Test 5):
-----------------------
00000000* SET @00000000 #0000000000000000
0000000d BZR $00000000 :00000021
00000013 SET @00000000 #1111111111111111
00000020 FIN
00000021 INC @0000001f
00000026 DEC @0000001f
0000002b BZR $0000001f :00000021
00000031 FIN
Machine Code (Test 5):
----------------------
010000000000000000000000001b00000000140100000000111111111111111128041f000000051f0000001b1f000000f628
Runtime Result (Test 5):
-----------------------
stopped - zero balance
</pre>
</div>
</div>
<div style="visibility: visible;" id="footer">
<p>
<div class="footer-icon"><a target="_blank" href="//ciyam.org/"><img src="logo-gryscl-128.png" /></a></div>
&copy; 2012-2015 CIYAM Developers
</p>
</div>
</body>
</html>

338
docs/at_test_clr_dat.html

@ -0,0 +1,338 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>CIYAM AT - Test for AT instruction code 0x03 (CLR_DAT)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="copyright" content="Copyright 2015 CIYAM Developers"/>
<link rel="stylesheet" href="document.css" type="text/css"/>
</head>
<div id="content">
<div id="header">
<div id="appname"><a href="//ciyam.org/at">AT</a></div>
<h3 class="right-top">Test for AT instruction code 0x03 (CLR_DAT)</h3>
</div>
<div id="main">
<div id="text">
<pre>
Test for AT instruction code 0x03 (CLR_DAT)
-------------------------------------------
For each test the assembly and machine code are listed as is the data dump or expected error if test case has
been created specifically to fail (with a data dump if any data was expected to have changed before the error
occurred).
A summary of the tests follows:
Test 1 - Check some basic usage.
Test 2 - Check highest value works.
Test 3 - Check full address range.
Test 4 - Check overwriting works.
Test 5 - Check address range edge fail.
Test 6 - Check negative adddress fails.
Assembly Code (Test 1):
-----------------------
00000000* SET @00000000 #0000000000000000
0000000d SET @00000003 #0000000000000003
0000001a SET @00000006 #0000000000000006
00000027 SET @00000009 #0000000000000009
00000034 SET @0000000c #000000000000000c
00000041 SET @0000000f #000000000000000f
0000004e SET @00000012 #0000000000000012
0000005b SET @00000015 #0000000000000015
00000068 SET @00000018 #0000000000000018
00000075 SET @0000001b #000000000000001b
00000082 SET @0000001e #000000000000001e
0000008f SET @00000021 #0000000000000021
0000009c SET @00000024 #0000000000000024
000000a9 SET @00000027 #0000000000000027
000000b6 SET @0000002a #000000000000002a
000000c3 SET @0000002d #000000000000002d
000000d0 SET @00000030 #0000000000000030
000000dd SET @00000033 #0000000000000033
000000ea SET @00000036 #0000000000000036
000000f7 SET @00000039 #0000000000000039
00000104 SET @0000003c #000000000000003c
00000111 SET @0000003f #000000000000003f
0000011e CLR @00000000
00000123 CLR @00000003
00000128 CLR @00000006
0000012d CLR @00000009
00000132 CLR @0000000c
00000137 CLR @0000000f
0000013c CLR @00000012
00000141 CLR @00000015
00000146 CLR @00000018
0000014b CLR @0000001b
00000150 CLR @0000001e
00000155 CLR @00000021
0000015a CLR @00000024
0000015f CLR @00000027
00000164 CLR @0000002a
00000169 CLR @0000002d
0000016e CLR @00000030
00000173 CLR @00000033
00000178 CLR @00000036
0000017d CLR @00000039
00000182 CLR @0000003c
00000187 CLR @0000003f
0000018c FIN
Machine Code (Test 1):
----------------------
01000000000000000000000000010300000003000000000000000106000000060000000000000001090000000900000000000000
010c0000000c00000000000000010f0000000f000000000000000112000000120000000000000001150000001500000000000000
01180000001800000000000000011b0000001b00000000000000011e0000001e0000000000000001210000002100000000000000
0124000000240000000000000001270000002700000000000000012a0000002a00000000000000012d0000002d00000000000000
01300000003000000000000000013300000033000000000000000136000000360000000000000001390000003900000000000000
013c0000003c00000000000000013f0000003f000000000000000300000000030300000003060000000309000000030c00000003
0f000000031200000003150000000318000000031b000000031e000000032100000003240000000327000000032a000000032d00
00000330000000033300000003360000000339000000033c000000033f00000028
(data dump should be all zeros)
Assembly Code (Test 2):
-----------------------
00000000* SET @00000001 #ffffffffffffffff
0000000d SET @00000004 #ffffffffffffffff
0000001a SET @00000007 #ffffffffffffffff
00000027 SET @0000000a #ffffffffffffffff
00000034 SET @0000000d #ffffffffffffffff
00000041 SET @00000010 #ffffffffffffffff
0000004e SET @00000013 #ffffffffffffffff
0000005b SET @00000016 #ffffffffffffffff
00000068 SET @00000019 #ffffffffffffffff
00000075 SET @0000001c #ffffffffffffffff
00000082 SET @0000001f #ffffffffffffffff
0000008f SET @00000022 #ffffffffffffffff
0000009c SET @00000025 #ffffffffffffffff
000000a9 SET @00000028 #ffffffffffffffff
000000b6 SET @0000002b #ffffffffffffffff
000000c3 SET @0000002e #ffffffffffffffff
000000d0 SET @00000031 #ffffffffffffffff
000000dd SET @00000034 #ffffffffffffffff
000000ea SET @00000037 #ffffffffffffffff
000000f7 SET @0000003a #ffffffffffffffff
00000104 SET @0000003d #ffffffffffffffff
00000111 CLR @00000001
00000116 CLR @00000004
0000011b CLR @00000007
00000120 CLR @0000000a
00000125 CLR @0000000d
0000012a CLR @00000010
0000012f CLR @00000013
00000134 CLR @00000016
00000139 CLR @00000019
0000013e CLR @0000001c
00000143 CLR @0000001f
00000148 CLR @00000022
0000014d CLR @00000025
00000152 CLR @00000028
00000157 CLR @0000002b
0000015c CLR @0000002e
00000161 CLR @00000031
00000166 CLR @00000034
0000016b CLR @00000037
00000170 CLR @0000003a
00000175 CLR @0000003d
0000017a FIN
Machine Code (Test 2):
----------------------
0101000000ffffffffffffffff0104000000ffffffffffffffff0107000000ffffffffffffffff010a000000ffffffffffffffff
010d000000ffffffffffffffff0110000000ffffffffffffffff0113000000ffffffffffffffff0116000000ffffffffffffffff
0119000000ffffffffffffffff011c000000ffffffffffffffff011f000000ffffffffffffffff0122000000ffffffffffffffff
0125000000ffffffffffffffff0128000000ffffffffffffffff012b000000ffffffffffffffff012e000000ffffffffffffffff
0131000000ffffffffffffffff0134000000ffffffffffffffff0137000000ffffffffffffffff013a000000ffffffffffffffff
013d000000ffffffffffffffff030100000003040000000307000000030a000000030d0000000310000000031300000003160000
000319000000031c000000031f000000032200000003250000000328000000032b000000032e0000000331000000033400000003
37000000033a000000033d00000028
(data dump should be all zeros)
Assembly Code (Test 3):
-----------------------
00000000* SET @00000002 #efcdab8967452301
0000000d SET @00000005 #efcdab8967452301
0000001a SET @00000008 #efcdab8967452301
00000027 SET @0000000b #efcdab8967452301
00000034 SET @0000000e #efcdab8967452301
00000041 SET @00000011 #efcdab8967452301
0000004e SET @00000014 #efcdab8967452301
0000005b SET @00000017 #efcdab8967452301
00000068 SET @0000001a #efcdab8967452301
00000075 SET @0000001d #efcdab8967452301
00000082 SET @00000020 #efcdab8967452301
0000008f SET @00000023 #efcdab8967452301
0000009c SET @00000026 #efcdab8967452301
000000a9 SET @00000029 #efcdab8967452301
000000b6 SET @0000002c #efcdab8967452301
000000c3 SET @0000002f #efcdab8967452301
000000d0 SET @00000032 #efcdab8967452301
000000dd SET @00000035 #efcdab8967452301
000000ea SET @00000038 #efcdab8967452301
000000f7 SET @0000003b #efcdab8967452301
00000104 SET @0000003e #efcdab8967452301
00000111 CLR @00000002
00000116 CLR @00000005
0000011b CLR @00000008
00000120 CLR @0000000b
00000125 CLR @0000000e
0000012a CLR @00000011
0000012f CLR @00000014
00000134 CLR @00000017
00000139 CLR @0000001a
0000013e CLR @0000001d
00000143 CLR @00000020
00000148 CLR @00000023
0000014d CLR @00000026
00000152 CLR @00000029
00000157 CLR @0000002c
0000015c CLR @0000002f
00000161 CLR @00000032
00000166 CLR @00000035
0000016b CLR @00000038
00000170 CLR @0000003b
00000175 CLR @0000003e
0000017a FIN
Machine Code (Test 3):
----------------------
01020000000123456789abcdef01050000000123456789abcdef01080000000123456789abcdef010b0000000123456789abcdef
010e0000000123456789abcdef01110000000123456789abcdef01140000000123456789abcdef01170000000123456789abcdef
011a0000000123456789abcdef011d0000000123456789abcdef01200000000123456789abcdef01230000000123456789abcdef
01260000000123456789abcdef01290000000123456789abcdef012c0000000123456789abcdef012f0000000123456789abcdef
01320000000123456789abcdef01350000000123456789abcdef01380000000123456789abcdef013b0000000123456789abcdef
013e0000000123456789abcdef030200000003050000000308000000030b000000030e0000000311000000031400000003170000
00031a000000031d0000000320000000032300000003260000000329000000032c000000032f0000000332000000033500000003
38000000033b000000033e00000028
(data dump should be all zeros)
Assembly Code (Test 4):
-----------------------
00000000* SET @00000002 #0000000000000000
0000000d SET @00000003 #ffffffffffffffff
0000001a SET @00000004 #1111111111111111
00000027 SET @00000011 #5555555555555555
00000034 SET @00000014 #8888888888888888
00000041 SET @00000017 #4444444444444444
0000004e SET @00000022 #2222222222222222
0000005b SET @00000023 #7777777777777777
00000068 SET @00000024 #3333333333333333
00000075 CLR @00000003
0000007a CLR @00000003
0000007f CLR @00000003
00000084 CLR @00000011
00000089 CLR @00000011
0000008e CLR @00000017
00000093 CLR @00000017
00000098 CLR @00000023
0000009d CLR @00000023
000000a2 CLR @00000023
000000a7 FIN
Machine Code (Test 4):
----------------------
010200000000000000000000000103000000ffffffffffffffff0104000000111111111111111101110000005555555555555555
01140000008888888888888888011700000044444444444444440122000000222222222222222201230000007777777777777777
01240000003333333333333333030300000003030000000303000000031100000003110000000317000000031700000003230000
000323000000032300000028
Data Dump (Test 4):
-------------------
00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000020 11 11 11 11 11 11 11 11 00 00 00 00 00 00 00 00
00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000a0 88 88 88 88 88 88 88 88 00 00 00 00 00 00 00 00
000000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000110 22 22 22 22 22 22 22 22 00 00 00 00 00 00 00 00
00000120 33 33 33 33 33 33 33 33 00 00 00 00 00 00 00 00
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Assembly Code (Test 5):
-----------------------
00000000* SET @0000003e #ffffffffffffffff
0000000d SET @0000003f #ffffffffffffffff
0000001a CLR @0000003f
0000001f CLR @00000040
00000024 FIN
Machine Code (Test 5):
----------------------
013e000000ffffffffffffffff013f000000ffffffffffffffff033f000000034000000028
Runtime Error (Test 5):
-----------------------
error: overflow
Assembly Code (Test 6):
-----------------------
00000000* CLR @ffffffff
00000005 FIN
Machine Code (Test 6):
----------------------
03ffffffff28
Runtime Error (Test 6):
-----------------------
error: overflow
</pre>
</div>
</div>
<div style="visibility: visible;" id="footer">
<p>
<div class="footer-icon"><a target="_blank" href="//ciyam.org/"><img src="logo-gryscl-128.png" /></a></div>
&copy; 2012-2015 CIYAM Developers
</p>
</div>
</body>
</html>

493
docs/at_test_dec_dat.html

@ -0,0 +1,493 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>CIYAM AT - Test for AT instruction code 0x05 (DEC_DAT)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="copyright" content="Copyright 2015 CIYAM Developers"/>
<link rel="stylesheet" href="document.css" type="text/css"/>
</head>
<div id="content">
<div id="header">
<div id="appname"><a href="//ciyam.org/at">AT</a></div>
<h3 class="right-top">Test for AT instruction code 0x05 (DEC_DAT)</h3>
</div>
<div id="main">
<div id="text">
<pre>
Test for AT instruction code 0x05 (DEC_DAT)
-------------------------------------------
For each test the assembly and machine code are listed as is the data dump or expected error if test case has
been created specifically to fail (with a data dump if any data was expected to have changed before the error
occurred).
A summary of the tests follows:
Test 1 - Check some basic usage.
Test 2 - Check lowest value works.
Test 3 - Check full address range.
Test 4 - Check overwriting works.
Test 5 - Check address range edge fail.
Test 6 - Check negative adddress fails.
Assembly Code (Test 1):
-----------------------
00000000* SET @00000000 #0000000000000000
0000000d SET @00000001 #0000000000000001
0000001a SET @00000002 #0000000000000002
00000027 SET @00000003 #0000000000000003
00000034 SET @00000004 #0000000000000004
00000041 SET @00000005 #0000000000000005
0000004e SET @00000006 #0000000000000006
0000005b SET @00000007 #0000000000000007
00000068 SET @00000008 #0000000000000008
00000075 SET @00000009 #0000000000000009
00000082 SET @0000000a #000000000000000a
0000008f SET @0000000b #000000000000000b
0000009c SET @0000000c #000000000000000c
000000a9 SET @0000000d #000000000000000d
000000b6 SET @0000000e #000000000000000e
000000c3 SET @0000000f #000000000000000f
000000d0 SET @00000010 #0000000000000010
000000dd SET @00000011 #0000000000000011
000000ea SET @00000012 #0000000000000012
000000f7 SET @00000013 #0000000000000013
00000104 SET @00000014 #0000000000000014
00000111 SET @00000015 #0000000000000015
0000011e DEC @00000000
00000123 DEC @00000001
00000128 DEC @00000002
0000012d DEC @00000003
00000132 DEC @00000004
00000137 DEC @00000005
0000013c DEC @00000006
00000141 DEC @00000007
00000146 DEC @00000008
0000014b DEC @00000009
00000150 DEC @0000000a
00000155 DEC @0000000b
0000015a DEC @0000000c
0000015f DEC @0000000d
00000164 DEC @0000000e
00000169 DEC @0000000f
0000016e DEC @00000010
00000173 DEC @00000011
00000178 DEC @00000012
0000017d DEC @00000013
00000182 DEC @00000014
00000187 DEC @00000015
0000018c FIN
Machine Code (Test 1):
----------------------
01000000000000000000000000010100000001000000000000000102000000020000000000000001030000000300000000000000
01040000000400000000000000010500000005000000000000000106000000060000000000000001070000000700000000000000
0108000000080000000000000001090000000900000000000000010a0000000a00000000000000010b0000000b00000000000000
010c0000000c00000000000000010d0000000d00000000000000010e0000000e00000000000000010f0000000f00000000000000
01100000001000000000000000011100000011000000000000000112000000120000000000000001130000001300000000000000
01140000001400000000000000011500000015000000000000000500000000050100000005020000000503000000050400000005
050000000506000000050700000005080000000509000000050a000000050b000000050c000000050d000000050e000000050f00
000005100000000511000000051200000005130000000514000000051500000028
Data Dump (Test 1):
-------------------
00000000 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
00000010 01 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00
00000020 03 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00
00000030 05 00 00 00 00 00 00 00 06 00 00 00 00 00 00 00
00000040 07 00 00 00 00 00 00 00 08 00 00 00 00 00 00 00
00000050 09 00 00 00 00 00 00 00 0a 00 00 00 00 00 00 00
00000060 0b 00 00 00 00 00 00 00 0c 00 00 00 00 00 00 00
00000070 0d 00 00 00 00 00 00 00 0e 00 00 00 00 00 00 00
00000080 0f 00 00 00 00 00 00 00 10 00 00 00 00 00 00 00
00000090 11 00 00 00 00 00 00 00 12 00 00 00 00 00 00 00
000000a0 13 00 00 00 00 00 00 00 14 00 00 00 00 00 00 00
000000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Assembly Code (Test 2):
-----------------------
00000000* SET @00000001 #000000000000000e
0000000d SET @00000004 #0000000000000000
0000001a SET @00000007 #000000000000000e
00000027 SET @0000000a #0000000000000000
00000034 SET @0000000d #000000000000000e
00000041 SET @00000010 #0000000000000000
0000004e SET @00000013 #000000000000000e
0000005b SET @00000016 #0000000000000000
00000068 SET @00000019 #000000000000000e
00000075 SET @0000001c #0000000000000000
00000082 SET @0000001f #000000000000000e
0000008f SET @00000022 #0000000000000000
0000009c SET @00000025 #000000000000000e
000000a9 SET @00000028 #0000000000000000
000000b6 SET @0000002b #000000000000000e
000000c3 SET @0000002e #0000000000000000
000000d0 SET @00000031 #000000000000000e
000000dd SET @00000034 #0000000000000000
000000ea SET @00000037 #000000000000000e
000000f7 SET @0000003a #0000000000000000
00000104 SET @0000003d #000000000000000e
00000111 DEC @00000001
00000116 DEC @00000004
0000011b DEC @00000007
00000120 DEC @0000000a
00000125 DEC @0000000d
0000012a DEC @00000010
0000012f DEC @00000013
00000134 DEC @00000016
00000139 DEC @00000019
0000013e DEC @0000001c
00000143 DEC @0000001f
00000148 DEC @00000022
0000014d DEC @00000025
00000152 DEC @00000028
00000157 DEC @0000002b
0000015c DEC @0000002e
00000161 DEC @00000031
00000166 DEC @00000034
0000016b DEC @00000037
00000170 DEC @0000003a
00000175 DEC @0000003d
0000017a FIN
Machine Code (Test 2):
----------------------
01010000000e000000000000000104000000000000000000000001070000000e00000000000000010a0000000000000000000000
010d0000000e000000000000000110000000000000000000000001130000000e0000000000000001160000000000000000000000
01190000000e00000000000000011c0000000000000000000000011f0000000e0000000000000001220000000000000000000000
01250000000e0000000000000001280000000000000000000000012b0000000e00000000000000012e0000000000000000000000
01310000000e000000000000000134000000000000000000000001370000000e00000000000000013a0000000000000000000000
013d0000000e00000000000000050100000005040000000507000000050a000000050d0000000510000000051300000005160000
000519000000051c000000051f000000052200000005250000000528000000052b000000052e0000000531000000053400000005
37000000053a000000053d00000028
Data Dump (Test 2):
-------------------
00000000 00 00 00 00 00 00 00 00 0d 00 00 00 00 00 00 00
00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000020 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
00000030 00 00 00 00 00 00 00 00 0d 00 00 00 00 00 00 00
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000050 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
00000060 00 00 00 00 00 00 00 00 0d 00 00 00 00 00 00 00
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
00000090 00 00 00 00 00 00 00 00 0d 00 00 00 00 00 00 00
000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000b0 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
000000c0 00 00 00 00 00 00 00 00 0d 00 00 00 00 00 00 00
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 0d 00 00 00 00 00 00 00
00000100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000110 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
00000120 00 00 00 00 00 00 00 00 0d 00 00 00 00 00 00 00
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 0d 00 00 00 00 00 00 00
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
00000180 00 00 00 00 00 00 00 00 0d 00 00 00 00 00 00 00
00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001a0 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 0d 00 00 00 00 00 00 00
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 0d 00 00 00 00 00 00 00
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Assembly Code (Test 3):
-----------------------
00000000* SET @00000001 #efcdab8967452301
0000000d SET @00000004 #efcdab8967452301
0000001a SET @00000007 #efcdab8967452301
00000027 SET @0000000a #efcdab8967452301
00000034 SET @0000000d #efcdab8967452301
00000041 SET @00000010 #efcdab8967452301
0000004e SET @00000013 #efcdab8967452301
0000005b SET @00000016 #efcdab8967452301
00000068 SET @00000019 #efcdab8967452301
00000075 SET @0000001c #efcdab8967452301
00000082 SET @0000001f #efcdab8967452301
0000008f SET @00000022 #efcdab8967452301
0000009c SET @00000025 #efcdab8967452301
000000a9 SET @00000028 #efcdab8967452301
000000b6 SET @0000002b #efcdab8967452301
000000c3 SET @0000002e #efcdab8967452301
000000d0 SET @00000031 #efcdab8967452301
000000dd SET @00000034 #efcdab8967452301
000000ea SET @00000037 #efcdab8967452301
000000f7 SET @0000003a #efcdab8967452301
00000104 SET @0000003d #efcdab8967452301
00000111 DEC @00000001
00000116 DEC @00000004
0000011b DEC @00000007
00000120 DEC @0000000a
00000125 DEC @0000000d
0000012a DEC @00000010
0000012f DEC @00000013
00000134 DEC @00000016
00000139 DEC @00000019
0000013e DEC @0000001c
00000143 DEC @0000001f
00000148 DEC @00000022
0000014d DEC @00000025
00000152 DEC @00000028
00000157 DEC @0000002b
0000015c DEC @0000002e
00000161 DEC @00000031
00000166 DEC @00000034
0000016b DEC @00000037
00000170 DEC @0000003a
00000175 DEC @0000003d
0000017a FIN
Machine Code (Test 3):
----------------------
01010000000123456789abcdef01040000000123456789abcdef01070000000123456789abcdef010a0000000123456789abcdef
010d0000000123456789abcdef01100000000123456789abcdef01130000000123456789abcdef01160000000123456789abcdef
01190000000123456789abcdef011c0000000123456789abcdef011f0000000123456789abcdef01220000000123456789abcdef
01250000000123456789abcdef01280000000123456789abcdef012b0000000123456789abcdef012e0000000123456789abcdef
01310000000123456789abcdef01340000000123456789abcdef01370000000123456789abcdef013a0000000123456789abcdef
013d0000000123456789abcdef050100000005040000000507000000050a000000050d0000000510000000051300000005160000
000519000000051c000000051f000000052200000005250000000528000000052b000000052e0000000531000000053400000005
37000000053a000000053d00000028
Data Dump (Test 3):
-------------------
00000000 00 00 00 00 00 00 00 00 00 23 45 67 89 ab cd ef
00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000020 00 23 45 67 89 ab cd ef 00 00 00 00 00 00 00 00
00000030 00 00 00 00 00 00 00 00 00 23 45 67 89 ab cd ef
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000050 00 23 45 67 89 ab cd ef 00 00 00 00 00 00 00 00
00000060 00 00 00 00 00 00 00 00 00 23 45 67 89 ab cd ef
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 00 23 45 67 89 ab cd ef 00 00 00 00 00 00 00 00
00000090 00 00 00 00 00 00 00 00 00 23 45 67 89 ab cd ef
000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000b0 00 23 45 67 89 ab cd ef 00 00 00 00 00 00 00 00
000000c0 00 00 00 00 00 00 00 00 00 23 45 67 89 ab cd ef
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 00 23 45 67 89 ab cd ef 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 00 23 45 67 89 ab cd ef
00000100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000110 00 23 45 67 89 ab cd ef 00 00 00 00 00 00 00 00
00000120 00 00 00 00 00 00 00 00 00 23 45 67 89 ab cd ef
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 00 23 45 67 89 ab cd ef 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 00 23 45 67 89 ab cd ef
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 00 23 45 67 89 ab cd ef 00 00 00 00 00 00 00 00
00000180 00 00 00 00 00 00 00 00 00 23 45 67 89 ab cd ef
00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001a0 00 23 45 67 89 ab cd ef 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 00 23 45 67 89 ab cd ef
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 00 23 45 67 89 ab cd ef 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 00 23 45 67 89 ab cd ef
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Assembly Code (Test 4):
-----------------------
00000000* SET @00000000 #ffffffffffffffff
0000000d SET @00000001 #0000000000000002
0000001a SET @00000002 #ffffffffffffffff
00000027 SET @00000010 #ffffffffffffffff
00000034 SET @00000011 #0000000000000003
00000041 SET @00000012 #ffffffffffffffff
0000004e SET @00000020 #ffffffffffffffff
0000005b SET @00000021 #0000000000000004
00000068 SET @00000022 #ffffffffffffffff
00000075 SET @00000030 #ffffffffffffffff
00000082 SET @00000031 #0000000000000005
0000008f SET @00000032 #ffffffffffffffff
0000009c DEC @00000001
000000a1 DEC @00000001
000000a6 DEC @00000011
000000ab DEC @00000011
000000b0 DEC @00000011
000000b5 DEC @00000021
000000ba DEC @00000021
000000bf DEC @00000021
000000c4 DEC @00000021
000000c9 DEC @00000031
000000ce DEC @00000031
000000d3 DEC @00000031
000000d8 DEC @00000031
000000dd DEC @00000031
000000e2 FIN
Machine Code (Test 4):
----------------------
0100000000ffffffffffffffff010100000002000000000000000102000000ffffffffffffffff0110000000ffffffffffffffff
011100000003000000000000000112000000ffffffffffffffff0120000000ffffffffffffffff01210000000400000000000000
0122000000ffffffffffffffff0130000000ffffffffffffffff013100000005000000000000000132000000ffffffffffffffff
05010000000501000000051100000005110000000511000000052100000005210000000521000000052100000005310000000531
00000005310000000531000000053100000028
Data Dump (Test 4):
-------------------
00000000 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
00000010 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
00000090 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000100 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
00000110 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
00000120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000180 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
00000190 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
000001a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Assembly Code (Test 5):
-----------------------
00000000* SET @0000003d #fffffffffffffffe
0000000d SET @0000003e #0000000000000000
0000001a SET @0000003f #fffffffffffffffe
00000027 DEC @0000003d
0000002c DEC @0000003e
00000031 DEC @0000003f
00000036 DEC @00000040
0000003b FIN
Machine Code (Test 5):
----------------------
013d000000feffffffffffffff013e0000000000000000000000013f000000feffffffffffffff053d000000053e000000053f00
0000054000000028
Runtime Error (Test 5):
-----------------------
error: overflow
Data Dump (Test 5):
-------------------
00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 fd ff ff ff ff ff ff ff
000001f0 ff ff ff ff ff ff ff ff fd ff ff ff ff ff ff ff
Assembly Code (Test 6):
-----------------------
00000000* DEC @ffffffff
00000005 FIN
Machine Code (Test 6):
----------------------
05ffffffff28
Runtime Error (Test 6):
-----------------------
error: overflow
</pre>
</div>
</div>
<div style="visibility: visible;" id="footer">
<p>
<div class="footer-icon"><a target="_blank" href="//ciyam.org/"><img src="logo-gryscl-128.png" /></a></div>
&copy; 2012-2015 CIYAM Developers
</p>
</div>
</body>
</html>

491
docs/at_test_div_dat.html

@ -0,0 +1,491 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>CIYAM AT - Test for AT instruction code 0x09 (DIV_DAT)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="copyright" content="Copyright 2015 CIYAM Developers"/>
<link rel="stylesheet" href="document.css" type="text/css"/>
</head>
<div id="content">
<div id="header">
<div id="appname"><a href="//ciyam.org/at">AT</a></div>
<h3 class="right-top">Test for AT instruction code 0x09 (DIV_DAT)</h3>
</div>
<div id="main">
<div id="text">
<pre>
Test for AT instruction code 0x09 (DIV_DAT)
-------------------------------------------
For each test the assembly and machine code are listed as is the data dump or expected error if test case has
been created specifically to fail (with a data dump if any data was expected to have changed before the error
occurred).
A summary of the tests follows:
Test 1 - Check some basic usage.
Test 2 - Check highest value works.
Test 3 - Check full address range.
Test 4 - Check overwriting works.
Test 5 - Check address range edge fail.
Test 6 - Check divided by zero fails.
Test 7 - Check negative adddress fails.
Assembly Code (Test 1):
-----------------------
00000000* SET @00000000 #000000000000000f
0000000d SET @00000001 #000000000000000e
0000001a SET @00000002 #000000000000000d
00000027 SET @00000003 #000000000000000c
00000034 SET @00000004 #000000000000000b
00000041 SET @00000005 #000000000000000a
0000004e SET @00000006 #0000000000000009
0000005b SET @00000007 #0000000000000008
00000068 SET @00000008 #0000000000000007
00000075 SET @00000009 #0000000000000006
00000082 SET @0000000a #0000000000000005
0000008f SET @0000000b #0000000000000004
0000009c SET @0000000c #0000000000000003
000000a9 SET @0000000d #0000000000000002
000000b6 SET @0000000e #0000000000000001
000000c3 DIV @00000000 $00000001
000000cc DIV @00000001 $00000002
000000d5 DIV @00000002 $00000003
000000de DIV @00000003 $00000004
000000e7 DIV @00000004 $00000005
000000f0 DIV @00000005 $00000006
000000f9 DIV @00000006 $00000007
00000102 DIV @00000007 $00000008
0000010b DIV @00000008 $00000009
00000114 DIV @00000009 $0000000a
0000011d DIV @0000000a $0000000b
00000126 DIV @0000000b $0000000c
0000012f DIV @0000000c $0000000d
00000138 DIV @0000000d $0000000e
00000141 FIN
Machine Code (Test 1):
----------------------
01000000000f0000000000000001010000000e0000000000000001020000000d0000000000000001030000000c00000000000000
01040000000b0000000000000001050000000a000000000000000106000000090000000000000001070000000800000000000000
0108000000070000000000000001090000000600000000000000010a0000000500000000000000010b0000000400000000000000
010c0000000300000000000000010d0000000200000000000000010e000000010000000000000009000000000100000009010000
00020000000902000000030000000903000000040000000904000000050000000905000000060000000906000000070000000907
0000000800000009080000000900000009090000000a000000090a0000000b000000090b0000000c000000090c0000000d000000
090d0000000e00000028
Data Dump (Test 1):
-------------------
00000000 01 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00
00000010 01 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00
00000020 01 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00
00000030 01 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00
00000040 01 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00
00000050 01 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00
00000060 01 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00
00000070 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Assembly Code (Test 2):
-----------------------
00000000* SET @00000001 #ffffffffffffffff
0000000d SET @00000004 #ffffffffffffffff
0000001a SET @00000007 #0000000100000000
00000027 SET @0000000a #ffffffffffffffff
00000034 SET @0000000d #ffffffffffffffff
00000041 SET @00000010 #0000000100000000
0000004e SET @00000013 #ffffffffffffffff
0000005b SET @00000016 #ffffffffffffffff
00000068 SET @00000019 #0000000100000000
00000075 SET @0000001c #ffffffffffffffff
00000082 SET @0000001f #ffffffffffffffff
0000008f SET @00000022 #0000000100000000
0000009c SET @00000025 #ffffffffffffffff
000000a9 SET @00000028 #ffffffffffffffff
000000b6 SET @0000002b #0000000100000000
000000c3 SET @0000002e #ffffffffffffffff
000000d0 SET @00000031 #ffffffffffffffff
000000dd SET @00000034 #0000000100000000
000000ea SET @00000037 #ffffffffffffffff
000000f7 SET @0000003a #ffffffffffffffff
00000104 SET @0000003d #0000000100000000
00000111 DIV @00000001 $00000004
0000011a DIV @00000004 $00000007
00000123 DIV @00000007 $0000000a
0000012c DIV @0000000a $0000000d
00000135 DIV @0000000d $00000010
0000013e DIV @00000010 $00000013
00000147 DIV @00000013 $00000016
00000150 DIV @00000016 $00000019
00000159 DIV @00000019 $0000001c
00000162 DIV @0000001c $0000001f
0000016b DIV @0000001f $00000022
00000174 DIV @00000022 $00000025
0000017d DIV @00000025 $00000028
00000186 DIV @00000028 $0000002b
0000018f DIV @0000002b $0000002e
00000198 DIV @0000002e $00000031
000001a1 DIV @00000031 $00000034
000001aa DIV @00000034 $00000037
000001b3 DIV @00000037 $0000003a
000001bc DIV @0000003a $0000003d
000001c5 DIV @0000003d $0000003d
000001ce FIN
Machine Code (Test 2):
----------------------
0101000000ffffffffffffffff0104000000ffffffffffffffff01070000000000000001000000010a000000ffffffffffffffff
010d000000ffffffffffffffff011000000000000000010000000113000000ffffffffffffffff0116000000ffffffffffffffff
01190000000000000001000000011c000000ffffffffffffffff011f000000ffffffffffffffff01220000000000000001000000
0125000000ffffffffffffffff0128000000ffffffffffffffff012b0000000000000001000000012e000000ffffffffffffffff
0131000000ffffffffffffffff013400000000000000010000000137000000ffffffffffffffff013a000000ffffffffffffffff
013d000000000000000100000009010000000400000009040000000700000009070000000a000000090a0000000d000000090d00
00001000000009100000001300000009130000001600000009160000001900000009190000001c000000091c0000001f00000009
1f0000002200000009220000002500000009250000002800000009280000002b000000092b0000002e000000092e000000310000
0009310000003400000009340000003700000009370000003a000000093a0000003d000000093d0000003d00000028
Data Dump (Test 2):
-------------------
00000000 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00
00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000030 00 00 00 00 00 00 00 00 00 00 00 00 ff ff ff ff
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000050 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 00 00 00 00 ff ff ff ff 00 00 00 00 00 00 00 00
00000090 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00
000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000c0 00 00 00 00 00 00 00 00 00 00 00 00 ff ff ff ff
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000110 00 00 00 00 ff ff ff ff 00 00 00 00 00 00 00 00
00000120 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 00 00 00 00 ff ff ff ff
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001a0 00 00 00 00 ff ff ff ff 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Assembly Code (Test 3):
-----------------------
00000000* SET @00000001 #efcdab8967452301
0000000d SET @00000004 #0000000100000000
0000001a SET @00000007 #efcdab8967452301
00000027 SET @0000000a #0000000100000000
00000034 SET @0000000d #efcdab8967452301
00000041 SET @00000010 #0000000100000000
0000004e SET @00000013 #efcdab8967452301
0000005b SET @00000016 #0000000100000000
00000068 SET @00000019 #efcdab8967452301
00000075 SET @0000001c #0000000100000000
00000082 SET @0000001f #efcdab8967452301
0000008f SET @00000022 #0000000100000000
0000009c SET @00000025 #efcdab8967452301
000000a9 SET @00000028 #0000000100000000
000000b6 SET @0000002b #efcdab8967452301
000000c3 SET @0000002e #0000000100000000
000000d0 SET @00000031 #efcdab8967452301
000000dd SET @00000034 #0000000100000000
000000ea SET @00000037 #efcdab8967452301
000000f7 SET @0000003a #0000000100000000
00000104 SET @0000003d #efcdab8967452301
00000111 DIV @00000001 $00000004
0000011a DIV @00000004 $00000007
00000123 DIV @00000007 $0000000a
0000012c DIV @0000000a $0000000d
00000135 DIV @0000000d $00000010
0000013e DIV @00000010 $00000013
00000147 DIV @00000013 $00000016
00000150 DIV @00000016 $00000019
00000159 DIV @00000019 $0000001c
00000162 DIV @0000001c $0000001f
0000016b DIV @0000001f $00000022
00000174 DIV @00000022 $00000025
0000017d DIV @00000025 $00000028
00000186 DIV @00000028 $0000002b
0000018f DIV @0000002b $0000002e
00000198 DIV @0000002e $00000031
000001a1 DIV @00000031 $00000034
000001aa DIV @00000034 $00000037
000001b3 DIV @00000037 $0000003a
000001bc DIV @0000003a $0000003d
000001c5 DIV @0000003d $0000003d
000001ce FIN
Machine Code (Test 3):
----------------------
01010000000123456789abcdef0104000000000000000100000001070000000123456789abcdef010a0000000000000001000000
010d0000000123456789abcdef0110000000000000000100000001130000000123456789abcdef01160000000000000001000000
01190000000123456789abcdef011c0000000000000001000000011f0000000123456789abcdef01220000000000000001000000
01250000000123456789abcdef01280000000000000001000000012b0000000123456789abcdef012e0000000000000001000000
01310000000123456789abcdef0134000000000000000100000001370000000123456789abcdef013a0000000000000001000000
013d0000000123456789abcdef09010000000400000009040000000700000009070000000a000000090a0000000d000000090d00
00001000000009100000001300000009130000001600000009160000001900000009190000001c000000091c0000001f00000009
1f0000002200000009220000002500000009250000002800000009280000002b000000092b0000002e000000092e000000310000
0009310000003400000009340000003700000009370000003a000000093a0000003d000000093d0000003d00000028
Data Dump (Test 3):
-------------------
00000000 00 00 00 00 00 00 00 00 8a ab cd ef ff ff ff ff
00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000030 00 00 00 00 00 00 00 00 8a ab cd ef ff ff ff ff
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000060 00 00 00 00 00 00 00 00 8a ab cd ef ff ff ff ff
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000090 00 00 00 00 00 00 00 00 8a ab cd ef ff ff ff ff
000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000c0 00 00 00 00 00 00 00 00 8a ab cd ef ff ff ff ff
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 8a ab cd ef ff ff ff ff
00000100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000120 00 00 00 00 00 00 00 00 8a ab cd ef ff ff ff ff
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 8a ab cd ef ff ff ff ff
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000180 00 00 00 00 00 00 00 00 8a ab cd ef ff ff ff ff
00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 8a ab cd ef ff ff ff ff
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Assembly Code (Test 4):
-----------------------
00000000* SET @00000000 #9999999900000000
0000000d SET @00000001 #0000000000010000
0000001a SET @00000002 #0000000099999999
00000027 SET @00000010 #9999999900000000
00000034 SET @00000011 #0000000000001000
00000041 SET @00000012 #0000000009999999
0000004e SET @00000020 #9999999900000000
0000005b SET @00000021 #0000000000000100
00000068 SET @00000022 #0000000099999999
00000075 SET @00000030 #9999999900000000
00000082 SET @00000031 #0000000000000010
0000008f SET @00000032 #0000099999999000
0000009c DIV @00000000 $00000001
000000a5 DIV @00000000 $00000001
000000ae DIV @00000010 $00000011
000000b7 DIV @00000010 $00000011
000000c0 DIV @00000010 $00000011
000000c9 DIV @00000020 $00000021
000000d2 DIV @00000020 $00000021
000000db DIV @00000020 $00000021
000000e4 DIV @00000020 $00000021
000000ed DIV @00000030 $00000031
000000f6 DIV @00000030 $00000031
000000ff DIV @00000030 $00000031
00000108 DIV @00000030 $00000031
00000111 DIV @00000030 $00000031
0000011a FIN
Machine Code (Test 4):
----------------------
01000000000000000099999999010100000000000100000000000102000000999999990000000001100000000000000099999999
01110000000010000000000000011200000099999909000000000120000000000000009999999901210000000001000000000000
01220000009999999900000000013000000000000000999999990131000000100000000000000001320000000090999999090000
09000000000100000009000000000100000009100000001100000009100000001100000009100000001100000009200000002100
00000920000000210000000920000000210000000920000000210000000930000000310000000930000000310000000930000000
3100000009300000003100000009300000003100000028
Data Dump (Test 4):
-------------------
00000000 99 99 99 99 ff ff ff ff 00 00 01 00 00 00 00 00
00000010 99 99 99 99 00 00 00 00 00 00 00 00 00 00 00 00
00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 9a 99 99 f9 ff ff ff ff 00 10 00 00 00 00 00 00
00000090 99 99 99 09 00 00 00 00 00 00 00 00 00 00 00 00
000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000100 99 99 99 99 ff ff ff ff 00 01 00 00 00 00 00 00
00000110 99 99 99 99 00 00 00 00 00 00 00 00 00 00 00 00
00000120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000180 00 90 99 99 99 f9 ff ff 10 00 00 00 00 00 00 00
00000190 00 90 99 99 99 09 00 00 00 00 00 00 00 00 00 00
000001a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Assembly Code (Test 5):
-----------------------
00000000* SET @0000003e #ffffffffffffffff
0000000d SET @0000003f #ffffffffffffffff
0000001a DIV @0000003e $0000003f
00000023 DIV @0000003f $00000040
0000002c FIN
Machine Code (Test 5):
----------------------
013e000000ffffffffffffffff013f000000ffffffffffffffff093e0000003f000000093f0000004000000028
Runtime Error (Test 5):
-----------------------
error: overflow
Data Dump (Test 5):
-------------------
00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001f0 01 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff
Assembly Code (Test 6):
-----------------------
00000000* SET @0000003e #1111111111111111
0000000d SET @0000003f #0000000000000000
0000001a DIV @0000003e $0000003f
00000023 FIN
Machine Code (Test 6):
----------------------
013e0000001111111111111111013f0000000000000000000000093e0000003f00000028
Runtime Error (Test 6):
-----------------------
error: invalid code
Assembly Code (Test 7):
-----------------------
00000000* DIV @ffffffff @ffffffff
00000009 FIN
Machine Code (Test 7):
----------------------
09ffffffffffffffff28
Runtime Error (Test 7):
-----------------------
error: overflow
</pre>
</div>
</div>
<div style="visibility: visible;" id="footer">
<p>
<div class="footer-icon"><a target="_blank" href="//ciyam.org/"><img src="logo-gryscl-128.png" /></a></div>
&copy; 2012-2015 CIYAM Developers
</p>
</div>
</body>
</html>

97
docs/at_test_ext_fun.html

@ -0,0 +1,97 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>CIYAM AT - Test for AT instruction code 0x32 (EXT_FUN)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="copyright" content="Copyright 2015 CIYAM Developers"/>
<link rel="stylesheet" href="document.css" type="text/css"/>
</head>
<div id="content">
<div id="header">
<div id="appname"><a href="//ciyam.org/at">AT</a></div>
<h3 class="right-top">Test for AT instruction code 0x32 (EXT_FUN)</h3>
</div>
<div id="main">
<div id="text">
<pre>
Test for AT instruction code 0x32 (EXT_FUN)
-------------------------------------------
For each test the assembly and machine code are listed as is the data dump or expected error if test case has
been created specifically to fail (with a data dump if any data was expected to have changed before the error
occurred).
A summary of the tests follows:
Test 1 - Check function 1 and 2.
Test 2 - Check function 3.
Test 2 - Check function 4.
Assembly Code (Test 1):
-----------------------
00000000* FUN 2
00000003 FUN 1
00000006 FIN
Machine Code (Test 1):
----------------------
32020032010028
Runtime Result (Test 1):
-----------------------
func: 1 rc: 0000000000000001
Assembly Code (Test 2):
-----------------------
00000000* FUN 3
00000003 FIN
Machine Code (Test 2):
----------------------
32030028
Runtime Result (Test 2):
-----------------------
func: 3 rc: 000000000000000a
Assembly Code (Test 4):
-----------------------
00000000* FUN 4
00000003 FIN
Machine Code (Test 4):
----------------------
32040028
Runtime Result (Test 4):
-----------------------
func: 4 rc: 0000000000000004
</pre>
</div>
</div>
<div style="visibility: visible;" id="footer">
<p>
<div class="footer-icon"><a target="_blank" href="//ciyam.org/"><img src="logo-gryscl-128.png" /></a></div>
&copy; 2012-2015 CIYAM Developers
</p>
</div>
</body>
</html>

99
docs/at_test_ext_fun_dat.html

@ -0,0 +1,99 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>CIYAM AT - Test for AT instruction code 0x33 (EXT_FUN_DAT)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="copyright" content="Copyright 2015 CIYAM Developers"/>
<link rel="stylesheet" href="document.css" type="text/css"/>
</head>
<div id="content">
<div id="header">
<div id="appname"><a href="//ciyam.org/at">AT</a></div>
<h3 class="right-top">Test for AT instruction code 0x33 (EXT_FUN_DAT)</h3>
</div>
<div id="main">
<div id="text">
<pre>
Test for AT instruction code 0x33 (EXT_FUN_DAT)
-----------------------------------------------
For each test the assembly and machine code are listed as is the data dump or expected error if test case has
been created specifically to fail (with a data dump if any data was expected to have changed before the error
occurred).
A summary of the tests follows:
Test 1 - Check function 1.
Test 2 - Check function 2.
Test 3 - Check function 3.
Assembly Code (Test 1):
-----------------------
00000000* SET @00000001 #00000000000000ff
0000000d FUN 1 $00000001
00000014 FIN
Machine Code (Test 1):
----------------------
0101000000ff000000000000003301000100000028
Runtime Result (Test 1):
-----------------------
255
Assembly Code (Test 2):
-----------------------
00000000* SET @00000001 #00000000000000ff
0000000d FUN 2 $00000001
00000014 FIN
Machine Code (Test 2):
----------------------
0101000000ff000000000000003302000100000028
Runtime Result (Test 2):
-----------------------
func1: 2 with 255 rc: 00000000000001fe
Assembly Code (Test 3):
-----------------------
00000000* SET @00000001 #00000000000000ff
0000000d FUN 3 $00000001
00000014 FIN
Machine Code (Test 3):
----------------------
0101000000ff000000000000003303000100000028
Runtime Result (Test 3):
-----------------------
func1: 3 with 255 rc: 000000000000007f
</pre>
</div>
</div>
<div style="visibility: visible;" id="footer">
<p>
<div class="footer-icon"><a target="_blank" href="//ciyam.org/"><img src="logo-gryscl-128.png" /></a></div>
&copy; 2012-2015 CIYAM Developers
</p>
</div>
</body>
</html>

102
docs/at_test_ext_fun_dat_2.html

@ -0,0 +1,102 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>CIYAM AT - Test for AT instruction code 0x34 (EXT_FUN_DAT_2)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="copyright" content="Copyright 2015 CIYAM Developers"/>
<link rel="stylesheet" href="document.css" type="text/css"/>
</head>
<div id="content">
<div id="header">
<div id="appname"><a href="//ciyam.org/at">AT</a></div>
<h3 class="right-top">Test for AT instruction code 0x34 (EXT_FUN_DAT_2)</h3>
</div>
<div id="main">
<div id="text">
<pre>
Test for AT instruction code 0x34 (EXT_FUN_DAT_2)
-------------------------------------------------
For each test the assembly and machine code are listed as is the data dump or expected error if test case has
been created specifically to fail (with a data dump if any data was expected to have changed before the error
occurred).
A summary of the tests follows:
Test 1 - Check function 2.
Test 2 - Check function 3.
Test 2 - Check function 4.
Assembly Code (Test 1):
-----------------------
00000000* SET @00000000 #0000000000000004
0000000d SET @00000001 #0000000000000003
0000001a FUN 2 $00000000 $00000001
00000025 FIN
Machine Code (Test 1):
----------------------
0100000000040000000000000001010000000300000000000000340200000000000100000028
Runtime Result (Test 1):
-----------------------
func2: 2 with 4 and 3 rc: 000000000000000c
Assembly Code (Test 2):
-----------------------
00000000* SET @00000000 #0000000000000006
0000000d SET @00000001 #0000000000000003
0000001a FUN 3 $00000000 $00000001
00000025 FIN
Machine Code (Test 2):
----------------------
0100000000060000000000000001010000000300000000000000340300000000000100000028
Runtime Result (Test 2):
-----------------------
func2: 3 with 6 and 3 rc: 0000000000000002
Assembly Code (Test 3):
-----------------------
00000000* SET @00000000 #0000000000000006
0000000d SET @00000001 #0000000000000003
0000001a FUN 4 $00000000 $00000001
00000025 FIN
Machine Code (Test 3):
----------------------
0100000000060000000000000001010000000300000000000000340400000000000100000028
Runtime Result (Test 3):
-----------------------
func2: 4 with 6 and 3 rc: 0000000000000009
</pre>
</div>
</div>
<div style="visibility: visible;" id="footer">
<p>
<div class="footer-icon"><a target="_blank" href="//ciyam.org/"><img src="logo-gryscl-128.png" /></a></div>
&copy; 2012-2015 CIYAM Developers
</p>
</div>
</body>
</html>

148
docs/at_test_ext_fun_ret.html

@ -0,0 +1,148 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>CIYAM AT - Test for AT instruction code 0x35 (EXT_FUN_RET)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="copyright" content="Copyright 2015 CIYAM Developers"/>
<link rel="stylesheet" href="document.css" type="text/css"/>
</head>
<div id="content">
<div id="header">
<div id="appname"><a href="//ciyam.org/at">AT</a></div>
<h3 class="right-top">Test for AT instruction code 0x35 (EXT_FUN_RET)</h3>
</div>
<div id="main">
<div id="text">
<pre>
Test for AT instruction code 0x35 (EXT_FUN_RET)
-----------------------------------------------
For each test the assembly and machine code are listed as is the data dump or expected error if test case has
been created specifically to fail (with a data dump if any data was expected to have changed before the error
occurred).
A summary of the tests follows:
Test 1 - Check some basic usage.
Test 2 - Check it works with loop.
Assembly Code (Test 1):
-----------------------
00000000* FUN @00000004 4
00000007 FUN @00000003 3
0000000e FUN @00000002 2
00000015 FUN @00000001 1
0000001c FIN
Machine Code (Test 1):
----------------------
3504000400000035030003000000350200020000003501000100000028
Data Dump (Test 1):
-----------------------
00000000 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00
00000010 01 00 00 00 00 00 00 00 0a 00 00 00 00 00 00 00
00000020 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Assembly Code (Test 2):
-----------------------
00000000* SET @00000000 #0000000000000000
0000000d SET @00000001 #ffffffffffffffff
0000001a FUN @00000001 2
00000021 INC @00000000
00000026 BNZ $00000001 :0000001a
0000002c FIN
Machine Code (Test 2):
----------------------
010000000000000000000000000101000000ffffffffffffffff3502000100000004000000001e01000000f428
Data Dump (Test 2):
-------------------
00000000 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
</pre>
</div>
</div>
<div style="visibility: visible;" id="footer">
<p>
<div class="footer-icon"><a target="_blank" href="//ciyam.org/"><img src="logo-gryscl-128.png" /></a></div>
&copy; 2012-2015 CIYAM Developers
</p>
</div>
</body>
</html>

153
docs/at_test_ext_fun_ret_dat.html

@ -0,0 +1,153 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>CIYAM AT - Test for AT instruction code 0x36 (EXT_FUN_RET_DAT)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="copyright" content="Copyright 2015 CIYAM Developers"/>
<link rel="stylesheet" href="document.css" type="text/css"/>
</head>
<div id="content">
<div id="header">
<div id="appname"><a href="//ciyam.org/at">AT</a></div>
<h3 class="right-top">Test for AT instruction code 0x36 (EXT_FUN_RET_DAT)</h3>
</div>
<div id="main">
<div id="text">
<pre>
Test for AT instruction code 0x36 (EXT_FUN_RET_DAT)
---------------------------------------------------
For each test the assembly and machine code are listed as is the data dump or expected error if test case has
been created specifically to fail (with a data dump if any data was expected to have changed before the error
occurred).
A summary of the tests follows:
Test 1 - Check some basic usage.
Test 2 - Check it works with loop.
Assembly Code (Test 1):
-----------------------
00000000* SET @00000001 #000000000000000f
0000000d FUN @00000000 2 $00000001
00000018 SET @00000003 #0000000000000008
00000025 FUN @00000002 3 $00000003
00000030 FIN
Machine Code and Function Setting (Test 1):
----------------------
01010000000f00000000000000360200000000000100000001030000000800000000000000360300020000000300000028
Data Dump (Test 1):
-----------------------
00000000 1e 00 00 00 00 00 00 00 0f 00 00 00 00 00 00 00
00000010 04 00 00 00 00 00 00 00 08 00 00 00 00 00 00 00
00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Assembly Code (Test 2):
-----------------------
00000000* SET @00000001 #0000000000000001
0000000d SET @00000002 #0fffffffffffffff
0000001a FUN @00000001 2 $00000001
00000025 INC @00000000
0000002a BLT $00000001 $00000002 :0000001a
00000034 FIN
Machine Code and Function Setting (Test 2):
----------------------
010100000001000000000000000102000000ffffffffffffff0f36020001000000010000000400000000200100000002000000f028
Data Dump (Test 2):
-----------------------
00000000 21 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00
00000010 ff ff ff ff ff ff ff 0f 00 00 00 00 00 00 00 00
00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Runtime Result (Test 2):
-----------------------
stopped - zero balance
</pre>
</div>
</div>
<div style="visibility: visible;" id="footer">
<p>
<div class="footer-icon"><a target="_blank" href="//ciyam.org/"><img src="logo-gryscl-128.png" /></a></div>
&copy; 2012-2015 CIYAM Developers
</p>
</div>
</body>
</html>

157
docs/at_test_ext_fun_ret_dat_2.html

@ -0,0 +1,157 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>CIYAM AT - Test for AT instruction code 0x37 (EXT_FUN_RET_DAT_2)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="copyright" content="Copyright 2015 CIYAM Developers"/>
<link rel="stylesheet" href="document.css" type="text/css"/>
</head>
<div id="content">
<div id="header">
<div id="appname"><a href="//ciyam.org/at">AT</a></div>
<h3 class="right-top">Test for AT instruction code 0x37 (EXT_FUN_RET_DAT_2)</h3>
</div>
<div id="main">
<div id="text">
<pre>
Test for AT instruction code 0x37 (EXT_FUN_RET_DAT_2)
-----------------------------------------------------
For each test the assembly and machine code are listed as is the data dump or expected error if test case has
been created specifically to fail (with a data dump if any data was expected to have changed before the error
occurred).
A summary of the tests follows:
Test 1 - Check some basic usage.
Test 2 - Check it works with loop.
Assembly Code (Test 1):
-----------------------
00000000* SET @00000000 #0000000000000004
0000000d SET @00000001 #0000000000000003
0000001a FUN @00000002 2 $00000000 $00000001
00000029 FUN @00000003 3 $00000000 $00000001
00000038 FUN @00000004 4 $00000000 $00000001
00000047 FIN
Machine Code (Test 1):
----------------------
01000000000400000000000000010100000003000000000000003702000200000000000000010000003703000300000000000000
0100000037040004000000000000000100000028
Data Dump (Test 1):
--------------------
00000000 04 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00
00000010 0c 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00
00000020 07 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Assembly Code (Test 2):
-----------------------
00000000* SET @00000000 #0000000000000004
0000000d SET @00000001 #0000000000000003
0000001a SET @00000002 #0fffffffffffffff
00000027 FUN @00000001 4 $00000000 $00000001
00000036 INC @00000003
0000003b BLT $00000001 $00000002 :00000027
00000045 FIN
Machine Code (Test 2):
----------------------
01000000000400000000000000010100000003000000000000000102000000ffffffffffffff0f37040001000000000000000100
00000403000000200100000002000000ec28
Data Dump (Test 2):
-------------------
00000000 04 00 00 00 00 00 00 00 87 00 00 00 00 00 00 00
00000010 ff ff ff ff ff ff ff 0f 20 00 00 00 00 00 00 00
00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Runtime Result (Test 2):
-----------------------
stopped - zero balance
</pre>
</div>
</div>
<div style="visibility: visible;" id="footer">
<p>
<div class="footer-icon"><a target="_blank" href="//ciyam.org/"><img src="logo-gryscl-128.png" /></a></div>
&copy; 2012-2015 CIYAM Developers
</p>
</div>
</body>
</html>

145
docs/at_test_fin_imd.html

@ -0,0 +1,145 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>CIYAM AT - Test for AT instruction code 0x28 (FIN_IMD)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="copyright" content="Copyright 2015 CIYAM Developers"/>
<link rel="stylesheet" href="document.css" type="text/css"/>
</head>
<div id="content">
<div id="header">
<div id="appname"><a href="//ciyam.org/at">AT</a></div>
<h3 class="right-top">Test for AT instruction code 0x28 (FIN_IMD)</h3>
</div>
<div id="main">
<div id="text">
<pre>
Test for AT instruction code 0x28 (FIN_IMD)
-------------------------------------------
For each test the assembly and machine code are listed as is the data dump or expected error if test case has
been created specifically to fail (with a data dump if any data was expected to have changed before the error
occurred).
A summary of the tests follows:
Test 1 - Check it stops.
Test 2 - FIN_IMD first command.
Assembly Code (Test 1):
-----------------------
00000000* SET @00000000 #0000000011111111
0000000d PCS
0000000e FIN
0000000f SET @00000000 #2222222200000000
0000001c FIN
Machine Code (Test 1):
----------------------
0100000000111111110000000030280100000000000000002222222228
Data Dump (Test 1):
-------------------
00000000 11 11 11 11 00 00 00 00 00 00 00 00 00 00 00 00
00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Assembly Code (Test 2):
-----------------------
00000000* FIN
00000001 SET @00000000 #0000000011111111
0000000e FIN
Machine Code (Test 2):
----------------------
280100000000111111110000000028
Data Dump (Test 2):
-------------------
00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
</pre>
</div>
</div>
<div style="visibility: visible;" id="footer">
<p>
<div class="footer-icon"><a target="_blank" href="//ciyam.org/"><img src="logo-gryscl-128.png" /></a></div>
&copy; 2012-2015 CIYAM Developers
</p>
</div>
</body>
</html>

115
docs/at_test_fiz_dat.html

@ -0,0 +1,115 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>CIYAM AT - Test for AT instruction code 0x26 (FIZ_DAT)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="copyright" content="Copyright 2015 CIYAM Developers"/>
<link rel="stylesheet" href="document.css" type="text/css"/>
</head>
<div id="content">
<div id="header">
<div id="appname"><a href="//ciyam.org/at">AT</a></div>
<h3 class="right-top">Test for AT instruction code 0x26 (FIZ_DAT)</h3>
</div>
<div id="main">
<div id="text">
<pre>
Test for AT instruction code 0x26 (FIZ_DAT)
-------------------------------------------
For each test the assembly and machine code are listed as is the data dump or expected error if test case has
been created specifically to fail (with a data dump if any data was expected to have changed before the error
occurred).
A summary of the tests follows:
Test 1 - Basic usage.
Test 2 - Jump to not existing address.
Assembly Code (Test 1):
-----------------------
00000000* SET @00000000 #0000000011111111
0000000d FIZ $00000000
00000012 SET @00000000 #0000000000000000
0000001f FIZ $00000000
00000024 SET @00000000 #0000000011111111
00000031 FIN
Machine Code (Test 1):
----------------------
0100000000111111110000000026000000000100000000000000000000000026000000000100000000111111110000000028
Data Dump (Test 1):
-------------------
00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Assembly Code (Test 2):
-----------------------
00000000* SET @00000000 #0000000011111111
0000000d FIZ $11111111
00000012 FIN
Machine Code (Test 2):
----------------------
01000000001111111100000000261111111128
Runtime Error (Test 2):
-----------------------
error: overflow
</pre>
</div>
</div>
<div style="visibility: visible;" id="footer">
<p>
<div class="footer-icon"><a target="_blank" href="//ciyam.org/"><img src="logo-gryscl-128.png" /></a></div>
&copy; 2012-2015 CIYAM Developers
</p>
</div>
</body>
</html>

492
docs/at_test_inc_dat.html

@ -0,0 +1,492 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>CIYAM AT - Test for AT instruction code 0x04 (INC_DAT)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="copyright" content="Copyright 2015 CIYAM Developers"/>
<link rel="stylesheet" href="document.css" type="text/css"/>
</head>
<div id="content">
<div id="header">
<div id="appname"><a href="//ciyam.org/at">AT</a></div>
<h3 class="right-top">Test for AT instruction code 0x04 (INC_DAT)</h3>
</div>
<div id="main">
<div id="text">
<pre>
Test for AT instruction code 0x04 (INC_DAT)
-------------------------------------------
For each test the assembly and machine code are listed as is the data dump or expected error if test case has
been created specifically to fail (with a data dump if any data was expected to have changed before the error
occurred).
A summary of the tests follows:
Test 1 - Check some basic usage.
Test 2 - Check highest value works.
Test 3 - Check full address range.
Test 4 - Check overwriting works.
Test 5 - Check address range edge fail.
Test 6 - Check negative adddress fails.
Assembly Code (Test 1):
-----------------------
00000000* SET @00000000 #0000000000000000
0000000d SET @00000001 #0000000000000001
0000001a SET @00000002 #0000000000000002
00000027 SET @00000003 #0000000000000003
00000034 SET @00000004 #0000000000000004
00000041 SET @00000005 #0000000000000005
0000004e SET @00000006 #0000000000000006
0000005b SET @00000007 #0000000000000007
00000068 SET @00000008 #0000000000000008
00000075 SET @00000009 #0000000000000009
00000082 SET @0000000a #000000000000000a
0000008f SET @0000000b #000000000000000b
0000009c SET @0000000c #000000000000000c
000000a9 SET @0000000d #000000000000000d
000000b6 SET @0000000e #000000000000000e
000000c3 SET @0000000f #000000000000000f
000000d0 SET @00000010 #0000000000000010
000000dd SET @00000011 #0000000000000011
000000ea SET @00000012 #0000000000000012
000000f7 SET @00000013 #0000000000000013
00000104 SET @00000014 #0000000000000014
00000111 SET @00000015 #0000000000000015
0000011e INC @00000000
00000123 INC @00000001
00000128 INC @00000002
0000012d INC @00000003
00000132 INC @00000004
00000137 INC @00000005
0000013c INC @00000006
00000141 INC @00000007
00000146 INC @00000008
0000014b INC @00000009
00000150 INC @0000000a
00000155 INC @0000000b
0000015a INC @0000000c
0000015f INC @0000000d
00000164 INC @0000000e
00000169 INC @0000000f
0000016e INC @00000010
00000173 INC @00000011
00000178 INC @00000012
0000017d INC @00000013
00000182 INC @00000014
00000187 INC @00000015
0000018c FIN
Machine Code (Test 1):
----------------------
01000000000000000000000000010100000001000000000000000102000000020000000000000001030000000300000000000000
01040000000400000000000000010500000005000000000000000106000000060000000000000001070000000700000000000000
0108000000080000000000000001090000000900000000000000010a0000000a00000000000000010b0000000b00000000000000
010c0000000c00000000000000010d0000000d00000000000000010e0000000e00000000000000010f0000000f00000000000000
01100000001000000000000000011100000011000000000000000112000000120000000000000001130000001300000000000000
01140000001400000000000000011500000015000000000000000400000000040100000004020000000403000000040400000004
050000000406000000040700000004080000000409000000040a000000040b000000040c000000040d000000040e000000040f00
000004100000000411000000041200000004130000000414000000041500000028
Data Dump (Test 1):
-------------------
00000000 01 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00
00000010 03 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00
00000020 05 00 00 00 00 00 00 00 06 00 00 00 00 00 00 00
00000030 07 00 00 00 00 00 00 00 08 00 00 00 00 00 00 00
00000040 09 00 00 00 00 00 00 00 0a 00 00 00 00 00 00 00
00000050 0b 00 00 00 00 00 00 00 0c 00 00 00 00 00 00 00
00000060 0d 00 00 00 00 00 00 00 0e 00 00 00 00 00 00 00
00000070 0f 00 00 00 00 00 00 00 10 00 00 00 00 00 00 00
00000080 11 00 00 00 00 00 00 00 12 00 00 00 00 00 00 00
00000090 13 00 00 00 00 00 00 00 14 00 00 00 00 00 00 00
000000a0 15 00 00 00 00 00 00 00 16 00 00 00 00 00 00 00
000000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Assembly Code (Test 2):
-----------------------
00000000* SET @00000001 #fffffffffffffffe
0000000d SET @00000004 #ffffffffffffffff
0000001a SET @00000007 #fffffffffffffffe
00000027 SET @0000000a #ffffffffffffffff
00000034 SET @0000000d #fffffffffffffffe
00000041 SET @00000010 #ffffffffffffffff
0000004e SET @00000013 #fffffffffffffffe
0000005b SET @00000016 #ffffffffffffffff
00000068 SET @00000019 #fffffffffffffffe
00000075 SET @0000001c #ffffffffffffffff
00000082 SET @0000001f #fffffffffffffffe
0000008f SET @00000022 #ffffffffffffffff
0000009c SET @00000025 #fffffffffffffffe
000000a9 SET @00000028 #ffffffffffffffff
000000b6 SET @0000002b #fffffffffffffffe
000000c3 SET @0000002e #ffffffffffffffff
000000d0 SET @00000031 #fffffffffffffffe
000000dd SET @00000034 #ffffffffffffffff
000000ea SET @00000037 #fffffffffffffffe
000000f7 SET @0000003a #ffffffffffffffff
00000104 SET @0000003d #fffffffffffffffe
00000111 INC @00000001
00000116 INC @00000004
0000011b INC @00000007
00000120 INC @0000000a
00000125 INC @0000000d
0000012a INC @00000010
0000012f INC @00000013
00000134 INC @00000016
00000139 INC @00000019
0000013e INC @0000001c
00000143 INC @0000001f
00000148 INC @00000022
0000014d INC @00000025
00000152 INC @00000028
00000157 INC @0000002b
0000015c INC @0000002e
00000161 INC @00000031
00000166 INC @00000034
0000016b INC @00000037
00000170 INC @0000003a
00000175 INC @0000003d
0000017a FIN
Machine Code (Test 2):
----------------------
0101000000feffffffffffffff0104000000ffffffffffffffff0107000000feffffffffffffff010a000000ffffffffffffffff
010d000000feffffffffffffff0110000000ffffffffffffffff0113000000feffffffffffffff0116000000ffffffffffffffff
0119000000feffffffffffffff011c000000ffffffffffffffff011f000000feffffffffffffff0122000000ffffffffffffffff
0125000000feffffffffffffff0128000000ffffffffffffffff012b000000feffffffffffffff012e000000ffffffffffffffff
0131000000feffffffffffffff0134000000ffffffffffffffff0137000000feffffffffffffff013a000000ffffffffffffffff
013d000000feffffffffffffff040100000004040000000407000000040a000000040d0000000410000000041300000004160000
000419000000041c000000041f000000042200000004250000000428000000042b000000042e0000000431000000043400000004
37000000043a000000043d00000028
Data Dump (Test 2):
-------------------
00000000 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff
00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000030 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000060 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000090 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff
000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000c0 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff
00000100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000120 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000180 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff
00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Assembly Code (Test 3):
-----------------------
00000000* SET @00000001 #efcdab8967452301
0000000d SET @00000004 #efcdab8967452301
0000001a SET @00000007 #efcdab8967452301
00000027 SET @0000000a #efcdab8967452301
00000034 SET @0000000d #efcdab8967452301
00000041 SET @00000010 #efcdab8967452301
0000004e SET @00000013 #efcdab8967452301
0000005b SET @00000016 #efcdab8967452301
00000068 SET @00000019 #efcdab8967452301
00000075 SET @0000001c #efcdab8967452301
00000082 SET @0000001f #efcdab8967452301
0000008f SET @00000022 #efcdab8967452301
0000009c SET @00000025 #efcdab8967452301
000000a9 SET @00000028 #efcdab8967452301
000000b6 SET @0000002b #efcdab8967452301
000000c3 SET @0000002e #efcdab8967452301
000000d0 SET @00000031 #efcdab8967452301
000000dd SET @00000034 #efcdab8967452301
000000ea SET @00000037 #efcdab8967452301
000000f7 SET @0000003a #efcdab8967452301
00000104 SET @0000003d #efcdab8967452301
00000111 INC @00000001
00000116 INC @00000004
0000011b INC @00000007
00000120 INC @0000000a
00000125 INC @0000000d
0000012a INC @00000010
0000012f INC @00000013
00000134 INC @00000016
00000139 INC @00000019
0000013e INC @0000001c
00000143 INC @0000001f
00000148 INC @00000022
0000014d INC @00000025
00000152 INC @00000028
00000157 INC @0000002b
0000015c INC @0000002e
00000161 INC @00000031
00000166 INC @00000034
0000016b INC @00000037
00000170 INC @0000003a
00000175 INC @0000003d
0000017a FIN
Machine Code (Test 3):
----------------------
01010000000123456789abcdef01040000000123456789abcdef01070000000123456789abcdef010a0000000123456789abcdef
010d0000000123456789abcdef01100000000123456789abcdef01130000000123456789abcdef01160000000123456789abcdef
01190000000123456789abcdef011c0000000123456789abcdef011f0000000123456789abcdef01220000000123456789abcdef
01250000000123456789abcdef01280000000123456789abcdef012b0000000123456789abcdef012e0000000123456789abcdef
01310000000123456789abcdef01340000000123456789abcdef01370000000123456789abcdef013a0000000123456789abcdef
013d0000000123456789abcdef040100000004040000000407000000040a000000040d0000000410000000041300000004160000
000419000000041c000000041f000000042200000004250000000428000000042b000000042e0000000431000000043400000004
37000000043a000000043d00000028
Data Dump (Test 3):
-------------------
00000000 00 00 00 00 00 00 00 00 02 23 45 67 89 ab cd ef
00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000020 02 23 45 67 89 ab cd ef 00 00 00 00 00 00 00 00
00000030 00 00 00 00 00 00 00 00 02 23 45 67 89 ab cd ef
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000050 02 23 45 67 89 ab cd ef 00 00 00 00 00 00 00 00
00000060 00 00 00 00 00 00 00 00 02 23 45 67 89 ab cd ef
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 02 23 45 67 89 ab cd ef 00 00 00 00 00 00 00 00
00000090 00 00 00 00 00 00 00 00 02 23 45 67 89 ab cd ef
000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000b0 02 23 45 67 89 ab cd ef 00 00 00 00 00 00 00 00
000000c0 00 00 00 00 00 00 00 00 02 23 45 67 89 ab cd ef
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 02 23 45 67 89 ab cd ef 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 02 23 45 67 89 ab cd ef
00000100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000110 02 23 45 67 89 ab cd ef 00 00 00 00 00 00 00 00
00000120 00 00 00 00 00 00 00 00 02 23 45 67 89 ab cd ef
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 02 23 45 67 89 ab cd ef 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 02 23 45 67 89 ab cd ef
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 02 23 45 67 89 ab cd ef 00 00 00 00 00 00 00 00
00000180 00 00 00 00 00 00 00 00 02 23 45 67 89 ab cd ef
00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001a0 02 23 45 67 89 ab cd ef 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 02 23 45 67 89 ab cd ef
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 02 23 45 67 89 ab cd ef 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 02 23 45 67 89 ab cd ef
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Assembly Code (Test 4):
-----------------------
00000000* SET @00000000 #ffffffffffffffff
0000000d SET @00000001 #9999999999999997
0000001a SET @00000002 #ffffffffffffffff
00000027 SET @00000010 #ffffffffffffffff
00000034 SET @00000011 #9999999999999996
00000041 SET @00000012 #ffffffffffffffff
0000004e SET @00000020 #ffffffffffffffff
0000005b SET @00000021 #9999999999999995
00000068 SET @00000022 #ffffffffffffffff
00000075 SET @00000030 #ffffffffffffffff
00000082 SET @00000031 #9999999999999994
0000008f SET @00000032 #ffffffffffffffff
0000009c INC @00000001
000000a1 INC @00000001
000000a6 INC @00000011
000000ab INC @00000011
000000b0 INC @00000011
000000b5 INC @00000021
000000ba INC @00000021
000000bf INC @00000021
000000c4 INC @00000021
000000c9 INC @00000031
000000ce INC @00000031
000000d3 INC @00000031
000000d8 INC @00000031
000000dd INC @00000031
000000e2 FIN
Machine Code (Test 4):
----------------------
0100000000ffffffffffffffff010100000097999999999999990102000000ffffffffffffffff0110000000ffffffffffffffff
011100000096999999999999990112000000ffffffffffffffff0120000000ffffffffffffffff01210000009599999999999999
0122000000ffffffffffffffff0130000000ffffffffffffffff013100000094999999999999990132000000ffffffffffffffff
04010000000401000000041100000004110000000411000000042100000004210000000421000000042100000004310000000431
00000004310000000431000000043100000028
Data Dump (Test 4):
-------------------
00000000 ff ff ff ff ff ff ff ff 99 99 99 99 99 99 99 99
00000010 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 ff ff ff ff ff ff ff ff 99 99 99 99 99 99 99 99
00000090 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000100 ff ff ff ff ff ff ff ff 99 99 99 99 99 99 99 99
00000110 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
00000120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000180 ff ff ff ff ff ff ff ff 99 99 99 99 99 99 99 99
00000190 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
000001a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Assembly Code (Test 5):
-----------------------
00000000* SET @0000003d #fffffffffffffffe
0000000d SET @0000003e #ffffffffffffffff
0000001a SET @0000003f #fffffffffffffffe
00000027 INC @0000003d
0000002c INC @0000003e
00000031 INC @0000003f
00000036 INC @00000040
0000003b FIN
Machine Code (Test 5):
----------------------
013d000000feffffffffffffff013e000000ffffffffffffffff013f000000feffffffffffffff043d000000043e000000043f00
0000044000000028
Runtime Error (Test 5):
-----------------------
error: overflow
Data Dump (Test 5):
-------------------
00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff
000001f0 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff
Assembly Code (Test 6):
-----------------------
00000000* INC @ffffffff
00000005 FIN
Machine Code (Test 6):
----------------------
04ffffffff28
Runtime Error (Test 6):
-----------------------
error: overflow
</pre>
</div>
</div>
<div style="visibility: visible;" id="footer">
<p>
<div class="footer-icon"><a target="_blank" href="//ciyam.org/"><img src="logo-gryscl-128.png" /></a></div>
&copy; 2012-2015 CIYAM Developers
</p>
</div>
</body>
</html>

133
docs/at_test_jmp_adr.html

@ -0,0 +1,133 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>CIYAM AT - Test for AT instruction code 0x1a (JMP_ADR)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="copyright" content="Copyright 2015 CIYAM Developers"/>
<link rel="stylesheet" href="document.css" type="text/css"/>
</head>
<div id="content">
<div id="header">
<div id="appname"><a href="//ciyam.org/at">AT</a></div>
<h3 class="right-top">Test for AT instruction code 0x1a (JMP_ADR)</h3>
</div>
<div id="main">
<div id="text">
<pre>
Test for AT instruction code 0x1a (JMP_ADR)
-------------------------------------------
For each test the assembly and machine code are listed as is the data dump or expected error if test case has
been created specifically to fail (with a data dump if any data was expected to have changed before the error
occurred).
A summary of the tests follows:
Test 1 - Check it jumps.
Test 2 - Jump to invalid address.
Test 3 - Jump to negative address.
Assembly Code (Test 1):
-----------------------
00000000* JMP :00000006
00000005 FIN
00000006 SET @00000000 #0000000022222222
00000013 FIN
Machine Code (Test 1):
----------------------
1a06000000280100000000222222220000000028
Data Dump (Test 1):
-------------------
00000000 22 22 22 22 00 00 00 00 00 00 00 00 00 00 00 00
00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Assembly Code (Test 2):
-----------------------
00000000* JMP :00000016
00000005 FIN
00000006 SET @00000000 #0000000022222222
00000013 FIN
Machine Code (Test 2):
----------------------
1a16000000280100000000222222220000000028
Runtime Error (Test 2):
-----------------------
error: invalid code
Assembly Code (Test 3):
-----------------------
00000000* JMP :11111111
00000005 FIN
00000006 SET @00000000 #0000000022222222
00000013 FIN
Machine Code (Test 3):
----------------------
1a11111111280100000000222222220000000028
Runtime Error (Test 3):
-----------------------
error: error overflow
</pre>
</div>
</div>
<div style="visibility: visible;" id="footer">
<p>
<div class="footer-icon"><a target="_blank" href="//ciyam.org/"><img src="logo-gryscl-128.png" /></a></div>
&copy; 2012-2015 CIYAM Developers
</p>
</div>
</body>
</html>

187
docs/at_test_jmp_sub.html

@ -0,0 +1,187 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>CIYAM AT - Test for AT instruction code 0x12 (JMP_SUB)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="copyright" content="Copyright 2015 CIYAM Developers"/>
<link rel="stylesheet" href="document.css" type="text/css"/>
</head>
<div id="content">
<div id="header">
<div id="appname"><a href="//ciyam.org/at">AT</a></div>
<h3 class="right-top">Test for AT instruction code 0x12 (JMP_SUB)</h3>
</div>
<div id="main">
<div id="text">
<pre>
Test for AT instruction code 0x12 (JMP_SUB)
-------------------------------------------
For each test the assembly and machine code are listed as is the data dump or expected error if test case has
been created specifically to fail (with a data dump if any data was expected to have changed before the error
occurred).
A summary of the tests follows:
Test 1 - Check some basic usage.
Test 2 - Check some basic usage (using ret).
Test 3 - Jump to not valid address point
Test 4 - infinite loop
Assembly Code (Test 1):
-----------------------
00000000* SET @00000000 #0000000000000000
0000000d JSR :0000001f
00000012 SET @00000000 #1111111111111111
0000001f INC @00000000
00000024 FIN
Machine Code (Test 1):
----------------------
01000000000000000000000000121f00000001000000001111111111111111040000000028
Data Dump (Test 1):
-------------------
00000000 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Assembly Code (Test 2):
-----------------------
00000000 SET @00000000 #0000000000000000
0000000d* JSR :00000018
00000012 INC @00000000
00000017 FIN
00000018 SET @00000000 #1111111111111110
00000025 RET
Machine Code (Test 2):
----------------------
0100000000000000000000000012180000000400000000280100000000101111111111111113
Data Dump (Test 2):
-------------------
00000000 11 11 11 11 11 11 11 11 00 00 00 00 00 00 00 00
00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Assembly Code (Test 3):
-----------------------
00000000 SET @00000000 #0000000000000000
0000000d* JSR :00000020
00000012 INC @00000000
00000017 FIN
00000018 SET @00000000 #1111111111111110
00000025 RET
Machine Code (Test 3):
-----------------------
0100000000000000000000000012220000000400000000280100000000101111111111111113
Runtime Error (Test 3):
-----------------------
error: invalid code
Assembly Code (Test 4):
-----------------------
00000000 SET @00000000 #0000000000000000
0000000d INC @00000000
00000012* JSR :00000000
00000017 FIN
Machine Code (Test 4):
-----------------------
010000000000000000000000000400000000120000000028
Runtime Error (Test 4):
-----------------------
error: overflow
</pre>
</div>
</div>
<div style="visibility: visible;" id="footer">
<p>
<div class="footer-icon"><a target="_blank" href="//ciyam.org/"><img src="logo-gryscl-128.png" /></a></div>
&copy; 2012-2015 CIYAM Developers
</p>
</div>
</body>
</html>

474
docs/at_test_mul_dat.html

@ -0,0 +1,474 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>CIYAM AT - Test for AT instruction code 0x08 (MUL_DAT)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="copyright" content="Copyright 2015 CIYAM Developers"/>
<link rel="stylesheet" href="document.css" type="text/css"/>
</head>
<div id="content">
<div id="header">
<div id="appname"><a href="//ciyam.org/at">AT</a></div>
<h3 class="right-top">Test for AT instruction code 0x08 (MUL_DAT)</h3>
</div>
<div id="main">
<div id="text">
<pre>
Test for AT instruction code 0x08 (MUL_DAT)
-------------------------------------------
For each test the assembly and machine code are listed as is the data dump or expected error if test case has
been created specifically to fail (with a data dump if any data was expected to have changed before the error
occurred).
A summary of the tests follows:
Test 1 - Check some basic usage.
Test 2 - Check highest value works.
Test 3 - Check full address range.
Test 4 - Check overwriting works.
Test 5 - Check address range edge fail.
Test 6 - Check negative adddress fails.
Assembly Code (Test 1):
-----------------------
00000000* SET @00000000 #000000000000000f
0000000d SET @00000001 #000000000000000e
0000001a SET @00000002 #000000000000000d
00000027 SET @00000003 #000000000000000c
00000034 SET @00000004 #000000000000000b
00000041 SET @00000005 #000000000000000a
0000004e SET @00000006 #0000000000000009
0000005b SET @00000007 #0000000000000008
00000068 SET @00000008 #0000000000000007
00000075 SET @00000009 #0000000000000006
00000082 SET @0000000a #0000000000000005
0000008f SET @0000000b #0000000000000004
0000009c SET @0000000c #0000000000000003
000000a9 SET @0000000d #0000000000000002
000000b6 SET @0000000e #0000000000000001
000000c3 SET @0000000f #0000000000000000
000000d0 MUL @00000000 $00000001
000000d9 MUL @00000001 $00000002
000000e2 MUL @00000002 $00000003
000000eb MUL @00000003 $00000004
000000f4 MUL @00000004 $00000005
000000fd MUL @00000005 $00000006
00000106 MUL @00000006 $00000007
0000010f MUL @00000007 $00000008
00000118 MUL @00000008 $00000009
00000121 MUL @00000009 $0000000a
0000012a MUL @0000000a $0000000b
00000133 MUL @0000000b $0000000c
0000013c MUL @0000000c $0000000d
00000145 MUL @0000000d $0000000e
0000014e MUL @0000000e $0000000f
00000157 FIN
Machine Code (Test 1):
----------------------
01000000000f0000000000000001010000000e0000000000000001020000000d0000000000000001030000000c00000000000000
01040000000b0000000000000001050000000a000000000000000106000000090000000000000001070000000800000000000000
0108000000070000000000000001090000000600000000000000010a0000000500000000000000010b0000000400000000000000
010c0000000300000000000000010d0000000200000000000000010e0000000100000000000000010f0000000000000000000000
08000000000100000008010000000200000008020000000300000008030000000400000008040000000500000008050000000600
000008060000000700000008070000000800000008080000000900000008090000000a000000080a0000000b000000080b000000
0c000000080c0000000d000000080d0000000e000000080e0000000f00000028
Data Dump (Test 1):
-------------------
00000000 d2 00 00 00 00 00 00 00 b6 00 00 00 00 00 00 00
00000010 9c 00 00 00 00 00 00 00 84 00 00 00 00 00 00 00
00000020 6e 00 00 00 00 00 00 00 5a 00 00 00 00 00 00 00
00000030 48 00 00 00 00 00 00 00 38 00 00 00 00 00 00 00
00000040 2a 00 00 00 00 00 00 00 1e 00 00 00 00 00 00 00
00000050 14 00 00 00 00 00 00 00 0c 00 00 00 00 00 00 00
00000060 06 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Assembly Code (Test 2):
-----------------------
00000000* SET @00000001 #ffffffffffffffff
0000000d SET @00000004 #ffffffffffffffff
0000001a SET @00000007 #0000000000000000
00000027 SET @0000000a #ffffffffffffffff
00000034 SET @0000000d #ffffffffffffffff
00000041 SET @00000010 #0000000000000000
0000004e SET @00000013 #ffffffffffffffff
0000005b SET @00000016 #ffffffffffffffff
00000068 SET @00000019 #0000000000000000
00000075 SET @0000001c #ffffffffffffffff
00000082 SET @0000001f #ffffffffffffffff
0000008f SET @00000022 #0000000000000000
0000009c SET @00000025 #ffffffffffffffff
000000a9 SET @00000028 #ffffffffffffffff
000000b6 SET @0000002b #0000000000000000
000000c3 SET @0000002e #ffffffffffffffff
000000d0 SET @00000031 #ffffffffffffffff
000000dd SET @00000034 #0000000000000000
000000ea SET @00000037 #ffffffffffffffff
000000f7 SET @0000003a #ffffffffffffffff
00000104 SET @0000003d #0000000000000000
00000111 MUL @00000001 $00000004
0000011a MUL @00000004 $00000007
00000123 MUL @00000007 $0000000a
0000012c MUL @0000000a $0000000d
00000135 MUL @0000000d $00000010
0000013e MUL @00000010 $00000013
00000147 MUL @00000013 $00000016
00000150 MUL @00000016 $00000019
00000159 MUL @00000019 $0000001c
00000162 MUL @0000001c $0000001f
0000016b MUL @0000001f $00000022
00000174 MUL @00000022 $00000025
0000017d MUL @00000025 $00000028
00000186 MUL @00000028 $0000002b
0000018f MUL @0000002b $0000002e
00000198 MUL @0000002e $00000031
000001a1 MUL @00000031 $00000034
000001aa MUL @00000034 $00000037
000001b3 MUL @00000037 $0000003a
000001bc MUL @0000003a $0000003d
000001c5 MUL @0000003d $0000003d
000001ce FIN
Machine Code (Test 2):
----------------------
0101000000ffffffffffffffff0104000000ffffffffffffffff01070000000000000000000000010a000000ffffffffffffffff
010d000000ffffffffffffffff011000000000000000000000000113000000ffffffffffffffff0116000000ffffffffffffffff
01190000000000000000000000011c000000ffffffffffffffff011f000000ffffffffffffffff01220000000000000000000000
0125000000ffffffffffffffff0128000000ffffffffffffffff012b0000000000000000000000012e000000ffffffffffffffff
0131000000ffffffffffffffff013400000000000000000000000137000000ffffffffffffffff013a000000ffffffffffffffff
013d000000000000000000000008010000000400000008040000000700000008070000000a000000080a0000000d000000080d00
00001000000008100000001300000008130000001600000008160000001900000008190000001c000000081c0000001f00000008
1f0000002200000008220000002500000008250000002800000008280000002b000000082b0000002e000000082e000000310000
0008310000003400000008340000003700000008370000003a000000083a0000003d000000083d0000003d00000028
Data Dump (Test 2):
-------------------
00000000 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00
00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000050 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000090 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00
000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000120 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Assembly Code (Test 3):
-----------------------
00000000* SET @00000001 #efcdab8967452301
0000000d SET @00000004 #1111111111111111
0000001a SET @00000007 #efcdab8967452301
00000027 SET @0000000a #1111111111111111
00000034 SET @0000000d #efcdab8967452301
00000041 SET @00000010 #1111111111111111
0000004e SET @00000013 #efcdab8967452301
0000005b SET @00000016 #1111111111111111
00000068 SET @00000019 #efcdab8967452301
00000075 SET @0000001c #1111111111111111
00000082 SET @0000001f #efcdab8967452301
0000008f SET @00000022 #1111111111111111
0000009c SET @00000025 #efcdab8967452301
000000a9 SET @00000028 #1111111111111111
000000b6 SET @0000002b #efcdab8967452301
000000c3 SET @0000002e #1111111111111111
000000d0 SET @00000031 #efcdab8967452301
000000dd SET @00000034 #1111111111111111
000000ea SET @00000037 #efcdab8967452301
000000f7 SET @0000003a #1111111111111111
00000104 SET @0000003d #efcdab8967452301
00000111 MUL @00000001 $00000004
0000011a MUL @00000004 $00000007
00000123 MUL @00000007 $0000000a
0000012c MUL @0000000a $0000000d
00000135 MUL @0000000d $00000010
0000013e MUL @00000010 $00000013
00000147 MUL @00000013 $00000016
00000150 MUL @00000016 $00000019
00000159 MUL @00000019 $0000001c
00000162 MUL @0000001c $0000001f
0000016b MUL @0000001f $00000022
00000174 MUL @00000022 $00000025
0000017d MUL @00000025 $00000028
00000186 MUL @00000028 $0000002b
0000018f MUL @0000002b $0000002e
00000198 MUL @0000002e $00000031
000001a1 MUL @00000031 $00000034
000001aa MUL @00000034 $00000037
000001b3 MUL @00000037 $0000003a
000001bc MUL @0000003a $0000003d
000001c5 MUL @0000003d $0000003d
000001ce FIN
Machine Code (Test 3):
----------------------
01010000000123456789abcdef0104000000111111111111111101070000000123456789abcdef010a0000001111111111111111
010d0000000123456789abcdef0110000000111111111111111101130000000123456789abcdef01160000001111111111111111
01190000000123456789abcdef011c0000001111111111111111011f0000000123456789abcdef01220000001111111111111111
01250000000123456789abcdef01280000001111111111111111012b0000000123456789abcdef012e0000001111111111111111
01310000000123456789abcdef0134000000111111111111111101370000000123456789abcdef013a0000001111111111111111
013d0000000123456789abcdef08010000000400000008040000000700000008070000000a000000080a0000000d000000080d00
00001000000008100000001300000008130000001600000008160000001900000008190000001c000000081c0000001f00000008
1f0000002200000008220000002500000008250000002800000008280000002b000000082b0000002e000000082e000000310000
0008310000003400000008340000003700000008370000003a000000083a0000003d000000083d0000003d00000028
Data Dump (Test 3):
-------------------
00000000 00 00 00 00 00 00 00 00 11 64 fb d6 f6 5a 03 f0
00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000020 11 64 fb d6 f6 5a 03 f0 00 00 00 00 00 00 00 00
00000030 00 00 00 00 00 00 00 00 11 64 fb d6 f6 5a 03 f0
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000050 11 64 fb d6 f6 5a 03 f0 00 00 00 00 00 00 00 00
00000060 00 00 00 00 00 00 00 00 11 64 fb d6 f6 5a 03 f0
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 11 64 fb d6 f6 5a 03 f0 00 00 00 00 00 00 00 00
00000090 00 00 00 00 00 00 00 00 11 64 fb d6 f6 5a 03 f0
000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000b0 11 64 fb d6 f6 5a 03 f0 00 00 00 00 00 00 00 00
000000c0 00 00 00 00 00 00 00 00 11 64 fb d6 f6 5a 03 f0
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 11 64 fb d6 f6 5a 03 f0 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 11 64 fb d6 f6 5a 03 f0
00000100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000110 11 64 fb d6 f6 5a 03 f0 00 00 00 00 00 00 00 00
00000120 00 00 00 00 00 00 00 00 11 64 fb d6 f6 5a 03 f0
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 11 64 fb d6 f6 5a 03 f0 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 11 64 fb d6 f6 5a 03 f0
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 11 64 fb d6 f6 5a 03 f0 00 00 00 00 00 00 00 00
00000180 00 00 00 00 00 00 00 00 11 64 fb d6 f6 5a 03 f0
00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001a0 11 64 fb d6 f6 5a 03 f0 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 11 64 fb d6 f6 5a 03 f0
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 11 64 fb d6 f6 5a 03 f0 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 01 46 53 b1 e8 81 05 fc
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Assembly Code (Test 4):
-----------------------
00000000* SET @00000000 #0000000099999999
0000000d SET @00000001 #0000000000010000
0000001a SET @00000002 #9999999900000000
00000027 SET @00000010 #0000000099999999
00000034 SET @00000011 #0000000000001000
00000041 SET @00000012 #9999999000000000
0000004e SET @00000020 #0000000099999999
0000005b SET @00000021 #0000000000000100
00000068 SET @00000022 #9999999900000000
00000075 SET @00000030 #0000099999999000
00000082 SET @00000031 #0000000000000010
0000008f SET @00000032 #9999999900000000
0000009c MUL @00000000 $00000001
000000a5 MUL @00000000 $00000001
000000ae MUL @00000010 $00000011
000000b7 MUL @00000010 $00000011
000000c0 MUL @00000010 $00000011
000000c9 MUL @00000020 $00000021
000000d2 MUL @00000020 $00000021
000000db MUL @00000020 $00000021
000000e4 MUL @00000020 $00000021
000000ed MUL @00000030 $00000031
000000f6 MUL @00000030 $00000031
000000ff MUL @00000030 $00000031
00000108 MUL @00000030 $00000031
00000111 MUL @00000030 $00000031
0000011a FIN
Machine Code (Test 4):
----------------------
01000000009999999900000000010100000000000100000000000102000000000000009999999901100000009999999900000000
01110000000010000000000000011200000000000000909999990120000000999999990000000001210000000001000000000000
01220000000000000099999999013000000000909999990900000131000000100000000000000001320000000000000099999999
08000000000100000008000000000100000008100000001100000008100000001100000008100000001100000008200000002100
00000820000000210000000820000000210000000820000000210000000830000000310000000830000000310000000830000000
3100000008300000003100000008300000003100000028
Data Dump (Test 4):
-------------------
00000000 00 00 00 00 99 99 99 99 00 00 01 00 00 00 00 00
00000010 00 00 00 00 99 99 99 99 00 00 00 00 00 00 00 00
00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 00 00 00 00 90 99 99 99 00 10 00 00 00 00 00 00
00000090 00 00 00 00 90 99 99 99 00 00 00 00 00 00 00 00
000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000100 00 00 00 00 99 99 99 99 00 01 00 00 00 00 00 00
00000110 00 00 00 00 99 99 99 99 00 00 00 00 00 00 00 00
00000120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000180 00 00 00 00 99 99 99 99 10 00 00 00 00 00 00 00
00000190 00 00 00 00 99 99 99 99 00 00 00 00 00 00 00 00
000001a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Assembly Code (Test 5):
-----------------------
00000000* SET @0000003e #1111111111111111
0000000d SET @0000003f #ffffffffffffffff
0000001a MUL @0000003e $0000003f
00000023 MUL @0000003f $00000040
0000002c FIN
Machine Code (Test 5):
----------------------
013e0000001111111111111111013f000000ffffffffffffffff083e0000003f000000083f0000004000000028
Runtime Error (Test 5):
-----------------------
error: overflow
Data Dump (Test 5):
-------------------
00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001f0 ef ee ee ee ee ee ee ee ff ff ff ff ff ff ff ff
Assembly Code (Test 6):
-----------------------
00000000* MUL @ffffffff $ffffffff
00000009 FIN
Machine Code (Test 6):
----------------------
08ffffffffffffffff28
Runtime Error (Test 6):
-----------------------
error: overflow
</pre>
</div>
</div>
<div style="visibility: visible;" id="footer">
<p>
<div class="footer-icon"><a target="_blank" href="//ciyam.org/"><img src="logo-gryscl-128.png" /></a></div>
&copy; 2012-2015 CIYAM Developers
</p>
</div>
</body>
</html>

473
docs/at_test_not_dat.html

@ -0,0 +1,473 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>CIYAM AT - Test for AT instruction code 0x0d (NOT_DAT)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="copyright" content="Copyright 2015 CIYAM Developers"/>
<link rel="stylesheet" href="document.css" type="text/css"/>
</head>
<div id="content">
<div id="header">
<div id="appname"><a href="//ciyam.org/at">AT</a></div>
<h3 class="right-top">Test for AT instruction code 0x0d (NOT_DAT)</h3>
</div>
<div id="main">
<div id="text">
<pre>
Test for AT instruction code 0x0d (NOT_DAT)
-------------------------------------------
For each test the assembly and machine code are listed as is the data dump or expected error if test case has
been created specifically to fail (with a data dump if any data was expected to have changed before the error
occurred).
A summary of the tests follows:
Test 1 - Check some basic usage.
Test 2 - Check highest value works.
Test 3 - Check full address range.
Test 4 - Check overwriting works.
Test 5 - Check address range edge fail.
Test 6 - Check negative adddress fails.
Assembly Code (Test 1):
-----------------------
00000000* SET @00000000 #000000000000000f
0000000d SET @00000001 #000000000000000e
0000001a SET @00000002 #000000000000000d
00000027 SET @00000003 #000000000000000c
00000034 SET @00000004 #000000000000000b
00000041 SET @00000005 #000000000000000a
0000004e SET @00000006 #0000000000000009
0000005b SET @00000007 #0000000000000008
00000068 SET @00000008 #0000000000000007
00000075 SET @00000009 #0000000000000006
00000082 SET @0000000a #0000000000000005
0000008f SET @0000000b #0000000000000004
0000009c SET @0000000c #0000000000000003
000000a9 SET @0000000d #0000000000000002
000000b6 SET @0000000e #0000000000000001
000000c3 NOT @00000000
000000c8 NOT @00000001
000000cd NOT @00000002
000000d2 NOT @00000003
000000d7 NOT @00000004
000000dc NOT @00000005
000000e1 NOT @00000006
000000e6 NOT @00000007
000000eb NOT @00000008
000000f0 NOT @00000009
000000f5 NOT @0000000a
000000fa NOT @0000000b
000000ff NOT @0000000c
00000104 NOT @0000000d
00000109 FIN
Machine Code (Test 1):
----------------------
01000000000f0000000000000001010000000e0000000000000001020000000d0000000000000001030000000c00000000000000
01040000000b0000000000000001050000000a000000000000000106000000090000000000000001070000000800000000000000
0108000000070000000000000001090000000600000000000000010a0000000500000000000000010b0000000400000000000000
010c0000000300000000000000010d0000000200000000000000010e00000001000000000000000d000000000d010000000d0200
00000d030000000d040000000d050000000d060000000d070000000d080000000d090000000d0a0000000d0b0000000d0c000000
0d0d00000028
Data Dump (Test 1):
-------------------
00000000 f0 ff ff ff ff ff ff ff f1 ff ff ff ff ff ff ff
00000010 f2 ff ff ff ff ff ff ff f3 ff ff ff ff ff ff ff
00000020 f4 ff ff ff ff ff ff ff f5 ff ff ff ff ff ff ff
00000030 f6 ff ff ff ff ff ff ff f7 ff ff ff ff ff ff ff
00000040 f8 ff ff ff ff ff ff ff f9 ff ff ff ff ff ff ff
00000050 fa ff ff ff ff ff ff ff fb ff ff ff ff ff ff ff
00000060 fc ff ff ff ff ff ff ff fd ff ff ff ff ff ff ff
00000070 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Assembly Code (Test 2):
-----------------------
00000000* SET @00000001 #ffffffffffffffff
0000000d SET @00000004 #00000000ffffffff
0000001a SET @00000007 #0000000000000000
00000027 SET @0000000a #ffffffffffffffff
00000034 SET @0000000d #00000000ffffffff
00000041 SET @00000010 #0000000000000000
0000004e SET @00000013 #ffffffffffffffff
0000005b SET @00000016 #00000000ffffffff
00000068 SET @00000019 #0000000000000000
00000075 SET @0000001c #ffffffffffffffff
00000082 SET @0000001f #00000000ffffffff
0000008f SET @00000022 #0000000000000000
0000009c SET @00000025 #ffffffffffffffff
000000a9 SET @00000028 #00000000ffffffff
000000b6 SET @0000002b #0000000000000000
000000c3 SET @0000002e #ffffffffffffffff
000000d0 SET @00000031 #00000000ffffffff
000000dd SET @00000034 #0000000000000000
000000ea SET @00000037 #ffffffffffffffff
000000f7 SET @0000003a #00000000ffffffff
00000104 SET @0000003d #0000000000000000
00000111 NOT @00000001
00000116 NOT @00000004
0000011b NOT @00000007
00000120 NOT @0000000a
00000125 NOT @0000000d
0000012a NOT @00000010
0000012f NOT @00000013
00000134 NOT @00000016
00000139 NOT @00000019
0000013e NOT @0000001c
00000143 NOT @0000001f
00000148 NOT @00000022
0000014d NOT @00000025
00000152 NOT @00000028
00000157 NOT @0000002b
0000015c NOT @0000002e
00000161 NOT @00000031
00000166 NOT @00000034
0000016b NOT @00000037
00000170 NOT @0000003a
00000175 NOT @0000003d
0000017a FIN
Machine Code (Test 2):
----------------------
0101000000ffffffffffffffff0104000000ffffffff0000000001070000000000000000000000010a000000ffffffffffffffff
010d000000ffffffff00000000011000000000000000000000000113000000ffffffffffffffff0116000000ffffffff00000000
01190000000000000000000000011c000000ffffffffffffffff011f000000ffffffff0000000001220000000000000000000000
0125000000ffffffffffffffff0128000000ffffffff00000000012b0000000000000000000000012e000000ffffffffffffffff
0131000000ffffffff00000000013400000000000000000000000137000000ffffffffffffffff013a000000ffffffff00000000
013d00000000000000000000000d010000000d040000000d070000000d0a0000000d0d0000000d100000000d130000000d160000
000d190000000d1c0000000d1f0000000d220000000d250000000d280000000d2b0000000d2e0000000d310000000d340000000d
370000000d3a0000000d3d00000028
Data Dump (Test 2):
-------------------
00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000020 00 00 00 00 ff ff ff ff 00 00 00 00 00 00 00 00
00000030 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000060 00 00 00 00 00 00 00 00 00 00 00 00 ff ff ff ff
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
00000090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000b0 00 00 00 00 ff ff ff ff 00 00 00 00 00 00 00 00
000000c0 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 00 00 00 00 ff ff ff ff
00000100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000110 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
00000120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 00 00 00 00 ff ff ff ff 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000180 00 00 00 00 00 00 00 00 00 00 00 00 ff ff ff ff
00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001a0 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 00 00 00 00 ff ff ff ff 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Assembly Code (Test 3):
-----------------------
00000000* SET @00000001 #efcdab8967452301
0000000d SET @00000004 #ffffffffffffffff
0000001a SET @00000007 #efcdab8967452301
00000027 SET @0000000a #00000000ffffffff
00000034 SET @0000000d #efcdab8967452301
00000041 SET @00000010 #0000000000000000
0000004e SET @00000013 #efcdab8967452301
0000005b SET @00000016 #ffffffffffffffff
00000068 SET @00000019 #efcdab8967452301
00000075 SET @0000001c #00000000ffffffff
00000082 SET @0000001f #efcdab8967452301
0000008f SET @00000022 #0000000000000000
0000009c SET @00000025 #efcdab8967452301
000000a9 SET @00000028 #ffffffffffffffff
000000b6 SET @0000002b #efcdab8967452301
000000c3 SET @0000002e #00000000ffffffff
000000d0 SET @00000031 #efcdab8967452301
000000dd SET @00000034 #0000000000000000
000000ea SET @00000037 #efcdab8967452301
000000f7 SET @0000003a #ffffffffffffffff
00000104 SET @0000003d #efcdab8967452301
00000111 NOT @00000001
00000116 NOT @00000004
0000011b NOT @00000007
00000120 NOT @0000000a
00000125 NOT @0000000d
0000012a NOT @00000010
0000012f NOT @00000013
00000134 NOT @00000016
00000139 NOT @00000019
0000013e NOT @0000001c
00000143 NOT @0000001f
00000148 NOT @00000022
0000014d NOT @00000025
00000152 NOT @00000028
00000157 NOT @0000002b
0000015c NOT @0000002e
00000161 NOT @00000031
00000166 NOT @00000034
0000016b NOT @00000037
00000170 NOT @0000003a
00000175 NOT @0000003d
0000017a FIN
Machine Code (Test 3):
----------------------
01010000000123456789abcdef0104000000ffffffffffffffff01070000000123456789abcdef010a000000ffffffff00000000
010d0000000123456789abcdef0110000000000000000000000001130000000123456789abcdef0116000000ffffffffffffffff
01190000000123456789abcdef011c000000ffffffff00000000011f0000000123456789abcdef01220000000000000000000000
01250000000123456789abcdef0128000000ffffffffffffffff012b0000000123456789abcdef012e000000ffffffff00000000
01310000000123456789abcdef0134000000000000000000000001370000000123456789abcdef013a000000ffffffffffffffff
013d0000000123456789abcdef0d010000000d040000000d070000000d0a0000000d0d0000000d100000000d130000000d160000
000d190000000d1c0000000d1f0000000d220000000d250000000d280000000d2b0000000d2e0000000d310000000d340000000d
370000000d3a0000000d3d00000028
Data Dump (Test 3):
-------------------
00000000 00 00 00 00 00 00 00 00 fe dc ba 98 76 54 32 10
00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000030 00 00 00 00 00 00 00 00 fe dc ba 98 76 54 32 10
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000050 00 00 00 00 ff ff ff ff 00 00 00 00 00 00 00 00
00000060 00 00 00 00 00 00 00 00 fe dc ba 98 76 54 32 10
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
00000090 00 00 00 00 00 00 00 00 fe dc ba 98 76 54 32 10
000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000c0 00 00 00 00 00 00 00 00 fe dc ba 98 76 54 32 10
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 00 00 00 00 ff ff ff ff 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 fe dc ba 98 76 54 32 10
00000100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000110 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
00000120 00 00 00 00 00 00 00 00 fe dc ba 98 76 54 32 10
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 fe dc ba 98 76 54 32 10
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 00 00 00 00 ff ff ff ff 00 00 00 00 00 00 00 00
00000180 00 00 00 00 00 00 00 00 fe dc ba 98 76 54 32 10
00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001a0 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 fe dc ba 98 76 54 32 10
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 fe dc ba 98 76 54 32 10
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Assembly Code (Test 4):
-----------------------
000000e3 SET @00000000 #9999999999999999
000000f0 SET @00000001 #1111111111111111
000000fd SET @00000002 #99999999ffffffff
0000010a SET @00000010 #8888888888888888
00000117 SET @00000011 #2222222222222222
00000124 SET @00000012 #77777777ffffffff
00000131 SET @00000020 #6666666666666666
0000013e SET @00000021 #3333333333333333
0000014b SET @00000022 #66666666ffffffff
00000158 SET @00000030 #5555555555555555
00000165 SET @00000031 #4444444444444444
00000172 SET @00000032 #aaaaaaaaffffffff
0000017f NOT @00000000
00000184 NOT @00000000
00000189 NOT @00000010
0000018e NOT @00000010
00000193 NOT @00000010
00000198 NOT @00000020
0000019d NOT @00000020
000001a2 NOT @00000020
000001a7 NOT @00000020
000001ac NOT @00000030
000001b1 NOT @00000030
000001b6 NOT @00000030
000001bb NOT @00000030
000001c0 NOT @00000030
000001c5 FIN
Machine Code (Test 4):
----------------------
01000000009999999999999999010100000011111111111111110102000000ffffffff9999999901100000008888888888888888
011100000022222222222222220112000000ffffffff777777770120000000666666666666666601210000003333333333333333
0122000000ffffffff6666666601300000005555555555555555013100000044444444444444440132000000ffffffffaaaaaaaa
0d000000000d000000000d100000000d100000000d100000000d200000000d200000000d200000000d200000000d300000000d30
0000000d300000000d300000000d300000002801000000009999999999999999010100000011111111111111110102000000ffff
ffff9999999901100000008888888888888888011100000022222222222222220112000000ffffffff7777777701200000006666
666666666666012100000033333333333333330122000000ffffffff666666660130000000555555555555555501310000004444
4444444444440132000000ffffffffaaaaaaaa0d000000000d000000000d100000000d100000000d100000000d200000000d2000
00000d200000000d200000000d300000000d300000000d300000000d300000000d3000000028
Data Dump (Test 4):
-------------------
00000000 99 99 99 99 99 99 99 99 11 11 11 11 11 11 11 11
00000010 ff ff ff ff 99 99 99 99 00 00 00 00 00 00 00 00
00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 77 77 77 77 77 77 77 77 22 22 22 22 22 22 22 22
00000090 ff ff ff ff 77 77 77 77 00 00 00 00 00 00 00 00
000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000100 66 66 66 66 66 66 66 66 33 33 33 33 33 33 33 33
00000110 ff ff ff ff 66 66 66 66 00 00 00 00 00 00 00 00
00000120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000180 aa aa aa aa aa aa aa aa 44 44 44 44 44 44 44 44
00000190 ff ff ff ff aa aa aa aa 00 00 00 00 00 00 00 00
000001a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Assembly Code (Test 5):
-----------------------
00000000* SET @0000003e #00000000ffffffff
0000000d SET @0000003f #ffffffffffffffff
0000001a NOT @0000003e
0000001f NOT @0000003f
00000024 NOT @00000040
00000029 FIN
Machine Code (Test 5):
----------------------
013e000000ffffffff00000000013f000000ffffffffffffffff0d3e0000000d3f0000000d4000000028
Runtime Error (Test 5):
-----------------------
error: overflow
Data Dump (Test 5):
-------------------
00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001f0 00 00 00 00 ff ff ff ff 00 00 00 00 00 00 00 00
Assembly Code (Test 6):
-----------------------
00000000* NOT @ffffffff
00000005 FIN
Machine Code (Test 6):
----------------------
0dffffffff28
Runtime Error (Test 6):
-----------------------
error: overflow
</pre>
</div>
</div>
<div style="visibility: visible;" id="footer">
<p>
<div class="footer-icon"><a target="_blank" href="//ciyam.org/"><img src="logo-gryscl-128.png" /></a></div>
&copy; 2012-2015 CIYAM Developers
</p>
</div>
</body>
</html>

224
docs/at_test_pop_dat.html

@ -0,0 +1,224 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>CIYAM AT - Test for AT instruction code 0x11 (POP_DAT)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="copyright" content="Copyright 2015 CIYAM Developers"/>
<link rel="stylesheet" href="document.css" type="text/css"/>
</head>
<div id="content">
<div id="header">
<div id="appname"><a href="//ciyam.org/at">AT</a></div>
<h3 class="right-top">Test for AT instruction code 0x11 (POP_DAT)</h3>
</div>
<div id="main">
<div id="text">
<pre>
Test for AT instruction code 0x11 (POP_DAT)
-------------------------------------------
For each test the assembly and machine code are listed as is the data dump or expected error if test case has
been created specifically to fail (with a data dump if any data was expected to have changed before the error
occurred).
A summary of the tests follows:
Test 1 - Check some basic usage.
Test 2 - Check address range.
Test 3 - POP without PSH first
Test 4 - POP to address out of range
Assembly Code (Test 1):
-----------------------
00000000* SET @00000000 #1111111100000000
0000000d PSH $00000000
00000012 PSH $00000000
00000017 PSH $00000000
0000001c PSH $00000000
00000021 PSH $00000000
00000026 PSH $00000000
0000002b PSH $00000000
00000030 PSH $00000000
00000035 PSH $00000000
0000003a PSH $00000000
0000003f PSH $00000000
00000044 POP @00000001
00000049 POP @00000002
0000004e POP @00000003
00000053 POP @00000004
00000058 POP @00000005
0000005d POP @00000006
00000062 POP @00000007
00000067 POP @00000008
0000006c POP @00000009
00000071 POP @0000000a
00000076 FIN
Machine Code (Test 1):
----------------------
01000000000000000011111111100000000010000000001000000000100000000010000000001000000000100000000010000000
00100000000010000000001000000000110100000011020000001103000000110400000011050000001106000000110700000011
080000001109000000110a00000028
Stacks Dump (Test 1):
---------------------
00000000 00 00 00 00 11 11 11 11 00 00 00 00 11 11 11 11
00000010 00 00 00 00 11 11 11 11 00 00 00 00 11 11 11 11
00000020 00 00 00 00 11 11 11 11 00 00 00 00 11 11 11 11
00000030 00 00 00 00 11 11 11 11 00 00 00 00 11 11 11 11
00000040 00 00 00 00 11 11 11 11 00 00 00 00 00 00 00 00
00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Assembly Code (Test 2):
-----------------------
00000000* SET @00000000 #1111111100000000
0000000d PSH $00000000
00000012 SET @00000008 #1211111100000000
0000001f PSH $00000008
00000024 SET @00000018 #1311111100000000
00000031 PSH $00000018
00000036 SET @00000028 #1411111100000000
00000043 PSH $00000028
00000048 SET @00000038 #1511111100000000
00000055 PSH $00000038
0000005a SET @0000003a #1611111100000000
00000067 PSH $0000003a
0000006c SET @0000003c #1711111100000000
00000079 PSH $0000003c
0000007e SET @0000003e #1811111100000000
0000008b PSH $0000003e
00000090 POP @00000001
00000095 POP @00000009
0000009a POP @00000019
0000009f POP @00000029
000000a4 POP @00000039
000000a9 POP @0000003d
000000ae POP @0000003f
000000b3 FIN
Machine Code (Test 2):
----------------------
01000000000000000011111111100000000001080000000000000011111112100800000001180000000000000011111113101800
0000012800000000000000111111141028000000013800000000000000111111151038000000013a000000000000001111111610
3a000000013c0000000000000011111117103c000000013e0000000000000011111118103e000000110100000011090000001119
00000011290000001139000000113d000000113f00000028
Data Dump (Test 2):
-------------------
00000000 00 00 00 00 11 11 11 11 00 00 00 00 11 11 11 17
00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000040 00 00 00 00 11 11 11 12 00 00 00 00 11 11 11 16
00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000c0 00 00 00 00 11 11 11 13 00 00 00 00 11 11 11 15
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 00 00 00 00 11 11 11 14 00 00 00 00 11 11 11 14
00000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001c0 00 00 00 00 11 11 11 15 00 00 00 00 11 11 11 13
000001d0 00 00 00 00 11 11 11 16 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 11 11 11 17 00 00 00 00 11 11 11 12
000001f0 00 00 00 00 11 11 11 18 00 00 00 00 11 11 11 11
Assembly Code (Test 3):
-----------------------
00000000* POP @00000001
0000000d FIN
Machine Code (Test 3):
-----------------------
111000000028
Runtime Error (Test 3):
-----------------------
error: overflow
Assembly Code (Test 4):
-----------------------
00000000 SET @00000000 #0000000011111111
0000000d PSH $00000000
00000012* POP @00000040
00000017 FIN
Machine Code (Test 4):
-----------------------
010000000011111111000000001000000000114000000028
Runtime Error (Test 4):
-----------------------
error: overflow
</pre>
</div>
</div>
<div style="visibility: visible;" id="footer">
<p>
<div class="footer-icon"><a target="_blank" href="//ciyam.org/"><img src="logo-gryscl-128.png" /></a></div>
&copy; 2012-2015 CIYAM Developers
</p>
</div>
</body>
</html>

277
docs/at_test_psh_dat.html

@ -0,0 +1,277 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>CIYAM AT - Test for AT instruction code 0x10 (PSH_DAT)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="copyright" content="Copyright 2015 CIYAM Developers"/>
<link rel="stylesheet" href="document.css" type="text/css"/>
</head>
<div id="content">
<div id="header">
<div id="appname"><a href="//ciyam.org/at">AT</a></div>
<h3 class="right-top">Test for AT instruction code 0x10 (PSH_DAT)</h3>
</div>
<div id="main">
<div id="text">
<pre>
Test for AT instruction code 0x10 (PSH_DAT)
-------------------------------------------
For each test the assembly and machine code are listed as is the data dump or expected error if test case has
been created specifically to fail (with a data dump if any data was expected to have changed before the error
occurred).
A summary of the tests follows:
Test 1 - Check some basic usage.
Test 2 - Check address range.
Test 3 - Copying from address out of range.
Test 4 - Pushing out of range
Assembly Code (Test 1):
-----------------------
00000000* SET @00000000 #1111111100000000
0000000d PSH $00000000
00000012 PSH $00000000
00000017 PSH $00000000
0000001c PSH $00000000
00000021 PSH $00000000
00000026 PSH $00000000
0000002b PSH $00000000
00000030 PSH $00000000
00000035 PSH $00000000
0000003a PSH $00000000
0000003f PSH $00000000
00000044 PSH $00000000
00000049 PSH $00000000
0000004e PSH $00000000
00000053 PSH $00000000
00000058 PSH $00000000
0000005d PSH $00000000
00000062 PSH $00000000
00000067 PSH $00000000
0000006c PSH $00000000
00000071 PSH $00000000
00000076 PSH $00000000
0000007b PSH $00000000
00000080 PSH $00000000
00000085 PSH $00000000
0000008a PSH $00000000
0000008f PSH $00000000
00000094 PSH $00000000
00000099 PSH $00000000
0000009e PSH $00000000
000000a3 FIN
Machine Code (Test 1):
----------------------
01000000000000000011111111100000000010000000001000000000100000000010000000001000000000100000000010000000
00100000000010000000001000000000100000000010000000001000000000100000000010000000001000000000100000000010
00000000100000000010000000001000000000100000000010000000001000000000100000000010000000001000000000100000
0000100000000028
Stacks Dump (Test 1):
-------------------
00000200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000210 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000230 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000250 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000270 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000290 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000002a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000002b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000002c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000002d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000002e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000002f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000310 00 00 00 00 11 11 11 11 00 00 00 00 11 11 11 11
00000320 00 00 00 00 11 11 11 11 00 00 00 00 11 11 11 11
00000330 00 00 00 00 11 11 11 11 00 00 00 00 11 11 11 11
00000340 00 00 00 00 11 11 11 11 00 00 00 00 11 11 11 11
00000350 00 00 00 00 11 11 11 11 00 00 00 00 11 11 11 11
00000360 00 00 00 00 11 11 11 11 00 00 00 00 11 11 11 11
00000370 00 00 00 00 11 11 11 11 00 00 00 00 11 11 11 11
00000380 00 00 00 00 11 11 11 11 00 00 00 00 11 11 11 11
00000390 00 00 00 00 11 11 11 11 00 00 00 00 11 11 11 11
000003a0 00 00 00 00 11 11 11 11 00 00 00 00 11 11 11 11
000003b0 00 00 00 00 11 11 11 11 00 00 00 00 11 11 11 11
000003c0 00 00 00 00 11 11 11 11 00 00 00 00 11 11 11 11
000003d0 00 00 00 00 11 11 11 11 00 00 00 00 11 11 11 11
000003e0 00 00 00 00 11 11 11 11 00 00 00 00 11 11 11 11
000003f0 00 00 00 00 11 11 11 11 00 00 00 00 11 11 11 11
Assembly Code (Test 2):
-----------------------
00000000* SET @00000000 #1111111100000000
0000000d PSH $00000000
00000012 SET @00000008 #1211111100000000
0000001f PSH $00000008
00000024 SET @00000018 #1311111100000000
00000031 PSH $00000018
00000036 SET @00000028 #1411111100000000
00000043 PSH $00000028
00000048 SET @00000038 #1511111100000000
00000055 PSH $00000038
0000005a SET @0000003a #1611111100000000
00000067 PSH $0000003a
0000006c SET @0000003c #1711111100000000
00000079 PSH $0000003c
0000007e SET @0000003e #1811111100000000
0000008b PSH $0000003e
00000090 SET @00000001 #1911111100000000
0000009d PSH $00000001
000000a2 SET @00000009 #1a11111100000000
000000af PSH $00000009
000000b4 SET @00000019 #1b11111100000000
000000c1 PSH $00000019
000000c6 SET @00000029 #1c11111100000000
000000d3 PSH $00000029
000000d8 SET @00000039 #1d11111100000000
000000e5 PSH $00000039
000000ea SET @0000003d #1e11111100000000
000000f7 PSH $0000003d
000000fc SET @0000003e #1f11111100000000
00000109 PSH $0000003e
0000010e FIN
Machine Code (Test 2):
----------------------
01000000000000000011111111100000000001080000000000000011111112100800000001180000000000000011111113101800
0000012800000000000000111111141028000000013800000000000000111111151038000000013a000000000000001111111610
3a000000013c0000000000000011111117103c000000013e0000000000000011111118103e000000010100000000000000111111
1910010000000109000000000000001111111a10090000000119000000000000001111111b101900000001290000000000000011
11111c10290000000139000000000000001111111d1039000000013d000000000000001111111e103d000000013e000000000000
001111111f103e00000028
Stacks Dump (Test 2):
-------------------
00000200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000210 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000230 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000250 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000270 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000290 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000002a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000002b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000002c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000002d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000002e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000002f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000310 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000330 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000350 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000370 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000380 00 00 00 00 00 00 00 00 00 00 00 00 11 11 11 1f
00000390 00 00 00 00 11 11 11 1e 00 00 00 00 11 11 11 1d
000003a0 00 00 00 00 11 11 11 1c 00 00 00 00 11 11 11 1b
000003b0 00 00 00 00 11 11 11 1a 00 00 00 00 11 11 11 19
000003c0 00 00 00 00 11 11 11 18 00 00 00 00 11 11 11 17
000003d0 00 00 00 00 11 11 11 16 00 00 00 00 11 11 11 15
000003e0 00 00 00 00 11 11 11 14 00 00 00 00 11 11 11 13
000003f0 00 00 00 00 11 11 11 12 00 00 00 00 11 11 11 11
Assembly Code (Test 3):
-----------------------
00000000* PSH @00000040
0000000d FIN
Machine Code (Test 3):
-----------------------
104000000028
Runtime Error (Test 3):
-----------------------
error: overflow
Assembly Code (Test 4):
-----------------------
00000000* SET @00000000 #1111111100000000
0000000d PSH $00000000
00000012 PSH $00000000
00000017 PSH $00000000
0000001c PSH $00000000
00000021 PSH $00000000
00000026 PSH $00000000
0000002b PSH $00000000
00000030 PSH $00000000
00000035 PSH $00000000
0000003a PSH $00000000
0000003f PSH $00000000
00000044 PSH $00000000
00000049 PSH $00000000
0000004e PSH $00000000
00000053 PSH $00000000
00000058 PSH $00000000
0000005d PSH $00000000
00000062 PSH $00000000
00000067 PSH $00000000
0000006c PSH $00000000
00000071 PSH $00000000
00000076 PSH $00000000
0000007b PSH $00000000
00000080 PSH $00000000
00000085 PSH $00000000
0000008a PSH $00000000
0000008f PSH $00000000
00000094 PSH $00000000
00000099 PSH $00000000
0000009e PSH $00000000
000000a3 PSH $00000000
000000a8 PSH $00000000
000000ad PSH $00000000
000000b2 FIN
Machine Code (Test 4):
-----------------------
01000000000000000011111111100000000010000000001000000000100000000010000000001000000000100000000010000000
00100000000010000000001000000000100000000010000000001000000000100000000010000000001000000000100000000010
00000000100000000010000000001000000000100000000010000000001000000000100000000010000000001000000000100000
0000100000000010000000001000000000100000000028
Runtime Error (Test 4):
-----------------------
error: overflow
</pre>
</div>
</div>
<div style="visibility: visible;" id="footer">
<p>
<div class="footer-icon"><a target="_blank" href="//ciyam.org/"><img src="logo-gryscl-128.png" /></a></div>
&copy; 2012-2015 CIYAM Developers
</p>
</div>
</body>
</html>

233
docs/at_test_ret_sub.html

@ -0,0 +1,233 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>CIYAM AT - Test for AT instruction code 0x13 (RET_SUB)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="copyright" content="Copyright 2015 CIYAM Developers"/>
<link rel="stylesheet" href="document.css" type="text/css"/>
</head>
<div id="content">
<div id="header">
<div id="appname"><a href="//ciyam.org/at">AT</a></div>
<h3 class="right-top">Test for AT instruction code 0x13 (RET_SUB)</h3>
</div>
<div id="main">
<div id="text">
<pre>
Test for AT instruction code 0x13 (RET_SUB)
-------------------------------------------
For each test the assembly and machine code are listed as is the data dump or expected error if test case has
been created specifically to fail (with a data dump if any data was expected to have changed before the error
occurred).
A summary of the tests follows:
Test 1 - Check some basic usage.
Test 2 - Multiple RETs
Test 3 - RET without JMP.
Test 4 - 2-RET 1-JMP
Assembly Code (Test 1):
-----------------------
00000000* SET @00000000 #0000000000000000
0000000d JSR :00000020
00000012 SET @00000000 #1111111111111111
0000001f FIN
00000020 INC @00000000
00000025 RET
Machine Code (Test 1):
----------------------
0100000000000000000000000012200000000100000000111111111111111128040000000013
Data Dump (Test 1):
-------------------
00000000 11 11 11 11 11 11 11 11 00 00 00 00 00 00 00 00
00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Assembly Code (Test 2):
-----------------------
00000000* SET @00000000 #0000000000000000
0000000d JSR :00000018
00000012 INC @00000000
00000017 FIN
00000018 SET @00000000 #1111111111111110
00000025 JSR :0000002b
0000002a RET
0000002b SET @00000010 #0000000011111111
00000038 RET
Machine Code (Test 2):
----------------------
01000000000000000000000000121800000004000000002801000000001011111111111111122b00000013011000000011111111
0000000013
Data Dump (Test 2):
-------------------
00000000 11 11 11 11 11 11 11 11 00 00 00 00 00 00 00 00
00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 11 11 11 11 00 00 00 00 00 00 00 00 00 00 00 00
00000090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Stacks Dump (Test 2):
-------------------
00000200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000210 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000230 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000250 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000270 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000290 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000002a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000002b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000002c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000002d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000002e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000002f0 2a 00 00 00 00 00 00 00 12 00 00 00 00 00 00 00
00000300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000310 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000330 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000350 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000370 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000390 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000003a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000003b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000003c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000003d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000003e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000003f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Assembly Code (Test 3):
-----------------------
00000000 SET @00000000 #0000000000000000
0000000d JSR :00000019
00000012 INC @00000000
00000017* RET
00000018 FIN
00000019 SET @00000000 #1111111111111110
00000026 JSR :0000002c
0000002b RET
0000002c SET @00000010 #0000000011111111
00000039 RET
Machine Code (Test 3):
----------------------
0100000000000000000000000012190000000400000000132801000000001011111111111111122c000000130110000000111111
110000000013
Runtime Error (Test 3):
-----------------------
error: overflow
Assembly Code (Test 4):
-----------------------
00000000 SET @00000000 #0000000000000000
00000012 INC @00000000
00000017* RET
00000018 FIN
Machine Code (Test 4):
----------------------
0100000000000000000000000004000000001328
Runtime Error (Test 4):
-----------------------
error: overflow
</pre>
</div>
</div>
<div style="visibility: visible;" id="footer">
<p>
<div class="footer-icon"><a target="_blank" href="//ciyam.org/"><img src="logo-gryscl-128.png" /></a></div>
&copy; 2012-2015 CIYAM Developers
</p>
</div>
</body>
</html>

287
docs/at_test_set_dat.html

@ -0,0 +1,287 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>CIYAM AT - Test for AT instruction code 0x02 (SET_DAT)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="copyright" content="Copyright 2015 CIYAM Developers"/>
<link rel="stylesheet" href="document.css" type="text/css"/>
</head>
<div id="content">
<div id="header">
<div id="appname"><a href="//ciyam.org/at">AT</a></div>
<h3 class="right-top">Test for AT instruction code 0x02 (SET_DAT)</h3>
</div>
<div id="main">
<div id="text">
<pre>
Test for AT instruction code 0x02 (SET_DAT)
-------------------------------------------
For each test the assembly and machine code are listed as is the data dump or expected error if test case has
been created specifically to fail (with a data dump if any data was expected to have changed before the error
occurred).
A summary of the tests follows:
Test 1 - Check some basic usage (odd addresses).
Test 2 - Check full address range.
Test 3 - Copying to address out of range.
Test 4 - Copying from address out of range.
Test 5 - Copying to address out of range.
Test 6 - Copying from address out of range.
Assembly Code (Test 1):
-----------------------
00000000* SET @00000000 #1111111111111111
0000000d SET @00000001 $00000000
0000001a SET @00000003 $00000000
00000027 SET @00000005 $00000000
00000034 SET @00000007 $00000000
00000041 SET @00000009 $00000000
0000004e SET @0000000b $00000000
0000005b SET @0000000d $00000000
00000068 SET @0000000f $00000000
00000075 SET @00000011 $00000000
00000082 SET @00000013 $00000000
0000008f SET @00000015 $00000000
0000009c SET @00000017 $00000000
000000a9 SET @00000019 $00000000
000000b6 SET @0000001b $00000000
000000c3 SET @0000001d $00000000
000000d0 SET @0000001f $00000000
000000dd SET @00000021 $00000000
000000ea SET @00000023 $00000000
000000f7 SET @00000025 $00000000
00000104 SET @00000027 $00000000
00000111 SET @00000029 $00000000
0000011e SET @0000002b $00000000
0000012b SET @0000002d $00000000
00000138 SET @0000002f $00000000
00000145 SET @00000031 $00000000
00000152 SET @00000033 $00000000
0000015f SET @00000035 $00000000
0000016c SET @00000037 $00000000
00000179 SET @00000039 $00000000
00000186 SET @0000003b $00000000
00000193 SET @0000003d $00000000
000001a0 SET @0000003f $00000000
000001ab FIN
Machine Code (Test 1):
----------------------
01000000001111111111111111020100000000000000020300000000000000020500000000000000020700000000000000020900
000000000000020b00000000000000020d00000000000000020f0000000000000002110000000000000002130000000000000002
1500000000000000021700000000000000021900000000000000021b00000000000000021d00000000000000021f000000000000
00022100000000000000022300000000000000022500000000000000022700000000000000022900000000000000022b00000000
000000022d00000000000000022f0000000000000002310000000000000002330000000000000002350000000000000002370000
0000000000023900000000000000023b00000000000000023d00000000000000023f0000000000000028
Data Dump (Test 1):
-------------------
00000000 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11
00000010 00 00 00 00 00 00 00 00 11 11 11 11 11 11 11 11
00000020 00 00 00 00 00 00 00 00 11 11 11 11 11 11 11 11
00000030 00 00 00 00 00 00 00 00 11 11 11 11 11 11 11 11
00000040 00 00 00 00 00 00 00 00 11 11 11 11 11 11 11 11
00000050 00 00 00 00 00 00 00 00 11 11 11 11 11 11 11 11
00000060 00 00 00 00 00 00 00 00 11 11 11 11 11 11 11 11
00000070 00 00 00 00 00 00 00 00 11 11 11 11 11 11 11 11
00000080 00 00 00 00 00 00 00 00 11 11 11 11 11 11 11 11
00000090 00 00 00 00 00 00 00 00 11 11 11 11 11 11 11 11
000000a0 00 00 00 00 00 00 00 00 11 11 11 11 11 11 11 11
000000b0 00 00 00 00 00 00 00 00 11 11 11 11 11 11 11 11
000000c0 00 00 00 00 00 00 00 00 11 11 11 11 11 11 11 11
000000d0 00 00 00 00 00 00 00 00 11 11 11 11 11 11 11 11
000000e0 00 00 00 00 00 00 00 00 11 11 11 11 11 11 11 11
000000f0 00 00 00 00 00 00 00 00 11 11 11 11 11 11 11 11
00000100 00 00 00 00 00 00 00 00 11 11 11 11 11 11 11 11
00000110 00 00 00 00 00 00 00 00 11 11 11 11 11 11 11 11
00000120 00 00 00 00 00 00 00 00 11 11 11 11 11 11 11 11
00000130 00 00 00 00 00 00 00 00 11 11 11 11 11 11 11 11
00000140 00 00 00 00 00 00 00 00 11 11 11 11 11 11 11 11
00000150 00 00 00 00 00 00 00 00 11 11 11 11 11 11 11 11
00000160 00 00 00 00 00 00 00 00 11 11 11 11 11 11 11 11
00000170 00 00 00 00 00 00 00 00 11 11 11 11 11 11 11 11
00000180 00 00 00 00 00 00 00 00 11 11 11 11 11 11 11 11
00000190 00 00 00 00 00 00 00 00 11 11 11 11 11 11 11 11
000001a0 00 00 00 00 00 00 00 00 11 11 11 11 11 11 11 11
000001b0 00 00 00 00 00 00 00 00 11 11 11 11 11 11 11 11
000001c0 00 00 00 00 00 00 00 00 11 11 11 11 11 11 11 11
000001d0 00 00 00 00 00 00 00 00 11 11 11 11 11 11 11 11
000001e0 00 00 00 00 00 00 00 00 11 11 11 11 11 11 11 11
000001f0 00 00 00 00 00 00 00 00 11 11 11 11 11 11 11 11
Assembly Code (Test 2):
-----------------------
00000000* SET @00000000 #ffffffffffffffff
0000000d SET @00000002 $00000000
0000001a SET @00000004 $00000002
00000027 SET @00000006 $00000004
00000034 SET @00000008 $00000006
00000041 SET @0000000a $00000008
0000004e SET @0000000c $0000000a
0000005b SET @0000000e $0000000c
00000068 SET @00000010 $0000000e
00000075 SET @00000012 $00000010
00000082 SET @00000014 $00000012
0000008f SET @00000016 $00000014
0000009c SET @00000018 $00000016
000000a9 SET @0000001a $00000018
000000b6 SET @0000001c $0000001a
000000c3 SET @0000001e $0000001c
000000d0 SET @00000020 $0000001e
000000dd SET @00000022 $00000020
000000ea SET @00000024 $00000022
000000f7 SET @00000026 $00000024
00000104 SET @00000028 $00000026
00000111 SET @0000002a $00000028
0000011e SET @0000002c $0000002a
0000012b SET @0000002e $0000002c
00000138 SET @00000030 $0000002e
00000145 SET @00000032 $00000030
00000152 SET @00000034 $00000034
0000015f SET @00000036 $00000036
0000016c SET @00000038 $00000038
00000179 SET @0000003a $0000003a
00000186 SET @0000003c $0000003c
00000193 SET @0000003e $0000003e
000001ab FIN
Machine Code (Test 2):
----------------------
0100000000ffffffffffffffff020200000000000000020400000002000000020600000004000000020800000006000000020a00
000008000000020c0000000a000000020e0000000c00000002100000000e00000002120000001000000002140000001200000002
1600000014000000021800000016000000021a00000018000000021c0000001a000000021e0000001c00000002200000001e0000
00022200000020000000022400000022000000022600000024000000022800000026000000022a00000028000000022c0000002a
000000022e0000002c00000002300000002e00000002320000003000000002340000003200000002360000003400000002380000
0036000000023a00000038000000023c0000003a000000023e0000003c00000028
Data Dump (Test 2):
-------------------
00000000 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
00000010 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
00000020 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
00000030 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
00000040 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
00000050 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
00000060 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
00000070 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
00000080 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
00000090 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
000000a0 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
000000b0 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
000000c0 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
000000d0 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
000000e0 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
000000f0 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
00000100 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
00000110 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
00000120 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
00000130 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
00000140 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
00000150 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
00000160 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
00000170 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
00000180 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
00000190 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
000001a0 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
000001b0 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
000001c0 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
000001d0 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
000001e0 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
000001f0 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
Assembly Code (Test 3):
-----------------------
00000000* SET @00000000 #ffffffffffffffff
0000000d SET @00000040 $00000000
0000001a FIN
Machine Code (Test 3):
-----------------------
0100000000ffffffffffffffff02400000000000000028
Runtime Error (Test 3):
-----------------------
error: overflow
Assembly Code (Test 4):
-----------------------
00000000* SET @00000000 #ffffffffffffffff
0000000d SET @00000000 $00000040
0000001a FIN
Machine Code (Test 4):
----------------------
0100000000ffffffffffffffff02020000004000000028
Runtime Error (Test 4):
-----------------------
error: overflow
Assembly Code (Test 5):
-----------------------
00000000* SET @00000000 #ffffffffffffffff
0000000d SET @ffffffff $00000000
0000001a FIN
Machine Code (Test 5):
----------------------
0100000000ffffffffffffffff02ffffffff0000000028
Runtime Error (Test 5):
-----------------------
error: overflow
Assembly Code (Test 6):
-----------------------
00000000* SET @00000000 #ffffffffffffffff
0000000d SET @00000000 $ffffffff
0000001a FIN
Machine Code (Test 6):
----------------------
0100000000ffffffffffffffff020200000ffffffff028
Runtime Error (Test 6):
-----------------------
error: overflow
</pre>
</div>
</div>
<div style="visibility: visible;" id="footer">
<p>
<div class="footer-icon"><a target="_blank" href="//ciyam.org/"><img src="logo-gryscl-128.png" /></a></div>
&copy; 2012-2015 CIYAM Developers
</p>
</div>
</body>
</html>

270
docs/at_test_set_idx.html

@ -0,0 +1,270 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>CIYAM AT - Test for AT instruction code 0x0f (SET_IDX)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="copyright" content="Copyright 2015 CIYAM Developers"/>
<link rel="stylesheet" href="document.css" type="text/css"/>
</head>
<div id="content">
<div id="header">
<div id="appname"><a href="//ciyam.org/at">AT</a></div>
<h3 class="right-top">Test for AT instruction code 0x0f (SET_IDX)</h3>
</div>
<div id="main">
<div id="text">
<pre>
Test for AT instruction code 0x0f (SET_IDX)
-------------------------------------------
For each test the assembly and machine code are listed as is the data dump or expected error if test case has
been created specifically to fail (with a data dump if any data was expected to have changed before the error
occurred).
A summary of the tests follows:
Test 1 - Check some basic usage
Test 2 - Check some basic usage (continue)
Test 3 - Addr1 out of range (addr2+addr3)
Test 4 - Addr2 out of range
Test 5 - Addr3 out of range
Assembly Code (Test 1):
-----------------------
00000000* SET @00000000 #0000000000000000
0000000d SET @00000001 #0000000011111111
0000001a SET @00000002 #0000000000000001
00000027 SET @00000003 $($00000000+$00000002)
00000034 SET @00000004 #0000000000000004
00000041 SET @00000005 #0000000011111111
0000004e SET @00000006 #0000000000000001
0000005b SET @00000007 $($00000004+$00000006)
00000068 SET @00000008 #0000000000000008
00000075 SET @00000009 #0000000011111111
00000082 SET @0000000a #0000000000000001
0000008f SET @0000000b $($00000008+$0000000a)
0000009c SET @0000000c #000000000000000c
000000a9 SET @0000000d #0000000011111111
000000b6 SET @0000000e #0000000000000001
000000c3 SET @0000000f $($0000000c+$0000000e)
000000d0 SET @00000010 #0000000000000010
000000dd SET @00000011 #0000000011111111
000000ea SET @00000012 #0000000000000001
000000f7 SET @00000013 $($00000010+$00000012)
00000104 SET @00000014 #0000000000000014
00000111 SET @00000015 #0000000011111111
0000011e SET @00000016 #0000000000000001
0000012b SET @00000017 $($00000014+$00000016)
00000138 SET @00000018 #0000000000000018
00000145 SET @00000019 #0000000011111111
00000152 SET @0000001a #0000000000000001
0000015f SET @0000001b $($00000018+$0000001a)
0000016c FIN
Machine Code (Test 1):
----------------------
0100000000000000000000000001010000001111111100000000010200000001000000000000000f030000000000000002000000
0104000000040000000000000001050000001111111100000000010600000001000000000000000f070000000400000006000000
0108000000080000000000000001090000001111111100000000010a00000001000000000000000f0b000000080000000a000000
010c0000000c00000000000000010d0000001111111100000000010e00000001000000000000000f0f0000000c0000000e000000
0110000000100000000000000001110000001111111100000000011200000001000000000000000f130000001000000012000000
0114000000140000000000000001150000001111111100000000011600000001000000000000000f170000001400000016000000
0118000000180000000000000001190000001111111100000000011a00000001000000000000000f1b000000180000001a000000
28
Data Dump (Test 1):
-------------------
00000000 00 00 00 00 00 00 00 00 11 11 11 11 00 00 00 00
00000010 01 00 00 00 00 00 00 00 11 11 11 11 00 00 00 00
00000020 04 00 00 00 00 00 00 00 11 11 11 11 00 00 00 00
00000030 01 00 00 00 00 00 00 00 11 11 11 11 00 00 00 00
00000040 08 00 00 00 00 00 00 00 11 11 11 11 00 00 00 00
00000050 01 00 00 00 00 00 00 00 11 11 11 11 00 00 00 00
00000060 0c 00 00 00 00 00 00 00 11 11 11 11 00 00 00 00
00000070 01 00 00 00 00 00 00 00 11 11 11 11 00 00 00 00
00000080 10 00 00 00 00 00 00 00 11 11 11 11 00 00 00 00
00000090 01 00 00 00 00 00 00 00 11 11 11 11 00 00 00 00
000000a0 14 00 00 00 00 00 00 00 11 11 11 11 00 00 00 00
000000b0 01 00 00 00 00 00 00 00 11 11 11 11 00 00 00 00
000000c0 18 00 00 00 00 00 00 00 11 11 11 11 00 00 00 00
000000d0 01 00 00 00 00 00 00 00 11 11 11 11 00 00 00 00
000000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Assembly Code (Test 2):
-----------------------
00000000* SET @0000001c #000000000000001c
0000000d SET @0000001d #0000000011111111
0000001a SET @0000001e #0000000000000001
00000027 SET @0000001f $($0000001c+$0000001e)
00000034 SET @00000020 #0000000000000020
00000041 SET @00000021 #0000000011111111
0000004e SET @00000022 #0000000000000001
0000005b SET @00000023 $($00000020+$00000022)
00000068 SET @00000024 #0000000000000024
00000075 SET @00000025 #0000000011111111
00000082 SET @00000026 #0000000000000001
0000008f SET @00000027 $($00000024+$00000026)
0000009c SET @00000028 #0000000000000028
000000a9 SET @00000029 #0000000011111111
000000b6 SET @0000002a #0000000000000001
000000c3 SET @0000002b $($00000028+$0000002a)
000000d0 SET @0000002c #000000000000002c
000000dd SET @0000002d #0000000011111111
000000ea SET @0000002e #0000000000000001
000000f7 SET @0000002f $($0000002c+$0000002e)
00000104 SET @00000030 #0000000000000030
00000111 SET @00000031 #0000000011111111
0000011e SET @00000032 #0000000000000001
0000012b SET @00000033 $($00000030+$00000032)
00000138 SET @00000034 #0000000000000034
00000145 SET @00000035 #0000000011111111
00000152 SET @00000036 #0000000000000001
0000015f SET @00000037 $($00000034+$00000036)
0000016c SET @00000038 #0000000000000038
00000179 SET @00000039 #0000000011111111
00000186 SET @0000003a #0000000000000001
00000193 SET @0000003b $($0000003a+$00000038)
000001a0 FIN
Machine Code (Test 2):
----------------------
011c0000001c00000000000000011d0000001111111100000000011e00000001000000000000000f1f0000001c0000001e000000
0120000000200000000000000001210000001111111100000000012200000001000000000000000f230000002000000022000000
0124000000240000000000000001250000001111111100000000012600000001000000000000000f270000002400000026000000
0128000000280000000000000001290000001111111100000000012a00000001000000000000000f2b000000280000002a000000
012c0000002c00000000000000012d0000001111111100000000012e00000001000000000000000f2f0000002c0000002e000000
0130000000300000000000000001310000001111111100000000013200000001000000000000000f330000003000000032000000
0134000000340000000000000001350000001111111100000000013600000001000000000000000f370000003400000036000000
0138000000380000000000000001390000001111111100000000013a00000001000000000000000f3b0000003a00000038000000
28
Data Dump (Test 2):
-------------------
00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 1c 00 00 00 00 00 00 00 11 11 11 11 00 00 00 00
000000f0 01 00 00 00 00 00 00 00 11 11 11 11 00 00 00 00
00000100 20 00 00 00 00 00 00 00 11 11 11 11 00 00 00 00
00000110 01 00 00 00 00 00 00 00 11 11 11 11 00 00 00 00
00000120 24 00 00 00 00 00 00 00 11 11 11 11 00 00 00 00
00000130 01 00 00 00 00 00 00 00 11 11 11 11 00 00 00 00
00000140 28 00 00 00 00 00 00 00 11 11 11 11 00 00 00 00
00000150 01 00 00 00 00 00 00 00 11 11 11 11 00 00 00 00
00000160 2c 00 00 00 00 00 00 00 11 11 11 11 00 00 00 00
00000170 01 00 00 00 00 00 00 00 11 11 11 11 00 00 00 00
00000180 30 00 00 00 00 00 00 00 11 11 11 11 00 00 00 00
00000190 01 00 00 00 00 00 00 00 11 11 11 11 00 00 00 00
000001a0 34 00 00 00 00 00 00 00 11 11 11 11 00 00 00 00
000001b0 01 00 00 00 00 00 00 00 11 11 11 11 00 00 00 00
000001c0 38 00 00 00 00 00 00 00 11 11 11 11 00 00 00 00
000001d0 01 00 00 00 00 00 00 00 11 11 11 11 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Assembly Code (Test 3):
-----------------------
00000000* SET @00000000 #000000000000003f
0000000d SET @00000001 #0000000000000001
0000001a SET @00000002 $($00000001+$00000000)
00000027 FIN
Machine Code (Test 3):
-----------------------
01000000003f00000000000000010100000001000000000000000f02000000010000000000000028
Runtime Error (Test 3):
-----------------------
error: overflow
Assembly Code (Test 4):
-----------------------
00000000 SET @00000000 #0000000000000040
0000000d SET @00000001 #0000000000000001
0000001a* SET @00000002 $($00000001+$00000000)
00000027 FIN
Machine Code (Test 4):
----------------------
01000000004000000000000000010100000001000000000000000f02000000010000000000000028
Runtime Error (Test 4):
-----------------------
error: overflow
Assembly Code (Test 5):
-----------------------
00000000* SET @00000000 #000000000000003a
0000000d SET @00000001 #0000000000000040
0000001a SET @00000002 $($00000001+$00000000)
00000027 FIN
Machine Code (Test 5):
----------------------
01000000003a00000000000000010100000040000000000000000f02000000010000000000000028
Runtime Error (Test 5):
-----------------------
error: overflow
</pre>
</div>
</div>
<div style="visibility: visible;" id="footer">
<p>
<div class="footer-icon"><a target="_blank" href="//ciyam.org/"><img src="logo-gryscl-128.png" /></a></div>
&copy; 2012-2015 CIYAM Developers
</p>
</div>
</body>
</html>

287
docs/at_test_set_ind.html

@ -0,0 +1,287 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>CIYAM AT - Test for AT instruction code 0x0e (SET_IND)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="copyright" content="Copyright 2015 CIYAM Developers"/>
<link rel="stylesheet" href="document.css" type="text/css"/>
</head>
<div id="content">
<div id="header">
<div id="appname"><a href="//ciyam.org/at">AT</a></div>
<h3 class="right-top">Test for AT instruction code 0x0e (SET_IND)</h3>
</div>
<div id="main">
<div id="text">
<pre>
Test for AT instruction code 0x0e (SET_IND)
-------------------------------------------
For each test the assembly and machine code are listed as is the data dump or expected error if test case has
been created specifically to fail (with a data dump if any data was expected to have changed before the error
occurred).
A summary of the tests follows:
Test 1 - Check some basic usage (odd addresses).
Test 2 - Check full address range.
Test 3 - Copying to address out of range.
Test 4 - Copying from address out of range.
Test 5 - Copying to address out of range.
Test 6 - Copying from address out of range.
Assembly Code (Test 1):
-----------------------
00000000* SET @00000000 #000000000000002f
0000000d SET @0000002f #1111111111111111
0000001a SET @00000001 $($00000000)
00000023 SET @00000003 $($00000000)
0000002c SET @00000005 $($00000000)
00000035 SET @00000007 $($00000000)
0000003e SET @00000009 $($00000000)
00000047 SET @0000000b $($00000000)
00000050 SET @0000000d $($00000000)
00000059 SET @0000000f $($00000000)
00000062 SET @00000011 $($00000000)
0000006b SET @00000013 $($00000000)
00000074 SET @00000015 $($00000000)
0000007d SET @00000017 $($00000000)
00000086 SET @00000019 $($00000000)
0000008f SET @0000001b $($00000000)
00000098 SET @0000001d $($00000000)
000000a1 SET @0000001f $($00000000)
000000aa SET @00000021 $($00000000)
000000b3 SET @00000023 $($00000000)
000000bc SET @00000025 $($00000000)
000000c5 SET @00000027 $($00000000)
000000ce SET @00000029 $($00000000)
000000d7 SET @0000002b $($00000000)
000000e0 SET @0000002d $($00000000)
000000e9 SET @0000002f $($00000000)
000000f2 SET @00000031 $($00000000)
000000fb SET @00000033 $($00000000)
00000104 SET @00000035 $($00000000)
0000010d SET @00000037 $($00000000)
00000116 SET @00000039 $($00000000)
0000011f SET @0000003b $($00000000)
00000128 SET @0000003d $($00000000)
00000131 SET @0000003f $($00000000)
0000013a FIN
Machine Code (Test 1):
----------------------
01000000002f00000000000000012f00000011111111111111110e01000000000000000e03000000000000000e05000000000000
000e07000000000000000e09000000000000000e0b000000000000000e0d000000000000000e0f000000000000000e1100000000
0000000e13000000000000000e15000000000000000e17000000000000000e19000000000000000e1b000000000000000e1d0000
00000000000e1f000000000000000e21000000000000000e23000000000000000e25000000000000000e27000000000000000e29
000000000000000e2b000000000000000e2d000000000000000e2f000000000000000e31000000000000000e3300000000000000
0e35000000000000000e37000000000000000e39000000000000000e3b000000000000000e3d000000000000000e3f0000000000
000028
Data Dump (Test 1):
-------------------
00000000 2f 00 00 00 00 00 00 00 11 11 11 11 11 11 11 11
00000010 00 00 00 00 00 00 00 00 11 11 11 11 11 11 11 11
00000020 00 00 00 00 00 00 00 00 11 11 11 11 11 11 11 11
00000030 00 00 00 00 00 00 00 00 11 11 11 11 11 11 11 11
00000040 00 00 00 00 00 00 00 00 11 11 11 11 11 11 11 11
00000050 00 00 00 00 00 00 00 00 11 11 11 11 11 11 11 11
00000060 00 00 00 00 00 00 00 00 11 11 11 11 11 11 11 11
00000070 00 00 00 00 00 00 00 00 11 11 11 11 11 11 11 11
00000080 00 00 00 00 00 00 00 00 11 11 11 11 11 11 11 11
00000090 00 00 00 00 00 00 00 00 11 11 11 11 11 11 11 11
000000a0 00 00 00 00 00 00 00 00 11 11 11 11 11 11 11 11
000000b0 00 00 00 00 00 00 00 00 11 11 11 11 11 11 11 11
000000c0 00 00 00 00 00 00 00 00 11 11 11 11 11 11 11 11
000000d0 00 00 00 00 00 00 00 00 11 11 11 11 11 11 11 11
000000e0 00 00 00 00 00 00 00 00 11 11 11 11 11 11 11 11
000000f0 00 00 00 00 00 00 00 00 11 11 11 11 11 11 11 11
00000100 00 00 00 00 00 00 00 00 11 11 11 11 11 11 11 11
00000110 00 00 00 00 00 00 00 00 11 11 11 11 11 11 11 11
00000120 00 00 00 00 00 00 00 00 11 11 11 11 11 11 11 11
00000130 00 00 00 00 00 00 00 00 11 11 11 11 11 11 11 11
00000140 00 00 00 00 00 00 00 00 11 11 11 11 11 11 11 11
00000150 00 00 00 00 00 00 00 00 11 11 11 11 11 11 11 11
00000160 00 00 00 00 00 00 00 00 11 11 11 11 11 11 11 11
00000170 00 00 00 00 00 00 00 00 11 11 11 11 11 11 11 11
00000180 00 00 00 00 00 00 00 00 11 11 11 11 11 11 11 11
00000190 00 00 00 00 00 00 00 00 11 11 11 11 11 11 11 11
000001a0 00 00 00 00 00 00 00 00 11 11 11 11 11 11 11 11
000001b0 00 00 00 00 00 00 00 00 11 11 11 11 11 11 11 11
000001c0 00 00 00 00 00 00 00 00 11 11 11 11 11 11 11 11
000001d0 00 00 00 00 00 00 00 00 11 11 11 11 11 11 11 11
000001e0 00 00 00 00 00 00 00 00 11 11 11 11 11 11 11 11
000001f0 00 00 00 00 00 00 00 00 11 11 11 11 11 11 11 11
Assembly Code (Test 2):
-----------------------
00000000* SET @00000000 #0000000000000022
0000000d SET @00000002 $($00000000)
00000016 SET @00000004 $($00000002)
0000001f SET @00000006 $($00000004)
00000028 SET @00000008 $($00000006)
00000031 SET @0000000a $($00000008)
0000003a SET @0000000c $($0000000a)
00000043 SET @0000000e $($0000000c)
0000004c SET @00000010 $($0000000e)
00000055 SET @00000012 $($00000010)
0000005e SET @00000014 $($00000012)
00000067 SET @00000016 $($00000014)
00000070 SET @00000018 $($00000016)
00000079 SET @0000001a $($00000018)
00000082 SET @0000001c $($0000001a)
0000008b SET @0000001e $($0000001c)
00000094 SET @00000020 $($0000001e)
0000009d SET @00000022 $($00000020)
000000a6 SET @00000024 $($00000022)
000000af SET @00000026 $($00000024)
000000b8 SET @00000028 $($00000026)
000000c1 SET @0000002a $($00000028)
000000ca SET @0000002c $($0000002a)
000000d3 SET @0000002e $($0000002c)
000000dc SET @00000030 $($0000002e)
000000e5 SET @00000032 $($00000030)
000000ee SET @00000034 $($00000032)
000000f7 SET @00000036 $($00000034)
00000100 SET @00000038 $($00000036)
00000109 SET @0000003a $($00000038)
00000112 SET @0000003c $($0000003a)
0000011b SET @0000003e $($0000003c)
00000124 FIN
Machine Code (Test 2):
----------------------
010000000022000000000000000e02000000000000000e04000000020000000e06000000040000000e08000000060000000e0a00
0000080000000e0c0000000a0000000e0e0000000c0000000e100000000e0000000e12000000100000000e14000000120000000e
16000000140000000e18000000160000000e1a000000180000000e1c0000001a0000000e1e0000001c0000000e200000001e0000
000e22000000200000000e24000000220000000e26000000240000000e28000000260000000e2a000000280000000e2c0000002a
0000000e2e0000002c0000000e300000002e0000000e32000000300000000e34000000320000000e36000000340000000e380000
00360000000e3a000000380000000e3c0000003a0000000e3e0000003c00000028
Data Dump (Test 2):
-------------------
00000000 22 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000020 22 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000040 22 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000060 22 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 22 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000a0 22 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000c0 22 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 22 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000100 22 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000120 22 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 22 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000160 22 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000180 22 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001a0 22 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001c0 22 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001e0 22 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Assembly Code (Test 3):
-----------------------
00000000* IDN @00000000 #ffffffffffffffff
0000000d IDN @00000040 @00000000
0000001a FIN
Machine Code (Test 3):
-----------------------
0100000000ffffffffffffffff0e400000000000000028
Runtime Error (Test 3):
-----------------------
error: overflow
Assembly Code (Test 4):
-----------------------
00000000* SET @00000000 #ffffffffffffffff
0000000d SET @00000040 $($00000000)
00000016 FIN
Machine Code (Test 4):
----------------------
0100000000ffffffffffffffff0e000000004000000028
Runtime Error (Test 4):
-----------------------
error: overflow
Assembly Code (Test 5):
-----------------------
00000000* SET @00000000 #ffffffffffffffff
0000000d SET @ffffffff $($00000000)
00000016 FIN
Machine Code (Test 5):
----------------------
0100000000ffffffffffffffff0effffffff0000000028
Runtime Error (Test 5):
-----------------------
error: overflow
Assembly Code (Test 6):
-----------------------
00000000* IDN @00000000 #ffffffffffffffff
0000000d IDN @00000000 @ffffffff
0000001a FIN
Machine Code (Test 6):
----------------------
0100000000ffffffffffffffff0e00000000ffffffff28
Runtime Error (Test 6):
-----------------------
error: overflow
</pre>
</div>
</div>
<div style="visibility: visible;" id="footer">
<p>
<div class="footer-icon"><a target="_blank" href="//ciyam.org/"><img src="logo-gryscl-128.png" /></a></div>
&copy; 2012-2015 CIYAM Developers
</p>
</div>
</body>
</html>

130
docs/at_test_set_pcs.html

@ -0,0 +1,130 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>CIYAM AT - Test for AT instruction code 0x30 (SET_PCS)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="copyright" content="Copyright 2015 CIYAM Developers"/>
<link rel="stylesheet" href="document.css" type="text/css"/>
</head>
<div id="content">
<div id="header">
<div id="appname"><a href="//ciyam.org/at">AT</a></div>
<h3 class="right-top">Test for AT instruction code 0x30 (SET_PCS)</h3>
</div>
<div id="main">
<div id="text">
<pre>
Test for AT instruction code 0x30 (SET_PCS)
-------------------------------------------
For each test the assembly and machine code are listed as is the data dump or expected error if test case has
been created specifically to fail (with a data dump if any data was expected to have changed before the error
occurred).
A summary of the tests follows:
Test 1 - Basic usage.
Test 2 - Only SET_PCS.
Assembly Code (Test 1):
-----------------------
00000000 SET @00000000 #0000000011111111
0000000d PCS
0000000e SET @00000000 #0000000022222222
0000001b PCS
0000001c PCS
0000001d FIN
Machine Code (Test 1):
----------------------
010000000011111111000000003001000000002222222200000000303028
State (Test 1):
---------------
pc: 0000001d
cs: 0
us: 0
pcs: 0000001d
steps: 6
Data Dump (Test 1):
-------------------
00000000 22 22 22 22 00 00 00 00 00 00 00 00 00 00 00 00
00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Assembly Code (Test 2):
-----------------------
00000000* PCS
00000001 PCS
00000002 PCS
00000003 PCS
00000004 FIN
Machine Code (Test 2):
----------------------
3030303028
State (Test 2):
---------------
pc: 00000004
cs: 0
us: 0
pcs: 00000004
steps: 5
</pre>
</div>
</div>
<div style="visibility: visible;" id="footer">
<p>
<div class="footer-icon"><a target="_blank" href="//ciyam.org/"><img src="logo-gryscl-128.png" /></a></div>
&copy; 2012-2015 CIYAM Developers
</p>
</div>
</body>
</html>

432
docs/at_test_set_val.html

@ -0,0 +1,432 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>CIYAM AT - Test for AT instruction code 0x01 (SET_VAL)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="copyright" content="Copyright 2015 CIYAM Developers"/>
<link rel="stylesheet" href="document.css" type="text/css"/>
</head>
<div id="content">
<div id="header">
<div id="appname"><a href="//ciyam.org/at">AT</a></div>
<h3 class="right-top">Test for AT instruction code 0x01 (SET_VAL)</h3>
</div>
<div id="main">
<div id="text">
<pre>
Test for AT instruction code 0x01 (SET_VAL)
-------------------------------------------
For each test the assembly and machine code are listed as is the data dump or expected error if test case has
been created specifically to fail (with a data dump if any data was expected to have changed before the error
occurred).
A summary of the tests follows:
Test 1 - Check some basic usage.
Test 2 - Check highest value works.
Test 3 - Check full address range.
Test 4 - Check overwriting works.
Test 5 - Check address range edge fail.
Test 6 - Check negative adddress fails.
Assembly Code (Test 1):
-----------------------
00000000* SET @00000000 #0000000000000000
0000000d SET @00000001 #0000000000000001
0000001a SET @00000002 #0000000000000002
00000027 SET @00000003 #0000000000000003
00000034 SET @00000004 #0000000000000004
00000041 SET @00000005 #0000000000000005
0000004e SET @00000006 #0000000000000006
0000005b SET @00000007 #0000000000000007
00000068 SET @00000008 #0000000000000008
00000075 SET @00000009 #0000000000000009
00000082 SET @0000000a #000000000000000a
0000008f SET @0000000b #000000000000000b
0000009c SET @0000000c #000000000000000c
000000a9 SET @0000000d #000000000000000d
000000b6 SET @0000000e #000000000000000e
000000c3 SET @0000000f #000000000000000f
000000d0 SET @00000010 #0000000000000010
000000dd SET @00000011 #0000000000000011
000000ea SET @00000012 #0000000000000012
000000f7 SET @00000013 #0000000000000013
00000104 SET @00000014 #0000000000000014
00000111 SET @00000015 #0000000000000015
0000011e SET @00000016 #0000000000000016
0000012b SET @00000017 #0000000000000017
00000138 SET @00000018 #0000000000000018
00000145 SET @00000019 #0000000000000019
00000152 SET @0000001a #000000000000001a
0000015f SET @0000001b #000000000000001b
0000016c SET @0000001c #000000000000001c
00000179 SET @0000001d #000000000000001d
00000186 SET @0000001e #000000000000001e
00000193 SET @0000001f #000000000000001f
000001a0 SET @00000020 #0000000000000020
000001ad SET @00000021 #0000000000000021
000001ba SET @00000022 #0000000000000022
000001c7 SET @00000023 #0000000000000023
000001d4 SET @00000024 #0000000000000024
000001e1 SET @00000025 #0000000000000025
000001ee SET @00000026 #0000000000000026
000001fb FIN
Machine Code (Test 1):
----------------------
01000000000000000000000000010100000001000000000000000102000000020000000000000001030000000300000000000000
01040000000400000000000000010500000005000000000000000106000000060000000000000001070000000700000000000000
0108000000080000000000000001090000000900000000000000010a0000000a00000000000000010b0000000b00000000000000
010c0000000c00000000000000010d0000000d00000000000000010e0000000e00000000000000010f0000000f00000000000000
01100000001000000000000000011100000011000000000000000112000000120000000000000001130000001300000000000000
01140000001400000000000000011500000015000000000000000116000000160000000000000001170000001700000000000000
0118000000180000000000000001190000001900000000000000011a0000001a00000000000000011b0000001b00000000000000
011c0000001c00000000000000011d0000001d00000000000000011e0000001e00000000000000011f0000001f00000000000000
01200000002000000000000000012100000021000000000000000122000000220000000000000001230000002300000000000000
01240000002400000000000000012500000025000000000000000126000000260000000000000028
Data Dump (Test 1):
-------------------
00000000 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00
00000010 02 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00
00000020 04 00 00 00 00 00 00 00 05 00 00 00 00 00 00 00
00000030 06 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00
00000040 08 00 00 00 00 00 00 00 09 00 00 00 00 00 00 00
00000050 0a 00 00 00 00 00 00 00 0b 00 00 00 00 00 00 00
00000060 0c 00 00 00 00 00 00 00 0d 00 00 00 00 00 00 00
00000070 0e 00 00 00 00 00 00 00 0f 00 00 00 00 00 00 00
00000080 10 00 00 00 00 00 00 00 11 00 00 00 00 00 00 00
00000090 12 00 00 00 00 00 00 00 13 00 00 00 00 00 00 00
000000a0 14 00 00 00 00 00 00 00 15 00 00 00 00 00 00 00
000000b0 16 00 00 00 00 00 00 00 17 00 00 00 00 00 00 00
000000c0 18 00 00 00 00 00 00 00 19 00 00 00 00 00 00 00
000000d0 1a 00 00 00 00 00 00 00 1b 00 00 00 00 00 00 00
000000e0 1c 00 00 00 00 00 00 00 1d 00 00 00 00 00 00 00
000000f0 1e 00 00 00 00 00 00 00 1f 00 00 00 00 00 00 00
00000100 20 00 00 00 00 00 00 00 21 00 00 00 00 00 00 00
00000110 22 00 00 00 00 00 00 00 23 00 00 00 00 00 00 00
00000120 24 00 00 00 00 00 00 00 25 00 00 00 00 00 00 00
00000130 26 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Assembly Code (Test 2):
-----------------------
00000000* SET @00000000 #ffffffffffffffff
0000000d SET @00000001 #ffffffffffffffff
0000001a SET @00000004 #ffffffffffffffff
00000027 SET @00000005 #ffffffffffffffff
00000034 SET @00000008 #ffffffffffffffff
00000041 SET @00000009 #ffffffffffffffff
0000004e SET @0000000c #ffffffffffffffff
0000005b SET @0000000d #ffffffffffffffff
00000068 SET @00000010 #ffffffffffffffff
00000075 SET @00000011 #ffffffffffffffff
00000082 SET @00000014 #ffffffffffffffff
0000008f SET @00000015 #ffffffffffffffff
0000009c SET @00000018 #ffffffffffffffff
000000a9 SET @00000019 #ffffffffffffffff
000000b6 SET @0000001c #ffffffffffffffff
000000c3 SET @0000001d #ffffffffffffffff
000000d0 SET @00000020 #ffffffffffffffff
000000dd SET @00000021 #ffffffffffffffff
000000ea SET @00000024 #ffffffffffffffff
000000f7 SET @00000025 #ffffffffffffffff
00000104 SET @00000028 #ffffffffffffffff
00000111 SET @00000029 #ffffffffffffffff
0000011e SET @0000002c #ffffffffffffffff
0000012b SET @0000002d #ffffffffffffffff
00000138 SET @00000030 #ffffffffffffffff
00000145 SET @00000031 #ffffffffffffffff
00000152 SET @00000034 #ffffffffffffffff
0000015f SET @00000035 #ffffffffffffffff
0000016c SET @00000038 #ffffffffffffffff
00000179 SET @00000039 #ffffffffffffffff
00000186 SET @0000003c #ffffffffffffffff
00000193 SET @0000003d #ffffffffffffffff
000001a0 FIN
Machine Code (Test 2):
----------------------
0100000000ffffffffffffffff0101000000ffffffffffffffff0104000000ffffffffffffffff0105000000ffffffffffffffff
0108000000ffffffffffffffff0109000000ffffffffffffffff010c000000ffffffffffffffff010d000000ffffffffffffffff
0110000000ffffffffffffffff0111000000ffffffffffffffff0114000000ffffffffffffffff0115000000ffffffffffffffff
0118000000ffffffffffffffff0119000000ffffffffffffffff011c000000ffffffffffffffff011d000000ffffffffffffffff
0120000000ffffffffffffffff0121000000ffffffffffffffff0124000000ffffffffffffffff0125000000ffffffffffffffff
0128000000ffffffffffffffff0129000000ffffffffffffffff012c000000ffffffffffffffff012d000000ffffffffffffffff
0130000000ffffffffffffffff0131000000ffffffffffffffff0134000000ffffffffffffffff0135000000ffffffffffffffff
0138000000ffffffffffffffff0139000000ffffffffffffffff013c000000ffffffffffffffff013d000000ffffffffffffffff
28
Data Dump (Test 2):
-------------------
00000000 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000020 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000040 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000060 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
00000090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000a0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
000000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000c0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
000000f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000100 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
00000110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000120 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
00000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000160 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
00000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000180 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001a0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001c0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001e0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Assembly Code (Test 3):
-----------------------
00000000* SET @00000000 #0123456789abcdef
0000000d SET @00000005 #0123456789abcdef
0000001a SET @00000008 #0123456789abcdef
00000027 SET @0000000d #0123456789abcdef
00000034 SET @00000010 #0123456789abcdef
00000041 SET @00000015 #0123456789abcdef
0000004e SET @00000018 #0123456789abcdef
0000005b SET @0000001d #0123456789abcdef
00000068 SET @00000020 #0123456789abcdef
00000075 SET @00000025 #0123456789abcdef
00000082 SET @00000028 #0123456789abcdef
0000008f SET @0000002d #0123456789abcdef
0000009c SET @00000030 #0123456789abcdef
000000a9 SET @00000035 #0123456789abcdef
000000b6 SET @00000038 #0123456789abcdef
000000c3 SET @0000003d #0123456789abcdef
000000d0 FIN
Machine Code (Test 3):
----------------------
0100000000efcdab89674523010105000000efcdab89674523010108000000efcdab8967452301010d000000efcdab8967452301
0110000000efcdab89674523010115000000efcdab89674523010118000000efcdab8967452301011d000000efcdab8967452301
0120000000efcdab89674523010125000000efcdab89674523010128000000efcdab8967452301012d000000efcdab8967452301
0130000000efcdab89674523010135000000efcdab89674523010138000000efcdab8967452301013d000000efcdab8967452301
28
Data Dump (Test 3):
-------------------
00000000 ef cd ab 89 67 45 23 01 00 00 00 00 00 00 00 00
00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000020 00 00 00 00 00 00 00 00 ef cd ab 89 67 45 23 01
00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000040 ef cd ab 89 67 45 23 01 00 00 00 00 00 00 00 00
00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000060 00 00 00 00 00 00 00 00 ef cd ab 89 67 45 23 01
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 ef cd ab 89 67 45 23 01 00 00 00 00 00 00 00 00
00000090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000a0 00 00 00 00 00 00 00 00 ef cd ab 89 67 45 23 01
000000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000c0 ef cd ab 89 67 45 23 01 00 00 00 00 00 00 00 00
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 00 00 00 00 00 00 00 00 ef cd ab 89 67 45 23 01
000000f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000100 ef cd ab 89 67 45 23 01 00 00 00 00 00 00 00 00
00000110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000120 00 00 00 00 00 00 00 00 ef cd ab 89 67 45 23 01
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 ef cd ab 89 67 45 23 01 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000160 00 00 00 00 00 00 00 00 ef cd ab 89 67 45 23 01
00000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000180 ef cd ab 89 67 45 23 01 00 00 00 00 00 00 00 00
00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001a0 00 00 00 00 00 00 00 00 ef cd ab 89 67 45 23 01
000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001c0 ef cd ab 89 67 45 23 01 00 00 00 00 00 00 00 00
000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 ef cd ab 89 67 45 23 01
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Assembly Code (Test 4):
-----------------------
00000000* SET @00000000 #0000000000000000
0000000d SET @00000000 #ffffffffffffffff
0000001a SET @00000000 #1111111111111111
00000027 SET @00000001 #2222222222222222
00000034 SET @00000010 #0000000000000000
00000041 SET @00000010 #ffffffffffffffff
0000004e SET @00000010 #3333333333333333
0000005b SET @00000011 #4444444444444444
00000068 SET @00000020 #0000000000000000
00000075 SET @00000020 #ffffffffffffffff
00000082 SET @00000020 #5555555555555555
0000008f SET @00000021 #6666666666666666
0000009c SET @00000030 #0000000000000000
000000a9 SET @00000030 #ffffffffffffffff
000000b6 SET @00000030 #7777777777777777
000000c3 SET @00000031 #8888888888888888
000000d0 FIN
Machine Code (Test 4):
----------------------
010000000000000000000000000100000000ffffffffffffffff0100000000111111111111111101010000002222222222222222
011000000000000000000000000110000000ffffffffffffffff0110000000333333333333333301110000004444444444444444
012000000000000000000000000120000000ffffffffffffffff0120000000555555555555555501210000006666666666666666
013000000000000000000000000130000000ffffffffffffffff0130000000777777777777777701310000008888888888888888
28
Data Dump (Test 4):
-------------------
00000000 11 11 11 11 11 11 11 11 22 22 22 22 22 22 22 22
00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 33 33 33 33 33 33 33 33 44 44 44 44 44 44 44 44
00000090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000100 55 55 55 55 55 55 55 55 66 66 66 66 66 66 66 66
00000110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000180 77 77 77 77 77 77 77 77 88 88 88 88 88 88 88 88
00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Assembly Code (Test 5):
-----------------------
00000000* SET @0000003f #1111111111111111
0000000d SET @00000040 #1111111111111111
0000001a FIN
Machine Code (Test 5):
----------------------
013f00000011111111111111110140000000111111111111111128
Runtime Error (Test 5):
-----------------------
error: overflow
Data Dump (Test 5):
-------------------
00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001f0 00 00 00 00 00 00 00 00 11 11 11 11 11 11 11 11
Assembly Code (Test 6):
-----------------------
00000000* SET @ffffffff #1111111111111111
0000000d FIN
Machine Code (Test 6):
----------------------
01ffffffff111111111111111128
Runtime Error (Test 6):
-----------------------
error: overflow
</pre>
</div>
</div>
<div style="visibility: visible;" id="footer">
<p>
<div class="footer-icon"><a target="_blank" href="//ciyam.org/"><img src="logo-gryscl-128.png" /></a></div>
&copy; 2012-2015 CIYAM Developers
</p>
</div>
</body>
</html>

104
docs/at_test_stp_imd.html

@ -0,0 +1,104 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>CIYAM AT - Test for AT instruction code 0x29 (STP_IMD)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="copyright" content="Copyright 2015 CIYAM Developers"/>
<link rel="stylesheet" href="document.css" type="text/css"/>
</head>
<div id="content">
<div id="header">
<div id="appname"><a href="//ciyam.org/at">AT</a></div>
<h3 class="right-top">Test for AT instruction code 0x29 (STP_IMD)</h3>
</div>
<div id="main">
<div id="text">
<pre>
Test for AT instruction code 0x29 (STP_IMD)
-------------------------------------------
For each test the assembly and machine code are listed as is the data dump or expected error if test case has
been created specifically to fail (with a data dump if any data was expected to have changed before the error
occurred).
A summary of the tests follows:
Test 1 - Basic usage.
Assembly Code (Test 1):
-----------------------
00000000* SET @00000000 #0000000011111111
0000000d STZ $00000000
00000012 SET @00000000 #0000000000000000
0000001f STP
Machine Code (Test 1):
----------------------
0100000000111111110000000027000000000100000000000000000000000029
Data Dump (Test 1):
-------------------
00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
State Info (Test 1):
--------------------
pc: 0000001f
cs: 0
us: 0
pcs: 00000000
steps: 4
</pre>
</div>
</div>
<div style="visibility: visible;" id="footer">
<p>
<div class="footer-icon"><a target="_blank" href="//ciyam.org/"><img src="logo-gryscl-128.png" /></a></div>
&copy; 2012-2015 CIYAM Developers
</p>
</div>
</body>
</html>

124
docs/at_test_stz_dat.html

@ -0,0 +1,124 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>CIYAM AT - Test for AT instruction code 0x27 (STZ_DAT)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="copyright" content="Copyright 2015 CIYAM Developers"/>
<link rel="stylesheet" href="document.css" type="text/css"/>
</head>
<div id="content">
<div id="header">
<div id="appname"><a href="//ciyam.org/at">AT</a></div>
<h3 class="right-top">Test for AT instruction code 0x27 (STZ_DAT)</h3>
</div>
<div id="main">
<div id="text">
<pre>
Test for AT instruction code 0x27 (STZ_DAT)
-------------------------------------------
For each test the assembly and machine code are listed as is the data dump or expected error if test case has
been created specifically to fail (with a data dump if any data was expected to have changed before the error
occurred).
A summary of the tests follows:
Test 1 - Basic usage.
Test 2 - Jump to not existing address.
Assembly Code (Test 1):
-----------------------
00000000* SET @00000000 #0000000011111111
0000000d STZ $00000000
00000012 SET @00000000 #0000000000000000
0000001f STZ $00000000
00000024 SET @00000000 #0000000011111111
00000031 FIN
Machine Code (Test 1):
----------------------
0100000000111111110000000027000000000100000000000000000000000027000000000100000000111111110000000028
Data Dump (Test 1):
-------------------
00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
State Info (Test 1):
--------------------
pc: 0000001f
cs: 0
us: 0
pcs: 00000000
steps: 4
Assembly Code (Test 2):
-----------------------
00000000* SET @00000000 #0000000011111111
0000000d STZ $11111111
00000012 FIN
Machine Code (Test 2):
----------------------
01000000001111111100000000271111111128
Runtime Error (Test 2):
-----------------------
error: overflow
</pre>
</div>
</div>
<div style="visibility: visible;" id="footer">
<p>
<div class="footer-icon"><a target="_blank" href="//ciyam.org/"><img src="logo-gryscl-128.png" /></a></div>
&copy; 2012-2015 CIYAM Developers
</p>
</div>
</body>
</html>

474
docs/at_test_sub_dat.html

@ -0,0 +1,474 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>CIYAM AT - Test for AT instruction code 0x07 (SUB_DAT)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="copyright" content="Copyright 2015 CIYAM Developers"/>
<link rel="stylesheet" href="document.css" type="text/css"/>
</head>
<div id="content">
<div id="header">
<div id="appname"><a href="//ciyam.org/at">AT</a></div>
<h3 class="right-top">Test for AT instruction code 0x07 (SUB_DAT)</h3>
</div>
<div id="main">
<div id="text">
<pre>
Test for AT instruction code 0x07 (SUB_DAT)
-------------------------------------------
For each test the assembly and machine code are listed as is the data dump or expected error if test case has
been created specifically to fail (with a data dump if any data was expected to have changed before the error
occurred).
A summary of the tests follows:
Test 1 - Check some basic usage.
Test 2 - Check highest value works.
Test 3 - Check full address range.
Test 4 - Check overwriting works.
Test 5 - Check address range edge fail.
Test 6 - Check negative adddress fails.
Assembly Code (Test 1):
-----------------------
00000000* SET @00000000 #000000000000000f
0000000d SET @00000001 #000000000000000e
0000001a SET @00000002 #000000000000000d
00000027 SET @00000003 #000000000000000c
00000034 SET @00000004 #000000000000000b
00000041 SET @00000005 #000000000000000a
0000004e SET @00000006 #0000000000000009
0000005b SET @00000007 #0000000000000008
00000068 SET @00000008 #0000000000000007
00000075 SET @00000009 #0000000000000006
00000082 SET @0000000a #0000000000000005
0000008f SET @0000000b #0000000000000004
0000009c SET @0000000c #0000000000000003
000000a9 SET @0000000d #0000000000000002
000000b6 SET @0000000e #0000000000000001
000000c3 SET @0000000f #0000000000000000
000000d0 SUB @00000000 $00000001
000000d9 SUB @00000001 $00000002
000000e2 SUB @00000002 $00000003
000000eb SUB @00000003 $00000004
000000f4 SUB @00000004 $00000005
000000fd SUB @00000005 $00000006
00000106 SUB @00000006 $00000007
0000010f SUB @00000007 $00000008
00000118 SUB @00000008 $00000009
00000121 SUB @00000009 $0000000a
0000012a SUB @0000000a $0000000b
00000133 SUB @0000000b $0000000c
0000013c SUB @0000000c $0000000d
00000145 SUB @0000000d $0000000e
0000014e SUB @0000000e $0000000f
00000157 FIN
Machine Code (Test 1):
----------------------
01000000000f0000000000000001010000000e0000000000000001020000000d0000000000000001030000000c00000000000000
01040000000b0000000000000001050000000a000000000000000106000000090000000000000001070000000800000000000000
0108000000070000000000000001090000000600000000000000010a0000000500000000000000010b0000000400000000000000
010c0000000300000000000000010d0000000200000000000000010e0000000100000000000000010f0000000000000000000000
07000000000100000007010000000200000007020000000300000007030000000400000007040000000500000007050000000600
000007060000000700000007070000000800000007080000000900000007090000000a000000070a0000000b000000070b000000
0c000000070c0000000d000000070d0000000e000000070e0000000f00000028
Data Dump (Test 1):
-------------------
00000000 01 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00
00000010 01 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00
00000020 01 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00
00000030 01 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00
00000040 01 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00
00000050 01 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00
00000060 01 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00
00000070 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Assembly Code (Test 2):
-----------------------
00000000* SET @00000001 #ffffffffffffffff
0000000d SET @00000004 #ffffffffffffffff
0000001a SET @00000007 #0000000000000000
00000027 SET @0000000a #ffffffffffffffff
00000034 SET @0000000d #ffffffffffffffff
00000041 SET @00000010 #0000000000000000
0000004e SET @00000013 #ffffffffffffffff
0000005b SET @00000016 #ffffffffffffffff
00000068 SET @00000019 #0000000000000000
00000075 SET @0000001c #ffffffffffffffff
00000082 SET @0000001f #ffffffffffffffff
0000008f SET @00000022 #0000000000000000
0000009c SET @00000025 #ffffffffffffffff
000000a9 SET @00000028 #ffffffffffffffff
000000b6 SET @0000002b #0000000000000000
000000c3 SET @0000002e #ffffffffffffffff
000000d0 SET @00000031 #ffffffffffffffff
000000dd SET @00000034 #0000000000000000
000000ea SET @00000037 #ffffffffffffffff
000000f7 SET @0000003a #ffffffffffffffff
00000104 SET @0000003d #0000000000000000
00000111 SUB @00000001 $00000004
0000011a SUB @00000004 $00000007
00000123 SUB @00000007 $0000000a
0000012c SUB @0000000a $0000000d
00000135 SUB @0000000d $00000010
0000013e SUB @00000010 $00000013
00000147 SUB @00000013 $00000016
00000150 SUB @00000016 $00000019
00000159 SUB @00000019 $0000001c
00000162 SUB @0000001c $0000001f
0000016b SUB @0000001f $00000022
00000174 SUB @00000022 $00000025
0000017d SUB @00000025 $00000028
00000186 SUB @00000028 $0000002b
0000018f SUB @0000002b $0000002e
00000198 SUB @0000002e $00000031
000001a1 SUB @00000031 $00000034
000001aa SUB @00000034 $00000037
000001b3 SUB @00000037 $0000003a
000001bc SUB @0000003a $0000003d
000001c5 SUB @0000003d $0000003d
000001ce FIN
Machine Code (Test 2):
----------------------
0101000000ffffffffffffffff0104000000ffffffffffffffff01070000000000000000000000010a000000ffffffffffffffff
010d000000ffffffffffffffff011000000000000000000000000113000000ffffffffffffffff0116000000ffffffffffffffff
01190000000000000000000000011c000000ffffffffffffffff011f000000ffffffffffffffff01220000000000000000000000
0125000000ffffffffffffffff0128000000ffffffffffffffff012b0000000000000000000000012e000000ffffffffffffffff
0131000000ffffffffffffffff013400000000000000000000000137000000ffffffffffffffff013a000000ffffffffffffffff
013d000000000000000000000007010000000400000007040000000700000007070000000a000000070a0000000d000000070d00
00001000000007100000001300000007130000001600000007160000001900000007190000001c000000071c0000001f00000007
1f0000002200000007220000002500000007250000002800000007280000002b000000072b0000002e000000072e000000310000
0007310000003400000007340000003700000007370000003a000000073a0000003d000000073d0000003d00000028
Data Dump (Test 2):
-------------------
00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000020 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
00000030 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000060 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000b0 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
000000c0 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff
00000100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000110 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000180 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff
00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001a0 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Assembly Code (Test 3):
-----------------------
00000000* SET @00000001 #efcdab8967452301
0000000d SET @00000004 #debc9a7856341200
0000001a SET @00000007 #cdab896745230100
00000027 SET @0000000a #bc9a785634120000
00000034 SET @0000000d #ab89674523010000
00000041 SET @00000010 #9a78563412000000
0000004e SET @00000013 #8967452301000000
0000005b SET @00000016 #7856341200000000
00000068 SET @00000019 #6745230100000000
00000075 SET @0000001c #5634120000000000
00000082 SET @0000001f #4523010000000000
0000008f SET @00000022 #efcdab8967452301
0000009c SET @00000025 #debc9a7856341200
000000a9 SET @00000028 #cdab896745230100
000000b6 SET @0000002b #bc9a785634120000
000000c3 SET @0000002e #ab89674523010000
000000d0 SET @00000031 #9a78563412000000
000000dd SET @00000034 #8967452301000000
000000ea SET @00000037 #7856341200000000
000000f7 SET @0000003a #6745230100000000
00000104 SET @0000003d #5634120000000000
00000111 SUB @00000001 $00000004
0000011a SUB @00000004 $00000007
00000123 SUB @00000007 $0000000a
0000012c SUB @0000000a $0000000d
00000135 SUB @0000000d $00000010
0000013e SUB @00000010 $00000013
00000147 SUB @00000013 $00000016
00000150 SUB @00000016 $00000019
00000159 SUB @00000019 $0000001c
00000162 SUB @0000001c $0000001f
0000016b SUB @0000001f $00000022
00000174 SUB @00000022 $00000025
0000017d SUB @00000025 $00000028
00000186 SUB @00000028 $0000002b
0000018f SUB @0000002b $0000002e
00000198 SUB @0000002e $00000031
000001a1 SUB @00000031 $00000034
000001aa SUB @00000034 $00000037
000001b3 SUB @00000037 $0000003a
000001bc SUB @0000003a $0000003d
000001c5 SUB @0000003d $0000003d
000001ce FIN
Machine Code (Test 3):
----------------------
01010000000123456789abcdef010400000000123456789abcde0107000000000123456789abcd010a0000000000123456789abc
010d00000000000123456789ab0110000000000000123456789a0113000000000000012345678901160000000000000012345678
01190000000000000001234567011c0000000000000000123456011f000000000000000001234501220000000123456789abcdef
012500000000123456789abcde0128000000000123456789abcd012b0000000000123456789abc012e00000000000123456789ab
0131000000000000123456789a0134000000000000012345678901370000000000000012345678013a0000000000000001234567
013d000000000000000012345607010000000400000007040000000700000007070000000a000000070a0000000d000000070d00
00001000000007100000001300000007130000001600000007160000001900000007190000001c000000071c0000001f00000007
1f0000002200000007220000002500000007250000002800000007280000002b000000072b0000002e000000072e000000310000
0007310000003400000007340000003700000007370000003a000000073a0000003d000000073d0000003d00000028
Data Dump (Test 3):
-------------------
00000000 00 00 00 00 00 00 00 00 01 11 11 11 11 11 11 11
00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000020 00 11 11 11 11 11 11 11 00 00 00 00 00 00 00 00
00000030 00 00 00 00 00 00 00 00 00 01 11 11 11 11 11 11
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000050 00 00 11 11 11 11 11 11 00 00 00 00 00 00 00 00
00000060 00 00 00 00 00 00 00 00 00 00 01 11 11 11 11 11
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 00 00 00 11 11 11 11 11 00 00 00 00 00 00 00 00
00000090 00 00 00 00 00 00 00 00 00 00 00 01 11 11 11 11
000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000b0 00 00 00 00 11 11 11 11 00 00 00 00 00 00 00 00
000000c0 00 00 00 00 00 00 00 00 00 00 00 00 01 11 11 11
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 00 00 00 00 00 11 11 11 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 ff dc ba 98 76 55 55 55
00000100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000110 01 11 11 11 11 11 11 11 00 00 00 00 00 00 00 00
00000120 00 00 00 00 00 00 00 00 00 11 11 11 11 11 11 11
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 00 01 11 11 11 11 11 11 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 00 00 11 11 11 11 11 11
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 00 00 01 11 11 11 11 11 00 00 00 00 00 00 00 00
00000180 00 00 00 00 00 00 00 00 00 00 00 11 11 11 11 11
00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001a0 00 00 00 01 11 11 11 11 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 00 00 00 00 11 11 11 11
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 00 00 00 00 01 11 11 11 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Assembly Code (Test 4):
-----------------------
00000000* SET @00000000 #cccccccccccccccc
0000000d SET @00000001 #4444444444444444
0000001a SET @00000002 #4444444444444444
00000027 SET @00000010 #dddddddddddddddd
00000034 SET @00000011 #3333333333333333
00000041 SET @00000012 #4444444444444444
0000004e SET @00000020 #cccccccccccccccc
0000005b SET @00000021 #2222222222222222
00000068 SET @00000022 #4444444444444444
00000075 SET @00000030 #9999999999999999
00000082 SET @00000031 #1111111111111111
0000008f SET @00000032 #4444444444444444
0000009c SUB @00000000 $00000001
000000a5 SUB @00000000 $00000001
000000ae SUB @00000010 $00000011
000000b7 SUB @00000010 $00000011
000000c0 SUB @00000010 $00000011
000000c9 SUB @00000020 $00000021
000000d2 SUB @00000020 $00000021
000000db SUB @00000020 $00000021
000000e4 SUB @00000020 $00000021
000000ed SUB @00000030 $00000031
000000f6 SUB @00000030 $00000031
000000ff SUB @00000030 $00000031
00000108 SUB @00000030 $00000031
00000111 SUB @00000030 $00000031
0000011a FIN
Machine Code (Test 4):
----------------------
0100000000cccccccccccccccc01010000004444444444444444010200000044444444444444440110000000dddddddddddddddd
01110000003333333333333333011200000044444444444444440120000000cccccccccccccccc01210000002222222222222222
01220000004444444444444444013000000099999999999999990131000000111111111111111101320000004444444444444444
07000000000100000007000000000100000007100000001100000007100000001100000007100000001100000007200000002100
00000720000000210000000720000000210000000720000000210000000730000000310000000730000000310000000730000000
3100000007300000003100000007300000003100000028
Data Dump (Test 4):
-------------------
00000000 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
00000010 44 44 44 44 44 44 44 44 00 00 00 00 00 00 00 00
00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 44 44 44 44 44 44 44 44 33 33 33 33 33 33 33 33
00000090 44 44 44 44 44 44 44 44 00 00 00 00 00 00 00 00
000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000100 44 44 44 44 44 44 44 44 22 22 22 22 22 22 22 22
00000110 44 44 44 44 44 44 44 44 00 00 00 00 00 00 00 00
00000120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000180 44 44 44 44 44 44 44 44 11 11 11 11 11 11 11 11
00000190 44 44 44 44 44 44 44 44 00 00 00 00 00 00 00 00
000001a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Assembly Code (Test 5):
-----------------------
00000000* SET @0000003e #ffffffffffffffff
0000000d SET @0000003f #ffffffffffffffff
0000001a SUB @0000003e $0000003f
00000023 SUB @0000003f $00000040
0000002c FIN
Machine Code (Test 5):
----------------------
013e000000ffffffffffffffff013f000000ffffffffffffffff073e0000003f000000073f0000004000000028
Runtime Error (Test 5):
-----------------------
error: overflow
Data Dump (Test 5):
-------------------
00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001f0 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff
Assembly Code (Test 6):
-----------------------
00000000* SUB @ffffffff $ffffffff
00000009 FIN
Machine Code (Test 6):
----------------------
07ffffffffffffffff28
Runtime Error (Test 6):
-----------------------
error: overflow
</pre>
</div>
</div>
<div style="visibility: visible;" id="footer">
<p>
<div class="footer-icon"><a target="_blank" href="//ciyam.org/"><img src="logo-gryscl-128.png" /></a></div>
&copy; 2012-2015 CIYAM Developers
</p>
</div>
</body>
</html>

195
docs/at_test_sub_leq.html

@ -0,0 +1,195 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>CIYAM AT - Test for AT instruction code 0x25 (SUB_LEQ)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="copyright" content="Copyright 2015 CIYAM Developers"/>
<link rel="stylesheet" href="document.css" type="text/css"/>
</head>
<div id="content">
<div id="header">
<div id="appname"><a href="//ciyam.org/at">AT</a></div>
<h3 class="right-top">Test for AT instruction code 0x25 (SUB_LEQ)</h3>
</div>
<div id="main">
<div id="text">
<pre>
Test for AT instruction code 0x25 (SUB_LEQ)
-------------------------------------------
For each test the assembly and machine code are listed as is the data dump or expected error if test case has
been created specifically to fail (with a data dump if any data was expected to have changed before the error
occurred).
A summary of the tests follows:
Test 1 - Basic usage (1).
Test 2 - Basic usage (2).
Test 3 - Invalid address.
Test 4 - Out of range address.
Assembly Code (Test 1):
-----------------------
00000000* SET @00000000 #0000000000000000
0000000d SET @00000001 #0000000011111111
0000001a SLE @00000001 $00000000 :00000028
00000027 FIN
00000028 SET @00000000 #1111111111111111
00000035 FIN
Machine Code (Test 1):
----------------------
01000000000000000000000000010100000011111111000000002501000000000000002800000028010000000011111111111111
1128
Data Dump (Test 1):
-------------------
00000000 00 00 00 00 00 00 00 00 11 11 11 11 00 00 00 00
00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Assembly Code (Test 2):
-----------------------
00000000* SET @00000000 #0000000000000000
0000000d SET @00000001 #0000000011111111
0000001a SLE @00000000 $00000001 :00000028
00000027 FIN
00000028 SET @00000000 #1111111111111111
00000035 FIN
Machine Code (Test 2):
----------------------
01000000000000000000000000010100000011111111000000002500000000010000002800000028010000000011111111111111
1128
Dump Data (Test 2):
-----------------------
00000000 11 11 11 11 11 11 11 11 11 11 11 11 00 00 00 00
00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Assembly Code (Test 3):
-----------------------
00000000* SET @00000000 #0000000000000000
0000000d SET @00000001 #0000000011111111
0000001a SLE @00000000 $00000001 :00000026
00000027 FIN
00000028 SET @00000000 #1111111111111111
00000035 FIN
Machine Code (Test 3):
----------------------
01000000000000000000000000010100000011111111000000002500000000010000002600000028010000000011111111111111
1128
Runtime Error (Test 3):
-----------------------
error: invalid code
Assembly Code (Test 4):
-----------------------
00000000* SET @00000000 #0000000000000000
0000000d SET @00000001 #0000000011111111
0000001a SLE @00000000 $00000001 :11111111
00000027 FIN
00000028 SET @00000000 #1111111111111111
00000035 FIN
Machine Code (Test 4):
----------------------
01000000000000000000000000010100000011111111000000002500000000010000001111111128010000000011111111111111
1128
Runtime Error (Test 4):
-----------------------
error: overflow
</pre>
</div>
</div>
<div style="visibility: visible;" id="footer">
<p>
<div class="footer-icon"><a target="_blank" href="//ciyam.org/"><img src="logo-gryscl-128.png" /></a></div>
&copy; 2012-2015 CIYAM Developers
</p>
</div>
</body>
</html>

472
docs/at_test_xor_dat.html

@ -0,0 +1,472 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>CIYAM AT - Test for AT instruction code 0x0c (XOR_DAT)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="copyright" content="Copyright 2015 CIYAM Developers"/>
<link rel="stylesheet" href="document.css" type="text/css"/>
</head>
<div id="content">
<div id="header">
<div id="appname"><a href="//ciyam.org/at">AT</a></div>
<h3 class="right-top">Test for AT instruction code 0x0c (XOR_DAT)</h3>
</div>
<div id="main">
<div id="text">
<pre>
Test for AT instruction code 0x0c (XOR_DAT)
-------------------------------------------
For each test the assembly and machine code are listed as is the data dump or expected error if test case has
been created specifically to fail (with a data dump if any data was expected to have changed before the error
occurred).
A summary of the tests follows:
Test 1 - Check some basic usage.
Test 2 - Check highest value works.
Test 3 - Check full address range.
Test 4 - Check overwriting works.
Test 5 - Check address range edge fail.
Test 6 - Check negative adddress fails.
Assembly Code (Test 1):
-----------------------
00000000* SET @00000000 #000000000000000f
0000000d SET @00000001 #000000000000000e
0000001a SET @00000002 #000000000000000d
00000027 SET @00000003 #000000000000000c
00000034 SET @00000004 #000000000000000b
00000041 SET @00000005 #000000000000000a
0000004e SET @00000006 #0000000000000009
0000005b SET @00000007 #0000000000000008
00000068 SET @00000008 #0000000000000007
00000075 SET @00000009 #0000000000000006
00000082 SET @0000000a #0000000000000005
0000008f SET @0000000b #0000000000000004
0000009c SET @0000000c #0000000000000003
000000a9 SET @0000000d #0000000000000002
000000b6 SET @0000000e #0000000000000001
000000c3 XOR @00000000 $00000001
000000cc XOR @00000001 $00000002
000000d5 XOR @00000002 $00000003
000000de XOR @00000003 $00000004
000000e7 XOR @00000004 $00000005
000000f0 XOR @00000005 $00000006
000000f9 XOR @00000006 $00000007
00000102 XOR @00000007 $00000008
0000010b XOR @00000008 $00000009
00000114 XOR @00000009 $0000000a
0000011d XOR @0000000a $0000000b
00000126 XOR @0000000b $0000000c
0000012f XOR @0000000c $0000000d
00000138 XOR @0000000d $0000000e
00000141 FIN
Machine Code (Test 1):
----------------------
01000000000f0000000000000001010000000e0000000000000001020000000d0000000000000001030000000c00000000000000
01040000000b0000000000000001050000000a000000000000000106000000090000000000000001070000000800000000000000
0108000000070000000000000001090000000600000000000000010a0000000500000000000000010b0000000400000000000000
010c0000000300000000000000010d0000000200000000000000010e00000001000000000000000c00000000010000000c010000
00020000000c02000000030000000c03000000040000000c04000000050000000c05000000060000000c06000000070000000c07
000000080000000c08000000090000000c090000000a0000000c0a0000000b0000000c0b0000000c0000000c0c0000000d000000
0c0d0000000e00000028
Data Dump (Test 1):
-------------------
00000000 01 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00
00000010 01 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00
00000020 01 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00
00000030 01 00 00 00 00 00 00 00 0f 00 00 00 00 00 00 00
00000040 01 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00
00000050 01 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00
00000060 01 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00
00000070 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Assembly Code (Test 2):
-----------------------
00000000* SET @00000001 #ffffffffffffffff
0000000d SET @00000004 #ffffffffffffffff
0000001a SET @00000007 #0000000000000000
00000027 SET @0000000a #ffffffffffffffff
00000034 SET @0000000d #ffffffffffffffff
00000041 SET @00000010 #0000000000000000
0000004e SET @00000013 #ffffffffffffffff
0000005b SET @00000016 #ffffffffffffffff
00000068 SET @00000019 #0000000000000000
00000075 SET @0000001c #ffffffffffffffff
00000082 SET @0000001f #ffffffffffffffff
0000008f SET @00000022 #0000000000000000
0000009c SET @00000025 #ffffffffffffffff
000000a9 SET @00000028 #ffffffffffffffff
000000b6 SET @0000002b #0000000000000000
000000c3 SET @0000002e #ffffffffffffffff
000000d0 SET @00000031 #ffffffffffffffff
000000dd SET @00000034 #0000000000000000
000000ea SET @00000037 #ffffffffffffffff
000000f7 SET @0000003a #ffffffffffffffff
00000104 SET @0000003d #0000000000000000
00000111 XOR @00000001 $00000004
0000011a XOR @00000004 $00000007
00000123 XOR @00000007 $0000000a
0000012c XOR @0000000a $0000000d
00000135 XOR @0000000d $00000010
0000013e XOR @00000010 $00000013
00000147 XOR @00000013 $00000016
00000150 XOR @00000016 $00000019
00000159 XOR @00000019 $0000001c
00000162 XOR @0000001c $0000001f
0000016b XOR @0000001f $00000022
00000174 XOR @00000022 $00000025
0000017d XOR @00000025 $00000028
00000186 XOR @00000028 $0000002b
0000018f XOR @0000002b $0000002e
00000198 XOR @0000002e $00000031
000001a1 XOR @00000031 $00000034
000001aa XOR @00000034 $00000037
000001b3 XOR @00000037 $0000003a
000001bc XOR @0000003a $0000003d
000001c5 XOR @0000003d $0000003d
000001ce FIN
Machine Code (Test 2):
----------------------
0101000000ffffffffffffffff0104000000ffffffffffffffff01070000000000000000000000010a000000ffffffffffffffff
010d000000ffffffffffffffff011000000000000000000000000113000000ffffffffffffffff0116000000ffffffffffffffff
01190000000000000000000000011c000000ffffffffffffffff011f000000ffffffffffffffff01220000000000000000000000
0125000000ffffffffffffffff0128000000ffffffffffffffff012b0000000000000000000000012e000000ffffffffffffffff
0131000000ffffffffffffffff013400000000000000000000000137000000ffffffffffffffff013a000000ffffffffffffffff
013d00000000000000000000000c01000000040000000c04000000070000000c070000000a0000000c0a0000000d0000000c0d00
0000100000000c10000000130000000c13000000160000000c16000000190000000c190000001c0000000c1c0000001f0000000c
1f000000220000000c22000000250000000c25000000280000000c280000002b0000000c2b0000002e0000000c2e000000310000
000c31000000340000000c34000000370000000c370000003a0000000c3a0000003d0000000c3d0000003d00000028
Data Dump (Test 2):
-------------------
00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000020 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
00000030 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000060 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
00000090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000b0 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
000000c0 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff
00000100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000110 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
00000120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000180 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff
00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001a0 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Assembly Code (Test 3):
-----------------------
00000000* SET @00000001 #efcdab8967452301
0000000d SET @00000004 #ffffffffffffffff
0000001a SET @00000007 #efcdab8967452301
00000027 SET @0000000a #00000000ffffffff
00000034 SET @0000000d #efcdab8967452301
00000041 SET @00000010 #0000000000000000
0000004e SET @00000013 #efcdab8967452301
0000005b SET @00000016 #ffffffffffffffff
00000068 SET @00000019 #efcdab8967452301
00000075 SET @0000001c #00000000ffffffff
00000082 SET @0000001f #efcdab8967452301
0000008f SET @00000022 #0000000000000000
0000009c SET @00000025 #efcdab8967452301
000000a9 SET @00000028 #ffffffffffffffff
000000b6 SET @0000002b #efcdab8967452301
000000c3 SET @0000002e #00000000ffffffff
000000d0 SET @00000031 #efcdab8967452301
000000dd SET @00000034 #0000000000000000
000000ea SET @00000037 #efcdab8967452301
000000f7 SET @0000003a #ffffffffffffffff
00000104 SET @0000003d #efcdab8967452301
00000111 XOR @00000001 $00000004
0000011a XOR @00000004 $00000007
00000123 XOR @00000007 $0000000a
0000012c XOR @0000000a $0000000d
00000135 XOR @0000000d $00000010
0000013e XOR @00000010 $00000013
00000147 XOR @00000013 $00000016
00000150 XOR @00000016 $00000019
00000159 XOR @00000019 $0000001c
00000162 XOR @0000001c $0000001f
0000016b XOR @0000001f $00000022
00000174 XOR @00000022 $00000025
0000017d XOR @00000025 $00000028
00000186 XOR @00000028 $0000002b
0000018f XOR @0000002b $0000002e
00000198 XOR @0000002e $00000031
000001a1 XOR @00000031 $00000034
000001aa XOR @00000034 $00000037
000001b3 XOR @00000037 $0000003a
000001bc XOR @0000003a $0000003d
000001c5 XOR @0000003d $0000003d
000001ce FIN
Machine Code (Test 3):
----------------------
01010000000123456789abcdef0104000000ffffffffffffffff01070000000123456789abcdef010a000000ffffffff00000000
010d0000000123456789abcdef0110000000000000000000000001130000000123456789abcdef0116000000ffffffffffffffff
01190000000123456789abcdef011c000000ffffffff00000000011f0000000123456789abcdef01220000000000000000000000
01250000000123456789abcdef0128000000ffffffffffffffff012b0000000123456789abcdef012e000000ffffffff00000000
01310000000123456789abcdef0134000000000000000000000001370000000123456789abcdef013a000000ffffffffffffffff
013d0000000123456789abcdef0c01000000040000000c04000000070000000c070000000a0000000c0a0000000d0000000c0d00
0000100000000c10000000130000000c13000000160000000c16000000190000000c190000001c0000000c1c0000001f0000000c
1f000000220000000c22000000250000000c25000000280000000c280000002b0000000c2b0000002e0000000c2e000000310000
000c31000000340000000c34000000370000000c370000003a0000000c3a0000003d0000000c3d0000003d00000028
Data Dump (Test 3):
-------------------
00000000 00 00 00 00 00 00 00 00 fe dc ba 98 76 54 32 10
00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000020 fe dc ba 98 76 54 32 10 00 00 00 00 00 00 00 00
00000030 00 00 00 00 00 00 00 00 fe dc ba 98 89 ab cd ef
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000050 fe dc ba 98 89 ab cd ef 00 00 00 00 00 00 00 00
00000060 00 00 00 00 00 00 00 00 01 23 45 67 89 ab cd ef
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 01 23 45 67 89 ab cd ef 00 00 00 00 00 00 00 00
00000090 00 00 00 00 00 00 00 00 fe dc ba 98 76 54 32 10
000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000b0 fe dc ba 98 76 54 32 10 00 00 00 00 00 00 00 00
000000c0 00 00 00 00 00 00 00 00 fe dc ba 98 89 ab cd ef
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 fe dc ba 98 89 ab cd ef 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 01 23 45 67 89 ab cd ef
00000100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000110 01 23 45 67 89 ab cd ef 00 00 00 00 00 00 00 00
00000120 00 00 00 00 00 00 00 00 fe dc ba 98 76 54 32 10
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 fe dc ba 98 76 54 32 10 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 fe dc ba 98 89 ab cd ef
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 fe dc ba 98 89 ab cd ef 00 00 00 00 00 00 00 00
00000180 00 00 00 00 00 00 00 00 01 23 45 67 89 ab cd ef
00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001a0 01 23 45 67 89 ab cd ef 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 fe dc ba 98 76 54 32 10
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 fe dc ba 98 76 54 32 10 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Assembly Code (Test 4):
-----------------------
00000000* SET @00000000 #9999999999999999
0000000d SET @00000001 #8888888888888888
0000001a SET @00000002 #99999999ffffffff
00000027 SET @00000010 #7777777777777777
00000034 SET @00000011 #5555555555555555
00000041 SET @00000012 #22222222ffffffff
0000004e SET @00000020 #6666666666666666
0000005b SET @00000021 #4444444444444444
00000068 SET @00000022 #66666666ffffffff
00000075 SET @00000030 #3333333333333333
00000082 SET @00000031 #1111111111111111
0000008f SET @00000032 #22222222ffffffff
0000009c XOR @00000000 $00000001
000000a5 XOR @00000000 $00000001
000000ae XOR @00000010 $00000011
000000b7 XOR @00000010 $00000011
000000c0 XOR @00000010 $00000011
000000c9 XOR @00000020 $00000021
000000d2 XOR @00000020 $00000021
000000db XOR @00000020 $00000021
000000e4 XOR @00000020 $00000021
000000ed XOR @00000030 $00000031
000000f6 XOR @00000030 $00000031
000000ff XOR @00000030 $00000031
00000108 XOR @00000030 $00000031
00000111 XOR @00000030 $00000031
0000011a FIN
Machine Code (Test 4):
----------------------
01000000009999999999999999010100000088888888888888880102000000ffffffff9999999901100000007777777777777777
011100000055555555555555550112000000ffffffff222222220120000000666666666666666601210000004444444444444444
0122000000ffffffff6666666601300000003333333333333333013100000011111111111111110132000000ffffffff22222222
0c00000000010000000c00000000010000000c10000000110000000c10000000110000000c10000000110000000c200000002100
00000c20000000210000000c20000000210000000c20000000210000000c30000000310000000c30000000310000000c30000000
310000000c30000000310000000c300000003100000028
Data Dump (Test 4):
-------------------
00000000 99 99 99 99 99 99 99 99 88 88 88 88 88 88 88 88
00000010 ff ff ff ff 99 99 99 99 00 00 00 00 00 00 00 00
00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 22 22 22 22 22 22 22 22 55 55 55 55 55 55 55 55
00000090 ff ff ff ff 22 22 22 22 00 00 00 00 00 00 00 00
000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000100 66 66 66 66 66 66 66 66 44 44 44 44 44 44 44 44
00000110 ff ff ff ff 66 66 66 66 00 00 00 00 00 00 00 00
00000120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000180 22 22 22 22 22 22 22 22 11 11 11 11 11 11 11 11
00000190 ff ff ff ff 22 22 22 22 00 00 00 00 00 00 00 00
000001a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Assembly Code (Test 5):
-----------------------
00000000* SET @0000003e #00000000ffffffff
0000000d SET @0000003f #ffffffffffffffff
0000001a XOR @0000003e $0000003f
00000023 XOR @0000003f $00000040
0000002c FIN
Machine Code (Test 5):
----------------------
013e000000ffffffff00000000013f000000ffffffffffffffff0c3e0000003f0000000c3f0000004000000028
Runtime Error (Test 5):
-----------------------
error: overflow
Data Dump (Test 5):
-------------------
00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001f0 00 00 00 00 ff ff ff ff ff ff ff ff ff ff ff ff
Assembly Code (Test 6):
-----------------------
00000000* XOR @ffffffff $ffffffff
00000009 FIN
Machine Code (Test 6):
----------------------
0cffffffffffffffff28
Runtime Error (Test 6):
-----------------------
error: overflow
</pre>
</div>
</div>
<div style="visibility: visible;" id="footer">
<p>
<div class="footer-icon"><a target="_blank" href="//ciyam.org/"><img src="logo-gryscl-128.png" /></a></div>
&copy; 2012-2015 CIYAM Developers
</p>
</div>
</body>
</html>

91
docs/index.html

@ -0,0 +1,91 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>CIYAM AT - Documentation Index</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="copyright" content="Copyright 2015 CIYAM Developers"/>
<link rel="stylesheet" href="document.css" type="text/css"/>
</head>
<body>
<div id="content">
<div id="header">
<div id="appname"><a href="//ciyam.org/at">AT</a></div>
<h3 class="right-top">Documentation Index</h3>
</div>
<img src="at_banner.png"/>
<div id="main">
<div id="text">
<p>Automated Transactions (AT) is a technology created by CIYAM Developers which provides "Turing complete smart contracts" for any blockchain that implements it.</p>
<p><a href="at.html">Automated Transactions Specification</a></p>
<p><a href="at_api.html">Automated Transactions API Specification</a></p>
<p><a href="at_atomic.html">Use Case: Atomic Cross-Chain Transfer</a></p>
<p><a href="at_auction.html">Use Case: Auction Agent</a></p>
<p><a href="at_auction_tests.html">Use Case Tests: Auction Agent</a></p>
<p><a href="at_crowdfund.html">Use Case: Crowdfunding Agent</a></p>
<p><a href="at_crowdfund_tests.html">Use Case Tests: Crowdfunding Agent</a></p>
<p><a href="at_dormant.html">Use Case: Dormant Funds Transfer</a></p>
<p><a href="at_dormant_tests.html">Use Case Tests: Dormant Funds Transfer</a></p>
<p><a href="at_lottery.html">Use Case: Lottery</a></p>
<p><a href="at_lottery_tests.html">Use Case Tests: Lottery</a></p>
<p><a href="at_meta.html">AT Metadata for UI</a></p>
<p><a href="at_script.html">Integrating AT with Script</a></p>
<p><a href="at_test_add_dat.html">Test for AT instruction code 0x06 (ADD_DAT)</a></p>
<p><a href="at_test_and_dat.html">Test for AT instruction code 0x0b (AND_DAT)</a></p>
<p><a href="at_test_beq_dat.html">Test for AT instruction code 0x23 (BEQ_DAT)</a></p>
<p><a href="at_test_bge_dat.html">Test for AT instruction code 0x21 (BGE_DAT)</a></p>
<p><a href="at_test_bgt_dat.html">Test for AT instruction code 0x1f (BGT_DAT)</a></p>
<p><a href="at_test_ble_dat.html">Test for AT instruction code 0x22 (BLE_DAT)</a></p>
<p><a href="at_test_blt_dat.html">Test for AT instruction code 0x20 (BLT_DAT)</a></p>
<p><a href="at_test_bne_dat.html">Test for AT instruction code 0x24 (BNE_DAT)</a></p>
<p><a href="at_test_bnz_dat.html">Test for AT instruction code 0x1e (BNZ_DAT)</a></p>
<p><a href="at_test_bor_dat.html">Test for AT instruction code 0x0a (BOR_DAT)</a></p>
<p><a href="at_test_bzr_dat.html">Test for AT instruction code 0x1b (BZR_DAT)</a></p>
<p><a href="at_test_clr_dat.html">Test for AT instruction code 0x03 (CLR_DAT)</a></p>
<p><a href="at_test_dec_dat.html">Test for AT instruction code 0x05 (DEC_DAT)</a></p>
<p><a href="at_test_div_dat.html">Test for AT instruction code 0x09 (DIV_DAT)</a></p>
<p><a href="at_test_ext_fun.html">Test for AT instruction code 0x32 (EXT_FUN)</a></p>
<p><a href="at_test_ext_fun_dat.html">Test for AT instruction code 0x33 (EXT_FUN_DAT)</a></p>
<p><a href="at_test_ext_fun_dat_2.html">Test for AT instruction code 0x34 (EXT_FUN_DAT_2)</a></p>
<p><a href="at_test_ext_fun_ret.html">Test for AT instruction code 0x35 (EXT_FUN_RET)</a></p>
<p><a href="at_test_ext_fun_ret_dat.html">Test for AT instruction code 0x36 (EXT_FUN_RET_DAT)</a></p>
<p><a href="at_test_ext_fun_ret_dat_2.html">Test for AT instruction code 0x37 (EXT_FUN_RET_DAT_2)</a></p>
<p><a href="at_test_fin_imd.html">Test for AT instruction code 0x28 (FIN_IMD)</a></p>
<p><a href="at_test_fiz_dat.html">Test for AT instruction code 0x26 (FIZ_DAT)</a></p>
<p><a href="at_test_inc_dat.html">Test for AT instruction code 0x04 (INC_DAT)</a></p>
<p><a href="at_test_jmp_adr.html">Test for AT instruction code 0x1a (JMP_ADR)</a></p>
<p><a href="at_test_jmp_sub.html">Test for AT instruction code 0x12 (JMP_SUB)</a></p>
<p><a href="at_test_mul_dat.html">Test for AT instruction code 0x08 (MUL_DAT)</a></p>
<p><a href="at_test_not_dat.html">Test for AT instruction code 0x0d (NOT_DAT)</a></p>
<p><a href="at_test_pop_dat.html">Test for AT instruction code 0x11 (POP_DAT)</a></p>
<p><a href="at_test_psh_dat.html">Test for AT instruction code 0x10 (PSH_DAT)</a></p>
<p><a href="at_test_ret_sub.html">Test for AT instruction code 0x13 (RET_SUB)</a></p>
<p><a href="at_test_set_dat.html">Test for AT instruction code 0x02 (SET_DAT)</a></p>
<p><a href="at_test_set_idx.html">Test for AT instruction code 0x0f (SET_IDX)</a></p>
<p><a href="at_test_set_ind.html">Test for AT instruction code 0x0e (SET_IND)</a></p>
<p><a href="at_test_set_pcs.html">Test for AT instruction code 0x30 (SET_PCS)</a></p>
<p><a href="at_test_set_val.html">Test for AT instruction code 0x01 (SET_VAL)</a></p>
<p><a href="at_test_stp_imd.html">Test for AT instruction code 0x29 (STP_IMD)</a></p>
<p><a href="at_test_stz_dat.html">Test for AT instruction code 0x27 (STZ_DAT)</a></p>
<p><a href="at_test_sub_dat.html">Test for AT instruction code 0x07 (SUB_DAT)</a></p>
<p><a href="at_test_sub_leq.html">Test for AT instruction code 0x25 (SUB_LEQ)</a></p>
<p><a href="at_test_xor_dat.html">Test for AT instruction code 0x0c (XOR_DAT)</a></p>
<p><a href="_at.cpp.html">at.cpp </a></p>
</div>
</div>
<div style="visibility: visible;" id="footer">
<p>
<div class="footer-icon"><a target="_blank" href="//ciyam.org/"><img src="logo-gryscl-128.png" /></a></div>
&copy; 2012-2015 CIYAM Developers
</p>
</div>
</body>
</html>
Loading…
Cancel
Save