# Talk:ZOWIE

I've noticed a few anomalies in the docs:

• "The contents of a register before it has ever been written is guaranteed to be 0." And later, "Reading from R1 always offers the value 1." and similarly up to R7. Does this mean:
• the value 0 is stored internally in registers 1 to 7, but they nonetheless return 1 to 7 when read?
• registers 1 to 7 are an exception to the first statement I quoted?
• these registers initially contain 0, but are overwritten with 1 to 7 when first written to?
• "When a value is written into R7, the boolean negation of that value is written into R7: 1 if the value was 0, and 0 otherwise. Reading from R7 always offers the value 7." So a value entering R7 is replaced with its boolean negation, but the result can never be extracted because reading from R7 always returns 7?

-- Smjg 00:16, 27 November 2010 (UTC)

The first sentence was meant to refer only to registers R8 and above. The second sentence contains a typo: it should read "... the boolean negation of that value is written into R8: ..." --Chris Pressey 03:10, 27 November 2010 (UTC)

Can it work without immediate values (so only direct and indirect is available)? And then just use the list of integers as a program code, where negative is used for indirect, and positive for direct. --Zzo38 (talk) 04:51, 29 October 2012 (UTC)

Probably. Chris Pressey (talk) 14:08, 29 October 2012 (UTC)

## Turing completeness

Currently, I don't see this as Turing complete.
The essential concept seems to be to use a `begin ... rollback` to discard the result of executing the contents of a loop if you decide you don't need it when it completes.
But this is the problem; using the brainfuck transliteration provided, consider the following (finite cell) program fragment:

```   [-][+++++++[.]]
```

In BF the current cell is noted to be zero, the next "while" starts then skips over the body of the loop and terminates.
In ZOWIE the "repeat discard" loop executes the body, executes the third loop and does NOT terminate.
It appears that in order to successfully translate "while" loops to "repeat discard" loops you must solve the halting problem. Rdebath (talk) 07:36, 8 August 2015 (UTC)

To earlier me see the counter example ie: do-while is sufficient Rdebath (talk) 19:37, 17 September 2019 (UTC)
ZOWIE can express both "if" and "repeat", which can be put together to form "while". --Chris Pressey (talk) 09:31, 29 June 2020 (UTC)