diff --git a/README.md b/README.md
index a22b10ed..36d02e1e 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](samples.md) • [Inform](inform.md) • [GX](gx.md) • [QBjs](qbjs.md) • [Community](community.md) • [More...](more.md)
+[Home](https://qb64.com) • [News](news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](samples.md) • [InForm](inform.md) • [GX](gx.md) • [QBjs](qbjs.md) • [Community](community.md) • [More...](more.md)
diff --git a/_mem.md b/_mem.md
new file mode 100644
index 00000000..f50d366c
--- /dev/null
+++ b/_mem.md
@@ -0,0 +1,220 @@
+[Home](https://qb64.com) • [News](news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](samples.md) • [InForm](inform.md) • [GX](gx.md) • [QBjs](qbjs.md) • [Community](community.md) • [More...](more.md)
+
+## Articles - _MEM blocks
+
+*by Luke*
+
+```text
+
+********************************************************************
+* _MEM blocks *
+* *
+* Last updated 2016-08-22 *
+* *
+********************************************************************
+
+
+A _MEM block is a predefined UDT, with the following elements (all are read-only):
+
++-----------+---------+----------------------------------+
+|Element |Data type|Purpose |
++-----------+---------+----------------------------------+
+|OFFSET |_OFFSET |Memory address of start of block. |
+|SIZE |_OFFSET |Size of block in BYTES. |
+|TYPE |LONG |Bit-flags describing type of data.|
+|ELEMENTSIZE|_OFFSET |Size of datum in bytes. |
+|IMAGE |LONG |Image handle (if appropriate). |
++-----------+---------+----------------------------------+
+
+
+_MEM.OFFSET
+-----------
+A pointer to the beginning of the data in memory. Doing maths with this is always in bytes (_MEM.OFFSET + 1 is always the second byte in the block, regardless of the type of data). Can be passed to DECLARE LIBRARY routine if the routine's parameter is BYVAL p%& and the routine expects an int32_t (which is really more of a void*; cast it to the appropriate pointer type). C routines can then treat it as an array.
+
+
+_MEM.SIZE
+---------
+The size of the block in BYTES, not the number of data. Could possibly be 0. Note the data type is an _OFFSET not a LONG (or similar), so QB64 may have issues with how it is used (for instance, you can't assign it to a LONG).
+
+
+_MEM.TYPE
+---------
+Note:
+ - bits are numbered starting at 0, which is the least significant bit.
+ - Exclusive means nothing else is set (except for Array. Array goes with anything).
++---+--------------------------------+---------------------------------------------------+
+|Bit|Meaning w.r.t datum |Combinability (if it be set along with other flags)|
++---+--------------------------------+---------------------------------------------------|
+|0 |1 byte large. | |
+|1 |2 bytes large. | |
+|2 |4 bytes large. | |
+|3 |8 bytes large. | |
+|4 |16 bytes large (unused). | |
+|5 |32 bytes large. |Byte sizes are only set for simple numeric |
+|6 |64 bytes large (unused). |types, including _OFFSET, and for pixel data. |
+|7 |Integral type. | |
+|8 |Floating-point type. |7-9 set whenever appropriate, including pixel data.|
+|9 |String type. |Exclusive. |
+|10 |Unsigned type. |Goes with integral types and pixel data. |
+|11 |Pixel data from image. |Sets byte size, integral and unsigned. |
+|12 |_MEM U.D.T |Exclusive. |
+|13 |_OFFSET data type. |Goes with integral and byte sizes. |
+|14 |Created by _MEMNEW or _MEM(x, y)|Exclusive. |
+|15 |U.D.T other than _MEM. |Exclusive. |
+|16 |Array. |Other flags describe type of array element. |
++---+--------------------------------+---------------------------------------------------+
+
+_MEM.ELEMENTSIZE
+----------------
+The size of each datum in the block, in bytes. If the block was created with _MEMNEW or _MEM(x, y), this value is 1. If _MEM.TYPE has the Array flag set, this is the size of one array element.
+
+
+_MEM.IMAGE
+----------
+If the block was created by the _MEMIMAGE function, this is the handle of the image that was used. Otherwise, it is -1.
+
+
+******************************************************************************************
+Command for creating and manipulating _MEM blocks.
+--------------------------------------------------
+
+General Notes
+-------------
+ - When a function requires 'block' and 'offset', 'offset' must be at least 'block.OFFSET', and at most 'block.OFFSET + block.SIZE - 1'. Of course, if the function accesses multiple bytes, the upper limit on 'offset' is decreased.
+ - Some functions accept a parameter of type DTYPE. This is the literal word to refer to a data type, such as INTEGER or _UNSIGNED LONG.
+ - When referring to an entire array (not just an element), empty parentheses must be used.
+ - An array reference with a specific element "x(3)" is interpreted as a single variable, except for the one-argument form of the _MEM() function.
+ - Multidimensional arrays are stored (0, 0), (1, 0), (2, 0) ... (9, 0), (0, 1), (1, 1), (2, 1) etc.
+ - Elements in a UDT are simply stored one after the other.
+
+
+_MEM
+---------------
+block AS _MEM = _MEM(var AS ANY)
+block AS _MEM = _MEM(address AS _OFFSET, size AS _OFFSET)
+
+In the first form, creates a new _MEM block referring the data in 'var', where 'var' is a numeric type, fixed-length string, UDT or array of such types. If an array is specified with an element e.g. "x(3)", the function takes this to mean an array beginning x(3) and all elements above that. It is vitally important to understand that the new _MEM block does not copy data from 'var'; the memory region is the same as 'var'. 'var' and the _MEM block are now two ways of accessing the same part of the computer's memory. This means that if 'var' is changed (by assignment, not with _MEM commands), the value in the _MEM block will change too. Similarly, using _MEMPUT to change the _MEM block will change the value of 'var'. As you may expect, if two _MEM regions 'm1' and 'm2' are both created with this function form from the same 'var', altering one will alter the other. If 'var' no longer exists (for instance, the SUB it existed in has finished), then the block is considered to have been freed, accessing the _MEM block is an error.
+
+In the second form, creates a _MEM block to access memory beginning at 'address' in the computer's memory, and 'size' bytes long. Unlike _MEMNEW, which allocates a block of the size requested, _MEM() in the second form assumes that the memory at 'address' has already been allocated. This form is most useful when a function through DECLARE LIBRARY returns the address and size of a buffer it has stored information in; in this situation, the two data can be passed to _MEM() so that the _MEM commands can be used to access the data.
+
+However, this second form gives great freedom, to the extent that it cannot always catch errors. If 'address' is incorrect, or 'size' is too large, it is possible to write to memory that the program is not allowed to access. This will generate a segmentation fault, which will either cause the program to crash immediately or trigger an OS-level error message (and then crash). If you're not using DECLARE LIBRARY, there's a good chance that you will never need this second 'unsafe' form of the _MEM function.
+
+
+
+_MEMELEMENT
+-----------
+block AS _MEM = _MEMELEMENT(var AS ANY)
+
+Like the one-argument form of the _MEM() function, creates a _MEM block which can be used to access 'var'. Unlike _MEM() though, if 'var' is an array with an element specified e.g. "x(3)", it is interpreted as a single variable only. Note that the Array flag of _MEM.TYPE is still set, even though the _MEM block only contains one datum. Other than that, _MEM.TYPE and _MEM.ELEMENTSIZE are set as one would expect for a single variable. Changing the data in the _MEM block will alter the element in the original array.
+
+
+_MEMNEW
+-------
+block AS _MEM = _MEMNEW(size AS _OFFSET)
+
+Returns a a _MEM block that refers to newly allocated memory where 'size' is its size in bytes, and may be 0. The contents of the block are unspecified; if a definite value is needed, _MEMFILL can be used to initalise the region. The allocation is not guaranteed; the underlying libaries and Operating System may fail to allocate the requested size. It is always prudent to verify that that it was successful by comparing 'block.SIZE' to 'size' - an inequality means failure. If it does fail, the program may try again with a smaller size, or give an error to the user then exit. Failed allocations must be freed with _MEMFREE. If 'size' is negative an Illegal Function Call is raised, but the returned block still needs to be freed. All _MEMNEW allocations have 'block.ELEMENTSIZE' set to 1.
+
+[Author's note: I was able to successfully allocate a block up to the maximum size on my 32 bit machine (2^32/2 - 1) thanks to the magic of virtual memory, where the Operating System does not actually allocate physical RAM until it is used. I suspect I would not be able to actually assign data to all of it, given I only have 4 GiB of RAM installed.]
+
+
+_MEMIMAGE
+---------
+block AS _MEM = _MEMIMAGE(handle AS LONG)
+Note: the 'handle' argument is optional. If omitted, it defaults to the current write page (which by default is the one being displayed).
+
+Returns a _MEM block that references the memory holding the image referred to by 'handle' (where 'handle' is a handle as returned by _NEWIMAGE and related functions). This can be seen a counterpart to the _MEM(x) function, in that the memory accessible IS the image; changes to the _MEM block affect the image itself. If the image is the active screen, changes are seen immediately (assuming _AUTODISPLAY). 'block.IMAGE' is set to 'handle'. If 'handle' does not refer to a valid image or refers to a hardware surface (image mode 33), Illegal Function Call is raised, and the returned _MEM block does not need to be freed. If the image is freed with _FREEIMAGE, the _MEM block is freed too.
+
+For all graphical screen modes, the memory is a pixel-by-pixel representation of the screen. Each row of pixels on screen is placed one after the other, with the top row first. As an example, consider a 5x5 screen, with pixels labelled like so:
+
+ABCDE
+FGHIJ
+KLMNO
+PQRST
+UVWXY
+
+In memory, these pixels would be in alphabetical order. However, a pixel is not necessarily a byte. In 32 bit mode, each pixel is 4 bytes wide: one pixel per colour channel, in the order Blue, Green, Red, Alpha. Correspondingly, 'block.ELEMENTSIZE' is 4 for 32 bit mode. The programmer should be careful with the order of colour channel components, especially due to the reversing nature of little endian processors. To this end, the _RGBA32() function and the related colour functions should be used instead of working with raw numbers.
+
+In text mode (SCREEN 0), we talk of character cells instead of pixels. Nevertheless, the translation for screen location to memory location is the same as it is for graphical pixels. This is in contrast to the usual column, row method of addressing text modes. Each character cell is two bytes (as recorded by 'block.ELEMENTSIZE'): the first cell is code-point of the character being displayed, the second stores the attribute information as set by COLOR. See the manual on the COLOR statement for more detail about the format of attribute information.
+
+
+_MEMGET
+-------
+_MEMGET block AS _MEM, offset AS _OFFSET, dest AS ANY
+dest AS ANY = _MEMGET(block AS _MEM, offset AS _OFFSET, type AS DTYPE)
+
+Accesses data in the _MEM block specified by 'block' at the address 'offset'. In the first form, the type of the data is inferred from the type of 'dest'. In the second form, the type is explicitly stated. Multibyte data types are considered to have their first byte at the location specified. On little endian machines at least, numeric types are read natively i.e. with the least significant byte first. This function is an excellent way to access the bit-by-bit representation of complex data types such as floating point numbers.
+
+
+_MEMPUT
+-------
+_MEMPUT block AS _MEM, offset AS _OFFSET, src AS ANY
+_MEMPUT block AS _MEM, offset AS _OFFSET, src AS type AS DTYPE
+
+Stores the data 'src' in the _MEM block specified by 'block' at the address 'offset'. Arrays, UDT's and strings (both variable and fixed length) are allowed. For numeric literals, it is necessary to use the second form to explicitly state the type of a variable, since it would be ambiguous otherwise (is "8" 1 byte wide, 2 bytes or 4 bytes, or maybe even a SINGLE?).
+
+
+_MEMFILL
+--------
+_MEMFILL block AS _MEM, offset AS _OFFSET, size AS _BYTE, src AS ANY
+_MEMFILL block AS _MEM, offset AS _OFFSET, size AS _BYTE, src AS type AS DTYPE
+
+Like _MEMPUT, stores the data 'src' in the _MEM block specified by 'block' at the address 'offset'. However, _MEMFILL then repeats this storage as many times as necessary to fill a region of memory 'size' bytes large. As for _MEMPUT, the second form is used when the type of a numeric literal needs to be explicitly stated. It is important to realise that since 'size' is a number of bytes, it is possible to specify a multibyte data type that does not fill the region exactly. For instance, a LONG (4 bytes) will fill a 10 byte region with 2 instances, plus 2 remaining bytes. In this case, _MEMFILL will use the first 2 bytes of the LONG to finish filling the region, despite this resulting in an incomplete representation of the data being stored in the last instance.
+
+
+_MEMCOPY
+--------
+_MEMCOPY srcblock AS _MEM, srcoffset AS _OFFSET, size AS _OFFSET TO destblock AS _MEM, destoffset AS _OFFSET
+Note: The "TO" is literal, and must be included in the statement.
+
+Copies 'size' byte of data from 'srcoffset' in 'srcblock' to 'destoffset' in 'destblock'. 'srcblock' and 'destblock' may be the same. The source and destination regions are allowed to overlap each other; in this case, the copy will be done so as to do the Right Thing. _MEMCOPY makes a proper copy of the data. Unlike _MEM(x) and _MEMIMAGE, which simply create a reference to a location in memory, _MEMCOPY duplicates each byte. Altering the source at a later time will not alter the destination copy. 'size' may be zero (in which case no copy is performed) but may not be negative.
+
+
+_MEMEXISTS
+----------
+bool AS LONG = _MEMEXISTS(block AS _MEM)
+
+Returns -1 (true) or 0 (false) to indicate if 'block' is a valid _MEM block or not. A block is considered valid if it refers to a _MEM block, and has not been freed. See _MEMFREE for discussion of when a _MEM block is considered freed. Library routines in particular should be prudent about verifying a _MEM block's validity before accessing it.
+
+
+_MEMFREE
+--------
+_MEMFREE block AS _MEM
+
+Frees the memory region associated with 'block'. 'block' is now considered invalid, and any attempts to use it (other than creating a new block) are an error. If any other references to the memory exist, such as a variable when _MEM(x)/_MEMELEMENT() is used or an image when _MEMIMAGE is used, the memory may still be accessed through them without error. Attempting to free a _MEM block that has already been freed (or was never valid) is an error. Note that a _MEM block referring to a variable or image is considered freed if the variable or image no longer exists.
+
+It is possible to leak memory if all references to a _MEM block created with _MEMNEW or _MEM(x, y) are lost (such as going out of scope when returning from a SUB) before they are feed. For this reason, the programmer should be careful to track all _MEM blocks and free when necessary. It is not necessary to free _MEM blocks immediately before a program exits.
+
+
+$CHECKING
+---------
+$CHECKING:ON and $CHECKING:OFF
+
+Enables and disables runtime safety checks, particularly for _MEM commands. As a meta-command, it has effect regardless of whether it is in some kind of conditional statement (since it is parsed at compile-time). $CHECKING:ON is the default, but turning it off will give a significant speed boost for code that uses _MEM commands. Checking can be turned off for only a section of code by surrounding it with $CHECKING:OFF ... $CHECKING:ON. When checking is off, what would have given a runtime error will now cause a segmentation fault, or simply overwrite parts of memory. Despite the dangers, once code is tested and working well it is well-worth turning off checking for small parts, especially inner loops.
+******************************************************************************************
+
+Data type equivalence table
++-----------+--------------------+---------+
+|C type |QB name |QB Symbol|
++-----------+--------------------+---------+
+|N/A |_UNSIGNED _BIT |~` |
+|N/A |_BIT |` |
+|N/A |_BIT * n |`n |
+|N/A |_UNSIGNED _BIT * n |~`n |
+|int8_t |_BYTE |%% |
+|uint8_t |_UNSIGNED _BYTE |~%% |
+|int16_t |INTEGER |% |
+|uint16_t |_UNSIGNED INTEGER |~% |
+|int32_t |LONG |& |
+|uint32_t |_UNSIGNED LONG |~& |
+|int64_t |_INTEGER64 |&& |
+|uint64_t |_UNSIGNED _INTEGER64|~&& |
+|float |SINGLE |! |
+|double |DOUBLE |# |
+|long double|_FLOAT |## |
+|qbs* |STRING |$ |
+|qbs* |STRING * n |$n |
+|ptrszint |_OFFSET |%& |
++-----------+--------------------+---------+
+
+```
+
diff --git a/archive.md b/archive.md
new file mode 100644
index 00000000..ad957644
--- /dev/null
+++ b/archive.md
@@ -0,0 +1,52 @@
+[Home](https://qb64.com) • [News](news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](samples.md) • [InForm](inform.md) • [GX](gx.md) • [QBjs](qbjs.md) • [Community](community.md) • [More...](more.md)
+
+## Archive
+
+This section is in the spirit of preserving historical artifacts. Please understand that this collection is a *best effort*; meaning it is *unofficial* and, most likely, **incomplete**.
+
+If you would like to contribute a missing artifact, please reach out to us.
+
+### QB64
+
+This section is certainly incomplete, but it does provide a good start to review the overall evolution of QB64 over the years.
+
+#### OpenGL
+
+- Version 2.0.2 see [releases](https://github.com/QB64Team/qb64/releases/tag/v2.0.2)
+- Version 2.0.1 see [releases](https://github.com/QB64Team/qb64/releases/tag/v2.0.1)
+- Version 2.0 see [releases](https://github.com/QB64Team/qb64/releases/tag/v2.0)
+- Version 1.5 see [releases](https://github.com/QB64Team/qb64/releases/tag/v1.5)
+- Version 1.4 see [releases](https://github.com/QB64Team/qb64/releases/tag/v1.4)
+- Version 1.3 see [releases](https://github.com/Galleondragon/qb64/releases/tag/v1.3)
+- Version 1.2 see [releases](https://github.com/Galleondragon/qb64/releases/tag/v1.2)
+- Version 1.1 see [releases](https://github.com/Galleondragon/qb64/releases/tag/v1.1)
+- Version 1.0 Windows
+- Version .990 Windows
+- Version .980 Windows
+- Version .978 Windows
+- Version .960 Windows
+
+#### SDL
+
+- Version .954 Windows, Linux, MacOS
+- Version .951 BAS
+- Version .942 Windows, Linux, MacOS
+- Version .934 Windows
+- Version .927 Windows
+- Version .923 Windows
+- Version .922 Windows
+- Version .872 Windows
+- Version .860 Windows
+- Version .841 Windows
+- Version .82 Windows
+- Version .81x Windows
+- Version .61 Windows
+- Version .1 Windows
+
+### InForm
+
+- Official InForm [releases](https://github.com/FellippeHeitor/InForm/releases).
+
+### vWATCH64
+
+- Official vWATCH64 [releases](https://github.com/FellippeHeitor/vWATCH64/releases)
\ No newline at end of file
diff --git a/articles.md b/articles.md
new file mode 100644
index 00000000..60fcbaa8
--- /dev/null
+++ b/articles.md
@@ -0,0 +1,9 @@
+[Home](https://qb64.com) • [News](news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](samples.md) • [InForm](inform.md) • [GX](gx.md) • [QBjs](qbjs.md) • [Community](community.md) • [More...](more.md)
+
+## Articles
+
+Techniques and Tips for effective coding in QB64.
+
+- [_MEM blocks](_mem.md)
+- [Mouse](mouse.md)
+- [TCP/IP communications](tcpip.md)
diff --git a/community.md b/community.md
index 8c1829f3..e6c12574 100644
--- a/community.md
+++ b/community.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](samples.md) • [Inform](inform.md) • [GX](gx.md) • [QBjs](qbjs.md) • [Community](community.md) • [More...](more.md)
+[Home](https://qb64.com) • [News](news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](samples.md) • [InForm](inform.md) • [GX](gx.md) • [QBjs](qbjs.md) • [Community](community.md) • [More...](more.md)
## Community
diff --git a/conduct.md b/conduct.md
index c31d1cb2..219b7168 100644
--- a/conduct.md
+++ b/conduct.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](samples.md) • [Inform](inform.md) • [GX](gx.md) • [QBjs](qbjs.md) • [Community](community.md) • [More...](more.md)
+[Home](https://qb64.com) • [News](news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](samples.md) • [InForm](inform.md) • [GX](gx.md) • [QBjs](qbjs.md) • [Community](community.md) • [More...](more.md)
# Code of Conduct
diff --git a/dev.md b/dev.md
index e7511a72..001724b8 100644
--- a/dev.md
+++ b/dev.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](samples.md) • [Inform](inform.md) • [GX](gx.md) • [QBjs](qbjs.md) • [Community](community.md) • [More...](more.md)
+[Home](https://qb64.com) • [News](news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](samples.md) • [InForm](inform.md) • [GX](gx.md) • [QBjs](qbjs.md) • [Community](community.md) • [More...](more.md)
## Development Builds
diff --git a/discord.md b/discord.md
index baa2f353..7d15ecdb 100644
--- a/discord.md
+++ b/discord.md
@@ -1,3 +1,3 @@
-[Home](https://qb64.com) • [News](news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](samples.md) • [Inform](inform.md) • [GX](gx.md) • [QBjs](qbjs.md) • [Community](community.md) • [More...](more.md)
+[Home](https://qb64.com) • [News](news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](samples.md) • [InForm](inform.md) • [GX](gx.md) • [QBjs](qbjs.md) • [Community](community.md) • [More...](more.md)
See [Community](community.md).
diff --git a/forum.md b/forum.md
index baa2f353..7d15ecdb 100644
--- a/forum.md
+++ b/forum.md
@@ -1,3 +1,3 @@
-[Home](https://qb64.com) • [News](news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](samples.md) • [Inform](inform.md) • [GX](gx.md) • [QBjs](qbjs.md) • [Community](community.md) • [More...](more.md)
+[Home](https://qb64.com) • [News](news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](samples.md) • [InForm](inform.md) • [GX](gx.md) • [QBjs](qbjs.md) • [Community](community.md) • [More...](more.md)
See [Community](community.md).
diff --git a/galleon.md b/galleon.md
index a32ce7fa..9dc2bce8 100644
--- a/galleon.md
+++ b/galleon.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](samples.md) • [Inform](inform.md) • [GX](gx.md) • [QBjs](qbjs.md) • [Community](community.md) • [More...](more.md)
+[Home](https://qb64.com) • [News](news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](samples.md) • [InForm](inform.md) • [GX](gx.md) • [QBjs](qbjs.md) • [Community](community.md) • [More...](more.md)
## Interview with Rob Galleon (May 26th 2008)
-- *by E.K.Virtanen*
diff --git a/games.md b/games.md
index 26bccf17..94d0218e 100644
--- a/games.md
+++ b/games.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](samples.md) • [Inform](inform.md) • [GX](gx.md) • [QBjs](qbjs.md) • [Community](community.md) • [More...](more.md)
+[Home](https://qb64.com) • [News](news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](samples.md) • [InForm](inform.md) • [GX](gx.md) • [QBjs](qbjs.md) • [Community](community.md) • [More...](more.md)
## Games
diff --git a/github.md b/github.md
index b2fa96a7..9f6f9e9f 100644
--- a/github.md
+++ b/github.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](samples.md) • [Inform](inform.md) • [GX](gx.md) • [QBjs](qbjs.md) • [Community](community.md) • [More...](more.md)
+[Home](https://qb64.com) • [News](news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](samples.md) • [InForm](inform.md) • [GX](gx.md) • [QBjs](qbjs.md) • [Community](community.md) • [More...](more.md)
## GitHub
diff --git a/gx.md b/gx.md
index 45c57fc5..dd9a5833 100644
--- a/gx.md
+++ b/gx.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](samples.md) • [Inform](inform.md) • [GX](gx.md) • [QBjs](qbjs.md) • [Community](community.md) • [More...](more.md)
+[Home](https://qb64.com) • [News](news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](samples.md) • [InForm](inform.md) • [GX](gx.md) • [QBjs](qbjs.md) • [Community](community.md) • [More...](more.md)
## GX
diff --git a/images/inform_controls.png b/images/inform_controls.png
new file mode 100644
index 00000000..5ea4a712
Binary files /dev/null and b/images/inform_controls.png differ
diff --git a/images/inform_designer.png b/images/inform_designer.png
new file mode 100644
index 00000000..0ecadfbc
Binary files /dev/null and b/images/inform_designer.png differ
diff --git a/images/inform_designer_beta8.png b/images/inform_designer_beta8.png
new file mode 100644
index 00000000..daaf4529
Binary files /dev/null and b/images/inform_designer_beta8.png differ
diff --git a/images/inform1.png b/images/inform_designer_v1_3.png
similarity index 100%
rename from images/inform1.png
rename to images/inform_designer_v1_3.png
diff --git a/inform.md b/inform.md
index 3693bce2..18cc5e70 100644
--- a/inform.md
+++ b/inform.md
@@ -1,20 +1,92 @@
-[Home](https://qb64.com) • [News](news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](samples.md) • [Inform](inform.md) • [GX](gx.md) • [QBjs](qbjs.md) • [Community](community.md) • [More...](more.md)
+[Home](https://qb64.com) • [News](news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](samples.md) • [InForm](inform.md) • [GX](gx.md) • [QBjs](qbjs.md) • [Community](community.md) • [More...](more.md)
![InForm](images/inform.png)
A GUI engine and WYSIWYG interface designer for QB64.
-![InForm1](images/inform1.png)
+![InForm Designer v1.3](images/inform_designer_v1_3.png)
## The ultimate GUI toolkit for QB64
InForm is a Rapid Application Development tool for QB64. It consists of a library of graphical routines and a WYSIWYG editor that allows you to design forms and export the resulting code to generate an event-driven QB64 program.
+### Overview
+
+
+
+**Event-driven QB64 programs**
+
+Inform's main goal is to generate event-driven QB64 applications. This means that you design a graphical user interface with interactive controls and then write the code to respond to such controls once they are manipulated.
+
+#### Workflow
+
+After your form looks the way you want it to, click File -> Save to export its contents and generate a .bas source file. Two files are output:
+
+* **.frm** the generated form in QB64 code. This can be loaded back into the form designer or edited in QB64 or any text editor later, if you want to adjust fine details.
+* **.bas** the actual program you will add your code to.
+You add code to respond to events:
+ * *Click*
+ * *MouseEnter/MouseLeave* (hover)
+ * *FocusIn/FocusOut*
+ * *MouseDown/MouseUp* (events preceding a *Click*)
+ * *KeyPress*
+ * *TextChanged* (for text box controls)
+ * *ValueChanged* (for track bars, lists and dropdown lists)
+* There are also events that occur in specific moments, to which you can respond/add code:
+ * *BeforeInit*, triggered just before the form is shown.
+ * *OnLoad*, triggered right after the form is first shown.
+ * *BeforeUpdateDisplay*, triggered everytime the form is about to be repainted.
+ * *BeforeUnload*, triggered when the user tries to close the program, either via clicking the window’s X button, right click in the task bar -> Close or with Alt+F4 (Windows only).
+ * *FormResized*, triggered when a form with the CanResize property is resized at runtime.
+
+### Editor
+
+![InForm Designer](images/inform_designer.png)
+
+You create a new form with the Editor. You can add new controls, edit their properties, align controls and edit their z-ordering.
+
+The following controls are available (as of v1.0).
+
+![InForm Controls](images/inform_controls.png)
+
+- Button
+- Label
+- Textbox
+- Numeric Textbox
+- Checkbox
+- Radio button
+- List
+- Dropdown list
+- Track bar/Slider
+- Progress bar
+- Picture box
+- Frame
+- Toggle switch
+- Menus
+
+You can also add menus (both in the menu bar or as contextual menus) to your program (Insert - Add menu bar/context menu).
+
+## Preview Component
+
+Your form's design is updated in real-time. The preview component is automatically launched with the Editor and gives you several tools to format your controls.
+
+![InForm Designer v1.3](images/inform_designer_beta8.png)
+
+Features:
+
+* Drag and resize multiple controls at once
+* Right-click contextual menu allows:
+ * Add menus
+ * Aligning selected controls
+ * Center individual controls or groups of selected controls
+ * Clipboard operations
+* Keyboard-enabled: the most common keyboard shortcuts will respond as you expect them to.
+
### Download
-Please visit the [GitHub repo](https://github.com/FellippeHeitor).
+Please visit the [Inform GitHub repo - releases](https://github.com/FellippeHeitor/InForm/releases).
-### Wiki
+### Documentation
You can find the InForm wiki on [Fellippe Heitor's GitHub repo](https://github.com/FellippeHeitor/InForm/wiki).
@@ -34,10 +106,16 @@ There are several great videos that Fellippe created that are online:
[![Calculator](images/calculator.jpg)](downloads/calculator.zip)
+### Blog
+
+[via Archive.org](https://web.archive.org/web/20210508105104/https://www.qb64.org/inform/blog/)
+
### Forum
[QB64.org Forum - InForm (read-only)](https://qb64forum.alephc.xyz/index.php?board=11.0)
### Contact
-Please utilize the [GitHub repo](https://github.com/FellippeHeitor).
\ No newline at end of file
+Please utilize the [GitHub repo](https://github.com/FellippeHeitor).
+
+*The InForm source code is licensed under the MIT License and is also available on GitHub and you can follow development as it goes.*
\ No newline at end of file
diff --git a/media.md b/media.md
index d6b6e26f..649aaf85 100644
--- a/media.md
+++ b/media.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](samples.md) • [Inform](inform.md) • [GX](gx.md) • [QBjs](qbjs.md) • [Community](community.md) • [More...](more.md)
+[Home](https://qb64.com) • [News](news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](samples.md) • [InForm](inform.md) • [GX](gx.md) • [QBjs](qbjs.md) • [Community](community.md) • [More...](more.md)
## Media
diff --git a/more.md b/more.md
index e2f5e501..c501f92d 100644
--- a/more.md
+++ b/more.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](samples.md) • [Inform](inform.md) • [GX](gx.md) • [QBjs](qbjs.md) • [Community](community.md) • [More...](more.md)
+[Home](https://qb64.com) • [News](news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](samples.md) • [InForm](inform.md) • [GX](gx.md) • [QBjs](qbjs.md) • [Community](community.md) • [More...](more.md)
### Tutorials
diff --git a/mouse.md b/mouse.md
new file mode 100644
index 00000000..7a9b83ca
--- /dev/null
+++ b/mouse.md
@@ -0,0 +1,115 @@
+[Home](https://qb64.com) • [News](news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](samples.md) • [InForm](inform.md) • [GX](gx.md) • [QBjs](qbjs.md) • [Community](community.md) • [More...](more.md)
+
+## Articles - Mouse
+
+*by Luke*
+
+```text
+
+An introductory text to the QB64 mouse interface
+************************************************
+
+High-level overview
+-------------------
+Whenever a mouse event occurs, the mouse generates a message, and adds it to the end of a queue. Every message contains the entire state of the mouse: its location and the state of all buttons.
+
+A mouse event is generated on any of the following events:
+ - A button is pressed.
+ - A button is released.
+ - The mouse changes position.
+
+Note that a message is *not* generated while a button is held down and the mouse is stationary. As long as you don't move the mouse, pressing and releasing a button will only generate two messages in total (one for press, one for release).
+
+
+Dealing with the mouse queue
+------------------------
+To fetch messages from the queue (so their data can be read), the _MOUSEINPUT command is used. It has the following behaviour: if a new message is available in the queue, fetch that one, make it the 'current' message, and return -1. If no messages are available, leave the 'current' message untouched, and return 0.
+
+To actually read data, the commands _MOUSEX, _MOUSEY and _MOUSEBUTTON are used. These three commands query the data contained in the current message, as set by _MOUSEINPUT (described above). As long as _MOUSEINPUT is not called, these functions will always be accessing the same message, and thus always return the same data.
+
+By default, the current message is undefined, and calling the data-access functions without first loading a message with _MOUSEINPUT is pointless.
+
+
+Commands to fetch data
+----------------------
+_MOUSEX, _MOUSEY: Returns the X & Y coordinates of the mouse described in the current message. In graphics modes, it is an integer value, equivalent to the pixel coordinate system used by graphics commands (i.e., PSET (_MOUSEX, _MOUSEY) will plot a point directly where the mouse is). For text mode, _MOUSEX & _MOUSEY will return a floating-point value. The coordinate are in character units but with the origin such that (1, 1) is the *middle* of the character located in the top-left corner. That is, (0.5, 0.5) is the top-left of the screen. Because the character cells are not square, 1 unit in the Y direction is a larger distance onscreen than 1 unit in the X direction.
+
+_MOUSEBUTTON(n): Returns the state of button number n; -1 if the button is pressed, 0 if it is not. Programs can rely on the following button numbers:
+ 1 = left mouse button
+ 2 = right mouse button
+ 3 = middle mouse button
+No other buttons are currently defined. On Windows, if the user has chosen to swap left and right mouse buttons, this setting will not be respected. Accessing this information in the registry is detailed below.
+
+_MOUSEHWEEL: Returns the amount of scroll on the scroll wheel. Unlike other functions that simply inspect the current mouse message, _MOUSEHWEEL keeps a running tally of mouse wheel activity, examing every mouse message as it comes to the front of the queue automatically. Whenever _MOUSEHWEEL sees the wheel scrolled towards the user, it adds 1 to its internal count. When it is scrolled away, it subtracts 1. When _MOUSEWHEEL is read, its value is reset to 0. Thus, _MOUSEWHEEL's return value reflects the net amount of scroll since _MOUSEWHEEL was last called.
+
+***************************************************
+* Note: the scroll wheel does not function on OSX *
+***************************************************
+
+Code analysis
+-------------
+(We use a _LIMIT 30 in our main loops here. This is solely to show where a _LIMIT should be placed; no precise value is being recommended)
+
+
+DO 'main program loop
+ IF _MOUSEINPUT THEN
+ 'Do stuff with mouse
+ END IF
+ 'do other stuff
+ _LIMIT 30
+LOOP
+A naive implementation. Although this may suffice for trivial programs, as the "do stuff with mouse" increases in complexity, executing it with every mouse message quickly brings the main loop under its _LIMIT value. Remember, a mouse message is generated every time the mouse changes position, so a simple drag from one side of the window to the other will generate hundreds of messages.
+
+***************************************
+
+DO 'main program loop
+ DO WHILE _MOUSEINPUT: LOOP
+ 'Access mouse data
+ PRINT _MOUSEX; _MOUSEY
+ 'Do other stuff
+ _LIMIT 30
+LOOP
+A solid improvement. The inner loop will continually fetch new messages from the queue until it is empty, leaving the last message as the current one. We then accesses data from that last message. Since the queue is a first-in first-out structure, this effectively loads the most recent mouse state. Although this avoids the message overload seen in the first method, it is entirely possible to miss mouse clicks.
+
+****************************************
+
+DO
+ IF _MOUSEINPUT THEN
+ IF _MOUSEBUTTON(1) = mouse_down THEN 'Is the button still in the same position?
+ DO WHILE _MOUSEINPUT
+ IF _MOUSEBUTTON(1) <> mouse_down THEN EXIT DO 'Process through the queue until the button changes state
+ LOOP
+ END IF
+ mouse_down = _MOUSEBUTTON(1)
+ 'Do mouse processing here
+ END IF
+ 'Do other stuff
+ _LIMIT 30
+LOOP
+A more advanced method. Like above, we repeatedly call _MOUSEINPUT to skip over the many messages generated by movement. In addition, we stop going along the queue if the mouse button's state changes. Thus it is impossible to miss a mouse click, no matter how long the main loop takes. The author has used this technique with great success in a menu & button GUI library to detect mouse clicks.
+
+
+Windows registry
+----------------
+On Windows, reversing the mouse buttons is not done by modifiying input to programs, but rather by setting a registry key and expecting programs to respect it. The following code, based on a demo by Michael Calkins, has proven useful:
+
+$IF WINDOWS THEN
+ 'This code largely based on a demo by Michael Calkins
+ DECLARE DYNAMIC LIBRARY "advapi32"
+ FUNCTION RegOpenKeyExA& (BYVAL hKey AS _OFFSET, lpSubKey$, BYVAL ulOptions AS _UNSIGNED LONG, BYVAL samDesired AS _UNSIGNED LONG, BYVAL phkResult AS _OFFSET)
+ FUNCTION RegCloseKey& (BYVAL hKey AS _OFFSET)
+ FUNCTION RegQueryValueExA& (BYVAL hKey AS _OFFSET, lpValueName$, BYVAL lpReserved AS _OFFSET, BYVAL lpType AS _OFFSET, lpData$, BYVAL lpcbData AS _OFFSET)
+ END DECLARE
+ result$ = SPACE$(2)
+ rsize = 2
+ l1 = RegOpenKeyExA(&H80000001, "Control Panel\Mouse" + CHR$(0), 0, &H20019, _OFFSET(hkey%&))
+ l2 = RegQueryValueExA(hkey%&, "SwapMouseButtons" + CHR$(0), 0, 0, result$, _OFFSET(rsize))
+ l3 = RegCloseKey(hkey%&)
+ IF l1 = 0 AND l2 = 0 AND left$(result$, 1) = "1" THEN
+ Swapmouse = -1
+ END IF
+$END IF
+
+The variable Swapmouse will then be -1 is the mouse buttons should be swapped, 0 otherwise. Note that on non-Windows (on Linux, at least. The author does not know the behaviour on OSX.) platforms, the program receives the buttons already swapped to the user's desire, so there is never any need to swap within the program.
+
+```
\ No newline at end of file
diff --git a/news.md b/news.md
index d146cdd6..6ec88adc 100644
--- a/news.md
+++ b/news.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](samples.md) • [Inform](inform.md) • [GX](gx.md) • [QBjs](qbjs.md) • [Community](community.md) • [More...](more.md)
+[Home](https://qb64.com) • [News](news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](samples.md) • [InForm](inform.md) • [GX](gx.md) • [QBjs](qbjs.md) • [Community](community.md) • [More...](more.md)
### 2022-06-09
diff --git a/podcast.md b/podcast.md
index 0f04b598..0ead9f34 100644
--- a/podcast.md
+++ b/podcast.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](samples.md) • [Inform](inform.md) • [GX](gx.md) • [QBjs](qbjs.md) • [Community](community.md) • [More...](more.md)
+[Home](https://qb64.com) • [News](news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](samples.md) • [InForm](inform.md) • [GX](gx.md) • [QBjs](qbjs.md) • [Community](community.md) • [More...](more.md)
![Podcast](images/podcast.gif)
diff --git a/privacy.md b/privacy.md
new file mode 100644
index 00000000..943b7c64
--- /dev/null
+++ b/privacy.md
@@ -0,0 +1,13 @@
+[Home](https://qb64.com) • [News](news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](samples.md) • [InForm](inform.md) • [GX](gx.md) • [QBjs](qbjs.md) • [Community](community.md) • [More...](more.md)
+
+## Privacy
+
+The QB64 Compiler and programs created with it make connections to QB64 servers under the following circumstances:
+
+* When updating help pages due to selecting the Help ⮕ Update Current Page or Help ⮕ Update All Pages, content is downloaded from http://github.com/QB64Official/qb64/wiki;
+* When checking for QB64 updates due to selecting the Help ⮕ Check For Newer Version, content is downloaded from http://qb64.com/;
+* Programs that use the _CONNECTIONADDRESS$ function to determine their public IP address;
+
+In these circumstances, the request carries no personal information beyond your public IP address, which is logged as part of regular website traffic. If this is unacceptable, please avoid using the built-in help updater, version updater, or the _CONNECTIONADDRESS$ function.
+
+Any other system information collected by the QB64 compiler is kept locally on the computer and can be removed by deleting the QB64 directory.
\ No newline at end of file
diff --git a/qbjs.md b/qbjs.md
index 7985916f..6d9d8ab3 100644
--- a/qbjs.md
+++ b/qbjs.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](samples.md) • [Inform](inform.md) • [GX](gx.md) • [QBjs](qbjs.md) • [Community](community.md) • [More...](more.md)
+[Home](https://qb64.com) • [News](news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](samples.md) • [InForm](inform.md) • [GX](gx.md) • [QBjs](qbjs.md) • [Community](community.md) • [More...](more.md)
## QBjs
diff --git a/rolodex.md b/rolodex.md
index 73dd9191..e37cd608 100644
--- a/rolodex.md
+++ b/rolodex.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](samples.md) • [Inform](inform.md) • [GX](gx.md) • [QBjs](qbjs.md) • [Community](community.md) • [More...](more.md)
+[Home](https://qb64.com) • [News](news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](samples.md) • [InForm](inform.md) • [GX](gx.md) • [QBjs](qbjs.md) • [Community](community.md) • [More...](more.md)
## ROLODEX
diff --git a/samples.md b/samples.md
index 58c97e94..9eec6c11 100644
--- a/samples.md
+++ b/samples.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](samples.md) • [Inform](inform.md) • [GX](gx.md) • [QBjs](qbjs.md) • [Community](community.md) • [More...](more.md)
+[Home](https://qb64.com) • [News](news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](samples.md) • [InForm](inform.md) • [GX](gx.md) • [QBjs](qbjs.md) • [Community](community.md) • [More...](more.md)
## SAMPLES
@@ -47,7 +47,7 @@
- **[Carols](samples/carols/index.md)** • [Greg Rismoen](samples/greg-rismoen.md) [audio](samples/audio.md), [legacy](samples/legacy.md)
- **[Castle](samples/castle/index.md)** • [Microsoft](samples/microsoft.md) [game](samples/game.md), [2 player](samples/2-player.md)
- **[Cave Rider](samples/cave-rider/index.md)** • [Paul Redling](samples/paul-redling.md) [game](samples/game.md), [legacy](samples/legacy.md)
-- **[Chaotic Scattering](samples/chaotic-scattering/index.md)** • [vince](samples/vince.md) [ray tracing](samples/ray-tracing.md), [reflections](samples/reflections.md)
+- **[Chaotic Scattering](samples/chaotic-scattering/index.md)** • [vince](samples/vince.md) [ray tracing](samples/ray-tracing.md), [reflections](samples/reflections.md), [qbjs](samples/qbjs.md)
- **[Chess QBasic](samples/chess-qbasic/index.md)** • [qbguy](samples/qbguy.md) [game](samples/game.md), [chess](samples/chess.md), [legacy](samples/legacy.md)
- **[Chess RF](samples/chess-rf/index.md)** • [Richard Frost](samples/richard-frost.md) [game](samples/game.md), [chess](samples/chess.md)
- **[Circle Intersecting Circle](samples/circle-intersecting-circle/index.md)** • [bplus](samples/bplus.md) • [STxAxTIC](samples/stxaxtic.md) [geometry](samples/geometry.md), [intersections](samples/intersections.md)
@@ -73,6 +73,7 @@
- **[Diceit](samples/diceit/index.md)** • [John Mendoza](samples/john-mendoza.md) [game](samples/game.md), [dice](samples/dice.md), [legacy](samples/legacy.md)
- **[Didris](samples/didris/index.md)** • [Dietmar Moritz](samples/dietmar-moritz.md) [game](samples/game.md), [tetris](samples/tetris.md)
- **[Die Odds](samples/die-odds/index.md)** • [Tom Sales](samples/tom-sales.md) [statistics](samples/statistics.md), [dos world](samples/dos-world.md), [254 chars](samples/254-chars.md)
+- **[Discrete Cosine Transform](samples/discrete-cosine-transform/index.md)** • [Vince](samples/vince.md) [image processing](samples/image-processing.md), [compression](samples/compression.md), [jpeg](samples/jpeg.md)
- **[Double Pendulum](samples/double-pendulum/index.md)** • [*missing*](samples/author-missing.md) [physics](samples/physics.md), [pendulum](samples/pendulum.md)
- **[Dragon Warrior](samples/dragon-warrior/index.md)** • [Cobalt](samples/cobalt.md) [game](samples/game.md), [rpg](samples/rpg.md)
- **[Dropping Balls](samples/dropping-balls/index.md)** • [bplus](samples/bplus.md) [gravity](samples/gravity.md), [collisions](samples/collisions.md)
@@ -80,6 +81,7 @@
- **[Eliza](samples/eliza/index.md)** • [*missing*](samples/author-missing.md) [ai](samples/ai.md), [eliza](samples/eliza.md)
- **[Ellipse Intersecting Line](samples/ellipse-intersecting-line/index.md)** • [STxAxTIC](samples/stxaxtic.md) [geometry](samples/geometry.md), [intersections](samples/intersections.md)
- **[ESP](samples/esp/index.md)** • [Tom Sales](samples/tom-sales.md) [statistics](samples/statistics.md), [dos world](samples/dos-world.md), [254 chars](samples/254-chars.md)
+- **[Fall Foliage](samples/fall-foliage/index.md)** • [bplus](samples/bplus.md) [zen](samples/zen.md)
- **[Fibonacci Variations](samples/fibonacci-variations/index.md)** • [STxAxTIC](samples/stxaxtic.md) [fibonacci](samples/fibonacci.md), [spiral](samples/spiral.md)
- **[Fight](samples/fight/index.md)** • [*missing*](samples/author-missing.md) [legacy](samples/legacy.md)
- **[Filled Circles and Ellipses](samples/filled-circles-and-ellipses/index.md)** • [QB64 Team 2018](samples/qb64-team-2018.md) [filled circle](samples/filled-circle.md), [ellipse](samples/ellipse.md)
@@ -111,6 +113,7 @@
- **[Hunter](samples/hunter/index.md)** • [Microsoft](samples/microsoft.md) [game](samples/game.md), [maze](samples/maze.md)
- **[Hunters Revenge](samples/hunters-revenge/index.md)** • [Ashish Kushwaha](samples/ashish-kushwaha.md) [game](samples/game.md), [shooter](samples/shooter.md)
- **[Integrators](samples/integrators/index.md)** • [STxAxTIC](samples/stxaxtic.md) [physics](samples/physics.md), [simulation](samples/simulation.md)
+- **[Intrprtr](samples/intrprtr/index.md)** • [*missing*](samples/author-missing.md) [interpreter](samples/interpreter.md), [legacy](samples/legacy.md)
- **[Inverse Julia Fractal Explorer](samples/inverse-julia-fractal-explorer/index.md)** • [Zom-B](samples/zom-b.md) [fractal](samples/fractal.md), [julia set](samples/julia-set.md)
- **[InYrFace](samples/inyrface/index.md)** • [Tom Sales](samples/tom-sales.md) [screensaver](samples/screensaver.md), [dos world](samples/dos-world.md), [254 chars](samples/254-chars.md)
- **[Jpeg Maker](samples/jpeg-maker/index.md)** • [Artelius](samples/artelius.md) [jpeg](samples/jpeg.md), [image manipulation](samples/image-manipulation.md)
@@ -120,6 +123,7 @@
- **[Kaleidoscope Doodler](samples/kaleidoscope-doodler/index.md)** • [qbguy](samples/qbguy.md) [art](samples/art.md), [drawing](samples/drawing.md)
- **[Kaleidoscope Mill](samples/kaleidoscope-mill/index.md)** • [Rho Sigma](samples/rho-sigma.md) [screenblanker](samples/screenblanker.md)
- **[KbdParse](samples/kbdparse/index.md)** • [William W. Sindel](samples/william-w.-sindel.md) [utility](samples/utility.md), [legacy](samples/legacy.md)
+- **[Kite](samples/kite/index.md)** • [mennonite](samples/mennonite.md) [legacy](samples/legacy.md)
- **[Lens Simulator](samples/lens-simulator/index.md)** • [STxAxTIC](samples/stxaxtic.md) [2d](samples/2d.md), [ray tracer](samples/ray-tracer.md)
- **[Letter Blast](samples/letter-blast/index.md)** • [A&A De Pasquale](samples/a&a-de-pasquale.md) [game](samples/game.md), [letter](samples/letter.md), [dos world](samples/dos-world.md)
- **[LFX](samples/lfx/index.md)** • [Jon Mark O'Connor](samples/jon-mark-o'connor.md) [graphics](samples/graphics.md), [dos world](samples/dos-world.md)
@@ -143,8 +147,10 @@
- **[Mandelbrot Spiral](samples/mandelbrot-spiral/index.md)** • [qbguy](samples/qbguy.md) [fractal](samples/fractal.md), [mandelbrot](samples/mandelbrot.md)
- **[Mandelbrot Zoomer](samples/mandelbrot-zoomer/index.md)** • [Tor Myklebust](samples/tor-myklebust.md) [fractal](samples/fractal.md), [mandelbrot](samples/mandelbrot.md)
- **[Maptriangle in 3D](samples/maptriangle-in-3d/index.md)** • [Petr](samples/petr.md) [3d](samples/3d.md), [maptriangle](samples/maptriangle.md)
+- **[Maryann](samples/maryann/index.md)** • [Donald Foster](samples/donald-foster.md) [game](samples/game.md)
+- **[Matrix](samples/matrix/index.md)** • [Antoni Gual](samples/antoni-gual.md) [martix](samples/martix.md), [9 lines](samples/9-lines.md)
- **[Matrix Effect](samples/matrix-effect/index.md)** • [TylerDarko](samples/tylerdarko.md) [ascii](samples/ascii.md), [matrix](samples/matrix.md)
-- **[Mazes of Misery](samples/mazes-of-misery/index.md)** • [Steve M.](samples/steve-m..md) [game](samples/game.md), [maze](samples/maze.md)
+- **[Maze of Misery](samples/maze-of-misery/index.md)** • [Steve M.](samples/steve-m..md) [game](samples/game.md), [maze](samples/maze.md)
- **[Measure](samples/measure/index.md)** • [A&A De Pasquale](samples/a&a-de-pasquale.md) [measure](samples/measure.md), [dos world](samples/dos-world.md)
- **[Mini Clock](samples/mini-clock/index.md)** • [Folker Fritz](samples/folker-fritz.md) [clock](samples/clock.md), [desktop](samples/desktop.md)
- **[Money](samples/money/index.md)** • [Microsoft](samples/microsoft.md) [data management](samples/data-management.md)
@@ -152,14 +158,19 @@
- **[Monopoly Custom](samples/monopoly-custom/index.md)** • [grahambhg](samples/grahambhg.md) [game](samples/game.md), [monopoly](samples/monopoly.md), [legacy](samples/legacy.md)
- **[Moon Lander](samples/moon-lander/index.md)** • [Richard Frost](samples/richard-frost.md) [game](samples/game.md), [lander](samples/lander.md)
- **[Mooncrap](samples/mooncrap/index.md)** • [Daniel Kupfer](samples/daniel-kupfer.md) [game](samples/game.md), [space invaders](samples/space-invaders.md), [legacy](samples/legacy.md)
+- **[Move](samples/move/index.md)** • [mxmm](samples/mxmm.md) [game](samples/game.md), [ascii](samples/ascii.md), [legacy](samples/legacy.md)
+- **[MrGuessIt](samples/mrguessit/index.md)** • [John Mendoza](samples/john-mendoza.md) [game](samples/game.md), [legacy](samples/legacy.md)
- **[MS Phone](samples/ms-phone/index.md)** • [Microsoft](samples/microsoft.md) [data management](samples/data-management.md)
- **[Multi-Mill](samples/multi-mill/index.md)** • [Rho Sigma](samples/rho-sigma.md) [screenblanker](samples/screenblanker.md)
- **[MyCraft](samples/mycraft/index.md)** • [Galleon](samples/galleon.md) [game](samples/game.md), [minecraft](samples/minecraft.md)
- **[Mystify](samples/mystify/index.md)** • [Rho Sigma](samples/rho-sigma.md) [screenblanker](samples/screenblanker.md)
- **[Names](samples/names/index.md)** • [David Bannon](samples/david-bannon.md) [data management](samples/data-management.md), [dos world](samples/dos-world.md)
- **[Nibbles](samples/nibbles/index.md)** • [Microsoft](samples/microsoft.md) [game](samples/game.md), [snake](samples/snake.md)
+- **[NightSky](samples/nightsky/index.md)** • [*missing*](samples/author-missing.md) [graphics](samples/graphics.md), [legacy](samples/legacy.md)
- **[Number Blaster](samples/number-blaster/index.md)** • [R. K. Fink](samples/r.-k.-fink.md) [game](samples/game.md), [dos world](samples/dos-world.md)
+- **[Outwit](samples/outwit/index.md)** • [Donald Foster](samples/donald-foster.md) [game](samples/game.md)
- **[Parabolas](samples/parabolas/index.md)** • [STxAxTIC](samples/stxaxtic.md) [zen](samples/zen.md)
+- **[ParseLine](samples/parseline/index.md)** • [Rho Sigma](samples/rho-sigma.md) [data management](samples/data-management.md), [parsing](samples/parsing.md)
- **[Particle Fountain](samples/particle-fountain/index.md)** • [bplus](samples/bplus.md) [particles](samples/particles.md)
- **[Pattern](samples/pattern/index.md)** • [Antoni Gual](samples/antoni-gual.md) [screensaver](samples/screensaver.md), [9 lines](samples/9-lines.md)
- **[Pattern Editor](samples/pattern-editor/index.md)** • [Abacus](samples/abacus.md) [art](samples/art.md), [pattern](samples/pattern.md)
@@ -171,8 +182,10 @@
- **[PixelPlus](samples/pixelplus/index.md)** • [Chris Chadwick](samples/chris-chadwick.md) [graphics](samples/graphics.md), [bitmap](samples/bitmap.md)
- **[Plasma Effect](samples/plasma-effect/index.md)** • [Cyperium](samples/cyperium.md) [graphics](samples/graphics.md), [plasma](samples/plasma.md)
- **[Plasma Non-Pal](samples/plasma-non-pal/index.md)** • [Relsoft](samples/relsoft.md) [screensaver](samples/screensaver.md), [plasma](samples/plasma.md)
+- **[Plasma Waves](samples/plasma-waves/index.md)** • [*missing*](samples/author-missing.md) [screensaver](samples/screensaver.md), [plasma](samples/plasma.md)
- **[Platform](samples/platform/index.md)** • [Fellippe Heitor](samples/fellippe-heitor.md) [game](samples/game.md), [platform](samples/platform.md)
-- **[Plumeria](samples/plumeria/index.md)** • [Vince](samples/vince.md) [2d](samples/2d.md), [graphics](samples/graphics.md)
+- **[Plumeria](samples/plumeria/index.md)** • [Vince](samples/vince.md) [2d](samples/2d.md), [graphics](samples/graphics.md), [qbjs](samples/qbjs.md)
+- **[Pong BJ](samples/pong-bj/index.md)** • [bj mccann](samples/bj-mccann.md) [game](samples/game.md), [pong](samples/pong.md), [legacy](samples/legacy.md)
- **[Pong Tennis](samples/pong-tennis/index.md)** • [Alex Beighton](samples/alex-beighton.md) [game](samples/game.md), [pong](samples/pong.md), [legacy](samples/legacy.md)
- **[Pull-down Menu](samples/pull-down-menu/index.md)** • [Abacus](samples/abacus.md) [gui](samples/gui.md), [menu](samples/menu.md)
- **[QB Clock](samples/qb-clock/index.md)** • [Alan Zeichick](samples/alan-zeichick.md) [clock](samples/clock.md)
@@ -189,18 +202,25 @@
- **[QSpace](samples/qspace/index.md)** • [Microsoft](samples/microsoft.md) [game](samples/game.md), [defense](samples/defense.md)
- **[QSynth](samples/qsynth/index.md)** • [Microsoft](samples/microsoft.md) [sound](samples/sound.md), [music](samples/music.md)
- **[QTrek](samples/qtrek/index.md)** • [Philipp Strathausen](samples/philipp-strathausen.md) [game](samples/game.md), [space shooter](samples/space-shooter.md)
+- **[QuitBox](samples/quitbox/index.md)** • [eoredson](samples/eoredson.md) [tui](samples/tui.md)
- **[Rattler](samples/rattler/index.md)** • [Bob Seguin](samples/bob-seguin.md) [game](samples/game.md), [snake](samples/snake.md)
- **[Ray Tracer Z](samples/ray-tracer-z/index.md)** • [Zom-B](samples/zom-b.md) [3d](samples/3d.md), [ray tracer](samples/ray-tracer.md)
- **[RayCaster](samples/raycaster/index.md)** • [Antoni Gual](samples/antoni-gual.md) [3d](samples/3d.md), [raycaster](samples/raycaster.md)
- **[Rectong](samples/rectong/index.md)** • [Mike Chambers](samples/mike-chambers.md) [game](samples/game.md), [pong](samples/pong.md), [legacy](samples/legacy.md)
- **[Relief 3D](samples/relief-3d/index.md)** • [Danilin](samples/danilin.md) [graphics](samples/graphics.md), [isometric](samples/isometric.md)
- **[Reversi](samples/reversi/index.md)** • [Microsoft](samples/microsoft.md) [game](samples/game.md)
+- **[RightTriangle](samples/righttriangle/index.md)** • [T.A. Giles](samples/t.a.-giles.md) [geometry](samples/geometry.md), [legacy](samples/legacy.md)
- **[Ripples](samples/ripples/index.md)** • [Antoni Gual](samples/antoni-gual.md) [image processing](samples/image-processing.md), [ripple](samples/ripple.md)
- **[Robo Raider](samples/robo-raider/index.md)** • [Kevin](samples/kevin.md) [game](samples/game.md)
- **[Rockets](samples/rockets/index.md)** • [*missing*](samples/author-missing.md) [screensaver](samples/screensaver.md), [particles](samples/particles.md)
+- **[Rotate](samples/rotate/index.md)** • [*missing*](samples/author-missing.md) [geometry](samples/geometry.md), [legacy](samples/legacy.md)
+- **[RotoZoom3](samples/rotozoom3/index.md)** • [Galleon](samples/galleon.md) • [bplus](samples/bplus.md) [graphics](samples/graphics.md), [rotozoom](samples/rotozoom.md)
- **[Rotozoomer](samples/rotozoomer/index.md)** • [Antoni Gual](samples/antoni-gual.md) [screensaver](samples/screensaver.md), [9 lines](samples/9-lines.md)
+- **[Rug](samples/rug/index.md)** • [*missing*](samples/author-missing.md) [graphics](samples/graphics.md), [ascii](samples/ascii.md), [legacy](samples/legacy.md)
- **[Saver](samples/saver/index.md)** • [David Ferrier](samples/david-ferrier.md) [screensaver](samples/screensaver.md), [dos world](samples/dos-world.md)
- **[Schemat](samples/schemat/index.md)** • [Leif J. Burrow](samples/leif-j.-burrow.md) [circuits](samples/circuits.md), [schematics](samples/schematics.md)
+- **[Scramble](samples/scramble/index.md)** • [*missing*](samples/author-missing.md) [game](samples/game.md), [legacy](samples/legacy.md)
+- **[Screen Tester](samples/screen-tester/index.md)** • [patz2009](samples/patz2009.md) [graphics](samples/graphics.md), [utility](samples/utility.md), [legacy](samples/legacy.md)
- **[Set Fire to Rain](samples/set-fire-to-rain/index.md)** • [Fellippe Heitor](samples/fellippe-heitor.md) [game](samples/game.md), [zen](samples/zen.md)
- **[Shooter](samples/shooter/index.md)** • [*missing*](samples/author-missing.md) [game](samples/game.md), [shooter](samples/shooter.md)
- **[ShootUp](samples/shootup/index.md)** • [Nixon](samples/nixon.md) [game](samples/game.md), [legacy](samples/legacy.md)
@@ -208,6 +228,7 @@
- **[Simpire](samples/simpire/index.md)** • [Pyrus](samples/pyrus.md) [game](samples/game.md), [legacy](samples/legacy.md)
- **[Sine Wave Explorer](samples/sine-wave-explorer/index.md)** • [*missing*](samples/author-missing.md) [trigonometry](samples/trigonometry.md)
- **[SineCube](samples/sinecube/index.md)** • [Mennonite](samples/mennonite.md) [graphics](samples/graphics.md)
+- **[SkyDiver](samples/skydiver/index.md)** • [Jeremy Ruten](samples/jeremy-ruten.md) [game](samples/game.md), [legacy](samples/legacy.md)
- **[Slot](samples/slot/index.md)** • [Tom Sales](samples/tom-sales.md) [money](samples/money.md), [dos world](samples/dos-world.md), [254 chars](samples/254-chars.md)
- **[Snake Basic](samples/snake-basic/index.md)** • [pcluddite](samples/pcluddite.md) [game](samples/game.md), [snake](samples/snake.md)
- **[Sokoban](samples/sokoban/index.md)** • [David Joffe](samples/david-joffe.md) [game](samples/game.md), [puzzle](samples/puzzle.md)
@@ -217,19 +238,29 @@
- **[Space64](samples/space64/index.md)** • [Cyperium](samples/cyperium.md) [game](samples/game.md), [space shooter](samples/space-shooter.md)
- **[Spaceship](samples/spaceship/index.md)** • [Fellippe Heitor](samples/fellippe-heitor.md) [game](samples/game.md), [space shooter](samples/space-shooter.md)
- **[Splines](samples/splines/index.md)** • [Rho Sigma](samples/rho-sigma.md) [screenblanker](samples/screenblanker.md)
+- **[SplitJoin](samples/splitjoin/index.md)** • [luke](samples/luke.md) [data management](samples/data-management.md), [split](samples/split.md)
+- **[Square Counter](samples/square-counter/index.md)** • [Paulunknown](samples/paulunknown.md) [legacy](samples/legacy.md)
+- **[SSaver](samples/ssaver/index.md)** • [*missing*](samples/author-missing.md) [screensaver](samples/screensaver.md), [legacy](samples/legacy.md)
+- **[Star Battles](samples/star-battles/index.md)** • [*missing*](samples/author-missing.md) [game](samples/game.md), [2 player](samples/2-player.md), [legacy](samples/legacy.md)
- **[Starfield](samples/starfield/index.md)** • [Antoni Gual](samples/antoni-gual.md) [starfield](samples/starfield.md), [9 lines](samples/9-lines.md)
- **[Starfield Torus](samples/starfield-torus/index.md)** • [JKC](samples/jkc.md) [starfield](samples/starfield.md)
- **[Stock Watcher](samples/stock-watcher/index.md)** • [*missing*](samples/author-missing.md) [money](samples/money.md), [stocks](samples/stocks.md)
+- **[Stones](samples/stones/index.md)** • [*missing*](samples/author-missing.md) [game](samples/game.md), [legacy](samples/legacy.md)
+- **[Sudoku](samples/sudoku/index.md)** • [*missing*](samples/author-missing.md) [legacy](samples/legacy.md)
- **[Super Mario Jump](samples/super-mario-jump/index.md)** • [Terry Ritchie](samples/terry-ritchie.md) [game](samples/game.md), [mario](samples/mario.md)
- **[Temperature Conversion](samples/temperature-conversion/index.md)** • [*missing*](samples/author-missing.md) [science](samples/science.md), [legacy](samples/legacy.md)
- **[Template DW](samples/template-dw/index.md)** • [Tim Syrop](samples/tim-syrop.md) [tui](samples/tui.md), [dos world](samples/dos-world.md)
+- **[Temple](samples/temple/index.md)** • [John Belew](samples/john-belew.md) [game](samples/game.md), [legacy](samples/legacy.md)
- **[Texel Raytracer](samples/texel-raytracer/index.md)** • [Antoni Gual](samples/antoni-gual.md) [3d](samples/3d.md), [ray tracing](samples/ray-tracing.md)
+- **[Thick Lines](samples/thick-lines/index.md)** • [Fellippe Heitor](samples/fellippe-heitor.md) [graphics](samples/graphics.md), [line](samples/line.md)
- **[Tic Tac Toe](samples/tic-tac-toe/index.md)** • [Paul Meyer](samples/paul-meyer.md) [game](samples/game.md), [tic tac toe](samples/tic-tac-toe.md)
- **[Tic Tac Toe 3D](samples/tic-tac-toe-3d/index.md)** • [qbguy](samples/qbguy.md) [game](samples/game.md), [tic tac toe](samples/tic-tac-toe.md)
- **[Tic Tac Toe Rings](samples/tic-tac-toe-rings/index.md)** • [Fellippe Heitor](samples/fellippe-heitor.md) [game](samples/game.md), [tic tac toe rings](samples/tic-tac-toe-rings.md)
- **[Tile Demo](samples/tile-demo/index.md)** • [Greg Ennen](samples/greg-ennen.md) [tile](samples/tile.md), [dos world](samples/dos-world.md), [qbjs](samples/qbjs.md)
- **[Tile Engine Test](samples/tile-engine-test/index.md)** • [Abacus](samples/abacus.md) [art](samples/art.md), [tile](samples/tile.md)
- **[Tile Experiment](samples/tile-experiment/index.md)** • [Greg Ennen](samples/greg-ennen.md) [tile](samples/tile.md), [dos world](samples/dos-world.md)
+- **[Time](samples/time/index.md)** • [*missing*](samples/author-missing.md) [clock](samples/clock.md), [legacy](samples/legacy.md)
+- **[Torneo NDC](samples/torneo-ndc/index.md)** • [FGR SOFTWARE](samples/fgr-software.md) [game](samples/game.md), [legacy](samples/legacy.md)
- **[Torus Demo](samples/torus-demo/index.md)** • [Microsoft](samples/microsoft.md) [geometry](samples/geometry.md), [torus](samples/torus.md)
- **[Tower of Hanoi](samples/tower-of-hanoi/index.md)** • [*missing*](samples/author-missing.md) [game](samples/game.md), [tower](samples/tower.md)
- **[Trig Demo](samples/trig-demo/index.md)** • [STxAxTIC](samples/stxaxtic.md) [trigonometry](samples/trigonometry.md)
@@ -237,9 +268,14 @@
- **[Turtle Graphics](samples/turtle-graphics/index.md)** • [triggered](samples/triggered.md) [fractal](samples/fractal.md), [turtle graphics](samples/turtle-graphics.md), [qbjs](samples/qbjs.md)
- **[Twirl](samples/twirl/index.md)** • [Antoni Gual](samples/antoni-gual.md) [screensaver](samples/screensaver.md), [9 lines](samples/9-lines.md)
- **[Vector Field](samples/vector-field/index.md)** • [STxAxTIC](samples/stxaxtic.md) [2d](samples/2d.md), [vectors](samples/vectors.md)
+- **[Vektor](samples/vektor/index.md)** • [*missing*](samples/author-missing.md) [geometry](samples/geometry.md), [legacy](samples/legacy.md)
- **[Vortex](samples/vortex/index.md)** • [Antoni Gual](samples/antoni-gual.md) [screensaver](samples/screensaver.md), [9 lines](samples/9-lines.md)
+- **[VSphere](samples/vsphere/index.md)** • [*missing*](samples/author-missing.md) [geometry](samples/geometry.md), [legacy](samples/legacy.md)
- **[Water](samples/water/index.md)** • [*missing*](samples/author-missing.md) [wave motion](samples/wave-motion.md)
- **[Wetspot](samples/wetspot/index.md)** • [Angelo Mottola](samples/angelo-mottola.md) [game](samples/game.md), [legacy](samples/legacy.md)
- **[Wheel O](samples/wheel-o/index.md)** • [Tom Sales](samples/tom-sales.md) [game](samples/game.md), [dos world](samples/dos-world.md), [254 chars](samples/254-chars.md)
- **[Worms](samples/worms/index.md)** • [Rho Sigma](samples/rho-sigma.md) [screenblanker](samples/screenblanker.md)
+- **[Wumpus](samples/wumpus/index.md)** • [*missing*](samples/author-missing.md) [game](samples/game.md), [legacy](samples/legacy.md)
+- **[X-Wing](samples/x-wing/index.md)** • [DATATECH](samples/datatech.md) [game](samples/game.md), [star wars](samples/star-wars.md), [legacy](samples/legacy.md)
- **[XE Hex Editor](samples/xe-hex-editor/index.md)** • [Dav](samples/dav.md) [editor](samples/editor.md), [hex](samples/hex.md)
+- **[Zodiac](samples/zodiac/index.md)** • [Paulunknown](samples/paulunknown.md) [game](samples/game.md), [legacy](samples/legacy.md)
diff --git a/samples/2-player.md b/samples/2-player.md
index 4c63d1f8..b6c3778a 100644
--- a/samples/2-player.md
+++ b/samples/2-player.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: 2 PLAYER
@@ -7,3 +7,9 @@
[🐝 Microsoft](microsoft.md) 🔗 [game](game.md), [2 player](2-player.md)
A turn-based artillery game by Microsoft.
+
+**[Star Battles](star-battles/index.md)**
+
+[🐝 *missing*](author-missing.md) 🔗 [game](game.md), [2 player](2-player.md), [legacy](legacy.md)
+
+Two players battle in starships.
diff --git a/samples/254-chars.md b/samples/254-chars.md
index 2ad01186..3a9dda49 100644
--- a/samples/254-chars.md
+++ b/samples/254-chars.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: 254 CHARS
diff --git a/samples/2d.md b/samples/2d.md
index 11ddc7c1..ac618bf3 100644
--- a/samples/2d.md
+++ b/samples/2d.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: 2D
@@ -22,7 +22,7 @@ Drawing program by Lucid.
**[Plumeria](plumeria/index.md)**
-[🐝 Vince](vince.md) 🔗 [2d](2d.md), [graphics](graphics.md)
+[🐝 Vince](vince.md) 🔗 [2d](2d.md), [graphics](graphics.md), [qbjs](qbjs.md)
Plumeria demo by Vince.
diff --git a/samples/3d-balls/index.md b/samples/3d-balls/index.md
index 91d15bb1..8101ab1a 100644
--- a/samples/3d-balls/index.md
+++ b/samples/3d-balls/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: 3D BALLS
diff --git a/samples/3d-cube/index.md b/samples/3d-cube/index.md
index 0fbd3169..f99860b3 100644
--- a/samples/3d-cube/index.md
+++ b/samples/3d-cube/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: 3D CUBE
diff --git a/samples/3d-engine-prototypes/index.md b/samples/3d-engine-prototypes/index.md
index f6005a96..3a94fef9 100644
--- a/samples/3d-engine-prototypes/index.md
+++ b/samples/3d-engine-prototypes/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: 3D ENGINE PROTOTYPES
diff --git a/samples/3d-grapher/index.md b/samples/3d-grapher/index.md
index 458f6a9a..77fd2bea 100644
--- a/samples/3d-grapher/index.md
+++ b/samples/3d-grapher/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: 3D GRAPHER
diff --git a/samples/3d-wireframe/index.md b/samples/3d-wireframe/index.md
index 2cf7053d..1a05328f 100644
--- a/samples/3d-wireframe/index.md
+++ b/samples/3d-wireframe/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: 3D WIREFRAME
diff --git a/samples/3d.md b/samples/3d.md
index 5862ba1a..7993779c 100644
--- a/samples/3d.md
+++ b/samples/3d.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: 3D
diff --git a/samples/3ds-viewer/index.md b/samples/3ds-viewer/index.md
index 97026575..6cf13a7f 100644
--- a/samples/3ds-viewer/index.md
+++ b/samples/3ds-viewer/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: 3DS VIEWER
diff --git a/samples/7-lines.md b/samples/7-lines.md
index 4afaacee..49dbc147 100644
--- a/samples/7-lines.md
+++ b/samples/7-lines.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: 7 LINES
diff --git a/samples/9-lines.md b/samples/9-lines.md
index fd1d0dc5..31713b92 100644
--- a/samples/9-lines.md
+++ b/samples/9-lines.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: 9 LINES
@@ -32,6 +32,12 @@
'MANDELBROT by Antoni Gual 2003 'for Rel's 9 LINER contest at QBASICNEWS.COM 1/2003 '-----------...
+**[Matrix](matrix/index.md)**
+
+[🐝 Antoni Gual](antoni-gual.md) 🔗 [martix](martix.md), [9 lines](9-lines.md)
+
+'Matrix by Antoni Gual agual@eic.ictnet.es 'for Rel's 9 LINER contest at QBASICNEWS.COM 1/200...
+
**[Pattern](pattern/index.md)**
[🐝 Antoni Gual](antoni-gual.md) 🔗 [screensaver](screensaver.md), [9 lines](9-lines.md)
diff --git a/samples/a&a-de-pasquale.md b/samples/a&a-de-pasquale.md
index 8478cc60..750c3ada 100644
--- a/samples/a&a-de-pasquale.md
+++ b/samples/a&a-de-pasquale.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY A&A DE PASQUALE
diff --git a/samples/abacus.md b/samples/abacus.md
index 5926685b..4092cdef 100644
--- a/samples/abacus.md
+++ b/samples/abacus.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: ABACUS
diff --git a/samples/abacus/index.md b/samples/abacus/index.md
index d8b81242..5588f7bc 100644
--- a/samples/abacus/index.md
+++ b/samples/abacus/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: ABACUS
diff --git a/samples/ai.md b/samples/ai.md
index 273aa056..a3e4c03f 100644
--- a/samples/ai.md
+++ b/samples/ai.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: AI
diff --git a/samples/akos-ivanyi.md b/samples/akos-ivanyi.md
index 4b1ee698..38ed1b60 100644
--- a/samples/akos-ivanyi.md
+++ b/samples/akos-ivanyi.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY AKOS IVANYI
diff --git a/samples/alan-zeichick.md b/samples/alan-zeichick.md
index 276cea7b..b1872344 100644
--- a/samples/alan-zeichick.md
+++ b/samples/alan-zeichick.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY ALAN ZEICHICK
diff --git a/samples/alekbeth/index.md b/samples/alekbeth/index.md
index 0b5afd0f..eb3737e4 100644
--- a/samples/alekbeth/index.md
+++ b/samples/alekbeth/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: ALEKBETH
diff --git a/samples/alex-beighton.md b/samples/alex-beighton.md
index 81b33e99..d695b4a3 100644
--- a/samples/alex-beighton.md
+++ b/samples/alex-beighton.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY ALEX BEIGHTON
diff --git a/samples/alyman/index.md b/samples/alyman/index.md
index 92ccdb85..c696cb63 100644
--- a/samples/alyman/index.md
+++ b/samples/alyman/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: ALYMAN
diff --git a/samples/american-flag/index.md b/samples/american-flag/index.md
index fd047c76..386920d3 100644
--- a/samples/american-flag/index.md
+++ b/samples/american-flag/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: AMERICAN FLAG
diff --git a/samples/amongst/index.md b/samples/amongst/index.md
index 27845d2d..51a75e23 100644
--- a/samples/amongst/index.md
+++ b/samples/amongst/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: AMONGST
diff --git a/samples/analog-calculator/index.md b/samples/analog-calculator/index.md
index 468048e2..c35fc0c7 100644
--- a/samples/analog-calculator/index.md
+++ b/samples/analog-calculator/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: ANALOG CALCULATOR
diff --git a/samples/anarky.md b/samples/anarky.md
index bd95289e..0d8fad9b 100644
--- a/samples/anarky.md
+++ b/samples/anarky.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY ANARKY
diff --git a/samples/angelo-mottola.md b/samples/angelo-mottola.md
index 8d0ab9f9..118745ee 100644
--- a/samples/angelo-mottola.md
+++ b/samples/angelo-mottola.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY ANGELO MOTTOLA
diff --git a/samples/animax/index.md b/samples/animax/index.md
index c0e73136..ed418407 100644
--- a/samples/animax/index.md
+++ b/samples/animax/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: ANIMAX
diff --git a/samples/antoni-gual.md b/samples/antoni-gual.md
index e4c713ff..dc6a580d 100644
--- a/samples/antoni-gual.md
+++ b/samples/antoni-gual.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY ANTONI GUAL
@@ -44,6 +44,12 @@ A forest scene with rippling reflecting water 'FOREST.BAS by Antoni Gual 'For t
'MANDELBROT by Antoni Gual 2003 'for Rel's 9 LINER contest at QBASICNEWS.COM 1/2003 '-----------...
+**[Matrix](matrix/index.md)**
+
+[🐝 Antoni Gual](antoni-gual.md) 🔗 [martix](martix.md), [9 lines](9-lines.md)
+
+'Matrix by Antoni Gual agual@eic.ictnet.es 'for Rel's 9 LINER contest at QBASICNEWS.COM 1/200...
+
**[Pattern](pattern/index.md)**
[🐝 Antoni Gual](antoni-gual.md) 🔗 [screensaver](screensaver.md), [9 lines](9-lines.md)
diff --git a/samples/arc-demo/index.md b/samples/arc-demo/index.md
index 7fb04e62..eb504155 100644
--- a/samples/arc-demo/index.md
+++ b/samples/arc-demo/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: ARC DEMO
diff --git a/samples/arithmetic.md b/samples/arithmetic.md
index 71c85b86..2e62198a 100644
--- a/samples/arithmetic.md
+++ b/samples/arithmetic.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: ARITHMETIC
diff --git a/samples/art.md b/samples/art.md
index a593818a..b4ed2305 100644
--- a/samples/art.md
+++ b/samples/art.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: ART
diff --git a/samples/artelius.md b/samples/artelius.md
index e5d9e53f..f9ac0f69 100644
--- a/samples/artelius.md
+++ b/samples/artelius.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY ARTELIUS
diff --git a/samples/artillery.md b/samples/artillery.md
index 8956f37c..0c26e8bd 100644
--- a/samples/artillery.md
+++ b/samples/artillery.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: ARTILLERY
diff --git a/samples/ascii-conversion/index.md b/samples/ascii-conversion/index.md
index dbdd8fc7..1bb1bb19 100644
--- a/samples/ascii-conversion/index.md
+++ b/samples/ascii-conversion/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: ASCII CONVERSION
diff --git a/samples/ascii.md b/samples/ascii.md
index 87611ae3..3b19e33a 100644
--- a/samples/ascii.md
+++ b/samples/ascii.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: ASCII
@@ -20,8 +20,20 @@ Drop ascii bombs on target.
If you look close, it spells F-e-l-l-i-p-p-e.
+**[Move](move/index.md)**
+
+[🐝 mxmm](mxmm.md) 🔗 [game](game.md), [ascii](ascii.md), [legacy](legacy.md)
+
+PRINT "Welcome to the ultimate ASCII-player game: MOVE!" PRINT "v.1.0 by mxmm"
+
**[QBAscii](qbascii/index.md)**
[🐝 Jeremy Munn](jeremy-munn.md) 🔗 [drawing](drawing.md), [ascii](ascii.md)
'***************************************************************************** ' Name: QB...
+
+**[Rug](rug/index.md)**
+
+[🐝 *missing*](author-missing.md) 🔗 [graphics](graphics.md), [ascii](ascii.md), [legacy](legacy.md)
+
+Simple coloured ascii smilies.
diff --git a/samples/asciipong/index.md b/samples/asciipong/index.md
index 6b876e16..d9af2867 100644
--- a/samples/asciipong/index.md
+++ b/samples/asciipong/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: ASCIIPONG
diff --git a/samples/ashish-kushwaha.md b/samples/ashish-kushwaha.md
index 2064f97d..a9a5cf8c 100644
--- a/samples/ashish-kushwaha.md
+++ b/samples/ashish-kushwaha.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY ASHISH KUSHWAHA
diff --git a/samples/assault/index.md b/samples/assault/index.md
index 59f25418..8dffdc52 100644
--- a/samples/assault/index.md
+++ b/samples/assault/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: ASSAULT
diff --git a/samples/astrowars/index.md b/samples/astrowars/index.md
index 3641ea5e..2366d588 100644
--- a/samples/astrowars/index.md
+++ b/samples/astrowars/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: ASTROWARS
diff --git a/samples/audio.md b/samples/audio.md
index 482619ad..7e8f298f 100644
--- a/samples/audio.md
+++ b/samples/audio.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: AUDIO
diff --git a/samples/audio/index.md b/samples/audio/index.md
index 8b8e4fdc..1c5e269b 100644
--- a/samples/audio/index.md
+++ b/samples/audio/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: AUDIO
diff --git a/samples/author-cloud.md b/samples/author-cloud.md
index 208b6a81..f49c5645 100644
--- a/samples/author-cloud.md
+++ b/samples/author-cloud.md
@@ -1,5 +1,5 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## AUTHORS
-[*missing*:53](author-missing.md) • [Microsoft:31](microsoft.md) • [Antoni Gual:29](antoni-gual.md) • [Fellippe Heitor:27](fellippe-heitor.md) • [STxAxTIC:23](stxaxtic.md) • [Rho Sigma:19](rho-sigma.md) • [qbguy:17](qbguy.md) • [Tom Sales:15](tom-sales.md) • [Vince:13](vince.md) • [A&A De Pasquale:11](a&a-de-pasquale.md) • [bplus:9](bplus.md) • [Abacus:7](abacus.md) • [Bob Seguin:7](bob-seguin.md) • [Hardin Brothers:5](hardin-brothers.md) • [Relsoft:5](relsoft.md) • [Richard Frost:5](richard-frost.md) • [Terry Ritchie:5](terry-ritchie.md) • [Zom-B:5](zom-b.md) • [Alan Zeichick:3](alan-zeichick.md) • [Alex Beighton:3](alex-beighton.md) • [Ashish Kushwaha:3](ashish-kushwaha.md) • [Cyperium:3](cyperium.md) • [darokin:3](darokin.md) • [Dav:3](dav.md) • [Galleon:3](galleon.md) • [Greg Ennen:3](greg-ennen.md) • [Jon Mark O'Connor:3](jon-mark-o'connor.md) • [Tim Syrop:3](tim-syrop.md) • [Akos Ivanyi:1](akos-ivanyi.md) • [anarky:1](anarky.md) • [Angelo Mottola:1](angelo-mottola.md) • [Artelius:1](artelius.md) • [Brian Murphy:1](brian-murphy.md) • [Chris Chadwick:1](chris-chadwick.md) • [Cobalt:1](cobalt.md) • [Daniel Kupfer:1](daniel-kupfer.md) • [Danilin:1](danilin.md) • [David Bannon:1](david-bannon.md) • [David Ferrier:1](david-ferrier.md) • [David Joffe:1](david-joffe.md) • [Dennis Mull:1](dennis-mull.md) • [Dietmar Moritz:1](dietmar-moritz.md) • [Doug Lowe:1](doug-lowe.md) • [Douglas Park:1](douglas-park.md) • [Entropy:1](entropy.md) • [Folker Fritz:1](folker-fritz.md) • [Glenn Powell:1](glenn-powell.md) • [grahambhg:1](grahambhg.md) • [Greg Rismoen:1](greg-rismoen.md) • [harixxx:1](harixxx.md) • [Jeff Davis:1](jeff-davis.md) • [Jeh:1](jeh.md) • [Jeremy Munn:1](jeremy-munn.md) • [JKC:1](jkc.md) • [John Mendoza:1](john-mendoza.md) • [John Wolfskill:1](john-wolfskill.md) • [Kevin:1](kevin.md) • [Kevin B. Kohler:1](kevin-b.-kohler.md) • [kinem:1](kinem.md) • [Leif J. Burrow:1](leif-j.-burrow.md) • [Lucid:1](lucid.md) • [Luke:1](luke.md) • [M-AZN:1](m-azn.md) • [Matt Bross:1](matt-bross.md) • [Matthew:1](matthew.md) • [Matthew River Knight:1](matthew-river-knight.md) • [Mennonite:1](mennonite.md) • [Michael Fogleman:1](michael-fogleman.md) • [Michael Kargas:1](michael-kargas.md) • [Mike Chambers:1](mike-chambers.md) • [Nathan Thomas:1](nathan-thomas.md) • [Nixon:1](nixon.md) • [Paul Meyer:1](paul-meyer.md) • [Paul Redling:1](paul-redling.md) • [pcluddite:1](pcluddite.md) • [Petr:1](petr.md) • [Philipp Strathausen:1](philipp-strathausen.md) • [PMG:1](pmg.md) • [Pyrus:1](pyrus.md) • [QB64 Team 2018:1](qb64-team-2018.md) • [qbfreak2000:1](qbfreak2000.md) • [R. K. Fink:1](r.-k.-fink.md) • [REALiTY Software:1](reality-software.md) • [RETROQB45:1](retroqb45.md) • [RhoSigma:1](rhosigma.md) • [Rich Geldreich:1](rich-geldreich.md) • [Richard C Garriott:1](richard-c-garriott.md) • [Rick Ellis:1](rick-ellis.md) • [rpgfan3233:1](rpgfan3233.md) • [Scott Edwards:1](scott-edwards.md) • [Steve M.:1](steve-m..md) • [Timothy Baxendale:1](timothy-baxendale.md) • [Tor Myklebust:1](tor-myklebust.md) • [TrialAndTerror:1](trialandterror.md) • [triggered:1](triggered.md) • [Tsiplacov Sergey:1](tsiplacov-sergey.md) • [TylerDarko:1](tylerdarko.md) • [William Loughner:1](william-loughner.md) • [William W. Sindel:1](william-w.-sindel.md) • [Yu:1](yu.md) • [Zack Johnson:1](zack-johnson.md)
\ No newline at end of file
+[*missing*:81](author-missing.md) • [Antoni Gual:31](antoni-gual.md) • [Microsoft:31](microsoft.md) • [Fellippe Heitor:29](fellippe-heitor.md) • [STxAxTIC:23](stxaxtic.md) • [Rho Sigma:21](rho-sigma.md) • [qbguy:17](qbguy.md) • [Tom Sales:15](tom-sales.md) • [Vince:15](vince.md) • [bplus:13](bplus.md) • [A&A De Pasquale:11](a&a-de-pasquale.md) • [Abacus:7](abacus.md) • [Bob Seguin:7](bob-seguin.md) • [Galleon:5](galleon.md) • [Hardin Brothers:5](hardin-brothers.md) • [Relsoft:5](relsoft.md) • [Richard Frost:5](richard-frost.md) • [Terry Ritchie:5](terry-ritchie.md) • [Zom-B:5](zom-b.md) • [Alan Zeichick:3](alan-zeichick.md) • [Alex Beighton:3](alex-beighton.md) • [Ashish Kushwaha:3](ashish-kushwaha.md) • [Cyperium:3](cyperium.md) • [darokin:3](darokin.md) • [Dav:3](dav.md) • [Donald Foster:3](donald-foster.md) • [Greg Ennen:3](greg-ennen.md) • [John Mendoza:3](john-mendoza.md) • [Jon Mark O'Connor:3](jon-mark-o'connor.md) • [Luke:3](luke.md) • [mennonite:3](mennonite.md) • [Paulunknown:3](paulunknown.md) • [Tim Syrop:3](tim-syrop.md) • [Akos Ivanyi:1](akos-ivanyi.md) • [anarky:1](anarky.md) • [Angelo Mottola:1](angelo-mottola.md) • [Artelius:1](artelius.md) • [bj mccann:1](bj-mccann.md) • [Brian Murphy:1](brian-murphy.md) • [Chris Chadwick:1](chris-chadwick.md) • [Cobalt:1](cobalt.md) • [Daniel Kupfer:1](daniel-kupfer.md) • [Danilin:1](danilin.md) • [DATATECH:1](datatech.md) • [David Bannon:1](david-bannon.md) • [David Ferrier:1](david-ferrier.md) • [David Joffe:1](david-joffe.md) • [Dennis Mull:1](dennis-mull.md) • [Dietmar Moritz:1](dietmar-moritz.md) • [Doug Lowe:1](doug-lowe.md) • [Douglas Park:1](douglas-park.md) • [Entropy:1](entropy.md) • [eoredson:1](eoredson.md) • [FGR SOFTWARE:1](fgr-software.md) • [Folker Fritz:1](folker-fritz.md) • [Glenn Powell:1](glenn-powell.md) • [grahambhg:1](grahambhg.md) • [Greg Rismoen:1](greg-rismoen.md) • [harixxx:1](harixxx.md) • [Jeff Davis:1](jeff-davis.md) • [Jeh:1](jeh.md) • [Jeremy Munn:1](jeremy-munn.md) • [Jeremy Ruten:1](jeremy-ruten.md) • [JKC:1](jkc.md) • [John Belew:1](john-belew.md) • [John Wolfskill:1](john-wolfskill.md) • [Kevin:1](kevin.md) • [Kevin B. Kohler:1](kevin-b.-kohler.md) • [kinem:1](kinem.md) • [Leif J. Burrow:1](leif-j.-burrow.md) • [Lucid:1](lucid.md) • [M-AZN:1](m-azn.md) • [Matt Bross:1](matt-bross.md) • [Matthew:1](matthew.md) • [Matthew River Knight:1](matthew-river-knight.md) • [Michael Fogleman:1](michael-fogleman.md) • [Michael Kargas:1](michael-kargas.md) • [Mike Chambers:1](mike-chambers.md) • [mxmm:1](mxmm.md) • [Nathan Thomas:1](nathan-thomas.md) • [Nixon:1](nixon.md) • [patz2009:1](patz2009.md) • [Paul Meyer:1](paul-meyer.md) • [Paul Redling:1](paul-redling.md) • [pcluddite:1](pcluddite.md) • [Petr:1](petr.md) • [Philipp Strathausen:1](philipp-strathausen.md) • [PMG:1](pmg.md) • [Pyrus:1](pyrus.md) • [QB64 Team 2018:1](qb64-team-2018.md) • [qbfreak2000:1](qbfreak2000.md) • [R. K. Fink:1](r.-k.-fink.md) • [REALiTY Software:1](reality-software.md) • [RETROQB45:1](retroqb45.md) • [RhoSigma:1](rhosigma.md) • [Rich Geldreich:1](rich-geldreich.md) • [Richard C Garriott:1](richard-c-garriott.md) • [Rick Ellis:1](rick-ellis.md) • [rpgfan3233:1](rpgfan3233.md) • [Scott Edwards:1](scott-edwards.md) • [Steve M.:1](steve-m..md) • [T.A. Giles:1](t.a.-giles.md) • [Timothy Baxendale:1](timothy-baxendale.md) • [Tor Myklebust:1](tor-myklebust.md) • [TrialAndTerror:1](trialandterror.md) • [triggered:1](triggered.md) • [Tsiplacov Sergey:1](tsiplacov-sergey.md) • [TylerDarko:1](tylerdarko.md) • [William Loughner:1](william-loughner.md) • [William W. Sindel:1](william-w.-sindel.md) • [Yu:1](yu.md) • [Zack Johnson:1](zack-johnson.md)
\ No newline at end of file
diff --git a/samples/author-missing.md b/samples/author-missing.md
index c1abc268..23be2229 100644
--- a/samples/author-missing.md
+++ b/samples/author-missing.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY *MISSING*
@@ -98,6 +98,12 @@ The legendary fractal fern.
Ball bounces realistically.
+**[Intrprtr](intrprtr/index.md)**
+
+[🐝 *missing*](author-missing.md) 🔗 [interpreter](interpreter.md), [legacy](legacy.md)
+
+Misc. interpreter.
+
**[MakeBig](makebig/index.md)**
[🐝 *missing*](author-missing.md) 🔗 [graphics](graphics.md), [legacy](legacy.md)
@@ -116,12 +122,42 @@ Mandelbrot animator.
A text-graphics monopoly board with some functionality.
+**[NightSky](nightsky/index.md)**
+
+[🐝 *missing*](author-missing.md) 🔗 [graphics](graphics.md), [legacy](legacy.md)
+
+Simple night sky & moon.
+
+**[Plasma Waves](plasma-waves/index.md)**
+
+[🐝 *missing*](author-missing.md) 🔗 [screensaver](screensaver.md), [plasma](plasma.md)
+
+'Wavy with Plama.bas for QB64 fork (B+=MGA) 2017-05-05 ' Wavy with Plasma Treatment.bas SmallBASI...
+
**[Rockets](rockets/index.md)**
[🐝 *missing*](author-missing.md) 🔗 [screensaver](screensaver.md), [particles](particles.md)
Screensaver with rocket-like particles.
+**[Rotate](rotate/index.md)**
+
+[🐝 *missing*](author-missing.md) 🔗 [geometry](geometry.md), [legacy](legacy.md)
+
+Rotating circles.
+
+**[Rug](rug/index.md)**
+
+[🐝 *missing*](author-missing.md) 🔗 [graphics](graphics.md), [ascii](ascii.md), [legacy](legacy.md)
+
+Simple coloured ascii smilies.
+
+**[Scramble](scramble/index.md)**
+
+[🐝 *missing*](author-missing.md) 🔗 [game](game.md), [legacy](legacy.md)
+
+PRINT "Instructions:" PRINT STRING$(13, 196) PRINT " "; CHR$(254); " The object of the game is to...
+
**[Shooter](shooter/index.md)**
[🐝 *missing*](author-missing.md) 🔗 [game](game.md), [shooter](shooter.md)
@@ -140,26 +176,74 @@ The legendary fractal.
Sine Wave Explorer
+**[SSaver](ssaver/index.md)**
+
+[🐝 *missing*](author-missing.md) 🔗 [screensaver](screensaver.md), [legacy](legacy.md)
+
+Filled circle screensaver.
+
+**[Star Battles](star-battles/index.md)**
+
+[🐝 *missing*](author-missing.md) 🔗 [game](game.md), [2 player](2-player.md), [legacy](legacy.md)
+
+Two players battle in starships.
+
**[Stock Watcher](stock-watcher/index.md)**
[🐝 *missing*](author-missing.md) 🔗 [money](money.md), [stocks](stocks.md)
Stock Watcher program.
+**[Stones](stones/index.md)**
+
+[🐝 *missing*](author-missing.md) 🔗 [game](game.md), [legacy](legacy.md)
+
+
+
+**[Sudoku](sudoku/index.md)**
+
+[🐝 *missing*](author-missing.md) 🔗 [legacy](legacy.md)
+
+Sudoku solver.
+
**[Temperature Conversion](temperature-conversion/index.md)**
[🐝 *missing*](author-missing.md) 🔗 [science](science.md), [legacy](legacy.md)
REM This is a program that converts Fahrenheit temperatures to Celsius REM temperatures.
+**[Time](time/index.md)**
+
+[🐝 *missing*](author-missing.md) 🔗 [clock](clock.md), [legacy](legacy.md)
+
+Simple date/time program.
+
**[Tower of Hanoi](tower-of-hanoi/index.md)**
[🐝 *missing*](author-missing.md) 🔗 [game](game.md), [tower](tower.md)
Print "The TOWER OF HANOI is a mathematical game or puzzle. It consists" Print "of three pegs and...
+**[Vektor](vektor/index.md)**
+
+[🐝 *missing*](author-missing.md) 🔗 [geometry](geometry.md), [legacy](legacy.md)
+
+Fly around a plane of dots. PRINT "Welcome to my second go at displaying" PRINT "points in a thr...
+
+**[VSphere](vsphere/index.md)**
+
+[🐝 *missing*](author-missing.md) 🔗 [geometry](geometry.md), [legacy](legacy.md)
+
+'This is a program that calculates the volume of a sphere.
+
**[Water](water/index.md)**
[🐝 *missing*](author-missing.md) 🔗 [wave motion](wave-motion.md)
Water wave demonstration.
+
+**[Wumpus](wumpus/index.md)**
+
+[🐝 *missing*](author-missing.md) 🔗 [game](game.md), [legacy](legacy.md)
+
+375 REM *** INSTRUCTIONS *** PRINT "WELCOME TO 'HUNT THE WUMPUS'" PRINT " THE WUMPUS LIVES IN A C...
diff --git a/samples/automata.md b/samples/automata.md
index f8a7f17a..d596ed37 100644
--- a/samples/automata.md
+++ b/samples/automata.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: AUTOMATA
diff --git a/samples/averager/index.md b/samples/averager/index.md
index 96bd1bf8..c5476f2b 100644
--- a/samples/averager/index.md
+++ b/samples/averager/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: AVERAGER
diff --git a/samples/bad-box-revenge/index.md b/samples/bad-box-revenge/index.md
index 5c5cc3e0..be717fc4 100644
--- a/samples/bad-box-revenge/index.md
+++ b/samples/bad-box-revenge/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: BAD BOX REVENGE
diff --git a/samples/bad-boxes.md b/samples/bad-boxes.md
index dd253159..7c9f205a 100644
--- a/samples/bad-boxes.md
+++ b/samples/bad-boxes.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: BAD BOXES
diff --git a/samples/bad-boxes/index.md b/samples/bad-boxes/index.md
index dee64ff1..cceaa17f 100644
--- a/samples/bad-boxes/index.md
+++ b/samples/bad-boxes/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: BAD BOXES
diff --git a/samples/bar-demo/index.md b/samples/bar-demo/index.md
index 4de239a7..08fc8b20 100644
--- a/samples/bar-demo/index.md
+++ b/samples/bar-demo/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: BAR DEMO
diff --git a/samples/battleship.md b/samples/battleship.md
index 70c57794..f849faaa 100644
--- a/samples/battleship.md
+++ b/samples/battleship.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: BATTLESHIP
diff --git a/samples/battleship/index.md b/samples/battleship/index.md
index 150a9f7d..a25fb274 100644
--- a/samples/battleship/index.md
+++ b/samples/battleship/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: BATTLESHIP
diff --git a/samples/beatdown/index.md b/samples/beatdown/index.md
index 13d0f2af..1d508bb8 100644
--- a/samples/beatdown/index.md
+++ b/samples/beatdown/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: BEATDOWN
diff --git a/samples/bezier.md b/samples/bezier.md
index 7a42d315..e0528f64 100644
--- a/samples/bezier.md
+++ b/samples/bezier.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: BEZIER
diff --git a/samples/bezier/index.md b/samples/bezier/index.md
index f438cdf1..5b55c2b8 100644
--- a/samples/bezier/index.md
+++ b/samples/bezier/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: BEZIER
diff --git a/samples/big-leds/index.md b/samples/big-leds/index.md
index 7f4c9981..c1219792 100644
--- a/samples/big-leds/index.md
+++ b/samples/big-leds/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: BIG LEDS
diff --git a/samples/binary-clock/index.md b/samples/binary-clock/index.md
index 2268ea5d..72c2068d 100644
--- a/samples/binary-clock/index.md
+++ b/samples/binary-clock/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: BINARY CLOCK
diff --git a/samples/binary-counter/index.md b/samples/binary-counter/index.md
index 0bb17616..fb28785d 100644
--- a/samples/binary-counter/index.md
+++ b/samples/binary-counter/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: BINARY COUNTER
diff --git a/samples/binary.md b/samples/binary.md
index 1b6c5bd6..23e44bb0 100644
--- a/samples/binary.md
+++ b/samples/binary.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: BINARY
diff --git a/samples/biorhythm-chart/index.md b/samples/biorhythm-chart/index.md
index da13bfe8..bb4434d6 100644
--- a/samples/biorhythm-chart/index.md
+++ b/samples/biorhythm-chart/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: BIORHYTHM CHART
diff --git a/samples/biorhythms.md b/samples/biorhythms.md
index 05abc860..63a24aed 100644
--- a/samples/biorhythms.md
+++ b/samples/biorhythms.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: BIORHYTHMS
diff --git a/samples/bitmap.md b/samples/bitmap.md
index 00a617c6..88ab91c4 100644
--- a/samples/bitmap.md
+++ b/samples/bitmap.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: BITMAP
diff --git a/samples/bj-mccann.md b/samples/bj-mccann.md
new file mode 100644
index 00000000..ada5ce9a
--- /dev/null
+++ b/samples/bj-mccann.md
@@ -0,0 +1,9 @@
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+
+## SAMPLES BY BJ MCCANN
+
+**[Pong BJ](pong-bj/index.md)**
+
+[🐝 bj mccann](bj-mccann.md) 🔗 [game](game.md), [pong](pong.md), [legacy](legacy.md)
+
+PRINT "PONG CLONE" PRINT " " PRINT " programed by bj mccann"
diff --git a/samples/blackjack.md b/samples/blackjack.md
index ce21b161..140162cb 100644
--- a/samples/blackjack.md
+++ b/samples/blackjack.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: BLACKJACK
diff --git a/samples/blackjack/index.md b/samples/blackjack/index.md
index 5fe1e726..f0bb62db 100644
--- a/samples/blackjack/index.md
+++ b/samples/blackjack/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: BLACKJACK
diff --git a/samples/blockout/index.md b/samples/blockout/index.md
index 49d830d1..06cd0d31 100644
--- a/samples/blockout/index.md
+++ b/samples/blockout/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: BLOCKOUT
diff --git a/samples/bob-seguin.md b/samples/bob-seguin.md
index c1c35897..3c18c88d 100644
--- a/samples/bob-seguin.md
+++ b/samples/bob-seguin.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY BOB SEGUIN
diff --git a/samples/bomber/index.md b/samples/bomber/index.md
index c0af8461..8cea562a 100644
--- a/samples/bomber/index.md
+++ b/samples/bomber/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: BOMBER
diff --git a/samples/booger/index.md b/samples/booger/index.md
index 52f2f5dc..f2d5ec1a 100644
--- a/samples/booger/index.md
+++ b/samples/booger/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: BOOGER
diff --git a/samples/bplus.md b/samples/bplus.md
index 52498aa6..7a18af9a 100644
--- a/samples/bplus.md
+++ b/samples/bplus.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY BPLUS
@@ -26,8 +26,20 @@ Created by QB64 community member bplus.
Dropping Balls an attempt to build a pile by adjusting drop rate, elasticity, and gravity.
+**[Fall Foliage](fall-foliage/index.md)**
+
+[🐝 bplus](bplus.md) 🔗 [zen](zen.md)
+
+Where were we? Oh Ashish was doing fractals and his last was a marvelous 3D Tree but I thought it...
+
**[Particle Fountain](particle-fountain/index.md)**
[🐝 bplus](bplus.md) 🔗 [particles](particles.md)
' Created by QB64 community member bplus.
+
+**[RotoZoom3](rotozoom3/index.md)**
+
+[🐝 Galleon](galleon.md) [🐝 bplus](bplus.md) 🔗 [graphics](graphics.md), [rotozoom](rotozoom.md)
+
+A modification of Galleon's RotoZoom in Wiki that both scales and rotates an image, this version ...
diff --git a/samples/breakout.md b/samples/breakout.md
index 3eef7fea..048f06a0 100644
--- a/samples/breakout.md
+++ b/samples/breakout.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: BREAKOUT
diff --git a/samples/breakout/index.md b/samples/breakout/index.md
index bfea8b06..e5785d16 100644
--- a/samples/breakout/index.md
+++ b/samples/breakout/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: BREAKOUT
diff --git a/samples/brian-murphy.md b/samples/brian-murphy.md
index f7d133a6..017a97b0 100644
--- a/samples/brian-murphy.md
+++ b/samples/brian-murphy.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY BRIAN MURPHY
diff --git a/samples/bubbles/index.md b/samples/bubbles/index.md
index 1e100678..2abd8ad0 100644
--- a/samples/bubbles/index.md
+++ b/samples/bubbles/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: BUBBLES
diff --git a/samples/bush-bomber/index.md b/samples/bush-bomber/index.md
index 75473458..ecb11d02 100644
--- a/samples/bush-bomber/index.md
+++ b/samples/bush-bomber/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: BUSH BOMBER
diff --git a/samples/cabsmouse/index.md b/samples/cabsmouse/index.md
index c7b0c655..db4b8874 100644
--- a/samples/cabsmouse/index.md
+++ b/samples/cabsmouse/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: CABSMOUSE
diff --git a/samples/calc-dw/index.md b/samples/calc-dw/index.md
index 1adf39b1..fc74446b 100644
--- a/samples/calc-dw/index.md
+++ b/samples/calc-dw/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: CALC DW
diff --git a/samples/calculator.md b/samples/calculator.md
index da67911c..7f170940 100644
--- a/samples/calculator.md
+++ b/samples/calculator.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: CALCULATOR
diff --git a/samples/calendar.md b/samples/calendar.md
index b1b63f3a..24a55012 100644
--- a/samples/calendar.md
+++ b/samples/calendar.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: CALENDAR
diff --git a/samples/calendar/index.md b/samples/calendar/index.md
index 891faa5b..e583ea7b 100644
--- a/samples/calendar/index.md
+++ b/samples/calendar/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: CALENDAR
diff --git a/samples/cant-contain-me/index.md b/samples/cant-contain-me/index.md
index 4cc3acc8..ab149037 100644
--- a/samples/cant-contain-me/index.md
+++ b/samples/cant-contain-me/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: CANT CONTAIN ME
diff --git a/samples/car-racing-e/index.md b/samples/car-racing-e/index.md
index 74bf1aba..d9c72e8c 100644
--- a/samples/car-racing-e/index.md
+++ b/samples/car-racing-e/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: CAR RACING E
diff --git a/samples/carols/index.md b/samples/carols/index.md
index d93ffe30..85d51876 100644
--- a/samples/carols/index.md
+++ b/samples/carols/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: CAROLS
diff --git a/samples/castle/index.md b/samples/castle/index.md
index 5f1f1926..d2ae42e4 100644
--- a/samples/castle/index.md
+++ b/samples/castle/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: CASTLE
diff --git a/samples/cave-rider/index.md b/samples/cave-rider/index.md
index 54ddb928..6a52fbb6 100644
--- a/samples/cave-rider/index.md
+++ b/samples/cave-rider/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: CAVE RIDER
diff --git a/samples/chaotic-scattering/index.md b/samples/chaotic-scattering/index.md
index 397246c2..d9268ff4 100644
--- a/samples/chaotic-scattering/index.md
+++ b/samples/chaotic-scattering/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: CHAOTIC SCATTERING
@@ -19,7 +19,7 @@ Demo of the Gaspard-Rice system. Left-click to change location.
* [chaoticscattering.bas](src/chaoticscattering.bas)
* [scatter2.bas](src/scatter2.bas)
-🔗 [ray tracing](../ray-tracing.md), [reflections](../reflections.md)
+🔗 [ray tracing](../ray-tracing.md), [reflections](../reflections.md), [qbjs](../qbjs.md)
Reference: [1](ttps://en.wikipedia.org/wiki/Chaotic_scattering)
diff --git a/samples/chess-qbasic/index.md b/samples/chess-qbasic/index.md
index 0832956e..d62ff3be 100644
--- a/samples/chess-qbasic/index.md
+++ b/samples/chess-qbasic/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: CHESS QBASIC
diff --git a/samples/chess-rf/index.md b/samples/chess-rf/index.md
index 3a836c89..4ca4021c 100644
--- a/samples/chess-rf/index.md
+++ b/samples/chess-rf/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: CHESS RF
diff --git a/samples/chess.md b/samples/chess.md
index 48e6ebb8..ff1142d1 100644
--- a/samples/chess.md
+++ b/samples/chess.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: CHESS
diff --git a/samples/chris-chadwick.md b/samples/chris-chadwick.md
index bda5ee5d..dc9d93fc 100644
--- a/samples/chris-chadwick.md
+++ b/samples/chris-chadwick.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY CHRIS CHADWICK
diff --git a/samples/circle-intersecting-circle/index.md b/samples/circle-intersecting-circle/index.md
index c86b2ab2..360f44cd 100644
--- a/samples/circle-intersecting-circle/index.md
+++ b/samples/circle-intersecting-circle/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: CIRCLE INTERSECTING CIRCLE
diff --git a/samples/circle-intersecting-line/index.md b/samples/circle-intersecting-line/index.md
index 38adb3ba..a4183d82 100644
--- a/samples/circle-intersecting-line/index.md
+++ b/samples/circle-intersecting-line/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: CIRCLE INTERSECTING LINE
diff --git a/samples/circuits.md b/samples/circuits.md
index 8b1f9fc4..dfe38457 100644
--- a/samples/circuits.md
+++ b/samples/circuits.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: CIRCUITS
diff --git a/samples/clock.md b/samples/clock.md
index 617095aa..9d044ef0 100644
--- a/samples/clock.md
+++ b/samples/clock.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: CLOCK
@@ -19,3 +19,9 @@
[🐝 Alan Zeichick](alan-zeichick.md) 🔗 [clock](clock.md)
' Analog Clock for QBasic ' by Alan Zeichick copyright (c) 1986, 1992 ' Copyright (C) 1992 DOS Re...
+
+**[Time](time/index.md)**
+
+[🐝 *missing*](author-missing.md) 🔗 [clock](clock.md), [legacy](legacy.md)
+
+Simple date/time program.
diff --git a/samples/cloned-shades/index.md b/samples/cloned-shades/index.md
index 5e156803..a57a8a0a 100644
--- a/samples/cloned-shades/index.md
+++ b/samples/cloned-shades/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: CLONED SHADES
diff --git a/samples/cobalt.md b/samples/cobalt.md
index dace0243..93ffe6cd 100644
--- a/samples/cobalt.md
+++ b/samples/cobalt.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY COBALT
diff --git a/samples/colliding-ball-simulation/index.md b/samples/colliding-ball-simulation/index.md
index e746f739..ba476bf2 100644
--- a/samples/colliding-ball-simulation/index.md
+++ b/samples/colliding-ball-simulation/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: COLLIDING BALL SIMULATION
diff --git a/samples/collisions.md b/samples/collisions.md
index 59c799c3..15584a16 100644
--- a/samples/collisions.md
+++ b/samples/collisions.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: COLLISIONS
diff --git a/samples/color-picker.md b/samples/color-picker.md
index 4e19f839..60a9552d 100644
--- a/samples/color-picker.md
+++ b/samples/color-picker.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: COLOR PICKER
diff --git a/samples/colors/index.md b/samples/colors/index.md
index 86ac6e58..0276bd5d 100644
--- a/samples/colors/index.md
+++ b/samples/colors/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: COLORS
diff --git a/samples/compression.md b/samples/compression.md
new file mode 100644
index 00000000..e5a3f445
--- /dev/null
+++ b/samples/compression.md
@@ -0,0 +1,9 @@
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+
+## SAMPLES: COMPRESSION
+
+**[Discrete Cosine Transform](discrete-cosine-transform/index.md)**
+
+[🐝 Vince](vince.md) 🔗 [image processing](image-processing.md), [compression](compression.md), [jpeg](jpeg.md)
+
+Demonstrates how jpegs are made. Not for the faint of mind.
diff --git a/samples/connect-circles/index.md b/samples/connect-circles/index.md
index 51f1f8a2..bbc8300d 100644
--- a/samples/connect-circles/index.md
+++ b/samples/connect-circles/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: CONNECT CIRCLES
diff --git a/samples/convert-bmp-to-dominoes/index.md b/samples/convert-bmp-to-dominoes/index.md
index 8f2548eb..fc74f8b7 100644
--- a/samples/convert-bmp-to-dominoes/index.md
+++ b/samples/convert-bmp-to-dominoes/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: CONVERT BMP TO DOMINOES
diff --git a/samples/conway.md b/samples/conway.md
index 4f39d8c7..5e12e495 100644
--- a/samples/conway.md
+++ b/samples/conway.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: CONWAY
diff --git a/samples/conways-game-of-life/index.md b/samples/conways-game-of-life/index.md
index 2e494305..63e04696 100644
--- a/samples/conways-game-of-life/index.md
+++ b/samples/conways-game-of-life/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: CONWAYS GAME OF LIFE
diff --git a/samples/coolscr/index.md b/samples/coolscr/index.md
index 9ff06f01..dac9ab33 100644
--- a/samples/coolscr/index.md
+++ b/samples/coolscr/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: COOLSCR
diff --git a/samples/counter.md b/samples/counter.md
index 37f484b6..45f3fca1 100644
--- a/samples/counter.md
+++ b/samples/counter.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: COUNTER
diff --git a/samples/cram/index.md b/samples/cram/index.md
index 4372759b..4d8469c2 100644
--- a/samples/cram/index.md
+++ b/samples/cram/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: CRAM
diff --git a/samples/cricket-manager/index.md b/samples/cricket-manager/index.md
index e7f144d6..caa74ad6 100644
--- a/samples/cricket-manager/index.md
+++ b/samples/cricket-manager/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: CRICKET MANAGER
diff --git a/samples/cricket.md b/samples/cricket.md
index 8ff22dd0..433f3348 100644
--- a/samples/cricket.md
+++ b/samples/cricket.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: CRICKET
diff --git a/samples/cube-rotator/index.md b/samples/cube-rotator/index.md
index 523ddea8..71ce1ca9 100644
--- a/samples/cube-rotator/index.md
+++ b/samples/cube-rotator/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: CUBE ROTATOR
diff --git a/samples/cube.md b/samples/cube.md
index 30e0c935..afe167d2 100644
--- a/samples/cube.md
+++ b/samples/cube.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: CUBE
diff --git a/samples/curve-approximator/index.md b/samples/curve-approximator/index.md
index 0413d058..21c2dffb 100644
--- a/samples/curve-approximator/index.md
+++ b/samples/curve-approximator/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: CURVE APPROXIMATOR
diff --git a/samples/curve-smoother/index.md b/samples/curve-smoother/index.md
index 4f31e362..c4f45007 100644
--- a/samples/curve-smoother/index.md
+++ b/samples/curve-smoother/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: CURVE SMOOTHER
diff --git a/samples/curve.md b/samples/curve.md
index 368b47bf..fe345e3d 100644
--- a/samples/curve.md
+++ b/samples/curve.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: CURVE
diff --git a/samples/cyperium.md b/samples/cyperium.md
index cbc5899c..04c799b7 100644
--- a/samples/cyperium.md
+++ b/samples/cyperium.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY CYPERIUM
diff --git a/samples/daniel-kupfer.md b/samples/daniel-kupfer.md
index 655890e4..7aa36a2d 100644
--- a/samples/daniel-kupfer.md
+++ b/samples/daniel-kupfer.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY DANIEL KUPFER
diff --git a/samples/danilin.md b/samples/danilin.md
index 01d350eb..6c342a3c 100644
--- a/samples/danilin.md
+++ b/samples/danilin.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY DANILIN
diff --git a/samples/darokin.md b/samples/darokin.md
index a03638ec..b548821e 100644
--- a/samples/darokin.md
+++ b/samples/darokin.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY DAROKIN
diff --git a/samples/darokin/index.md b/samples/darokin/index.md
index a602f04c..03de8f69 100644
--- a/samples/darokin/index.md
+++ b/samples/darokin/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: DAROKIN
diff --git a/samples/darpong/index.md b/samples/darpong/index.md
index 11363793..0ec826d8 100644
--- a/samples/darpong/index.md
+++ b/samples/darpong/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: DARPONG
diff --git a/samples/data-management.md b/samples/data-management.md
index 3b1e1b7a..2df8aa02 100644
--- a/samples/data-management.md
+++ b/samples/data-management.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: DATA MANAGEMENT
@@ -20,6 +20,12 @@ Simple phone directory by Microsoft.
' NAMES.BAS by David Bannon ' Copyright (C) 1992 DOS Resource Guide ' Published in Issue #6, N...
+**[ParseLine](parseline/index.md)**
+
+[🐝 Rho Sigma](rho-sigma.md) 🔗 [data management](data-management.md), [parsing](parsing.md)
+
+I guess every developer is sooner or later in need of such a parsing function: Doesn't matter if ...
+
**[Phone](phone/index.md)**
[🐝 Hardin Brothers](hardin-brothers.md) 🔗 [data management](data-management.md), [dos world](dos-world.md)
@@ -37,3 +43,9 @@ Simple phone directory by Microsoft.
[🐝 Microsoft](microsoft.md) 🔗 [data management](data-management.md)
A simple database using a cardfile user interface by Microsoft.
+
+**[SplitJoin](splitjoin/index.md)**
+
+[🐝 luke](luke.md) 🔗 [data management](data-management.md), [split](split.md)
+
+Given a string of words separated by spaces (or any other character), splits it into an array of ...
diff --git a/samples/data-manipulation.md b/samples/data-manipulation.md
index 42936d0c..dd99823f 100644
--- a/samples/data-manipulation.md
+++ b/samples/data-manipulation.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: DATA MANIPULATION
diff --git a/samples/datatech.md b/samples/datatech.md
new file mode 100644
index 00000000..ddf389f9
--- /dev/null
+++ b/samples/datatech.md
@@ -0,0 +1,9 @@
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+
+## SAMPLES BY DATATECH
+
+**[X-Wing](x-wing/index.md)**
+
+[🐝 DATATECH](datatech.md) 🔗 [game](game.md), [star wars](star-wars.md), [legacy](legacy.md)
+
+PRINT "ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿" PRINT "³ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿³"...
diff --git a/samples/dav.md b/samples/dav.md
index e03fe276..0b486aec 100644
--- a/samples/dav.md
+++ b/samples/dav.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY DAV
diff --git a/samples/david-bannon.md b/samples/david-bannon.md
index a72abd01..0475be18 100644
--- a/samples/david-bannon.md
+++ b/samples/david-bannon.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY DAVID BANNON
diff --git a/samples/david-ferrier.md b/samples/david-ferrier.md
index 4dec7ddf..8b4d3ac2 100644
--- a/samples/david-ferrier.md
+++ b/samples/david-ferrier.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY DAVID FERRIER
diff --git a/samples/david-joffe.md b/samples/david-joffe.md
index 970736f3..e1c0bc27 100644
--- a/samples/david-joffe.md
+++ b/samples/david-joffe.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY DAVID JOFFE
diff --git a/samples/dec-to-frac/index.md b/samples/dec-to-frac/index.md
index db3d61ba..55c5134d 100644
--- a/samples/dec-to-frac/index.md
+++ b/samples/dec-to-frac/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: DEC TO FRAC
diff --git a/samples/deedlines-sax/index.md b/samples/deedlines-sax/index.md
index 8d48ac15..a6aee3c3 100644
--- a/samples/deedlines-sax/index.md
+++ b/samples/deedlines-sax/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: DEEDLINES SAX
diff --git a/samples/defense.md b/samples/defense.md
index 1930bee5..f48892e4 100644
--- a/samples/defense.md
+++ b/samples/defense.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: DEFENSE
diff --git a/samples/dennis-mull.md b/samples/dennis-mull.md
index e4b557b9..00e54bb0 100644
--- a/samples/dennis-mull.md
+++ b/samples/dennis-mull.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY DENNIS MULL
diff --git a/samples/desktop.md b/samples/desktop.md
index e67a5d09..087528ec 100644
--- a/samples/desktop.md
+++ b/samples/desktop.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: DESKTOP
diff --git a/samples/dialog-demo-box/index.md b/samples/dialog-demo-box/index.md
index 0563357f..e03243c2 100644
--- a/samples/dialog-demo-box/index.md
+++ b/samples/dialog-demo-box/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: DIALOG DEMO BOX
diff --git a/samples/dialog.md b/samples/dialog.md
index 6992e2d5..69186f0f 100644
--- a/samples/dialog.md
+++ b/samples/dialog.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: DIALOG
diff --git a/samples/diamond-pong/index.md b/samples/diamond-pong/index.md
index f21c3c10..90ad0b58 100644
--- a/samples/diamond-pong/index.md
+++ b/samples/diamond-pong/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: DIAMOND PONG
diff --git a/samples/dice.md b/samples/dice.md
index 7ef0b3f5..8d66148f 100644
--- a/samples/dice.md
+++ b/samples/dice.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: DICE
diff --git a/samples/diceit/index.md b/samples/diceit/index.md
index acb4ad59..be69f9a2 100644
--- a/samples/diceit/index.md
+++ b/samples/diceit/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: DICEIT
diff --git a/samples/didris/index.md b/samples/didris/index.md
index fc02661c..e5c9bddb 100644
--- a/samples/didris/index.md
+++ b/samples/didris/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: DIDRIS
diff --git a/samples/die-odds/index.md b/samples/die-odds/index.md
index 5dea6fbf..b14f64e8 100644
--- a/samples/die-odds/index.md
+++ b/samples/die-odds/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: DIE ODDS
diff --git a/samples/dietmar-moritz.md b/samples/dietmar-moritz.md
index 0ce0d90d..417026cf 100644
--- a/samples/dietmar-moritz.md
+++ b/samples/dietmar-moritz.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY DIETMAR MORITZ
diff --git a/samples/digger.md b/samples/digger.md
index 53d0eb3c..ef9cd4d1 100644
--- a/samples/digger.md
+++ b/samples/digger.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: DIGGER
diff --git a/samples/discrete-cosine-transform/img/greenland1.png b/samples/discrete-cosine-transform/img/greenland1.png
new file mode 100644
index 00000000..82ccd1ce
Binary files /dev/null and b/samples/discrete-cosine-transform/img/greenland1.png differ
diff --git a/samples/discrete-cosine-transform/img/screenshot.png b/samples/discrete-cosine-transform/img/screenshot.png
new file mode 100644
index 00000000..2b56b245
Binary files /dev/null and b/samples/discrete-cosine-transform/img/screenshot.png differ
diff --git a/samples/discrete-cosine-transform/index.md b/samples/discrete-cosine-transform/index.md
new file mode 100644
index 00000000..49aca823
--- /dev/null
+++ b/samples/discrete-cosine-transform/index.md
@@ -0,0 +1,27 @@
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+
+## SAMPLE: DISCRETE COSINE TRANSFORM
+
+![greenland1.png](img/greenland1.png)
+
+### Author
+
+[🐝 Vince](../vince.md)
+
+### Description
+
+```text
+Demonstrates how jpegs are made. Not for the faint of mind.
+```
+
+### File(s)
+
+* [dct1.bas](src/dct1.bas)
+* [dct1.zip](src/dct1.zip)
+* [greenland1.png](src/greenland1.png)
+
+### Additional Image(s)
+
+![screenshot.png](img/screenshot.png)
+
+🔗 [image processing](../image-processing.md), [compression](../compression.md), [jpeg](../jpeg.md)
diff --git a/samples/discrete-cosine-transform/src/dct1.bas b/samples/discrete-cosine-transform/src/dct1.bas
new file mode 100644
index 00000000..1fb309bc
--- /dev/null
+++ b/samples/discrete-cosine-transform/src/dct1.bas
@@ -0,0 +1,258 @@
+deflng a-z
+
+const n = 10
+
+type dct_type
+ r as double
+ g as double
+ b as double
+end type
+
+type q_type
+ r as _unsigned _byte
+ g as _unsigned _byte
+ b as _unsigned _byte
+end type
+
+dim shared pi as double
+pi = _pi
+
+img1 = _loadimage("greenland1.png", 32)
+
+w = _width(img1)
+h = _height(img1)
+
+ww = (w\n+1)*n
+hh = (h\n+1)*n
+
+dim dct(ww, hh) as dct_type
+dim q(ww, hh) as q_type
+
+dim sr as double, sg as double, sb as double
+dim c as double, cu as double, cv as double
+
+img2 = _newimage(w, h, 32)
+img3 = _newimage(w, h, 32)
+
+img1_dct = _newimage(w, h, 32)
+img2_dct = _newimage(w, h, 32)
+img3_dct = _newimage(w, h, 32)
+
+screen _newimage(3*w, 2*h, 32)
+_putimage (0,0),img1
+
+_source img1
+
+'forward DCT
+for y0=0 to hh-1 step n
+for x0=0 to ww-1 step n
+ for y=0 to n-1
+ for x=0 to n-1
+ sr = 0
+ sg = 0
+ sb = 0
+
+ for v=0 to n-1
+ for u=0 to n-1
+ if (x0 + u > w - 1) then px = x0 + u - n else px = x0 + u
+ if (y0 + v > h - 1) then py = y0 + v - n else py = y0 + v
+
+ z = point(px, py)
+ r = _red(z)
+ g = _green(z)
+ b = _blue(z)
+
+ c = cos((2*u + 1)*x*pi/(2*n)) * cos((2*v + 1)*y*pi/(2*n))
+
+ sr = sr + r*c
+ sg = sg + g*c
+ sb = sb + b*c
+ next
+ next
+
+ if x = 0 then cu = 1/sqr(2) else cu = 1
+ if y = 0 then cv = 1/sqr(2) else cv = 1
+
+ dct(x0 + x, y0 + y).r = sr*cu*cv/(0.5*n)
+ dct(x0 + x, y0 + y).g = sg*cu*cv/(0.5*n)
+ dct(x0 + x, y0 + y).b = sb*cu*cv/(0.5*n)
+ next
+ next
+next
+next
+
+'quantization
+dim minr as double, ming as double, minb as double
+dim maxr as double, maxg as double, maxb as double
+
+minr = 1000000
+ming = 1000000
+minb = 1000000
+
+maxr = -1000000
+maxg = -1000000
+maxb = -1000000
+
+for y=0 to hh
+for x=0 to ww
+ if dct(x, y).r < minr then minr = dct(x, y).r
+ if dct(x, y).g < ming then ming = dct(x, y).g
+ if dct(x, y).b < minb then minb = dct(x, y).b
+
+ if dct(x, y).r > maxr then maxr = dct(x, y).r
+ if dct(x, y).g > maxg then maxg = dct(x, y).g
+ if dct(x, y).b > maxb then maxb = dct(x, y).b
+next
+next
+
+_dest img1_dct
+for y=0 to hh
+for x=0 to ww
+ r = q(x, y).r
+ g = q(x, y).g
+ b = q(x, y).b
+
+ pset (x, y), _rgb(r, g, b)
+next
+next
+
+
+_dest img1_dct
+for y=0 to hh
+for x=0 to ww
+ q(x, y).r = 255*(dct(x,y).r - minr)/(maxr - minr)
+ q(x, y).g = 255*(dct(x,y).g - ming)/(maxg - ming)
+ q(x, y).b = 255*(dct(x,y).b - minb)/(maxb - minb)
+
+ r = q(x, y).r
+ g = q(x, y).g
+ b = q(x, y).b
+
+ pset (x, y), _rgb(r, g, b)
+next
+next
+
+
+_dest img2_dct
+for y0=0 to hh-1 step n
+for x0=0 to ww-1 step n
+ for y=0 to 7 'n-1
+ for x=0 to 7 'n-1
+ r = q(x0 + x, y0 + y).r
+ g = q(x0 + x, y0 + y).g
+ b = q(x0 + x, y0 + y).b
+
+ if (x0 + x < w) and (y0 + y < h) then pset (x0 + x, y0 + y), _rgb(r, g, b)
+ next
+ next
+next
+next
+
+_dest img3_dct
+for y0=0 to hh-1 step n
+for x0=0 to ww-1 step n
+ for y=0 to 2 'n-1
+ for x=0 to 2 'n-1
+ r = q(x0 + x, y0 + y).r
+ g = q(x0 + x, y0 + y).g
+ b = q(x0 + x, y0 + y).b
+
+ if (x0 + x < w) and (y0 + y < h) then pset (x0 + x, y0 + y), _rgb(r, g, b)
+ next
+ next
+next
+next
+
+_dest img2
+'inverse DCT
+for y0=0 to hh-1 step n
+for x0=0 to ww-1 step n
+ for y=0 to n-1
+ for x=0 to n-1
+ sr = 0
+ sg = 0
+ sb = 0
+
+ for v=0 to 7 'n-1
+ for u=0 to 7 'n-1
+ c = cos((2*x + 1)*u*pi/(2*n))*cos((2*y + 1)*v*pi/(2*n))
+
+ if u = 0 then cu = 1/sqr(2) else cu = 1
+ if v = 0 then cv = 1/sqr(2) else cv = 1
+
+ 'sr = sr + dct(x + x3, y + y3).r*c*cu*cv
+ 'sg = sg + dct(x + x3, y + y3).g*c*cu*cv
+ 'sb = sb + dct(x + x3, y + y3).b*c*cu*cv
+
+ r = q(x0 + u, y0 + v).r
+ g = q(x0 + u, y0 + v).g
+ b = q(x0 + u, y0 + v).b
+
+ sr = sr + c*cu*cv*((r/255)*(maxr - minr) + minr)
+ sg = sg + c*cu*cv*((g/255)*(maxg - ming) + ming)
+ sb = sb + c*cu*cv*((b/255)*(maxb - minb) + minb)
+ next
+ next
+
+ sr = sr/(0.5*n)
+ sg = sg/(0.5*n)
+ sb = sb/(0.5*n)
+
+ if (x0 + x < w) and (y0 + y < h) then pset (x0 + x, y0 + y), _rgb(sr, sg, sb)
+ next
+ next
+next
+next
+
+_dest img3
+'inverse DCT
+for y0=0 to hh-1 step n
+for x0=0 to ww-1 step n
+ for y=0 to n-1
+ for x=0 to n-1
+ sr = 0
+ sg = 0
+ sb = 0
+
+ for v=0 to 2
+ for u=0 to 2
+ c = cos((2*x + 1)*u*pi/(2*n))*cos((2*y + 1)*v*pi/(2*n))
+
+ if u = 0 then cu = 1/sqr(2) else cu = 1
+ if v = 0 then cv = 1/sqr(2) else cv = 1
+
+ 'sr = sr + dct(x + x3, y + y3).r*c*cu*cv
+ 'sg = sg + dct(x + x3, y + y3).g*c*cu*cv
+ 'sb = sb + dct(x + x3, y + y3).b*c*cu*cv
+
+ r = q(x0 + u, y0 + v).r
+ g = q(x0 + u, y0 + v).g
+ b = q(x0 + u, y0 + v).b
+
+ sr = sr + c*cu*cv*((r/255)*(maxr - minr) + minr)
+ sg = sg + c*cu*cv*((g/255)*(maxg - ming) + ming)
+ sb = sb + c*cu*cv*((b/255)*(maxb - minb) + minb)
+ next
+ next
+
+ sr = sr/(0.5*n)
+ sg = sg/(0.5*n)
+ sb = sb/(0.5*n)
+
+ if (x0 + x < w) and (y0 + y < h) then pset (x0 + x, y0 + y), _rgb(sr, sg, sb)
+ next
+ next
+next
+next
+
+
+_dest 0
+_putimage (w,0), img2
+_putimage (2*w,0), img3
+_putimage (0,h), img1_dct
+_putimage (w,h), img2_dct
+_putimage (2*w,h), img3_dct
+
+do
+loop until _keyhit=27
+system
diff --git a/samples/discrete-cosine-transform/src/dct1.zip b/samples/discrete-cosine-transform/src/dct1.zip
new file mode 100644
index 00000000..e1b3e1fa
Binary files /dev/null and b/samples/discrete-cosine-transform/src/dct1.zip differ
diff --git a/samples/discrete-cosine-transform/src/greenland1.png b/samples/discrete-cosine-transform/src/greenland1.png
new file mode 100644
index 00000000..82ccd1ce
Binary files /dev/null and b/samples/discrete-cosine-transform/src/greenland1.png differ
diff --git a/samples/donald-foster.md b/samples/donald-foster.md
new file mode 100644
index 00000000..53c0664c
--- /dev/null
+++ b/samples/donald-foster.md
@@ -0,0 +1,15 @@
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+
+## SAMPLES BY DONALD FOSTER
+
+**[Maryann](maryann/index.md)**
+
+[🐝 Donald Foster](donald-foster.md) 🔗 [game](game.md)
+
+Maryann is a board game I designed and named it after my wife. I put together a board game that c...
+
+**[Outwit](outwit/index.md)**
+
+[🐝 Donald Foster](donald-foster.md) 🔗 [game](game.md)
+
+I've complete another game I wrote on the Tandy 2000 about 30 years ago. Outwit is a 2 player boa...
diff --git a/samples/dos-world.md b/samples/dos-world.md
index bf8c0927..643216f0 100644
--- a/samples/dos-world.md
+++ b/samples/dos-world.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: DOS WORLD
diff --git a/samples/double-pendulum/index.md b/samples/double-pendulum/index.md
index 0c0e4f7a..1cad0f6a 100644
--- a/samples/double-pendulum/index.md
+++ b/samples/double-pendulum/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: DOUBLE PENDULUM
diff --git a/samples/doug-lowe.md b/samples/doug-lowe.md
index 444b261c..6864caa4 100644
--- a/samples/doug-lowe.md
+++ b/samples/doug-lowe.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY DOUG LOWE
diff --git a/samples/douglas-park.md b/samples/douglas-park.md
index 86705dde..a17430a7 100644
--- a/samples/douglas-park.md
+++ b/samples/douglas-park.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY DOUGLAS PARK
diff --git a/samples/dragon-warrior/index.md b/samples/dragon-warrior/index.md
index a1b5fe82..ff59de30 100644
--- a/samples/dragon-warrior/index.md
+++ b/samples/dragon-warrior/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: DRAGON WARRIOR
diff --git a/samples/draw.md b/samples/draw.md
index 27a6f886..13db933b 100644
--- a/samples/draw.md
+++ b/samples/draw.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: DRAW
diff --git a/samples/drawing.md b/samples/drawing.md
index 1da6e1a8..26641ac1 100644
--- a/samples/drawing.md
+++ b/samples/drawing.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: DRAWING
diff --git a/samples/dropping-balls/index.md b/samples/dropping-balls/index.md
index 2073b917..2d68a74e 100644
--- a/samples/dropping-balls/index.md
+++ b/samples/dropping-balls/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: DROPPING BALLS
diff --git a/samples/drug3d/index.md b/samples/drug3d/index.md
index 865de1b6..adf65a65 100644
--- a/samples/drug3d/index.md
+++ b/samples/drug3d/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: DRUG3D
diff --git a/samples/editor.md b/samples/editor.md
index 35d59bdc..c468a195 100644
--- a/samples/editor.md
+++ b/samples/editor.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: EDITOR
diff --git a/samples/eliza.md b/samples/eliza.md
index 121edfbe..b95be20a 100644
--- a/samples/eliza.md
+++ b/samples/eliza.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: ELIZA
diff --git a/samples/eliza/index.md b/samples/eliza/index.md
index 1dbd32e7..e70ca638 100644
--- a/samples/eliza/index.md
+++ b/samples/eliza/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: ELIZA
diff --git a/samples/ellipse-intersecting-line/index.md b/samples/ellipse-intersecting-line/index.md
index a2dd30d4..7f243ec5 100644
--- a/samples/ellipse-intersecting-line/index.md
+++ b/samples/ellipse-intersecting-line/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: ELLIPSE INTERSECTING LINE
diff --git a/samples/ellipse.md b/samples/ellipse.md
index 1ee3ce74..57f67731 100644
--- a/samples/ellipse.md
+++ b/samples/ellipse.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: ELLIPSE
diff --git a/samples/entropy.md b/samples/entropy.md
index 5ea5365f..e8122cc5 100644
--- a/samples/entropy.md
+++ b/samples/entropy.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY ENTROPY
diff --git a/samples/eoredson.md b/samples/eoredson.md
new file mode 100644
index 00000000..f70e5bef
--- /dev/null
+++ b/samples/eoredson.md
@@ -0,0 +1,9 @@
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+
+## SAMPLES BY EOREDSON
+
+**[QuitBox](quitbox/index.md)**
+
+[🐝 eoredson](eoredson.md) 🔗 [tui](tui.md)
+
+I am working on a project (can't tell you what it is yet) and have decided to draw my own boxes (...
diff --git a/samples/esp/index.md b/samples/esp/index.md
index 55b99dd7..b8d3c21b 100644
--- a/samples/esp/index.md
+++ b/samples/esp/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: ESP
diff --git a/samples/fall-foliage/img/screenshot.png b/samples/fall-foliage/img/screenshot.png
new file mode 100644
index 00000000..12c6c60f
Binary files /dev/null and b/samples/fall-foliage/img/screenshot.png differ
diff --git a/samples/fall-foliage/index.md b/samples/fall-foliage/index.md
new file mode 100644
index 00000000..f7ecd11b
--- /dev/null
+++ b/samples/fall-foliage/index.md
@@ -0,0 +1,32 @@
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+
+## SAMPLE: FALL FOLIAGE
+
+![screenshot.png](img/screenshot.png)
+
+### Author
+
+[🐝 bplus](../bplus.md)
+
+### Description
+
+```text
+Where were we? Oh Ashish was doing fractals and his last was a marvelous 3D Tree but I thought it a bit bare so I will show how to do leaves. :) maybe then he can make them 3D too!
+```
+
+### QBjs
+
+> Please note that QBjs is still in early development and support for these examples is extremely experimental (meaning will most likely not work). With that out of the way, give it a try!
+
+* [LOAD "fallfoliage.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?src=https://qb64.com/samples/fall-foliage/src/fallfoliage.bas)
+* [RUN "fallfoliage.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?mode=auto&src=https://qb64.com/samples/fall-foliage/src/fallfoliage.bas)
+* [PLAY "fallfoliage.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?mode=play&src=https://qb64.com/samples/fall-foliage/src/fallfoliage.bas)
+
+### File(s)
+
+* [fallfoliage.bas](src/fallfoliage.bas)
+
+🔗 [zen](../zen.md)
+
+
+Reference: [qb64forum](https://qb64forum.alephc.xyz/index.php?topic=71.0)
diff --git a/samples/fall-foliage/src/fallfoliage.bas b/samples/fall-foliage/src/fallfoliage.bas
new file mode 100644
index 00000000..4bf69ef1
--- /dev/null
+++ b/samples/fall-foliage/src/fallfoliage.bas
@@ -0,0 +1,134 @@
+_Title "Fall Foliage 2017-10-21 by bplus"
+'fall foliage.bas SmallBASIC 0.12.9 (B+=MGA) 2017-10-21
+'test landscape and portrait views for Android
+'xmx = min(xmax, 400) : ymx = min(700, ymax) 'portrait
+'OK it's just plain better in landscape view
+
+'now for full viewing enjoyment
+'xmx = xmax : ymx = ymax
+
+Const xmx = 1200
+Const ymx = 700
+Common Shared rad
+DefSng A-Z
+
+rad = _Pi(1 / 180)
+Screen _NewImage(xmx, ymx, 32)
+_ScreenMove 100, 20 'adjust as needed _MIDDLE needs a delay .5 or more for me
+
+
+n = 3
+While 1
+ If n < 15 Then n = n + 3
+ horizon = rand%(.8 * ymx, .9 * ymx)
+ For i = 0 To horizon
+ midInk 0, 0, 128, 10, 120, 128, i / horizon
+ lien 0, i, xmx, i
+ Next
+ For i = horizon To ymx
+ midInk 70, 108, 30, 60, 10, 5, (i - horizon) / (ymx - horizon)
+ lien 0, i, xmx, i
+ Next
+ For i = 1 To xmx * ymx * .00018
+ leaf rand%(0, xmx), rand%(horizon * 1.002, ymx)
+ Next
+ If n < .01 * xmx Then trees = n Else trees = rand%(.002 * xmx, .03 * xmx)
+ For i = 1 To trees
+ y = horizon + .04 * ymx + i / trees * (ymx - horizon - .1 * ymx)
+ r = .01 * y: h = rand%(y * .15, y * .18)
+ branch rand%(10, xmx - 10), y, r, 90, h, 0
+ Next
+ fRect xmx, 0, xmax, ymax, 0
+ fRect 0, ymx, xmx, ymax, 0
+ _Display
+ Sleep 2
+Wend
+
+Sub branch (xx, yy, startrr, angDD, lengthh, levv)
+ x = xx: y = yy
+ lev = levv
+ length = lengthh
+ angD = angDD
+ startr = startrr
+ x2 = x + Cos(rad * (angD)) * length
+ y2 = y - Sin(rad * (angD)) * length
+ dx = (x2 - x) / length
+ dy = (y2 - y) / length
+ bc& = _RGB(30 + 6 * lev, 15 + 3 * lev, 5 + 2 * lev)
+ For i = 0 To length
+ Color bc&
+ fCirc x + dx * i, y + dy * i, startr
+ Next
+ If lev > 1 Then leaf x2, y2
+ If .8 * startr < .1 Or lev > 7 Or length < 3 Then Exit Sub
+ lev = lev + 1
+ branch x2, y2, .8 * startr, angD + 22 + rand%(-10, 19), rand%(.75 * length, .9 * length), lev
+ branch x2, y2, .8 * startr, angD - 22 - rand%(-10, 19), rand%(.75 * length, .9 * length), lev
+End Sub
+
+'Steve McNeil's copied from his forum note: Radius is too common a name
+Sub fCirc (CX As Long, CY As Long, R As Long)
+ Dim subRadius As Long, RadiusError As Long
+ Dim X As Long, Y As Long
+
+ subRadius = Abs(R)
+ RadiusError = -subRadius
+ X = subRadius
+ Y = 0
+
+ If subRadius = 0 Then PSet (CX, CY): Exit Sub
+
+ ' Draw the middle span here so we don't draw it twice in the main loop,
+ ' which would be a problem with blending turned on.
+ Line (CX - X, CY)-(CX + X, CY), , BF
+
+ While X > Y
+ RadiusError = RadiusError + Y * 2 + 1
+ If RadiusError >= 0 Then
+ If X <> Y + 1 Then
+ Line (CX - Y, CY - X)-(CX + Y, CY - X), , BF
+ Line (CX - Y, CY + X)-(CX + Y, CY + X), , BF
+ End If
+ X = X - 1
+ RadiusError = RadiusError - X * 2
+ End If
+ Y = Y + 1
+ Line (CX - X, CY - Y)-(CX + X, CY - Y), , BF
+ Line (CX - X, CY + Y)-(CX + X, CY + Y), , BF
+ Wend
+End Sub
+
+Sub fRect (x1, y1, x2, y2, c&)
+ Line (x1, y1)-(x2, y2), c&, BF
+End Sub
+
+Sub fRectStep (x1, y1, x2, y2)
+ Line (x1, y1)-Step(x2, y2), , BF
+End Sub
+
+Sub lien (x1, y1, x2, y2)
+ Line (x1, y1)-(x2, y2)
+End Sub
+
+Sub leaf (x, y)
+ sp = 15: leafs = rand%(xmx * ymx * .00001, xmx * ymx * .00002)
+ For n = 1 To leafs
+ Color _RGB(rand%(50, 250), rand%(25, 255), rand%(0, 40))
+ xoff = x + Rnd * sp - Rnd * sp
+ yoff = y + Rnd * sp - Rnd * sp
+ woff = 3 + Rnd * 3
+ hoff = 3 + Rnd * 3
+ fRectStep xoff, yoff, woff, hoff
+ Next
+End Sub
+
+Sub midInk (r1%, g1%, b1%, r2%, g2%, b2%, fr##)
+ Color _RGB(r1% + (r2% - r1%) * fr##, g1% + (g2% - g1%) * fr##, b1% + (b2% - b1%) * fr##)
+End Sub
+
+Function rand% (lo%, hi%)
+ rand% = Int(Rnd * (hi% - lo% + 1)) + lo%
+End Function
+
+
+
diff --git a/samples/fellippe-heitor.md b/samples/fellippe-heitor.md
index de6d9e94..5cdad346 100644
--- a/samples/fellippe-heitor.md
+++ b/samples/fellippe-heitor.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY FELLIPPE HEITOR
@@ -74,6 +74,12 @@ A hot game. Let's make Adele proud.
Fly across the universe on a quest for survival against alien enemy forces. Made with QB64.
+**[Thick Lines](thick-lines/index.md)**
+
+[🐝 Fellippe Heitor](fellippe-heitor.md) 🔗 [graphics](graphics.md), [line](line.md)
+
+This can be used to draw a line with a specified lineWidth.
+
**[Tic Tac Toe Rings](tic-tac-toe-rings/index.md)**
[🐝 Fellippe Heitor](fellippe-heitor.md) 🔗 [game](game.md), [tic tac toe rings](tic-tac-toe-rings.md)
diff --git a/samples/fern.md b/samples/fern.md
index af069f46..5e6b4dd5 100644
--- a/samples/fern.md
+++ b/samples/fern.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: FERN
diff --git a/samples/fgr-software.md b/samples/fgr-software.md
new file mode 100644
index 00000000..9101bb24
--- /dev/null
+++ b/samples/fgr-software.md
@@ -0,0 +1,9 @@
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+
+## SAMPLES BY FGR SOFTWARE
+
+**[Torneo NDC](torneo-ndc/index.md)**
+
+[🐝 FGR SOFTWARE](fgr-software.md) 🔗 [game](game.md), [legacy](legacy.md)
+
+Ascii-based spaceship game with music. ' ' FGR SOFTWARE ' ...
diff --git a/samples/fibonacci-variations/index.md b/samples/fibonacci-variations/index.md
index 53244adc..5b7fd8d7 100644
--- a/samples/fibonacci-variations/index.md
+++ b/samples/fibonacci-variations/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: FIBONACCI VARIATIONS
diff --git a/samples/fibonacci.md b/samples/fibonacci.md
index 0b1901c5..8a560f09 100644
--- a/samples/fibonacci.md
+++ b/samples/fibonacci.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: FIBONACCI
diff --git a/samples/fight/index.md b/samples/fight/index.md
index 3a066894..d470a92f 100644
--- a/samples/fight/index.md
+++ b/samples/fight/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: FIGHT
diff --git a/samples/filled-circle.md b/samples/filled-circle.md
index ac6fc9b1..527b265f 100644
--- a/samples/filled-circle.md
+++ b/samples/filled-circle.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: FILLED CIRCLE
diff --git a/samples/filled-circles-and-ellipses/index.md b/samples/filled-circles-and-ellipses/index.md
index 59bb6647..97076fe7 100644
--- a/samples/filled-circles-and-ellipses/index.md
+++ b/samples/filled-circles-and-ellipses/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: FILLED CIRCLES AND ELLIPSES
diff --git a/samples/finance.md b/samples/finance.md
index 5d542c85..bc8df5e0 100644
--- a/samples/finance.md
+++ b/samples/finance.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: FINANCE
diff --git a/samples/fire-13/index.md b/samples/fire-13/index.md
index 092d9898..437065a1 100644
--- a/samples/fire-13/index.md
+++ b/samples/fire-13/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: FIRE 13
diff --git a/samples/fire-demo/index.md b/samples/fire-demo/index.md
index c6dd4bb7..f45a6742 100644
--- a/samples/fire-demo/index.md
+++ b/samples/fire-demo/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: FIRE DEMO
diff --git a/samples/fire.md b/samples/fire.md
index d2fb52c4..ef5945c6 100644
--- a/samples/fire.md
+++ b/samples/fire.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: FIRE
diff --git a/samples/fish-mosaic/index.md b/samples/fish-mosaic/index.md
index 9e28d65b..de0b226f 100644
--- a/samples/fish-mosaic/index.md
+++ b/samples/fish-mosaic/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: FISH MOSAIC
diff --git a/samples/fish.md b/samples/fish.md
index dfda6cc0..c55f36ff 100644
--- a/samples/fish.md
+++ b/samples/fish.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: FISH
diff --git a/samples/flight.md b/samples/flight.md
index 3a49ea03..55b53f9c 100644
--- a/samples/flight.md
+++ b/samples/flight.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: FLIGHT
diff --git a/samples/flip/index.md b/samples/flip/index.md
index d5d961a9..79f450d3 100644
--- a/samples/flip/index.md
+++ b/samples/flip/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: FLIP
diff --git a/samples/floormaper/index.md b/samples/floormaper/index.md
index b7b75f97..de070570 100644
--- a/samples/floormaper/index.md
+++ b/samples/floormaper/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: FLOORMAPER
diff --git a/samples/floorscape.md b/samples/floorscape.md
index 7656c715..d350db9f 100644
--- a/samples/floorscape.md
+++ b/samples/floorscape.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: FLOORSCAPE
diff --git a/samples/folker-fritz.md b/samples/folker-fritz.md
index 221af444..ff5e7cdb 100644
--- a/samples/folker-fritz.md
+++ b/samples/folker-fritz.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY FOLKER FRITZ
diff --git a/samples/forest/index.md b/samples/forest/index.md
index e4b906d4..6cfafd2c 100644
--- a/samples/forest/index.md
+++ b/samples/forest/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: FOREST
diff --git a/samples/four-player-pong/index.md b/samples/four-player-pong/index.md
index 563d3358..16a703d8 100644
--- a/samples/four-player-pong/index.md
+++ b/samples/four-player-pong/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: FOUR PLAYER PONG
diff --git a/samples/fractal-art/index.md b/samples/fractal-art/index.md
index 12cb4354..210411b7 100644
--- a/samples/fractal-art/index.md
+++ b/samples/fractal-art/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: FRACTAL ART
diff --git a/samples/fractal-fern/index.md b/samples/fractal-fern/index.md
index 27d7fd9d..72273efe 100644
--- a/samples/fractal-fern/index.md
+++ b/samples/fractal-fern/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: FRACTAL FERN
diff --git a/samples/fractal.md b/samples/fractal.md
index aaed1bab..2a67a84e 100644
--- a/samples/fractal.md
+++ b/samples/fractal.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: FRACTAL
diff --git a/samples/fractal/index.md b/samples/fractal/index.md
index cd0ad110..6a46f92f 100644
--- a/samples/fractal/index.md
+++ b/samples/fractal/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: FRACTAL
diff --git a/samples/frogger.md b/samples/frogger.md
index b645c308..7adad20f 100644
--- a/samples/frogger.md
+++ b/samples/frogger.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: FROGGER
diff --git a/samples/frogger/index.md b/samples/frogger/index.md
index 84312f18..8a528556 100644
--- a/samples/frogger/index.md
+++ b/samples/frogger/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: FROGGER
diff --git a/samples/frostbite.md b/samples/frostbite.md
index cde36eda..259ed6f8 100644
--- a/samples/frostbite.md
+++ b/samples/frostbite.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: FROSTBITE
diff --git a/samples/frostbite/index.md b/samples/frostbite/index.md
index 0ef1bf22..36ee49a8 100644
--- a/samples/frostbite/index.md
+++ b/samples/frostbite/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: FROSTBITE
diff --git a/samples/funsubs/index.md b/samples/funsubs/index.md
index 0c8adb15..425234f6 100644
--- a/samples/funsubs/index.md
+++ b/samples/funsubs/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: FUNSUBS
diff --git a/samples/future-blocks/index.md b/samples/future-blocks/index.md
index 42812c4e..8973607f 100644
--- a/samples/future-blocks/index.md
+++ b/samples/future-blocks/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: FUTURE BLOCKS
diff --git a/samples/galleon.md b/samples/galleon.md
index 5824831c..b50fd937 100644
--- a/samples/galleon.md
+++ b/samples/galleon.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY GALLEON
@@ -13,3 +13,9 @@ Helps you lean how QB64 Audio works to play .mp3, .wav, .mid, etc.
[🐝 Galleon](galleon.md) 🔗 [game](game.md), [minecraft](minecraft.md)
Progress toward a Minecraft clone.
+
+**[RotoZoom3](rotozoom3/index.md)**
+
+[🐝 Galleon](galleon.md) [🐝 bplus](bplus.md) 🔗 [graphics](graphics.md), [rotozoom](rotozoom.md)
+
+A modification of Galleon's RotoZoom in Wiki that both scales and rotates an image, this version ...
diff --git a/samples/game.md b/samples/game.md
index d1b3c15a..f359a0bc 100644
--- a/samples/game.md
+++ b/samples/game.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: GAME
@@ -278,7 +278,13 @@ Maze hunter game by Microsoft.
***************************************************************************** MADNESS.BAS ...
-**[Mazes of Misery](mazes-of-misery/index.md)**
+**[Maryann](maryann/index.md)**
+
+[🐝 Donald Foster](donald-foster.md) 🔗 [game](game.md)
+
+Maryann is a board game I designed and named it after my wife. I put together a board game that c...
+
+**[Maze of Misery](maze-of-misery/index.md)**
[🐝 Steve M.](steve-m..md) 🔗 [game](game.md), [maze](maze.md)
@@ -308,6 +314,18 @@ Lunar Lander based on a 1974 program running on a DEC PDP/11 with GT40 vector di
- - - Mooncrap 1999 - - - - - written by Daniel Kupfer - Runs in Qbasic / QUICK BASIC 4.5 - Con...
+**[Move](move/index.md)**
+
+[🐝 mxmm](mxmm.md) 🔗 [game](game.md), [ascii](ascii.md), [legacy](legacy.md)
+
+PRINT "Welcome to the ultimate ASCII-player game: MOVE!" PRINT "v.1.0 by mxmm"
+
+**[MrGuessIt](mrguessit/index.md)**
+
+[🐝 John Mendoza](john-mendoza.md) 🔗 [game](game.md), [legacy](legacy.md)
+
+PRINT "This is a guessing game between the numbers 0 and 50." PRINT "I will tell you if you are h...
+
**[MyCraft](mycraft/index.md)**
[🐝 Galleon](galleon.md) 🔗 [game](game.md), [minecraft](minecraft.md)
@@ -326,6 +344,12 @@ Snake clone by Microsoft.
' NUMBER BLASTER/BLASTER.BAS ' R. K. Fink 9/14/94 ' Copyright (C) 1994 DOS World Magazine ' Publ...
+**[Outwit](outwit/index.md)**
+
+[🐝 Donald Foster](donald-foster.md) 🔗 [game](game.md)
+
+I've complete another game I wrote on the Tandy 2000 about 30 years ago. Outwit is a 2 player boa...
+
**[Pendulum Game](pendulum-game/index.md)**
[🐝 Fellippe Heitor](fellippe-heitor.md) 🔗 [game](game.md), [pendulum](pendulum.md)
@@ -344,6 +368,12 @@ My attempt at creating something drawing inspiration from Fire Rides by Voodoo.
# Platform What does a 2D platform game take? Made with QB64.
+**[Pong BJ](pong-bj/index.md)**
+
+[🐝 bj mccann](bj-mccann.md) 🔗 [game](game.md), [pong](pong.md), [legacy](legacy.md)
+
+PRINT "PONG CLONE" PRINT " " PRINT " programed by bj mccann"
+
**[Pong Tennis](pong-tennis/index.md)**
[🐝 Alex Beighton](alex-beighton.md) 🔗 [game](game.md), [pong](pong.md), [legacy](legacy.md)
@@ -422,6 +452,12 @@ Reversi game by Microsoft.
****RoboRaider**** ****README.TXT**** Robo Raider is ...
+**[Scramble](scramble/index.md)**
+
+[🐝 *missing*](author-missing.md) 🔗 [game](game.md), [legacy](legacy.md)
+
+PRINT "Instructions:" PRINT STRING$(13, 196) PRINT " "; CHR$(254); " The object of the game is to...
+
**[Set Fire to Rain](set-fire-to-rain/index.md)**
[🐝 Fellippe Heitor](fellippe-heitor.md) 🔗 [game](game.md), [zen](zen.md)
@@ -446,6 +482,12 @@ Title: Shoot Up V2 Author: Nixon Genre: Arcade / 2 player year: 2004 Ga
' ²±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±² ' ² Simpire Beta ² ' ²±±±±±±±±±±±±±±±±±±...
+**[SkyDiver](skydiver/index.md)**
+
+[🐝 Jeremy Ruten](jeremy-ruten.md) 🔗 [game](game.md), [legacy](legacy.md)
+
+PRINT "Welcome to Skydiver!" PRINT "The object of the game is to" PRINT "jump out of your airplan...
+
**[Snake Basic](snake-basic/index.md)**
[🐝 pcluddite](pcluddite.md) 🔗 [game](game.md), [snake](snake.md)
@@ -476,12 +518,30 @@ Taito's Space Invaders ## The Invaders march ... #### Bom bom
Fly across the universe on a quest for survival against alien enemy forces. Made with QB64.
+**[Star Battles](star-battles/index.md)**
+
+[🐝 *missing*](author-missing.md) 🔗 [game](game.md), [2 player](2-player.md), [legacy](legacy.md)
+
+Two players battle in starships.
+
+**[Stones](stones/index.md)**
+
+[🐝 *missing*](author-missing.md) 🔗 [game](game.md), [legacy](legacy.md)
+
+
+
**[Super Mario Jump](super-mario-jump/index.md)**
[🐝 Terry Ritchie](terry-ritchie.md) 🔗 [game](game.md), [mario](mario.md)
Super Mario Jump!
+**[Temple](temple/index.md)**
+
+[🐝 John Belew](john-belew.md) 🔗 [game](game.md), [legacy](legacy.md)
+
+710 REM **************************************************** 720 REM * WRITTEN BY JOHN BEL...
+
**[Tic Tac Toe](tic-tac-toe/index.md)**
[🐝 Paul Meyer](paul-meyer.md) 🔗 [game](game.md), [tic tac toe](tic-tac-toe.md)
@@ -500,6 +560,12 @@ The goal is to get four in a row while preventing the computer from doing the sa
Tic Tac Toe Rings by Fellippe Heitor.
+**[Torneo NDC](torneo-ndc/index.md)**
+
+[🐝 FGR SOFTWARE](fgr-software.md) 🔗 [game](game.md), [legacy](legacy.md)
+
+Ascii-based spaceship game with music. ' ' FGR SOFTWARE ' ...
+
**[Tower of Hanoi](tower-of-hanoi/index.md)**
[🐝 *missing*](author-missing.md) 🔗 [game](game.md), [tower](tower.md)
@@ -517,3 +583,21 @@ Print "The TOWER OF HANOI is a mathematical game or puzzle. It consists" Print "
[🐝 Tom Sales](tom-sales.md) 🔗 [game](game.md), [dos world](dos-world.md), [254 chars](254-chars.md)
Copyright (C) 1994-95 DOS Resource Guide/DOS World Published in Issue #17, September 1994, page ...
+
+**[Wumpus](wumpus/index.md)**
+
+[🐝 *missing*](author-missing.md) 🔗 [game](game.md), [legacy](legacy.md)
+
+375 REM *** INSTRUCTIONS *** PRINT "WELCOME TO 'HUNT THE WUMPUS'" PRINT " THE WUMPUS LIVES IN A C...
+
+**[X-Wing](x-wing/index.md)**
+
+[🐝 DATATECH](datatech.md) 🔗 [game](game.md), [star wars](star-wars.md), [legacy](legacy.md)
+
+PRINT "ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿" PRINT "³ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿³"...
+
+**[Zodiac](zodiac/index.md)**
+
+[🐝 Paulunknown](paulunknown.md) 🔗 [game](game.md), [legacy](legacy.md)
+
+PRINT "Game created by Paulunknown" PRINT "Thanks for playing. Please give me some comments on th...
diff --git a/samples/geometry.md b/samples/geometry.md
index 015050bb..d404f895 100644
--- a/samples/geometry.md
+++ b/samples/geometry.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: GEOMETRY
@@ -26,8 +26,32 @@ This is an interactive (mouse-driven) demo that calculates the intersection of a
Line segments intersecting.
+**[RightTriangle](righttriangle/index.md)**
+
+[🐝 T.A. Giles](t.a.-giles.md) 🔗 [geometry](geometry.md), [legacy](legacy.md)
+
+'Program (c) T.A.Giles - Mar 2001 'Right Angle Triangle Solver v 1.1 '640 x 480 graphics resolution
+
+**[Rotate](rotate/index.md)**
+
+[🐝 *missing*](author-missing.md) 🔗 [geometry](geometry.md), [legacy](legacy.md)
+
+Rotating circles.
+
**[Torus Demo](torus-demo/index.md)**
[🐝 Microsoft](microsoft.md) 🔗 [geometry](geometry.md), [torus](torus.md)
'------------------------------------------------------------------------------------------------...
+
+**[Vektor](vektor/index.md)**
+
+[🐝 *missing*](author-missing.md) 🔗 [geometry](geometry.md), [legacy](legacy.md)
+
+Fly around a plane of dots. PRINT "Welcome to my second go at displaying" PRINT "points in a thr...
+
+**[VSphere](vsphere/index.md)**
+
+[🐝 *missing*](author-missing.md) 🔗 [geometry](geometry.md), [legacy](legacy.md)
+
+'This is a program that calculates the volume of a sphere.
diff --git a/samples/ghost-wizard/index.md b/samples/ghost-wizard/index.md
index 3bd64d5a..2c5bcf7b 100644
--- a/samples/ghost-wizard/index.md
+++ b/samples/ghost-wizard/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: GHOST WIZARD
diff --git a/samples/gl.md b/samples/gl.md
index acd079d2..d763fb60 100644
--- a/samples/gl.md
+++ b/samples/gl.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: GL
diff --git a/samples/glenn-powell.md b/samples/glenn-powell.md
index 6f8b9d5f..c42ff058 100644
--- a/samples/glenn-powell.md
+++ b/samples/glenn-powell.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY GLENN POWELL
diff --git a/samples/globe/index.md b/samples/globe/index.md
index fe489ac8..021c3f5b 100644
--- a/samples/globe/index.md
+++ b/samples/globe/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: GLOBE
diff --git a/samples/globs-0/index.md b/samples/globs-0/index.md
index d16dfdde..fbd01964 100644
--- a/samples/globs-0/index.md
+++ b/samples/globs-0/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: GLOBS 0
diff --git a/samples/globs-1/index.md b/samples/globs-1/index.md
index f4ff003e..3324ad0a 100644
--- a/samples/globs-1/index.md
+++ b/samples/globs-1/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: GLOBS 1
diff --git a/samples/gorillas/index.md b/samples/gorillas/index.md
index 5b7220c6..66e360fb 100644
--- a/samples/gorillas/index.md
+++ b/samples/gorillas/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: GORILLAS
diff --git a/samples/grahambhg.md b/samples/grahambhg.md
index 7bd7c581..bb8102a7 100644
--- a/samples/grahambhg.md
+++ b/samples/grahambhg.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY GRAHAMBHG
diff --git a/samples/graph.md b/samples/graph.md
index 73938fbd..3acfea43 100644
--- a/samples/graph.md
+++ b/samples/graph.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: GRAPH
diff --git a/samples/graphics.md b/samples/graphics.md
index 304612fc..8547d64e 100644
--- a/samples/graphics.md
+++ b/samples/graphics.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: GRAPHICS
@@ -56,6 +56,12 @@ Graphical Lissajou's Figures. For added eye-candy-ness, I've changed the plot l
'MakeBig.bas: 'This program reads data statements and uses pset to draw the 'pixel color they rep...
+**[NightSky](nightsky/index.md)**
+
+[🐝 *missing*](author-missing.md) 🔗 [graphics](graphics.md), [legacy](legacy.md)
+
+Simple night sky & moon.
+
**[PixelPlus](pixelplus/index.md)**
[🐝 Chris Chadwick](chris-chadwick.md) 🔗 [graphics](graphics.md), [bitmap](bitmap.md)
@@ -70,7 +76,7 @@ Use the left mousebutton to draw a line, change color with the right mousebutton
**[Plumeria](plumeria/index.md)**
-[🐝 Vince](vince.md) 🔗 [2d](2d.md), [graphics](graphics.md)
+[🐝 Vince](vince.md) 🔗 [2d](2d.md), [graphics](graphics.md), [qbjs](qbjs.md)
Plumeria demo by Vince.
@@ -80,8 +86,32 @@ Plumeria demo by Vince.
Isometric 3D demo.
+**[RotoZoom3](rotozoom3/index.md)**
+
+[🐝 Galleon](galleon.md) [🐝 bplus](bplus.md) 🔗 [graphics](graphics.md), [rotozoom](rotozoom.md)
+
+A modification of Galleon's RotoZoom in Wiki that both scales and rotates an image, this version ...
+
+**[Rug](rug/index.md)**
+
+[🐝 *missing*](author-missing.md) 🔗 [graphics](graphics.md), [ascii](ascii.md), [legacy](legacy.md)
+
+Simple coloured ascii smilies.
+
+**[Screen Tester](screen-tester/index.md)**
+
+[🐝 patz2009](patz2009.md) 🔗 [graphics](graphics.md), [utility](utility.md), [legacy](legacy.md)
+
+' PQBC Screen Tester '-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-...
+
**[SineCube](sinecube/index.md)**
[🐝 Mennonite](mennonite.md) 🔗 [graphics](graphics.md)
'sinecube 2006 mennonite 'public domain
+
+**[Thick Lines](thick-lines/index.md)**
+
+[🐝 Fellippe Heitor](fellippe-heitor.md) 🔗 [graphics](graphics.md), [line](line.md)
+
+This can be used to draw a line with a specified lineWidth.
diff --git a/samples/gravity.md b/samples/gravity.md
index e4360f3c..9efc0237 100644
--- a/samples/gravity.md
+++ b/samples/gravity.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: GRAVITY
diff --git a/samples/gravity/index.md b/samples/gravity/index.md
index b848ae28..4f8a54ad 100644
--- a/samples/gravity/index.md
+++ b/samples/gravity/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: GRAVITY
diff --git a/samples/greg-ennen.md b/samples/greg-ennen.md
index 71525c3e..db3d9929 100644
--- a/samples/greg-ennen.md
+++ b/samples/greg-ennen.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY GREG ENNEN
diff --git a/samples/greg-rismoen.md b/samples/greg-rismoen.md
index 20414a8e..cba38d66 100644
--- a/samples/greg-rismoen.md
+++ b/samples/greg-rismoen.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY GREG RISMOEN
diff --git a/samples/gui.md b/samples/gui.md
index 689d9523..8dc5f4d1 100644
--- a/samples/gui.md
+++ b/samples/gui.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: GUI
diff --git a/samples/gujero2/index.md b/samples/gujero2/index.md
index 943f041e..64dab9e9 100644
--- a/samples/gujero2/index.md
+++ b/samples/gujero2/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: GUJERO2
@@ -20,16 +20,9 @@
'-----------------------------------------------------------------------
```
-### QBjs
-
-> Please note that QBjs is still in early development and support for these examples is extremely experimental (meaning will most likely not work). With that out of the way, give it a try!
-
-* [LOAD "gujero.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?src=https://qb64.com/samples/gujero2/src/gujero.bas)
-* [RUN "gujero.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?mode=auto&src=https://qb64.com/samples/gujero2/src/gujero.bas)
-* [PLAY "gujero.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?mode=play&src=https://qb64.com/samples/gujero2/src/gujero.bas)
-
### File(s)
* [gujero.bas](src/gujero.bas)
+* [gujero_orig.bas](src/gujero_orig.bas)
🔗 [screensaver](../screensaver.md), [tunnel](../tunnel.md)
diff --git a/samples/gujero2/src/gujero_orig.bas b/samples/gujero2/src/gujero_orig.bas
new file mode 100644
index 00000000..34259b14
--- /dev/null
+++ b/samples/gujero2/src/gujero_orig.bas
@@ -0,0 +1,19 @@
+'-----------------------------------------------------------------------
+'GUJERO2.BAS by Antoni Gual 2/2004
+'For the QBNZ 1/2004 9 liner contest
+'-----------------------------------------------------------------------
+'Tunnel effect (more or less)
+'FFIX recommended. It does compile.
+'-----------------------------------------------------------------------
+'DECLARE SUB ffix
+'ffix
+1 IF i = 0 THEN SCREEN 13 ELSE IF i = 1 THEN OUT &H3C8, 0 ELSE IF i <= 194 THEN OUT &H3C9, INT((i - 2) / 3)
+2 IF i <= 194 THEN GOTO 8
+3 FOR y = -100 TO 99
+4 FOR x = -160 TO 159
+5 IF x >= 0 THEN IF y < 0 THEN alpha = 1.57079632679# + ATN(x / (y + .000001)) ELSE alpha = -ATN(y / (x + .000001)) ELSE IF y < 0 THEN alpha = 1.57079632679# + ATN(x / (y + .000001)) ELSE alpha = -1.57079632679# + ATN(x / (y + .000001))
+6 PSET (x + 160, y + 100), (x * x + y * y) * .00003 * ((INT(-10000 * i + 5.2 * SQR(x * x + y * y)) AND &H3F) XOR (INT((191 * alpha) + 10 * i) AND &H3F))
+7 NEXT x, y
+8 i = i + 1
+9 IF LEN(INKEY$) = 0 THEN GOTO 1
+
diff --git a/samples/hangman.md b/samples/hangman.md
index 350cf4ea..9730202f 100644
--- a/samples/hangman.md
+++ b/samples/hangman.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: HANGMAN
diff --git a/samples/hangman/index.md b/samples/hangman/index.md
index 9f7ed2f0..69247e75 100644
--- a/samples/hangman/index.md
+++ b/samples/hangman/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: HANGMAN
diff --git a/samples/hardin-brothers.md b/samples/hardin-brothers.md
index 9948458f..a7b80210 100644
--- a/samples/hardin-brothers.md
+++ b/samples/hardin-brothers.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY HARDIN BROTHERS
diff --git a/samples/harixxx.md b/samples/harixxx.md
index 28a53253..1f0c479b 100644
--- a/samples/harixxx.md
+++ b/samples/harixxx.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY HARIXXX
diff --git a/samples/hegemony/index.md b/samples/hegemony/index.md
index 8da5393b..9a46252f 100644
--- a/samples/hegemony/index.md
+++ b/samples/hegemony/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: HEGEMONY
diff --git a/samples/helicopter-rescue/index.md b/samples/helicopter-rescue/index.md
index 5b120c52..7ce7672c 100644
--- a/samples/helicopter-rescue/index.md
+++ b/samples/helicopter-rescue/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: HELICOPTER RESCUE
diff --git a/samples/hex.md b/samples/hex.md
index cca087b7..d58a6215 100644
--- a/samples/hex.md
+++ b/samples/hex.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: HEX
diff --git a/samples/html-about-page-generator/index.md b/samples/html-about-page-generator/index.md
index 2d3290a2..0af6ea75 100644
--- a/samples/html-about-page-generator/index.md
+++ b/samples/html-about-page-generator/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: HTML ABOUT PAGE GENERATOR
diff --git a/samples/html.md b/samples/html.md
index 2657e7b4..80215b64 100644
--- a/samples/html.md
+++ b/samples/html.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: HTML
diff --git a/samples/hunter/index.md b/samples/hunter/index.md
index 38a4c05b..a6abcbb6 100644
--- a/samples/hunter/index.md
+++ b/samples/hunter/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: HUNTER
diff --git a/samples/hunters-revenge/index.md b/samples/hunters-revenge/index.md
index c2b140bd..c2db6c47 100644
--- a/samples/hunters-revenge/index.md
+++ b/samples/hunters-revenge/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: HUNTERS REVENGE
diff --git a/samples/image-manipulation.md b/samples/image-manipulation.md
index 0a0e4868..15a35d66 100644
--- a/samples/image-manipulation.md
+++ b/samples/image-manipulation.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: IMAGE MANIPULATION
diff --git a/samples/image-processing.md b/samples/image-processing.md
index b9160fee..e6711cd3 100644
--- a/samples/image-processing.md
+++ b/samples/image-processing.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: IMAGE PROCESSING
@@ -8,6 +8,12 @@
[This] is an image converter that takes a picture a small block at a time and finds the "best fit...
+**[Discrete Cosine Transform](discrete-cosine-transform/index.md)**
+
+[🐝 Vince](vince.md) 🔗 [image processing](image-processing.md), [compression](compression.md), [jpeg](jpeg.md)
+
+Demonstrates how jpegs are made. Not for the faint of mind.
+
**[Ripples](ripples/index.md)**
[🐝 Antoni Gual](antoni-gual.md) 🔗 [image processing](image-processing.md), [ripple](ripple.md)
diff --git a/samples/integrators/index.md b/samples/integrators/index.md
index b070d6ac..e61e04cc 100644
--- a/samples/integrators/index.md
+++ b/samples/integrators/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: INTEGRATORS
diff --git a/samples/interface.md b/samples/interface.md
index 6c49da64..9806c849 100644
--- a/samples/interface.md
+++ b/samples/interface.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: INTERFACE
diff --git a/samples/interpolation.md b/samples/interpolation.md
index cd5d32e2..67d80e46 100644
--- a/samples/interpolation.md
+++ b/samples/interpolation.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: INTERPOLATION
diff --git a/samples/interpreter.md b/samples/interpreter.md
index 9ee1ce73..00ffeea2 100644
--- a/samples/interpreter.md
+++ b/samples/interpreter.md
@@ -1,7 +1,13 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: INTERPRETER
+**[Intrprtr](intrprtr/index.md)**
+
+[🐝 *missing*](author-missing.md) 🔗 [interpreter](interpreter.md), [legacy](legacy.md)
+
+Misc. interpreter.
+
**[Lisp Interpreter](lisp-interpreter/index.md)**
[🐝 qbguy](qbguy.md) 🔗 [interpreter](interpreter.md), [lisp](lisp.md)
diff --git a/samples/intersections.md b/samples/intersections.md
index a3926d22..65a8b4fd 100644
--- a/samples/intersections.md
+++ b/samples/intersections.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: INTERSECTIONS
diff --git a/samples/intrprtr/img/screenshot.png b/samples/intrprtr/img/screenshot.png
new file mode 100644
index 00000000..067ec33e
Binary files /dev/null and b/samples/intrprtr/img/screenshot.png differ
diff --git a/samples/intrprtr/index.md b/samples/intrprtr/index.md
new file mode 100644
index 00000000..34570867
--- /dev/null
+++ b/samples/intrprtr/index.md
@@ -0,0 +1,25 @@
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+
+## SAMPLE: INTRPRTR
+
+![screenshot.png](img/screenshot.png)
+
+### Description
+
+```text
+Misc. interpreter.
+```
+
+### QBjs
+
+> Please note that QBjs is still in early development and support for these examples is extremely experimental (meaning will most likely not work). With that out of the way, give it a try!
+
+* [LOAD "intrprtr.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?src=https://qb64.com/samples/intrprtr/src/intrprtr.bas)
+* [RUN "intrprtr.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?mode=auto&src=https://qb64.com/samples/intrprtr/src/intrprtr.bas)
+* [PLAY "intrprtr.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?mode=play&src=https://qb64.com/samples/intrprtr/src/intrprtr.bas)
+
+### File(s)
+
+* [intrprtr.bas](src/intrprtr.bas)
+
+🔗 [interpreter](../interpreter.md), [legacy](../legacy.md)
diff --git a/samples/intrprtr/src/intrprtr.bas b/samples/intrprtr/src/intrprtr.bas
new file mode 100644
index 00000000..71285bd3
--- /dev/null
+++ b/samples/intrprtr/src/intrprtr.bas
@@ -0,0 +1,346 @@
+DECLARE SUB LLISTSTMT ()
+DECLARE SUB LPRINTSTMT ()
+DECLARE SUB INITGETSYM (N AS INTEGER)
+DECLARE SUB VALIDLINENUM ()
+DECLARE SUB DOCMD ()
+DECLARE SUB CLEARVARS ()
+DECLARE SUB LISTSTMT ()
+DECLARE SUB GOTOSTMT ()
+DECLARE SUB IFSTMT ()
+DECLARE SUB INPUTSTMT ()
+DECLARE SUB PRINTSTMT ()
+DECLARE SUB SKIPTOEOL ()
+DECLARE SUB IDSTMT ()
+DECLARE SUB GETSYM ()
+DECLARE SUB EXPECT (S AS STRING)
+DECLARE SUB GOTOLINE ()
+DECLARE FUNCTION EXPRESSION% ()
+DECLARE FUNCTION ADDEXPR% ()
+DECLARE FUNCTION TERM% ()
+DECLARE FUNCTION FACTOR% ()
+DECLARE FUNCTION GETVARINDEX% ()
+DECLARE FUNCTION ACCEPT% (S AS STRING)
+DECLARE SUB GETCH ()
+DECLARE SUB READSTR ()
+DECLARE SUB READIDENT ()
+DECLARE SUB READINT ()
+
+DIM SHARED CH$, THELIN$, PGM$(2000), TOK$
+
+
+DIM SHARED VARS(26) AS INTEGER, CURLINE AS INTEGER, NUM AS INTEGER
+DIM SHARED TEXTP AS INTEGER, ERRORS AS INTEGER
+
+
+DO
+ERRORS = 0
+LINE INPUT "> ", PGM$(0)
+IF PGM$(0) <> "" THEN
+CALL INITGETSYM(0)
+IF LEFT$(TOK$, 1) >= "0" AND LEFT$(TOK$, 1) <= "9" THEN
+CALL VALIDLINENUM
+PGM$(NUM) = MID$(PGM$(0), TEXTP, LEN(PGM$(0)) - TEXTP + 1)
+ELSE
+CALL DOCMD
+END IF
+END IF
+LOOP
+
+FUNCTION ACCEPT% (S AS STRING)
+ACCEPT% = 0
+IF TOK$ = S THEN ACCEPT% = 1: CALL GETSYM
+END FUNCTION
+
+FUNCTION ADDEXPR%
+DIM N
+N = TERM%
+ADDEL:
+IF TOK$ = "+" THEN CALL GETSYM: N = N + TERM%: GOTO ADDEL
+IF TOK$ = "-" THEN CALL GETSYM: N = N - TERM%: GOTO ADDEL
+ADDEXPR% = N
+END FUNCTION
+
+SUB CLEARVARS
+DIM I AS INTEGER
+FOR I = 1 TO 26
+VARS(I) = 0
+NEXT I
+END SUB
+
+SUB DOCMD
+DIM I AS INTEGER
+AGAIN:
+IF ERRORS <> 0 THEN EXIT SUB
+WHILE TOK$ = ""
+IF CURLINE = 0 OR CURLINE >= 1999 THEN EXIT SUB
+CALL INITGETSYM(CURLINE + 1)
+WEND
+IF ACCEPT("STOP") OR ACCEPT("END") THEN EXIT SUB
+IF ACCEPT("NEW") THEN
+CALL CLEARVARS
+FOR I = 1 TO 1999
+PGM$(I) = ""
+NEXT I
+EXIT SUB
+END IF
+IF ACCEPT("BYE") THEN END
+IF ACCEPT("LIST") THEN CALL LISTSTMT: GOTO AGAIN
+IF ACCEPT("LLIST") THEN CALL LLISTSTMT: GOTO AGAIN
+IF ACCEPT("RUN") THEN
+CALL CLEARVARS
+CALL INITGETSYM(1)
+GOTO AGAIN
+END IF
+IF ACCEPT("GOTO") THEN CALL GOTOSTMT: GOTO AGAIN
+IF ACCEPT("IF") THEN CALL IFSTMT: GOTO AGAIN
+IF ACCEPT("INPUT") THEN CALL INPUTSTMT: GOTO AGAIN
+IF ACCEPT("PRINT") THEN CALL PRINTSTMT: GOTO AGAIN
+IF ACCEPT("LPRINT") THEN CALL LPRINTSTMT: GOTO AGAIN
+IF ACCEPT("REM") THEN CALL SKIPTOEOL: GOTO AGAIN
+IF LEFT$(TOK$, 1) >= "A" AND LEFT$(TOK$, 1) <= "Z" THEN
+CALL IDSTMT
+GOTO AGAIN
+END IF
+PRINT "UNKNOWN TOKEN "; TOK$; " AT LINE "; CURLINE
+END SUB
+
+SUB EXPECT (S AS STRING)
+IF ACCEPT(S) <> 0 THEN EXIT SUB
+ERRORS = 1
+PRINT "EXPECTING "; S; " BUT FOUND "; TOK$
+END SUB
+
+FUNCTION EXPRESSION%
+DIM N
+N = ADDEXPR%
+EXPRL:
+IF TOK$ = "=" THEN CALL GETSYM: N = N = ADDEXPR%: GOTO EXPRL
+IF TOK$ = "<" THEN CALL GETSYM: N = N < ADDEXPR%: GOTO EXPRL
+IF TOK$ = ">" THEN CALL GETSYM: N = N > ADDEXPR%: GOTO EXPRL
+IF TOK$ = "<>" THEN CALL GETSYM: N = N <> ADDEXPR%: GOTO EXPRL
+IF TOK$ = "<=" THEN CALL GETSYM: N = N <= ADDEXPR%: GOTO EXPRL
+IF TOK$ = ">=" THEN CALL GETSYM: N = N >= ADDEXPR%: GOTO EXPRL
+EXPRESSION% = N
+END FUNCTION
+
+FUNCTION FACTOR%
+IF ACCEPT("-") THEN
+FACTOR% = -FACTOR%
+EXIT FUNCTION
+END IF
+IF ACCEPT("(") THEN
+FACTOR% = EXPRESSION
+CALL EXPECT(")")
+EXIT FUNCTION
+END IF
+IF LEFT$(TOK$, 1) >= "0" AND LEFT$(TOK$, 1) <= "9" THEN
+FACTOR% = NUM
+CALL GETSYM
+EXIT FUNCTION
+END IF
+IF LEFT$(TOK$, 1) >= "A" AND LEFT$(TOK$, 1) <= "Z" THEN
+FACTOR% = VARS(GETVARINDEX)
+EXIT FUNCTION
+END IF
+PRINT "UNEXPECTED SYM "; TOK$; " IN FACTOR": ERRORS = 1
+END FUNCTION
+
+SUB GETCH
+IF TEXTP > LEN(THELIN$) THEN CH$ = "": EXIT SUB
+CH$ = MID$(THELIN$, TEXTP, 1)
+TEXTP = TEXTP + 1
+END SUB
+
+SUB GETSYM
+TOK$ = ""
+WHILE CH$ <= " "
+IF CH$ = "" THEN EXIT SUB
+CALL GETCH
+WEND
+
+
+TOK$ = CH$
+IF INSTR(",;=+-*/()", CH$) > 0 THEN CALL GETCH: EXIT SUB
+IF CH$ = "<" THEN
+CALL GETCH
+IF CH$ = "=" OR CH$ = ">" THEN
+TOK$ = TOK$ + CH$
+CALL GETCH
+END IF
+EXIT SUB
+END IF
+IF CH$ = ">" THEN
+CALL GETCH
+IF CH$ = "=" THEN TOK$ = TOK$ + CH$: CALL GETCH
+EXIT SUB
+END IF
+IF CH$ = CHR$(34) THEN CALL READSTR: EXIT SUB
+IF CH$ >= "A" AND CH$ <= "Z" THEN CALL READIDENT: EXIT SUB
+IF CH$ >= "0" AND CH$ <= "9" THEN CALL READINT: EXIT SUB
+PRINT "WHAT->"; CH$: ERRORS = 1
+END SUB
+
+FUNCTION GETVARINDEX%
+IF LEFT$(TOK$, 1) < "A" OR LEFT$(TOK$, 1) > "Z" THEN
+PRINT "NOT A VARIABLE": ERRORS = 1: EXIT FUNCTION
+END IF
+GETVARINDEX% = ASC(LEFT$(TOK$, 1)) - ASC("A")
+CALL GETSYM
+END FUNCTION
+
+SUB GOTOLINE
+CALL VALIDLINENUM
+CALL INITGETSYM(NUM)
+END SUB
+
+SUB GOTOSTMT
+IF LEFT$(TOK$, 1) >= "0" AND LEFT$(TOK$, 1) <= "9" THEN
+CALL GOTOLINE
+EXIT SUB
+END IF
+PRINT "LINE NUMBER MUST FOLLOW GOTO": ERRORS = 1
+END SUB
+
+SUB IDSTMT
+DIM VAR AS INTEGER
+VAR = GETVARINDEX
+CALL EXPECT("=")
+VARS(VAR) = EXPRESSION
+END SUB
+
+SUB IFSTMT
+DIM B AS INTEGER
+IF EXPRESSION = 0 THEN CALL SKIPTOEOL: EXIT SUB
+B = ACCEPT("THEN")
+IF LEFT$(TOK$, 1) >= "0" AND LEFT$(TOK$, 1) <= "9" THEN
+CALL GOTOLINE
+END IF
+END SUB
+
+SUB INITGETSYM (N AS INTEGER)
+CURLINE = N
+TEXTP = 1
+THELIN$ = PGM$(CURLINE)
+CH$ = " "
+CALL GETSYM
+END SUB
+
+SUB INPUTSTMT
+DIM VAR AS INTEGER
+IF TOK$ = CHR$(34) THEN
+PRINT MID$(TOK$, 2, LEN(TOK$) - 1);
+CALL GETSYM
+CALL EXPECT(",")
+ELSE
+PRINT "? ";
+END IF
+VAR = GETVARINDEX
+INPUT VARS(VAR)
+END SUB
+
+SUB LISTSTMT
+DIM I AS INTEGER
+FOR I = 1 TO 1999
+IF PGM$(I) <> "" THEN PRINT I; " "; PGM$(I)
+NEXT I
+PRINT
+END SUB
+
+SUB LLISTSTMT
+OPEN "LPT1" FOR OUTPUT AS #1
+DIM I AS INTEGER
+FOR I = 1 TO 1999
+IF PGM$(I) <> "" THEN PRINT #1, I; " "; PGM$(I)
+NEXT I
+PRINT
+CLOSE #1
+END SUB
+
+SUB LPRINTSTMT
+OPEN "LPT1" FOR OUTPUT AS #1
+DIM LPRINTNL AS INTEGER
+LPRINTNL = 1
+DO WHILE TOK$ <> ""
+LPRINTNL = 1
+IF LEFT$(TOK$, 1) = CHR$(34) THEN
+PRINT #1, MID$(TOK$, 2, LEN(TOK$) - 1);
+CALL GETSYM
+ELSE
+PRINT #1, EXPRESSION;
+END IF
+IF ACCEPT(",") = 0 AND ACCEPT(";") = 0 THEN EXIT DO
+PRINTNL = 0
+LOOP
+IF PRINTNL <> 0 THEN PRINT #1, ""
+CLOSE #1
+END SUB
+
+SUB PRINTSTMT
+DIM PRINTNL AS INTEGER
+PRINTNL = 1
+DO WHILE TOK$ <> ""
+PRINTNL = 1
+IF LEFT$(TOK$, 1) = CHR$(34) THEN
+PRINT MID$(TOK$, 2, LEN(TOK$) - 1);
+CALL GETSYM
+ELSE
+PRINT EXPRESSION;
+END IF
+
+
+IF ACCEPT(",") = 0 AND ACCEPT(";") = 0 THEN EXIT DO
+PRINTNL = 0
+LOOP
+IF PRINTNL <> 0 THEN PRINT
+END SUB
+
+SUB READIDENT
+TOK$ = ""
+WHILE CH$ >= "A" AND CH$ <= "Z"
+TOK$ = TOK$ + CH$
+CALL GETCH
+WEND
+END SUB
+
+SUB READINT
+TOK$ = ""
+WHILE CH$ >= "0" AND CH$ <= "9"
+TOK$ = TOK$ + CH$
+CALL GETCH
+WEND
+NUM = VAL(TOK$)
+END SUB
+
+SUB READSTR
+TOK$ = CHR$(34)
+CALL GETCH
+WHILE CH$ <> CHR$(34)
+IF CH$ = "" THEN
+PRINT "STRING NOT TERMINATED": ERRORS = 1: EXIT SUB
+END IF
+TOK$ = TOK$ + CH$
+CALL GETCH
+WEND
+CALL GETCH
+END SUB
+
+SUB SKIPTOEOL
+WHILE CH$ <> ""
+CALL GETCH
+WEND
+CALL GETSYM
+END SUB
+
+FUNCTION TERM%
+DIM N
+N = FACTOR%
+TERML:
+IF TOK$ = "*" THEN CALL GETSYM: N = N * FACTOR%: GOTO TERML
+IF TOK$ = "/" THEN CALL GETSYM: N = N / FACTOR%: GOTO TERML
+TERM% = N
+END FUNCTION
+
+SUB VALIDLINENUM
+IF NUM > 0 AND NUM <= 1999 THEN EXIT SUB
+PRINT "LINE NUMBER OUT OF RANGE": ERRORS = 1
+END SUB
diff --git a/samples/inverse-julia-fractal-explorer/index.md b/samples/inverse-julia-fractal-explorer/index.md
index 9c1ff499..2caeed49 100644
--- a/samples/inverse-julia-fractal-explorer/index.md
+++ b/samples/inverse-julia-fractal-explorer/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: INVERSE JULIA FRACTAL EXPLORER
diff --git a/samples/inyrface/index.md b/samples/inyrface/index.md
index 04a955e5..c0ece8c0 100644
--- a/samples/inyrface/index.md
+++ b/samples/inyrface/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: INYRFACE
diff --git a/samples/isometric.md b/samples/isometric.md
index 1c94ad35..07a2d1ae 100644
--- a/samples/isometric.md
+++ b/samples/isometric.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: ISOMETRIC
diff --git a/samples/jeff-davis.md b/samples/jeff-davis.md
index 05851d03..5731cced 100644
--- a/samples/jeff-davis.md
+++ b/samples/jeff-davis.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY JEFF DAVIS
diff --git a/samples/jeh.md b/samples/jeh.md
index aa6cb074..3fccb57a 100644
--- a/samples/jeh.md
+++ b/samples/jeh.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY JEH
diff --git a/samples/jeremy-munn.md b/samples/jeremy-munn.md
index f226ab2a..f810b2f7 100644
--- a/samples/jeremy-munn.md
+++ b/samples/jeremy-munn.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY JEREMY MUNN
diff --git a/samples/jeremy-ruten.md b/samples/jeremy-ruten.md
new file mode 100644
index 00000000..7f73c1c3
--- /dev/null
+++ b/samples/jeremy-ruten.md
@@ -0,0 +1,9 @@
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+
+## SAMPLES BY JEREMY RUTEN
+
+**[SkyDiver](skydiver/index.md)**
+
+[🐝 Jeremy Ruten](jeremy-ruten.md) 🔗 [game](game.md), [legacy](legacy.md)
+
+PRINT "Welcome to Skydiver!" PRINT "The object of the game is to" PRINT "jump out of your airplan...
diff --git a/samples/jkc.md b/samples/jkc.md
index 9eb615fd..85cc4f6c 100644
--- a/samples/jkc.md
+++ b/samples/jkc.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY JKC
diff --git a/samples/john-belew.md b/samples/john-belew.md
new file mode 100644
index 00000000..ee8a3ced
--- /dev/null
+++ b/samples/john-belew.md
@@ -0,0 +1,9 @@
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+
+## SAMPLES BY JOHN BELEW
+
+**[Temple](temple/index.md)**
+
+[🐝 John Belew](john-belew.md) 🔗 [game](game.md), [legacy](legacy.md)
+
+710 REM **************************************************** 720 REM * WRITTEN BY JOHN BEL...
diff --git a/samples/john-mendoza.md b/samples/john-mendoza.md
index 10aa5f98..6aa0161e 100644
--- a/samples/john-mendoza.md
+++ b/samples/john-mendoza.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY JOHN MENDOZA
@@ -7,3 +7,9 @@
[🐝 John Mendoza](john-mendoza.md) 🔗 [game](game.md), [dice](dice.md), [legacy](legacy.md)
'This is a very simple dice game. I am still new at Qb so please humor me. 'Also, Thank You for d...
+
+**[MrGuessIt](mrguessit/index.md)**
+
+[🐝 John Mendoza](john-mendoza.md) 🔗 [game](game.md), [legacy](legacy.md)
+
+PRINT "This is a guessing game between the numbers 0 and 50." PRINT "I will tell you if you are h...
diff --git a/samples/john-wolfskill.md b/samples/john-wolfskill.md
index ea4a94f0..e986f41b 100644
--- a/samples/john-wolfskill.md
+++ b/samples/john-wolfskill.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY JOHN WOLFSKILL
diff --git a/samples/jon-mark-o'connor.md b/samples/jon-mark-o'connor.md
index 994e38be..61ac18d4 100644
--- a/samples/jon-mark-o'connor.md
+++ b/samples/jon-mark-o'connor.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY JON MARK O'CONNOR
diff --git a/samples/jpeg-maker/index.md b/samples/jpeg-maker/index.md
index cc3ab311..42557ffd 100644
--- a/samples/jpeg-maker/index.md
+++ b/samples/jpeg-maker/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: JPEG MAKER
diff --git a/samples/jpeg.md b/samples/jpeg.md
index 0d9f7241..44af1542 100644
--- a/samples/jpeg.md
+++ b/samples/jpeg.md
@@ -1,7 +1,13 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: JPEG
+**[Discrete Cosine Transform](discrete-cosine-transform/index.md)**
+
+[🐝 Vince](vince.md) 🔗 [image processing](image-processing.md), [compression](compression.md), [jpeg](jpeg.md)
+
+Demonstrates how jpegs are made. Not for the faint of mind.
+
**[Jpeg Maker](jpeg-maker/index.md)**
[🐝 Artelius](artelius.md) 🔗 [jpeg](jpeg.md), [image manipulation](image-manipulation.md)
diff --git a/samples/julia-rings/index.md b/samples/julia-rings/index.md
index 1e3068d5..b65183f2 100644
--- a/samples/julia-rings/index.md
+++ b/samples/julia-rings/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: JULIA RINGS
diff --git a/samples/julia-set.md b/samples/julia-set.md
index 9317ef31..424ab868 100644
--- a/samples/julia-set.md
+++ b/samples/julia-set.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: JULIA SET
diff --git a/samples/kaleidoscope-3d/index.md b/samples/kaleidoscope-3d/index.md
index 6c2abb46..1964d323 100644
--- a/samples/kaleidoscope-3d/index.md
+++ b/samples/kaleidoscope-3d/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: KALEIDOSCOPE 3D
diff --git a/samples/kaleidoscope-doodler/index.md b/samples/kaleidoscope-doodler/index.md
index c5296fec..d11ff2d8 100644
--- a/samples/kaleidoscope-doodler/index.md
+++ b/samples/kaleidoscope-doodler/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: KALEIDOSCOPE DOODLER
diff --git a/samples/kaleidoscope-mill/index.md b/samples/kaleidoscope-mill/index.md
index 4a63ef5f..e528ff00 100644
--- a/samples/kaleidoscope-mill/index.md
+++ b/samples/kaleidoscope-mill/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: KALEIDOSCOPE MILL
diff --git a/samples/kaleidoscope/index.md b/samples/kaleidoscope/index.md
index bdf7b440..3401249b 100644
--- a/samples/kaleidoscope/index.md
+++ b/samples/kaleidoscope/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: KALEIDOSCOPE
diff --git a/samples/kbdparse/index.md b/samples/kbdparse/index.md
index 493871e6..4437b060 100644
--- a/samples/kbdparse/index.md
+++ b/samples/kbdparse/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: KBDPARSE
diff --git a/samples/kevin-b.-kohler.md b/samples/kevin-b.-kohler.md
index eec9ffd3..48fb6d37 100644
--- a/samples/kevin-b.-kohler.md
+++ b/samples/kevin-b.-kohler.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY KEVIN B. KOHLER
diff --git a/samples/kevin.md b/samples/kevin.md
index 298e959f..12f91eb8 100644
--- a/samples/kevin.md
+++ b/samples/kevin.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY KEVIN
diff --git a/samples/kinem.md b/samples/kinem.md
index f50c80fe..d05931eb 100644
--- a/samples/kinem.md
+++ b/samples/kinem.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY KINEM
diff --git a/samples/kite/img/screenshot.png b/samples/kite/img/screenshot.png
new file mode 100644
index 00000000..a25c2e38
Binary files /dev/null and b/samples/kite/img/screenshot.png differ
diff --git a/samples/kite/index.md b/samples/kite/index.md
new file mode 100644
index 00000000..617729f9
--- /dev/null
+++ b/samples/kite/index.md
@@ -0,0 +1,32 @@
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+
+## SAMPLE: KITE
+
+![screenshot.png](img/screenshot.png)
+
+### Author
+
+[🐝 mennonite](../mennonite.md)
+
+### Description
+
+```text
+Flying kite demo.
+
+'2007 mennonite
+'public domain
+```
+
+### QBjs
+
+> Please note that QBjs is still in early development and support for these examples is extremely experimental (meaning will most likely not work). With that out of the way, give it a try!
+
+* [LOAD "kite.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?src=https://qb64.com/samples/kite/src/kite.bas)
+* [RUN "kite.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?mode=auto&src=https://qb64.com/samples/kite/src/kite.bas)
+* [PLAY "kite.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?mode=play&src=https://qb64.com/samples/kite/src/kite.bas)
+
+### File(s)
+
+* [kite.bas](src/kite.bas)
+
+🔗 [legacy](../legacy.md)
diff --git a/samples/kite/src/kite.bas b/samples/kite/src/kite.bas
new file mode 100644
index 00000000..cd6fc426
--- /dev/null
+++ b/samples/kite/src/kite.bas
@@ -0,0 +1,69 @@
+'2007 mennonite
+'public domain
+
+ON ERROR GOTO 10
+DIM b AS INTEGER
+DIM a AS INTEGER
+DIM atwo AS INTEGER
+q$ = "...../" + CHR$(92) + "........./__" + CHR$(92) + "......./____" + CHR$(92) + "...../_q____" + CHR$(92) + ".../___b____" + CHR$(92) + "./__________" + CHR$(92)
+q$ = q$ + CHR$(92) + "__________/." + CHR$(92) + "____6___/..." + CHR$(92) + "____4_/....." + CHR$(92) + "____/......." + CHR$(92) + "__/........." + CHR$(92) + "/....."
+COLOR , 1
+
+FOR y = 25 TO 1 STEP -1
+FOR x = 1 TO 80
+LOCATE y, x: PRINT CHR$(32);
+NEXT x
+NEXT y: LOCATE 1, 1
+
+RANDOMIZE TIMER
+FOR a = 1 TO 10
+strn$ = strn$ + "||" + CHR$(247)
+NEXT a
+DO
+
+FOR y = 25 TO 1 STEP -1
+FOR x = 1 TO 80
+LOCATE y, x: PRINT CHR$(32);
+NEXT x
+NEXT y: LOCATE 1, 1
+
+b = b + (RND(1) * 3 - .5 - 1)
+a = a + (RND(1) * 3 - .5 - 1)
+IF b < 1 THEN b = 1 ELSE IF b > 10 THEN b = 10
+IF a < 1 THEN a = 1 ELSE IF a > 67 THEN a = 67
+FOR y = 1 TO 12
+FOR x = 1 TO 12
+one$ = RIGHT$(LEFT$(q$, y * 12 - 12 + x), 1)
+
+fc = 11
+IF one$ = "." THEN fc = 1
+IF one$ = "_" THEN fc = 3
+IF ASC(UCASE$(one$)) > 64 AND ASC(UCASE$(one$)) < 91 THEN fc = 14
+IF ASC(UCASE$(one$)) > 47 AND ASC(UCASE$(one$)) < 58 THEN fc = 14
+
+COLOR fc
+LOCATE y + b, x + a
+PRINT one$;
+NEXT x
+NEXT y
+COLOR 15
+atwo = 0
+cursorline = b + 12
+DO WHILE cursorline <= 24
+LOCATE cursorline + 1, x + a - 6 + atwo
+atwo = atwo + (RND(1) * 3 - .5 - 1)
+PRINT RIGHT$(LEFT$(strn$, cursorline), 1);
+cursorline = cursorline + 1
+LOOP
+t = TIMER: DO: LOOP UNTIL t > TIMER + .25 OR t < TIMER - .25
+LOOP UNTIL INKEY$ = CHR$(27)
+
+COLOR 7, 0
+FOR y = 25 TO 1 STEP -1
+FOR x = 1 TO 80
+LOCATE y, x: PRINT CHR$(32);
+NEXT x
+NEXT y: LOCATE 1, 1
+END
+10 RESUME NEXT
+
diff --git a/samples/lander.md b/samples/lander.md
index 3afd433a..be8c528c 100644
--- a/samples/lander.md
+++ b/samples/lander.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: LANDER
diff --git a/samples/legacy.md b/samples/legacy.md
index f9981fd1..c3cb23b4 100644
--- a/samples/legacy.md
+++ b/samples/legacy.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: LEGACY
@@ -188,12 +188,24 @@ Ball bounces realistically.
The HTML file is saved in C:\name_you_specified.html The modern Windows version for the file may...
+**[Intrprtr](intrprtr/index.md)**
+
+[🐝 *missing*](author-missing.md) 🔗 [interpreter](interpreter.md), [legacy](legacy.md)
+
+Misc. interpreter.
+
**[KbdParse](kbdparse/index.md)**
[🐝 William W. Sindel](william-w.-sindel.md) 🔗 [utility](utility.md), [legacy](legacy.md)
'*************************************************************************** '* '* Keyboard inpu...
+**[Kite](kite/index.md)**
+
+[🐝 mennonite](mennonite.md) 🔗 [legacy](legacy.md)
+
+Flying kite demo. '2007 mennonite 'public domain
+
**[LineSwing](lineswing/index.md)**
[🐝 PMG](pmg.md) 🔗 [pendulum](pendulum.md), [legacy](legacy.md)
@@ -224,6 +236,30 @@ This version of monopoly allows several house rules:(y/n choice for each) free p
- - - Mooncrap 1999 - - - - - written by Daniel Kupfer - Runs in Qbasic / QUICK BASIC 4.5 - Con...
+**[Move](move/index.md)**
+
+[🐝 mxmm](mxmm.md) 🔗 [game](game.md), [ascii](ascii.md), [legacy](legacy.md)
+
+PRINT "Welcome to the ultimate ASCII-player game: MOVE!" PRINT "v.1.0 by mxmm"
+
+**[MrGuessIt](mrguessit/index.md)**
+
+[🐝 John Mendoza](john-mendoza.md) 🔗 [game](game.md), [legacy](legacy.md)
+
+PRINT "This is a guessing game between the numbers 0 and 50." PRINT "I will tell you if you are h...
+
+**[NightSky](nightsky/index.md)**
+
+[🐝 *missing*](author-missing.md) 🔗 [graphics](graphics.md), [legacy](legacy.md)
+
+Simple night sky & moon.
+
+**[Pong BJ](pong-bj/index.md)**
+
+[🐝 bj mccann](bj-mccann.md) 🔗 [game](game.md), [pong](pong.md), [legacy](legacy.md)
+
+PRINT "PONG CLONE" PRINT " " PRINT " programed by bj mccann"
+
**[Pong Tennis](pong-tennis/index.md)**
[🐝 Alex Beighton](alex-beighton.md) 🔗 [game](game.md), [pong](pong.md), [legacy](legacy.md)
@@ -236,6 +272,36 @@ This version of monopoly allows several house rules:(y/n choice for each) free p
Rectong v1.0 by Mike Chambers =-=-=-=-=-=-=-=-=-=-=-=-=-=-= Just a fun little game I wrote in Qu...
+**[RightTriangle](righttriangle/index.md)**
+
+[🐝 T.A. Giles](t.a.-giles.md) 🔗 [geometry](geometry.md), [legacy](legacy.md)
+
+'Program (c) T.A.Giles - Mar 2001 'Right Angle Triangle Solver v 1.1 '640 x 480 graphics resolution
+
+**[Rotate](rotate/index.md)**
+
+[🐝 *missing*](author-missing.md) 🔗 [geometry](geometry.md), [legacy](legacy.md)
+
+Rotating circles.
+
+**[Rug](rug/index.md)**
+
+[🐝 *missing*](author-missing.md) 🔗 [graphics](graphics.md), [ascii](ascii.md), [legacy](legacy.md)
+
+Simple coloured ascii smilies.
+
+**[Scramble](scramble/index.md)**
+
+[🐝 *missing*](author-missing.md) 🔗 [game](game.md), [legacy](legacy.md)
+
+PRINT "Instructions:" PRINT STRING$(13, 196) PRINT " "; CHR$(254); " The object of the game is to...
+
+**[Screen Tester](screen-tester/index.md)**
+
+[🐝 patz2009](patz2009.md) 🔗 [graphics](graphics.md), [utility](utility.md), [legacy](legacy.md)
+
+' PQBC Screen Tester '-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-...
+
**[ShootUp](shootup/index.md)**
[🐝 Nixon](nixon.md) 🔗 [game](game.md), [legacy](legacy.md)
@@ -254,20 +320,104 @@ The legendary fractal.
' ²±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±² ' ² Simpire Beta ² ' ²±±±±±±±±±±±±±±±±±±...
+**[SkyDiver](skydiver/index.md)**
+
+[🐝 Jeremy Ruten](jeremy-ruten.md) 🔗 [game](game.md), [legacy](legacy.md)
+
+PRINT "Welcome to Skydiver!" PRINT "The object of the game is to" PRINT "jump out of your airplan...
+
**[Space Invaders](space-invaders/index.md)**
[🐝 anarky](anarky.md) 🔗 [game](game.md), [space invaders](space-invaders.md), [legacy](legacy.md)
Taito's Space Invaders ## The Invaders march ... #### Bom bom bom bom ... ###...
+**[Square Counter](square-counter/index.md)**
+
+[🐝 Paulunknown](paulunknown.md) 🔗 [legacy](legacy.md)
+
+PRINT " This is a program used to count squares or rectangles for" PRINT " people who don't wa...
+
+**[SSaver](ssaver/index.md)**
+
+[🐝 *missing*](author-missing.md) 🔗 [screensaver](screensaver.md), [legacy](legacy.md)
+
+Filled circle screensaver.
+
+**[Star Battles](star-battles/index.md)**
+
+[🐝 *missing*](author-missing.md) 🔗 [game](game.md), [2 player](2-player.md), [legacy](legacy.md)
+
+Two players battle in starships.
+
+**[Stones](stones/index.md)**
+
+[🐝 *missing*](author-missing.md) 🔗 [game](game.md), [legacy](legacy.md)
+
+
+
+**[Sudoku](sudoku/index.md)**
+
+[🐝 *missing*](author-missing.md) 🔗 [legacy](legacy.md)
+
+Sudoku solver.
+
**[Temperature Conversion](temperature-conversion/index.md)**
[🐝 *missing*](author-missing.md) 🔗 [science](science.md), [legacy](legacy.md)
REM This is a program that converts Fahrenheit temperatures to Celsius REM temperatures.
+**[Temple](temple/index.md)**
+
+[🐝 John Belew](john-belew.md) 🔗 [game](game.md), [legacy](legacy.md)
+
+710 REM **************************************************** 720 REM * WRITTEN BY JOHN BEL...
+
+**[Time](time/index.md)**
+
+[🐝 *missing*](author-missing.md) 🔗 [clock](clock.md), [legacy](legacy.md)
+
+Simple date/time program.
+
+**[Torneo NDC](torneo-ndc/index.md)**
+
+[🐝 FGR SOFTWARE](fgr-software.md) 🔗 [game](game.md), [legacy](legacy.md)
+
+Ascii-based spaceship game with music. ' ' FGR SOFTWARE ' ...
+
+**[Vektor](vektor/index.md)**
+
+[🐝 *missing*](author-missing.md) 🔗 [geometry](geometry.md), [legacy](legacy.md)
+
+Fly around a plane of dots. PRINT "Welcome to my second go at displaying" PRINT "points in a thr...
+
+**[VSphere](vsphere/index.md)**
+
+[🐝 *missing*](author-missing.md) 🔗 [geometry](geometry.md), [legacy](legacy.md)
+
+'This is a program that calculates the volume of a sphere.
+
**[Wetspot](wetspot/index.md)**
[🐝 Angelo Mottola](angelo-mottola.md) 🔗 [game](game.md), [legacy](legacy.md)
' WETSPOT v0.9 ' by Angelo Mottola (C) 1996 ' ' -------------------------------------------------...
+
+**[Wumpus](wumpus/index.md)**
+
+[🐝 *missing*](author-missing.md) 🔗 [game](game.md), [legacy](legacy.md)
+
+375 REM *** INSTRUCTIONS *** PRINT "WELCOME TO 'HUNT THE WUMPUS'" PRINT " THE WUMPUS LIVES IN A C...
+
+**[X-Wing](x-wing/index.md)**
+
+[🐝 DATATECH](datatech.md) 🔗 [game](game.md), [star wars](star-wars.md), [legacy](legacy.md)
+
+PRINT "ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿" PRINT "³ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿³"...
+
+**[Zodiac](zodiac/index.md)**
+
+[🐝 Paulunknown](paulunknown.md) 🔗 [game](game.md), [legacy](legacy.md)
+
+PRINT "Game created by Paulunknown" PRINT "Thanks for playing. Please give me some comments on th...
diff --git a/samples/leif-j.-burrow.md b/samples/leif-j.-burrow.md
index fde70294..88957b66 100644
--- a/samples/leif-j.-burrow.md
+++ b/samples/leif-j.-burrow.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY LEIF J. BURROW
diff --git a/samples/lens-simulator/index.md b/samples/lens-simulator/index.md
index 373f7bc3..d27648b8 100644
--- a/samples/lens-simulator/index.md
+++ b/samples/lens-simulator/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: LENS SIMULATOR
diff --git a/samples/letter-blast/index.md b/samples/letter-blast/index.md
index ec93a568..23980429 100644
--- a/samples/letter-blast/index.md
+++ b/samples/letter-blast/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: LETTER BLAST
diff --git a/samples/letter.md b/samples/letter.md
index f3b85d55..2ea28087 100644
--- a/samples/letter.md
+++ b/samples/letter.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: LETTER
diff --git a/samples/lfx/index.md b/samples/lfx/index.md
index 25ac15f3..c0346e5c 100644
--- a/samples/lfx/index.md
+++ b/samples/lfx/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: LFX
diff --git a/samples/lightning-one/index.md b/samples/lightning-one/index.md
index 44655e49..d5928046 100644
--- a/samples/lightning-one/index.md
+++ b/samples/lightning-one/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: LIGHTNING ONE
diff --git a/samples/lightning-two/index.md b/samples/lightning-two/index.md
index 193a276a..b2397f87 100644
--- a/samples/lightning-two/index.md
+++ b/samples/lightning-two/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: LIGHTNING TWO
diff --git a/samples/lights.md b/samples/lights.md
index a4cca38f..b38621e9 100644
--- a/samples/lights.md
+++ b/samples/lights.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: LIGHTS
diff --git a/samples/lightson/index.md b/samples/lightson/index.md
index 4d17ec29..b410b859 100644
--- a/samples/lightson/index.md
+++ b/samples/lightson/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: LIGHTSON
diff --git a/samples/line.md b/samples/line.md
new file mode 100644
index 00000000..9b805f94
--- /dev/null
+++ b/samples/line.md
@@ -0,0 +1,9 @@
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+
+## SAMPLES: LINE
+
+**[Thick Lines](thick-lines/index.md)**
+
+[🐝 Fellippe Heitor](fellippe-heitor.md) 🔗 [graphics](graphics.md), [line](line.md)
+
+This can be used to draw a line with a specified lineWidth.
diff --git a/samples/lines-intersecting/index.md b/samples/lines-intersecting/index.md
index 66d8b94a..a0ccd775 100644
--- a/samples/lines-intersecting/index.md
+++ b/samples/lines-intersecting/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: LINES INTERSECTING
diff --git a/samples/lineswing/index.md b/samples/lineswing/index.md
index 5caaa8db..ee2f50e0 100644
--- a/samples/lineswing/index.md
+++ b/samples/lineswing/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: LINESWING
diff --git a/samples/lisp-interpreter/index.md b/samples/lisp-interpreter/index.md
index f0d7f5b5..c9824315 100644
--- a/samples/lisp-interpreter/index.md
+++ b/samples/lisp-interpreter/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: LISP INTERPRETER
diff --git a/samples/lisp.md b/samples/lisp.md
index 77951727..b2e59ccf 100644
--- a/samples/lisp.md
+++ b/samples/lisp.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: LISP
diff --git a/samples/lissajous-curve-table/index.md b/samples/lissajous-curve-table/index.md
index d375fc05..83740b05 100644
--- a/samples/lissajous-curve-table/index.md
+++ b/samples/lissajous-curve-table/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: LISSAJOUS CURVE TABLE
diff --git a/samples/lissajous-screensaver/index.md b/samples/lissajous-screensaver/index.md
index 59e6dad9..bc16578f 100644
--- a/samples/lissajous-screensaver/index.md
+++ b/samples/lissajous-screensaver/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: LISSAJOUS SCREENSAVER
@@ -16,16 +16,9 @@
'------------------------------------------------------------------------
```
-### QBjs
-
-> Please note that QBjs is still in early development and support for these examples is extremely experimental (meaning will most likely not work). With that out of the way, give it a try!
-
-* [LOAD "lissaj.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?src=https://qb64.com/samples/lissajous-screensaver/src/lissaj.bas)
-* [RUN "lissaj.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?mode=auto&src=https://qb64.com/samples/lissajous-screensaver/src/lissaj.bas)
-* [PLAY "lissaj.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?mode=play&src=https://qb64.com/samples/lissajous-screensaver/src/lissaj.bas)
-
### File(s)
* [lissaj.bas](src/lissaj.bas)
+* [lissa_orig.bas](src/lissa_orig.bas)
🔗 [screensaver](../screensaver.md), [9 lines](../9-lines.md)
diff --git a/samples/lissajous-screensaver/src/lissa_orig.bas b/samples/lissajous-screensaver/src/lissa_orig.bas
new file mode 100644
index 00000000..ecbffef4
--- /dev/null
+++ b/samples/lissajous-screensaver/src/lissa_orig.bas
@@ -0,0 +1,14 @@
+'Lissajous by Antoni Gual
+'for Rel's 9 LINER contest at QBASICNEWS.COM 1/2003
+'------------------------------------------------------------------------
+
+1 IF k = 0 THEN SCREEN 12 ELSE CLS
+2 i& = (i& + 1) AND &HFFFFF
+3 k = 6.3 * RND
+4 l = 6.3 * RND
+5 n% = (n% + 1) MOD 15
+6 FOR j& = 0 TO 100000
+7 PSET (320 + 300 * SIN(.01 * SIN(k) + j&), 240 + 200 * SIN(.01 * SIN(l) * j&)), n% + 1
+8 NEXT
+9 IF LEN(INKEY$) = 0 THEN GOTO 1
+
diff --git a/samples/loan-amortization/index.md b/samples/loan-amortization/index.md
index a1ed222b..8b1ef81b 100644
--- a/samples/loan-amortization/index.md
+++ b/samples/loan-amortization/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: LOAN AMORTIZATION
diff --git a/samples/lorenz-attractor/index.md b/samples/lorenz-attractor/index.md
index 6bdc4457..cada8a07 100644
--- a/samples/lorenz-attractor/index.md
+++ b/samples/lorenz-attractor/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: LORENZ ATTRACTOR
diff --git a/samples/lorenz.md b/samples/lorenz.md
index bd8eb868..dfe4ca5a 100644
--- a/samples/lorenz.md
+++ b/samples/lorenz.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: LORENZ
diff --git a/samples/lucid-drawing/index.md b/samples/lucid-drawing/index.md
index 145358ce..6070530c 100644
--- a/samples/lucid-drawing/index.md
+++ b/samples/lucid-drawing/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: LUCID DRAWING
diff --git a/samples/lucid.md b/samples/lucid.md
index 77b780bd..0f0c2925 100644
--- a/samples/lucid.md
+++ b/samples/lucid.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY LUCID
diff --git a/samples/luke.md b/samples/luke.md
index 3ff37a4b..57d36976 100644
--- a/samples/luke.md
+++ b/samples/luke.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY LUKE
@@ -7,3 +7,9 @@
[🐝 Luke](luke.md) 🔗 [automata](automata.md), [conway](conway.md)
Standard Conway's Game of Life simulation.
+
+**[SplitJoin](splitjoin/index.md)**
+
+[🐝 luke](luke.md) 🔗 [data management](data-management.md), [split](split.md)
+
+Given a string of words separated by spaces (or any other character), splits it into an array of ...
diff --git a/samples/m-azn.md b/samples/m-azn.md
index f996307f..66f6a5e3 100644
--- a/samples/m-azn.md
+++ b/samples/m-azn.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY M-AZN
diff --git a/samples/madness/index.md b/samples/madness/index.md
index de951b53..e6cbd121 100644
--- a/samples/madness/index.md
+++ b/samples/madness/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: MADNESS
diff --git a/samples/makebig/index.md b/samples/makebig/index.md
index d4b4d73c..c516c2af 100644
--- a/samples/makebig/index.md
+++ b/samples/makebig/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: MAKEBIG
diff --git a/samples/manadla/index.md b/samples/manadla/index.md
index 460a1b3a..c142ad4c 100644
--- a/samples/manadla/index.md
+++ b/samples/manadla/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: MANADLA
@@ -16,16 +16,9 @@
'------------------------------------------------------------------------
```
-### QBjs
-
-> Please note that QBjs is still in early development and support for these examples is extremely experimental (meaning will most likely not work). With that out of the way, give it a try!
-
-* [LOAD "mandala.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?src=https://qb64.com/samples/manadla/src/mandala.bas)
-* [RUN "mandala.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?mode=auto&src=https://qb64.com/samples/manadla/src/mandala.bas)
-* [PLAY "mandala.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?mode=play&src=https://qb64.com/samples/manadla/src/mandala.bas)
-
### File(s)
* [mandala.bas](src/mandala.bas)
+* [mandala_orig.bas](src/mandala_orig.bas)
🔗 [screensaver](../screensaver.md), [9 lines](../9-lines.md)
diff --git a/samples/manadla/src/mandala_orig.bas b/samples/manadla/src/mandala_orig.bas
new file mode 100644
index 00000000..54c2ac1d
--- /dev/null
+++ b/samples/manadla/src/mandala_orig.bas
@@ -0,0 +1,14 @@
+'Mandala by Antoni gual
+'for Rel's 9 LINER contest at QBASICNEWS.COM 1/2003
+'------------------------------------------------------------------------
+
+1 SCREEN 12
+2 v% = RND * 20 + 10
+3 REDIM VX%(v%), VY%(v%)
+4 FOR d1% = -1 TO v%
+5 FOR d2% = d1% + 1 TO v%
+6 IF d1% = -1 THEN VX%(d2%) = 320 + (SIN(6.283185 * (d2% / v%)) * 239) ELSE LINE (VX%(d1%), VY%(d1%))-(VX%(d2%), VY%(d2%)), (v% MOD 16) + 1
+7 IF d1% = -1 THEN VY%(d2%) = 240 + (COS(6.283185 * (d2% / v%)) * 239)
+8 NEXT d2%, d1%
+9 IF LEN(INKEY$) = 0 THEN GOTO 2
+
diff --git a/samples/mandelbrot-animator/index.md b/samples/mandelbrot-animator/index.md
index 660f9139..921f59dd 100644
--- a/samples/mandelbrot-animator/index.md
+++ b/samples/mandelbrot-animator/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: MANDELBROT ANIMATOR
diff --git a/samples/mandelbrot-set-2003/index.md b/samples/mandelbrot-set-2003/index.md
index 3d471955..f80b51f0 100644
--- a/samples/mandelbrot-set-2003/index.md
+++ b/samples/mandelbrot-set-2003/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: MANDELBROT SET 2003
@@ -16,16 +16,9 @@
'------------------------------------------------------------------------
```
-### QBjs
-
-> Please note that QBjs is still in early development and support for these examples is extremely experimental (meaning will most likely not work). With that out of the way, give it a try!
-
-* [LOAD "mandelb.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?src=https://qb64.com/samples/mandelbrot-set-2003/src/mandelb.bas)
-* [RUN "mandelb.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?mode=auto&src=https://qb64.com/samples/mandelbrot-set-2003/src/mandelb.bas)
-* [PLAY "mandelb.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?mode=play&src=https://qb64.com/samples/mandelbrot-set-2003/src/mandelb.bas)
-
### File(s)
* [mandelb.bas](src/mandelb.bas)
+* [mandelb_orig.bas](src/mandelb_orig.bas)
🔗 [fractal](../fractal.md), [mandelbrot](../mandelbrot.md), [9 lines](../9-lines.md)
diff --git a/samples/mandelbrot-set-2003/src/mandelb_orig.bas b/samples/mandelbrot-set-2003/src/mandelb_orig.bas
new file mode 100644
index 00000000..c0e30584
--- /dev/null
+++ b/samples/mandelbrot-set-2003/src/mandelb_orig.bas
@@ -0,0 +1,15 @@
+'MANDELBROT by Antoni Gual 2003
+'for Rel's 9 LINER contest at QBASICNEWS.COM 1/2003
+'------------------------------------------------------------------------
+
+'DECLARE SUB ffix
+'ffix
+1 IF x& = 0 THEN SCREEN 13 ELSE iter% = 0
+2 x& = (x& + 123) MOD 64000
+3 im2 = im * im
+4 IF iter% THEN im = 2 * re * im + (CSNG(x& \ 320) / 100 - 1) ELSE im = 0
+5 IF iter% THEN re = re * re - im2 + (CSNG(x& MOD 320) / 120 - 1.9) ELSE re = 0
+6 iter% = iter% + 1
+7 IF ABS(re) + ABS(im) > 2 OR iter% > 254 THEN PSET (x& MOD 320, x& \ 320), iter% ELSE GOTO 3
+8 IF LEN(INKEY$) = 0 THEN GOTO 1
+
diff --git a/samples/mandelbrot-set-2008/index.md b/samples/mandelbrot-set-2008/index.md
index 2e2037d3..ea1d9558 100644
--- a/samples/mandelbrot-set-2008/index.md
+++ b/samples/mandelbrot-set-2008/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: MANDELBROT SET 2008
diff --git a/samples/mandelbrot-spiral/index.md b/samples/mandelbrot-spiral/index.md
index 01e39602..cea853c4 100644
--- a/samples/mandelbrot-spiral/index.md
+++ b/samples/mandelbrot-spiral/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: MANDELBROT SPIRAL
diff --git a/samples/mandelbrot-zoomer/index.md b/samples/mandelbrot-zoomer/index.md
index dbf02002..7c4d2746 100644
--- a/samples/mandelbrot-zoomer/index.md
+++ b/samples/mandelbrot-zoomer/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: MANDELBROT ZOOMER
diff --git a/samples/mandelbrot.md b/samples/mandelbrot.md
index 41502b6d..2512639a 100644
--- a/samples/mandelbrot.md
+++ b/samples/mandelbrot.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: MANDELBROT
diff --git a/samples/maptriangle-in-3d/index.md b/samples/maptriangle-in-3d/index.md
index 2014f2e0..d710518f 100644
--- a/samples/maptriangle-in-3d/index.md
+++ b/samples/maptriangle-in-3d/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: MAPTRIANGLE IN 3D
diff --git a/samples/maptriangle.md b/samples/maptriangle.md
index 68e92119..d2fc89ea 100644
--- a/samples/maptriangle.md
+++ b/samples/maptriangle.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: MAPTRIANGLE
diff --git a/samples/mario.md b/samples/mario.md
index e6d1c6ca..bf00c0f8 100644
--- a/samples/mario.md
+++ b/samples/mario.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: MARIO
diff --git a/samples/martix.md b/samples/martix.md
new file mode 100644
index 00000000..349f7296
--- /dev/null
+++ b/samples/martix.md
@@ -0,0 +1,9 @@
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+
+## SAMPLES: MARTIX
+
+**[Matrix](matrix/index.md)**
+
+[🐝 Antoni Gual](antoni-gual.md) 🔗 [martix](martix.md), [9 lines](9-lines.md)
+
+'Matrix by Antoni Gual agual@eic.ictnet.es 'for Rel's 9 LINER contest at QBASICNEWS.COM 1/200...
diff --git a/samples/maryann/img/maryann-screenshot.png b/samples/maryann/img/maryann-screenshot.png
new file mode 100644
index 00000000..fa4b6abb
Binary files /dev/null and b/samples/maryann/img/maryann-screenshot.png differ
diff --git a/samples/maryann/index.md b/samples/maryann/index.md
new file mode 100644
index 00000000..9bf705e7
--- /dev/null
+++ b/samples/maryann/index.md
@@ -0,0 +1,34 @@
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+
+## SAMPLE: MARYANN
+
+![maryann-screenshot.png](img/maryann-screenshot.png)
+
+### Author
+
+[🐝 Donald Foster](../donald-foster.md)
+
+### Description
+
+```text
+Maryann is a board game I designed and named it after my wife. I put together a board game that combine rules, features and characteristics of different board games.
+
+The game is played on an 8x8 checkered board with 8 round discs lined up on each back row with arrows on top. The arrows point to the location where it can move to next. Each players turn consists of 2 moves. Moves consists on either one of the following: rotate player's piece, move a piece 1 space up,down, right, left, or diagonal, jump own pieces diagonal or capture opponent's piece up, down, left or right. A piece can be rotated on the same move, counts as 2 moves, Can move 1 piece twice or 2 pieces once. As pieces are removed from rows and columns the outer rows and columns are removed from the board. The winner is the player who captures their opponents first.
+```
+
+### QBjs
+
+> Please note that QBjs is still in early development and support for these examples is extremely experimental (meaning will most likely not work). With that out of the way, give it a try!
+
+* [LOAD "maryann.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?src=https://qb64.com/samples/maryann/src/maryann.bas)
+* [RUN "maryann.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?mode=auto&src=https://qb64.com/samples/maryann/src/maryann.bas)
+* [PLAY "maryann.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?mode=play&src=https://qb64.com/samples/maryann/src/maryann.bas)
+
+### File(s)
+
+* [maryann.bas](src/maryann.bas)
+
+🔗 [game](../game.md)
+
+
+Reference: [qb64forum](https://qb64forum.alephc.xyz/index.php?topic=124.0)
diff --git a/samples/maryann/src/maryann.bas b/samples/maryann/src/maryann.bas
new file mode 100644
index 00000000..707a04ea
--- /dev/null
+++ b/samples/maryann/src/maryann.bas
@@ -0,0 +1,359 @@
+OPTION _EXPLICIT
+
+' I used a code snippet by bplus modified to enlarge the characters on the screen.
+
+_TITLE "Maryann - Designed and Programmed by Donald L. Foster Jr. 2018 - Code Snippet by bplus"
+
+SCREEN _NEWIMAGE(1014, 735, 256)
+
+_PALETTECOLOR 1, _RGB32(6, 55, 255) ' Player 1 Piece Color
+_PALETTECOLOR 2, _RGB32(255, 61, 0) ' Player 2 Piece Color
+_PALETTECOLOR 3, _RGB32(127, 127, 127) ' Board Background Color
+_PALETTECOLOR 4, _RGB32(244, 244, 11) ' Arrow Color
+_PALETTECOLOR 5, _RGB32(80, 80, 80) ' Cursor Color
+
+_LIMIT 10
+
+DIM A AS STRING
+DIM V AS _UNSIGNED INTEGER
+DIM W AS _UNSIGNED INTEGER
+DIM X AS _UNSIGNED INTEGER
+DIM Y AS _UNSIGNED _BYTE
+DIM Z AS _UNSIGNED _BYTE
+
+DIM X1 AS _UNSIGNED INTEGER
+DIM X2 AS _UNSIGNED INTEGER
+DIM X3 AS _UNSIGNED INTEGER
+DIM X4 AS _UNSIGNED INTEGER
+
+DIM Player AS _UNSIGNED _BYTE
+DIM Opponent AS _UNSIGNED _BYTE
+DIM Winner AS _UNSIGNED _BYTE
+DIM MovesLeft AS _UNSIGNED _BYTE
+DIM CanSelect AS _UNSIGNED _BYTE
+DIM Rotation AS _UNSIGNED _BYTE
+DIM SquareColor1 AS _UNSIGNED _BYTE
+DIM SquareColor2 AS _UNSIGNED _BYTE
+
+DIM BoardX1 AS _UNSIGNED INTEGER
+DIM BoardY1 AS _UNSIGNED INTEGER
+DIM BoardX2 AS _UNSIGNED INTEGER
+DIM BoardY2 AS _UNSIGNED INTEGER
+
+DIM Rotate AS _UNSIGNED _BYTE
+
+DIM TopBoardEdge AS _UNSIGNED _BYTE
+DIM BottomBoardEdge AS _UNSIGNED _BYTE
+DIM LeftBoardEdge AS _UNSIGNED _BYTE
+DIM RightBoardEdge AS _UNSIGNED _BYTE
+
+DIM Row1 AS _UNSIGNED _BYTE
+DIM Column1 AS _UNSIGNED _BYTE
+DIM Row2 AS _UNSIGNED _BYTE
+DIM Column2 AS _UNSIGNED _BYTE
+
+DIM PlayerColor(2) AS INTEGER
+DIM Pieces(2) AS _UNSIGNED _BYTE
+
+DIM BoardX(8, 8) AS _UNSIGNED INTEGER
+DIM BoardY(8, 8) AS _UNSIGNED INTEGER
+DIM BoardPlayer(8, 8) AS _UNSIGNED _BYTE
+DIM BoardRotate(8, 8) AS _UNSIGNED _BYTE
+DIM Playable(8, 8) AS _UNSIGNED _BYTE
+DIM RotationX(8) AS _UNSIGNED INTEGER
+DIM RotationY(8) AS _UNSIGNED INTEGER
+
+DIM Arrow AS STRING
+DIM Cursor AS STRING
+DIM Cursor1 AS STRING
+DIM TA$(8)
+DIM Message AS STRING
+
+Player = 1: Opponent = 2
+Pieces(1) = 8: Pieces(2) = 8
+PlayerColor(1) = 1: PlayerColor(2) = 2
+
+TopBoardEdge = 1: BottomBoardEdge = 8: LeftBoardEdge = 1: RightBoardEdge = 8
+
+' Setup Pieces on Board
+DATA 6,8,6,8,6,8,5,1,5,1,4,2,4,2,4,2
+FOR Z = 1 TO 8: BoardPlayer(1, Z) = 2: BoardPlayer(8, Z) = 1: READ BoardRotate(1, Z), BoardRotate(8, Z): NEXT
+
+Cursor$ = "TA0BU43BL43C5D86R86U86L86BF2D82R82U82L82BU1P5,5"
+Cursor1$ = "TA0BU43BL43C0D86R86U86L86BF2D82R82U82L82BU1P0,0"
+Arrow$ = "BD20BL10C4R20U20R10H20G20R10D20R10BU10P4,4"
+TA$(1) = "TA0": TA$(2) = "TA45": TA$(3) = "TA90": TA$(4) = "TA135": TA$(5) = "TA180": TA$(6) = "TA225": TA$(7) = "TA270": TA$(8) = "TA315"
+
+' Draw Game Title Message
+Message$ = " Maryann ": X1 = 727: X2 = 2: X3 = 15: X4 = 4: GOSUB DrawMessage
+LINE (0, 0)-(100, 30), 0, BF
+
+' Draw Board
+LINE (10, 10)-(724, 724), 3, BF: ' LINE (12, 12)-(723, 723), 3, BF
+X = 59
+FOR Z = 1 TO 8
+ W = 59
+ FOR Y = 1 TO 8
+ IF (Z + Y) / 2 = FIX((Z + Y) / 2) THEN V = 0 ELSE V = 15
+ LINE (W - 43, X - 43)-(W + 43, X + 43), V, BF
+ IF BoardPlayer(Z, Y) > 0 THEN X1 = W: X2 = X: X3 = PlayerColor(BoardPlayer(Z, Y)): X4 = BoardRotate(Z, Y): GOSUB DrawPiece
+ BoardX(Z, Y) = W: BoardY(Z, Y) = X
+ W = W + 88
+ NEXT
+ X = X + 88
+NEXT
+
+
+StartGame:
+MovesLeft = 2
+
+' Draw Player Indicator
+X1 = 863: X2 = 130: X3 = Player: X4 = 1: GOSUB DrawPiece
+LOCATE 12, 105: PRINT "Player"; Player;
+
+MovesLeft: LOCATE 45, 104: PRINT "Moves Left:"; MovesLeft;
+
+LOCATE 16, 100: PRINT " Choose a Piece. ";
+
+ChooseAPieceInput:
+DO WHILE _MOUSEINPUT
+ FOR Z = 1 TO 8
+ FOR Y = 1 TO 8
+ IF _MOUSEBUTTON(1) = -1 AND _MOUSEX > BoardX(Z, Y) - 44 AND _MOUSEX < BoardX(Z, Y) + 44 AND _MOUSEY > BoardY(Z, Y) - 44 AND _MOUSEY < BoardY(Z, Y) + 44 THEN
+ IF BoardPlayer(Z, Y) = Player THEN Row1 = Z: Column1 = Y: GOSUB ReleaseMouseButton: GOTO EndChoice1
+ END IF
+ NEXT
+ NEXT
+LOOP
+GOTO ChooseAPieceInput
+
+EndChoice1:
+BoardX1 = BoardX(Row1, Column1): BoardY1 = BoardY(Row1, Column1): Rotate = BoardRotate(Row1, Column1)
+
+' Get Color Row1 Column1 Square
+IF (Row1 + Column1) / 2 = FIX((Row1 + Column1) / 2) THEN SquareColor1 = 0 ELSE SquareColor1 = 15
+
+' Draw Cursor After Piece is Selected
+PSET (BoardX(Row1, Column1), BoardY(Row1, Column1)), 4: DRAW Cursor$
+
+' Set All Playable Locations to 0
+FOR Z = 1 TO 8: FOR Y = 1 TO 8: Playable(Z, Y) = 0: NEXT: NEXT
+
+' Get Playable Locations
+Playable(Row1, Column1) = 1
+
+ON Rotate GOSUB Check_Up, Check_Up_Left, Check_Left, Check_Down_Left, Check_Down, Check_Down_Right, Check_Right, Check_Up_Right
+
+LOCATE 16, 100: PRINT "Choose a Location. ";
+
+' Draw Piece Rotations
+X = 0: V = 1
+FOR Z = 1 TO 7 STEP 2
+ W = 0
+ FOR Y = 0 TO 1
+ X1 = 810 + W: X2 = 315 + X: X3 = Player: X4 = V: GOSUB DrawPiece
+ RotationX(Z + Y) = 810 + W: RotationY(Z + Y) = 315 + X
+ W = W + 110: V = V + 1
+ NEXT
+ X = X + 110
+NEXT
+
+LOCATE 16, 100: PRINT "Choose a Rotation. ";
+
+GetRotationMouseInput:
+DO WHILE _MOUSEINPUT
+ FOR Z = 1 TO 8
+ IF _MOUSEX > RotationX(Z) - 44 AND _MOUSEX < RotationX(Z) + 44 AND _MOUSEY > RotationY(Z) - 44 AND _MOUSEY < RotationY(Z) + 44 THEN
+ CanSelect = 1: PSET (RotationX(Z), RotationY(Z)), 4: DRAW Cursor$
+ ELSE
+ CanSelect = 0: PSET (RotationX(Z), RotationY(Z)), 4: DRAW Cursor1$
+ END IF
+ IF _MOUSEBUTTON(1) = -1 AND CanSelect = 1 THEN Rotation = Z: GOSUB ReleaseMouseButton: GOTO EndChoice2
+ NEXT
+LOOP
+GOTO GetRotationMouseInput
+
+EndChoice2:
+IF Rotation <> Rotate THEN MovesLeft = MovesLeft - 1: LOCATE 45, 104: PRINT "Moves Left:"; MovesLeft; 'ELSE Rotation = Rotate
+
+IF MovesLeft = 0 THEN
+ ' Remove Piece Rotations
+ LINE (766, 271)-(964, 689), 0, BF
+
+ ' Set Current Piece To New Rotation Position
+ BoardRotate(Row1, Column1) = Rotation
+
+ ' Remove Cursor and Piece From Current Location
+ LINE (BoardX1 - 43, BoardY1 - 43)-(BoardX1 + 43, BoardY1 + 43), SquareColor1, BF
+
+ ' Redraw Piece in Current Position With New Rotation
+ X1 = BoardX1: X2 = BoardY1: X3 = Player: X4 = Rotation: GOSUB DrawPiece: GOTO EndTurn
+END IF
+
+ChooseALocationInput:
+DO WHILE _MOUSEINPUT
+ FOR Z = 1 TO 8
+ FOR Y = 1 TO 8
+ IF _MOUSEBUTTON(1) = -1 AND _MOUSEX > BoardX(Z, Y) - 44 AND _MOUSEX < BoardX(Z, Y) + 44 AND _MOUSEY > BoardY(Z, Y) - 44 AND _MOUSEY < BoardY(Z, Y) + 44 THEN
+ IF Playable(Z, Y) = 1 THEN Row2 = Z: Column2 = Y: GOSUB ReleaseMouseButton: GOTO EndChoice3
+ END IF
+ NEXT
+ NEXT
+LOOP
+GOTO ChooseALocationInput
+
+EndChoice3:
+
+' Get New Location Information
+BoardX2 = BoardX(Row2, Column2): BoardY2 = BoardY(Row2, Column2)
+IF (Row2 + Column2) / 2 = FIX((Row2 + Column2) / 2) THEN SquareColor2 = 0 ELSE SquareColor2 = 15
+
+' Piece stayed at Same Location
+IF Row2 = Row1 AND Column2 = Column1 THEN
+ LINE (BoardX1 - 43, BoardY1 - 43)-(BoardX1 + 43, BoardY1 + 43), SquareColor1, BF
+ BoardRotate(Row2, Column2) = Rotation: X1 = BoardX2: X2 = BoardY2: X3 = Player: X4 = Rotation: GOSUB DrawPiece
+ LINE (766, 271)-(964, 689), 0, BF: GOTO MovesLeft
+END IF
+
+' Remove Piece Rotations
+LINE (766, 271)-(964, 689), 0, BF
+
+' Check If Opponent's Piece is Captured
+IF BoardPlayer(Row2, Column2) = Opponent THEN Pieces(Opponent) = Pieces(Opponent) - 1
+
+' Assign New Location to Player
+BoardPlayer(Row2, Column2) = Player: BoardRotate(Row2, Column2) = Rotation
+
+' Set Old Location to 0
+BoardPlayer(Row1, Column1) = 0: BoardRotate(Row1, Column1) = 0
+
+' Clear Piece and Cursors From Old Location
+LINE (BoardX1 - 43, BoardY1 - 43)-(BoardX1 + 43, BoardY1 + 43), SquareColor1, BF
+
+' Clear New Location
+LINE (BoardX2 - 43, BoardY2 - 43)-(BoardX2 + 43, BoardY2 + 43), SquareColor2, BF
+
+' Redraw Piece at New Location
+X1 = BoardX2: X2 = BoardY2: X3 = Player: X4 = Rotation: GOSUB DrawPiece
+
+' Substract 1 from MovesLeft
+MovesLeft = MovesLeft - 1: LOCATE 45, 104: PRINT "Moves Left:"; MovesLeft;
+
+' Check if a Row or Column is Empty
+X1 = 0: X2 = 0: X3 = 0: X4 = 0
+
+FOR Z = 1 TO 8
+ IF BoardPlayer(TopBoardEdge, Z) > 0 THEN X1 = 1
+ IF BoardPlayer(BottomBoardEdge, Z) > 0 THEN X2 = 1
+ IF BoardPlayer(Z, LeftBoardEdge) > 0 THEN X3 = 1
+ IF BoardPlayer(Z, RightBoardEdge) > 0 THEN X4 = 1
+NEXT
+
+IF X1 = 0 THEN Y = TopBoardEdge: FOR Z = 1 TO 8: LINE (BoardX(Y, Z) - 43, BoardY(Y, Z) - 43)-(BoardX(Y, Z) + 43, BoardY(Y, Z) + 43), 3, BF: NEXT: TopBoardEdge = TopBoardEdge + 1
+IF X2 = 0 THEN Y = BottomBoardEdge: FOR Z = 1 TO 8: LINE (BoardX(Y, Z) - 43, BoardY(Y, Z) - 43)-(BoardX(Y, Z) + 43, BoardY(Y, Z) + 43), 3, BF: NEXT: BottomBoardEdge = BottomBoardEdge - 1
+IF X3 = 0 THEN Y = LeftBoardEdge: FOR Z = 1 TO 8: LINE (BoardX(Z, Y) - 43, BoardY(Z, Y) - 43)-(BoardX(Z, Y) + 43, BoardY(Z, Y) + 43), 3, BF: NEXT: LeftBoardEdge = LeftBoardEdge + 1
+IF X4 = 0 THEN Y = RightBoardEdge: FOR Z = 1 TO 8: LINE (BoardX(Z, Y) - 43, BoardY(Z, Y) - 43)-(BoardX(Z, Y) + 43, BoardY(Z, Y) + 43), 3, BF: NEXT: RightBoardEdge = RightBoardEdge - 1
+
+' Check for Winner
+IF Pieces(Opponent) = 0 THEN GOTO Winner
+
+' Check if Still Have More Moves
+IF MovesLeft > 0 THEN GOTO MovesLeft
+
+EndTurn:
+SWAP Player, Opponent: GOTO StartGame
+
+
+DrawPiece:
+CIRCLE (X1, X2), 36, X3: PAINT (X1, X2), X3
+PSET (X1, X2), X3: DRAW TA$(X4) + Arrow$
+RETURN
+
+
+DrawMessage:
+COLOR 15, V: LOCATE 1, 1: PRINT Message$;
+W = 8 * LEN(Message$): X = 16
+
+FOR Y = 0 TO X
+ FOR Z = 0 TO W
+ IF POINT(Z, Y) <> 0 THEN LINE (X1 + Z * X4, X2 + Y * X4)-(X1 + Z * X4 + X4, X2 + Y * X4 + X4), 15, BF
+ NEXT
+NEXT
+RETURN
+
+
+ReleaseMouseButton:
+DO WHILE _MOUSEINPUT
+ IF _MOUSEBUTTON(1) = 0 THEN RETURN
+LOOP
+GOTO ReleaseMouseButton
+
+
+Check_Up:
+IF Row1 - 1 >= TopBoardEdge THEN IF BoardPlayer(Row1 - 1, Column1) <> Player THEN Playable(Row1 - 1, Column1) = 1
+RETURN
+
+Check_Up_Left:
+IF Row1 - 1 >= TopBoardEdge AND Column1 - 1 >= LeftBoardEdge THEN
+ IF BoardPlayer(Row1 - 1, Column1 - 1) = 0 THEN Playable(Row1 - 1, Column1 - 1) = 1
+ IF BoardPlayer(Row1 - 1, Column1 - 1) = Player THEN
+ IF Row1 - 2 >= TopBoardEdge AND Column1 - 2 >= LeftBoardEdge THEN IF BoardPlayer(Row1 - 2, Column1 - 2) = 0 THEN Playable(Row1 - 2, Column1 - 2) = 1
+ END IF
+END IF
+RETURN
+
+Check_Left:
+IF Column1 - 1 >= LeftBoardEdge THEN IF BoardPlayer(Row1, Column1 - 1) <> Player THEN Playable(Row1, Column1 - 1) = 1
+RETURN
+
+Check_Down_Left:
+IF Row1 + 1 <= BottomBoardEdge AND Column1 - 1 >= LeftBoardEdge THEN
+ IF BoardPlayer(Row1 + 1, Column1 - 1) = 0 THEN Playable(Row1 + 1, Column1 - 1) = 1
+ IF BoardPlayer(Row1 + 1, Column1 - 1) = Player THEN
+ IF Row1 + 2 <= BottomBoardEdge AND Column1 - 2 >= LeftBoardEdge THEN IF BoardPlayer(Row1 + 2, Column1 - 2) = 0 THEN Playable(Row1 + 2, Column1 - 2) = 1
+ END IF
+END IF
+RETURN
+
+Check_Down:
+IF Row1 + 1 <= BottomBoardEdge THEN IF BoardPlayer(Row1 + 1, Column1) <> Player THEN Playable(Row1 + 1, Column1) = 1
+RETURN
+
+Check_Down_Right:
+IF Row1 + 1 <= BottomBoardEdge AND Column1 + 1 <= RightBoardEdge THEN
+ IF BoardPlayer(Row1 + 1, Column1 + 1) = 0 THEN Playable(Row1 + 1, Column1 + 1) = 1
+ IF BoardPlayer(Row1 + 1, Column1 + 1) = Player THEN
+ IF Row1 + 2 <= BottomBoardEdge AND Column1 + 2 <= RightBoardEdge THEN IF BoardPlayer(Row1 + 2, Column1 + 2) = 0 THEN Playable(Row1 + 2, Column1 + 2) = 1
+ END IF
+END IF
+RETURN
+
+Check_Right:
+IF Column1 + 1 <= RightBoardEdge THEN IF BoardPlayer(Row1, Column1 + 1) <> Player THEN Playable(Row1, Column1 + 1) = 1
+RETURN
+
+Check_Up_Right:
+IF Row1 - 1 >= TopBoardEdge AND Column1 + 1 <= RightBoardEdge THEN
+ IF BoardPlayer(Row1 - 1, Column1 + 1) = 0 THEN Playable(Row1 - 1, Column1 + 1) = 1
+ IF BoardPlayer(Row1 - 1, Column1 + 1) = Player THEN
+ IF Row1 - 2 >= TopBoardEdge AND Column1 + 2 <= RightBoardEdge THEN IF BoardPlayer(Row1 - 2, Column1 + 2) = 0 THEN Playable(Row1 - 2, Column1 + 2) = 1
+ END IF
+END IF
+RETURN
+
+
+Winner:
+LOCATE 16, 96: PRINT " Player"; Player; "is the Winner!! ";
+
+LOCATE 18, 96: PRINT "Play Another Game? ( Y / N )";
+
+LOCATE 45, 104: PRINT " ";
+
+GetYorN:
+A$ = UCASE$(INKEY$)
+IF A$ = "" THEN GOTO GetYorN
+IF A$ = "Y" THEN RUN
+IF A$ = "N" THEN SYSTEM
+GOTO GetYorN
+
+
diff --git a/samples/math.md b/samples/math.md
index 6a04bc29..b3806899 100644
--- a/samples/math.md
+++ b/samples/math.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: MATH
diff --git a/samples/matrix-effect/index.md b/samples/matrix-effect/index.md
index f173002e..c6375ec7 100644
--- a/samples/matrix-effect/index.md
+++ b/samples/matrix-effect/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: MATRIX EFFECT
diff --git a/samples/matrix.md b/samples/matrix.md
index 198384b4..96079b7e 100644
--- a/samples/matrix.md
+++ b/samples/matrix.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: MATRIX
diff --git a/samples/matrix/img/screenshot.png b/samples/matrix/img/screenshot.png
new file mode 100644
index 00000000..6f010b7c
Binary files /dev/null and b/samples/matrix/img/screenshot.png differ
diff --git a/samples/matrix/index.md b/samples/matrix/index.md
new file mode 100644
index 00000000..fe10656e
--- /dev/null
+++ b/samples/matrix/index.md
@@ -0,0 +1,31 @@
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+
+## SAMPLE: MATRIX
+
+![screenshot.png](img/screenshot.png)
+
+### Author
+
+[🐝 Antoni Gual](../antoni-gual.md)
+
+### Description
+
+```text
+'Matrix by Antoni Gual agual@eic.ictnet.es
+'for Rel's 9 LINER contest at QBASICNEWS.COM 1/2003
+'------------------------------------------------------------------------
+```
+
+### QBjs
+
+> Please note that QBjs is still in early development and support for these examples is extremely experimental (meaning will most likely not work). With that out of the way, give it a try!
+
+* [LOAD "matrix.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?src=https://qb64.com/samples/matrix/src/matrix.bas)
+* [RUN "matrix.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?mode=auto&src=https://qb64.com/samples/matrix/src/matrix.bas)
+* [PLAY "matrix.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?mode=play&src=https://qb64.com/samples/matrix/src/matrix.bas)
+
+### File(s)
+
+* [matrix.bas](src/matrix.bas)
+
+🔗 [martix](../martix.md), [9 lines](../9-lines.md)
diff --git a/samples/matrix/src/matrix.bas b/samples/matrix/src/matrix.bas
new file mode 100644
index 00000000..806185f0
--- /dev/null
+++ b/samples/matrix/src/matrix.bas
@@ -0,0 +1,16 @@
+'Matrix by Antoni Gual agual@eic.ictnet.es
+'for Rel's 9 LINER contest at QBASICNEWS.COM 1/2003
+'------------------------------------------------------------------------
+1 DEF SEG = &HB800
+2 FOR i% = 0 TO 159 STEP 4
+' adjust this speed constant for optimal effect
+' | 0 no speed ;) .05 should be too fast even for a 386
+' |
+3 IF RND < .0005 THEN j% = 3840 ELSE j% = -1
+4 IF j% > 0 THEN POKE j% + i%, PEEK(j% - 160 + i%)
+5 IF j% > 0 THEN j% = j% - 160
+6 IF j% > 0 THEN GOTO 4
+7 IF j% = 0 THEN IF RND > .3 THEN POKE i%, 96 * RND + 32 ELSE POKE i%, 32
+8 NEXT
+9 IF LEN(INKEY$) = 0 THEN GOTO 2
+
diff --git a/samples/matt-bross.md b/samples/matt-bross.md
index 3facce51..2619b22e 100644
--- a/samples/matt-bross.md
+++ b/samples/matt-bross.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY MATT BROSS
diff --git a/samples/matthew-river-knight.md b/samples/matthew-river-knight.md
index 077399a2..59be04d9 100644
--- a/samples/matthew-river-knight.md
+++ b/samples/matthew-river-knight.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY MATTHEW RIVER KNIGHT
diff --git a/samples/matthew.md b/samples/matthew.md
index f18017f5..d0cdf5b2 100644
--- a/samples/matthew.md
+++ b/samples/matthew.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY MATTHEW
diff --git a/samples/maze-of-misery/img/screenshot.png b/samples/maze-of-misery/img/screenshot.png
new file mode 100644
index 00000000..4996e8b8
Binary files /dev/null and b/samples/maze-of-misery/img/screenshot.png differ
diff --git a/samples/maze-of-misery/index.md b/samples/maze-of-misery/index.md
new file mode 100644
index 00000000..1cf6b2cb
--- /dev/null
+++ b/samples/maze-of-misery/index.md
@@ -0,0 +1,37 @@
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+
+## SAMPLE: MAZE OF MISERY
+
+![screenshot.png](img/screenshot.png)
+
+### Author
+
+[🐝 Steve M.](../steve-m..md)
+
+### Description
+
+```text
+'Maze of Misery
+'By Steve M. (c),May 5,01
+'****************
+
+'Please visit my web page at: www.angelfire.com/bc2/cuebasic/qpage.html
+'
+'Disclaimer: This program may not be distributed, modified or copied without
+'written permission from the author at yochatwitme@yahoo.com.
+'Not liable for system or hardware damage. Tho' I can assure you that you
+'won't experience any problems. Email me at yochatwitme@yahoo.com about
+'any concerns or difficulties you may be having.
+'Finally, you have my permission to post the program on your web page.
+'Hope you enjoy the game.
+'
+'Thanks. SM :)
+'Gbgames Chatname: QB4ever
+```
+
+### File(s)
+
+* [mzupd2.bas](src/mzupd2.bas)
+* [mzupd2_orig.bas](src/mzupd2_orig.bas)
+
+🔗 [game](../game.md), [maze](../maze.md)
diff --git a/samples/maze-of-misery/src/mzupd2.bas b/samples/maze-of-misery/src/mzupd2.bas
new file mode 100644
index 00000000..98f53067
--- /dev/null
+++ b/samples/maze-of-misery/src/mzupd2.bas
@@ -0,0 +1,1922 @@
+'Maze of Misery
+'By Steve M. (c),May 5,01
+'****************
+
+'Please visit my web page at: www.angelfire.com/bc2/cuebasic/qpage.html
+'
+'Disclaimer: This program may not be distributed, modified or copied without
+'written permission from the author at yochatwitme@yahoo.com.
+'Not liable for system or hardware damage. Tho' I can assure you that you
+'won't experience any problems. Email me at yochatwitme@yahoo.com about
+'any concerns or difficulties you may be having.
+'Finally, you have my permission to post the program on your web page.
+'Hope you enjoy the game.
+'
+'Thanks. SM :)
+'Gbgames Chatname: QB4ever
+
+$NoPrefix
+$Resize:Smooth
+
+Const FALSE = 0, TRUE = Not FALSE
+
+'CLEAR 2000, 2000
+Dim T$(150), Wall%(1 To 300), Wall2%(1 To 300), Wall3%(1 To 300)
+Dim Shared Player%(1 To 300), Maze$(768), Object$(20), Door%(1 To 300)
+Dim EDoor%(1 To 300), Keylock%(1 To 300), Clrobject%(1 To 300)
+'Dim Gold%(1 To 300)
+Dim Treasure%(1 To 300), Diamond%(1 To 300)
+'Dim Enemy%(1 To 300)
+Dim Diamond2%(1 To 300), Gem%(1 To 300)
+'Dim Enemydotpos(16)
+Dim Spider%(1 To 300), Spider2%(1 To 300)
+Dim Spike%(1 To 300), Spikemask%(1 To 300), Wallmask%(1 To 300)
+Dim Web%(1 To 300), Wcs(64, 1), Keyfl(64), Clrkey(64)
+Dim Spiderfr2%(1 To 300), Spiderpfr2%(1 To 300), Playerdeath%(1 To 300)
+'Dim Shared Reptxt%(1 To 3000)
+
+Start:
+X = 154: Y = 40: MatrixY = 14: MatrixX = 6: Lives = 5: Health = 9000
+En = 1: Dx = -30: Lx = -1: Dy = 1: SpacerX = 0: SpacerY = 0: EVL = 11
+CIX1 = 275: CIY1 = 145: CIY2 = 90: Rm = 2: Web = 20: Glow = 1: Adv = 0
+M2 = -1: V2x = 1: G = 1
+Health$ = "Good": M1$ = "Mazes of Misery": Time$ = "00:00:00"
+T$ = Chr$(0) + Chr$(63) + Chr$(48) + Chr$(48) + Chr$(60) + Chr$(48) + Chr$(48) + Chr$(48) + Chr$(0)
+Restore Wallcols: For A = 1 To 64: Read Wcs(A, 0): Next
+Restore Wallbord: For A = 1 To 64: Read Wcs(A, 1): Next
+
+BegindotMaze:
+
+'Setup array picture images
+
+Screen 12
+FullScreen SquarePixels , Smooth
+
+Randomize Timer
+GoSub Copydotwall: GoSub Cleardotplayer
+GoSub Copydotwall2: GoSub Cleardotplayer
+GoSub Copydotwall3: GoSub Cleardotplayer
+GoSub CopydotPlayer: GoSub Cleardotplayer
+GoSub CopydotCleardotObject 'This array clears the current image
+GoSub CopydotDoor: GoSub Cleardotplayer
+GoSub CopydotKeylock: GoSub Cleardotplayer
+GoSub CopydotTreasure: GoSub Cleardotplayer
+GoSub CopydotRing: GoSub Cleardotplayer
+GoSub CopydotRing2: GoSub Cleardotplayer
+GoSub CopydotGem: GoSub Cleardotplayer
+GoSub CopydotSpider: GoSub Cleardotplayer
+GoSub CopydotSpider2: GoSub Cleardotplayer
+GoSub CopydotWeb: GoSub Cleardotplayer
+GoSub CopydotSpike: GoSub Cleardotplayer
+SpacerX = 0: SpacerY = 0: GoSub Titledotscr
+Begin:
+frm = 1: Screen 12: Cls: GoSub Builddotmazes
+SpacerX = 0: SpacerY = 0: GoSub RoomdotCheck: GoSub Gamedotstatus
+r = StartdotA: SpacerX = 0: SpacerY = 0
+
+Kyboard:
+Do: Loop While Timer = oldtimer!
+oldtimer! = Timer
+For i = 1 To 100
+ GoSub Scandotmaze
+Next
+T$ = Mid$(Maze$(MatrixY), MatrixX, 1)
+If T$ = "L" And (CT >= 1 And CT <= 20) Then GoSub Shocked
+i$ = InKey$: If i$ = "" Then GoTo Kyboard
+
+Oldx = X: Oldy = Y: Matrixydotold = MatrixY: Matrixxdotold = MatrixX
+If Kytapfl < 1 Then
+ If i$ = Chr$(0) + "M" Then GoSub Cleardotman: X = X + 30: MatrixX = MatrixX + 1: If X > 574 Then X = 4: Rm = Rm + 8: MatrixY = MatrixY + 96: MatrixX = 1: GoSub RoomdotCheck
+ If i$ = Chr$(0) + "K" Then GoSub Cleardotman: X = X - 30: MatrixX = MatrixX - 1: If X < 4 Then X = 574: Rm = Rm - 8: MatrixY = MatrixY - 96: MatrixX = 20: GoSub RoomdotCheck
+ If i$ = Chr$(0) + "H" Then GoSub Cleardotman: Y = Y - 36: MatrixY = MatrixY - 1: If Y < 4 Then Rm = Rm - 1: GoSub RoomdotCheck
+ If i$ = Chr$(0) + "P" Then GoSub Cleardotman: Y = Y + 36: MatrixY = MatrixY + 1: If Y > 400 Then Rm = Rm + 1: GoSub RoomdotCheck
+Else
+ If i$ = "6" Then GoSub Cleardotman: X = X + 30: MatrixX = MatrixX + 1: If X > 574 Then X = 4: Rm = Rm + 8: MatrixY = MatrixY + 96: MatrixX = 1: GoSub RoomdotCheck
+ If i$ = "4" Then GoSub Cleardotman: X = X - 30: MatrixX = MatrixX - 1: If X < 4 Then X = 574: Rm = Rm - 8: MatrixY = MatrixY - 96: MatrixX = 20: GoSub RoomdotCheck
+ If i$ = "8" Then GoSub Cleardotman: Y = Y - 36: MatrixY = MatrixY - 1: If Y < 4 Then Rm = Rm - 1: GoSub RoomdotCheck
+ If i$ = "2" Then GoSub Cleardotman: Y = Y + 36: MatrixY = MatrixY + 1: If Y > 400 Then Rm = Rm + 1: GoSub RoomdotCheck
+End If
+If i$ = Chr$(27) Then i$ = "": GoSub Menulist
+T$ = Mid$(Maze$(MatrixY), MatrixX, 1)
+If T$ = "#" Or T$ = "@" Or T$ = "%" Or T$ = "W" Then GoSub Recalldotolddotposition
+If T$ = "B" And M > 11 Then GoSub Spiderdotbite
+If T$ = "L" And (CT >= 1 And CT <= 20) Then GoSub Shocked
+If T$ = "k" Then GoSub Keyfound
+If T$ = "E" Then GoTo Escaped
+If T$ = "D" Then Sx = X: Sy = Y: Svsx = Sx: Svsy = Sy: SMy = MatrixY: SMx = MatrixX: GoSub Recalldotolddotposition: GoSub Doordotroutine
+If T$ = "t" Then GoSub Treasuredotroutine
+If T$ = "g" Then GoSub Gemdotroutine
+If T$ = "r" Then GoSub Ringdotroutine
+If Flg Then GmdotTmr = Timer: DelTim = CPU * 15 + Sqr(2 / 2 + GmdotTmr + .6) + 800: For LL = 1 To DelTim: Next
+If frm > 100 Then frm = 1
+GoSub Displaydotman
+GoTo Kyboard
+
+Scandotmaze:
+B = B + 1
+T$ = Mid$(Maze$(r), B, 1): SPK$ = Mid$(Maze$(r), B, 1)
+GoSub SkipdotX: Cnt = Cnt + 1
+If T$ = "B" Or T$ = "S" Then Spx = SpacerX: Spy = SpacerY: GoSub Spiderdotroutine
+If T$ = "L" Then Lex = SpacerX: Ley = SpacerY: GoSub Electricdotroutine
+If T$ = "r" Then RingdotX = SpacerX: RingdotY = SpacerY + 6: GoSub Ringdotglow
+If SPK$ = "s" Then SpikeX = SpacerX: SpikeY = SpacerY + 6: GoSub SpikedotMoving
+If B < 20 Then Return
+B = 1: SpacerX = 0: SpacerY = SpacerY + 36
+If r < FinishdotA Then r = r + 1: Return
+r = StartdotA: SpacerX = 0: SpacerY = 0
+Return
+
+SkipdotX:
+SpacerX = SpacerX + 30
+Return
+
+Spiderdotroutine:
+frm = frm + 1
+If (T$ = "S") Then Poisondotspider = 1
+T$ = Mid$(Maze$(MatrixY), MatrixX, 1)
+If Demo Then T$ = Mid$(A$(Dmx), Dmy, 1)
+If (T$ = "B" Or T$ = "S") And M > 11 Then GoSub Spiderdotbite
+If T$ = "s" And M2 < 8 Then GoSub Spikedotstabb
+M = M + Vx: If M > 31 Then Vx = -1
+GoSub Showdotspider
+If M < 1 Then Vx = 1
+Line (Spx + 12, (Spy - Web))-(Spx + 12, (Spy - 10) + M), 8, BF
+For H = 1 To 800 - Adv + DelTim: Next
+Return
+
+SpikedotMoving:
+SPK$ = Mid$(Maze$(r), B, 1)
+M2 = M2 + V2x: If M2 > 25 Then V2x = -1
+If M2 < 1 Then V2x = 1
+If Wm < 1 Then Get (SpikeX, SpikeY + 36)-(SpikeX + 26, SpikeY + 71), Spikemask%(): Wm = 1
+Put (SpikeX, (SpikeY) + 11 + M2), Spike%(), PSet
+If Wm2 < 1 Then Get (SpikeX, SpikeY + 5 + M2)-(SpikeX + 18, SpikeY + 36 + M2), Wallmask%(): Wm2 = 1
+If T$ = "s" Then GoSub Displaydotman
+Put (SpikeX, SpikeY + 5 + M2), Wallmask%(), And 'spike mask
+Put (SpikeX, SpikeY + 36), Spikemask%(), PSet 'wall mask
+Return
+
+Showdotspider:
+If Poisondotspider Then
+ If Int(frm / 2) = frm / 2 Then
+ Put (Spx - 1, (Spy - 30) + 10 + M), Spiderpfr2%(), PSet: Poisondotspider = 0: Return
+ Else
+ Put (Spx - 1, (Spy - 30) + 10 + M), Spider2%(), PSet: Poisondotspider = 0: Return
+ End If
+
+Else
+ If Int(frm / 4) = frm / 4 Then
+ Put (Spx - 1, (Spy - 30) + 10 + M), Spiderfr2%(), PSet: Return
+ Else
+ Put (Spx - 1, (Spy - 30) + 10 + M), Spider%(), PSet
+ End If
+End If
+Return
+
+Showdotspike:
+Put (SpikeX, SpikeY + M2), Spike%(), PSet
+Return
+
+Electricdotroutine:
+CT = CT + 1: If CT >= 1 And CT <= 20 Then GoTo EStart
+If CT > 50 Then CT = 1
+Return
+
+EStart:
+Randomize Timer
+If G < 1 Then Gv = 1
+G = G + Gv: If G > 5 Then Gv = -1
+E1 = Rnd(6 * Rnd(0)): E2 = Rnd(6 * Rnd(0)): E3 = Fix(Rnd(6 * Rnd(0)))
+E4 = Fix(6 * Rnd(0)): E5 = Fix(6 * Rnd(0)): E6 = Fix(Rnd(6 * Rnd(0)))
+E7 = Fix(6 * Rnd(0)): E8 = Fix(6 * Rnd(0)): E9 = Fix(Rnd(6 * Rnd(0)))
+Line (Lex + E1, Ley + 4)-(Lex + E2 * (G + 3), Ley + 9), 14
+Line -(Lex + E3 + Sgn(G + 3), Ley + 15), 14
+Line -(Lex + E4 * (G + 3), Ley + 20), 14
+Line -(Lex + E5 + Sgn(G + 3), Ley + 26), 14
+Line -(Lex + E6 * (G + 3), Ley + 32), 14
+Line -(Lex + E7 + Sgn(G + 3), Ley + 38), 14
+For H = 1 To 150 - Adv / 4: Next
+Sx = SpacerX + 2: Sy = SpacerY + 4: GoSub Cleardotarea
+Return
+
+Spiderdotbite:
+GoSub Displaydotman: M$ = "Yow! I've been bitten!": PS = 40 - Len(M$) / 2
+Locate 30, PS: Print M$;: GoSub Hold: GoSub Clearline
+Put (X, Y), Playerdeath%(), PSet: Sleep 1: Put (X, Y), Clrobject%(), PSet
+Health = Health - Abs(75 * (T$ = "S") - 55)
+If Health < 1 Then Locate 30, PS + 4: Print "You died!";: Sleep 2: GoSub Clearline: GoTo Fin
+GoSub Gamedotstatus
+Return
+
+Spikedotstabb:
+GoSub Displaydotman: M$ = "Yarrgghh! I've been sheared!": PS = 40 - Len(M$) / 2
+Locate 30, PS: Print M$;: GoSub Hold: GoSub Clearline
+Put (X, Y), Playerdeath%(), PSet: Sleep 1: Put (X, Y), Clrobject%(), PSet
+Health = Health - Abs(75 * (T$ = "S") - 55)
+If Health < 1 Then Locate 30, PS + 4: Print "You died!";: Sleep 2: GoSub Clearline: GoTo Fin
+GoSub Gamedotstatus
+Return
+
+Shocked:
+GoSub Displaydotman: M$ = "Arrggghh! I've been shocked!": PS = 40 - Len(M$) / 2
+Locate 30, PS: Print M$;: GoSub Hold: GoSub Clearline
+Put (X, Y), Playerdeath%(), PSet: Sleep 1: Put (X, Y), Clrobject%(), PSet
+Health = Health - 25
+If Health < 1 Then Locate 30, 30: Print "You died!";: Sleep 2: GoSub Clearline: GoTo Fin
+GoSub Gamedotstatus
+Return
+
+Treasuredotroutine:
+GoSub Replacedotchar: GoSub Openeddotchest
+Return
+
+Ringdotroutine:
+Locate 30, 20: Print "You have found a diamond ring!";: GoSub Displaydotman
+Sleep 2: GoSub Replacedotchar: GoSub Clearline: GoSub Cleardotarea
+Fortune = 200: GoSub Tallydotpnts: GoSub Gamedotstatus
+Return
+
+Gemdotroutine:
+Locate 30, 20: Print "You have found a valuable gem!!";: GoSub Displaydotman
+Sleep 2: GoSub Replacedotchar: GoSub Clearline: GoSub Cleardotarea
+Fortune = 400: GoSub Tallydotpnts: GoSub Gamedotstatus
+Return
+
+Ringdotglow:
+If Glow Then Put (RingdotX, RingdotY), Diamond2%(), PSet: Glow = 0
+If Right$(Time$, 2) < "01" Then Return
+Glow = 1
+If Glow Then Put (RingdotX, RingdotY), Diamond%(), PSet: Glow = 0
+If Right$(Time$, 2) < "02" Then Return
+Time$ = "00:00:00": Glow = 1
+Return
+
+Replacedotchar:
+If T$ = "D" Then Sx = Svsx: Sy = Svsy: GoSub Cleardotarea
+Showy = SMy: Showx = SMx
+Sx = X: Sy = Y: SMy = MatrixY: SMx = MatrixX
+If (T$ <> "r" And T$ <> "g") Then GoSub Recalldotolddotposition: GoSub Displaydotman
+If T$ = "D" Then SMy = Showy: SMx = Showx
+Mid$(Maze$(SMy), SMx, 1) = Chr$(32)
+Return
+
+Displaydotman:
+Put (X, Y), Player%(), PSet: Return
+
+Recalldotolddotposition:
+X = Oldx: Y = Oldy: For A = 1 To 64
+ Barrier = 1 * (T$ = "D" And Unl And Rm = A And Keyfl(Rm))
+ If Barrier Then A = 1: Return
+Next
+
+Oldpl:
+MatrixX = Matrixxdotold: MatrixY = Matrixydotold
+Return
+
+Keyfound:
+For A = 1 To 64
+ Keyfl(Rm) = Abs(1 * (Rm = A)): Unl = 1
+ If Keyfl(Rm) And Unl Then A = 1: GoTo Keymes
+Next
+
+Keymes:
+Color 15: Locate 30, 9: Print "You have found the key. ";
+Print "Use it to unlock the door in this room.";:
+GoSub Replacedotchar: GoSub Cleardotarea
+Sleep 3: GoSub Clearline: Keys = Keys + 1: GoSub Gamedotstatus: Return
+
+Doordotroutine:
+For A = 1 To 64
+ Kyfd = 1 * (Rm = A And Keyfl(Rm)): If Kyfd Then A = 1: GoTo Available
+Next: Return
+
+Available:
+For A = 1 To 64
+ Clrkey = 1 * (Rm = A And Keyfl(Rm)): If Clrkey > 0 Then Keyfl(Rm) = 0: A = 1: GoTo DOpen
+Next
+
+DOpen:
+GoSub Displaydotman
+Locate 30, 20: Print "Good Job! You have opened the door.";: Sleep 3:
+GoSub Clearline: GoSub Replacedotchar: Unl = 0
+Keys = Keys - 1: GoSub Gamedotstatus
+Return
+
+Openeddotchest:
+Color 14: Tr = 1: Locate 29, 1: Print Space$(79);
+Locate 30, 20: Print "You have found a treasure chest!";
+Sleep 2: GoSub Clearline
+Randomize Timer: Length = Fix(16 * Rnd(1)) + 1: Restore Makedotobj
+N = Fix(50 * Rnd(1)) + 2
+For T = 1 To Length: Read Object$(T): Next
+L = Len(Object$(Length)): O$ = Mid$(Object$(Length), 3, L)
+If Left$(O$, 2) = "No" Or Left$(O$, 3) = "Wat" Then
+ Message$ = ""
+Else
+ Message$ = "a "
+End If
+
+Locate 30, 20: Print "It contains "; Message$; ""; O$; Space$(2); addon$;
+Sleep 2: GoSub ObjectdotProperties: Message$ = "": addon$ = ""
+O$ = "": Message$ = O$
+If LO$ = "~" Then GoSub Clearline: Locate 30, 20: Print "There are " + Str$(N) + " of them.";: Sleep 2
+GoSub Gamedotstatus: Tr = 0: addon$ = "": GoSub Clearline: GoSub Cleardotarea
+Return
+
+Clearline:
+Locate 30, 1: Print Space$(79);: Return
+
+Hold:
+H$ = InKey$: If H$ = "" Then GoTo Hold
+Return
+
+Escaped:
+Color 15
+Line (110, 190)-(510, 255), 10, BF: Line (115, 200)-(500, 245), 14, BF
+Line (115, 200)-(500, 245), 1, B
+Locate 14, 25: Print "Congratulations Adventurer!"
+Locate 15, 19: Print "You have escaped from this maze for now.": Sleep 4: System
+
+'CopydotPlayer:
+Line (CIX1 + 15, CIY1 + 23)-(CIX1 + 37, CIY1 + 45), 0, BF
+Circle (CIX1 + 28, CIY1 + 35), 10, 15: Paint (CIX1 + 28, CIY1 + 35), 15
+Circle (CIX1 + 28, CIY1 + 35), 10, 6: Circle (CIX1 + 28, CIY1 + 35), 9, 6
+For E = 1 To 5: Circle (CIX1 + 28, CIY1 + 35), E, 0: Next
+Circle (CIX1 + 28, CIY1 + 35), 1, 0
+Get (CIX1 + 15, CIY1 + 23)-(CIX1 + 37, CIY1 + 45), Player%()
+Return
+
+CopydotPlayer:
+X1 = 20: Y1 = 40: c = 1
+Circle (X1, Y1), 9, 6: Paint (X1, Y1), 6: Circle (X1, Y1), 10, 4 'Body
+Circle (X1 - 5, Y1 - 5), 3, 15: Paint (X1 - 5, Y1 - 5), 15 'left eye
+Circle (X1 - 5, Y1 - 5), 3, c, -6.28, -3.14: Paint (X1 - 5, Y1 - 6), c
+Circle (X1 - 5, Y1 - 5), 1, 0: Paint (X1 - 5, Y1 - 5), 0 'outline
+Circle (X1 + 5, Y1 - 5), 3, 15: Paint (X1 + 5, Y1 - 5), 15 'right eye
+Circle (X1 + 5, Y1 - 5), 3, c, -6.28, -3.14: Paint (X1 + 5, Y1 - 6), c
+Circle (X1 + 5, Y1 - 5), 1, 0: Paint (X1 + 5, Y1 - 5), 0
+Circle (X1, Y1), 2, 4: Paint (X1, Y1), 4: Circle (X1, Y1), 3, 1 'nose
+Line (X1 - 2, Y1 + 5)-(X1 + 2, Y1 + 5), 5 'mouth(top)
+Line (X1 - 1, Y1 + 6)-(X1 + 1, Y1 + 6), 5 'mouth(bottom)
+Get (X1 - 10, Y1 - 10)-(X1 + 10, Y1 + 10), Player%()
+GoSub CopydotPlayerdeath
+Return
+
+CopydotPlayerdeath:
+X1 = 20: Y1 = 40: c = 4
+Circle (X1, Y1), 9, 6: Paint (X1, Y1), 6: Circle (X1, Y1), 10, 4 'Body
+Circle (X1 - 5, Y1 - 5), 5, 15: Paint (X1 - 5, Y1 - 5), 15 'left eye
+Circle (X1 - 5, Y1 - 5), 1, 0: Paint (X1 - 5, Y1 - 5), 0 'outline
+Circle (X1 + 5, Y1 - 5), 5, 15: Paint (X1 + 5, Y1 - 5), 15 'right eye
+Circle (X1 + 5, Y1 - 5), 1, 0: Paint (X1 + 5, Y1 - 5), 0
+Circle (X1, Y1), 2, 4: Paint (X1, Y1), 4: Circle (X1, Y1), 3, 1 'nose
+Line (X1 - 2, Y1 + 5)-(X1 + 2, Y1 + 5), 5 'mouth(top)
+Line (X1 - 1, Y1 + 6)-(X1 + 1, Y1 + 6), 5 'mouth(bottom)
+Circle (X1, Y1 + 6), 2, c, , , .32: Paint (X1, Y1 + 6), c
+Circle (X1, Y1 + 6), 3, 1, , , .32
+Get (X1 - 10, Y1 - 10)-(X1 + 10, Y1 + 10), Playerdeath%()
+Return
+
+Copydotwall:
+Line (CIX1 + 11, CIY1 + 21)-(CIX1 + 34, CIY1 + 50), Wcs(Rm, 0), BF
+Line (CIX1 + 12, CIY1 + 20)-(CIX1 + 35, CIY1 + 51), Wcs(Rm, 1), B
+Line (CIX1 + 36, CIY1 + 20)-(CIX1 + 36, CIY1 + 50), 10
+For A = CIX1 + 12 To CIX1 + 34 Step 2: Line (A, CIY1 + 21)-(A, CIY1 + 50), 6
+Next: Line (CIX1 + 11, CIY1 + 50)-(CIX1 + 34, CIY1 + 50), 1
+Line (CIX1 + 11, CIY1 + 21)-(CIX1 + 11, CIY1 + 50), 8
+'FOR A = CIY1 + 11 TO CIY1 + 50 STEP 2: LINE (CIX1 + 11, A)-(CIX1 + 35, A), 5: NEXT
+Get (CIX1 + 11, CIY1 + 19)-(CIX1 + 36, CIY1 + 51), Wall%()
+Return
+
+Copydotwall2:
+Line (CIX1 + 11, CIY1 + 20)-(CIX1 + 34, CIY1 + 50), Wcs(Rm, 0), BF
+Line (CIX1 + 12, CIY1 + 19)-(CIX1 + 35, CIY1 + 51), Wcs(Rm, 1), B
+Line (CIX1 + 36, CIY1 + 19)-(CIX1 + 36, CIY1 + 50), 10
+For A = 0 To 41 Step 2
+Line (CIX1 + 11, CIY1 + 20 + A)-(CIX1 + 33, CIY1 + A), 1: Next
+Get (CIX1 + 11, CIY1 + 19)-(CIX1 + 42, CIY1 + 51), Wall2%()
+Return
+
+Copydotwall3:
+WX = 26: WY = 32
+Line (100, 75)-(100 + WX, 75 + WY), , B
+T$ = T$ + Chr$(200) + Chr$(130) + Chr$(146) + Chr$(48) + Chr$(8) + Chr$(2) + Chr$(144) + Chr$(152) + Chr$(2)
+Paint (102, 76), T$
+Line (100, 75)-(100 + WX, 75 + WY), 4, B
+Get (100, 75)-(100 + WX, 75 + WY), Wall3%()
+Return
+
+CopydotCleardotObject:
+Line (CIX1 + 16, CIY1 + 50)-(CIX1 + 60, CIY1 + 80), 0, BF
+Get (265, CIY1 + 20)-(290, CIY1 + 54), Clrobject%()
+Return
+
+CopydotDoor:
+Line (CIX1 + 11, CIY1 + 20)-(CIX1 + 36, CIY1 + 52), 6, BF
+Line (CIX1 + 13, CIY1 + 22)-(CIX1 + 33, CIY1 + 31), 12, BF
+Line (CIX1 + 13, CIY1 + 40)-(CIX1 + 33, CIY1 + 48), 12, BF
+Line (CIX1 + 13, CIY1 + 22)-(CIX1 + 33, CIY1 + 31), 0, B
+Line (CIX1 + 13, CIY1 + 40)-(CIX1 + 33, CIY1 + 48), 0, B
+Line (CIX1 + 10, CIY1 + 19)-(CIX1 + 37, CIY1 + 53), 1, B
+Line (CIX1 + 37, CIY1 + 20)-(CIX1 + 37, CIY1 + 52), 12
+Circle (CIX1 + 34, CIY1 + 36), 2, 14: Paint (CIX1 + 34, CIY1 + 36), 14
+Circle (CIX1 + 34, CIY1 + 36), 2, 0
+Get (CIX1 + 11, CIY1 + 20)-(CIX1 + 40, CIY1 + 53), Door%()
+GoSub CopydotEDoor
+Return
+
+CopydotEDoor:
+Line (CIX1 + 11, CIY1 + 20)-(CIX1 + 36, CIY1 + 52), 13, BF
+Line (CIX1 + 13, CIY1 + 22)-(CIX1 + 33, CIY1 + 31), 2, BF
+Line (CIX1 + 13, CIY1 + 40)-(CIX1 + 33, CIY1 + 48), 2, BF
+Line (CIX1 + 13, CIY1 + 22)-(CIX1 + 33, CIY1 + 31), 0, B
+Line (CIX1 + 13, CIY1 + 40)-(CIX1 + 33, CIY1 + 48), 0, B
+Line (CIX1 + 10, CIY1 + 19)-(CIX1 + 37, CIY1 + 53), 1, B
+Line (CIX1 + 37, CIY1 + 20)-(CIX1 + 37, CIY1 + 52), 12
+Circle (CIX1 + 34, CIY1 + 36), 2, 14: Paint (CIX1 + 34, CIY1 + 36), 14
+Circle (CIX1 + 34, CIY1 + 36), 2, 0
+Get (CIX1 + 11, CIY1 + 20)-(CIX1 + 40, CIY1 + 53), EDoor%()
+Return
+
+CopydotKeylock:
+Circle (CIX1 + 24, CIY1 + 35), 4, 7
+Circle (CIX1 + 27, CIY1 + 40), 4, 7
+Color 4: Line (CIX1 + 26, CIY1 + 39)-(CIX1 + 44, CIY1 + 21)
+Line (CIX1 + 26, CIY1 + 40)-(CIX1 + 44, CIY1 + 22)
+Color 6: Line (CIX1 + 34, CIY1 + 20)-(CIX1 + 39, CIY1 + 28)
+Line (CIX1 + 35, CIY1 + 20)-(CIX1 + 40, CIY1 + 28)
+Line (CIX1 + 35, CIY1 + 32)-(CIX1 + 31, CIY1 + 27)
+Get (CIX1 + 15, CIY1 + 16)-(CIX1 + 39, CIY1 + 47), Keylock%()
+Return
+
+CopydotTreasure:
+Line (CIX1 + 16, CIY1 + 65)-(CIX1 + 35, CIY1 + 80), 14, B
+Line -(CIX1 + 40, CIY1 + 75), 14: Line -(CIX1 + 40, CIY1 + 60), 14
+Line -(CIX1 + 35, CIY1 + 65), 14
+Line (CIX1 + 16, CIY1 + 65)-(CIX1 + 21, CIY1 + 60), 14
+Line -(CIX1 + 40, CIY1 + 60), 14
+Line (CIX1 + 17, CIY1 + 66)-(CIX1 + 34, CIY1 + 79), 6, BF
+Paint (CIX1 + 38, CIY1 + 68), 14
+Line (CIX1 + 22, CIY1 + 60)-(CIX1 + 40, CIY1), 6, BF
+Line (CIX1 + 40, CIY1 + 60)-(CIX1 + 40, CIY1), 12
+Line (CIX1 + 22, CIY1 + 50)-(CIX1 + 40, CIY1 + 50), 12
+Get (CIX1 + 16, CIY1 + 50)-(CIX1 + 40, CIY1 + 80), Treasure%()
+Return
+
+CopydotRing:
+Circle (CIX1 + 28, CIY1 + 35), 5, 15: Circle (CIX1 + 28, CIY1 + 35), 6, 8
+Circle (CIX1 + 28, CIY1 + 26), 3, 1: Paint (CIX1 + 28, CIY1 + 26), 13, 1
+Line (CIX1 + 26, CIY1 + 24)-(CIX1 + 30, CIY1 + 24), 11
+Circle (CIX1 + 28, CIY1 + 26), 2, 1: Circle (CIX1 + 28, CIY1 + 35), 4, 9
+Get (CIX1 + 15, CIY1 + 20)-(CIX1 + 38, CIY1 + 45), Diamond%()
+Return
+
+CopydotRing2:
+Circle (CIX1 + 28, CIY1 + 35), 5, 15: Circle (CIX1 + 28, CIY1 + 35), 6, 8
+Circle (CIX1 + 28, CIY1 + 26), 3, 12: Paint (CIX1 + 28, CIY1 + 26), 13, 12
+Line (CIX1 + 26, CIY1 + 24)-(CIX1 + 30, CIY1 + 24), 14
+Circle (CIX1 + 28, CIY1 + 26), 2, 1: Circle (CIX1 + 28, CIY1 + 35), 4, 9
+Get (CIX1 + 15, CIY1 + 20)-(CIX1 + 38, CIY1 + 47), Diamond2%()
+Return
+
+CopydotGem:
+Circle (CIX1 + 28, CIY1 + 35), 5, 10: 'CIRCLE (CIX1 + 28, CIY1 + 35), 10, 8
+Circle (CIX1 + 28, CIY1 + 26), 2: Paint (CIX1 + 28, CIY1 + 26), T$
+Line (CIX1 + 26, CIY1 + 24)-(CIX1 + 30, CIY1 + 24), 1
+Circle (CIX1 + 28, CIY1 + 35), 4, 9
+Get (CIX1 + 15, CIY1 + 20)-(CIX1 + 38, CIY1 + 45), Gem%()
+Return
+
+CopydotSpider:
+Circle (CIX1 + 28, CIY1 + 27), 3, 8: Paint (CIX1 + 28, CIY1 + 27), 8
+Circle (CIX1 + 28, CIY1 + 20), 6, 8: Paint (CIX1 + 28, CIY1 + 20), 8
+Circle (CIX1 + 28, CIY1 + 25), 6, 0
+Line (CIX1 + 24, CIY1 + 25)-(CIX1 + 19, CIY1 + 30), 7: Line -(CIX1 + 22, CIY1 + 33), 7
+Line (CIX1 + 32, CIY1 + 25)-(CIX1 + 37, CIY1 + 30), 7: Line -(CIX1 + 34, CIY1 + 33), 7
+Line (CIX1 + 23, CIY1 + 22)-(CIX1 + 20, CIY1 + 25), 7
+Line (CIX1 + 23, CIY1 + 16)-(CIX1 + 18, CIY1 + 21), 7
+Line -(CIX1 + 18, CIY1 + 23), 7
+Line (CIX1 + 33, CIY1 + 22)-(CIX1 + 36, CIY1 + 25), 7
+Line (CIX1 + 33, CIY1 + 16)-(CIX1 + 38, CIY1 + 21), 7
+Line -(CIX1 + 38, CIY1 + 23), 7
+Line (CIX1 + 27, CIY1 + 29)-(CIX1 + 27, CIY1 + 31), 4
+Line (CIX1 + 30, CIY1 + 29)-(CIX1 + 30, CIY1 + 31), 4
+Get (CIX1 + 15, CIY1 + 10)-(CIX1 + 42, CIY1 + 40), Spider%()
+GoSub CopydotSpiderfr2
+Return
+
+CopydotSpiderfr2:
+Cls
+Circle (CIX1 + 28, CIY1 + 27), 5, 8: Paint (CIX1 + 28, CIY1 + 27), 8
+Circle (CIX1 + 28, CIY1 + 20), 6, 8: Paint (CIX1 + 28, CIY1 + 20), 8
+Circle (CIX1 + 28, CIY1 + 25), 6, 0
+Line (CIX1 + 24, CIY1 + 25)-(CIX1 + 19, CIY1 + 20), 7: Line -(CIX1 + 17, CIY1 + 24), 7
+Line (CIX1 + 32, CIY1 + 25)-(CIX1 + 37, CIY1 + 20), 7: Line -(CIX1 + 40, CIY1 + 25), 7
+Line (CIX1 + 24, CIY1 + 25)-(CIX1 + 22, CIY1 + 30), 7: Line -(CIX1 + 24, CIY1 + 33), 7
+Line (CIX1 + 32, CIY1 + 25)-(CIX1 + 34, CIY1 + 30), 7: Line -(CIX1 + 32, CIY1 + 33), 7
+Line (CIX1 + 27, CIY1 + 29)-(CIX1 + 27, CIY1 + 31), 4
+Line (CIX1 + 30, CIY1 + 29)-(CIX1 + 30, CIY1 + 31), 4
+Get (CIX1 + 14, CIY1 + 10)-(CIX1 + 44, CIY1 + 40), Spiderfr2%()
+Return
+
+CopydotSpider2:
+Circle (CIX1 + 28, CIY1 + 27), 3, 10: Paint (CIX1 + 28, CIY1 + 27), 10
+Circle (CIX1 + 28, CIY1 + 20), 6, 10: Paint (CIX1 + 28, CIY1 + 20), 10
+Circle (CIX1 + 28, CIY1 + 25), 6, 0
+Line (CIX1 + 24, CIY1 + 25)-(CIX1 + 19, CIY1 + 30), 7: Line -(CIX1 + 22, CIY1 + 33), 7
+Line (CIX1 + 32, CIY1 + 25)-(CIX1 + 37, CIY1 + 30), 7: Line -(CIX1 + 34, CIY1 + 33), 7
+Line (CIX1 + 23, CIY1 + 22)-(CIX1 + 20, CIY1 + 25), 7
+Line (CIX1 + 33, CIY1 + 22)-(CIX1 + 36, CIY1 + 25), 7
+Line (CIX1 + 23, CIY1 + 22)-(CIX1 + 20, CIY1 + 25), 7
+Line (CIX1 + 23, CIY1 + 16)-(CIX1 + 18, CIY1 + 21), 7
+Line -(CIX1 + 18, CIY1 + 23), 7
+Line (CIX1 + 33, CIY1 + 22)-(CIX1 + 36, CIY1 + 25), 7
+Line (CIX1 + 33, CIY1 + 16)-(CIX1 + 38, CIY1 + 21), 7
+Line -(CIX1 + 38, CIY1 + 23), 7
+Line (CIX1 + 27, CIY1 + 29)-(CIX1 + 27, CIY1 + 31), 4
+Line (CIX1 + 30, CIY1 + 29)-(CIX1 + 30, CIY1 + 31), 4
+Get (CIX1 + 15, CIY1 + 10)-(CIX1 + 43, CIY1 + 40), Spider2%()
+GoSub CopydotSpiderpfr2
+Return
+
+CopydotSpiderpfr2:
+Cls
+Circle (CIX1 + 28, CIY1 + 27), 3, 10: Paint (CIX1 + 28, CIY1 + 27), 10
+Circle (CIX1 + 28, CIY1 + 20), 6, 10: Paint (CIX1 + 28, CIY1 + 20), 10
+Circle (CIX1 + 28, CIY1 + 25), 6, 0
+Line (CIX1 + 24, CIY1 + 25)-(CIX1 + 19, CIY1 + 20), 7: Line -(CIX1 + 17, CIY1 + 24), 7
+Line (CIX1 + 32, CIY1 + 25)-(CIX1 + 37, CIY1 + 20), 7: Line -(CIX1 + 40, CIY1 + 25), 7
+Line (CIX1 + 23, CIY1 + 22)-(CIX1 + 20, CIY1 + 25), 7
+Line (CIX1 + 33, CIY1 + 22)-(CIX1 + 36, CIY1 + 25), 7
+Line (CIX1 + 23, CIY1 + 22)-(CIX1 + 20, CIY1 + 25), 7
+Line (CIX1 + 23, CIY1 + 16)-(CIX1 + 18, CIY1 + 21), 7
+Line (CIX1 + 24, CIY1 + 25)-(CIX1 + 23, CIY1 + 30), 7
+Line (CIX1 + 32, CIY1 + 25)-(CIX1 + 34, CIY1 + 30), 7
+Line (CIX1 + 33, CIY1 + 16)-(CIX1 + 38, CIY1 + 21), 7
+Line (CIX1 + 27, CIY1 + 29)-(CIX1 + 27, CIY1 + 31), 4
+Line (CIX1 + 30, CIY1 + 29)-(CIX1 + 30, CIY1 + 31), 4
+Get (CIX1 + 15, CIY1 + 10)-(CIX1 + 42, CIY1 + 40), Spiderpfr2%()
+Return
+
+CopydotWeb:
+T$ = Chr$(200) + Chr$(130) + Chr$(146) + Chr$(48) + Chr$(8) + Chr$(2) + Chr$(144) + Chr$(152) + Chr$(2)
+Line (CIX1 + 8, CIY1 + 15)-(CIX1 + 35, CIY1 + 25), 1, B
+Paint (CIX1 + 8, CIY1 + 15), T$
+Line (CIX1 + 31, CIY1 + 15)-(CIX1 + 35, CIY1 + 30), 8
+Get (CIX1 + 8, CIY1 + 15)-(CIX1 + 36, CIY1 + 25), Web%()
+Return
+
+CopydotSpike:
+X1 = 10: Y1 = 15: Cls
+Line (X1, Y1)-(X1 + 5, Y1 - 10), 7: Line -(X1 + 10, Y1), 7
+Line -(X1, Y1), 7: Paint (X1 + 5, Y1 - 5), 7
+Line (X1 - 1, Y1)-(X1 + 4, Y1 - 10), 14
+Line (X1 - 1, Y1 + 1)-(X1 + 10, Y1 + 12), 7, BF
+Line (X1 - 1, Y1 + 1)-(X1 - 1, Y1 + 12), 14, BF
+Circle (X1 + 12, Y1 + 6), 5, 0: Paint (X1 + 10, Y1 + 6), 0
+Line (X1 + 5, Y1 - 11)-(X1 + 5, Y1 - 10), 14, BF
+Get (X1 - 5, Y1 - 12)-(X1 + 12, Y1 + 12), Spike%()
+Return
+
+ObjectdotProperties:
+LO$ = Mid$(Object$(Length), 1, 1): HL = InStr(Object$(Length), "@")
+If LO$ = "!" Then Health = Health + 25: Ob = Ob + 1
+If LO$ = "$" Then Fortune = Fortune + 20
+If LO$ = "%" Then Health = Health + 200 + (200 * (HL = 64))
+GoSub Gamedotstatus: Objects = Objects + Ob: Ob = 0
+Tallydotpnts:
+Score = Score + Fortune: Fortune = 0
+Return
+
+Cleardotobject:
+Put (Sx, Sy), Clrobject%(), PSet: Return
+
+Cleardotplayer:
+Line (265, 145)-(345, 215), 0, BF
+Return
+
+Cleardotman:
+Put (X, Y), Clrobject%(), PSet: Return
+
+Cleardotarea:
+Line (Sx - 4, Sy)-(Sx + 23, Sy + 35), 0, BF
+Return
+
+Placedotwall:
+If T$ = "@" Then Put (1 + SpacerX, 6 + SpacerY), Wall3%(), PSet: GoTo Skipdotover
+If T$ = "%" Then Put (1 + SpacerX, 6 + SpacerY), Wall2%(), PSet: GoTo Skipdotover
+Color 2: Put (1 + SpacerX, 6 + SpacerY), Wall%(), PSet
+Skipdotover:
+SpacerX = SpacerX + 30:
+Return
+
+Placedotdoor:
+Put (SpacerX, 36 + SpacerY - 36 + 6), Door%()
+SpacerX = SpacerX + 30
+Return
+
+PlacedotEdoor:
+Put (SpacerX, 36 + SpacerY - 36 + 6), EDoor%()
+SpacerX = SpacerX + 30
+Return
+
+Placedotkey:
+Put (SpacerX, 36 + SpacerY - 36 + 6), Keylock%(), PSet
+SpacerX = SpacerX + 30
+Return
+
+Placedotchest:
+Put (SpacerX, 36 + SpacerY - 36 + 6), Treasure%(), PSet
+SpacerX = SpacerX + 30
+Return
+
+Placedotring:
+Put (SpacerX, 36 + SpacerY - 36 + 6), Diamond%(), PSet
+SpacerX = SpacerX + 30
+Return
+
+Placedotgem:
+Put (SpacerX, 36 + SpacerY - 36 + 6), Gem%(), PSet
+SpacerX = SpacerX + 30
+Return
+
+Placedotweb:
+Put (SpacerX, 36 + SpacerY - 36 + 6), Web%(), PSet
+SpacerX = SpacerX + 30
+Return
+
+PlacedotSpike:
+Put (SpacerX + 5, SpacerY + 36), Spike%(), PSet
+SpacerX = SpacerX + 30
+Return
+
+Fin:
+Screen 7: Cls: Locate 10, 15: Print "GAME": Locate 10, 20: Print "OVER"
+If slc <> 4 Then Locate 13, 12: Print "SPACE - RESTART"
+Locate 16, 15: Print "ESC - END"
+WtdotKey:
+T$ = InKey$: If T$ = "" Then GoTo WtdotKey
+If T$ = Chr$(27) Then Cls: Screen 0: Print "THANKS FOR PLAYING!": System 0
+If slc <> 4 Then If InKey$ = " " Then GoTo Start
+If InKey$ = "" Then GoTo WtdotKey
+GoTo WtdotKey
+
+Checkdotkey:
+i$ = InKey$
+Select Case InKey$
+ Case Chr$(27)
+ Cls: System
+ Case Chr$(32)
+ GoTo Start
+
+ If InKey$ = "" Then GoTo Checkdotkey
+End Select
+GoTo Checkdotkey
+
+RoomdotCheck:
+Cls: L = 0: LL = 0: SpacerX = 0: SpacerY = 0: Adv = 0: Wm = 0: Wm2 = 0
+Eny = 0: Stringdotpnt = 0: Count = 0: EndotTally = 0
+StartdotA = (12 * Rm) - 11: FinishdotA = 12 * Rm
+If Y > 400 Then Y = 4
+If Y < 4 Then Y = 400
+
+Confirmdotrm:
+GoSub Copydotwall: GoSub Cleardotplayer
+For A = StartdotA To FinishdotA: For B = 1 To 20 'Height x Width
+ T$ = Mid$(Maze$(A), B, 1)
+ If T$ = " " Or T$ = "." Or T$ = "L" Then GoSub SkipdotX
+ If T$ = "#" Then GoSub Placedotwall
+ If T$ = "B" Or T$ = "S" Or T$ = "w" Then GoSub SkipdotX
+ If T$ = "D" Then GoSub Placedotdoor
+ If T$ = "E" Then GoSub PlacedotEdoor
+ If T$ = "W" Then GoSub Placedotweb
+ If T$ = "g" Then GoSub Placedotgem
+ If T$ = "k" Then GoSub Placedotkey
+ If T$ = "r" Then GoSub Placedotring
+ If T$ = "s" Then GoSub PlacedotSpike
+ If T$ = "t" Then GoSub Placedotchest
+Next B: SpacerX = 0: SpacerY = SpacerY + 36: Next A: GoSub Displaydotman
+T = 0: L = 0: SpacerX = 0: SpacerY = 0
+If Rm = 0 Or Rm = 33 Or Rm = 64 Then Adv = 500
+If Rm = 1 Or Rm = 5 Or Rm = 9 Or Rm = 17 Or Rm = 18 Or Rm = 19 Then Adv = 300
+If Rm = 7 Or Rm = 8 Or Rm = 12 Or Rm = 16 Or Rm = 25 Or Rm = 28 Then Adv = 400
+If Rm = 29 Or Rm = 31 Or Rm = 35 Or Rm = 39 Or Rm = 40 Or Rm = 41 Then Adv = 500
+If Rm = 6 Or Rm = 10 Or Rm = 15 Or Rm = 20 Or Rm = 30 Then Adv = 450
+If Rm = 42 Or Rm = 43 Or Rm = 44 Then Adv = 450
+If Rm = 45 Or Rm = 46 Or Rm = 47 Or Rm = 54 Or Rm = 53 Or Rm = 55 Then Adv = 500
+If Rm = 60 Or Rm = 61 Or Rm = 62 Then Adv = 500
+r = StartdotA: B = 1: GoSub Gamedotstatus: Return
+
+Gamedotstatus:
+Color 2: Locate 29, 5: Print "LIVES:";: Color 15: Print Lives;
+Color 2: Print Space$(4); "SCORE:";: Color 15: Print Score;
+Color 2: Print Space$(5); "WEAPONS:";: Color 15: Print Objects;
+Color 2: Print Space$(4); "HEALTH: ";: Color 15: Print Health;
+Color 2: Print Space$(4); "KEYS:";: Color 15: Print Keys;
+Return
+
+Titledotscr:
+Screen 12: Cls
+W = (600 / 4) + 50: H = (400 / 4) + 40: CL = 1: Dmx = 1: Dmy = 1
+CIX1 = 106: CIY1 = 279: Spx = 60: Spy = 243
+SpacerX = Spx: SpacerY = Spy
+Demo = TRUE: Plx% = CIX1 - 12: Ply% = CIY1 + (36 * 2)
+
+Scandotmes:
+Color 8: Locate 1, 1:
+If (T < 1 Or T > 0) Then Print M1$
+For A = 0 To 133: For B = 0 To 15
+
+ Rand:
+ Randomize Timer
+ c = Fix(15 * Rnd(1)): If c = 8 Then GoTo Rand
+ cx = W - 190 + A * 5: cy = H + 20 + (B * 5) - 80
+ Pt = Point(A, B)
+ If Pt = 8 And T < 1 Then GoSub CircdotFont: GoTo SkipdotPt
+ If Pt = 8 And T > 0 Then GoSub Message
+
+ SkipdotPt:
+Next B, A: ht = CsrLin - 1: Locate ht, 1: Print Space$(16)
+T = T + 1: M1$ = "ANY KEY TO START"
+If T < 2 Then GoTo Scandotmes
+GoSub Drawdotwall: Put (Plx%, Ply%), Player%(), PSet: A = 0: B = A: M = 5:
+Aax = 30: BBx = 36: Playdotdemo = TRUE
+Locate 10, 25: Print "Version 2.1: Trapped Forever"
+
+Checkdotpress:
+GoSub Spiderdotroutine: GoSub Ringdotglow: If Playdotdemo Then GoSub Demodotroutine
+If InKey$ = "" Then GoTo Checkdotpress
+CIX1 = 275: CIY1 = 145: CL = 0: Web = 5: Demo = FALSE
+RingdotX = 0: RingdotY = 0: Return
+
+Demodotroutine:
+If A = (30 * 3) Then GoSub Listdotmes
+If A = (30 * 5) Then GoSub Listdotmes2
+If A = (30 * 9) And Not (Unlockeddotdoor) And Tr < 1 Then GoSub Listdotmes3
+If A = (30 * 12) And Unlockeddotdoor < 1 And Tr < 1 Then GoSub Listdotmes4: Unlockeddotdoor = TRUE
+Put (Plx% + A, Ply% - B), Player%(), PSet
+For H = 1 To 1000: Next
+Put (Plx% + A, Ply% - B), Player%()
+If (A < 30 * 12) Then A = A + Aax
+If (A <= (30 * 9)) And Tr Then GoSub Plotdotdemdotplr: GoSub Listdotmes5: Playdotdemo = FALSE: Return
+If (A > (30 * 10) And Tr) Then A = A + Aax
+
+If Unlockeddotdoor And Not (Tr) Then B = B + BBx: If B >= (36 * 2) Then GoSub Plotdotdemdotplr: Aax = -30: Tr = 1: Unlockeddotdoor = FALSE: Sleep 1
+Null:
+Return
+
+Plotdotdemdotplr:
+Put (Plx% + A, Ply% - B), Player%(), PSet: Return
+
+Listdotmes:
+GoSub Plotdotdemdotplr: GoSub Dmes1: Return
+
+Listdotmes2:
+GoSub Plotdotdemdotplr: GoSub Dmes2: Return
+
+Listdotmes3:
+GoSub Plotdotdemdotplr: GoSub Dmes3: Return
+
+Listdotmes4:
+GoSub Plotdotdemdotplr: GoSub Dmes4: Return
+
+Listdotmes5:
+GoSub Plotdotdemdotplr: GoSub Dmes5: Return
+
+Dmes1:
+A$ = "Avoid getting bit by the hanging spiders.": L = (80 - Len(A$)) * .5
+A$(2) = "and don't touch the flashing electric pulses."
+Color 15: Locate 12, L: Print A$
+L2 = (80 - Len(A$(2))) * .5: Color 15: Locate 14, L2: Print A$(2): Sleep 6
+Locate 12, L: Print Space$(Len(A$)):
+Locate 14, L2: Print Space$(Len(A$(2)))
+Return
+
+Dmes2:
+Line (Plx% + A - 4, Ply%)-(Plx% + A + 23, Ply% + 35), 0, BF
+Put (Plx% + A, Ply%), Player%()
+A$ = "Only the key you see in the same room as the door."
+A$(2) = "will unlock that door."
+L = (80 - Len(A$)) * .5: Color 15: Locate 12, L: Print A$
+L2 = (80 - Len(A$(2))) * .5: Color 15: Locate 14, L2: Print A$(2): Sleep 6
+Locate 12, L: Print Space$(Len(A$))
+Locate 14, L2: Print Space$(Len(A$(2)))
+Return
+
+Dmes3:
+A$ = "Collect rings, gems and treasures on your journey."
+L = (80 - Len(A$)) * .5: Color 15: Locate 12, L: Print A$: Sleep 6
+Locate 12, L: Print Space$(Len(A$)): Return
+
+Dmes4:
+A$ = "Now open the door with the key you found."
+L = (80 - Len(A$)) * .5: Color 15: Locate 12, L: Print A$: Sleep 6
+Locate 12, L: Print Space$(Len(A$)):
+Line (Plx% + A - 4, (Ply%) - 36)-(Plx% + A + 23, (Ply% + 35) - 36), 0, BF
+Return
+
+Dmes5:
+A$ = "Search for items and health potions in the treasure chests."
+L = (80 - Len(A$)) * .5: Color 15: Locate 12, L: Print A$: Sleep 6
+Locate 12, L: Print Space$(Len(A$)):
+Return
+
+CircdotFont:
+Circle (cx, cy), 3, c: Paint (cx, cy), c: Circle (cx, cy), 1, 14
+PSet (cx, cy), 0
+Return
+
+Message:
+msx = W - 80 + A * 3: msy = H + 280 + B * 2
+Circle (msx, msy), 2, CL
+Inc = Inc + 1: If Fix(Inc / 45) = Inc / 45 Then CL = CL + 1
+If CL = 8 Then CL = CL + 1
+Return
+
+Drawdotwall:
+GoSub Demodotmaze: For A = 1 To 5: For L = 1 To 15
+ S$ = Mid$(A$(A), L, 1)
+ If S$ = "#" Then Put (SpacerX, SpacerY), Wall%(), PSet
+ If S$ = "t" Then Put (SpacerX, SpacerY), Treasure%(), PSet
+ If S$ = "D" Then Put (SpacerX, SpacerY), Door%(), PSet
+ If S$ = "k" Then Put (SpacerX, SpacerY), Keylock%(), PSet
+ If S$ = "r" Then RingdotX = SpacerX: RingdotY = SpacerY: Put (SpacerX, SpacerY), Diamond%(), PSet
+ If S$ = "g" Then Put (SpacerX, SpacerY), Gem%(), PSet
+ If S$ = "W" Then Put (SpacerX, SpacerY), Web%(), PSet
+ If (S$ = "B" Or S$ = "S") Then Spx = SpacerX: Spy = SpacerY - 6: GoSub Spiderdotroutine
+ SpacerX = SpacerX + 30
+Next L: SpacerX = 60: SpacerY = SpacerY + 36: Next A
+SpacerX = 60: SpacerY = 0
+Return
+
+Menulist:
+Cls: Ky$(1) = "ARROW KEYS IN USE": Ky$(2) = "NUMPAD IN USE" + Space$(4)
+Pntr = 190: SvspX = Spx: SvspY = Spy: slc = 1
+Indent = 30: Dnx = 182: Bot = 410
+'LINE (120, 100)-(490, 320), 7, BF
+For O = 120 To 490 Step 2.1: Line (O, 100)-(O, Bot), 8: Next
+Line (120 + Indent, 100 + Indent)-(490 - Indent, Bot - Indent), 7, BF
+Line (120 + Indent + 10, 100 + Indent + 10)-(490 - Indent - 10, Bot - Indent - 10), 0, BF
+Line (120 + Indent, 100 + Indent)-(490 - Indent, 320 - Indent), 14, B
+Line (120 + Indent + 1, 100 + Indent + 1)-(490 - Indent - 1, Bot - Indent - 1), 4, B
+Circle (190, 182), 6, 4: Paint (190, 182), 4: Circle (190, 182), 7, 14
+
+Options:
+Color 14
+Locate 10, 26: Print "Use SPACE-BAR to select": Color 9
+Locate 12, 28: Print "HELP (Game tips)"
+Locate 14, 28: Print "GAME SPEED"
+Locate 16, 28: Print Ky$(Kytapfl + 1)
+Locate 18, 28: Print "ABORT THE GAME"
+'LINE (120 + Indent + 10, 262 + Indent)-(490 - Indent - 10, Bot - Indent - 10), 15, BF
+For O = 120 + Indent + 10 To 490 - Indent - 10 Step 2
+Line (O, 262 + Indent)-(O, Bot - Indent - 10), 15: Next
+Color 5: Locate 22, 26: Print "Press ESC to return to game"
+
+OptiondotSel:
+T$ = InKey$: If T$ = "" Then GoTo OptiondotSel
+If T$ = Chr$(0) + "P" Then GoSub ErasedotPntr: Dnx = Dnx + 30: If Dnx > 272 Then Dnx = 272
+If T$ = Chr$(0) + "H" Then GoSub ErasedotPntr: Dnx = Dnx - 30: If Dnx < 182 Then Dnx = 182
+If T$ = Chr$(27) Then GoSub RoomdotCheck: Spx = SvspX: Spy = SvspY: Return
+If T$ = Chr$(32) Then
+ If slc = 1 Then
+ GoSub Helpdotscr: GoTo Menulist
+ Else
+ If slc = 2 Then
+ T$ = "": GoSub Alterdotdelay: GoTo Menulist
+ Else
+ If slc = 3 Then
+ Kytapfl = Kytapfl + 1: If Kytapfl > 1 Then Kytapfl = 0
+ Actiondotkey = (Kytapfl)
+ GoTo Options
+ Else
+ If slc = 4 Then
+ Cls: GoTo Fin
+ End If
+ End If
+ End If
+ End If
+End If
+GoSub MovedotPntr
+GoTo OptiondotSel
+
+MovedotPntr:
+slc = Int(Dnx / 30) - 5
+Circle (190, Dnx), 6, 4: Paint (190, Dnx), 4: Circle (190, Dnx), 7, 14
+Return
+
+ErasedotPntr:
+If Dnx >= 182 Or Dnx <= 242 Then Circle (190, Dnx), 7, 0: Paint (190, Dnx), 0
+Return
+
+Helpdotscr:
+Cls: Far = 600: Line (0, 0)-(Far, 478), 15, BF
+Line (40, 0)-(40, 478), 12, B: c = 0
+For E = 0 To 478 Step 15.2: Line (0, E)-(Far, E), 3: Next
+Circle (15, 10), 7, c: Paint (16, 11), c
+Circle (15, 140), 7, c: Paint (16, 141), c: Circle (15, 270), 7, c
+Paint (16, 271), c: Circle (15, 400), 7, c: Paint (16, 401), c
+Color 6: Locate 5, 17: Print "You must navigate through a 64-room maze,"
+Locate 7, 17: Print "all while avoiding dangling spiders, electric shocks"
+Locate 9, 17: Print "and large knives that move up from the floor."
+Locate 12, 17: Print "A word of advice: Time yourself when passing beyond"
+Locate 14, 17: Print "spiders, electric shocks and moving knives."
+Locate 17, 17: Print "Also make a hand-made map of the maze as you start"
+Locate 19, 17: Print "advancing further and further into the labyrinth."
+Locate 21, 17: Print "Finally, take advantage of the treasure chests and"
+Locate 23, 17: Print "the helpful items inside."
+Color 2: Locate 26, 23: Print "PRESS SPACE-BAR TO RETURN TO MENU"
+Holddothelp:
+T$ = InKey$: If T$ = "" Then GoTo Holddothelp
+If T$ = Chr$(32) Then Return
+GoTo Holddothelp
+
+
+Demodotmaze:
+A$(1) = "###############"
+A$(2) = "# r t #"
+A$(3) = "####W########D#"
+A$(4) = "# S k g #"
+A$(5) = "###############"
+Return
+
+Alterdotdelay:
+Screen 12: Cls
+Line (0, 0)-(600, 300), 8, BF: Line (0, 301)-(600, 315), 4, BF
+For L = 2 To 598 Step 2.8: Line (L, 302)-(L, 314), 1: Next
+For L = 1 To 598 Step 2.36: Line (L, 1)-(L, 298), 7: Next
+CPU = 106: T = 1: c = 1
+Color 15: Locate 10, 22: Print "GAME DELAY PERFORMANCE METER"
+Color 2: Locate 22, 2: Print "USE THE LEFT & RIGHT ARROW KEYS TO SET A DELAY CHANNEL ";
+Print "FOR THIS GAME."
+Locate 23, 2: Print "YOU WILL THEN SEE A NUMERICAL COUNTER INCREMENTING ";
+Print "OR DECREMENTING."
+Locate 24, 2: Print "WHEN YOU HAVE THE DELAY YOU NEED, PRESS THE ";
+Color 14: Print "SPACE BAR ";: Color 2: Print "TO EXIT."
+Locate 25, 2: Print "USE CHANNEL ";: Color 14: Print "0 ";
+Color 2: Print "FOR FASTEST SPEED."
+Line (94, 100 + 80 - 6)-(456, 150 + 80 + 6), 0, B
+Line (95, 100 + 80 - 5)-(455, 150 + 80 + 5), 9, BF
+Line (100, 100 + 80)-(450, 150 + 80), 14, BF
+Line (107, 190)-(107, 220), 6, BF
+'Counter
+Line (240, 245)-(300, 290), 0, BF: Line (239, 244)-(301, 291), 15, B
+Line (241, 246)-(299, 289), 6, B: Line (243, 246)-(298, 288), 6, B
+GoSub Cntr
+
+Pskey:
+i$ = InKey$: If i$ = "" Then GoTo Pskey
+If i$ = Chr$(0) + "M" Then Flg = 1: T = 1: SL = 6: GoSub DrwMtr: GoSub Cntr: CPU = CPU + T: If CPU > 443 Then CPU = 443
+If i$ = Chr$(0) + "K" Then T = -1: SL = 14: GoSub DrwMtr: CPU = CPU + T: GoSub DrwMtr: GoSub Cntr: If CPU < 105 Then CPU = 105
+If i$ = Chr$(27) Then GoTo BegdotGame
+If i$ = Chr$(32) Then Return
+GoTo Pskey
+
+Cntr:
+c = c + T
+If c < 1 Then c = 1: Flg = 0
+If c > 340 Then c = 340
+Color 7: Locate 17, 32: Print c - 1;
+Return
+
+BegdotGame:
+If c - 1 < 2 Then Flg = 0: CPU = 0
+Return
+
+DrwMtr:
+Line (CPU, 190)-(CPU, 220), SL, BF
+Return
+
+Builddotmazes:
+'M:1 Maze 1
+Maze$(1) = "######W#W#W#########"
+Maze$(2) = "#t### S B S #####"
+Maze$(3) = "#t# # # ###### LL#"
+Maze$(4) = "#t# # # ###### ###W#"
+Maze$(5) = "#t# # # # S."
+Maze$(6) = "#r# # # # # ###W####"
+Maze$(7) = "#g#t# # # # SLk ."
+Maze$(8) = "#t# # # # ##########"
+Maze$(9) = "# # # # # # # ."
+Maze$(10) = "# W # # # ########W#"
+Maze$(11) = "# B D # # B."
+Maze$(12) = "#######.############"
+
+'M:9 Maze 2
+Maze$(13) = "#######.############"
+Maze$(14) = "#t # # ####W#W###W#"
+Maze$(15) = "#r # # # # B B ttS."
+Maze$(16) = "#r # # # ##W#######"
+Maze$(17) = "# # # # #kB ."
+Maze$(18) = "# # # # ##########"
+Maze$(19) = "# # # # ."
+Maze$(20) = "# # # #######W####"
+Maze$(21) = "# # # D #rB ."
+Maze$(22) = "# # # #### #######"
+Maze$(23) = "# # # # ."
+Maze$(24) = "#.##.##.######.#####"
+
+'M:17
+Maze$(25) = "#.##.##.######.#W###"
+Maze$(26) = "# # # #gtrr Brk#"
+Maze$(27) = "# # # ############"
+Maze$(28) = "# # # ."
+Maze$(29) = "# # ##############"
+Maze$(30) = "# # #"
+Maze$(31) = "# #####D######### #"
+Maze$(32) = "# ####W W# ## #"
+Maze$(33) = "# ##ttBgBt# ## #"
+Maze$(34) = "# ################ #"
+Maze$(35) = "# # ."
+Maze$(36) = "#.#.################"
+
+'M:25
+Maze$(37) = "#.#.################"
+Maze$(38) = "# ."
+Maze$(39) = "# ##################"
+Maze$(40) = "# ."
+Maze$(41) = "# ################W#"
+Maze$(42) = "# B."
+Maze$(43) = "##W###W#############"
+Maze$(44) = "#tBtttB tt # ."
+Maze$(45) = "#rB r B # ####"
+Maze$(46) = "#######D##.W### ##W#"
+Maze$(47) = "# rr # # B # #kB."
+Maze$(48) = "##..###.##.## #.####"
+
+'M:33
+Maze$(49) = "##..###.##.## #.####"
+Maze$(50) = "# # # # k# ."
+Maze$(51) = "#W# ### ###W###W####"
+Maze$(52) = "#B B B ."
+Maze$(53) = "# ##### ##### # ####"
+Maze$(54) = "# # # # # # # #"
+Maze$(55) = "# # # # r # # #"
+Maze$(56) = "# # # # # # # #"
+Maze$(57) = "# # # W#### # # #"
+Maze$(58) = "# # # B # # #"
+Maze$(59) = "#D# # ##### # # #"
+Maze$(60) = "#.#####.#####.#.####"
+
+'M:41
+Maze$(61) = "#.#####.#####.#.####"
+Maze$(62) = "# # # # # W## #"
+Maze$(63) = "# # t # # # Bk# #"
+Maze$(64) = "# # # # ##### #"
+Maze$(65) = "# # # # ######## #"
+Maze$(66) = "# # r # # # # #"
+Maze$(67) = "# # # # # rrr # #"
+Maze$(68) = "# # # # # # #"
+Maze$(69) = "# # # # ttt # #"
+Maze$(70) = "# ############## #W#"
+Maze$(71) = "# D B."
+Maze$(72) = "####.###############"
+
+'M:49
+Maze$(73) = "####.#######W###W###"
+Maze$(74) = "# # # # B B #"
+Maze$(75) = "# # # # ### # #"
+Maze$(76) = "# # # # # # # #"
+Maze$(77) = "# # # # # # # #"
+Maze$(78) = "# # ### # # # #r #"
+Maze$(79) = "# # # # # # # #"
+Maze$(80) = "# # # # # # # t#"
+Maze$(81) = "# # k # # # # # #"
+Maze$(82) = "# ##### # # # #W##"
+Maze$(83) = "# #r# #D # B ."
+Maze$(84) = "#####.#####.######.#"
+
+'M:57
+Maze$(85) = "#####.#####.######.#"
+Maze$(86) = "# t# # # # # ."
+Maze$(87) = "# # # # # ###"
+Maze$(88) = "# ### ##### ##W#####"
+Maze$(89) = "# #kB L ."
+Maze$(90) = "# #######W##########"
+Maze$(91) = "# B ."
+Maze$(92) = "# ##################"
+Maze$(93) = "# ## rr ggg ttt tt#."
+Maze$(94) = "# #W ggg tt rr###"
+Maze$(95) = "# DS g ggg ttt ttg #"
+Maze$(96) = "####################"
+
+'M:2
+Maze$(97) = "####################"
+Maze$(98) = "##WW##############W#"
+Maze$(99) = "#kBS SD"
+Maze$(100) = "###W #"
+Maze$(101) = ". B ."
+Maze$(102) = "#####W######W#######"
+Maze$(103) = ". B B ttt# ."
+Maze$(104) = "################## #"
+Maze$(105) = ". #r # #"
+Maze$(106) = "################.# #"
+Maze$(107) = ". #"
+Maze$(108) = "####################"
+
+'M:10
+Maze$(109) = "####################"
+Maze$(110) = "###W#######W######W#"
+Maze$(111) = ". B S S."
+Maze$(112) = "########### ########"
+Maze$(113) = ". # # ."
+Maze$(114) = "######### # # #"
+Maze$(115) = ". # #r# ###W#"
+Maze$(116) = "####### # ### # B."
+Maze$(117) = ". # # # #"
+Maze$(118) = "##### # ######## #"
+Maze$(119) = ". # # #"
+Maze$(120) = "##.##.######.#######"
+
+'M:18
+Maze$(121) = "##.##.######.#####W#"
+Maze$(122) = "#ggg# # ## # B."
+Maze$(123) = "##W## # ## #####t#"
+Maze$(124) = "D B # ##k# r ###"
+Maze$(125) = "#### ## ### r r #"
+Maze$(126) = "# ## ## ## ."
+Maze$(127) = "# ## ## #########"
+Maze$(128) = "# ## ## ."
+Maze$(129) = "# # # # ##W## ##"
+Maze$(130) = "####### # # #rB W#"
+Maze$(131) = ". # # # #rB B."
+Maze$(132) = "#######.###.#.######"
+
+'M:26
+Maze$(133) = "#######.###.#.####W#"
+Maze$(134) = ". rr# ## # ttt#B."
+Maze$(135) = "####### ## # rr # #"
+Maze$(136) = ". rr# ## ###### #"
+Maze$(137) = "###### ## # rrr t#"
+Maze$(138) = ". # D## #### ###"
+Maze$(139) = "# # # # #"
+Maze$(140) = ". # #### ####W ###"
+Maze$(141) = "#### ## # B #k#"
+Maze$(142) = "#W#### ## # #####L#"
+Maze$(143) = ".B ## # # #"
+Maze$(144) = "#######.##.#.#####.#"
+
+'M:34
+Maze$(145) = "#######.##.#.#####.#"
+Maze$(146) = ". # # #t# #"
+Maze$(147) = "#######.#### # #t# #"
+Maze$(148) = ". L # # #r# #"
+Maze$(149) = "### ##WW#D# # # # #"
+Maze$(150) = "# # # BB # B# # # #"
+Maze$(151) = "# # # # # k# # # #"
+Maze$(152) = "# # # ####### # # #"
+Maze$(153) = "# # #t # # # ."
+Maze$(154) = "# # #g # W##### # #"
+Maze$(155) = "# # #g # B # #"
+Maze$(156) = "###.####.#########.#"
+
+'M:42
+Maze$(157) = "###.####.#########.#"
+Maze$(158) = "# # # # # # # #"
+Maze$(159) = "# # # # # # # # # #"
+Maze$(160) = "# # # #t # # # # # #"
+Maze$(161) = "# # # # # # # # # #"
+Maze$(162) = "# # # # r# # # # # #"
+Maze$(163) = "# # # # # # # # # #"
+Maze$(164) = "# # # # W## # # # #"
+Maze$(165) = "# #k# # B # # #"
+Maze$(166) = "#W###############W #"
+Maze$(167) = ".B D B #"
+Maze$(168) = "### ############.###"
+
+'M:50
+Maze$(169) = "###.############.###"
+Maze$(170) = "# # # ## # #"
+Maze$(171) = "# #L# ## # #"
+Maze$(172) = "# # # ## ## #"
+Maze$(173) = "# #k# #W ### #"
+Maze$(174) = "# ### ## B ## ##W#"
+Maze$(175) = "# ## ## # t#tB."
+Maze$(176) = "# ## ## #L ## #"
+Maze$(177) = "# ## ## #tt## #"
+Maze$(178) = "## ## W#### L## #"
+Maze$(179) = ".L # Brr tt##D#"
+Maze$(180) = "##################.# "
+
+'M:58
+Maze$(181) = "#W################.#"
+Maze$(182) = ".B # # #"
+Maze$(183) = "# k############### #"
+Maze$(184) = "#W# #"
+Maze$(185) = ".B ############## #"
+Maze$(186) = "### # #"
+Maze$(187) = ". # # ##############"
+Maze$(188) = "# # ##############W#"
+Maze$(189) = ". # B."
+Maze$(190) = "# ################W#"
+Maze$(191) = "# BD"
+Maze$(192) = "####################"
+
+'M:3
+Maze$(193) = "####################"
+Maze$(194) = "####################"
+Maze$(195) = ". #"
+Maze$(196) = "######W###W#W## # ."
+Maze$(197) = ". L S S Sk# # #"
+Maze$(198) = "############### # #"
+Maze$(199) = ". # # #"
+Maze$(200) = "########### # # # #"
+Maze$(201) = "#r r r # # # #"
+Maze$(202) = "# g t # # # #"
+Maze$(203) = "# # # #D#"
+Maze$(204) = "########.####.#.##.#"
+
+'M:11
+Maze$(205) = "########.####.#.##.#"
+Maze$(206) = "####### Lt # # # #"
+Maze$(207) = ". # Lt L# # # #"
+Maze$(208) = "#W### ####W## # # #"
+Maze$(209) = ".SW B## # # #"
+Maze$(210) = "#kBs######g## #r # #"
+Maze$(211) = "######ggt# ## # # #"
+Maze$(212) = ". #trt# ## # # #"
+Maze$(213) = "#### #rrt# W# # r#D#"
+Maze$(214) = "#tW# # W B# #### #"
+Maze$(215) = "# B # BsS # #"
+Maze$(216) = "####.##########.##.#"
+
+'M:19
+Maze$(217) = "####.##########.##.#"
+Maze$(218) = ". # # # ."
+Maze$(219) = "## # # ####WW#W# ###"
+Maze$(220) = "## # # # D BBsB ."
+Maze$(221) = "## # # # ##W########"
+Maze$(222) = "## # # # #kBttL ttt#"
+Maze$(223) = "## # # # # LLL LttL#"
+Maze$(224) = ". # # # L ttLt#"
+Maze$(225) = "### # # # L LLtL#"
+Maze$(226) = "#r# # # # L L L#"
+Maze$(227) = ". # # # #L L L ."
+Maze$(228) = "#.####.#.###########"
+
+'M:27
+Maze$(229) = "#.####.#.##W#W######"
+Maze$(230) = ". ### # #LStBt#rrr#"
+Maze$(231) = "# # ## # LLLL# #"
+Maze$(232) = "# # #### # r LWrr #"
+Maze$(233) = "# # # #L r S #"
+Maze$(234) = "# # # ###W L L#rrr#"
+Maze$(235) = "# # # #ttB r # #"
+Maze$(236) = "# # # # ######## ###"
+Maze$(237) = "# # # # r g ## # ."
+Maze$(238) = "# # # # r r t## # #"
+Maze$(239) = "# # # # g t ## # #"
+Maze$(240) = "#.#.#.##########.#.#"
+
+'M:35
+Maze$(241) = "#.#.#.##########.#.#"
+Maze$(242) = "# #L# # # #"
+Maze$(243) = "# #t# ####W##### # #"
+Maze$(244) = "# #g# B #"
+Maze$(245) = "# ##################"
+Maze$(246) = "# ##############W###"
+Maze$(247) = "# B #"
+Maze$(248) = "##W############### #"
+Maze$(249) = ". B rrLrrr k# #"
+Maze$(250) = "###W############## #"
+Maze$(251) = "# B D."
+Maze$(252) = "##.#################"
+
+'M:43
+Maze$(253) = "##.#################"
+Maze$(254) = "## ######W#W########"
+Maze$(255) = "## # SsS ."
+Maze$(256) = "## # ###W#########W#"
+Maze$(257) = "## # #kgSs L S."
+Maze$(258) = "## # ###############"
+Maze$(259) = "## # ."
+Maze$(260) = "## #################"
+Maze$(261) = "## # sL L#"
+Maze$(262) = "## # #W#####W##### #"
+Maze$(263) = "## # DS Ss E## #"
+Maze$(264) = "##.###############.#"
+
+'M:51
+Maze$(265) = "##.###########W###.#"
+Maze$(266) = "## # S Ds#"
+Maze$(267) = "## # ###############"
+Maze$(268) = "## # ."
+Maze$(269) = "## ##W#####W###### #"
+Maze$(270) = "#W B B # #"
+Maze$(271) = ".B # #####W##L # #"
+Maze$(272) = "#### # B # L# #"
+Maze$(273) = "# # #### #k# ##"
+Maze$(274) = "# ttt # # # ### #W#"
+Maze$(275) = "# # # #B."
+Maze$(276) = "#######.# ########.#"
+
+'M:59
+Maze$(277) = "#######.# W#######.#"
+Maze$(278) = "#kttt # # S r t g# #"
+Maze$(279) = "# tt L# ########D# #"
+Maze$(280) = "# ttt # #tttttttt# #"
+Maze$(281) = "#L L # ########## #"
+Maze$(282) = "# # #"
+Maze$(283) = "###.##############W#"
+Maze$(284) = "# W # B."
+Maze$(285) = ". # B # #"
+Maze$(286) = "####################"
+Maze$(287) = ". ."
+Maze$(288) = "####################"
+
+'M:4
+Maze$(289) = "####################"
+Maze$(290) = "####################"
+Maze$(291) = "#######W###W####WW##"
+Maze$(292) = ". St# S BBk."
+Maze$(293) = "# #W###### #########"
+Maze$(294) = "# .B tttt LtLLtttt#"
+Maze$(295) = "# #L ttt L ttttLtt."
+Maze$(296) = "# # L L L LL LL L#"
+Maze$(297) = "# #L L LL LL ."
+Maze$(298) = "# #####W##########W#"
+Maze$(299) = "# sS D B."
+Maze$(300) = "#########.##########"
+
+'M:12
+Maze$(301) = "#########.##########"
+Maze$(302) = "# # # ."
+Maze$(303) = "# ####### # ########"
+Maze$(304) = "# # ###W####"
+Maze$(305) = "#L##### # # #ttS ."
+Maze$(306) = "# # # # #####W##"
+Maze$(307) = "# # ##### # # tt S ."
+Maze$(308) = "#L# ###W# # # tt ###"
+Maze$(309) = "# L sB# # # #"
+Maze$(310) = "# ##### # # # rrrr #"
+Maze$(311) = "#S k# #D# rrrr #"
+Maze$(312) = "#.#######.#.########"
+
+'M:20
+Maze$(313) = "#.#######.#.#W######"
+Maze$(314) = ". # # # Btttts."
+Maze$(315) = "### # # # # #WW#####"
+Maze$(316) = ". # # # # #D BBLLtt#"
+Maze$(317) = "# # # # # # # Bt##W#"
+Maze$(318) = "# # # # # # #LWW#kS."
+Maze$(319) = "# # # # # # #LBS####"
+Maze$(320) = "# # # # # # #ttttt #"
+Maze$(321) = "# # # # # # # tttt #"
+Maze$(322) = "# # # # # # # tttt #"
+Maze$(323) = ". # # # # # # tttt #"
+Maze$(324) = "#.#.#.###.#.######.#"
+
+'M:28
+Maze$(325) = "#.#.#.###.#.######.#"
+Maze$(326) = "#L# # # # DrLrr#g#"
+Maze$(327) = "# # #S# ### #rrr##W#"
+Maze$(328) = "#L# ### #t# # Lr#kS."
+Maze$(329) = "# # # W #t# #S L####"
+Maze$(330) = "#L#r# B rt# #BBL #"
+Maze$(331) = "#t# # ##### #Lttt###"
+Maze$(332) = "##### # #LtLt# ."
+Maze$(333) = ". g# # #####LtLt# #"
+Maze$(334) = "####W # #tttLttLt# #"
+Maze$(335) = "#tttB # #gLtttLtt# #"
+Maze$(336) = "#######.##########.#"
+
+'M:36
+Maze$(337) = "#######.########W#.#"
+Maze$(338) = "# r r # Ss #"
+Maze$(339) = "# t # # ######W# #"
+Maze$(340) = "#####W# # # Bs #"
+Maze$(341) = "# B # # ###### #"
+Maze$(342) = "# ####### # #ktgt# #"
+Maze$(343) = "# # # #L Lt# #"
+Maze$(344) = "# # # # #r L # #"
+Maze$(345) = "# #W## # # #L # #"
+Maze$(346) = "# sS # # # L # #"
+Maze$(347) = ".###D# # # # L # #"
+Maze$(348) = "####.# ####.####.#.#"
+
+'M:44
+Maze$(349) = "####.# ####.####.#.#"
+Maze$(350) = "#W## # #gg# #tt# #r#"
+Maze$(351) = ".Ss # #tt# #tt#####"
+Maze$(352) = "#W#### #Lt# # ttL t#"
+Maze$(353) = ".Bs #tt#k#L t #"
+Maze$(354) = "#W######tt### BS #"
+Maze$(355) = ".S###ttttL L tttt #"
+Maze$(356) = "# ###tttt L tttt #"
+Maze$(357) = "# ###rrrLr L rrr #"
+Maze$(358) = "# #WW rrrr L L #"
+Maze$(359) = "# DSBrrrLrrL rrrr #"
+Maze$(360) = "#.##################"
+
+'M:52
+Maze$(361) = "#.W#################"
+Maze$(362) = "# Ss ."
+Maze$(363) = "####W#######D#####W#"
+Maze$(364) = ".k# B tttttL # s B."
+Maze$(365) = "###L LL L L # ### #"
+Maze$(366) = "# LL Ltttt # ### #"
+Maze$(367) = "# L L LL L L# # # #"
+Maze$(368) = "#rrLL L ttttL# # # #"
+Maze$(369) = "# rr rr L L# # # #"
+Maze$(370) = "#W############ # # #"
+Maze$(371) = ".Sss # #"
+Maze$(372) = "##################.#"
+
+'M:60
+Maze$(373) = "################W#.#"
+Maze$(374) = "# sB #"
+Maze$(375) = "# ################L#"
+Maze$(376) = "# #ttLL LL L LL L ."
+Maze$(377) = "# #W##############W#"
+Maze$(378) = "# sS sS."
+Maze$(379) = "#W################W#"
+Maze$(380) = ".B L B."
+Maze$(381) = "####################"
+Maze$(382) = "#W################W#"
+Maze$(383) = ".S S."
+Maze$(384) = "####################"
+
+'M:5 (5th row over)
+Maze$(385) = "##################W#"
+Maze$(386) = "##################S."
+Maze$(387) = "####t t rrrrt##### #"
+Maze$(388) = ". B L r LW## #"
+Maze$(389) = "# B L B L #"
+Maze$(390) = "############### W###"
+Maze$(391) = ".#g g #sB#t#"
+Maze$(392) = "############# ## # #"
+Maze$(393) = ". L rr rr L# # #"
+Maze$(394) = "################ # #"
+Maze$(395) = ". L t ttk# D #"
+Maze$(396) = "##################.#"
+
+'M:13
+Maze$(397) = "#W################.#"
+Maze$(398) = ".B . #"
+Maze$(399) = "################## #"
+Maze$(400) = "#W##############W# #"
+Maze$(401) = ".S B #"
+Maze$(402) = "#W###############WD#"
+Maze$(403) = ".B L L LL L L LL S #"
+Maze$(404) = "# tttttt L ttLtt ###"
+Maze$(405) = "#L LL rrrr rrL #k#"
+Maze$(406) = "# rrLrr L rrrr L# #"
+Maze$(407) = "# LL L L L L #L#"
+Maze$(408) = "################.#.#"
+
+'M:21
+Maze$(409) = "#W##############.#.#"
+Maze$(410) = ".Sk# ttttt LLt#D# #"
+Maze$(411) = "####LLLLttttL##LL# #"
+Maze$(412) = "#tttrrrLLLrrLrrL # #"
+Maze$(413) = "##W#############W# #"
+Maze$(414) = ". Ss sS #"
+Maze$(415) = "# ################ #"
+Maze$(416) = "# #LtLtt tttLL LL# #"
+Maze$(417) = "# # LLL LLLLL L # #"
+Maze$(418) = "# # ttttLLtttt L# #"
+Maze$(419) = "# #L LLL LLL tL# #"
+Maze$(420) = "#.#.##############.#"
+
+'M:29
+Maze$(421) = "#.#.##############.#"
+Maze$(422) = "# # # #"
+Maze$(423) = "# # ############ # #"
+Maze$(424) = ". # # t# # #"
+Maze$(425) = "#L# # ## ## tt# # #"
+Maze$(426) = "# # # # ## #### # #"
+Maze$(427) = "# # # # ## # # #"
+Maze$(428) = ". # # # ## # ##W# #"
+Maze$(429) = "### # # ## # # Ss #"
+Maze$(430) = "# # # ## # # ##W#"
+Maze$(431) = "# D # ## # # #kS#"
+Maze$(432) = "#####.##.##.#.#.##.#"
+
+'M:37
+Maze$(433) = "#####.##.##.#.#.##.#"
+Maze$(434) = "#rrt# # ## # # # #"
+Maze$(435) = "#LrL# # ## # # #B #"
+Maze$(436) = "#rr # # ## # # # #"
+Maze$(437) = "# LL #D# ## # # # B#"
+Maze$(438) = "# LLLL # ## # # # #"
+Maze$(439) = "# tLt # ## # # #B #"
+Maze$(440) = "#tLLLLL# ## # # # #"
+Maze$(441) = "#tttLLL# ## # # # B#"
+Maze$(442) = "#LL###L# ## # # # #"
+Maze$(443) = "# t#k#t# ## # # # #"
+Maze$(444) = "#.##.###.##.#.#.##.#"
+
+'M:45
+Maze$(445) = "#.##.###.##.#.#.##.#"
+Maze$(446) = "# # # # ## # # # #"
+Maze$(447) = "# # # # ## # # # #"
+Maze$(448) = "# # # # ## # # # #"
+Maze$(449) = "# # # # ## # # W# #"
+Maze$(450) = "# # # # ## # # Ss #"
+Maze$(451) = "#tt# # # ## # #### #"
+Maze$(452) = "#tt# # # ## # #### #"
+Maze$(453) = "#tt# # # ## # #### #"
+Maze$(454) = "#tt# # # ## # #W## #"
+Maze$(455) = "#tt# # # ##L# Ss #"
+Maze$(456) = "####.###.##.######.#"
+
+'M:53
+Maze$(457) = "#W##.###.##.######.#"
+Maze$(458) = ".Ss D #k # #rrrr #"
+Maze$(459) = "#### # #### #rrt #"
+Maze$(460) = ". # # tt #r#rr #"
+Maze$(461) = "# # # L#r#tttt #"
+Maze$(462) = "# # # tt #r#tttt #"
+Maze$(463) = "# # # L #r#tttt #"
+Maze$(464) = "# r# # tt #r#t L##W#"
+Maze$(465) = "# r# #L L #r#ttt#rS."
+Maze$(466) = "#r # # t L#W# ##W#"
+Maze$(467) = "#r # # L sSs B."
+Maze$(468) = "####.###############"
+
+'M:61
+Maze$(469) = "##W#.###############"
+Maze$(470) = "#kB# ###############"
+Maze$(471) = "#L # L L#"
+Maze$(472) = ". ############### #"
+Maze$(473) = "#W### tttL Lrrr # #"
+Maze$(474) = ".Bs #Lttt LL ttt # #"
+Maze$(475) = "#W# # tttL Lttt # #"
+Maze$(476) = ".S# #L L LLL L # #"
+Maze$(477) = "# # #L L L L L # #"
+Maze$(478) = "# # #######WD###W# #"
+Maze$(479) = ". # sS sS #"
+Maze$(480) = "####################"
+
+'M:6
+Maze$(481) = "####################"
+Maze$(482) = ". ########W#W#W#W###"
+Maze$(483) = "# # D #ks B S S B #"
+Maze$(484) = "# # # ############ #"
+Maze$(485) = "# # # gLtgtttggg # #"
+Maze$(486) = "# # # rttgrrggtt # #"
+Maze$(487) = "# # # LgtggLttttg# #"
+Maze$(488) = "# # # LtttLLtttr # #"
+Maze$(489) = "# # # rttgLLgLttr# #"
+Maze$(490) = "# # ############## #"
+Maze$(491) = "# # # #"
+Maze$(492) = "#.#.##############.#"
+
+'M:14
+Maze$(493) = "#.#.##W#W#W####W##D#"
+Maze$(494) = "# # # B S S LS # #"
+Maze$(495) = "# # # # # # t t# # #"
+Maze$(496) = "# #L# # # #tLtL#L# #"
+Maze$(497) = "# # # # # #LL t# # #"
+Maze$(498) = "# # # # # #LL L# # #"
+Maze$(499) = "# # # # # #tLLL# #L#"
+Maze$(500) = "# # # # # #LLLL# # #"
+Maze$(501) = "# #L# # # #LttL# # #"
+Maze$(502) = "# # # # ##k s W # #"
+Maze$(503) = "# # # # ## ### S # #"
+Maze$(504) = "#.#.#.#.##.###.#.#.#"
+
+'M:22
+Maze$(505) = "#.#.#.#.##.###.#.#.#"
+Maze$(506) = "# # # ###gggg L# # #"
+Maze$(507) = "# # # #gggL ggg#k# #"
+Maze$(508) = "# # #.#W########## #"
+Maze$(509) = "# # S # #"
+Maze$(510) = "# ##WL########## #D#"
+Maze$(511) = "# # Ss #"
+Maze$(512) = "# # ########W#####W#"
+Maze$(513) = "# # #ttttLrrSrrrr S."
+Maze$(514) = "# # #############WW#"
+Maze$(515) = "# # s L BB."
+Maze$(516) = "#.##.###############"
+
+'M:30
+Maze$(517) = "#.##.###############"
+Maze$(518) = "# ##sD ."
+Maze$(519) = "# #t#######W########"
+Maze$(520) = "# #g# #r#ttB ."
+Maze$(521) = "# # # #r############"
+Maze$(522) = "# # # # #L ttLttt #"
+Maze$(523) = "# # # # # tttttt ."
+Maze$(524) = "#L# # # # L L rr L #"
+Maze$(525) = "# # # # #B L #"
+Maze$(526) = "# # # # #######W####"
+Maze$(527) = "# # # # # Ssk ."
+Maze$(528) = "#.#.#.#.#.##########"
+
+'M:38
+Maze$(529) = "#.W.#.#.#.W#########"
+Maze$(530) = "# S # # Ss ."
+Maze$(531) = "# # # # ########## #"
+Maze$(532) = "# # # # #ttLtgL#k# ."
+Maze$(533) = "# # # # #LtgLgt#L# #"
+Maze$(534) = "# # # # # gttgL# # #"
+Maze$(535) = "# # # # #LgLggL#L# #"
+Maze$(536) = "# # # ### gtt t# # #"
+Maze$(537) = "# # # ### LLL # # #"
+Maze$(538) = "# # # #W#D#L t #L# #"
+Maze$(539) = "# # # sS# # L # # #"
+Maze$(540) = "#.#.#.#.#.######.#.#"
+
+'M:46
+Maze$(541) = "#.#.#.#.#.######.#.#"
+Maze$(542) = "# # # # # #tttt# # #"
+Maze$(543) = "# # # # #LL L# # #"
+Maze$(544) = "# # # # WW## rt# # #"
+Maze$(545) = "# # # # SSk#tLL# # #"
+Maze$(546) = "# # # # ####LLL# # #"
+Maze$(547) = "# # # ### tggt# # #"
+Maze$(548) = "# # # # DLL ttr# # #"
+Maze$(549) = "# # # # # gLgtg# # #"
+Maze$(550) = "# # # # #LggLgt# # #"
+Maze$(551) = "# # # # # gLLtg# #"
+Maze$(552) = "#.#.#.#.############"
+
+'M:54
+Maze$(553) = "#.#.#.#.W########W##"
+Maze$(554) = "# # # # Ss S ."
+Maze$(555) = "# # # # ########## #"
+Maze$(556) = "# # # # #LLtttttg# #"
+Maze$(557) = "#L# # #L# LtLggt # #"
+Maze$(558) = "# # # # #LLgttgLL# #"
+Maze$(559) = "# # # # # ttrrt # #"
+Maze$(560) = "# # #L# #LLttLLLL# ."
+Maze$(561) = ". # # # # gtrL#D## #"
+Maze$(562) = "### # # # rt #L # #"
+Maze$(563) = ".k# # # # rgr # L# #"
+Maze$(564) = "#.#.#.#.#######.##.#"
+
+'M:62
+Maze$(565) = "#.#.#.#.W####W#.##.#"
+Maze$(566) = "# # # # B S # ."
+Maze$(567) = "# # # ####W#####W###"
+Maze$(568) = "# # # #tttS S ."
+Maze$(569) = "# # # ##############"
+Maze$(570) = "# # # ############W#"
+Maze$(571) = "# # sS."
+Maze$(572) = "# # ################"
+Maze$(573) = "# # ."
+Maze$(574) = "# ################W#"
+Maze$(575) = "# L sB."
+Maze$(576) = "####################"
+
+'M:7
+Maze$(577) = "##W#W##W###W#W#W#W##"
+Maze$(578) = "#tB Ss Ss B S B S #"
+Maze$(579) = "### ## ### # # # # #"
+Maze$(580) = "# # # #t# # # # # #"
+Maze$(581) = "# # # # # # # # # #"
+Maze$(582) = "# # # # # # # # # #"
+Maze$(583) = "# # # # # # # # # #"
+Maze$(584) = "# # # # # # # # # #"
+Maze$(585) = "# # # # # # # # # #"
+Maze$(586) = "# # # #L# # # # # #"
+Maze$(587) = "# # # # # # # # # #"
+Maze$(588) = "#.#.##.#.#.#.#.#.#.#"
+
+'M:15
+Maze$(589) = "#.#.##.#.#.#.#.#.#.#"
+Maze$(590) = "# #L # # #L# # #L# #"
+Maze$(591) = "# # # # # # # # #L#"
+Maze$(592) = "# # L# # # # # # # #"
+Maze$(593) = "# # # # # # # # # #"
+Maze$(594) = "# #L # # # #t# # # #"
+Maze$(595) = "# # # # # #t# # # #"
+Maze$(596) = "# # L# # # # # # # #"
+Maze$(597) = "# # # # # # # # # #"
+Maze$(598) = "# #L # # # #t# # # #"
+Maze$(599) = "# # #L# # #t#L# # #"
+Maze$(600) = "#.#.##.#.#.###.#.#.#"
+
+'M:23
+Maze$(601) = "#.#.##.#.#.###.#.#.#"
+Maze$(602) = "# #k # # # #r# # # #"
+Maze$(603) = "# #### # # #r# # # #"
+Maze$(604) = "# #gt# # # # # # # #"
+Maze$(605) = "# #gg# # # # # # # #"
+Maze$(606) = "# ## # # # # # # # #"
+Maze$(607) = "# # # #r# # #"
+Maze$(608) = "#W###### W####W# # #"
+Maze$(609) = ".S S B # #"
+Maze$(610) = "#W#######W######W# #"
+Maze$(611) = ".S B L sB #"
+Maze$(612) = "################.#D#"
+
+'M:31
+Maze$(613) = "#W##############.# #"
+Maze$(614) = ".Bs #t# # #"
+Maze$(615) = "#W###### ### #t# # #"
+Maze$(616) = ".S #t# #t# # #"
+Maze$(617) = "########## # #t# # #"
+Maze$(618) = "#W######## # #t#t# #"
+Maze$(619) = ".S ## # #t#g# #"
+Maze$(620) = "## rrgg ## # #t#t# #"
+Maze$(621) = "########## #L# #t#L#"
+Maze$(622) = "#W######## # # ### #"
+Maze$(623) = ".B # # ## s#"
+Maze$(624) = "##########.#.#.##.##"
+
+'M:39
+Maze$(625) = "#W########.#.#.##.W#"
+Maze$(626) = ".S #### # #k B."
+Maze$(627) = "#W##### # # #####"
+Maze$(628) = ".S ### # # ."
+Maze$(629) = "####D# #t# # #####W#"
+Maze$(630) = "#tttt# # # # sB."
+Maze$(631) = "#tttt# # # #######W#"
+Maze$(632) = "#tttt# # # # sS."
+Maze$(633) = "#tttt# # # # #######"
+Maze$(634) = "# t# # # # # #####W#"
+Maze$(635) = "#tt# # # # #rrrsS."
+Maze$(636) = "######.#.#.#.#######"
+
+'M:47
+Maze$(637) = "##W###.#.#.#.####W##"
+Maze$(638) = "#kS # # sB #"
+Maze$(639) = "########W# ####### #"
+Maze$(640) = "# r# #L BsD # # #"
+Maze$(641) = "# # #ttt## # # # #"
+Maze$(642) = "# # #tttt# # # # #"
+Maze$(643) = "# # #tttt# # # # #"
+Maze$(644) = "# # #tLtt# # # # #"
+Maze$(645) = "# # #tttL# # # # #"
+Maze$(646) = "# # ###### # # # #"
+Maze$(647) = "# # # # # # #"
+Maze$(648) = "####.####.#.#.####.#"
+
+'M:55
+Maze$(649) = "##W#.####.#.#.####.#"
+Maze$(650) = ". B# #### #"
+Maze$(651) = "# W######## ### #"
+Maze$(652) = "# B # # # ####"
+Maze$(653) = "# tt # # # # k#"
+Maze$(654) = "########### # # # L#"
+Maze$(655) = "#W# rtttg # # # # #"
+Maze$(656) = ".B# tttgg # # # #LL#"
+Maze$(657) = "### tgttt D# # # #"
+Maze$(658) = "# rgttt ### # # # L#"
+Maze$(659) = "#gttgtt ### # #L #"
+Maze$(660) = "#########.###.#.##.#"
+
+'M:63
+Maze$(661) = "#W#######.###.#.##.#"
+Maze$(662) = ".Bs # # #"
+Maze$(663) = "#W########### # # #"
+Maze$(664) = ".Bs # # #"
+Maze$(665) = "############# # # #"
+Maze$(666) = "#W########### # # #"
+Maze$(667) = ".Bs # # #"
+Maze$(668) = "#W############# # #"
+Maze$(669) = ".Bs ."
+Maze$(670) = "#W################W#"
+Maze$(671) = ".Bs B."
+Maze$(672) = "####################"
+
+'M:8
+Maze$(673) = "#####W#W#W###W#W#W##"
+Maze$(674) = "#k## S B B ##S S S #"
+Maze$(675) = "# ## # #D# # # # # #"
+Maze$(676) = "# ## # # # # # # # #"
+Maze$(677) = "# ## # # # # # # # #"
+Maze$(678) = "# ## # # # # # # # #"
+Maze$(679) = "# ## # # # # # # # #"
+Maze$(680) = "# ## # # # # # # # #"
+Maze$(681) = "# ## # # # # # # # #"
+Maze$(682) = "# ## # # # # # # # #"
+Maze$(683) = "# ## # # # # # # # #"
+Maze$(684) = "#.##.#.#.#.#.#.#.#.#"
+
+'M:16
+Maze$(685) = "#.##.#.#.#.#.#.#.#.#"
+Maze$(686) = "# ## # # # # #L# #L#"
+Maze$(687) = "# ## # # # # #t# # #"
+Maze$(688) = "# ## # # # # #g# # #"
+Maze$(689) = "# ## # # # # ### # #"
+Maze$(690) = "# ## # # # # ### # #"
+Maze$(691) = "# ## # #L# # ### # #"
+Maze$(692) = "# ## # # # # ### # #"
+Maze$(693) = "# ## # # # # ### # #"
+Maze$(694) = "# ## # # # # ### # #"
+Maze$(695) = "# ##L# # # # ### # #"
+Maze$(696) = "#.##.#.#.#.#.###.#.#"
+
+'M:24
+Maze$(697) = "#.##.#.#.#.#.##W.#.#"
+Maze$(698) = "# ## # # # # # S # #"
+Maze$(699) = "# ## # # # # # # # #"
+Maze$(700) = "# ## # # # # # # # #"
+Maze$(701) = "# ## # # # # # # # #"
+Maze$(702) = "# ## # # #L# # # # #"
+Maze$(703) = "# ## #L# # # # # # #"
+Maze$(704) = "# ## # # # # # # # #"
+Maze$(705) = "# ## # # # # # # # #"
+Maze$(706) = "# ## # # # # W # # #"
+Maze$(707) = "# ## # # # # S # # #"
+Maze$(708) = "#.##.#.#.#.#.###.#.#"
+
+'M:32
+Maze$(709) = "#.##.#.#.#.#.###.#.#"
+Maze$(710) = "# ## # # # #D# # # #"
+Maze$(711) = "# ## # # # # # # # #"
+Maze$(712) = "# ## # # # #L# # # #"
+Maze$(713) = "# ## #L# # # # # # #"
+Maze$(714) = "# ## # # # # # # # #"
+Maze$(715) = "# ## # # # # # # # #"
+Maze$(716) = "# ## # # # # # # # #"
+Maze$(717) = "# ## # # # # # # # #"
+Maze$(718) = "# ## # # # W W # # #"
+Maze$(719) = "# ##k# # # B S # # #"
+Maze$(720) = "#.####.#.#.#.###.#.#"
+
+'M:40
+Maze$(721) = "#.####.#.#.#.###.#.#"
+Maze$(722) = ". # #t# # # ### # #"
+Maze$(723) = "#W# #W# # # ### # #"
+Maze$(724) = ".S S # # ### # #"
+Maze$(725) = "####W#W# # # ### # #"
+Maze$(726) = ". BsB # # ### # #"
+Maze$(727) = "#W###### # # ### # #"
+Maze$(728) = ".S # # ### # #"
+Maze$(729) = "######## # # ### # #"
+Maze$(730) = "##W###r# # # ### # #"
+Maze$(731) = ". S k# #D# # ### # #"
+Maze$(732) = "#.####.#.#.#.###.#.#"
+
+
+'M:48
+Maze$(733) = "#.####.#.#.#.###.#.#"
+Maze$(734) = "# # # # # ###L# #"
+Maze$(735) = "# # # # # # ###t# #"
+Maze$(736) = "# # # #L# # ##### #"
+Maze$(737) = "# # # # # # ###t# #"
+Maze$(738) = "# # # #k# # ### # #"
+Maze$(739) = "# # # ### # ### #L#"
+Maze$(740) = "# # # #t# # ### # #"
+Maze$(741) = "# # # #t# # ### # #"
+Maze$(742) = "# # # # # # ### # #"
+Maze$(743) = "# # #L# # # ### #D#"
+Maze$(744) = "#.##.#.#.#.#.###.#.#"
+
+'M:56
+Maze$(745) = "#.##.#.#.#.#.###.#.#"
+Maze$(746) = "# ## # # # #k### # #"
+Maze$(747) = "# ## # # # ###W# # #"
+Maze$(748) = "# ## # # # B # #"
+Maze$(749) = "# ## # # ####W##D# #"
+Maze$(750) = "# ## #L# #tttBttr# #"
+Maze$(751) = "# ## # # #gttt L# #"
+Maze$(752) = "# ## # # # trtSgL# #"
+Maze$(753) = "# ## # # #rr rtrt# #"
+Maze$(754) = "# #W # # #rtBgggt# #"
+Maze$(755) = "# sB # # #gg ttrt# #"
+Maze$(756) = "#.##.#.#.#########.#"
+
+'M:64
+Maze$(757) = "#.##.#.#.#########.#"
+Maze$(758) = "# # # # #ttt rrt# #"
+Maze$(759) = "# #L# # ####t tt# #"
+Maze$(760) = "# # # # # r rrr # #"
+Maze$(761) = "# t# # # #Lrttrt # #"
+Maze$(762) = "#t # # # # rrLrrL# #"
+Maze$(763) = "# t#k# # #Stt tt # #"
+Maze$(764) = "###### # #L L# #"
+Maze$(765) = ". # # # #"
+Maze$(766) = "######W#.#####W# # #"
+Maze$(767) = ". Ss SsD #"
+Maze$(768) = "####################"
+Return
+
+Makedotobj:
+Data !?Short sword,!?Warriors sword,!?Magical sword
+Data $/Amulet,%@Waters of healing,$/statue of a golden eagle
+Data !?Whip,!?Knife,!?Shield
+Data $/Chalice,$/bunch of golden coins,%/Healing potion
+Data !?Iron fist,!?Detonator,%@Spider Antidote
+Data |/Nothing at all
+
+Wallcols:
+Data 12,4,6,2,5,7,8,14,8,11,9,1,4,2,2,1,2,3,10,1,8,8
+Data 2,13,2,5,6,7,9,11,3,3,4,6,12,9,3,5,7,2,4,12,9,4
+Data 5,8,9,7,1,3,6,2,4,5,13,11,12,11,10,9,14,15,13,1
+
+Wallbord:
+Data 4,12,13,14,15,1,14,2,9,2,4,7,3,13,8,9,4,2,14,8,7
+Data 1,13,3,15,4,4,10,2,4,14,1,11,14,1,1,13,12,14,14
+Data 10,2,14,14,12,9,8,11,10,14,12,9,13,14,9,1,2,3,4
+Data 5,8,8,2,14
+
+Sub Cleardotarea
+ Line (Sx - 4, Sy)-(Sx + 23, Sy + 35), 0, BF
+ Return
+End Sub
+
+Sub CopydotPlayer
+ Line (CIX1 + 15, CIY1 + 23)-(CIX1 + 37, CIY1 + 45), 0, BF
+ Circle (CIX1 + 28, CIY1 + 35), 10, 15: Paint (CIX1 + 28, CIY1 + 35), 15
+ Circle (CIX1 + 28, CIY1 + 35), 10, 6: Circle (CIX1 + 28, CIY1 + 35), 9, 6
+ For E = 1 To 5: Circle (CIX1 + 28, CIY1 + 35), E, 0: Next
+ Circle (CIX1 + 28, CIY1 + 35), 1, 0
+ Get (CIX1 + 15, CIY1 + 23)-(CIX1 + 37, CIY1 + 45), Player%()
+ Return
+
+End Sub
diff --git a/samples/maze-of-misery/src/mzupd2_orig.bas b/samples/maze-of-misery/src/mzupd2_orig.bas
new file mode 100644
index 00000000..310d922d
--- /dev/null
+++ b/samples/maze-of-misery/src/mzupd2_orig.bas
@@ -0,0 +1,1922 @@
+'Maze of Misery
+'By Steve M. (c),May 5,01
+'****************
+
+'Please visit my web page at: www.angelfire.com/bc2/cuebasic/qpage.html
+'
+'Disclaimer: This program may not be distributed, modified or copied without
+'written permission from the author at yochatwitme@yahoo.com.
+'Not liable for system or hardware damage. Tho' I can assure you that you
+'won't experience any problems. Email me at yochatwitme@yahoo.com about
+'any concerns or difficulties you may be having.
+'Finally, you have my permission to post the program on your web page.
+'Hope you enjoy the game.
+'
+'Thanks. SM :)
+'Gbgames Chatname: QB4ever
+
+DECLARE SUB Cleardotarea ()
+DECLARE SUB CopydotPlayer ()
+DECLARE SUB Menu ()
+
+dim shared false as single
+false=0
+dim shared true as single
+true=-1
+'CONST FALSE = 0
+'CONST TRUE = NOT FALSE
+
+'CLEAR 2000, 2000
+DIM T$(150), Wall%(1 TO 300), Wall2%(1 TO 300), Wall3%(1 TO 300)
+DIM SHARED Player%(1 TO 300), Maze$(768), Object$(20), Door%(1 TO 300)
+DIM EDoor%(1 TO 300), Keylock%(1 TO 300), Clrobject%(1 TO 300)
+DIM Gold%(1 TO 300), Treasure%(1 TO 300), Diamond%(1 TO 300)
+DIM Diamond2%(1 TO 300), Enemy%(1 TO 300), Gem%(1 TO 300)
+DIM Enemydotpos(16), Spider%(1 TO 300), Spider2%(1 TO 300)
+DIM Spike%(1 TO 300), Spikemask%(1 TO 300), Wallmask%(1 TO 300)
+DIM Web%(1 TO 300), Wcs(64, 1), Keyfl(64), Clrkey(64)
+DIM Spiderfr2%(1 TO 300), Spiderpfr2%(1 TO 300), Playerdeath%(1 TO 300)
+DIM SHARED Reptxt%(1 TO 3000)
+
+Start:
+X = 154: Y = 40: MatrixY = 14: MatrixX = 6: Lives = 5: Health = 9000
+En = 1: Dx = -30: Lx = -1: Dy = 1: SpacerX = 0: SpacerY = 0: EVL = 11
+CIX1 = 275: CIY1 = 145: CIY2 = 90: Rm = 2: Web = 20: Glow = 1: Adv = 0
+M2 = -1: V2x = 1: G = 1
+Health$ = "Good": M1$ = "Mazes of Misery": TIME$ = "00:00:00"
+T$ = CHR$(0) + CHR$(63) + CHR$(48) + CHR$(48) + CHR$(60) + CHR$(48) + CHR$(48) + CHR$(48) + CHR$(0)
+RESTORE Wallcols: FOR A = 1 TO 64: READ Wcs(A, 0): NEXT
+RESTORE Wallbord: FOR A = 1 TO 64: READ Wcs(A, 1): NEXT
+
+BegindotMaze:
+
+'Setup array picture images
+
+SCREEN 12: CLS : RANDOMIZE TIMER
+GOSUB Copydotwall: GOSUB Cleardotplayer
+GOSUB Copydotwall2: GOSUB Cleardotplayer
+GOSUB Copydotwall3: GOSUB Cleardotplayer
+GOSUB CopydotPlayer: GOSUB Cleardotplayer
+GOSUB CopydotCleardotObject 'This array clears the current image
+GOSUB CopydotDoor: GOSUB Cleardotplayer
+GOSUB CopydotKeylock: GOSUB Cleardotplayer
+GOSUB CopydotTreasure: GOSUB Cleardotplayer
+GOSUB CopydotRing: GOSUB Cleardotplayer
+GOSUB CopydotRing2: GOSUB Cleardotplayer
+GOSUB CopydotGem: GOSUB Cleardotplayer
+GOSUB CopydotSpider: GOSUB Cleardotplayer
+GOSUB CopydotSpider2: GOSUB Cleardotplayer
+GOSUB CopydotWeb: GOSUB Cleardotplayer
+GOSUB CopydotSpike: GOSUB Cleardotplayer
+SpacerX = 0: SpacerY = 0: GOSUB Titledotscr
+Begin:
+frm = 1: SCREEN 12: CLS : GOSUB Builddotmazes
+SpacerX = 0: SpacerY = 0: GOSUB RoomdotCheck: GOSUB Gamedotstatus
+r = StartdotA: SpacerX = 0: SpacerY = 0
+
+Kyboard:
+do: loop while timer=oldtimer!
+oldtimer!=timer
+FOR i=1 to 100
+GOSUB Scandotmaze
+NEXT
+T$ = MID$(Maze$(MatrixY), MatrixX, 1)
+IF T$ = "L" AND (CT >= 1 AND CT <= 20) THEN GOSUB Shocked
+i$ = INKEY$: IF i$ = "" THEN GOTO Kyboard
+
+Oldx = X: Oldy = Y: Matrixydotold = MatrixY: Matrixxdotold = MatrixX
+ IF Kytapfl < 1 THEN
+ IF i$ = CHR$(0) + "M" THEN GOSUB Cleardotman: X = X + 30: MatrixX = MatrixX + 1: IF X > 574 THEN X = 4: Rm = Rm + 8: MatrixY = MatrixY + 96: MatrixX = 1: GOSUB RoomdotCheck
+ IF i$ = CHR$(0) + "K" THEN GOSUB Cleardotman: X = X - 30: MatrixX = MatrixX - 1: IF X < 4 THEN X = 574: Rm = Rm - 8: MatrixY = MatrixY - 96: MatrixX = 20: GOSUB RoomdotCheck
+ IF i$ = CHR$(0) + "H" THEN GOSUB Cleardotman: Y = Y - 36: MatrixY = MatrixY - 1: IF Y < 4 THEN Rm = Rm - 1: GOSUB RoomdotCheck
+ IF i$ = CHR$(0) + "P" THEN GOSUB Cleardotman: Y = Y + 36: MatrixY = MatrixY + 1: IF Y > 400 THEN Rm = Rm + 1: GOSUB RoomdotCheck
+ ELSE
+ IF i$ = "6" THEN GOSUB Cleardotman: X = X + 30: MatrixX = MatrixX + 1: IF X > 574 THEN X = 4: Rm = Rm + 8: MatrixY = MatrixY + 96: MatrixX = 1: GOSUB RoomdotCheck
+ IF i$ = "4" THEN GOSUB Cleardotman: X = X - 30: MatrixX = MatrixX - 1: IF X < 4 THEN X = 574: Rm = Rm - 8: MatrixY = MatrixY - 96: MatrixX = 20: GOSUB RoomdotCheck
+ IF i$ = "8" THEN GOSUB Cleardotman: Y = Y - 36: MatrixY = MatrixY - 1: IF Y < 4 THEN Rm = Rm - 1: GOSUB RoomdotCheck
+ IF i$ = "2" THEN GOSUB Cleardotman: Y = Y + 36: MatrixY = MatrixY + 1: IF Y > 400 THEN Rm = Rm + 1: GOSUB RoomdotCheck
+ END IF
+IF i$ = CHR$(27) THEN i$ = "": GOSUB Menulist
+T$ = MID$(Maze$(MatrixY), MatrixX, 1)
+IF T$ = "#" OR T$ = "@" OR T$ = "%" OR T$ = "W" THEN GOSUB Recalldotolddotposition
+IF T$ = "B" AND M > 11 THEN GOSUB Spiderdotbite
+IF T$ = "L" AND (CT >= 1 AND CT <= 20) THEN GOSUB Shocked
+IF T$ = "k" THEN GOSUB Keyfound
+IF T$ = "E" THEN GOTO Escaped
+IF T$ = "D" THEN Sx = X: Sy = Y: Svsx = Sx: Svsy = Sy: SMy = MatrixY: SMx = MatrixX: GOSUB Recalldotolddotposition: GOSUB Doordotroutine
+IF T$ = "t" THEN GOSUB Treasuredotroutine
+IF T$ = "g" THEN GOSUB Gemdotroutine
+IF T$ = "r" THEN GOSUB Ringdotroutine
+IF Flg THEN GmdotTmr = TIMER: DELAY = CPU * 15 + SQR(2 / 2 + GmdotTmr + .6) + 800: FOR LL = 1 TO DELAY: NEXT
+IF frm > 100 THEN frm = 1
+GOSUB Displaydotman
+GOTO Kyboard
+
+Scandotmaze:
+B = B + 1
+T$ = MID$(Maze$(r), B, 1): SPK$ = MID$(Maze$(r), B, 1)
+GOSUB SkipdotX: Cnt = Cnt + 1
+IF T$ = "B" OR T$ = "S" THEN Spx = SpacerX: Spy = SpacerY: GOSUB Spiderdotroutine
+IF T$ = "L" THEN Lex = SpacerX: Ley = SpacerY: GOSUB Electricdotroutine
+IF T$ = "r" THEN RingdotX = SpacerX: RingdotY = SpacerY + 6: GOSUB Ringdotglow
+IF SPK$ = "s" THEN SpikeX = SpacerX: SpikeY = SpacerY + 6: GOSUB SpikedotMoving
+IF B < 20 THEN RETURN
+B = 1: SpacerX = 0: SpacerY = SpacerY + 36
+IF r < FinishdotA THEN r = r + 1: RETURN
+r = StartdotA: SpacerX = 0: SpacerY = 0
+RETURN
+
+SkipdotX:
+SpacerX = SpacerX + 30
+RETURN
+
+Spiderdotroutine:
+frm = frm + 1
+IF (T$ = "S") THEN Poisondotspider = 1
+T$ = MID$(Maze$(MatrixY), MatrixX, 1)
+IF Demo THEN T$ = MID$(A$(Dmx), Dmy, 1)
+IF (T$ = "B" OR T$ = "S") AND M > 11 THEN GOSUB Spiderdotbite
+IF T$ = "s" AND M2 < 8 THEN GOSUB Spikedotstabb
+M = M + Vx: IF M > 31 THEN Vx = -1
+GOSUB Showdotspider
+IF M < 1 THEN Vx = 1
+LINE (Spx + 12, (Spy - Web))-(Spx + 12, (Spy - 10) + M), 8, BF
+FOR H = 1 TO 800 - Adv + DELAY: NEXT
+RETURN
+
+SpikedotMoving:
+SPK$ = MID$(Maze$(r), B, 1)
+M2 = M2 + V2x: IF M2 > 25 THEN V2x = -1
+IF M2 < 1 THEN V2x = 1
+IF Wm < 1 THEN GET (SpikeX, SpikeY + 36)-(SpikeX + 26, SpikeY + 71), Spikemask%: Wm = 1
+PUT (SpikeX, (SpikeY) + 11 + M2), Spike%, PSET
+IF Wm2 < 1 THEN GET (SpikeX, SpikeY + 5 + M2)-(SpikeX + 18, SpikeY + 36 + M2), Wallmask%: Wm2 = 1
+IF T$ = "s" THEN GOSUB Displaydotman
+PUT (SpikeX, SpikeY + 5 + M2), Wallmask%, AND 'spike mask
+PUT (SpikeX, SpikeY + 36), Spikemask%, PSET 'wall mask
+RETURN
+
+Showdotspider:
+IF Poisondotspider THEN
+ IF INT(frm / 2) = frm / 2 THEN
+ PUT (Spx - 1, (Spy - 30) + 10 + M), Spiderpfr2%, PSET: Poisondotspider = 0: RETURN
+ ELSE
+ PUT (Spx - 1, (Spy - 30) + 10 + M), Spider2%, PSET: Poisondotspider = 0: RETURN
+ END IF
+
+ELSE
+ IF INT(frm / 4) = frm / 4 THEN
+ PUT (Spx - 1, (Spy - 30) + 10 + M), Spiderfr2%, PSET: RETURN
+ ELSE
+ PUT (Spx - 1, (Spy - 30) + 10 + M), Spider%, PSET
+ END IF
+END IF
+RETURN
+
+Showdotspike:
+PUT (SpikeX, SpikeY + M2), Spike%, PSET
+RETURN
+
+Electricdotroutine:
+CT = CT + 1: IF CT >= 1 AND CT <= 20 THEN GOTO EStart
+IF CT > 50 THEN CT = 1
+RETURN
+
+EStart:
+RANDOMIZE TIMER
+IF G < 1 THEN Gv = 1
+G = G + Gv: IF G > 5 THEN Gv = -1
+E1 = RND(6 * RND(0)): E2 = RND(6 * RND(0)): E3 = FIX(RND(6 * RND(0)))
+E4 = FIX(6 * RND(0)): E5 = FIX(6 * RND(0)): E6 = FIX(RND(6 * RND(0)))
+E7 = FIX(6 * RND(0)): E8 = FIX(6 * RND(0)): E9 = FIX(RND(6 * RND(0)))
+LINE (Lex + E1, Ley + 4)-(Lex + E2 * (G + 3), Ley + 9), 14
+LINE -(Lex + E3 + SGN(G + 3), Ley + 15), 14
+LINE -(Lex + E4 * (G + 3), Ley + 20), 14
+LINE -(Lex + E5 + SGN(G + 3), Ley + 26), 14
+LINE -(Lex + E6 * (G + 3), Ley + 32), 14
+LINE -(Lex + E7 + SGN(G + 3), Ley + 38), 14
+FOR H = 1 TO 150 - Adv / 4: NEXT
+Sx = SpacerX + 2: Sy = SpacerY + 4: GOSUB Cleardotarea
+RETURN
+
+Spiderdotbite:
+GOSUB Displaydotman: M$ = "Yow! I've been bitten!": PS = 40 - LEN(M$) / 2
+LOCATE 30, PS: PRINT M$; : GOSUB Hold: GOSUB Clearline
+PUT (X, Y), Playerdeath%, PSET: SLEEP 1: PUT (X, Y), Clrobject%, PSET
+Health = Health - ABS(75 * (T$ = "S") - 55)
+IF Health < 1 THEN LOCATE 30, PS + 4: PRINT "You died!"; : SLEEP 2: GOSUB Clearline: GOTO Fin
+GOSUB Gamedotstatus
+RETURN
+
+Spikedotstabb:
+GOSUB Displaydotman: M$ = "Yarrgghh! I've been sheared!": PS = 40 - LEN(M$) / 2
+LOCATE 30, PS: PRINT M$; : GOSUB Hold: GOSUB Clearline
+PUT (X, Y), Playerdeath%, PSET: SLEEP 1: PUT (X, Y), Clrobject%, PSET
+Health = Health - ABS(75 * (T$ = "S") - 55)
+IF Health < 1 THEN LOCATE 30, PS + 4: PRINT "You died!"; : SLEEP 2: GOSUB Clearline: GOTO Fin
+GOSUB Gamedotstatus
+RETURN
+
+Shocked:
+GOSUB Displaydotman: M$ = "Arrggghh! I've been shocked!": PS = 40 - LEN(M$) / 2
+LOCATE 30, PS: PRINT M$; : GOSUB Hold: GOSUB Clearline
+PUT (X, Y), Playerdeath%, PSET: SLEEP 1: PUT (X, Y), Clrobject%, PSET
+Health = Health - 25
+IF Health < 1 THEN LOCATE 30, 30: PRINT "You died!"; : SLEEP 2: GOSUB Clearline: GOTO Fin
+GOSUB Gamedotstatus
+RETURN
+
+Treasuredotroutine:
+GOSUB Replacedotchar: GOSUB Openeddotchest
+RETURN
+
+Ringdotroutine:
+LOCATE 30, 20: PRINT "You have found a diamond ring!"; : GOSUB Displaydotman
+SLEEP 2: GOSUB Replacedotchar: GOSUB Clearline: GOSUB Cleardotarea
+Fortune = 200: GOSUB Tallydotpnts: GOSUB Gamedotstatus
+RETURN
+
+Gemdotroutine:
+LOCATE 30, 20: PRINT "You have found a valuable gem!!"; : GOSUB Displaydotman
+SLEEP 2: GOSUB Replacedotchar: GOSUB Clearline: GOSUB Cleardotarea
+Fortune = 400: GOSUB Tallydotpnts: GOSUB Gamedotstatus
+RETURN
+
+Ringdotglow:
+IF Glow THEN PUT (RingdotX, RingdotY), Diamond2%, PSET: Glow = 0
+IF RIGHT$(TIME$, 2) < "01" THEN RETURN
+Glow = 1
+IF Glow THEN PUT (RingdotX, RingdotY), Diamond%, PSET: Glow = 0
+IF RIGHT$(TIME$, 2) < "02" THEN RETURN
+TIME$ = "00:00:00": Glow = 1
+RETURN
+
+Replacedotchar:
+IF T$ = "D" THEN Sx = Svsx: Sy = Svsy: GOSUB Cleardotarea
+Showy = SMy: Showx = SMx
+Sx = X: Sy = Y: SMy = MatrixY: SMx = MatrixX
+IF (T$ <> "r" AND T$ <> "g") THEN GOSUB Recalldotolddotposition: GOSUB Displaydotman
+IF T$ = "D" THEN SMy = Showy: SMx = Showx
+MID$(Maze$(SMy), SMx, 1) = CHR$(32)
+RETURN
+
+Displaydotman:
+PUT (X, Y), Player%, PSET: RETURN
+
+Recalldotolddotposition:
+X = Oldx: Y = Oldy: FOR A = 1 TO 64
+Barrier = 1 * (T$ = "D" AND Unl AND Rm = A AND Keyfl(Rm))
+IF Barrier THEN A = 1: RETURN
+NEXT
+
+Oldpl:
+MatrixX = Matrixxdotold: MatrixY = Matrixydotold
+RETURN
+
+Keyfound:
+FOR A = 1 TO 64
+Keyfl(Rm) = ABS(1 * (Rm = A)): Unl = 1
+IF Keyfl(Rm) AND Unl THEN A = 1: GOTO Keymes
+NEXT
+
+Keymes:
+COLOR 15: LOCATE 30, 9: PRINT "You have found the key. ";
+PRINT "Use it to unlock the door in this room."; :
+GOSUB Replacedotchar: GOSUB Cleardotarea
+SLEEP 3: GOSUB Clearline: Keys = Keys + 1: GOSUB Gamedotstatus: RETURN
+
+Doordotroutine:
+FOR A = 1 TO 64
+Kyfd = 1 * (Rm = A AND Keyfl(Rm)): IF Kyfd THEN A = 1: GOTO Available
+NEXT: RETURN
+
+Available:
+FOR A = 1 TO 64
+Clrkey = 1 * (Rm = A AND Keyfl(Rm)): IF Clrkey > 0 THEN Keyfl(Rm) = 0: A = 1: GOTO DOpen
+NEXT
+
+DOpen:
+GOSUB Displaydotman
+LOCATE 30, 20: PRINT "Good Job! You have opened the door."; : SLEEP 3:
+GOSUB Clearline: GOSUB Replacedotchar: Unl = 0
+Keys = Keys - 1: GOSUB Gamedotstatus
+RETURN
+
+Openeddotchest:
+COLOR 14: Tr = 1: LOCATE 29, 1: PRINT SPACE$(79);
+LOCATE 30, 20: PRINT "You have found a treasure chest!";
+SLEEP 2: GOSUB Clearline
+RANDOMIZE TIMER: Length = FIX(16 * RND(1)) + 1: RESTORE Makedotobj
+N = FIX(50 * RND(1)) + 2
+FOR T = 1 TO Length: READ Object$(T): NEXT
+L = LEN(Object$(Length)): O$ = MID$(Object$(Length), 3, L)
+ IF LEFT$(O$, 2) = "No" OR LEFT$(O$, 3) = "Wat" THEN
+ Message$ = ""
+ ELSE
+ Message$ = "a "
+ END IF
+
+LOCATE 30, 20: PRINT "It contains "; Message$; ""; O$; SPACE$(2); addon$;
+SLEEP 2: GOSUB ObjectdotProperties: Message$ = "": addon$ = ""
+O$ = "": Message$ = O$
+IF LO$ = "~" THEN GOSUB Clearline: LOCATE 30, 20: PRINT "There are " + STR$(N) + " of them."; : SLEEP 2
+GOSUB Gamedotstatus: Tr = 0: addon$ = "": GOSUB Clearline: GOSUB Cleardotarea
+RETURN
+
+Clearline:
+LOCATE 30, 1: PRINT SPACE$(79); : RETURN
+
+Hold:
+H$ = INKEY$: IF H$ = "" THEN GOTO Hold
+RETURN
+
+Escaped:
+COLOR 15
+LINE (110, 190)-(510, 255), 10, BF: LINE (115, 200)-(500, 245), 14, BF
+LINE (115, 200)-(500, 245), 1, B
+LOCATE 14, 25: PRINT "Congratulations Adventurer!"
+LOCATE 15, 19: PRINT "You have escaped from this maze for now.": SLEEP 4: SYSTEM
+
+'CopydotPlayer:
+LINE (CIX1 + 15, CIY1 + 23)-(CIX1 + 37, CIY1 + 45), 0, BF
+CIRCLE (CIX1 + 28, CIY1 + 35), 10, 15: PAINT (CIX1 + 28, CIY1 + 35), 15
+CIRCLE (CIX1 + 28, CIY1 + 35), 10, 6: CIRCLE (CIX1 + 28, CIY1 + 35), 9, 6
+FOR E = 1 TO 5: CIRCLE (CIX1 + 28, CIY1 + 35), E, 0: NEXT
+CIRCLE (CIX1 + 28, CIY1 + 35), 1, 0
+GET (CIX1 + 15, CIY1 + 23)-(CIX1 + 37, CIY1 + 45), Player%
+RETURN
+
+CopydotPlayer:
+X1 = 20: Y1 = 40: c = 1
+CIRCLE (X1, Y1), 9, 6: PAINT (X1, Y1), 6: CIRCLE (X1, Y1), 10, 4 'Body
+CIRCLE (X1 - 5, Y1 - 5), 3, 15: PAINT (X1 - 5, Y1 - 5), 15 'left eye
+CIRCLE (X1 - 5, Y1 - 5), 3, c, -6.28, -3.14: PAINT (X1 - 5, Y1 - 6), c
+CIRCLE (X1 - 5, Y1 - 5), 1, 0: PAINT (X1 - 5, Y1 - 5), 0 'outline
+CIRCLE (X1 + 5, Y1 - 5), 3, 15: PAINT (X1 + 5, Y1 - 5), 15 'right eye
+CIRCLE (X1 + 5, Y1 - 5), 3, c, -6.28, -3.14: PAINT (X1 + 5, Y1 - 6), c
+CIRCLE (X1 + 5, Y1 - 5), 1, 0: PAINT (X1 + 5, Y1 - 5), 0
+CIRCLE (X1, Y1), 2, 4: PAINT (X1, Y1), 4: CIRCLE (X1, Y1), 3, 1 'nose
+LINE (X1 - 2, Y1 + 5)-(X1 + 2, Y1 + 5), 5 'mouth(top)
+LINE (X1 - 1, Y1 + 6)-(X1 + 1, Y1 + 6), 5 'mouth(bottom)
+GET (X1 - 10, Y1 - 10)-(X1 + 10, Y1 + 10), Player%
+GOSUB CopydotPlayerdeath
+RETURN
+
+CopydotPlayerdeath:
+X1 = 20: Y1 = 40: c = 4
+CIRCLE (X1, Y1), 9, 6: PAINT (X1, Y1), 6: CIRCLE (X1, Y1), 10, 4 'Body
+CIRCLE (X1 - 5, Y1 - 5), 5, 15: PAINT (X1 - 5, Y1 - 5), 15 'left eye
+CIRCLE (X1 - 5, Y1 - 5), 1, 0: PAINT (X1 - 5, Y1 - 5), 0 'outline
+CIRCLE (X1 + 5, Y1 - 5), 5, 15: PAINT (X1 + 5, Y1 - 5), 15 'right eye
+CIRCLE (X1 + 5, Y1 - 5), 1, 0: PAINT (X1 + 5, Y1 - 5), 0
+CIRCLE (X1, Y1), 2, 4: PAINT (X1, Y1), 4: CIRCLE (X1, Y1), 3, 1 'nose
+LINE (X1 - 2, Y1 + 5)-(X1 + 2, Y1 + 5), 5 'mouth(top)
+LINE (X1 - 1, Y1 + 6)-(X1 + 1, Y1 + 6), 5 'mouth(bottom)
+CIRCLE (X1, Y1 + 6), 2, c, , , .32: PAINT (X1, Y1 + 6), c
+CIRCLE (X1, Y1 + 6), 3, 1, , , .32
+GET (X1 - 10, Y1 - 10)-(X1 + 10, Y1 + 10), Playerdeath%
+RETURN
+
+Copydotwall:
+LINE (CIX1 + 11, CIY1 + 21)-(CIX1 + 34, CIY1 + 50), Wcs(Rm, 0), BF
+LINE (CIX1 + 12, CIY1 + 20)-(CIX1 + 35, CIY1 + 51), Wcs(Rm, 1), B
+LINE (CIX1 + 36, CIY1 + 20)-(CIX1 + 36, CIY1 + 50), 10
+FOR A = CIX1 + 12 TO CIX1 + 34 STEP 2: LINE (A, CIY1 + 21)-(A, CIY1 + 50), 6
+NEXT: LINE (CIX1 + 11, CIY1 + 50)-(CIX1 + 34, CIY1 + 50), 1
+LINE (CIX1 + 11, CIY1 + 21)-(CIX1 + 11, CIY1 + 50), 8
+'FOR A = CIY1 + 11 TO CIY1 + 50 STEP 2: LINE (CIX1 + 11, A)-(CIX1 + 35, A), 5: NEXT
+GET (CIX1 + 11, CIY1 + 19)-(CIX1 + 36, CIY1 + 51), Wall%
+RETURN
+
+Copydotwall2:
+LINE (CIX1 + 11, CIY1 + 20)-(CIX1 + 34, CIY1 + 50), Wcs(Rm, 0), BF
+LINE (CIX1 + 12, CIY1 + 19)-(CIX1 + 35, CIY1 + 51), Wcs(Rm, 1), B
+LINE (CIX1 + 36, CIY1 + 19)-(CIX1 + 36, CIY1 + 50), 10
+FOR A = 0 TO 41 STEP 2
+LINE (CIX1 + 11, CIY1 + 20 + A)-(CIX1 + 33, CIY1 + A), 1: NEXT
+GET (CIX1 + 11, CIY1 + 19)-(CIX1 + 42, CIY1 + 51), Wall2%
+RETURN
+
+Copydotwall3:
+WX = 26: WY = 32
+LINE (100, 75)-(100 + WX, 75 + WY), , B
+T$ = T$ + CHR$(200) + CHR$(130) + CHR$(146) + CHR$(48) + CHR$(8) + CHR$(2) + CHR$(144) + CHR$(152) + CHR$(2)
+PAINT (102, 76), T$
+LINE (100, 75)-(100 + WX, 75 + WY), 4, B
+GET (100, 75)-(100 + WX, 75 + WY), Wall3%
+RETURN
+
+CopydotCleardotObject:
+LINE (CIX1 + 16, CIY1 + 50)-(CIX1 + 60, CIY1 + 80), 0, BF
+GET (265, CIY1 + 20)-(290, CIY1 + 54), Clrobject%
+RETURN
+
+CopydotDoor:
+LINE (CIX1 + 11, CIY1 + 20)-(CIX1 + 36, CIY1 + 52), 6, BF
+LINE (CIX1 + 13, CIY1 + 22)-(CIX1 + 33, CIY1 + 31), 12, BF
+LINE (CIX1 + 13, CIY1 + 40)-(CIX1 + 33, CIY1 + 48), 12, BF
+LINE (CIX1 + 13, CIY1 + 22)-(CIX1 + 33, CIY1 + 31), 0, B
+LINE (CIX1 + 13, CIY1 + 40)-(CIX1 + 33, CIY1 + 48), 0, B
+LINE (CIX1 + 10, CIY1 + 19)-(CIX1 + 37, CIY1 + 53), 1, B
+LINE (CIX1 + 37, CIY1 + 20)-(CIX1 + 37, CIY1 + 52), 12
+CIRCLE (CIX1 + 34, CIY1 + 36), 2, 14: PAINT (CIX1 + 34, CIY1 + 36), 14
+CIRCLE (CIX1 + 34, CIY1 + 36), 2, 0
+GET (CIX1 + 11, CIY1 + 20)-(CIX1 + 40, CIY1 + 53), Door%
+GOSUB CopydotEDoor
+RETURN
+
+CopydotEDoor:
+LINE (CIX1 + 11, CIY1 + 20)-(CIX1 + 36, CIY1 + 52), 13, BF
+LINE (CIX1 + 13, CIY1 + 22)-(CIX1 + 33, CIY1 + 31), 2, BF
+LINE (CIX1 + 13, CIY1 + 40)-(CIX1 + 33, CIY1 + 48), 2, BF
+LINE (CIX1 + 13, CIY1 + 22)-(CIX1 + 33, CIY1 + 31), 0, B
+LINE (CIX1 + 13, CIY1 + 40)-(CIX1 + 33, CIY1 + 48), 0, B
+LINE (CIX1 + 10, CIY1 + 19)-(CIX1 + 37, CIY1 + 53), 1, B
+LINE (CIX1 + 37, CIY1 + 20)-(CIX1 + 37, CIY1 + 52), 12
+CIRCLE (CIX1 + 34, CIY1 + 36), 2, 14: PAINT (CIX1 + 34, CIY1 + 36), 14
+CIRCLE (CIX1 + 34, CIY1 + 36), 2, 0
+GET (CIX1 + 11, CIY1 + 20)-(CIX1 + 40, CIY1 + 53), EDoor%
+RETURN
+
+CopydotKeylock:
+CIRCLE (CIX1 + 24, CIY1 + 35), 4, 7
+CIRCLE (CIX1 + 27, CIY1 + 40), 4, 7
+COLOR 4: LINE (CIX1 + 26, CIY1 + 39)-(CIX1 + 44, CIY1 + 21)
+LINE (CIX1 + 26, CIY1 + 40)-(CIX1 + 44, CIY1 + 22)
+COLOR 6: LINE (CIX1 + 34, CIY1 + 20)-(CIX1 + 39, CIY1 + 28)
+LINE (CIX1 + 35, CIY1 + 20)-(CIX1 + 40, CIY1 + 28)
+LINE (CIX1 + 35, CIY1 + 32)-(CIX1 + 31, CIY1 + 27)
+GET (CIX1 + 15, CIY1 + 16)-(CIX1 + 39, CIY1 + 47), Keylock%
+RETURN
+
+CopydotTreasure:
+LINE (CIX1 + 16, CIY1 + 65)-(CIX1 + 35, CIY1 + 80), 14, B
+LINE -(CIX1 + 40, CIY1 + 75), 14: LINE -(CIX1 + 40, CIY1 + 60), 14
+LINE -(CIX1 + 35, CIY1 + 65), 14
+LINE (CIX1 + 16, CIY1 + 65)-(CIX1 + 21, CIY1 + 60), 14
+LINE -(CIX1 + 40, CIY1 + 60), 14
+LINE (CIX1 + 17, CIY1 + 66)-(CIX1 + 34, CIY1 + 79), 6, BF
+PAINT (CIX1 + 38, CIY1 + 68), 14
+LINE (CIX1 + 22, CIY1 + 60)-(CIX1 + 40, CIY1), 6, BF
+LINE (CIX1 + 40, CIY1 + 60)-(CIX1 + 40, CIY1), 12
+LINE (CIX1 + 22, CIY1 + 50)-(CIX1 + 40, CIY1 + 50), 12
+GET (CIX1 + 16, CIY1 + 50)-(CIX1 + 40, CIY1 + 80), Treasure%
+RETURN
+
+CopydotRing:
+CIRCLE (CIX1 + 28, CIY1 + 35), 5, 15: CIRCLE (CIX1 + 28, CIY1 + 35), 6, 8
+CIRCLE (CIX1 + 28, CIY1 + 26), 3, 1: PAINT (CIX1 + 28, CIY1 + 26), 13, 1
+LINE (CIX1 + 26, CIY1 + 24)-(CIX1 + 30, CIY1 + 24), 11
+CIRCLE (CIX1 + 28, CIY1 + 26), 2, 1: CIRCLE (CIX1 + 28, CIY1 + 35), 4, 9
+GET (CIX1 + 15, CIY1 + 20)-(CIX1 + 38, CIY1 + 45), Diamond%
+RETURN
+
+CopydotRing2:
+CIRCLE (CIX1 + 28, CIY1 + 35), 5, 15: CIRCLE (CIX1 + 28, CIY1 + 35), 6, 8
+CIRCLE (CIX1 + 28, CIY1 + 26), 3, 12: PAINT (CIX1 + 28, CIY1 + 26), 13, 12
+LINE (CIX1 + 26, CIY1 + 24)-(CIX1 + 30, CIY1 + 24), 14
+CIRCLE (CIX1 + 28, CIY1 + 26), 2, 1: CIRCLE (CIX1 + 28, CIY1 + 35), 4, 9
+GET (CIX1 + 15, CIY1 + 20)-(CIX1 + 38, CIY1 + 47), Diamond2%
+RETURN
+
+CopydotGem:
+CIRCLE (CIX1 + 28, CIY1 + 35), 5, 10: 'CIRCLE (CIX1 + 28, CIY1 + 35), 10, 8
+CIRCLE (CIX1 + 28, CIY1 + 26), 2: PAINT (CIX1 + 28, CIY1 + 26), T$
+LINE (CIX1 + 26, CIY1 + 24)-(CIX1 + 30, CIY1 + 24), 1
+CIRCLE (CIX1 + 28, CIY1 + 35), 4, 9
+GET (CIX1 + 15, CIY1 + 20)-(CIX1 + 38, CIY1 + 45), Gem%
+RETURN
+
+CopydotSpider:
+CIRCLE (CIX1 + 28, CIY1 + 27), 3, 8: PAINT (CIX1 + 28, CIY1 + 27), 8
+CIRCLE (CIX1 + 28, CIY1 + 20), 6, 8: PAINT (CIX1 + 28, CIY1 + 20), 8
+CIRCLE (CIX1 + 28, CIY1 + 25), 6, 0
+LINE (CIX1 + 24, CIY1 + 25)-(CIX1 + 19, CIY1 + 30), 7: LINE -(CIX1 + 22, CIY1 + 33), 7
+LINE (CIX1 + 32, CIY1 + 25)-(CIX1 + 37, CIY1 + 30), 7: LINE -(CIX1 + 34, CIY1 + 33), 7
+LINE (CIX1 + 23, CIY1 + 22)-(CIX1 + 20, CIY1 + 25), 7
+LINE (CIX1 + 23, CIY1 + 16)-(CIX1 + 18, CIY1 + 21), 7
+LINE -(CIX1 + 18, CIY1 + 23), 7
+LINE (CIX1 + 33, CIY1 + 22)-(CIX1 + 36, CIY1 + 25), 7
+LINE (CIX1 + 33, CIY1 + 16)-(CIX1 + 38, CIY1 + 21), 7
+LINE -(CIX1 + 38, CIY1 + 23), 7
+LINE (CIX1 + 27, CIY1 + 29)-(CIX1 + 27, CIY1 + 31), 4
+LINE (CIX1 + 30, CIY1 + 29)-(CIX1 + 30, CIY1 + 31), 4
+GET (CIX1 + 15, CIY1 + 10)-(CIX1 + 42, CIY1 + 40), Spider%
+GOSUB CopydotSpiderfr2
+RETURN
+
+CopydotSpiderfr2:
+CLS
+CIRCLE (CIX1 + 28, CIY1 + 27), 5, 8: PAINT (CIX1 + 28, CIY1 + 27), 8
+CIRCLE (CIX1 + 28, CIY1 + 20), 6, 8: PAINT (CIX1 + 28, CIY1 + 20), 8
+CIRCLE (CIX1 + 28, CIY1 + 25), 6, 0
+LINE (CIX1 + 24, CIY1 + 25)-(CIX1 + 19, CIY1 + 20), 7: LINE -(CIX1 + 17, CIY1 + 24), 7
+LINE (CIX1 + 32, CIY1 + 25)-(CIX1 + 37, CIY1 + 20), 7: LINE -(CIX1 + 40, CIY1 + 25), 7
+LINE (CIX1 + 24, CIY1 + 25)-(CIX1 + 22, CIY1 + 30), 7: LINE -(CIX1 + 24, CIY1 + 33), 7
+LINE (CIX1 + 32, CIY1 + 25)-(CIX1 + 34, CIY1 + 30), 7: LINE -(CIX1 + 32, CIY1 + 33), 7
+LINE (CIX1 + 27, CIY1 + 29)-(CIX1 + 27, CIY1 + 31), 4
+LINE (CIX1 + 30, CIY1 + 29)-(CIX1 + 30, CIY1 + 31), 4
+GET (CIX1 + 14, CIY1 + 10)-(CIX1 + 44, CIY1 + 40), Spiderfr2%
+RETURN
+
+CopydotSpider2:
+CIRCLE (CIX1 + 28, CIY1 + 27), 3, 10: PAINT (CIX1 + 28, CIY1 + 27), 10
+CIRCLE (CIX1 + 28, CIY1 + 20), 6, 10: PAINT (CIX1 + 28, CIY1 + 20), 10
+CIRCLE (CIX1 + 28, CIY1 + 25), 6, 0
+LINE (CIX1 + 24, CIY1 + 25)-(CIX1 + 19, CIY1 + 30), 7: LINE -(CIX1 + 22, CIY1 + 33), 7
+LINE (CIX1 + 32, CIY1 + 25)-(CIX1 + 37, CIY1 + 30), 7: LINE -(CIX1 + 34, CIY1 + 33), 7
+LINE (CIX1 + 23, CIY1 + 22)-(CIX1 + 20, CIY1 + 25), 7
+LINE (CIX1 + 33, CIY1 + 22)-(CIX1 + 36, CIY1 + 25), 7
+LINE (CIX1 + 23, CIY1 + 22)-(CIX1 + 20, CIY1 + 25), 7
+LINE (CIX1 + 23, CIY1 + 16)-(CIX1 + 18, CIY1 + 21), 7
+LINE -(CIX1 + 18, CIY1 + 23), 7
+LINE (CIX1 + 33, CIY1 + 22)-(CIX1 + 36, CIY1 + 25), 7
+LINE (CIX1 + 33, CIY1 + 16)-(CIX1 + 38, CIY1 + 21), 7
+LINE -(CIX1 + 38, CIY1 + 23), 7
+LINE (CIX1 + 27, CIY1 + 29)-(CIX1 + 27, CIY1 + 31), 4
+LINE (CIX1 + 30, CIY1 + 29)-(CIX1 + 30, CIY1 + 31), 4
+GET (CIX1 + 15, CIY1 + 10)-(CIX1 + 43, CIY1 + 40), Spider2%
+GOSUB CopydotSpiderpfr2
+RETURN
+
+CopydotSpiderpfr2:
+CLS
+CIRCLE (CIX1 + 28, CIY1 + 27), 3, 10: PAINT (CIX1 + 28, CIY1 + 27), 10
+CIRCLE (CIX1 + 28, CIY1 + 20), 6, 10: PAINT (CIX1 + 28, CIY1 + 20), 10
+CIRCLE (CIX1 + 28, CIY1 + 25), 6, 0
+LINE (CIX1 + 24, CIY1 + 25)-(CIX1 + 19, CIY1 + 20), 7: LINE -(CIX1 + 17, CIY1 + 24), 7
+LINE (CIX1 + 32, CIY1 + 25)-(CIX1 + 37, CIY1 + 20), 7: LINE -(CIX1 + 40, CIY1 + 25), 7
+LINE (CIX1 + 23, CIY1 + 22)-(CIX1 + 20, CIY1 + 25), 7
+LINE (CIX1 + 33, CIY1 + 22)-(CIX1 + 36, CIY1 + 25), 7
+LINE (CIX1 + 23, CIY1 + 22)-(CIX1 + 20, CIY1 + 25), 7
+LINE (CIX1 + 23, CIY1 + 16)-(CIX1 + 18, CIY1 + 21), 7
+LINE (CIX1 + 24, CIY1 + 25)-(CIX1 + 23, CIY1 + 30), 7
+LINE (CIX1 + 32, CIY1 + 25)-(CIX1 + 34, CIY1 + 30), 7
+LINE (CIX1 + 33, CIY1 + 16)-(CIX1 + 38, CIY1 + 21), 7
+LINE (CIX1 + 27, CIY1 + 29)-(CIX1 + 27, CIY1 + 31), 4
+LINE (CIX1 + 30, CIY1 + 29)-(CIX1 + 30, CIY1 + 31), 4
+GET (CIX1 + 15, CIY1 + 10)-(CIX1 + 42, CIY1 + 40), Spiderpfr2%
+RETURN
+
+CopydotWeb:
+T$ = CHR$(200) + CHR$(130) + CHR$(146) + CHR$(48) + CHR$(8) + CHR$(2) + CHR$(144) + CHR$(152) + CHR$(2)
+LINE (CIX1 + 8, CIY1 + 15)-(CIX1 + 35, CIY1 + 25), 1, B
+PAINT (CIX1 + 8, CIY1 + 15), T$
+LINE (CIX1 + 31, CIY1 + 15)-(CIX1 + 35, CIY1 + 30), 8
+GET (CIX1 + 8, CIY1 + 15)-(CIX1 + 36, CIY1 + 25), Web%
+RETURN
+
+CopydotSpike:
+X1 = 10: Y1 = 15: CLS
+LINE (X1, Y1)-(X1 + 5, Y1 - 10), 7: LINE -(X1 + 10, Y1), 7
+LINE -(X1, Y1), 7: PAINT (X1 + 5, Y1 - 5), 7
+LINE (X1 - 1, Y1)-(X1 + 4, Y1 - 10), 14
+LINE (X1 - 1, Y1 + 1)-(X1 + 10, Y1 + 12), 7, BF
+LINE (X1 - 1, Y1 + 1)-(X1 - 1, Y1 + 12), 14, BF
+CIRCLE (X1 + 12, Y1 + 6), 5, 0: PAINT (X1 + 10, Y1 + 6), 0
+LINE (X1 + 5, Y1 - 11)-(X1 + 5, Y1 - 10), 14, BF
+GET (X1 - 5, Y1 - 12)-(X1 + 12, Y1 + 12), Spike%
+RETURN
+
+ObjectdotProperties:
+LO$ = MID$(Object$(Length), 1, 1): HL = INSTR(Object$(Length), "@")
+IF LO$ = "!" THEN Health = Health + 25: Ob = Ob + 1
+IF LO$ = "$" THEN Fortune = Fortune + 20
+IF LO$ = "%" THEN Health = Health + 200 + (200 * (HL = 64))
+GOSUB Gamedotstatus: Objects = Objects + Ob: Ob = 0
+Tallydotpnts:
+Score = Score + Fortune: Fortune = 0
+RETURN
+
+Cleardotobject:
+PUT (Sx, Sy), Clrobject%, PSET: RETURN
+
+Cleardotplayer:
+LINE (265, 145)-(345, 215), 0, BF
+RETURN
+
+Cleardotman:
+PUT (X, Y), Clrobject%, PSET: RETURN
+
+Cleardotarea:
+LINE (Sx - 4, Sy)-(Sx + 23, Sy + 35), 0, BF
+RETURN
+
+Placedotwall:
+IF T$ = "@" THEN PUT (1 + SpacerX, 6 + SpacerY), Wall3%, PSET: GOTO Skipdotover
+IF T$ = "%" THEN PUT (1 + SpacerX, 6 + SpacerY), Wall2%, PSET: GOTO Skipdotover
+COLOR 2: PUT (1 + SpacerX, 6 + SpacerY), Wall%, PSET
+Skipdotover:
+SpacerX = SpacerX + 30:
+RETURN
+
+Placedotdoor:
+PUT (SpacerX, 36 + SpacerY - 36 + 6), Door%
+SpacerX = SpacerX + 30
+RETURN
+
+PlacedotEdoor:
+PUT (SpacerX, 36 + SpacerY - 36 + 6), EDoor%
+SpacerX = SpacerX + 30
+RETURN
+
+Placedotkey:
+PUT (SpacerX, 36 + SpacerY - 36 + 6), Keylock%, PSET
+SpacerX = SpacerX + 30
+RETURN
+
+Placedotchest:
+PUT (SpacerX, 36 + SpacerY - 36 + 6), Treasure%, PSET
+SpacerX = SpacerX + 30
+RETURN
+
+Placedotring:
+PUT (SpacerX, 36 + SpacerY - 36 + 6), Diamond%, PSET
+SpacerX = SpacerX + 30
+RETURN
+
+Placedotgem:
+PUT (SpacerX, 36 + SpacerY - 36 + 6), Gem%, PSET
+SpacerX = SpacerX + 30
+RETURN
+
+Placedotweb:
+PUT (SpacerX, 36 + SpacerY - 36 + 6), Web%, PSET
+SpacerX = SpacerX + 30
+RETURN
+
+PlacedotSpike:
+PUT (SpacerX + 5, SpacerY + 36), Spike%, PSET
+SpacerX = SpacerX + 30
+RETURN
+
+Fin:
+SCREEN 7: CLS : LOCATE 10, 15: PRINT "GAME": LOCATE 10, 20: PRINT "OVER"
+IF slc <> 4 THEN LOCATE 13, 12: PRINT "SPACE - RESTART"
+LOCATE 16, 15: PRINT "ESC - END"
+WtdotKey:
+T$ = INKEY$: IF T$ = "" THEN GOTO WtdotKey
+IF T$ = CHR$(27) THEN CLS : SCREEN 0: PRINT "THANKS FOR PLAYING!": SYSTEM
+IF slc <> 4 THEN IF INKEY$ = " " THEN GOTO Start
+IF INKEY$ = "" THEN GOTO WtdotKey
+GOTO WtdotKey
+
+Checkdotkey:
+i$ = INKEY$
+SELECT CASE INKEY$
+ CASE CHR$(27)
+ CLS : SYSTEM
+ CASE CHR$(32)
+ GOTO Start
+
+IF INKEY$ = "" THEN GOTO Checkdotkey
+END SELECT
+GOTO Checkdotkey
+
+RoomdotCheck:
+CLS : L = 0: LL = 0: SpacerX = 0: SpacerY = 0: Adv = 0: Wm = 0: Wm2 = 0
+Eny = 0: Stringdotpnt = 0: Count = 0: EndotTally = 0
+StartdotA = (12 * Rm) - 11: FinishdotA = 12 * Rm
+IF Y > 400 THEN Y = 4
+IF Y < 4 THEN Y = 400
+
+Confirmdotrm:
+GOSUB Copydotwall: GOSUB Cleardotplayer
+FOR A = StartdotA TO FinishdotA: FOR B = 1 TO 20 'Height x Width
+T$ = MID$(Maze$(A), B, 1)
+IF T$ = " " OR T$ = "." OR T$ = "L" THEN GOSUB SkipdotX
+IF T$ = "#" THEN GOSUB Placedotwall
+IF T$ = "B" OR T$ = "S" OR T$ = "w" THEN GOSUB SkipdotX
+IF T$ = "D" THEN GOSUB Placedotdoor
+IF T$ = "E" THEN GOSUB PlacedotEdoor
+IF T$ = "W" THEN GOSUB Placedotweb
+IF T$ = "g" THEN GOSUB Placedotgem
+IF T$ = "k" THEN GOSUB Placedotkey
+IF T$ = "r" THEN GOSUB Placedotring
+IF T$ = "s" THEN GOSUB PlacedotSpike
+IF T$ = "t" THEN GOSUB Placedotchest
+NEXT B: SpacerX = 0: SpacerY = SpacerY + 36: NEXT A: GOSUB Displaydotman
+T = 0: L = 0: SpacerX = 0: SpacerY = 0
+IF Rm = 0 OR Rm = 33 OR Rm = 64 THEN Adv = 500
+IF Rm = 1 OR Rm = 5 OR Rm = 9 OR Rm = 17 OR Rm = 18 OR Rm = 19 THEN Adv = 300
+IF Rm = 7 OR Rm = 8 OR Rm = 12 OR Rm = 16 OR Rm = 25 OR Rm = 28 THEN Adv = 400
+IF Rm = 29 OR Rm = 31 OR Rm = 35 OR Rm = 39 OR Rm = 40 OR Rm = 41 THEN Adv = 500
+IF Rm = 6 OR Rm = 10 OR Rm = 15 OR Rm = 20 OR Rm = 30 THEN Adv = 450
+IF Rm = 42 OR Rm = 43 OR Rm = 44 THEN Adv = 450
+IF Rm = 45 OR Rm = 46 OR Rm = 47 OR Rm = 54 OR Rm = 53 OR Rm = 55 THEN Adv = 500
+IF Rm = 60 OR Rm = 61 OR Rm = 62 THEN Adv = 500
+r = StartdotA: B = 1: GOSUB Gamedotstatus: RETURN
+
+Gamedotstatus:
+COLOR 2: LOCATE 29, 5: PRINT "LIVES:"; : COLOR 15: PRINT Lives;
+COLOR 2: PRINT SPACE$(4); "SCORE:"; : COLOR 15: PRINT Score;
+COLOR 2: PRINT SPACE$(5); "WEAPONS:"; : COLOR 15: PRINT Objects;
+COLOR 2: PRINT SPACE$(4); "HEALTH: "; : COLOR 15: PRINT Health;
+COLOR 2: PRINT SPACE$(4); "KEYS:"; : COLOR 15: PRINT Keys;
+RETURN
+
+Titledotscr:
+SCREEN 12: CLS
+W = (600 / 4) + 50: H = (400 / 4) + 40: CL = 1: Dmx = 1: Dmy = 1
+CIX1 = 106: CIY1 = 279: Spx = 60: Spy = 243
+SpacerX = Spx: SpacerY = Spy
+Demo = TRUE: Plx% = CIX1 - 12: Ply% = CIY1 + (36 * 2)
+
+Scandotmes:
+COLOR 8: LOCATE 1, 1:
+IF (T < 1 OR T > 0) THEN PRINT M1$
+FOR A = 0 TO 133: FOR B = 0 TO 15
+
+Rand:
+RANDOMIZE TIMER
+c = FIX(15 * RND(1)): IF c = 8 THEN GOTO Rand
+cx = W - 190 + A * 5: cy = H + 20 + (B * 5) - 80
+Pt = POINT(A, B)
+IF Pt = 8 AND T < 1 THEN GOSUB CircdotFont: GOTO SkipdotPt
+IF Pt = 8 AND T > 0 THEN GOSUB Message
+
+SkipdotPt:
+NEXT B, A: ht = CSRLIN - 1: LOCATE ht, 1: PRINT SPACE$(16)
+T = T + 1: M1$ = "ANY KEY TO START"
+IF T < 2 THEN GOTO Scandotmes
+GOSUB Drawdotwall: PUT (Plx%, Ply%), Player%, PSET: A = 0: B = A: M = 5:
+Aax = 30: BBx = 36: Playdotdemo = TRUE
+LOCATE 10, 25: PRINT "Version 2.1: Trapped Forever"
+
+Checkdotpress:
+GOSUB Spiderdotroutine: GOSUB Ringdotglow: IF Playdotdemo THEN GOSUB Demodotroutine
+IF INKEY$ = "" THEN GOTO Checkdotpress
+CIX1 = 275: CIY1 = 145: CL = 0: Web = 5: Demo = FALSE
+RingdotX = 0: RingdotY = 0: RETURN
+
+Demodotroutine:
+IF A = (30 * 3) THEN GOSUB Listdotmes
+IF A = (30 * 5) THEN GOSUB Listdotmes2
+IF A = (30 * 9) AND NOT (Unlockeddotdoor) AND Tr < 1 THEN GOSUB Listdotmes3
+IF A = (30 * 12) AND Unlockeddotdoor < 1 AND Tr < 1 THEN GOSUB Listdotmes4: Unlockeddotdoor = TRUE
+PUT (Plx% + A, Ply% - B), Player%, PSET
+FOR H = 1 TO 1000: NEXT
+PUT (Plx% + A, Ply% - B), Player%
+IF (A < 30 * 12) THEN A = A + Aax
+IF (A <= (30 * 9)) AND Tr THEN GOSUB Plotdotdemdotplr: GOSUB Listdotmes5: Playdotdemo = FALSE: RETURN
+IF (A > (30 * 10) AND Tr) THEN A = A + Aax
+
+IF Unlockeddotdoor AND NOT (Tr) THEN B = B + BBx: IF B >= (36 * 2) THEN GOSUB Plotdotdemdotplr: Aax = -30: Tr = 1: Unlockeddotdoor = FALSE: SLEEP 1
+Null:
+RETURN
+
+Plotdotdemdotplr:
+PUT (Plx% + A, Ply% - B), Player%, PSET: RETURN
+
+Listdotmes:
+GOSUB Plotdotdemdotplr: GOSUB Dmes1: RETURN
+
+Listdotmes2:
+GOSUB Plotdotdemdotplr: GOSUB Dmes2: RETURN
+
+Listdotmes3:
+GOSUB Plotdotdemdotplr: GOSUB Dmes3: RETURN
+
+Listdotmes4:
+GOSUB Plotdotdemdotplr: GOSUB Dmes4: RETURN
+
+Listdotmes5:
+GOSUB Plotdotdemdotplr: GOSUB Dmes5: RETURN
+
+Dmes1:
+A$ = "Avoid getting bit by the hanging spiders.": L = (80 - LEN(A$)) * .5
+A$(2) = "and don't touch the flashing electric pulses."
+COLOR 15: LOCATE 12, L: PRINT A$
+L2 = (80 - LEN(A$(2))) * .5: COLOR 15: LOCATE 14, L2: PRINT A$(2): SLEEP 6
+LOCATE 12, L: PRINT SPACE$(LEN(A$)):
+LOCATE 14, L2: PRINT SPACE$(LEN(A$(2)))
+RETURN
+
+Dmes2:
+LINE (Plx% + A - 4, Ply%)-(Plx% + A + 23, Ply% + 35), 0, BF
+PUT (Plx% + A, Ply%), Player%
+A$ = "Only the key you see in the same room as the door."
+A$(2) = "will unlock that door."
+L = (80 - LEN(A$)) * .5: COLOR 15: LOCATE 12, L: PRINT A$
+L2 = (80 - LEN(A$(2))) * .5: COLOR 15: LOCATE 14, L2: PRINT A$(2): SLEEP 6
+LOCATE 12, L: PRINT SPACE$(LEN(A$))
+LOCATE 14, L2: PRINT SPACE$(LEN(A$(2)))
+RETURN
+
+Dmes3:
+A$ = "Collect rings, gems and treasures on your journey."
+L = (80 - LEN(A$)) * .5: COLOR 15: LOCATE 12, L: PRINT A$: SLEEP 6
+LOCATE 12, L: PRINT SPACE$(LEN(A$)): RETURN
+
+Dmes4:
+A$ = "Now open the door with the key you found."
+L = (80 - LEN(A$)) * .5: COLOR 15: LOCATE 12, L: PRINT A$: SLEEP 6
+LOCATE 12, L: PRINT SPACE$(LEN(A$)):
+LINE (Plx% + A - 4, (Ply%) - 36)-(Plx% + A + 23, (Ply% + 35) - 36), 0, BF
+RETURN
+
+Dmes5:
+A$ = "Search for items and health potions in the treasure chests."
+L = (80 - LEN(A$)) * .5: COLOR 15: LOCATE 12, L: PRINT A$: SLEEP 6
+LOCATE 12, L: PRINT SPACE$(LEN(A$)):
+RETURN
+
+CircdotFont:
+CIRCLE (cx, cy), 3, c: PAINT (cx, cy), c: CIRCLE (cx, cy), 1, 14
+PSET (cx, cy), 0
+RETURN
+
+Message:
+msx = W - 80 + A * 3: msy = H + 280 + B * 2
+CIRCLE (msx, msy), 2, CL
+Inc = Inc + 1: IF FIX(Inc / 45) = Inc / 45 THEN CL = CL + 1
+IF CL = 8 THEN CL = CL + 1
+RETURN
+
+Drawdotwall:
+GOSUB Demodotmaze: FOR A = 1 TO 5: FOR L = 1 TO 15
+S$ = MID$(A$(A), L, 1)
+IF S$ = "#" THEN PUT (SpacerX, SpacerY), Wall%, PSET
+IF S$ = "t" THEN PUT (SpacerX, SpacerY), Treasure%, PSET
+IF S$ = "D" THEN PUT (SpacerX, SpacerY), Door%, PSET
+IF S$ = "k" THEN PUT (SpacerX, SpacerY), Keylock%, PSET
+IF S$ = "r" THEN RingdotX = SpacerX: RingdotY = SpacerY: PUT (SpacerX, SpacerY), Diamond%, PSET
+IF S$ = "g" THEN PUT (SpacerX, SpacerY), Gem%, PSET
+IF S$ = "W" THEN PUT (SpacerX, SpacerY), Web%, PSET
+IF (S$ = "B" OR S$ = "S") THEN Spx = SpacerX: Spy = SpacerY - 6: GOSUB Spiderdotroutine
+SpacerX = SpacerX + 30
+NEXT L: SpacerX = 60: SpacerY = SpacerY + 36: NEXT A
+SpacerX = 60: SpacerY = 0
+RETURN
+
+Menulist:
+CLS : Ky$(1) = "ARROW KEYS IN USE": Ky$(2) = "NUMPAD IN USE" + SPACE$(4)
+Pntr = 190: SvspX = Spx: SvspY = Spy: slc = 1
+Indent = 30: Dnx = 182: Bot = 410
+'LINE (120, 100)-(490, 320), 7, BF
+FOR O = 120 TO 490 STEP 2.1: LINE (O, 100)-(O, Bot), 8: NEXT
+LINE (120 + Indent, 100 + Indent)-(490 - Indent, Bot - Indent), 7, BF
+LINE (120 + Indent + 10, 100 + Indent + 10)-(490 - Indent - 10, Bot - Indent - 10), 0, BF
+LINE (120 + Indent, 100 + Indent)-(490 - Indent, 320 - Indent), 14, B
+LINE (120 + Indent + 1, 100 + Indent + 1)-(490 - Indent - 1, Bot - Indent - 1), 4, B
+CIRCLE (190, 182), 6, 4: PAINT (190, 182), 4: CIRCLE (190, 182), 7, 14
+
+Options:
+COLOR 14
+LOCATE 10, 26: PRINT "Use SPACE-BAR to select": COLOR 9
+LOCATE 12, 28: PRINT "HELP (Game tips)"
+LOCATE 14, 28: PRINT "GAME SPEED"
+LOCATE 16, 28: PRINT Ky$(Kytapfl + 1)
+LOCATE 18, 28: PRINT "ABORT THE GAME"
+'LINE (120 + Indent + 10, 262 + Indent)-(490 - Indent - 10, Bot - Indent - 10), 15, BF
+FOR O = 120 + Indent + 10 TO 490 - Indent - 10 STEP 2
+LINE (O, 262 + Indent)-(O, Bot - Indent - 10), 15: NEXT
+COLOR 5: LOCATE 22, 26: PRINT "Press ESC to return to game"
+
+OptiondotSel:
+T$ = INKEY$: IF T$ = "" THEN GOTO OptiondotSel
+IF T$ = CHR$(0) + "P" THEN GOSUB ErasedotPntr: Dnx = Dnx + 30: IF Dnx > 272 THEN Dnx = 272
+IF T$ = CHR$(0) + "H" THEN GOSUB ErasedotPntr: Dnx = Dnx - 30: IF Dnx < 182 THEN Dnx = 182
+IF T$ = CHR$(27) THEN GOSUB RoomdotCheck: Spx = SvspX: Spy = SvspY: RETURN
+ IF T$ = CHR$(32) THEN
+ IF slc = 1 THEN
+ GOSUB Helpdotscr: GOTO Menulist
+ ELSE
+ IF slc = 2 THEN
+ T$ = "": GOSUB Alterdotdelay: GOTO Menulist
+ ELSE
+ IF slc = 3 THEN
+ Kytapfl = Kytapfl + 1: IF Kytapfl > 1 THEN Kytapfl = 0
+ Actiondotkey = (Kytapfl)
+ GOTO Options
+ ELSE
+ IF slc = 4 THEN
+ CLS : GOTO Fin
+ END IF
+ END IF
+ END IF
+ END IF
+ END IF
+GOSUB MovedotPntr
+GOTO OptiondotSel
+
+MovedotPntr:
+slc = INT(Dnx / 30) - 5
+CIRCLE (190, Dnx), 6, 4: PAINT (190, Dnx), 4: CIRCLE (190, Dnx), 7, 14
+RETURN
+
+ErasedotPntr:
+IF Dnx >= 182 OR Dnx <= 242 THEN CIRCLE (190, Dnx), 7, 0: PAINT (190, Dnx), 0
+RETURN
+
+Helpdotscr:
+CLS : Far = 600: LINE (0, 0)-(Far, 478), 15, BF
+LINE (40, 0)-(40, 478), 12, B: c = 0
+FOR E = 0 TO 478 STEP 15.2: LINE (0, E)-(Far, E), 3: NEXT
+CIRCLE (15, 10), 7, c: PAINT (16, 11), c
+CIRCLE (15, 140), 7, c: PAINT (16, 141), c: CIRCLE (15, 270), 7, c
+PAINT (16, 271), c: CIRCLE (15, 400), 7, c: PAINT (16, 401), c
+COLOR 6: LOCATE 5, 17: PRINT "You must navigate through a 64-room maze,"
+LOCATE 7, 17: PRINT "all while avoiding dangling spiders, electric shocks"
+LOCATE 9, 17: PRINT "and large knives that move up from the floor."
+LOCATE 12, 17: PRINT "A word of advice: Time yourself when passing beyond"
+LOCATE 14, 17: PRINT "spiders, electric shocks and moving knives."
+LOCATE 17, 17: PRINT "Also make a hand-made map of the maze as you start"
+LOCATE 19, 17: PRINT "advancing further and further into the labyrinth."
+LOCATE 21, 17: PRINT "Finally, take advantage of the treasure chests and"
+LOCATE 23, 17: PRINT "the helpful items inside."
+COLOR 2: LOCATE 26, 23: PRINT "PRESS SPACE-BAR TO RETURN TO MENU"
+Holddothelp:
+T$ = INKEY$: IF T$ = "" THEN GOTO Holddothelp
+IF T$ = CHR$(32) THEN RETURN
+GOTO Holddothelp
+
+
+Demodotmaze:
+A$(1) = "###############"
+A$(2) = "# r t #"
+A$(3) = "####W########D#"
+A$(4) = "# S k g #"
+A$(5) = "###############"
+RETURN
+
+Alterdotdelay:
+SCREEN 12: CLS
+LINE (0, 0)-(600, 300), 8, BF: LINE (0, 301)-(600, 315), 4, BF
+FOR L = 2 TO 598 STEP 2.8: LINE (L, 302)-(L, 314), 1: NEXT
+FOR L = 1 TO 598 STEP 2.36: LINE (L, 1)-(L, 298), 7: NEXT
+CPU = 106: T = 1: c = 1
+COLOR 15: LOCATE 10, 22: PRINT "GAME DELAY PERFORMANCE METER"
+COLOR 2: LOCATE 22, 2: PRINT "USE THE LEFT & RIGHT ARROW KEYS TO SET A DELAY CHANNEL ";
+PRINT "FOR THIS GAME."
+LOCATE 23, 2: PRINT "YOU WILL THEN SEE A NUMERICAL COUNTER INCREMENTING ";
+PRINT "OR DECREMENTING."
+LOCATE 24, 2: PRINT "WHEN YOU HAVE THE DELAY YOU NEED, PRESS THE ";
+COLOR 14: PRINT "SPACE BAR "; : COLOR 2: PRINT "TO EXIT."
+LOCATE 25, 2: PRINT "USE CHANNEL "; : COLOR 14: PRINT "0 ";
+COLOR 2: PRINT "FOR FASTEST SPEED."
+LINE (94, 100 + 80 - 6)-(456, 150 + 80 + 6), 0, B
+LINE (95, 100 + 80 - 5)-(455, 150 + 80 + 5), 9, BF
+LINE (100, 100 + 80)-(450, 150 + 80), 14, BF
+LINE (107, 190)-(107, 220), 6, BF
+'Counter
+LINE (240, 245)-(300, 290), 0, BF: LINE (239, 244)-(301, 291), 15, B
+LINE (241, 246)-(299, 289), 6, B: LINE (243, 246)-(298, 288), 6, B
+GOSUB Cntr
+
+Pskey:
+i$ = INKEY$: IF i$ = "" THEN GOTO Pskey
+IF i$ = CHR$(0) + "M" THEN Flg = 1: T = 1: SL = 6: GOSUB DrwMtr: GOSUB Cntr: CPU = CPU + T: IF CPU > 443 THEN CPU = 443
+IF i$ = CHR$(0) + "K" THEN T = -1: SL = 14: GOSUB DrwMtr: CPU = CPU + T: GOSUB DrwMtr: GOSUB Cntr: IF CPU < 105 THEN CPU = 105
+IF i$ = CHR$(27) THEN GOTO BegdotGame
+IF i$ = CHR$(32) THEN RETURN
+GOTO Pskey
+
+Cntr:
+c = c + T
+IF c < 1 THEN c = 1: Flg = 0
+IF c > 340 THEN c = 340
+COLOR 7: LOCATE 17, 32: PRINT c - 1;
+RETURN
+
+BegdotGame:
+IF c - 1 < 2 THEN Flg = 0: CPU = 0
+RETURN
+
+DrwMtr:
+LINE (CPU, 190)-(CPU, 220), SL, BF
+RETURN
+
+Builddotmazes:
+'M:1 Maze 1
+Maze$(1) = "######W#W#W#########"
+Maze$(2) = "#t### S B S #####"
+Maze$(3) = "#t# # # ###### LL#"
+Maze$(4) = "#t# # # ###### ###W#"
+Maze$(5) = "#t# # # # S."
+Maze$(6) = "#r# # # # # ###W####"
+Maze$(7) = "#g#t# # # # SLk ."
+Maze$(8) = "#t# # # # ##########"
+Maze$(9) = "# # # # # # # ."
+Maze$(10) = "# W # # # ########W#"
+Maze$(11) = "# B D # # B."
+Maze$(12) = "#######.############"
+
+'M:9 Maze 2
+Maze$(13) = "#######.############"
+Maze$(14) = "#t # # ####W#W###W#"
+Maze$(15) = "#r # # # # B B ttS."
+Maze$(16) = "#r # # # ##W#######"
+Maze$(17) = "# # # # #kB ."
+Maze$(18) = "# # # # ##########"
+Maze$(19) = "# # # # ."
+Maze$(20) = "# # # #######W####"
+Maze$(21) = "# # # D #rB ."
+Maze$(22) = "# # # #### #######"
+Maze$(23) = "# # # # ."
+Maze$(24) = "#.##.##.######.#####"
+
+'M:17
+Maze$(25) = "#.##.##.######.#W###"
+Maze$(26) = "# # # #gtrr Brk#"
+Maze$(27) = "# # # ############"
+Maze$(28) = "# # # ."
+Maze$(29) = "# # ##############"
+Maze$(30) = "# # #"
+Maze$(31) = "# #####D######### #"
+Maze$(32) = "# ####W W# ## #"
+Maze$(33) = "# ##ttBgBt# ## #"
+Maze$(34) = "# ################ #"
+Maze$(35) = "# # ."
+Maze$(36) = "#.#.################"
+
+'M:25
+Maze$(37) = "#.#.################"
+Maze$(38) = "# ."
+Maze$(39) = "# ##################"
+Maze$(40) = "# ."
+Maze$(41) = "# ################W#"
+Maze$(42) = "# B."
+Maze$(43) = "##W###W#############"
+Maze$(44) = "#tBtttB tt # ."
+Maze$(45) = "#rB r B # ####"
+Maze$(46) = "#######D##.W### ##W#"
+Maze$(47) = "# rr # # B # #kB."
+Maze$(48) = "##..###.##.## #.####"
+
+'M:33
+Maze$(49) = "##..###.##.## #.####"
+Maze$(50) = "# # # # k# ."
+Maze$(51) = "#W# ### ###W###W####"
+Maze$(52) = "#B B B ."
+Maze$(53) = "# ##### ##### # ####"
+Maze$(54) = "# # # # # # # #"
+Maze$(55) = "# # # # r # # #"
+Maze$(56) = "# # # # # # # #"
+Maze$(57) = "# # # W#### # # #"
+Maze$(58) = "# # # B # # #"
+Maze$(59) = "#D# # ##### # # #"
+Maze$(60) = "#.#####.#####.#.####"
+
+'M:41
+Maze$(61) = "#.#####.#####.#.####"
+Maze$(62) = "# # # # # W## #"
+Maze$(63) = "# # t # # # Bk# #"
+Maze$(64) = "# # # # ##### #"
+Maze$(65) = "# # # # ######## #"
+Maze$(66) = "# # r # # # # #"
+Maze$(67) = "# # # # # rrr # #"
+Maze$(68) = "# # # # # # #"
+Maze$(69) = "# # # # ttt # #"
+Maze$(70) = "# ############## #W#"
+Maze$(71) = "# D B."
+Maze$(72) = "####.###############"
+
+'M:49
+Maze$(73) = "####.#######W###W###"
+Maze$(74) = "# # # # B B #"
+Maze$(75) = "# # # # ### # #"
+Maze$(76) = "# # # # # # # #"
+Maze$(77) = "# # # # # # # #"
+Maze$(78) = "# # ### # # # #r #"
+Maze$(79) = "# # # # # # # #"
+Maze$(80) = "# # # # # # # t#"
+Maze$(81) = "# # k # # # # # #"
+Maze$(82) = "# ##### # # # #W##"
+Maze$(83) = "# #r# #D # B ."
+Maze$(84) = "#####.#####.######.#"
+
+'M:57
+Maze$(85) = "#####.#####.######.#"
+Maze$(86) = "# t# # # # # ."
+Maze$(87) = "# # # # # ###"
+Maze$(88) = "# ### ##### ##W#####"
+Maze$(89) = "# #kB L ."
+Maze$(90) = "# #######W##########"
+Maze$(91) = "# B ."
+Maze$(92) = "# ##################"
+Maze$(93) = "# ## rr ggg ttt tt#."
+Maze$(94) = "# #W ggg tt rr###"
+Maze$(95) = "# DS g ggg ttt ttg #"
+Maze$(96) = "####################"
+
+'M:2
+Maze$(97) = "####################"
+Maze$(98) = "##WW##############W#"
+Maze$(99) = "#kBS SD"
+Maze$(100) = "###W #"
+Maze$(101) = ". B ."
+Maze$(102) = "#####W######W#######"
+Maze$(103) = ". B B ttt# ."
+Maze$(104) = "################## #"
+Maze$(105) = ". #r # #"
+Maze$(106) = "################.# #"
+Maze$(107) = ". #"
+Maze$(108) = "####################"
+
+'M:10
+Maze$(109) = "####################"
+Maze$(110) = "###W#######W######W#"
+Maze$(111) = ". B S S."
+Maze$(112) = "########### ########"
+Maze$(113) = ". # # ."
+Maze$(114) = "######### # # #"
+Maze$(115) = ". # #r# ###W#"
+Maze$(116) = "####### # ### # B."
+Maze$(117) = ". # # # #"
+Maze$(118) = "##### # ######## #"
+Maze$(119) = ". # # #"
+Maze$(120) = "##.##.######.#######"
+
+'M:18
+Maze$(121) = "##.##.######.#####W#"
+Maze$(122) = "#ggg# # ## # B."
+Maze$(123) = "##W## # ## #####t#"
+Maze$(124) = "D B # ##k# r ###"
+Maze$(125) = "#### ## ### r r #"
+Maze$(126) = "# ## ## ## ."
+Maze$(127) = "# ## ## #########"
+Maze$(128) = "# ## ## ."
+Maze$(129) = "# # # # ##W## ##"
+Maze$(130) = "####### # # #rB W#"
+Maze$(131) = ". # # # #rB B."
+Maze$(132) = "#######.###.#.######"
+
+'M:26
+Maze$(133) = "#######.###.#.####W#"
+Maze$(134) = ". rr# ## # ttt#B."
+Maze$(135) = "####### ## # rr # #"
+Maze$(136) = ". rr# ## ###### #"
+Maze$(137) = "###### ## # rrr t#"
+Maze$(138) = ". # D## #### ###"
+Maze$(139) = "# # # # #"
+Maze$(140) = ". # #### ####W ###"
+Maze$(141) = "#### ## # B #k#"
+Maze$(142) = "#W#### ## # #####L#"
+Maze$(143) = ".B ## # # #"
+Maze$(144) = "#######.##.#.#####.#"
+
+'M:34
+Maze$(145) = "#######.##.#.#####.#"
+Maze$(146) = ". # # #t# #"
+Maze$(147) = "#######.#### # #t# #"
+Maze$(148) = ". L # # #r# #"
+Maze$(149) = "### ##WW#D# # # # #"
+Maze$(150) = "# # # BB # B# # # #"
+Maze$(151) = "# # # # # k# # # #"
+Maze$(152) = "# # # ####### # # #"
+Maze$(153) = "# # #t # # # ."
+Maze$(154) = "# # #g # W##### # #"
+Maze$(155) = "# # #g # B # #"
+Maze$(156) = "###.####.#########.#"
+
+'M:42
+Maze$(157) = "###.####.#########.#"
+Maze$(158) = "# # # # # # # #"
+Maze$(159) = "# # # # # # # # # #"
+Maze$(160) = "# # # #t # # # # # #"
+Maze$(161) = "# # # # # # # # # #"
+Maze$(162) = "# # # # r# # # # # #"
+Maze$(163) = "# # # # # # # # # #"
+Maze$(164) = "# # # # W## # # # #"
+Maze$(165) = "# #k# # B # # #"
+Maze$(166) = "#W###############W #"
+Maze$(167) = ".B D B #"
+Maze$(168) = "### ############.###"
+
+'M:50
+Maze$(169) = "###.############.###"
+Maze$(170) = "# # # ## # #"
+Maze$(171) = "# #L# ## # #"
+Maze$(172) = "# # # ## ## #"
+Maze$(173) = "# #k# #W ### #"
+Maze$(174) = "# ### ## B ## ##W#"
+Maze$(175) = "# ## ## # t#tB."
+Maze$(176) = "# ## ## #L ## #"
+Maze$(177) = "# ## ## #tt## #"
+Maze$(178) = "## ## W#### L## #"
+Maze$(179) = ".L # Brr tt##D#"
+Maze$(180) = "##################.# "
+
+'M:58
+Maze$(181) = "#W################.#"
+Maze$(182) = ".B # # #"
+Maze$(183) = "# k############### #"
+Maze$(184) = "#W# #"
+Maze$(185) = ".B ############## #"
+Maze$(186) = "### # #"
+Maze$(187) = ". # # ##############"
+Maze$(188) = "# # ##############W#"
+Maze$(189) = ". # B."
+Maze$(190) = "# ################W#"
+Maze$(191) = "# BD"
+Maze$(192) = "####################"
+
+'M:3
+Maze$(193) = "####################"
+Maze$(194) = "####################"
+Maze$(195) = ". #"
+Maze$(196) = "######W###W#W## # ."
+Maze$(197) = ". L S S Sk# # #"
+Maze$(198) = "############### # #"
+Maze$(199) = ". # # #"
+Maze$(200) = "########### # # # #"
+Maze$(201) = "#r r r # # # #"
+Maze$(202) = "# g t # # # #"
+Maze$(203) = "# # # #D#"
+Maze$(204) = "########.####.#.##.#"
+
+'M:11
+Maze$(205) = "########.####.#.##.#"
+Maze$(206) = "####### Lt # # # #"
+Maze$(207) = ". # Lt L# # # #"
+Maze$(208) = "#W### ####W## # # #"
+Maze$(209) = ".SW B## # # #"
+Maze$(210) = "#kBs######g## #r # #"
+Maze$(211) = "######ggt# ## # # #"
+Maze$(212) = ". #trt# ## # # #"
+Maze$(213) = "#### #rrt# W# # r#D#"
+Maze$(214) = "#tW# # W B# #### #"
+Maze$(215) = "# B # BsS # #"
+Maze$(216) = "####.##########.##.#"
+
+'M:19
+Maze$(217) = "####.##########.##.#"
+Maze$(218) = ". # # # ."
+Maze$(219) = "## # # ####WW#W# ###"
+Maze$(220) = "## # # # D BBsB ."
+Maze$(221) = "## # # # ##W########"
+Maze$(222) = "## # # # #kBttL ttt#"
+Maze$(223) = "## # # # # LLL LttL#"
+Maze$(224) = ". # # # L ttLt#"
+Maze$(225) = "### # # # L LLtL#"
+Maze$(226) = "#r# # # # L L L#"
+Maze$(227) = ". # # # #L L L ."
+Maze$(228) = "#.####.#.###########"
+
+'M:27
+Maze$(229) = "#.####.#.##W#W######"
+Maze$(230) = ". ### # #LStBt#rrr#"
+Maze$(231) = "# # ## # LLLL# #"
+Maze$(232) = "# # #### # r LWrr #"
+Maze$(233) = "# # # #L r S #"
+Maze$(234) = "# # # ###W L L#rrr#"
+Maze$(235) = "# # # #ttB r # #"
+Maze$(236) = "# # # # ######## ###"
+Maze$(237) = "# # # # r g ## # ."
+Maze$(238) = "# # # # r r t## # #"
+Maze$(239) = "# # # # g t ## # #"
+Maze$(240) = "#.#.#.##########.#.#"
+
+'M:35
+Maze$(241) = "#.#.#.##########.#.#"
+Maze$(242) = "# #L# # # #"
+Maze$(243) = "# #t# ####W##### # #"
+Maze$(244) = "# #g# B #"
+Maze$(245) = "# ##################"
+Maze$(246) = "# ##############W###"
+Maze$(247) = "# B #"
+Maze$(248) = "##W############### #"
+Maze$(249) = ". B rrLrrr k# #"
+Maze$(250) = "###W############## #"
+Maze$(251) = "# B D."
+Maze$(252) = "##.#################"
+
+'M:43
+Maze$(253) = "##.#################"
+Maze$(254) = "## ######W#W########"
+Maze$(255) = "## # SsS ."
+Maze$(256) = "## # ###W#########W#"
+Maze$(257) = "## # #kgSs L S."
+Maze$(258) = "## # ###############"
+Maze$(259) = "## # ."
+Maze$(260) = "## #################"
+Maze$(261) = "## # sL L#"
+Maze$(262) = "## # #W#####W##### #"
+Maze$(263) = "## # DS Ss E## #"
+Maze$(264) = "##.###############.#"
+
+'M:51
+Maze$(265) = "##.###########W###.#"
+Maze$(266) = "## # S Ds#"
+Maze$(267) = "## # ###############"
+Maze$(268) = "## # ."
+Maze$(269) = "## ##W#####W###### #"
+Maze$(270) = "#W B B # #"
+Maze$(271) = ".B # #####W##L # #"
+Maze$(272) = "#### # B # L# #"
+Maze$(273) = "# # #### #k# ##"
+Maze$(274) = "# ttt # # # ### #W#"
+Maze$(275) = "# # # #B."
+Maze$(276) = "#######.# ########.#"
+
+'M:59
+Maze$(277) = "#######.# W#######.#"
+Maze$(278) = "#kttt # # S r t g# #"
+Maze$(279) = "# tt L# ########D# #"
+Maze$(280) = "# ttt # #tttttttt# #"
+Maze$(281) = "#L L # ########## #"
+Maze$(282) = "# # #"
+Maze$(283) = "###.##############W#"
+Maze$(284) = "# W # B."
+Maze$(285) = ". # B # #"
+Maze$(286) = "####################"
+Maze$(287) = ". ."
+Maze$(288) = "####################"
+
+'M:4
+Maze$(289) = "####################"
+Maze$(290) = "####################"
+Maze$(291) = "#######W###W####WW##"
+Maze$(292) = ". St# S BBk."
+Maze$(293) = "# #W###### #########"
+Maze$(294) = "# .B tttt LtLLtttt#"
+Maze$(295) = "# #L ttt L ttttLtt."
+Maze$(296) = "# # L L L LL LL L#"
+Maze$(297) = "# #L L LL LL ."
+Maze$(298) = "# #####W##########W#"
+Maze$(299) = "# sS D B."
+Maze$(300) = "#########.##########"
+
+'M:12
+Maze$(301) = "#########.##########"
+Maze$(302) = "# # # ."
+Maze$(303) = "# ####### # ########"
+Maze$(304) = "# # ###W####"
+Maze$(305) = "#L##### # # #ttS ."
+Maze$(306) = "# # # # #####W##"
+Maze$(307) = "# # ##### # # tt S ."
+Maze$(308) = "#L# ###W# # # tt ###"
+Maze$(309) = "# L sB# # # #"
+Maze$(310) = "# ##### # # # rrrr #"
+Maze$(311) = "#S k# #D# rrrr #"
+Maze$(312) = "#.#######.#.########"
+
+'M:20
+Maze$(313) = "#.#######.#.#W######"
+Maze$(314) = ". # # # Btttts."
+Maze$(315) = "### # # # # #WW#####"
+Maze$(316) = ". # # # # #D BBLLtt#"
+Maze$(317) = "# # # # # # # Bt##W#"
+Maze$(318) = "# # # # # # #LWW#kS."
+Maze$(319) = "# # # # # # #LBS####"
+Maze$(320) = "# # # # # # #ttttt #"
+Maze$(321) = "# # # # # # # tttt #"
+Maze$(322) = "# # # # # # # tttt #"
+Maze$(323) = ". # # # # # # tttt #"
+Maze$(324) = "#.#.#.###.#.######.#"
+
+'M:28
+Maze$(325) = "#.#.#.###.#.######.#"
+Maze$(326) = "#L# # # # DrLrr#g#"
+Maze$(327) = "# # #S# ### #rrr##W#"
+Maze$(328) = "#L# ### #t# # Lr#kS."
+Maze$(329) = "# # # W #t# #S L####"
+Maze$(330) = "#L#r# B rt# #BBL #"
+Maze$(331) = "#t# # ##### #Lttt###"
+Maze$(332) = "##### # #LtLt# ."
+Maze$(333) = ". g# # #####LtLt# #"
+Maze$(334) = "####W # #tttLttLt# #"
+Maze$(335) = "#tttB # #gLtttLtt# #"
+Maze$(336) = "#######.##########.#"
+
+'M:36
+Maze$(337) = "#######.########W#.#"
+Maze$(338) = "# r r # Ss #"
+Maze$(339) = "# t # # ######W# #"
+Maze$(340) = "#####W# # # Bs #"
+Maze$(341) = "# B # # ###### #"
+Maze$(342) = "# ####### # #ktgt# #"
+Maze$(343) = "# # # #L Lt# #"
+Maze$(344) = "# # # # #r L # #"
+Maze$(345) = "# #W## # # #L # #"
+Maze$(346) = "# sS # # # L # #"
+Maze$(347) = ".###D# # # # L # #"
+Maze$(348) = "####.# ####.####.#.#"
+
+'M:44
+Maze$(349) = "####.# ####.####.#.#"
+Maze$(350) = "#W## # #gg# #tt# #r#"
+Maze$(351) = ".Ss # #tt# #tt#####"
+Maze$(352) = "#W#### #Lt# # ttL t#"
+Maze$(353) = ".Bs #tt#k#L t #"
+Maze$(354) = "#W######tt### BS #"
+Maze$(355) = ".S###ttttL L tttt #"
+Maze$(356) = "# ###tttt L tttt #"
+Maze$(357) = "# ###rrrLr L rrr #"
+Maze$(358) = "# #WW rrrr L L #"
+Maze$(359) = "# DSBrrrLrrL rrrr #"
+Maze$(360) = "#.##################"
+
+'M:52
+Maze$(361) = "#.W#################"
+Maze$(362) = "# Ss ."
+Maze$(363) = "####W#######D#####W#"
+Maze$(364) = ".k# B tttttL # s B."
+Maze$(365) = "###L LL L L # ### #"
+Maze$(366) = "# LL Ltttt # ### #"
+Maze$(367) = "# L L LL L L# # # #"
+Maze$(368) = "#rrLL L ttttL# # # #"
+Maze$(369) = "# rr rr L L# # # #"
+Maze$(370) = "#W############ # # #"
+Maze$(371) = ".Sss # #"
+Maze$(372) = "##################.#"
+
+'M:60
+Maze$(373) = "################W#.#"
+Maze$(374) = "# sB #"
+Maze$(375) = "# ################L#"
+Maze$(376) = "# #ttLL LL L LL L ."
+Maze$(377) = "# #W##############W#"
+Maze$(378) = "# sS sS."
+Maze$(379) = "#W################W#"
+Maze$(380) = ".B L B."
+Maze$(381) = "####################"
+Maze$(382) = "#W################W#"
+Maze$(383) = ".S S."
+Maze$(384) = "####################"
+
+'M:5 (5th row over)
+Maze$(385) = "##################W#"
+Maze$(386) = "##################S."
+Maze$(387) = "####t t rrrrt##### #"
+Maze$(388) = ". B L r LW## #"
+Maze$(389) = "# B L B L #"
+Maze$(390) = "############### W###"
+Maze$(391) = ".#g g #sB#t#"
+Maze$(392) = "############# ## # #"
+Maze$(393) = ". L rr rr L# # #"
+Maze$(394) = "################ # #"
+Maze$(395) = ". L t ttk# D #"
+Maze$(396) = "##################.#"
+
+'M:13
+Maze$(397) = "#W################.#"
+Maze$(398) = ".B . #"
+Maze$(399) = "################## #"
+Maze$(400) = "#W##############W# #"
+Maze$(401) = ".S B #"
+Maze$(402) = "#W###############WD#"
+Maze$(403) = ".B L L LL L L LL S #"
+Maze$(404) = "# tttttt L ttLtt ###"
+Maze$(405) = "#L LL rrrr rrL #k#"
+Maze$(406) = "# rrLrr L rrrr L# #"
+Maze$(407) = "# LL L L L L #L#"
+Maze$(408) = "################.#.#"
+
+'M:21
+Maze$(409) = "#W##############.#.#"
+Maze$(410) = ".Sk# ttttt LLt#D# #"
+Maze$(411) = "####LLLLttttL##LL# #"
+Maze$(412) = "#tttrrrLLLrrLrrL # #"
+Maze$(413) = "##W#############W# #"
+Maze$(414) = ". Ss sS #"
+Maze$(415) = "# ################ #"
+Maze$(416) = "# #LtLtt tttLL LL# #"
+Maze$(417) = "# # LLL LLLLL L # #"
+Maze$(418) = "# # ttttLLtttt L# #"
+Maze$(419) = "# #L LLL LLL tL# #"
+Maze$(420) = "#.#.##############.#"
+
+'M:29
+Maze$(421) = "#.#.##############.#"
+Maze$(422) = "# # # #"
+Maze$(423) = "# # ############ # #"
+Maze$(424) = ". # # t# # #"
+Maze$(425) = "#L# # ## ## tt# # #"
+Maze$(426) = "# # # # ## #### # #"
+Maze$(427) = "# # # # ## # # #"
+Maze$(428) = ". # # # ## # ##W# #"
+Maze$(429) = "### # # ## # # Ss #"
+Maze$(430) = "# # # ## # # ##W#"
+Maze$(431) = "# D # ## # # #kS#"
+Maze$(432) = "#####.##.##.#.#.##.#"
+
+'M:37
+Maze$(433) = "#####.##.##.#.#.##.#"
+Maze$(434) = "#rrt# # ## # # # #"
+Maze$(435) = "#LrL# # ## # # #B #"
+Maze$(436) = "#rr # # ## # # # #"
+Maze$(437) = "# LL #D# ## # # # B#"
+Maze$(438) = "# LLLL # ## # # # #"
+Maze$(439) = "# tLt # ## # # #B #"
+Maze$(440) = "#tLLLLL# ## # # # #"
+Maze$(441) = "#tttLLL# ## # # # B#"
+Maze$(442) = "#LL###L# ## # # # #"
+Maze$(443) = "# t#k#t# ## # # # #"
+Maze$(444) = "#.##.###.##.#.#.##.#"
+
+'M:45
+Maze$(445) = "#.##.###.##.#.#.##.#"
+Maze$(446) = "# # # # ## # # # #"
+Maze$(447) = "# # # # ## # # # #"
+Maze$(448) = "# # # # ## # # # #"
+Maze$(449) = "# # # # ## # # W# #"
+Maze$(450) = "# # # # ## # # Ss #"
+Maze$(451) = "#tt# # # ## # #### #"
+Maze$(452) = "#tt# # # ## # #### #"
+Maze$(453) = "#tt# # # ## # #### #"
+Maze$(454) = "#tt# # # ## # #W## #"
+Maze$(455) = "#tt# # # ##L# Ss #"
+Maze$(456) = "####.###.##.######.#"
+
+'M:53
+Maze$(457) = "#W##.###.##.######.#"
+Maze$(458) = ".Ss D #k # #rrrr #"
+Maze$(459) = "#### # #### #rrt #"
+Maze$(460) = ". # # tt #r#rr #"
+Maze$(461) = "# # # L#r#tttt #"
+Maze$(462) = "# # # tt #r#tttt #"
+Maze$(463) = "# # # L #r#tttt #"
+Maze$(464) = "# r# # tt #r#t L##W#"
+Maze$(465) = "# r# #L L #r#ttt#rS."
+Maze$(466) = "#r # # t L#W# ##W#"
+Maze$(467) = "#r # # L sSs B."
+Maze$(468) = "####.###############"
+
+'M:61
+Maze$(469) = "##W#.###############"
+Maze$(470) = "#kB# ###############"
+Maze$(471) = "#L # L L#"
+Maze$(472) = ". ############### #"
+Maze$(473) = "#W### tttL Lrrr # #"
+Maze$(474) = ".Bs #Lttt LL ttt # #"
+Maze$(475) = "#W# # tttL Lttt # #"
+Maze$(476) = ".S# #L L LLL L # #"
+Maze$(477) = "# # #L L L L L # #"
+Maze$(478) = "# # #######WD###W# #"
+Maze$(479) = ". # sS sS #"
+Maze$(480) = "####################"
+
+'M:6
+Maze$(481) = "####################"
+Maze$(482) = ". ########W#W#W#W###"
+Maze$(483) = "# # D #ks B S S B #"
+Maze$(484) = "# # # ############ #"
+Maze$(485) = "# # # gLtgtttggg # #"
+Maze$(486) = "# # # rttgrrggtt # #"
+Maze$(487) = "# # # LgtggLttttg# #"
+Maze$(488) = "# # # LtttLLtttr # #"
+Maze$(489) = "# # # rttgLLgLttr# #"
+Maze$(490) = "# # ############## #"
+Maze$(491) = "# # # #"
+Maze$(492) = "#.#.##############.#"
+
+'M:14
+Maze$(493) = "#.#.##W#W#W####W##D#"
+Maze$(494) = "# # # B S S LS # #"
+Maze$(495) = "# # # # # # t t# # #"
+Maze$(496) = "# #L# # # #tLtL#L# #"
+Maze$(497) = "# # # # # #LL t# # #"
+Maze$(498) = "# # # # # #LL L# # #"
+Maze$(499) = "# # # # # #tLLL# #L#"
+Maze$(500) = "# # # # # #LLLL# # #"
+Maze$(501) = "# #L# # # #LttL# # #"
+Maze$(502) = "# # # # ##k s W # #"
+Maze$(503) = "# # # # ## ### S # #"
+Maze$(504) = "#.#.#.#.##.###.#.#.#"
+
+'M:22
+Maze$(505) = "#.#.#.#.##.###.#.#.#"
+Maze$(506) = "# # # ###gggg L# # #"
+Maze$(507) = "# # # #gggL ggg#k# #"
+Maze$(508) = "# # #.#W########## #"
+Maze$(509) = "# # S # #"
+Maze$(510) = "# ##WL########## #D#"
+Maze$(511) = "# # Ss #"
+Maze$(512) = "# # ########W#####W#"
+Maze$(513) = "# # #ttttLrrSrrrr S."
+Maze$(514) = "# # #############WW#"
+Maze$(515) = "# # s L BB."
+Maze$(516) = "#.##.###############"
+
+'M:30
+Maze$(517) = "#.##.###############"
+Maze$(518) = "# ##sD ."
+Maze$(519) = "# #t#######W########"
+Maze$(520) = "# #g# #r#ttB ."
+Maze$(521) = "# # # #r############"
+Maze$(522) = "# # # # #L ttLttt #"
+Maze$(523) = "# # # # # tttttt ."
+Maze$(524) = "#L# # # # L L rr L #"
+Maze$(525) = "# # # # #B L #"
+Maze$(526) = "# # # # #######W####"
+Maze$(527) = "# # # # # Ssk ."
+Maze$(528) = "#.#.#.#.#.##########"
+
+'M:38
+Maze$(529) = "#.W.#.#.#.W#########"
+Maze$(530) = "# S # # Ss ."
+Maze$(531) = "# # # # ########## #"
+Maze$(532) = "# # # # #ttLtgL#k# ."
+Maze$(533) = "# # # # #LtgLgt#L# #"
+Maze$(534) = "# # # # # gttgL# # #"
+Maze$(535) = "# # # # #LgLggL#L# #"
+Maze$(536) = "# # # ### gtt t# # #"
+Maze$(537) = "# # # ### LLL # # #"
+Maze$(538) = "# # # #W#D#L t #L# #"
+Maze$(539) = "# # # sS# # L # # #"
+Maze$(540) = "#.#.#.#.#.######.#.#"
+
+'M:46
+Maze$(541) = "#.#.#.#.#.######.#.#"
+Maze$(542) = "# # # # # #tttt# # #"
+Maze$(543) = "# # # # #LL L# # #"
+Maze$(544) = "# # # # WW## rt# # #"
+Maze$(545) = "# # # # SSk#tLL# # #"
+Maze$(546) = "# # # # ####LLL# # #"
+Maze$(547) = "# # # ### tggt# # #"
+Maze$(548) = "# # # # DLL ttr# # #"
+Maze$(549) = "# # # # # gLgtg# # #"
+Maze$(550) = "# # # # #LggLgt# # #"
+Maze$(551) = "# # # # # gLLtg# #"
+Maze$(552) = "#.#.#.#.############"
+
+'M:54
+Maze$(553) = "#.#.#.#.W########W##"
+Maze$(554) = "# # # # Ss S ."
+Maze$(555) = "# # # # ########## #"
+Maze$(556) = "# # # # #LLtttttg# #"
+Maze$(557) = "#L# # #L# LtLggt # #"
+Maze$(558) = "# # # # #LLgttgLL# #"
+Maze$(559) = "# # # # # ttrrt # #"
+Maze$(560) = "# # #L# #LLttLLLL# ."
+Maze$(561) = ". # # # # gtrL#D## #"
+Maze$(562) = "### # # # rt #L # #"
+Maze$(563) = ".k# # # # rgr # L# #"
+Maze$(564) = "#.#.#.#.#######.##.#"
+
+'M:62
+Maze$(565) = "#.#.#.#.W####W#.##.#"
+Maze$(566) = "# # # # B S # ."
+Maze$(567) = "# # # ####W#####W###"
+Maze$(568) = "# # # #tttS S ."
+Maze$(569) = "# # # ##############"
+Maze$(570) = "# # # ############W#"
+Maze$(571) = "# # sS."
+Maze$(572) = "# # ################"
+Maze$(573) = "# # ."
+Maze$(574) = "# ################W#"
+Maze$(575) = "# L sB."
+Maze$(576) = "####################"
+
+'M:7
+Maze$(577) = "##W#W##W###W#W#W#W##"
+Maze$(578) = "#tB Ss Ss B S B S #"
+Maze$(579) = "### ## ### # # # # #"
+Maze$(580) = "# # # #t# # # # # #"
+Maze$(581) = "# # # # # # # # # #"
+Maze$(582) = "# # # # # # # # # #"
+Maze$(583) = "# # # # # # # # # #"
+Maze$(584) = "# # # # # # # # # #"
+Maze$(585) = "# # # # # # # # # #"
+Maze$(586) = "# # # #L# # # # # #"
+Maze$(587) = "# # # # # # # # # #"
+Maze$(588) = "#.#.##.#.#.#.#.#.#.#"
+
+'M:15
+Maze$(589) = "#.#.##.#.#.#.#.#.#.#"
+Maze$(590) = "# #L # # #L# # #L# #"
+Maze$(591) = "# # # # # # # # #L#"
+Maze$(592) = "# # L# # # # # # # #"
+Maze$(593) = "# # # # # # # # # #"
+Maze$(594) = "# #L # # # #t# # # #"
+Maze$(595) = "# # # # # #t# # # #"
+Maze$(596) = "# # L# # # # # # # #"
+Maze$(597) = "# # # # # # # # # #"
+Maze$(598) = "# #L # # # #t# # # #"
+Maze$(599) = "# # #L# # #t#L# # #"
+Maze$(600) = "#.#.##.#.#.###.#.#.#"
+
+'M:23
+Maze$(601) = "#.#.##.#.#.###.#.#.#"
+Maze$(602) = "# #k # # # #r# # # #"
+Maze$(603) = "# #### # # #r# # # #"
+Maze$(604) = "# #gt# # # # # # # #"
+Maze$(605) = "# #gg# # # # # # # #"
+Maze$(606) = "# ## # # # # # # # #"
+Maze$(607) = "# # # #r# # #"
+Maze$(608) = "#W###### W####W# # #"
+Maze$(609) = ".S S B # #"
+Maze$(610) = "#W#######W######W# #"
+Maze$(611) = ".S B L sB #"
+Maze$(612) = "################.#D#"
+
+'M:31
+Maze$(613) = "#W##############.# #"
+Maze$(614) = ".Bs #t# # #"
+Maze$(615) = "#W###### ### #t# # #"
+Maze$(616) = ".S #t# #t# # #"
+Maze$(617) = "########## # #t# # #"
+Maze$(618) = "#W######## # #t#t# #"
+Maze$(619) = ".S ## # #t#g# #"
+Maze$(620) = "## rrgg ## # #t#t# #"
+Maze$(621) = "########## #L# #t#L#"
+Maze$(622) = "#W######## # # ### #"
+Maze$(623) = ".B # # ## s#"
+Maze$(624) = "##########.#.#.##.##"
+
+'M:39
+Maze$(625) = "#W########.#.#.##.W#"
+Maze$(626) = ".S #### # #k B."
+Maze$(627) = "#W##### # # #####"
+Maze$(628) = ".S ### # # ."
+Maze$(629) = "####D# #t# # #####W#"
+Maze$(630) = "#tttt# # # # sB."
+Maze$(631) = "#tttt# # # #######W#"
+Maze$(632) = "#tttt# # # # sS."
+Maze$(633) = "#tttt# # # # #######"
+Maze$(634) = "# t# # # # # #####W#"
+Maze$(635) = "#tt# # # # #rrrsS."
+Maze$(636) = "######.#.#.#.#######"
+
+'M:47
+Maze$(637) = "##W###.#.#.#.####W##"
+Maze$(638) = "#kS # # sB #"
+Maze$(639) = "########W# ####### #"
+Maze$(640) = "# r# #L BsD # # #"
+Maze$(641) = "# # #ttt## # # # #"
+Maze$(642) = "# # #tttt# # # # #"
+Maze$(643) = "# # #tttt# # # # #"
+Maze$(644) = "# # #tLtt# # # # #"
+Maze$(645) = "# # #tttL# # # # #"
+Maze$(646) = "# # ###### # # # #"
+Maze$(647) = "# # # # # # #"
+Maze$(648) = "####.####.#.#.####.#"
+
+'M:55
+Maze$(649) = "##W#.####.#.#.####.#"
+Maze$(650) = ". B# #### #"
+Maze$(651) = "# W######## ### #"
+Maze$(652) = "# B # # # ####"
+Maze$(653) = "# tt # # # # k#"
+Maze$(654) = "########### # # # L#"
+Maze$(655) = "#W# rtttg # # # # #"
+Maze$(656) = ".B# tttgg # # # #LL#"
+Maze$(657) = "### tgttt D# # # #"
+Maze$(658) = "# rgttt ### # # # L#"
+Maze$(659) = "#gttgtt ### # #L #"
+Maze$(660) = "#########.###.#.##.#"
+
+'M:63
+Maze$(661) = "#W#######.###.#.##.#"
+Maze$(662) = ".Bs # # #"
+Maze$(663) = "#W########### # # #"
+Maze$(664) = ".Bs # # #"
+Maze$(665) = "############# # # #"
+Maze$(666) = "#W########### # # #"
+Maze$(667) = ".Bs # # #"
+Maze$(668) = "#W############# # #"
+Maze$(669) = ".Bs ."
+Maze$(670) = "#W################W#"
+Maze$(671) = ".Bs B."
+Maze$(672) = "####################"
+
+'M:8
+Maze$(673) = "#####W#W#W###W#W#W##"
+Maze$(674) = "#k## S B B ##S S S #"
+Maze$(675) = "# ## # #D# # # # # #"
+Maze$(676) = "# ## # # # # # # # #"
+Maze$(677) = "# ## # # # # # # # #"
+Maze$(678) = "# ## # # # # # # # #"
+Maze$(679) = "# ## # # # # # # # #"
+Maze$(680) = "# ## # # # # # # # #"
+Maze$(681) = "# ## # # # # # # # #"
+Maze$(682) = "# ## # # # # # # # #"
+Maze$(683) = "# ## # # # # # # # #"
+Maze$(684) = "#.##.#.#.#.#.#.#.#.#"
+
+'M:16
+Maze$(685) = "#.##.#.#.#.#.#.#.#.#"
+Maze$(686) = "# ## # # # # #L# #L#"
+Maze$(687) = "# ## # # # # #t# # #"
+Maze$(688) = "# ## # # # # #g# # #"
+Maze$(689) = "# ## # # # # ### # #"
+Maze$(690) = "# ## # # # # ### # #"
+Maze$(691) = "# ## # #L# # ### # #"
+Maze$(692) = "# ## # # # # ### # #"
+Maze$(693) = "# ## # # # # ### # #"
+Maze$(694) = "# ## # # # # ### # #"
+Maze$(695) = "# ##L# # # # ### # #"
+Maze$(696) = "#.##.#.#.#.#.###.#.#"
+
+'M:24
+Maze$(697) = "#.##.#.#.#.#.##W.#.#"
+Maze$(698) = "# ## # # # # # S # #"
+Maze$(699) = "# ## # # # # # # # #"
+Maze$(700) = "# ## # # # # # # # #"
+Maze$(701) = "# ## # # # # # # # #"
+Maze$(702) = "# ## # # #L# # # # #"
+Maze$(703) = "# ## #L# # # # # # #"
+Maze$(704) = "# ## # # # # # # # #"
+Maze$(705) = "# ## # # # # # # # #"
+Maze$(706) = "# ## # # # # W # # #"
+Maze$(707) = "# ## # # # # S # # #"
+Maze$(708) = "#.##.#.#.#.#.###.#.#"
+
+'M:32
+Maze$(709) = "#.##.#.#.#.#.###.#.#"
+Maze$(710) = "# ## # # # #D# # # #"
+Maze$(711) = "# ## # # # # # # # #"
+Maze$(712) = "# ## # # # #L# # # #"
+Maze$(713) = "# ## #L# # # # # # #"
+Maze$(714) = "# ## # # # # # # # #"
+Maze$(715) = "# ## # # # # # # # #"
+Maze$(716) = "# ## # # # # # # # #"
+Maze$(717) = "# ## # # # # # # # #"
+Maze$(718) = "# ## # # # W W # # #"
+Maze$(719) = "# ##k# # # B S # # #"
+Maze$(720) = "#.####.#.#.#.###.#.#"
+
+'M:40
+Maze$(721) = "#.####.#.#.#.###.#.#"
+Maze$(722) = ". # #t# # # ### # #"
+Maze$(723) = "#W# #W# # # ### # #"
+Maze$(724) = ".S S # # ### # #"
+Maze$(725) = "####W#W# # # ### # #"
+Maze$(726) = ". BsB # # ### # #"
+Maze$(727) = "#W###### # # ### # #"
+Maze$(728) = ".S # # ### # #"
+Maze$(729) = "######## # # ### # #"
+Maze$(730) = "##W###r# # # ### # #"
+Maze$(731) = ". S k# #D# # ### # #"
+Maze$(732) = "#.####.#.#.#.###.#.#"
+
+
+'M:48
+Maze$(733) = "#.####.#.#.#.###.#.#"
+Maze$(734) = "# # # # # ###L# #"
+Maze$(735) = "# # # # # # ###t# #"
+Maze$(736) = "# # # #L# # ##### #"
+Maze$(737) = "# # # # # # ###t# #"
+Maze$(738) = "# # # #k# # ### # #"
+Maze$(739) = "# # # ### # ### #L#"
+Maze$(740) = "# # # #t# # ### # #"
+Maze$(741) = "# # # #t# # ### # #"
+Maze$(742) = "# # # # # # ### # #"
+Maze$(743) = "# # #L# # # ### #D#"
+Maze$(744) = "#.##.#.#.#.#.###.#.#"
+
+'M:56
+Maze$(745) = "#.##.#.#.#.#.###.#.#"
+Maze$(746) = "# ## # # # #k### # #"
+Maze$(747) = "# ## # # # ###W# # #"
+Maze$(748) = "# ## # # # B # #"
+Maze$(749) = "# ## # # ####W##D# #"
+Maze$(750) = "# ## #L# #tttBttr# #"
+Maze$(751) = "# ## # # #gttt L# #"
+Maze$(752) = "# ## # # # trtSgL# #"
+Maze$(753) = "# ## # # #rr rtrt# #"
+Maze$(754) = "# #W # # #rtBgggt# #"
+Maze$(755) = "# sB # # #gg ttrt# #"
+Maze$(756) = "#.##.#.#.#########.#"
+
+'M:64
+Maze$(757) = "#.##.#.#.#########.#"
+Maze$(758) = "# # # # #ttt rrt# #"
+Maze$(759) = "# #L# # ####t tt# #"
+Maze$(760) = "# # # # # r rrr # #"
+Maze$(761) = "# t# # # #Lrttrt # #"
+Maze$(762) = "#t # # # # rrLrrL# #"
+Maze$(763) = "# t#k# # #Stt tt # #"
+Maze$(764) = "###### # #L L# #"
+Maze$(765) = ". # # # #"
+Maze$(766) = "######W#.#####W# # #"
+Maze$(767) = ". Ss SsD #"
+Maze$(768) = "####################"
+RETURN
+
+Makedotobj:
+DATA !?Short sword, !?Warriors sword, !?Magical sword
+DATA $/Amulet, %@Waters of healing, $/statue of a golden eagle
+DATA !?Whip, !?Knife, !?Shield
+DATA $/Chalice, $/bunch of golden coins, %/Healing potion
+DATA !?Iron fist, !?Detonator, %@Spider Antidote
+DATA |/Nothing at all
+
+Wallcols:
+DATA 12,4,6,2,5,7,8,14,8,11,9,1,4,2,2,1,2,3,10,1,8,8
+DATA 2,13,2,5,6,7,9,11,3,3,4,6,12,9,3,5,7,2,4,12,9,4
+DATA 5,8,9,7,1,3,6,2,4,5,13,11,12,11,10,9,14,15,13,1
+
+Wallbord:
+DATA 4,12,13,14,15,1,14,2,9,2,4,7,3,13,8,9,4,2,14,8,7
+DATA 1,13,3,15,4,4,10,2,4,14,1,11,14,1,1,13,12,14,14
+DATA 10,2,14,14,12,9,8,11,10,14,12,9,13,14,9,1,2,3,4
+DATA 5,8,8,2,14
+
+SUB Cleardotarea
+LINE (Sx - 4, Sy)-(Sx + 23, Sy + 35), 0, BF
+RETURN
+END SUB
+
+SUB CopydotPlayer
+LINE (CIX1 + 15, CIY1 + 23)-(CIX1 + 37, CIY1 + 45), 0, BF
+CIRCLE (CIX1 + 28, CIY1 + 35), 10, 15: PAINT (CIX1 + 28, CIY1 + 35), 15
+CIRCLE (CIX1 + 28, CIY1 + 35), 10, 6: CIRCLE (CIX1 + 28, CIY1 + 35), 9, 6
+FOR E = 1 TO 5: CIRCLE (CIX1 + 28, CIY1 + 35), E, 0: NEXT
+CIRCLE (CIX1 + 28, CIY1 + 35), 1, 0
+GET (CIX1 + 15, CIY1 + 23)-(CIX1 + 37, CIY1 + 45), Player%
+RETURN
+
+END SUB
diff --git a/samples/maze.md b/samples/maze.md
index f7e84663..11c51e26 100644
--- a/samples/maze.md
+++ b/samples/maze.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: MAZE
@@ -8,7 +8,7 @@
Maze hunter game by Microsoft.
-**[Mazes of Misery](mazes-of-misery/index.md)**
+**[Maze of Misery](maze-of-misery/index.md)**
[🐝 Steve M.](steve-m..md) 🔗 [game](game.md), [maze](maze.md)
diff --git a/samples/measure.md b/samples/measure.md
index f8ad412a..91e1945f 100644
--- a/samples/measure.md
+++ b/samples/measure.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: MEASURE
diff --git a/samples/measure/index.md b/samples/measure/index.md
index f4812232..fb014f17 100644
--- a/samples/measure/index.md
+++ b/samples/measure/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: MEASURE
diff --git a/samples/mennonite.md b/samples/mennonite.md
index 61b02701..cc30a5d1 100644
--- a/samples/mennonite.md
+++ b/samples/mennonite.md
@@ -1,7 +1,13 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY MENNONITE
+**[Kite](kite/index.md)**
+
+[🐝 mennonite](mennonite.md) 🔗 [legacy](legacy.md)
+
+Flying kite demo. '2007 mennonite 'public domain
+
**[SineCube](sinecube/index.md)**
[🐝 Mennonite](mennonite.md) 🔗 [graphics](graphics.md)
diff --git a/samples/menu.md b/samples/menu.md
index 48299c59..04d45b50 100644
--- a/samples/menu.md
+++ b/samples/menu.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: MENU
diff --git a/samples/michael-fogleman.md b/samples/michael-fogleman.md
index 0a09e45c..e761e494 100644
--- a/samples/michael-fogleman.md
+++ b/samples/michael-fogleman.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY MICHAEL FOGLEMAN
diff --git a/samples/michael-kargas.md b/samples/michael-kargas.md
index 03013897..ff42847e 100644
--- a/samples/michael-kargas.md
+++ b/samples/michael-kargas.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY MICHAEL KARGAS
diff --git a/samples/microsoft.md b/samples/microsoft.md
index 84c07df7..114d6b22 100644
--- a/samples/microsoft.md
+++ b/samples/microsoft.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY MICROSOFT
diff --git a/samples/mike-chambers.md b/samples/mike-chambers.md
index ed6250ec..e23b25a1 100644
--- a/samples/mike-chambers.md
+++ b/samples/mike-chambers.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY MIKE CHAMBERS
diff --git a/samples/minecraft.md b/samples/minecraft.md
index 7e1062c1..348d2b0e 100644
--- a/samples/minecraft.md
+++ b/samples/minecraft.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: MINECRAFT
diff --git a/samples/mini-clock/index.md b/samples/mini-clock/index.md
index 1f6a1a09..ca5b4d69 100644
--- a/samples/mini-clock/index.md
+++ b/samples/mini-clock/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: MINI CLOCK
@@ -18,16 +18,9 @@
' Homepage: http://www.quickbasic.6x.to
```
-### QBjs
-
-> Please note that QBjs is still in early development and support for these examples is extremely experimental (meaning will most likely not work). With that out of the way, give it a try!
-
-* [LOAD "mclock.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?src=https://qb64.com/samples/mini-clock/src/mclock.bas)
-* [RUN "mclock.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?mode=auto&src=https://qb64.com/samples/mini-clock/src/mclock.bas)
-* [PLAY "mclock.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?mode=play&src=https://qb64.com/samples/mini-clock/src/mclock.bas)
-
### File(s)
* [mclock.bas](src/mclock.bas)
+* [mclock_orig.bas](src/mclock_orig.bas)
🔗 [clock](../clock.md), [desktop](../desktop.md)
diff --git a/samples/mini-clock/src/mclock_orig.bas b/samples/mini-clock/src/mclock_orig.bas
new file mode 100644
index 00000000..4301e325
--- /dev/null
+++ b/samples/mini-clock/src/mclock_orig.bas
@@ -0,0 +1,990 @@
+' Release: MINI-CLOCK by Folker Fritz
+' Version: 1.0 (1999-10-31)
+' Status: 100% Freeware
+' EMail: folker.fritz@gmx.de
+' Homepage: http://www.quickbasic.6x.to
+
+DECLARE SUB FELT (X%, Y%, XX%, YY%, FARBEN%)
+DECLARE SUB KLPRINT (B$, B%, K%, G%, I%)
+DECLARE SUB DATUM ()
+DECLARE SUB FELD (A%, B%, AA%, BB%, C%)
+SCREEN 12
+WIDTH 80, 60
+FELT 0, 0, 639, 479, 7
+FELT 36, 78, 597, 154, 0
+
+'CONST PI = 3.141592
+DIM SHARED PI
+PI = 3.141592
+
+SCREEN 12
+CIRCLE (320, 300), 85, 15
+XCXX = VAL(MID$(TIME$, 7, 2))
+XCXY = VAL(MID$(TIME$, 4, 2))
+XCXZ = VAL(MID$(TIME$, 1, 2))
+1.1
+XCXB = PI * 2 / 12 - .0001
+XCXD = PI * 2 / 60 - .0001
+XCXE = PI * 2 / 60 - .0001
+456
+IF INKEY$ <> "" THEN END
+IF XCXX <> VAL(MID$(TIME$, 7, 2)) THEN XCXX = VAL(MID$(TIME$, 7, 2)): GFF = 1 ELSE GFF = 0: GOTO 456
+IF XCXY <> VAL(MID$(TIME$, 4, 2)) THEN XCXY = VAL(MID$(TIME$, 4, 2)): GFG = 1 ELSE GFG = 0
+IF XCXZ <> VAL(MID$(TIME$, 1, 2)) THEN XCXZ = VAL(MID$(TIME$, 1, 2)): GFH = 1 ELSE GFH = 0
+XCXC = VAL(MID$(TIME$, 1, 2))
+XCXF = VAL(MID$(TIME$, 4, 2))
+XCXG = VAL(MID$(TIME$, 7, 2))
+IF XCXC > 12 THEN XCXC = XCXC - 12
+IF XCXC < 4 THEN XCXC = XCXC + 12
+IF XCXC > 3 THEN XCXC = XCXC - 3
+IF XCXF < 16 THEN XCXF = XCXF + 60
+IF XCXF > 15 THEN XCXF = XCXF - 15
+IF XCXG < 16 THEN XCXG = XCXG + 60
+IF XCXG > 15 THEN XCXG = XCXG - 15
+IF GFF = 1 THEN CIRCLE (320, 300), 80, 7, -2 * PI + XCXII, -2 * PI + XCXII: GFF = 1: XCXX = VAL(MID$(TIME$, 7, 2))
+IF GFG = 1 THEN CIRCLE (320, 300), 60, 7, -2 * PI + XCXHH, -2 * PI + XCXHH: GFG = 0: XCXY = VAL(MID$(TIME$, 4, 2))
+IF GFH = 1 THEN CIRCLE (320, 300), 40, 7, -2 * PI + XCXAA, -2 * PI + XCXAA: GFH = 1: XCXZ = VAL(MID$(TIME$, 1, 2))
+XCXA = XCXB * XCXC
+XCXH = XCXD * XCXF
+XCXI = XCXE * XCXG
+XCXAA = XCXA
+XCXHH = XCXH
+XCXII = XCXI
+CIRCLE (320, 300), 40, 15, -2 * PI + XCXA, -2 * PI + XCXA
+CIRCLE (320, 300), 60, 12, -2 * PI + XCXH, -2 * PI + XCXH
+CIRCLE (320, 300), 80, 8, -2 * PI + XCXI, -2 * PI + XCXI
+IF TEMPTIME$ <> TIME$ THEN TEMPTIME$ = TIME$: DATUM
+KLPRINT MID$(DATE$, 4, 2) + ".", 18, 576, 10, 4
+KLPRINT MID$(DATE$, 1, 2) + ".", 18, 594, 10, 4
+KLPRINT MID$(DATE$, 7, 4), 18, 611, 10, 4
+KLPRINT "MINI-CLOCK Version 1.00", 18, 242, 0, 4
+KLPRINT "12", 219, 314, 0, 15
+KLPRINT "3", 310, 409, 0, 15
+KLPRINT "9", 310, 227, 0, 15
+KLPRINT "6", 403, 317, 0, 15
+KLPRINT "1", 231, 364, 0, 15
+KLPRINT "2", 265, 398, 0, 15
+KLPRINT "11", 231, 266, 0, 15
+KLPRINT "10", 265, 233, 0, 15
+KLPRINT "4", 357, 397, 0, 15
+KLPRINT "5", 391, 365, 0, 15
+KLPRINT "8", 357, 239, 0, 15
+KLPRINT "7", 390, 271, 0, 15
+COLOR 15
+A = -1
+B = -1
+C = -1
+D = -1
+E = -1
+F = -1
+LOCATE 14, 27: PRINT ""
+LOCATE 16, 27: PRINT ""
+LOCATE 14, 51: PRINT ""
+LOCATE 16, 51: PRINT ""
+20
+IF A <> VAL(MID$(TIME$, 1, 1)) THEN A = VAL(MID$(TIME$, 1, 1)): GOTO 2 ELSE GOTO 1
+2
+SELECT CASE A
+CASE 0:
+LOCATE 12, 7: PRINT ""
+LOCATE 13, 7: PRINT " "
+LOCATE 14, 7: PRINT " "
+LOCATE 15, 7: PRINT " "
+LOCATE 16, 7: PRINT " "
+LOCATE 17, 7: PRINT " "
+LOCATE 18, 7: PRINT ""
+CASE 1
+LOCATE 12, 7: PRINT " "
+LOCATE 13, 7: PRINT " "
+LOCATE 14, 7: PRINT " "
+LOCATE 15, 7: PRINT " "
+LOCATE 16, 7: PRINT " "
+LOCATE 17, 7: PRINT " "
+LOCATE 18, 7: PRINT " "
+CASE 2:
+LOCATE 12, 7: PRINT ""
+LOCATE 13, 7: PRINT " "
+LOCATE 14, 7: PRINT " "
+LOCATE 15, 7: PRINT ""
+LOCATE 16, 7: PRINT " "
+LOCATE 17, 7: PRINT " "
+LOCATE 18, 7: PRINT ""
+END SELECT
+1
+IF B <> VAL(MID$(TIME$, 2, 1)) THEN B = VAL(MID$(TIME$, 2, 1)): GOTO 4 ELSE GOTO 3
+4
+SELECT CASE B
+CASE 0:
+LOCATE 12, 17: PRINT ""
+LOCATE 13, 17: PRINT " "
+LOCATE 14, 17: PRINT " "
+LOCATE 15, 17: PRINT " "
+LOCATE 16, 17: PRINT " "
+LOCATE 17, 17: PRINT " "
+LOCATE 18, 17: PRINT ""
+CASE 1
+LOCATE 12, 17: PRINT " "
+LOCATE 13, 17: PRINT " "
+LOCATE 14, 17: PRINT " "
+LOCATE 15, 17: PRINT " "
+LOCATE 16, 17: PRINT " "
+LOCATE 17, 17: PRINT " "
+LOCATE 18, 17: PRINT " "
+CASE 2:
+LOCATE 12, 17: PRINT ""
+LOCATE 13, 17: PRINT " "
+LOCATE 14, 17: PRINT " "
+LOCATE 15, 17: PRINT ""
+LOCATE 16, 17: PRINT " "
+LOCATE 17, 17: PRINT " "
+LOCATE 18, 17: PRINT ""
+CASE 3:
+LOCATE 12, 17: PRINT ""
+LOCATE 13, 17: PRINT " "
+LOCATE 14, 17: PRINT " "
+LOCATE 15, 17: PRINT ""
+LOCATE 16, 17: PRINT " "
+LOCATE 17, 17: PRINT " "
+LOCATE 18, 17: PRINT ""
+CASE 4:
+LOCATE 12, 17: PRINT " "
+LOCATE 13, 17: PRINT " "
+LOCATE 14, 17: PRINT " "
+LOCATE 15, 17: PRINT ""
+LOCATE 16, 17: PRINT " "
+LOCATE 17, 17: PRINT " "
+LOCATE 18, 17: PRINT " "
+CASE 5:
+LOCATE 12, 17: PRINT ""
+LOCATE 13, 17: PRINT " "
+LOCATE 14, 17: PRINT " "
+LOCATE 15, 17: PRINT ""
+LOCATE 16, 17: PRINT " "
+LOCATE 17, 17: PRINT " "
+LOCATE 18, 17: PRINT ""
+CASE 6:
+LOCATE 12, 17: PRINT ""
+LOCATE 13, 17: PRINT " "
+LOCATE 14, 17: PRINT " "
+LOCATE 15, 17: PRINT ""
+LOCATE 16, 17: PRINT " "
+LOCATE 17, 17: PRINT " "
+LOCATE 18, 17: PRINT ""
+CASE 7:
+LOCATE 12, 17: PRINT ""
+LOCATE 13, 17: PRINT " "
+LOCATE 14, 17: PRINT " "
+LOCATE 15, 17: PRINT " "
+LOCATE 16, 17: PRINT " "
+LOCATE 17, 17: PRINT " "
+LOCATE 18, 17: PRINT " "
+CASE 8:
+LOCATE 12, 17: PRINT ""
+LOCATE 13, 17: PRINT " "
+LOCATE 14, 17: PRINT " "
+LOCATE 15, 17: PRINT ""
+LOCATE 16, 17: PRINT " "
+LOCATE 17, 17: PRINT " "
+LOCATE 18, 17: PRINT ""
+CASE 9:
+LOCATE 12, 17: PRINT ""
+LOCATE 13, 17: PRINT " "
+LOCATE 14, 17: PRINT " "
+LOCATE 15, 17: PRINT ""
+LOCATE 16, 17: PRINT " "
+LOCATE 17, 17: PRINT " "
+LOCATE 18, 17: PRINT ""
+END SELECT
+3
+IF C <> VAL(MID$(TIME$, 4, 1)) THEN C = VAL(MID$(TIME$, 4, 1)): GOTO 6 ELSE GOTO 5
+6
+SELECT CASE C
+CASE 0:
+LOCATE 12, 31: PRINT ""
+LOCATE 13, 31: PRINT " "
+LOCATE 14, 31: PRINT " "
+LOCATE 15, 31: PRINT " "
+LOCATE 16, 31: PRINT " "
+LOCATE 17, 31: PRINT " "
+LOCATE 18, 31: PRINT ""
+CASE 1
+LOCATE 12, 31: PRINT " "
+LOCATE 13, 31: PRINT " "
+LOCATE 14, 31: PRINT " "
+LOCATE 15, 31: PRINT " "
+LOCATE 16, 31: PRINT " "
+LOCATE 17, 31: PRINT " "
+LOCATE 18, 31: PRINT " "
+CASE 2:
+LOCATE 12, 31: PRINT ""
+LOCATE 13, 31: PRINT " "
+LOCATE 14, 31: PRINT " "
+LOCATE 15, 31: PRINT ""
+LOCATE 16, 31: PRINT " "
+LOCATE 17, 31: PRINT " "
+LOCATE 18, 31: PRINT ""
+CASE 3:
+LOCATE 12, 31: PRINT ""
+LOCATE 13, 31: PRINT " "
+LOCATE 14, 31: PRINT " "
+LOCATE 15, 31: PRINT ""
+LOCATE 16, 31: PRINT " "
+LOCATE 17, 31: PRINT " "
+LOCATE 18, 31: PRINT ""
+CASE 4:
+LOCATE 12, 31: PRINT " "
+LOCATE 13, 31: PRINT " "
+LOCATE 14, 31: PRINT " "
+LOCATE 15, 31: PRINT ""
+LOCATE 16, 31: PRINT " "
+LOCATE 17, 31: PRINT " "
+LOCATE 18, 31: PRINT " "
+CASE 5:
+LOCATE 12, 31: PRINT ""
+LOCATE 13, 31: PRINT " "
+LOCATE 14, 31: PRINT " "
+LOCATE 15, 31: PRINT ""
+LOCATE 16, 31: PRINT " "
+LOCATE 17, 31: PRINT " "
+LOCATE 18, 31: PRINT ""
+CASE 6:
+LOCATE 12, 31: PRINT ""
+LOCATE 13, 31: PRINT " "
+LOCATE 14, 31: PRINT " "
+LOCATE 15, 31: PRINT ""
+LOCATE 16, 31: PRINT " "
+LOCATE 17, 31: PRINT " "
+LOCATE 18, 31: PRINT ""
+CASE 7:
+LOCATE 12, 31: PRINT ""
+LOCATE 13, 31: PRINT " "
+LOCATE 14, 31: PRINT " "
+LOCATE 15, 31: PRINT " "
+LOCATE 16, 31: PRINT " "
+LOCATE 17, 31: PRINT " "
+LOCATE 18, 31: PRINT " "
+CASE 8:
+LOCATE 12, 31: PRINT ""
+LOCATE 13, 31: PRINT " "
+LOCATE 14, 31: PRINT " "
+LOCATE 15, 31: PRINT ""
+LOCATE 16, 31: PRINT " "
+LOCATE 17, 31: PRINT " "
+LOCATE 18, 31: PRINT ""
+CASE 9:
+LOCATE 12, 31: PRINT ""
+LOCATE 13, 31: PRINT " "
+LOCATE 14, 31: PRINT " "
+LOCATE 15, 31: PRINT ""
+LOCATE 16, 31: PRINT " "
+LOCATE 17, 31: PRINT " "
+LOCATE 18, 31: PRINT ""
+END SELECT
+5
+IF D <> VAL(MID$(TIME$, 5, 1)) THEN D = VAL(MID$(TIME$, 5, 1)): GOTO 8 ELSE GOTO 7
+8
+SELECT CASE D
+CASE 0:
+LOCATE 12, 41: PRINT ""
+LOCATE 13, 41: PRINT " "
+LOCATE 14, 41: PRINT " "
+LOCATE 15, 41: PRINT " "
+LOCATE 16, 41: PRINT " "
+LOCATE 17, 41: PRINT " "
+LOCATE 18, 41: PRINT ""
+CASE 1
+LOCATE 12, 41: PRINT " "
+LOCATE 13, 41: PRINT " "
+LOCATE 14, 41: PRINT " "
+LOCATE 15, 41: PRINT " "
+LOCATE 16, 41: PRINT " "
+LOCATE 17, 41: PRINT " "
+LOCATE 18, 41: PRINT " "
+CASE 2:
+LOCATE 12, 41: PRINT ""
+LOCATE 13, 41: PRINT " "
+LOCATE 14, 41: PRINT " "
+LOCATE 15, 41: PRINT ""
+LOCATE 16, 41: PRINT " "
+LOCATE 17, 41: PRINT " "
+LOCATE 18, 41: PRINT ""
+CASE 3:
+LOCATE 12, 41: PRINT ""
+LOCATE 13, 41: PRINT " "
+LOCATE 14, 41: PRINT " "
+LOCATE 15, 41: PRINT ""
+LOCATE 16, 41: PRINT " "
+LOCATE 17, 41: PRINT " "
+LOCATE 18, 41: PRINT ""
+CASE 4:
+LOCATE 12, 41: PRINT " "
+LOCATE 13, 41: PRINT " "
+LOCATE 14, 41: PRINT " "
+LOCATE 15, 41: PRINT ""
+LOCATE 16, 41: PRINT " "
+LOCATE 17, 41: PRINT " "
+LOCATE 18, 41: PRINT " "
+CASE 5:
+LOCATE 12, 41: PRINT ""
+LOCATE 13, 41: PRINT " "
+LOCATE 14, 41: PRINT " "
+LOCATE 15, 41: PRINT ""
+LOCATE 16, 41: PRINT " "
+LOCATE 17, 41: PRINT " "
+LOCATE 18, 41: PRINT ""
+CASE 6:
+LOCATE 12, 41: PRINT ""
+LOCATE 13, 41: PRINT " "
+LOCATE 14, 41: PRINT " "
+LOCATE 15, 41: PRINT ""
+LOCATE 16, 41: PRINT " "
+LOCATE 17, 41: PRINT " "
+LOCATE 18, 41: PRINT ""
+CASE 7:
+LOCATE 12, 41: PRINT ""
+LOCATE 13, 41: PRINT " "
+LOCATE 14, 41: PRINT " "
+LOCATE 15, 41: PRINT " "
+LOCATE 16, 41: PRINT " "
+LOCATE 17, 41: PRINT " "
+LOCATE 18, 41: PRINT " "
+CASE 8:
+LOCATE 12, 41: PRINT ""
+LOCATE 13, 41: PRINT " "
+LOCATE 14, 41: PRINT " "
+LOCATE 15, 41: PRINT ""
+LOCATE 16, 41: PRINT " "
+LOCATE 17, 41: PRINT " "
+LOCATE 18, 41: PRINT ""
+CASE 9:
+LOCATE 12, 41: PRINT ""
+LOCATE 13, 41: PRINT " "
+LOCATE 14, 41: PRINT " "
+LOCATE 15, 41: PRINT ""
+LOCATE 16, 41: PRINT " "
+LOCATE 17, 41: PRINT " "
+LOCATE 18, 41: PRINT ""
+END SELECT
+7
+IF E <> VAL(MID$(TIME$, 7, 1)) THEN E = VAL(MID$(TIME$, 7, 1)): GOTO 10 ELSE GOTO 9
+10
+SELECT CASE E
+CASE 0:
+LOCATE 12, 55: PRINT ""
+LOCATE 13, 55: PRINT " "
+LOCATE 14, 55: PRINT " "
+LOCATE 15, 55: PRINT " "
+LOCATE 16, 55: PRINT " "
+LOCATE 17, 55: PRINT " "
+LOCATE 18, 55: PRINT ""
+CASE 1
+LOCATE 12, 55: PRINT " "
+LOCATE 13, 55: PRINT " "
+LOCATE 14, 55: PRINT " "
+LOCATE 15, 55: PRINT " "
+LOCATE 16, 55: PRINT " "
+LOCATE 17, 55: PRINT " "
+LOCATE 18, 55: PRINT " "
+CASE 2:
+LOCATE 12, 55: PRINT ""
+LOCATE 13, 55: PRINT " "
+LOCATE 14, 55: PRINT " "
+LOCATE 15, 55: PRINT ""
+LOCATE 16, 55: PRINT " "
+LOCATE 17, 55: PRINT " "
+LOCATE 18, 55: PRINT ""
+CASE 3:
+LOCATE 12, 55: PRINT ""
+LOCATE 13, 55: PRINT " "
+LOCATE 14, 55: PRINT " "
+LOCATE 15, 55: PRINT ""
+LOCATE 16, 55: PRINT " "
+LOCATE 17, 55: PRINT " "
+LOCATE 18, 55: PRINT ""
+CASE 4:
+LOCATE 12, 55: PRINT " "
+LOCATE 13, 55: PRINT " "
+LOCATE 14, 55: PRINT " "
+LOCATE 15, 55: PRINT ""
+LOCATE 16, 55: PRINT " "
+LOCATE 17, 55: PRINT " "
+LOCATE 18, 55: PRINT " "
+CASE 5:
+LOCATE 12, 55: PRINT ""
+LOCATE 13, 55: PRINT " "
+LOCATE 14, 55: PRINT " "
+LOCATE 15, 55: PRINT ""
+LOCATE 16, 55: PRINT " "
+LOCATE 17, 55: PRINT " "
+LOCATE 18, 55: PRINT ""
+CASE 6:
+LOCATE 12, 55: PRINT ""
+LOCATE 13, 55: PRINT " "
+LOCATE 14, 55: PRINT " "
+LOCATE 15, 55: PRINT ""
+LOCATE 16, 55: PRINT " "
+LOCATE 17, 55: PRINT " "
+LOCATE 18, 55: PRINT ""
+CASE 7:
+LOCATE 12, 55: PRINT ""
+LOCATE 13, 55: PRINT " "
+LOCATE 14, 55: PRINT " "
+LOCATE 15, 55: PRINT " "
+LOCATE 16, 55: PRINT " "
+LOCATE 17, 55: PRINT " "
+LOCATE 18, 55: PRINT " "
+CASE 8:
+LOCATE 12, 55: PRINT ""
+LOCATE 13, 55: PRINT " "
+LOCATE 14, 55: PRINT " "
+LOCATE 15, 55: PRINT ""
+LOCATE 16, 55: PRINT " "
+LOCATE 17, 55: PRINT " "
+LOCATE 18, 55: PRINT ""
+CASE 9:
+LOCATE 12, 55: PRINT ""
+LOCATE 13, 55: PRINT " "
+LOCATE 14, 55: PRINT " "
+LOCATE 15, 55: PRINT ""
+LOCATE 16, 55: PRINT " "
+LOCATE 17, 55: PRINT " "
+LOCATE 18, 55: PRINT ""
+END SELECT
+9
+IF F <> VAL(MID$(TIME$, 8, 1)) THEN F = VAL(MID$(TIME$, 8, 1)): GOTO 12 ELSE GOTO 1.1
+12
+SELECT CASE F
+CASE 0:
+LOCATE 12, 65: PRINT ""
+LOCATE 13, 65: PRINT " "
+LOCATE 14, 65: PRINT " "
+LOCATE 15, 65: PRINT " "
+LOCATE 16, 65: PRINT " "
+LOCATE 17, 65: PRINT " "
+LOCATE 18, 65: PRINT ""
+CASE 1:
+LOCATE 12, 65: PRINT " "
+LOCATE 13, 65: PRINT " "
+LOCATE 14, 65: PRINT " "
+LOCATE 15, 65: PRINT " "
+LOCATE 16, 65: PRINT " "
+LOCATE 17, 65: PRINT " "
+LOCATE 18, 65: PRINT " "
+CASE 2:
+LOCATE 12, 65: PRINT ""
+LOCATE 13, 65: PRINT " "
+LOCATE 14, 65: PRINT " "
+LOCATE 15, 65: PRINT ""
+LOCATE 16, 65: PRINT " "
+LOCATE 17, 65: PRINT " "
+LOCATE 18, 65: PRINT ""
+CASE 3:
+LOCATE 12, 65: PRINT ""
+LOCATE 13, 65: PRINT " "
+LOCATE 14, 65: PRINT " "
+LOCATE 15, 65: PRINT ""
+LOCATE 16, 65: PRINT " "
+LOCATE 17, 65: PRINT " "
+LOCATE 18, 65: PRINT ""
+CASE 4:
+LOCATE 12, 65: PRINT " "
+LOCATE 13, 65: PRINT " "
+LOCATE 14, 65: PRINT " "
+LOCATE 15, 65: PRINT ""
+LOCATE 16, 65: PRINT " "
+LOCATE 17, 65: PRINT " "
+LOCATE 18, 65: PRINT " "
+CASE 5:
+LOCATE 12, 65: PRINT ""
+LOCATE 13, 65: PRINT " "
+LOCATE 14, 65: PRINT " "
+LOCATE 15, 65: PRINT ""
+LOCATE 16, 65: PRINT " "
+LOCATE 17, 65: PRINT " "
+LOCATE 18, 65: PRINT ""
+CASE 6:
+LOCATE 12, 65: PRINT ""
+LOCATE 13, 65: PRINT " "
+LOCATE 14, 65: PRINT " "
+LOCATE 15, 65: PRINT ""
+LOCATE 16, 65: PRINT " "
+LOCATE 17, 65: PRINT " "
+LOCATE 18, 65: PRINT ""
+CASE 7:
+LOCATE 12, 65: PRINT ""
+LOCATE 13, 65: PRINT " "
+LOCATE 14, 65: PRINT " "
+LOCATE 15, 65: PRINT " "
+LOCATE 16, 65: PRINT " "
+LOCATE 17, 65: PRINT " "
+LOCATE 18, 65: PRINT " "
+CASE 8:
+LOCATE 12, 65: PRINT ""
+LOCATE 13, 65: PRINT " "
+LOCATE 14, 65: PRINT " "
+LOCATE 15, 65: PRINT ""
+LOCATE 16, 65: PRINT " "
+LOCATE 17, 65: PRINT " "
+LOCATE 18, 65: PRINT ""
+CASE 9:
+LOCATE 12, 65: PRINT ""
+LOCATE 13, 65: PRINT " "
+LOCATE 14, 65: PRINT " "
+LOCATE 15, 65: PRINT ""
+LOCATE 16, 65: PRINT " "
+LOCATE 17, 65: PRINT " "
+LOCATE 18, 65: PRINT ""
+END SELECT
+GOTO 1.1
+
+DEFINT A-Z
+SUB DATUM
+KLPRINT TIME$, 18, 5, 10, 4
+IF MID$(TIME$, 1, 2) <> "00" THEN GOTO 3.1
+IF MID$(TIME$, 4, 2) <> "00" THEN GOTO 3.1
+IF MID$(TIME$, 7, 2) <> "00" THEN GOTO 3.1
+KLPRINT MID$(DATE$, 4, 2) + ".", 18, 576, 10, 4
+KLPRINT MID$(DATE$, 1, 2) + ".", 18, 594, 10, 4
+KLPRINT MID$(DATE$, 7, 4), 18, 611, 10, 4
+3.1 END SUB
+
+SUB FELT (X, Y, XX, YY, FARBEN)
+LINE (X, Y)-(X, YY), 15
+LINE (X, Y)-(XX, Y), 15
+LINE (X, YY)-(XX, YY), 8
+LINE (XX, Y)-(XX, YY), 8
+VIEW (X + 2, Y + 2)-(XX - 2, YY - 2), FARBEN, FARBEN
+VIEW (0, 0)-(639, 479)
+END SUB
+
+SUB KLPRINT (B$, B, K, G, I)
+C = LEN(B$)
+B$ = UCASE$(B$)
+D = K - 6
+E = B - 14
+IF G <> 10 THEN E = E - G
+7.1 : F = F + 1
+H = F * 6
+IF F = C + 1 THEN GOTO 198
+IF G = 10 THEN
+VIEW (D + H, E)-(D + H + 4, E + 6), 7, 7
+VIEW (0, 0)-(639, 479)
+END IF
+IF MID$(B$, F, 1) = " " THEN
+GOTO 123
+ELSEIF MID$(B$, F, 1) = "A" THEN
+PSET (D + H + 1, E + 0), I: PSET (D + H + 2, E + 0), I: PSET (D + H + 3, E + 0), I
+PSET (D + H, E + 1), I: PSET (D + H + 4, E + 1), I
+PSET (D + H, E + 2), I: PSET (D + H + 4, E + 2), I
+PSET (D + H, E + 3), I: PSET (D + H + 1, E + 3), I: PSET (D + H + 2, E + 3), I: PSET (D + H + 3, E + 3), I: PSET (D + H + 4, E + 3), I
+PSET (D + H, E + 4), I: PSET (D + H + 4, E + 4), I
+PSET (D + H, E + 5), I: PSET (D + H + 4, E + 5), I
+PSET (D + H, E + 6), I: PSET (D + H + 4, E + 6), I: GOTO 123
+ELSEIF MID$(B$, F, 1) = "B" THEN
+PSET (D + H, E + 0), I: PSET (D + H + 1, E + 0), I: PSET (D + H + 2, E + 0), I: PSET (D + H + 3, E + 0), I
+PSET (D + H, E + 1), I: PSET (D + H + 4, E + 1), I
+PSET (D + H, E + 2), I: PSET (D + H + 4, E + 2), I
+PSET (D + H, E + 3), I: PSET (D + H + 1, E + 3), I: PSET (D + H + 2, E + 3), I: PSET (D + H + 3, E + 3), I
+PSET (D + H, E + 4), I: PSET (D + H + 4, E + 4), I
+PSET (D + H, E + 5), I: PSET (D + H + 4, E + 5), I
+PSET (D + H, E + 6), I: PSET (D + H + 1, E + 6), I: PSET (D + H + 2, E + 6), I: PSET (D + H + 3, E + 6), I: GOTO 123
+ELSEIF MID$(B$, F, 1) = "C" THEN
+PSET (D + H + 1, E + 0), I: PSET (D + H + 2, E + 0), I: PSET (D + H + 3, E + 0), I
+PSET (D + H, E + 1), I: PSET (D + H + 4, E + 1), I
+PSET (D + H, E + 2), I
+PSET (D + H, E + 3), I
+PSET (D + H, E + 4), I
+PSET (D + H, E + 5), I: PSET (D + H + 4, E + 5), I
+PSET (D + H + 1, E + 6), I: PSET (D + H + 2, E + 6), I: PSET (D + H + 3, E + 6), I: GOTO 123
+ELSEIF MID$(B$, F, 1) = "D" THEN
+PSET (D + H, E + 0), I: PSET (D + H + 1, E + 0), I: PSET (D + H + 2, E + 0), I: PSET (D + H + 3, E + 0), I
+PSET (D + H, E + 1), I: PSET (D + H + 4, E + 1), I
+PSET (D + H, E + 2), I: PSET (D + H + 4, E + 2), I
+PSET (D + H, E + 3), I: PSET (D + H + 4, E + 3), I
+PSET (D + H, E + 4), I: PSET (D + H + 4, E + 4), I
+PSET (D + H, E + 5), I: PSET (D + H + 4, E + 5), I
+PSET (D + H, E + 6), I: PSET (D + H + 1, E + 6), I: PSET (D + H + 2, E + 6), I: PSET (D + H + 3, E + 6), I: GOTO 123
+ELSEIF MID$(B$, F, 1) = "E" THEN
+PSET (D + H, E + 0), I: PSET (D + H + 1, E + 0), I: PSET (D + H + 2, E + 0), I: PSET (D + H + 3, E + 0), I: PSET (D + H + 4, E + 0), I
+PSET (D + H, E + 1), I
+PSET (D + H, E + 2), I
+PSET (D + H, E + 3), I: PSET (D + H + 1, E + 3), I: PSET (D + H + 2, E + 3), I: PSET (D + H + 3, E + 3), I
+PSET (D + H, E + 4), I
+PSET (D + H, E + 5), I
+PSET (D + H, E + 6), I: PSET (D + H + 1, E + 6), I: PSET (D + H + 2, E + 6), I: PSET (D + H + 3, E + 6), I: PSET (D + H + 4, E + 6), I: GOTO 123
+ELSEIF MID$(B$, F, 1) = "F" THEN
+PSET (D + H, E + 0), I: PSET (D + H + 1, E + 0), I: PSET (D + H + 2, E + 0), I: PSET (D + H + 3, E + 0), I: PSET (D + H + 4, E + 0), I
+PSET (D + H, E + 1), I
+PSET (D + H, E + 2), I
+PSET (D + H, E + 3), I: PSET (D + H + 1, E + 3), I: PSET (D + H + 2, E + 3), I
+PSET (D + H, E + 4), I
+PSET (D + H, E + 5), I
+PSET (D + H, E + 6), I: GOTO 123
+ELSEIF MID$(B$, F, 1) = "G" THEN
+PSET (D + H + 1, E + 0), I: PSET (D + H + 2, E + 0), I: PSET (D + H + 3, E + 0), I
+PSET (D + H, E + 1), I: PSET (D + H + 4, E + 1), I
+PSET (D + H, E + 2), I
+PSET (D + H, E + 3), I: PSET (D + H + 3, E + 3), I: PSET (D + H + 4, E + 3), I
+PSET (D + H, E + 4), I: PSET (D + H + 4, E + 4), I
+PSET (D + H, E + 5), I: PSET (D + H + 4, E + 5), I
+PSET (D + H + 1, E + 6), I: PSET (D + H + 2, E + 6), I: PSET (D + H + 3, E + 6), I: GOTO 123
+ELSEIF MID$(B$, F, 1) = "H" THEN
+PSET (D + H, E + 0), I: PSET (D + H + 4, E + 0), I
+PSET (D + H, E + 1), I: PSET (D + H + 4, E + 1), I
+PSET (D + H, E + 2), I: PSET (D + H + 4, E + 2), I
+PSET (D + H, E + 3), I: PSET (D + H + 1, E + 3), I: PSET (D + H + 2, E + 3), I: PSET (D + H + 3, E + 3), I: PSET (D + H + 4, E + 3), I
+PSET (D + H, E + 4), I: PSET (D + H + 4, E + 4), I
+PSET (D + H, E + 5), I: PSET (D + H + 4, E + 5), I
+PSET (D + H, E + 6), I: PSET (D + H + 4, E + 6), I: GOTO 123
+ELSEIF MID$(B$, F, 1) = "I" THEN
+PSET (D + H + 1, E + 0), I: PSET (D + H + 2, E + 0), I: PSET (D + H + 3, E + 0), I
+PSET (D + H + 2, E + 1), I
+PSET (D + H + 2, E + 2), I
+PSET (D + H + 2, E + 3), I
+PSET (D + H + 2, E + 4), I
+PSET (D + H + 2, E + 5), I
+PSET (D + H + 1, E + 6), I: PSET (D + H + 2, E + 6), I: PSET (D + H + 3, E + 6), I: GOTO 123
+ELSEIF MID$(B$, F, 1) = "J" THEN
+PSET (D + H + 2, E + 0), I: PSET (D + H + 3, E + 0), I: PSET (D + H + 4, E + 0), I
+PSET (D + H + 3, E + 1), I
+PSET (D + H + 3, E + 2), I
+PSET (D + H + 3, E + 3), I
+PSET (D + H + 3, E + 4), I
+PSET (D + H, E + 5), I: PSET (D + H + 3, E + 5), I
+PSET (D + H + 1, E + 6), I: PSET (D + H + 2, E + 6), I: GOTO 123
+ELSEIF MID$(B$, F, 1) = "K" THEN
+PSET (D + H, E + 0), I: PSET (D + H + 4, E + 0), I
+PSET (D + H, E + 1), I: PSET (D + H + 3, E + 1), I
+PSET (D + H, E + 2), I: PSET (D + H + 2, E + 2), I
+PSET (D + H, E + 3), I: PSET (D + H + 1, E + 3), I
+PSET (D + H, E + 4), I: PSET (D + H + 2, E + 4), I
+PSET (D + H, E + 5), I: PSET (D + H + 3, E + 5), I
+PSET (D + H, E + 6), I: PSET (D + H + 4, E + 6), I: GOTO 123
+ELSEIF MID$(B$, F, 1) = "L" THEN
+PSET (D + H, E + 0), I
+PSET (D + H, E + 1), I
+PSET (D + H, E + 2), I
+PSET (D + H, E + 3), I
+PSET (D + H, E + 4), I
+PSET (D + H, E + 5), I
+PSET (D + H, E + 6), I: PSET (D + H + 1, E + 6), I: PSET (D + H + 2, E + 6), I: PSET (D + H + 3, E + 6), I: PSET (D + H + 4, E + 6), I: GOTO 123
+ELSEIF MID$(B$, F, 1) = "M" THEN
+PSET (D + H, E + 0), I: PSET (D + H + 4, E + 0), I
+PSET (D + H, E + 1), I: PSET (D + H + 1, E + 1), I: PSET (D + H + 3, E + 1), I: PSET (D + H + 4, E + 1), I
+PSET (D + H, E + 2), I: PSET (D + H + 2, E + 2), I: PSET (D + H + 4, E + 2), I
+PSET (D + H, E + 3), I: PSET (D + H + 2, E + 3), I: PSET (D + H + 4, E + 3), I
+PSET (D + H, E + 4), I: PSET (D + H + 4, E + 4), I
+PSET (D + H, E + 5), I: PSET (D + H + 4, E + 5), I
+PSET (D + H, E + 6), I: PSET (D + H + 4, E + 6), I: GOTO 123
+ELSEIF MID$(B$, F, 1) = "N" THEN
+PSET (D + H, E + 0), I: PSET (D + H + 4, E + 0), I
+PSET (D + H, E + 1), I: PSET (D + H + 1, E + 1), I: PSET (D + H + 4, E + 1), I
+PSET (D + H, E + 2), I: PSET (D + H + 2, E + 2), I: PSET (D + H + 4, E + 2), I
+PSET (D + H, E + 3), I: PSET (D + H + 2, E + 3), I: PSET (D + H + 4, E + 3), I
+PSET (D + H, E + 4), I: PSET (D + H + 2, E + 4), I: PSET (D + H + 4, E + 4), I
+PSET (D + H, E + 5), I: PSET (D + H + 3, E + 5), I: PSET (D + H + 4, E + 5), I
+PSET (D + H, E + 6), I: PSET (D + H + 4, E + 6), I: GOTO 123
+ELSEIF MID$(B$, F, 1) = "O" THEN
+PSET (D + H + 1, E + 0), I: PSET (D + H + 2, E + 0), I: PSET (D + H + 3, E + 0), I
+PSET (D + H, E + 1), I: PSET (D + H + 4, E + 1), I
+PSET (D + H, E + 2), I: PSET (D + H + 4, E + 2), I
+PSET (D + H, E + 3), I: PSET (D + H + 4, E + 3), I
+PSET (D + H, E + 4), I: PSET (D + H + 4, E + 4), I
+PSET (D + H, E + 5), I: PSET (D + H + 4, E + 5), I
+PSET (D + H + 1, E + 6), I: PSET (D + H + 2, E + 6), I: PSET (D + H + 3, E + 6), I: GOTO 123
+ELSEIF MID$(B$, F, 1) = "P" THEN
+PSET (D + H, E + 0), I: PSET (D + H + 1, E + 0), I: PSET (D + H + 2, E + 0), I: PSET (D + H + 3, E + 0), I
+PSET (D + H, E + 1), I: PSET (D + H + 4, E + 1), I
+PSET (D + H, E + 2), I: PSET (D + H + 4, E + 2), I
+PSET (D + H, E + 3), I: PSET (D + H + 1, E + 3), I: PSET (D + H + 2, E + 3), I: PSET (D + H + 3, E + 3), I
+PSET (D + H, E + 4), I
+PSET (D + H, E + 5), I
+PSET (D + H, E + 6), I: GOTO 123
+ELSEIF MID$(B$, F, 1) = "Q" THEN
+PSET (D + H + 1, E + 0), I: PSET (D + H + 2, E + 0), I: PSET (D + H + 3, E + 0), I
+PSET (D + H, E + 1), I: PSET (D + H + 4, E + 1), I
+PSET (D + H, E + 2), I: PSET (D + H + 4, E + 2), I
+PSET (D + H, E + 3), I: PSET (D + H + 4, E + 3), I
+PSET (D + H, E + 4), I: PSET (D + H + 2, E + 4), I: PSET (D + H + 4, E + 4), I
+PSET (D + H, E + 5), I: PSET (D + H + 3, E + 5), I: PSET (D + H + 4, E + 5), I
+PSET (D + H + 1, E + 6), I: PSET (D + H + 2, E + 6), I: PSET (D + H + 3, E + 6), I: PSET (D + H + 4, E + 6), I: GOTO 123
+ELSEIF MID$(B$, F, 1) = "R" THEN
+PSET (D + H, E + 0), I: PSET (D + H + 1, E + 0), I: PSET (D + H + 2, E + 0), I: PSET (D + H + 3, E + 0), I
+PSET (D + H, E + 1), I: PSET (D + H + 4, E + 1), I
+PSET (D + H, E + 2), I: PSET (D + H + 4, E + 2), I
+PSET (D + H, E + 3), I: PSET (D + H + 1, E + 3), I: PSET (D + H + 2, E + 3), I: PSET (D + H + 3, E + 3), I
+PSET (D + H, E + 4), I: PSET (D + H + 2, E + 4), I
+PSET (D + H, E + 5), I: PSET (D + H + 3, E + 5), I
+PSET (D + H, E + 6), I: PSET (D + H + 4, E + 6), I: GOTO 123
+ELSEIF MID$(B$, F, 1) = "S" THEN
+PSET (D + H + 1, E + 0), I: PSET (D + H + 2, E + 0), I: PSET (D + H + 3, E + 0), I: PSET (D + H + 4, E + 0), I
+PSET (D + H, E + 1), I
+PSET (D + H, E + 2), I
+PSET (D + H + 1, E + 3), I: PSET (D + H + 2, E + 3), I: PSET (D + H + 3, E + 3), I
+PSET (D + H + 4, E + 4), I
+PSET (D + H + 4, E + 5), I
+PSET (D + H, E + 6), I: PSET (D + H + 1, E + 6), I: PSET (D + H + 2, E + 6), I: PSET (D + H + 3, E + 6), I: GOTO 123
+ELSEIF MID$(B$, F, 1) = "T" THEN
+PSET (D + H, E + 0), I: PSET (D + H + 1, E + 0), I: PSET (D + H + 2, E + 0), I: PSET (D + H + 3, E + 0), I: PSET (D + H + 4, E + 0), I
+PSET (D + H + 2, E + 1), I
+PSET (D + H + 2, E + 2), I
+PSET (D + H + 2, E + 3), I
+PSET (D + H + 2, E + 4), I
+PSET (D + H + 2, E + 5), I
+PSET (D + H + 2, E + 6), I: GOTO 123
+ELSEIF MID$(B$, F, 1) = "U" THEN
+PSET (D + H, E + 0), I: PSET (D + H + 4, E + 0), I
+PSET (D + H, E + 1), I: PSET (D + H + 4, E + 1), I
+PSET (D + H, E + 2), I: PSET (D + H + 4, E + 2), I
+PSET (D + H, E + 3), I: PSET (D + H + 4, E + 3), I
+PSET (D + H, E + 4), I: PSET (D + H + 4, E + 4), I
+PSET (D + H, E + 5), I: PSET (D + H + 4, E + 5), I
+PSET (D + H + 1, E + 6), I: PSET (D + H + 2, E + 6), I: PSET (D + H + 3, E + 6), I: GOTO 123
+ELSEIF MID$(B$, F, 1) = "V" THEN
+PSET (D + H, E + 0), I: PSET (D + H + 4, E + 0), I
+PSET (D + H, E + 1), I: PSET (D + H + 4, E + 1), I
+PSET (D + H, E + 2), I: PSET (D + H + 4, E + 2), I
+PSET (D + H + 1, E + 3), I: PSET (D + H + 3, E + 3), I
+PSET (D + H + 1, E + 4), I: PSET (D + H + 3, E + 4), I
+PSET (D + H + 2, E + 5), I
+PSET (D + H + 2, E + 6), I: GOTO 123
+ELSEIF MID$(B$, F, 1) = "W" THEN
+PSET (D + H, E + 0), I: PSET (D + H + 4, E + 0), I
+PSET (D + H, E + 1), I: PSET (D + H + 4, E + 1), I
+PSET (D + H, E + 2), I: PSET (D + H + 4, E + 2), I
+PSET (D + H, E + 3), I: PSET (D + H + 2, E + 3), I: PSET (D + H + 4, E + 3), I
+PSET (D + H, E + 4), I: PSET (D + H + 2, E + 4), I: PSET (D + H + 4, E + 4), I
+PSET (D + H, E + 5), I: PSET (D + H + 1, E + 5), I: PSET (D + H + 3, E + 5), I: PSET (D + H + 4, E + 5), I
+PSET (D + H, E + 6), I: PSET (D + H + 4, E + 6), I: GOTO 123
+ELSEIF MID$(B$, F, 1) = "X" THEN
+PSET (D + H, E + 0), I: PSET (D + H + 4, E + 0), I
+PSET (D + H, E + 1), I: PSET (D + H + 4, E + 1), I
+PSET (D + H + 1, E + 2), I: PSET (D + H + 3, E + 2), I
+PSET (D + H + 2, E + 3), I
+PSET (D + H + 1, E + 4), I: PSET (D + H + 3, E + 4), I
+PSET (D + H, E + 5), I: PSET (D + H + 4, E + 5), I
+PSET (D + H, E + 6), I: PSET (D + H + 4, E + 6), I: GOTO 123
+ELSEIF MID$(B$, F, 1) = "Y" THEN
+PSET (D + H, E + 0), I: PSET (D + H + 4, E + 0), I
+PSET (D + H, E + 1), I: PSET (D + H + 4, E + 1), I
+PSET (D + H, E + 2), I: PSET (D + H + 4, E + 2), I
+PSET (D + H + 1, E + 3), I: PSET (D + H + 3, E + 3), I
+PSET (D + H + 2, E + 4), I
+PSET (D + H + 2, E + 5), I
+PSET (D + H, E + 6), I: PSET (D + H + 1, E + 6), I: PSET (D + H + 2, E + 6), I: PSET (D + H + 3, E + 6), I: PSET (D + H + 4, E + 6), I: GOTO 123
+ELSEIF MID$(B$, F, 1) = "Z" THEN
+PSET (D + H, E + 0), I: PSET (D + H + 1, E + 0), I: PSET (D + H + 2, E + 0), I: PSET (D + H + 3, E + 0), I: PSET (D + H + 4, E + 0), I
+PSET (D + H, E + 1), I: PSET (D + H + 4, E + 1), I
+PSET (D + H + 3, E + 2), I
+PSET (D + H + 2, E + 3), I
+PSET (D + H + 1, E + 4), I
+PSET (D + H, E + 5), I: PSET (D + H + 4, E + 5), I
+PSET (D + H, E + 6), I: PSET (D + H + 1, E + 6), I: PSET (D + H + 2, E + 6), I: PSET (D + H + 3, E + 6), I: PSET (D + H + 4, E + 6), I: GOTO 123
+ELSEIF MID$(B$, F, 1) = "." THEN
+PSET (D + H + 1, E + 5), I: PSET (D + H + 2, E + 5), I
+PSET (D + H + 1, E + 6), I: PSET (D + H + 2, E + 6), I: GOTO 123
+ELSEIF MID$(B$, F, 1) = "," THEN
+PSET (D + H + 1, E + 4), I: PSET (D + H + 2, E + 4), I
+PSET (D + H + 1, E + 5), I: PSET (D + H + 2, E + 5), I
+PSET (D + H, E + 6), I: PSET (D + H + 1, E + 6), I: GOTO 123
+ELSEIF MID$(B$, F, 1) = "&" THEN
+PSET (D + H + 1, E + 0), I: PSET (D + H + 2, E + 0), I
+PSET (D + H, E + 1), I: PSET (D + H + 3, E + 1), I
+PSET (D + H, E + 2), I: PSET (D + H + 2, E + 2), I
+PSET (D + H + 1, E + 3), I
+PSET (D + H, E + 4), I: PSET (D + H + 2, E + 4), I: PSET (D + H + 4, E + 4), I
+PSET (D + H, E + 5), I: PSET (D + H + 3, E + 5), I
+PSET (D + H + 1, E + 6), I: PSET (D + H + 2, E + 6), I: PSET (D + H + 4, E + 6), I: GOTO 123
+ELSEIF MID$(B$, F, 1) = "(" THEN
+PSET (D + H + 2, E + 0), I: PSET (D + H + 3, E + 0), I
+PSET (D + H + 1, E + 1), I
+PSET (D + H, E + 2), I
+PSET (D + H, E + 3), I
+PSET (D + H, E + 4), I
+PSET (D + H + 1, E + 5), I
+PSET (D + H + 2, E + 6), I: PSET (D + H + 3, E + 6), I: GOTO 123
+ELSEIF MID$(B$, F, 1) = ")" THEN
+PSET (D + H + 1, E + 0), I: PSET (D + H + 2, E + 0), I
+PSET (D + H + 3, E + 1), I
+PSET (D + H + 4, E + 2), I
+PSET (D + H + 4, E + 3), I
+PSET (D + H + 4, E + 4), I
+PSET (D + H + 3, E + 5), I
+PSET (D + H + 1, E + 6), I: PSET (D + H + 2, E + 6), I: GOTO 123
+ELSEIF MID$(B$, F, 1) = "1" THEN
+PSET (D + H + 3, E + 0), I
+PSET (D + H + 2, E + 1), I: PSET (D + H + 3, E + 1), I
+PSET (D + H + 1, E + 2), I: PSET (D + H + 3, E + 2), I
+PSET (D + H + 3, E + 3), I
+PSET (D + H + 3, E + 4), I
+PSET (D + H + 3, E + 5), I
+PSET (D + H + 1, E + 6), I: PSET (D + H + 2, E + 6), I: PSET (D + H + 3, E + 6), I: PSET (D + H + 4, E + 6), I: GOTO 123
+ELSEIF MID$(B$, F, 1) = "2" THEN
+PSET (D + H + 1, E + 0), I: PSET (D + H + 2, E + 0), I: PSET (D + H + 3, E + 0), I
+PSET (D + H, E + 1), I: PSET (D + H + 4, E + 1), I
+PSET (D + H, E + 2), I: PSET (D + H + 4, E + 2), I
+PSET (D + H + 3, E + 3), I
+PSET (D + H + 2, E + 4), I
+PSET (D + H + 1, E + 5), I
+PSET (D + H, E + 6), I: PSET (D + H + 1, E + 6), I: PSET (D + H + 2, E + 6), I: PSET (D + H + 3, E + 6), I: PSET (D + H + 4, E + 6), I: GOTO 123
+ELSEIF MID$(B$, F, 1) = "3" THEN
+PSET (D + H + 1, E + 0), I: PSET (D + H + 2, E + 0), I: PSET (D + H + 3, E + 0), I
+PSET (D + H, E + 1), I: PSET (D + H + 4, E + 1), I
+PSET (D + H + 4, E + 2), I
+PSET (D + H + 2, E + 3), I: PSET (D + H + 3, E + 3), I
+PSET (D + H + 4, E + 4), I
+PSET (D + H, E + 5), I: PSET (D + H + 4, E + 5), I
+PSET (D + H + 1, E + 6), I: PSET (D + H + 2, E + 6), I: PSET (D + H + 3, E + 6), I: GOTO 123
+ELSEIF MID$(B$, F, 1) = "4" THEN
+PSET (D + H + 3, E + 0), I
+PSET (D + H + 2, E + 1), I: PSET (D + H + 3, E + 1), I
+PSET (D + H + 1, E + 2), I: PSET (D + H + 3, E + 2), I
+PSET (D + H, E + 3), I: PSET (D + H + 1, E + 3), I: PSET (D + H + 2, E + 3), I: PSET (D + H + 3, E + 3), I: PSET (D + H + 4, E + 3), I
+PSET (D + H + 3, E + 4), I
+PSET (D + H + 3, E + 5), I
+PSET (D + H + 3, E + 6), I: GOTO 123
+ELSEIF MID$(B$, F, 1) = "5" THEN
+PSET (D + H, E + 0), I: PSET (D + H + 1, E + 0), I: PSET (D + H + 2, E + 0), I: PSET (D + H + 3, E + 0), I: PSET (D + H + 4, E + 0), I
+PSET (D + H, E + 1), I
+PSET (D + H, E + 2), I
+PSET (D + H, E + 3), I: PSET (D + H + 1, E + 3), I: PSET (D + H + 2, E + 3), I: PSET (D + H + 3, E + 3), I
+PSET (D + H + 4, E + 4), I
+PSET (D + H + 4, E + 5), I
+PSET (D + H, E + 6), I: PSET (D + H + 1, E + 6), I: PSET (D + H + 2, E + 6), I: PSET (D + H + 3, E + 6), I: GOTO 123
+ELSEIF MID$(B$, F, 1) = "6" THEN
+PSET (D + H + 1, E + 0), I: PSET (D + H + 2, E + 0), I: PSET (D + H + 3, E + 0), I
+PSET (D + H, E + 1), I: PSET (D + H + 4, E + 1), I
+PSET (D + H, E + 2), I
+PSET (D + H, E + 3), I: PSET (D + H + 1, E + 3), I: PSET (D + H + 2, E + 3), I: PSET (D + H + 3, E + 3), I
+PSET (D + H, E + 4), I: PSET (D + H + 4, E + 4), I
+PSET (D + H, E + 5), I: PSET (D + H + 4, E + 5), I
+PSET (D + H + 1, E + 6), I: PSET (D + H + 2, E + 6), I: PSET (D + H + 3, E + 6), I: GOTO 123
+ELSEIF MID$(B$, F, 1) = "7" THEN
+PSET (D + H, E + 0), I: PSET (D + H + 1, E + 0), I: PSET (D + H + 2, E + 0), I: PSET (D + H + 3, E + 0), I: PSET (D + H + 4, E + 0), I
+PSET (D + H, E + 1), I: PSET (D + H + 4, E + 1), I
+PSET (D + H + 3, E + 2), I
+PSET (D + H + 3, E + 3), I
+PSET (D + H + 2, E + 4), I
+PSET (D + H + 2, E + 5), I
+PSET (D + H + 2, E + 6), I: GOTO 123
+ELSEIF MID$(B$, F, 1) = "8" THEN
+PSET (D + H + 1, E + 0), I: PSET (D + H + 2, E + 0), I: PSET (D + H + 3, E + 0), I
+PSET (D + H, E + 1), I: PSET (D + H + 4, E + 1), I
+PSET (D + H, E + 2), I: PSET (D + H + 4, E + 2), I
+PSET (D + H + 1, E + 3), I: PSET (D + H + 2, E + 3), I: PSET (D + H + 3, E + 3), I
+PSET (D + H, E + 4), I: PSET (D + H + 4, E + 4), I
+PSET (D + H, E + 5), I: PSET (D + H + 4, E + 5), I
+PSET (D + H + 1, E + 6), I: PSET (D + H + 2, E + 6), I: PSET (D + H + 3, E + 6), I: GOTO 123
+ELSEIF MID$(B$, F, 1) = "9" THEN
+PSET (D + H + 1, E + 0), I: PSET (D + H + 2, E + 0), I: PSET (D + H + 3, E + 0), I
+PSET (D + H, E + 1), I: PSET (D + H + 4, E + 1), I
+PSET (D + H, E + 2), I: PSET (D + H + 4, E + 2), I
+PSET (D + H + 1, E + 3), I: PSET (D + H + 2, E + 3), I: PSET (D + H + 3, E + 3), I: PSET (D + H + 4, E + 3), I
+PSET (D + H + 4, E + 4), I
+PSET (D + H, E + 5), I: PSET (D + H + 4, E + 5), I
+PSET (D + H + 1, E + 6), I: PSET (D + H + 2, E + 6), I: PSET (D + H + 3, E + 6), I: GOTO 123
+ELSEIF MID$(B$, F, 1) = "0" THEN
+PSET (D + H + 1, E + 0), I: PSET (D + H + 2, E + 0), I: PSET (D + H + 3, E + 0), I
+PSET (D + H, E + 1), I: PSET (D + H + 4, E + 1), I
+PSET (D + H, E + 2), I: PSET (D + H + 3, E + 2), I: PSET (D + H + 4, E + 2), I
+PSET (D + H, E + 3), I: PSET (D + H + 2, E + 3), I: PSET (D + H + 4, E + 3), I
+PSET (D + H, E + 4), I: PSET (D + H + 1, E + 4), I: PSET (D + H + 4, E + 4), I
+PSET (D + H, E + 5), I: PSET (D + H + 4, E + 5), I
+PSET (D + H + 1, E + 6), I: PSET (D + H + 2, E + 6), I: PSET (D + H + 3, E + 6), I: GOTO 123
+ELSEIF MID$(B$, F, 1) = ":" THEN
+PSET (D + H + 1, E + 1), I: PSET (D + H + 2, E + 1), I
+PSET (D + H + 1, E + 2), I: PSET (D + H + 2, E + 2), I
+PSET (D + H + 1, E + 4), I: PSET (D + H + 2, E + 4), I
+PSET (D + H + 1, E + 5), I: PSET (D + H + 2, E + 5), I: GOTO 123
+ELSEIF MID$(B$, F, 1) = "-" THEN
+PSET (D + H + 1, E + 3), I: PSET (D + H + 2, E + 3), I
+PSET (D + H + 3, E + 3), I: PSET (D + H + 4, E + 3), I: GOTO 123
+ELSEIF MID$(B$, F, 1) = "$" THEN
+PSET (D + H + 2, E + 0), I
+PSET (D + H + 1, E + 1), I: PSET (D + H + 2, E + 1), I: PSET (D + H + 3, E + 1), I: PSET (D + H + 4, E + 1), I
+PSET (D + H, E + 2), I: PSET (D + H + 2, E + 2), I
+PSET (D + H + 1, E + 3), I: PSET (D + H + 2, E + 3), I: PSET (D + H + 3, E + 3), I
+PSET (D + H + 2, E + 4), I: PSET (D + H + 4, E + 4), I
+PSET (D + H, E + 5), I: PSET (D + H + 1, E + 5), I: PSET (D + H + 2, E + 5), I: PSET (D + H + 3, E + 5), I
+PSET (D + H + 2, E + 6), I: GOTO 123
+ELSEIF MID$(B$, F, 1) = "*" THEN
+PSET (D + H, E + 1), I: PSET (D + H + 2, E + 1), I: PSET (D + H + 4, E + 1), I
+PSET (D + H + 1, E + 2), I: PSET (D + H + 2, E + 2), I: PSET (D + H + 3, E + 2), I
+PSET (D + H, E + 3), I: PSET (D + H + 1, E + 3), I: PSET (D + H + 2, E + 3), I: PSET (D + H + 3, E + 3), I: PSET (D + H + 4, E + 3), I
+PSET (D + H + 1, E + 4), I: PSET (D + H + 2, E + 4), I: PSET (D + H + 3, E + 4), I
+PSET (D + H, E + 5), I: PSET (D + H + 2, E + 5), I: PSET (D + H + 4, E + 5), I
+ELSEIF MID$(B$, F, 1) = "/" THEN
+PSET (D + H + 4, E + 0), I
+PSET (D + H + 3, E + 1), I
+PSET (D + H + 3, E + 2), I
+PSET (D + H + 2, E + 3), I
+PSET (D + H + 1, E + 4), I
+PSET (D + H + 1, E + 5), I
+PSET (D + H, E + 6), I: GOTO 123
+ELSEIF MID$(B$, F, 1) = "\" THEN
+PSET (D + H, E + 0), I
+PSET (D + H + 1, E + 1), I
+PSET (D + H + 1, E + 2), I
+PSET (D + H + 2, E + 3), I
+PSET (D + H + 3, E + 4), I
+PSET (D + H + 3, E + 5), I
+PSET (D + H + 4, E + 6), I: GOTO 123
+ELSEIF MID$(B$, F, 1) = "[" THEN
+PSET (D + H, E + 0), I: PSET (D + H + 1, E + 0), I: PSET (D + H + 2, E + 0), I
+PSET (D + H, E + 1), I
+PSET (D + H, E + 2), I
+PSET (D + H, E + 3), I
+PSET (D + H, E + 4), I
+PSET (D + H, E + 5), I
+PSET (D + H, E + 6), I: PSET (D + H + 1, E + 6), I: PSET (D + H + 2, E + 6), I: GOTO 123
+ELSEIF MID$(B$, F, 1) = "]" THEN
+PSET (D + H + 2, E + 0), I: PSET (D + H + 3, E + 0), I: PSET (D + H + 4, E + 0), I
+PSET (D + H + 4, E + 1), I
+PSET (D + H + 4, E + 2), I
+PSET (D + H + 4, E + 3), I
+PSET (D + H + 4, E + 4), I
+PSET (D + H + 4, E + 5), I
+PSET (D + H + 2, E + 6), I: PSET (D + H + 3, E + 6), I: PSET (D + H + 4, E + 6), I: GOTO 123
+ELSEIF MID$(B$, F, 1) = "_" THEN
+PSET (D + H, E + 6), I: PSET (D + H + 1, E + 6), I: PSET (D + H + 2, E + 6), I: PSET (D + H + 3, E + 6), I: PSET (D + H + 4, E + 6), I: GOTO 123
+ELSEIF MID$(B$, F, 1) = "" OR MID$(B$, F, 1) = "" THEN
+PSET (D + H, E + 0), I: PSET (D + H + 4, E + 0), I
+PSET (D + H, E + 2), I: PSET (D + H + 4, E + 2), I
+PSET (D + H, E + 3), I: PSET (D + H + 4, E + 3), I
+PSET (D + H, E + 4), I: PSET (D + H + 4, E + 4), I
+PSET (D + H, E + 5), I: PSET (D + H + 4, E + 5), I
+PSET (D + H + 1, E + 6), I: PSET (D + H + 2, E + 6), I: PSET (D + H + 3, E + 6), I
+ELSEIF MID$(B$, F, 1) = "!" THEN
+PSET (D + H + 1, E + 0), I: PSET (D + H + 2, E + 0), I: PSET (D + H + 3, E + 0), I
+PSET (D + H + 1, E + 1), I: PSET (D + H + 2, E + 1), I: PSET (D + H + 3, E + 1), I
+PSET (D + H + 2, E + 2), I
+PSET (D + H + 2, E + 5), I
+PSET (D + H + 2, E + 6), I: GOTO 123
+ELSEIF MID$(B$, F, 1) = ">" THEN
+PSET (D + H + 1, E + 0), I
+PSET (D + H + 2, E + 1), I
+PSET (D + H + 3, E + 2), I
+PSET (D + H + 4, E + 3), I
+PSET (D + H + 3, E + 4), I
+PSET (D + H + 2, E + 5), I
+PSET (D + H + 1, E + 6), I: GOTO 123
+ELSEIF MID$(B$, F, 1) = "@" THEN
+PSET (D + H, E + 0), 7: PSET (D + H + 1, E + 0), I: PSET (D + H + 2, E + 0), I: PSET (D + H + 3, E + 0), I: PSET (D + H + 4, E + 0), 7
+PSET (D + H, E + 1), I: PSET (D + H + 1, E + 1), 7: PSET (D + H + 2, E + 1), 7: PSET (D + H + 3, E + 1), 7: PSET (D + H + 4, E + 1), I
+PSET (D + H, E + 2), I: PSET (D + H + 1, E + 2), 7: PSET (D + H + 2, E + 2), I: PSET (D + H + 3, E + 2), I: PSET (D + H + 4, E + 2), I
+PSET (D + H, E + 3), I: PSET (D + H + 1, E + 3), 7: PSET (D + H + 2, E + 3), I: PSET (D + H + 3, E + 3), I: PSET (D + H + 4, E + 3), I
+PSET (D + H, E + 4), I: PSET (D + H + 1, E + 4), 7: PSET (D + H + 2, E + 4), I: PSET (D + H + 3, E + 4), I: PSET (D + H + 4, E + 4), I
+PSET (D + H, E + 5), I: PSET (D + H + 1, E + 5), 7: PSET (D + H + 2, E + 5), 7: PSET (D + H + 3, E + 5), 7: PSET (D + H + 4, E + 5), 7
+PSET (D + H, E + 6), 7: PSET (D + H + 1, E + 6), I: PSET (D + H + 2, E + 6), I: PSET (D + H + 3, E + 6), I: PSET (D + H + 4, E + 6), 7
+ELSEIF MID$(B$, F, 1) = "<" THEN
+PSET (D + H + 3, E + 0), I
+PSET (D + H + 2, E + 1), I
+PSET (D + H + 1, E + 2), I
+PSET (D + H, E + 3), I
+PSET (D + H + 1, E + 4), I
+PSET (D + H + 2, E + 5), I
+PSET (D + H + 3, E + 6), I: GOTO 123
+123 END IF
+IF F - 1 < C THEN GOTO 7.1
+198 END SUB
+
diff --git a/samples/money.md b/samples/money.md
index c8a7986b..dcca0963 100644
--- a/samples/money.md
+++ b/samples/money.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: MONEY
diff --git a/samples/money/index.md b/samples/money/index.md
index d3c62603..a33b1474 100644
--- a/samples/money/index.md
+++ b/samples/money/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: MONEY
diff --git a/samples/monopoly-custom/index.md b/samples/monopoly-custom/index.md
index 08346816..05974dbd 100644
--- a/samples/monopoly-custom/index.md
+++ b/samples/monopoly-custom/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: MONOPOLY CUSTOM
diff --git a/samples/monopoly.md b/samples/monopoly.md
index 37677ce3..2ce53a2e 100644
--- a/samples/monopoly.md
+++ b/samples/monopoly.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: MONOPOLY
diff --git a/samples/monopoly/index.md b/samples/monopoly/index.md
index dd690754..d73d2c0f 100644
--- a/samples/monopoly/index.md
+++ b/samples/monopoly/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: MONOPOLY
diff --git a/samples/moon-lander/index.md b/samples/moon-lander/index.md
index df46857b..20e84dd9 100644
--- a/samples/moon-lander/index.md
+++ b/samples/moon-lander/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: MOON LANDER
diff --git a/samples/mooncrap/index.md b/samples/mooncrap/index.md
index b8d4bc68..be0b9e51 100644
--- a/samples/mooncrap/index.md
+++ b/samples/mooncrap/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: MOONCRAP
diff --git a/samples/mosaic.md b/samples/mosaic.md
index e02acffc..a3f0641e 100644
--- a/samples/mosaic.md
+++ b/samples/mosaic.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: MOSAIC
diff --git a/samples/mouse.md b/samples/mouse.md
index 552a7627..5a62e7c0 100644
--- a/samples/mouse.md
+++ b/samples/mouse.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: MOUSE
diff --git a/samples/move/img/screenshot.png b/samples/move/img/screenshot.png
new file mode 100644
index 00000000..fca68577
Binary files /dev/null and b/samples/move/img/screenshot.png differ
diff --git a/samples/move/index.md b/samples/move/index.md
new file mode 100644
index 00000000..68af7fc4
--- /dev/null
+++ b/samples/move/index.md
@@ -0,0 +1,30 @@
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+
+## SAMPLE: MOVE
+
+![screenshot.png](img/screenshot.png)
+
+### Author
+
+[🐝 mxmm](../mxmm.md)
+
+### Description
+
+```text
+PRINT "Welcome to the ultimate ASCII-player game: MOVE!"
+PRINT "v.1.0 by mxmm"
+```
+
+### QBjs
+
+> Please note that QBjs is still in early development and support for these examples is extremely experimental (meaning will most likely not work). With that out of the way, give it a try!
+
+* [LOAD "move.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?src=https://qb64.com/samples/move/src/move.bas)
+* [RUN "move.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?mode=auto&src=https://qb64.com/samples/move/src/move.bas)
+* [PLAY "move.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?mode=play&src=https://qb64.com/samples/move/src/move.bas)
+
+### File(s)
+
+* [move.bas](src/move.bas)
+
+🔗 [game](../game.md), [ascii](../ascii.md), [legacy](../legacy.md)
diff --git a/samples/move/src/move.bas b/samples/move/src/move.bas
new file mode 100644
index 00000000..b9afd809
--- /dev/null
+++ b/samples/move/src/move.bas
@@ -0,0 +1,168 @@
+RANDOMIZE TIMER
+start:
+CLS
+PRINT "Welcome to the ultimate ASCII-player game: MOVE!"
+PRINT "v.1.0 by mxmm"
+SLEEP 5
+CLS
+PRINT "Choose one of the following:"
+PRINT " 1. Play the Game!"
+PRINT " 2. View the instructions!"
+INPUT " So what is it going to be"; choice
+CLS
+IF (choice = 1) THEN
+GOTO game
+ELSEIF (choice = 2) THEN
+GOTO instructions
+ELSE
+SOUND 1000, 15
+PRINT "ERROR: YOU HAVE NOT TYPED IN A VALID CHARACTER. GAME WILL RESTART IN 5 SECONDS OR WHEN YOU PRESS A KEY"
+SLEEP 5
+CLS
+GOTO start
+END IF
+instructions:
+PRINT "The controls of this game are simple:"
+PRINT " W: Move up"
+PRINT " S: Move down"
+PRINT " A: Move left"
+PRINT " D: Move right"
+PRINT " Q: Quit"
+PRINT " Collect Items and avoid enemies"
+PRINT "ITEMS:"
+PRINT " T: Gives more time"
+PRINT " F: Freezes the enemy"
+PRINT " O: The enemy"
+PRINT ""
+PRINT "PRESS ANY BUTTON TO GO BACK TO THE MAIN SCREEN"
+SLEEP
+CLS
+GOTO start
+END
+game:
+INPUT "How much freeze to you want to start out with"; x
+CLS
+INPUT "What do you want the handicap to be (Higher is easier)"; y
+CLS
+freezel = 10 * y
+freeze = 0
+freezer = INT(RND * 21 + 1)
+freezec = INT(RND * 71 + 1)
+hurt = 1
+playerc = 1 'Main player's column
+playerr = 1 'Main player's row
+enemyc = 20 'Enemy's column
+enemyr = 20 'Enemy's row
+turns = 35 * y'The starting amount of turns
+turnitemr = INT(RND * 21 + 1)
+turnitemc = INT(RND * 71 + 1)
+compturn = 1
+die = 0
+death:
+IF (die = 1) THEN
+PRINT "GAME OVER!"
+SOUND 500, 3
+SOUND 250, 3
+SOUND 90, 3
+INPUT "Continue(y/n)"; cont$
+IF (cont$ = "y") THEN
+CLS
+GOTO start
+ELSEIF (cont$ = "n") THEN
+CLS
+END
+END IF
+END IF
+DO
+in$ = INKEY$
+IF (compturn = 1) THEN
+compturn = 0
+ELSEIF (compturn = 0) THEN
+compturn = 1
+END IF
+IF (playerr = enemyr) AND (playerc = enemyc) AND (hurt = 1) THEN
+die = 1
+GOTO death
+END IF
+IF (in$ = "a") AND (playerc > 1) THEN 'input
+playerc = playerc - 1
+turns = turns - 1
+ELSEIF (in$ = "d") AND (playerc < 79) THEN
+playerc = playerc + 1
+turns = turns - 1
+ELSEIF (in$ = "s") AND (playerr < 24) THEN
+playerr = playerr + 1
+turns = turns - 1
+ELSEIF (in$ = "w") AND (playerr > 1) THEN
+playerr = playerr - 1
+turns = turns - 1
+ELSEIF (in$ = "q") THEN
+die = 1
+GOTO death
+END IF
+IF (playerr = turnitemr) AND (playerc = turnitemc) THEN
+turns = turns + 25 * y
+turnitemr = INT(RND * 21 + 1)
+turnitemc = INT(RND * 71 + 1)
+END IF
+IF (freezer = playerr) AND (freezec = playerc) THEN
+freezel = freezel + 5 * y
+freezer = INT(RND * 21 + 1)
+freezec = INT(RND * 71 + 1)
+END IF
+IF (freeze = 0) THEN
+IF (compturn = 1) THEN
+IF (enemyc > playerc) THEN
+enemyc = enemyc - 1
+ELSEIF (enemyc < playerc) THEN
+enemyc = enemyc + 1
+END IF
+IF (enemyr > playerr) THEN
+enemyr = enemyr - 1
+ELSEIF (enemyr < playerr) THEN
+enemyr = enemyr + 1
+END IF
+END IF
+END IF
+CLS
+LOCATE 25, 1
+IF (turns = 0) THEN
+GOTO death
+END IF
+freezer2 = freezer + 2
+LOCATE freezer2, freezec
+PRINT "F"
+LOCATE 25, 1
+PRINT "Freeze: "; freezel
+LOCATE 24, 1
+PRINT "Turns: "; turns
+LOCATE turnitemr, turnitemc
+PRINT "T"
+LOCATE playerr, playerc
+PRINT "X"
+LOCATE enemyr, enemyc
+PRINT "O"
+IF (freezel > 0) THEN
+freezel = freezel - 1
+freeze = 1
+END IF
+IF (freezel = 0) THEN
+freeze = 0
+END IF
+SLEEP 1
+LOOP UNTIL (in$ = "q")
+END
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/samples/mrguessit/img/screenshot.png b/samples/mrguessit/img/screenshot.png
new file mode 100644
index 00000000..a51540ae
Binary files /dev/null and b/samples/mrguessit/img/screenshot.png differ
diff --git a/samples/mrguessit/index.md b/samples/mrguessit/index.md
new file mode 100644
index 00000000..252edfe1
--- /dev/null
+++ b/samples/mrguessit/index.md
@@ -0,0 +1,30 @@
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+
+## SAMPLE: MRGUESSIT
+
+![screenshot.png](img/screenshot.png)
+
+### Author
+
+[🐝 John Mendoza](../john-mendoza.md)
+
+### Description
+
+```text
+PRINT "This is a guessing game between the numbers 0 and 50."
+PRINT "I will tell you if you are higher orlower."
+```
+
+### QBjs
+
+> Please note that QBjs is still in early development and support for these examples is extremely experimental (meaning will most likely not work). With that out of the way, give it a try!
+
+* [LOAD "mrguessit.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?src=https://qb64.com/samples/mrguessit/src/mrguessit.bas)
+* [RUN "mrguessit.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?mode=auto&src=https://qb64.com/samples/mrguessit/src/mrguessit.bas)
+* [PLAY "mrguessit.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?mode=play&src=https://qb64.com/samples/mrguessit/src/mrguessit.bas)
+
+### File(s)
+
+* [mrguessit.bas](src/mrguessit.bas)
+
+🔗 [game](../game.md), [legacy](../legacy.md)
diff --git a/samples/mrguessit/src/mrguessit.bas b/samples/mrguessit/src/mrguessit.bas
new file mode 100644
index 00000000..727d9fbc
--- /dev/null
+++ b/samples/mrguessit/src/mrguessit.bas
@@ -0,0 +1,25 @@
+RANDOMIZE TIMER
+a = INT(RND * 50)
+CLS
+PRINT "This is a guessing game between the numbers 0 and 50."
+PRINT "I will tell you if you are higher orlower."
+PRINT "Now lets begin!"
+PRINT "type 999 to end (just in case...)"
+WHILE iput <> a
+INPUT "Type in a number please. ", iput
+IF iput = 999 GOTO loser
+IF iput < a THEN PRINT "You are below sea level (that means you're too low!)"
+IF iput > a THEN PRINT "You are burning in the sun! (That means too high!)"
+WEND
+PRINT "Great job! You got it! The number was "; a
+END
+loser:
+PRINT "The number was "; a
+PRINT "Come back and play again soon! :-)"
+PRINT
+PRINT
+PRINT
+PRINT
+PRINT "(C) 2004 John Mendoza"
+PRINT "ALL RIGHTS RESERVED"
+END
\ No newline at end of file
diff --git a/samples/ms-phone/index.md b/samples/ms-phone/index.md
index 42c31d0a..4bc775d0 100644
--- a/samples/ms-phone/index.md
+++ b/samples/ms-phone/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: MS PHONE
diff --git a/samples/multi-mill/index.md b/samples/multi-mill/index.md
index 3d1c38f7..bcea8658 100644
--- a/samples/multi-mill/index.md
+++ b/samples/multi-mill/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: MULTI-MILL
diff --git a/samples/multiplayer.md b/samples/multiplayer.md
index 0285361a..a157c9f5 100644
--- a/samples/multiplayer.md
+++ b/samples/multiplayer.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: MULTIPLAYER
diff --git a/samples/music.md b/samples/music.md
index 89404cd1..745f0d3f 100644
--- a/samples/music.md
+++ b/samples/music.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: MUSIC
diff --git a/samples/mxmm.md b/samples/mxmm.md
new file mode 100644
index 00000000..21f4c8a2
--- /dev/null
+++ b/samples/mxmm.md
@@ -0,0 +1,9 @@
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+
+## SAMPLES BY MXMM
+
+**[Move](move/index.md)**
+
+[🐝 mxmm](mxmm.md) 🔗 [game](game.md), [ascii](ascii.md), [legacy](legacy.md)
+
+PRINT "Welcome to the ultimate ASCII-player game: MOVE!" PRINT "v.1.0 by mxmm"
diff --git a/samples/mycraft/index.md b/samples/mycraft/index.md
index 10162aa2..76d09b4c 100644
--- a/samples/mycraft/index.md
+++ b/samples/mycraft/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: MYCRAFT
diff --git a/samples/mystify/index.md b/samples/mystify/index.md
index 4a314497..7bb2e5f0 100644
--- a/samples/mystify/index.md
+++ b/samples/mystify/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: MYSTIFY
diff --git a/samples/names/index.md b/samples/names/index.md
index 573c01e8..fc247b44 100644
--- a/samples/names/index.md
+++ b/samples/names/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: NAMES
diff --git a/samples/nathan-thomas.md b/samples/nathan-thomas.md
index 5068ab83..25cb5b02 100644
--- a/samples/nathan-thomas.md
+++ b/samples/nathan-thomas.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY NATHAN THOMAS
diff --git a/samples/nibbles/index.md b/samples/nibbles/index.md
index 9d6fe1fa..e3d50217 100644
--- a/samples/nibbles/index.md
+++ b/samples/nibbles/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: NIBBLES
diff --git a/samples/nightsky/img/screenshot.png b/samples/nightsky/img/screenshot.png
new file mode 100644
index 00000000..b3eb1aaf
Binary files /dev/null and b/samples/nightsky/img/screenshot.png differ
diff --git a/samples/nightsky/index.md b/samples/nightsky/index.md
new file mode 100644
index 00000000..607a202a
--- /dev/null
+++ b/samples/nightsky/index.md
@@ -0,0 +1,25 @@
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+
+## SAMPLE: NIGHTSKY
+
+![screenshot.png](img/screenshot.png)
+
+### Description
+
+```text
+Simple night sky & moon.
+```
+
+### QBjs
+
+> Please note that QBjs is still in early development and support for these examples is extremely experimental (meaning will most likely not work). With that out of the way, give it a try!
+
+* [LOAD "pall2.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?src=https://qb64.com/samples/nightsky/src/pall2.bas)
+* [RUN "pall2.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?mode=auto&src=https://qb64.com/samples/nightsky/src/pall2.bas)
+* [PLAY "pall2.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?mode=play&src=https://qb64.com/samples/nightsky/src/pall2.bas)
+
+### File(s)
+
+* [pall2.bas](src/pall2.bas)
+
+🔗 [graphics](../graphics.md), [legacy](../legacy.md)
diff --git a/samples/nightsky/src/pall2.bas b/samples/nightsky/src/pall2.bas
new file mode 100644
index 00000000..8e54e24b
--- /dev/null
+++ b/samples/nightsky/src/pall2.bas
@@ -0,0 +1,100 @@
+DIM points(5)
+FromWhere = 63
+SCREEN 13
+green = 0
+blue = 0
+red = 0
+FOR a = 1 TO 63 * 2
+IF red < 63 THEN
+IF blue <> 1 THEN
+red = red + 1
+green = green + 1
+ELSE
+red = red - 1
+green = green - 1
+END IF
+ELSE
+blue = 1
+red = red - 1
+END IF
+PALETTE a, red + green * 256 + blue * 65536
+NEXT
+
+FOR a = 63 * 2 TO 254
+PALETTE a, 0 + 0 * 256 + 0 * 65536
+NEXT
+
+colors = 60
+FOR a = 1 TO 50
+colors = colors + 1
+CIRCLE (38, 40), (a), colors
+NEXT
+colors = 60
+FOR a = 1 TO 50
+colors = colors + 1
+CIRCLE (39, 40), (a), colors
+NEXT
+colors = 63
+FOR a = 1 TO 15
+colors = colors + 1
+CIRCLE (39, 40), (a), colors
+NEXT
+
+PALETTE 255, 63 + 63 * 256 + 63 * 65536
+PALETTE 254, 0 + 0 * 256 + 63 * 65536
+
+sen = 255
+DO
+PSET (100, 105), sen
+PSET (200, 150), sen
+GOSUB colors
+PSET (120, 45), sen
+PSET (280, 20), sen
+GOSUB colors
+PSET (10, 170), sen
+GOSUB colors
+PSET (245, 100), sen
+GOSUB colors
+PSET (290, 150), sen
+GOSUB colors
+PSET (130, 160), sen
+GOSUB colors
+PSET (15, 90), sen
+PSET (233, 50), sen
+GOSUB colors
+LOOP UNTIL INKEY$ <> ""
+
+GOSUB BigEnding
+END
+
+colors:
+SELECT CASE sen
+CASE 255
+sen = 63
+CASE 63
+sen = 254
+CASE 254
+sen = 255
+END SELECT
+RETURN
+END
+
+BigEnding:
+FOR a = 256 TO 0 STEP -1
+PALETTE a, 0 + 0 * 256 + 0 * 65536
+NEXT
+END
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/samples/nixon.md b/samples/nixon.md
index 1d9d29c5..3ec49aa9 100644
--- a/samples/nixon.md
+++ b/samples/nixon.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY NIXON
diff --git a/samples/number-blaster/index.md b/samples/number-blaster/index.md
index 429ac1f4..b4e1d4a7 100644
--- a/samples/number-blaster/index.md
+++ b/samples/number-blaster/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: NUMBER BLASTER
diff --git a/samples/outwit/img/outwit-screenshot.png b/samples/outwit/img/outwit-screenshot.png
new file mode 100644
index 00000000..639c4915
Binary files /dev/null and b/samples/outwit/img/outwit-screenshot.png differ
diff --git a/samples/outwit/index.md b/samples/outwit/index.md
new file mode 100644
index 00000000..d349de8d
--- /dev/null
+++ b/samples/outwit/index.md
@@ -0,0 +1,37 @@
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+
+## SAMPLE: OUTWIT
+
+![outwit-screenshot.png](img/outwit-screenshot.png)
+
+### Author
+
+[🐝 Donald Foster](../donald-foster.md)
+
+### Description
+
+```text
+I've complete another game I wrote on the Tandy 2000 about 30 years ago. Outwit is a 2 player board game.
+
+From the instruction sheet:
+"EQUIPMENT: 1 playing board with 90 squares, including two corners of 9 squares each. 18 chips (9 dark and 9 light), one chip on each side has a dot on it, called the "power chip".
+OBJECT: To be the first to slide all nine of your chips into your own corner of the board."
+The chips are setup in the middle of the board at start. Each player plays alternately one chip in one direction only. a regular chip may move horizontally or vertically only. A power chip may move also diagonally. A regular chip must slide as far as it can go. Stopped only by reaching the edge of the board, another chip or the opponent's corner. A power chip can stop whenever it wants, but must stop for the same reasons as a regular chip.
+```
+
+### QBjs
+
+> Please note that QBjs is still in early development and support for these examples is extremely experimental (meaning will most likely not work). With that out of the way, give it a try!
+
+* [LOAD "outwit.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?src=https://qb64.com/samples/outwit/src/outwit.bas)
+* [RUN "outwit.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?mode=auto&src=https://qb64.com/samples/outwit/src/outwit.bas)
+* [PLAY "outwit.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?mode=play&src=https://qb64.com/samples/outwit/src/outwit.bas)
+
+### File(s)
+
+* [outwit.bas](src/outwit.bas)
+
+🔗 [game](../game.md)
+
+
+Reference: [qb64forum](https://qb64forum.alephc.xyz/index.php?topic=125.0)
diff --git a/samples/outwit/src/outwit.bas b/samples/outwit/src/outwit.bas
new file mode 100644
index 00000000..deb60231
--- /dev/null
+++ b/samples/outwit/src/outwit.bas
@@ -0,0 +1,347 @@
+OPTION _EXPLICIT
+
+' I used a code snippet by bplus modified to enlarge the characters on the screen.
+
+_TITLE "Outwit - Designer Unknown 1975 - Programmed by Donald L. Foster Jr. 2018 - Code Snippet by bplus"
+
+SCREEN _NEWIMAGE(1084, 735, 256)
+
+_PALETTECOLOR 1, _RGB32(204, 124, 56) ' Player 1 Piece Color
+_PALETTECOLOR 2, _RGB32(109, 39, 0) ' Player 2 Piece Color
+_PALETTECOLOR 3, _RGB32(205, 76, 0) ' Board Background Color
+_PALETTECOLOR 4, _RGB32(245, 116, 0) ' Board Square Color
+_PALETTECOLOR 5, _RGB32(245, 205, 0) ' Player 1 Corner Color
+_PALETTECOLOR 6, _RGB32(139, 69, 19) ' Player 2 Corner Color
+_PALETTECOLOR 7, _RGB32(255, 215, 0) ' Gold Piece Color
+_PALETTECOLOR 8, _RGB32(80, 80, 80) ' Cursor Color
+
+_LIMIT 10
+
+DIM A AS STRING
+DIM U AS _UNSIGNED INTEGER
+DIM V AS _UNSIGNED INTEGER
+DIM W AS _UNSIGNED INTEGER
+DIM X AS _UNSIGNED INTEGER
+DIM Y AS _UNSIGNED _BYTE
+DIM Z AS _UNSIGNED _BYTE
+
+DIM X1 AS _UNSIGNED INTEGER
+DIM X2 AS _UNSIGNED INTEGER
+DIM X3 AS _UNSIGNED INTEGER
+DIM X4 AS _UNSIGNED INTEGER
+
+DIM Player AS _UNSIGNED _BYTE
+DIM Opponent AS _UNSIGNED _BYTE
+DIM Winner AS _UNSIGNED _BYTE
+DIM Square AS _UNSIGNED _BYTE
+DIM SquareColor1 AS _UNSIGNED _BYTE
+DIM SquareColor2 AS _UNSIGNED _BYTE
+
+DIM BoardX1 AS _UNSIGNED INTEGER
+DIM BoardY1 AS _UNSIGNED INTEGER
+DIM BoardX2 AS _UNSIGNED INTEGER
+DIM BoardY2 AS _UNSIGNED INTEGER
+
+DIM Piece AS _UNSIGNED _BYTE
+
+DIM Row1 AS _UNSIGNED _BYTE
+DIM Column1 AS _UNSIGNED _BYTE
+DIM Row2 AS _UNSIGNED _BYTE
+DIM Column2 AS _UNSIGNED _BYTE
+
+DIM PlayerColor(2) AS INTEGER
+DIM Pieces(2) AS _UNSIGNED _BYTE
+
+DIM BoardX(9, 10) AS _UNSIGNED INTEGER
+DIM BoardY(9, 10) AS _UNSIGNED INTEGER
+DIM BoardPlayer(9, 10) AS _UNSIGNED _BYTE
+DIM BoardPiece(9, 10) AS _UNSIGNED _BYTE
+DIM BoardSquare(9, 10) AS _UNSIGNED _BYTE
+DIM Playable(9, 10) AS _UNSIGNED _BYTE
+
+
+DIM Cursor AS STRING
+DIM Message AS STRING
+
+Player = 1: Opponent = 2
+Pieces(1) = 0: Pieces(2) = 0
+PlayerColor(1) = 1: PlayerColor(2) = 2
+
+Cursor$ = "BU36BL36C15D72R72U72L72BF2D68R68U68L68BH1P15,15"
+
+CLS , 15
+
+' Draw Game Title Message
+Message$ = " Outwit ": X1 = 815: X2 = 2: X3 = 0: X4 = 4: GOSUB DrawMessage
+LINE (0, 0)-(100, 30), 15, BF
+
+' Draw Board
+LINE (10, 30)-(10, 702), 0
+LINE (799, 30)-(799, 702), 0
+LINE (30, 10)-(779, 10), 0
+LINE (30, 722)-(779, 722), 0
+CIRCLE (30, 30), 20, 0, 1.4, 3.1
+CIRCLE (779, 30), 20, 0, 0, 1.6
+CIRCLE (30, 702), 20, 0, 2.9, 4.72
+CIRCLE (779, 702), 20, 0, 4.52, 0
+PAINT (30, 30), 3, 0
+LINE (28, 28)-(781, 706), 0, BF
+X = 67: U = 9
+FOR Z = 1 TO 9
+ W = 67
+ FOR Y = 1 TO 10
+ IF Z < 4 AND Y < 4 THEN V = 6 ELSE IF Z > 6 AND Y > 7 THEN V = 5 ELSE V = 4
+ LINE (W - 36, X - 36)-(W + 36, X + 36), V, BF
+ IF V = 6 THEN BoardSquare(Z, Y) = 2 ELSE IF V = 5 THEN BoardSquare(Z, Y) = 1 ELSE BoardSquare(Z, Y) = 0
+ IF Y = U THEN BoardPlayer(Z, Y) = 1: BoardPiece(Z, Y) = 1: BoardSquare(Z, Y) = 3: CIRCLE (W, X), 30, 0: PAINT (W, X), 1, 0
+ IF Y = U + 1 THEN BoardPlayer(Z, Y) = 2: BoardPiece(Z, Y) = 1: BoardSquare(Z, Y) = 4: CIRCLE (W, X), 30, 0: PAINT (W, X), 2, 0
+ IF Z = 5 AND (Y = 5 OR Y = 6) THEN BoardPiece(Z, Y) = 2: CIRCLE (W, X), 13, 7: PAINT (W, X), 7
+ BoardX(Z, Y) = W: BoardY(Z, Y) = X
+ W = W + 75
+ NEXT
+ X = X + 75: U = U - 1
+NEXT
+
+
+StartGame:
+
+' Draw Player Indicator
+CIRCLE (941, 130), 30, 0: PAINT (941, 130), PlayerColor(Player), 0: CIRCLE (941, 130), 13, 7: PAINT (941, 130), 7
+LOCATE 12, 115: PRINT "Player"; Player;
+
+
+StartMove: LOCATE 16, 105: PRINT " Choose a Piece to Move. ";
+
+ChooseAPieceInput:
+DO WHILE _MOUSEINPUT
+ FOR Z = 1 TO 9
+ FOR Y = 1 TO 10
+ IF _MOUSEBUTTON(1) = -1 AND _MOUSEX > BoardX(Z, Y) - 44 AND _MOUSEX < BoardX(Z, Y) + 44 AND _MOUSEY > BoardY(Z, Y) - 44 AND _MOUSEY < BoardY(Z, Y) + 44 THEN
+ IF BoardPlayer(Z, Y) = Player THEN Row1 = Z: Column1 = Y: GOSUB ReleaseMouseButton: GOTO EndChoice1
+ END IF
+ NEXT
+ NEXT
+LOOP
+GOTO ChooseAPieceInput
+
+EndChoice1:
+Piece = BoardPiece(Row1, Column1): Square = BoardSquare(Row1, Column1): BoardX1 = BoardX(Row1, Column1): BoardY1 = BoardY(Row1, Column1)
+IF Square = 1 THEN SquareColor1 = 5 ELSE IF Square = 2 THEN SquareColor1 = 6 ELSE SquareColor1 = 4
+
+V = POINT(BoardX1, BoardY1): PSET (BoardX1, BoardY1), V: DRAW Cursor$
+
+FOR Z = 1 TO 9: FOR Y = 1 TO 10: Playable(Z, Y) = 0: NEXT: NEXT
+
+Playable(Row1, Column1) = 1
+
+X = 0
+CheckUp:
+IF Row1 - X - 1 >= 1 THEN
+ IF BoardPlayer(Row1 - X - 1, Column1) > 0 GOTO EndUp
+ IF Square = 1 THEN
+ IF BoardSquare(Row1 - X - 1, Column1) = 0 GOTO EndUp
+ X = X + 1: GOTO CheckUp
+ ELSE
+ IF BoardSquare(Row1 - X - 1, Column1) = 2 AND Player = 1 GOTO EndUp
+ IF Piece = 2 THEN Playable(Row1 - X, Column1) = 1
+ X = X + 1: GOTO CheckUp
+ END IF
+ EndUp: Playable(Row1 - X, Column1) = 1
+ELSE
+ Playable(Row1 - X, Column1) = 1
+END IF
+
+X = 0
+CheckLeft:
+IF Column1 - X - 1 >= 1 THEN
+ IF BoardPlayer(Row1, Column1 - X - 1) > 0 GOTO EndLeft
+ IF Square = 1 THEN
+ IF BoardSquare(Row1, Column1 - X - 1) = 0 GOTO EndLeft
+ X = X + 1: GOTO CheckLeft
+ ELSE
+ IF BoardSquare(Row1, Column1 - X - 1) = 2 AND Player = 1 GOTO EndLeft
+ IF Piece = 2 THEN Playable(Row1, Column1 - X - 1) = 1
+ X = X + 1: GOTO CheckLeft
+ END IF
+ EndLeft: Playable(Row1, Column1 - X) = 1
+ELSE
+ Playable(Row1, Column1 - X) = 1
+END IF
+
+
+X = 0
+CheckDown:
+IF Row1 + X + 1 <= 9 THEN
+ IF BoardPlayer(Row1 + X + 1, Column1) > 0 GOTO EndDown
+ IF Square = 2 THEN
+ IF BoardSquare(Row1 + X + 1, Column1) = 0 GOTO EndDown
+ X = X + 1: GOTO CheckDown
+ ELSE
+ IF BoardSquare(Row1 + X + 1, Column1) = 1 AND Player = 2 GOTO EndDown
+ IF Piece = 2 THEN Playable(Row1 + X + 1, Column1) = 1
+ X = X + 1: GOTO CheckDown
+ END IF
+ EndDown: Playable(Row1 + X, Column1) = 1
+ELSE
+ Playable(Row1 + X, Column1) = 1
+END IF
+
+X = 0
+CheckRight:
+IF Column1 + X + 1 <= 10 THEN
+ IF BoardPlayer(Row1, Column1 + X + 1) > 0 GOTO EndRight
+ IF Square = 2 THEN
+ IF BoardSquare(Row1, Column1 + X + 1) = 0 GOTO EndRight
+ X = X + 1: GOTO CheckRight
+ ELSE
+ IF BoardSquare(Row1, Column1 + X + 1) = 1 AND Player = 2 GOTO EndRight
+ IF Piece = 2 THEN Playable(Row1, Column1 + X + 1) = 1
+ X = X + 1: GOTO CheckRight
+ END IF
+ EndRight: Playable(Row1, Column1 + X) = 1
+ELSE
+ Playable(Row1, Column1 + X) = 1
+END IF
+
+IF Piece = 2 THEN
+ X = 0
+ CheckUpLeft:
+ IF Row1 - X - 1 >= 1 AND Column1 - X - 1 >= 1 THEN
+ IF BoardPlayer(Row1 - X - 1, Column1 - X - 1) > 0 GOTO EndUpLeft
+ IF Square = 1 THEN
+ IF BoardSquare(Row1 - X - 1, Column1 - X - 1) = 0 GOTO EndUpLeft
+ X = X + 1: GOTO CheckUpLeft
+ ELSE
+ IF BoardSquare(Row1 - X - 1, Column1 - X - 1) = 2 AND Player = 1 GOTO EndUpLeft
+ Playable(Row1 - X - 1, Column1 - X - 1) = 1: X = X + 1: GOTO CheckUpLeft
+ END IF
+ EndUpLeft: Playable(Row1 - X, Column1 - X) = 1
+ ELSE
+ Playable(Row1 - X, Column1 - X) = 1
+ END IF
+
+ X = 0
+ CheckDownLeft:
+ IF Row1 + X + 1 <= 9 AND Column1 - X - 1 >= 1 THEN
+ IF BoardPlayer(Row1 + X + 1, Column1 - X - 1) > 0 GOTO EndDownLeft
+ IF Square = 1 THEN
+ IF BoardSquare(Row1 + X + 1, Column1 - X - 1) = 0 GOTO EndDownLeft
+ X = X + 1: GOTO CheckDownLeft
+ ELSE
+ IF BoardSquare(Row1 + X + 1, Column1 - X - 1) = 2 AND Player = 1 GOTO EndDownLeft
+ IF BoardSquare(Row1 + X + 1, Column1 - X - 1) = 1 AND Player = 2 GOTO EndDownLeft
+ Playable(Row1 + X + 1, Column1 - X - 1) = 1: X = X + 1: GOTO CheckDownLeft
+ END IF
+ EndDownLeft: Playable(Row1 + X, Column1 - X) = 1
+ ELSE
+ Playable(Row1 + X, Column1 - X) = 1
+ END IF
+
+ X = 0
+ CheckDownRight:
+ IF Row1 + X + 1 <= 9 AND Column1 + X + 1 <= 10 THEN
+ IF BoardPlayer(Row1 + X + 1, Column1 + X + 1) > 0 GOTO EndDownRight
+ IF Square = 1 THEN
+ IF BoardSquare(Row1 + X + 1, Column1 + X + 1) = 0 GOTO EndDownRight
+ X = X + 1: GOTO CheckDownRight
+ ELSE
+ IF BoardSquare(Row1 + X + 1, Column1 + X + 1) = 1 AND Player = 2 GOTO EndDownRight
+ Playable(Row1 + X + 1, Column1 + X + 1) = 1: X = X + 1: GOTO CheckDownRight
+ END IF
+ EndDownRight: Playable(Row1 + X, Column1 + X) = 1
+ ELSE
+ Playable(Row1 + X, Column1 + X) = 1
+ END IF
+
+ X = 0
+ CheckUpRight:
+ IF Row1 - X - 1 >= 1 AND Column1 + X + 1 <= 10 THEN
+ IF BoardPlayer(Row1 - X - 1, Column1 + X + 1) > 0 GOTO EndUpRight
+ IF Square = 1 THEN
+ IF BoardSquare(Row1 - X - 1, Column1 + X + 1) = 0 GOTO EndUpRight
+ X = X + 1: GOTO CheckUpRight
+ ELSE
+ IF BoardSquare(Row1 - X - 1, Column1 + X + 1) = 1 AND Player = 2 GOTO EndUpRight
+ IF BoardSquare(Row1 - X - 1, Column1 + X + 1) = 2 AND Player = 1 GOTO EndUpRight
+ Playable(Row1 - X - 1, Column1 + X + 1) = 1: X = X + 1: GOTO CheckUpRight
+ END IF
+ EndUpRight: Playable(Row1 - X, Column1 + X) = 1
+ ELSE
+ Playable(Row1 - X, Column1 + X) = 1
+ END IF
+END IF
+
+LOCATE 16, 105: PRINT "Choose Location to Move to.";
+
+ChooseALocationInput:
+DO WHILE _MOUSEINPUT
+ FOR Z = 1 TO 9
+ FOR Y = 1 TO 10
+ IF _MOUSEBUTTON(1) = -1 AND _MOUSEX > BoardX(Z, Y) - 44 AND _MOUSEX < BoardX(Z, Y) + 44 AND _MOUSEY > BoardY(Z, Y) - 44 AND _MOUSEY < BoardY(Z, Y) + 44 THEN
+ IF Playable(Z, Y) = 1 THEN Row2 = Z: Column2 = Y: GOSUB ReleaseMouseButton: GOTO EndChoice2
+ END IF
+ NEXT
+ NEXT
+LOOP
+GOTO ChooseALocationInput
+
+EndChoice2:
+IF Row1 = Row2 AND Column1 = Column2 THEN PAINT (BoardX1 - 36, BoardY1 - 36), SquareColor1, 0: GOTO StartMove
+
+BoardX2 = BoardX(Row2, Column2): BoardY2 = BoardY(Row2, Column2)
+
+IF BoardSquare(Row2, Column2) = 1 THEN SquareColor2 = 5 ELSE IF BoardSquare(Row2, Column2) = 2 THEN SquareColor2 = 6 ELSE SquareColor2 = 4
+LINE (BoardX2 - 36, BoardY2 - 36)-(BoardX2 + 36, BoardY2 + 36), SquareColor2, BF
+
+BoardPlayer(Row2, Column2) = Player: BoardPiece(Row2, Column2) = Piece
+BoardPlayer(Row1, Column1) = 0: BoardPiece(Row1, Column1) = 0
+
+LINE (BoardX1 - 36, BoardY1 - 36)-(BoardX1 + 36, BoardY1 + 36), SquareColor1, BF
+
+IF Square > 2 THEN
+ IF Piece = 2 THEN CIRCLE (BoardX1, BoardY1), 30, 0: 'PAINT (BoardX1, BoardY1), 7
+ V = Square + 2: CIRCLE (BoardX1, BoardY1), 13, 0: PAINT (BoardX1, BoardY1), V, 0
+END IF
+
+LINE (BoardX2 - 36, BoardY2 - 36)-(BoardX2 + 36, BoardY2 + 36), SquareColor2, BF
+CIRCLE (BoardX2, BoardY2), 30, 0: PAINT (BoardX2, BoardY2), PlayerColor(Player), 0
+IF Piece = 2 THEN CIRCLE (BoardX2, BoardY2), 13, 7: PAINT (BoardX2, BoardY2), 7
+
+IF (Square = 0 OR Square = 3 OR Square = 4) AND BoardSquare(Row2, Column2) = Player THEN Pieces(Player) = Pieces(Player) + 1
+
+IF Pieces(Player) = 9 THEN GOTO Winner
+
+SWAP Player, Opponent: GOTO StartGame
+
+
+DrawMessage:
+COLOR 0, 15: LOCATE 1, 1: PRINT Message$;
+W = 8 * LEN(Message$): X = 16
+
+FOR Y = 0 TO X
+ FOR Z = 0 TO W
+ IF POINT(Z, Y) <> 15 THEN LINE (X1 + Z * X4, X2 + Y * X4)-(X1 + Z * X4 + X4, X2 + Y * X4 + X4), 0, BF
+ NEXT
+NEXT
+RETURN
+
+
+ReleaseMouseButton:
+DO WHILE _MOUSEINPUT
+ IF _MOUSEBUTTON(1) = 0 THEN RETURN
+LOOP
+GOTO ReleaseMouseButton
+
+
+Winner:
+LOCATE 16, 105: PRINT " Player"; Player; "is the Winner! ";
+
+LOCATE 18, 104: PRINT "Play Another Game? ( Y or N )";
+
+GetYorN:
+A$ = UCASE$(INKEY$)
+IF A$ = "" THEN GOTO GetYorN
+IF A$ = "Y" THEN RUN
+IF A$ = "N" THEN SYSTEM
+GOTO GetYorN
+
diff --git a/samples/parabolas/index.md b/samples/parabolas/index.md
index 0aab75a9..a7943a0b 100644
--- a/samples/parabolas/index.md
+++ b/samples/parabolas/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: PARABOLAS
diff --git a/samples/parseline/img/screenshot.png b/samples/parseline/img/screenshot.png
new file mode 100644
index 00000000..5baecec2
Binary files /dev/null and b/samples/parseline/img/screenshot.png differ
diff --git a/samples/parseline/index.md b/samples/parseline/index.md
new file mode 100644
index 00000000..a5198761
--- /dev/null
+++ b/samples/parseline/index.md
@@ -0,0 +1,37 @@
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+
+## SAMPLE: PARSELINE
+
+![screenshot.png](img/screenshot.png)
+
+### Author
+
+[🐝 Rho Sigma](../rho-sigma.md)
+
+### Description
+
+```text
+I guess every developer is sooner or later in need of such a parsing function: Doesn't matter if it's to split a simple text line into its single words, quickly reading CSV data into an array, break up a path specification into the single folder names or get the individual options of a given command line or of an URL query string.
+
+Obviously such a function must be able to recognize several separator chars and needs to be able to suppress the splitting of components in quoted sections. Special to this function is the ability to optionally use different chars for opening quotes and closing quotes, which e.g. allows to read out sections in parenthesis or brackets.
+
+For usage, see the full description available in separate HTML document (compressed file).
+```
+
+### QBjs
+
+> Please note that QBjs is still in early development and support for these examples is extremely experimental (meaning will most likely not work). With that out of the way, give it a try!
+
+* [LOAD "parseexample.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?src=https://qb64.com/samples/parseline/src/parseexample.bas)
+* [RUN "parseexample.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?mode=auto&src=https://qb64.com/samples/parseline/src/parseexample.bas)
+* [PLAY "parseexample.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?mode=play&src=https://qb64.com/samples/parseline/src/parseexample.bas)
+
+### File(s)
+
+* [parseexample.bas](src/parseexample.bas)
+* [parseline.zip](src/parseline.zip)
+
+🔗 [data management](../data-management.md), [parsing](../parsing.md)
+
+
+Reference: [qb64forum](https://qb64forum.alephc.xyz/index.php?topic=4188.0)
diff --git a/samples/parseline/src/parseexample.bas b/samples/parseline/src/parseexample.bas
new file mode 100644
index 00000000..41a6eb02
--- /dev/null
+++ b/samples/parseline/src/parseexample.bas
@@ -0,0 +1,207 @@
+_TITLE "ParseExample"
+'=== Full description for the ParseLine&() function is available
+'=== in the separate HTML document.
+'=====================================================================
+WIDTH 100, 32
+REDIM a$(3 TO 4) 'result array (at least one element)
+
+
+
+'=== e$ = example description
+'=== s$ = used separators (max. 5 chars)
+'=== q$ = used quotes (max. 2 chars) (empty = regular ")
+'=== l$ = test line to parse
+'=====================================================================
+e$ = "empty lines or those containing defined separators only, won't give a result"
+s$ = " ,.": q$ = ""
+l$ = " ,. , ., ., . ,.,., .,,,,,. ,., "
+GOSUB doFunc
+e$ = "a simple text line, using space, comma and period as separators and regular quoting"
+s$ = " ,.": q$ = ""
+l$ = "Hello World, just want to say,greetings " + CHR$(34) + "to all" + CHR$(34) + " from RhoSigma."
+GOSUB doFunc
+e$ = "now a complex space separated test line with regular quoting and empty quotes"
+s$ = " ": q$ = ""
+l$ = " " + CHR$(34) + " ABC " + CHR$(34) + " 123 " + CHR$(34) + CHR$(34) + " " + CHR$(34) + CHR$(34) + "X Y Z" + CHR$(34) + CHR$(34)
+GOSUB doFunc
+e$ = "same space separated test line with reodered quoting and empty quotes"
+s$ = " ": q$ = ""
+l$ = " ABC 123" + CHR$(34) + CHR$(34) + CHR$(34) + " X Y Z " + CHR$(34) + CHR$(34) + CHR$(34) + "345 "
+GOSUB doFunc
+e$ = "again the space separated test line with regular quoting and an unfinished (EOL) quote"
+s$ = " ": q$ = ""
+l$ = " ABC 123" + CHR$(34) + " " + CHR$(34) + " X Y Z " + CHR$(34) + " " + CHR$(34) + CHR$(34) + "345 "
+GOSUB doFunc
+e$ = "an opening quote at EOL is in fact an empty quote, it adds another empty array element"
+s$ = " ": q$ = ""
+l$ = " " + CHR$(34) + "a final open quote is empty" + CHR$(34) + " " + CHR$(34)
+GOSUB doFunc
+'-----------------------------
+'-----------------------------
+e$ = "a SUB declaration line using paranthesis as TWO char quoting"
+s$ = " ": q$ = "()"
+l$ = "SUB RectFill (lin%, col%, hei%, wid%, fg%, bg%, ch$)"
+GOSUB doFunc
+e$ = "same SUB line with many extra paranthesis, showing that TWO char quoting avoids nesting"
+s$ = " ": q$ = "()"
+l$ = "SUB RectFill (lin%, col%, ((hei%)), wid%, (fg%), bg%, (ch$))"
+GOSUB doFunc
+'-----------------------------
+'-----------------------------
+e$ = "space separated command line with regular quoting"
+s$ = " ": q$ = ""
+l$ = "--testfile " + CHR$(34) + "C:\My Folder\My File.txt" + CHR$(34) + " --testmode --output logfile.txt"
+GOSUB doFunc
+e$ = "space and/or equal sign separated command line with regular quoting"
+s$ = " =": q$ = ""
+l$ = "--testfile=" + CHR$(34) + "C:\My Folder\My File.txt" + CHR$(34) + " --testmode --output=logfile.txt"
+GOSUB doFunc
+e$ = "space and/or equal sign separated command line with alternative ONE char quoting"
+s$ = " =": q$ = "|"
+l$ = "--testfile=|C:\My Folder\My File.txt| --testmode --output=logfile.txt"
+GOSUB doFunc
+e$ = "space and/or equal sign separated command line with alternative TWO char quoting"
+s$ = " =": q$ = "{}"
+l$ = "--testfile={C:\My Folder\My File.txt} --testmode --output=logfile.txt"
+GOSUB doFunc
+'-----------------------------
+'-----------------------------
+e$ = "parsing a filename using (back)slashes as separators but NO spaces"
+s$ = "\/": q$ = ""
+l$ = "C:\My Folder\My File.txt"
+GOSUB doFunc
+e$ = "for quoted filenames the quoting char(s) must be separators instead of quotes (see source)"
+'NOTE: a char cannot be used as separator and quote at the same time
+s$ = "\/" + CHR$(34): q$ = "*" '* is not allowd in filenames, so it's perfect to knock out the regular quote here
+l$ = CHR$(34) + "C:\My Folder\My File.txt" + CHR$(34)
+GOSUB doFunc
+'=====================================================================
+SYSTEM
+
+
+
+'-- This GOSUB subroutine will execute the examples from above and
+'-- print the given inputs and function results.
+doFunc:
+CLS
+COLOR 12: PRINT "square brackets just used to better visualize the start and end of strings ..."
+PRINT
+COLOR 14: PRINT "Example: ";: COLOR 10: PRINT e$
+PRINT
+COLOR 15
+PRINT "given input to function:"
+PRINT "------------------------"
+COLOR 14: PRINT " Line: ";: COLOR 12: PRINT "[";: COLOR 7: PRINT l$;: COLOR 12: PRINT "]"
+COLOR 14: PRINT "Separators: ";: COLOR 12: PRINT "[";: COLOR 7: PRINT s$;: COLOR 12: PRINT "]"
+COLOR 14: PRINT " Quotes: ";: COLOR 12: PRINT "[";: COLOR 7: PRINT q$;: COLOR 12: PRINT "]";: COLOR 3: PRINT " (empty = " + CHR$(34) + ") "
+PRINT
+COLOR 14: PRINT " Array: ";: COLOR 7: PRINT "LBOUND ="; LBOUND(a$), "UBOUND ="; UBOUND(a$)
+PRINT
+res& = ParseLine&(l$, s$, q$, a$(), 0)
+COLOR 15
+PRINT "result of function call (new UBOUND or -1 for nothing to parse):"
+PRINT "----------------------------------------------------------------"
+COLOR 14: PRINT "Result: ";: COLOR 7: PRINT res&
+PRINT
+IF res& > 0 THEN
+ COLOR 15
+ PRINT "array dump:"
+ PRINT "-----------"
+ FOR x& = LBOUND(a$) TO UBOUND(a$)
+ COLOR 14: PRINT "Index:";: COLOR 7: PRINT x&,
+ COLOR 14: PRINT "Content: ";: COLOR 12: PRINT "[";: COLOR 7: PRINT a$(x&);: COLOR 12: PRINT "]"; TAB(80);
+ COLOR 14: PRINT "Length:";: COLOR 7: PRINT LEN(a$(x&))
+ NEXT x&
+ PRINT
+END IF
+PRINT "press any key ...": SLEEP
+RETURN
+
+
+
+
+
+'--- Full description available in separate HTML document.
+'---------------------------------------------------------------------
+FUNCTION ParseLine& (inpLine$, sepChars$, quoChars$, outArray$(), minUB&)
+'--- option _explicit requirements ---
+DIM ilen&, icnt&, slen%, s1%, s2%, s3%, s4%, s5%, q1%, q2%
+DIM oalb&, oaub&, ocnt&, flag%, ch%, nest%, spos&, epos&
+'--- so far return nothing ---
+ParseLine& = -1
+'--- init & check some runtime variables ---
+ilen& = LEN(inpLine$): icnt& = 1
+IF ilen& = 0 THEN EXIT FUNCTION
+slen% = LEN(sepChars$)
+IF slen% > 0 THEN s1% = ASC(sepChars$, 1)
+IF slen% > 1 THEN s2% = ASC(sepChars$, 2)
+IF slen% > 2 THEN s3% = ASC(sepChars$, 3)
+IF slen% > 3 THEN s4% = ASC(sepChars$, 4)
+IF slen% > 4 THEN s5% = ASC(sepChars$, 5)
+IF slen% > 5 THEN slen% = 5 'max. 5 chars, ignore the rest
+IF LEN(quoChars$) > 0 THEN q1% = ASC(quoChars$, 1): ELSE q1% = 34
+IF LEN(quoChars$) > 1 THEN q2% = ASC(quoChars$, 2): ELSE q2% = q1%
+oalb& = LBOUND(outArray$): oaub& = UBOUND(outArray$): ocnt& = oalb&
+'--- skip preceding separators ---
+plSkipSepas:
+flag% = 0
+WHILE icnt& <= ilen& AND NOT flag%
+ ch% = ASC(inpLine$, icnt&)
+ SELECT CASE slen%
+ CASE 0: flag% = -1
+ CASE 1: flag% = ch% <> s1%
+ CASE 2: flag% = ch% <> s1% AND ch% <> s2%
+ CASE 3: flag% = ch% <> s1% AND ch% <> s2% AND ch% <> s3%
+ CASE 4: flag% = ch% <> s1% AND ch% <> s2% AND ch% <> s3% AND ch% <> s4%
+ CASE 5: flag% = ch% <> s1% AND ch% <> s2% AND ch% <> s3% AND ch% <> s4% AND ch% <> s5%
+ END SELECT
+ icnt& = icnt& + 1
+WEND
+IF NOT flag% THEN 'nothing else? - then exit
+ IF ocnt& > oalb& GOTO plEnd
+ EXIT FUNCTION
+END IF
+'--- redim to clear array on 1st word/component ---
+IF ocnt& = oalb& THEN REDIM outArray$(oalb& TO oaub&)
+'--- expand array, if required ---
+plNextWord:
+IF ocnt& > oaub& THEN
+ oaub& = oaub& + 10
+ REDIM _PRESERVE outArray$(oalb& TO oaub&)
+END IF
+'--- get current word/component until next separator ---
+flag% = 0: nest% = 0: spos& = icnt& - 1
+WHILE icnt& <= ilen& AND NOT flag%
+ IF ch% = q1% AND nest% = 0 THEN
+ nest% = 1
+ ELSEIF ch% = q1% AND nest% > 0 THEN
+ nest% = nest% + 1
+ ELSEIF ch% = q2% AND nest% > 0 THEN
+ nest% = nest% - 1
+ END IF
+ ch% = ASC(inpLine$, icnt&)
+ SELECT CASE slen%
+ CASE 0: flag% = (nest% = 0 AND (ch% = q1%)) OR (nest% = 1 AND ch% = q2%)
+ CASE 1: flag% = (nest% = 0 AND (ch% = s1% OR ch% = q1%)) OR (nest% = 1 AND ch% = q2%)
+ CASE 2: flag% = (nest% = 0 AND (ch% = s1% OR ch% = s2% OR ch% = q1%)) OR (nest% = 1 AND ch% = q2%)
+ CASE 3: flag% = (nest% = 0 AND (ch% = s1% OR ch% = s2% OR ch% = s3% OR ch% = q1%)) OR (nest% = 1 AND ch% = q2%)
+ CASE 4: flag% = (nest% = 0 AND (ch% = s1% OR ch% = s2% OR ch% = s3% OR ch% = s4% OR ch% = q1%)) OR (nest% = 1 AND ch% = q2%)
+ CASE 5: flag% = (nest% = 0 AND (ch% = s1% OR ch% = s2% OR ch% = s3% OR ch% = s4% OR ch% = s5% OR ch% = q1%)) OR (nest% = 1 AND ch% = q2%)
+ END SELECT
+ icnt& = icnt& + 1
+WEND
+epos& = icnt& - 1
+IF ASC(inpLine$, spos&) = q1% THEN spos& = spos& + 1
+outArray$(ocnt&) = MID$(inpLine$, spos&, epos& - spos&)
+ocnt& = ocnt& + 1
+'--- more words/components following? ---
+IF flag% AND ch% = q1% AND nest% = 0 GOTO plNextWord
+IF flag% GOTO plSkipSepas
+IF (ch% <> q1%) AND (ch% <> q2% OR nest% = 0) THEN outArray$(ocnt& - 1) = outArray$(ocnt& - 1) + CHR$(ch%)
+'--- final array size adjustment, then exit ---
+plEnd:
+IF ocnt& - 1 < minUB& THEN ocnt& = minUB& + 1
+REDIM _PRESERVE outArray$(oalb& TO (ocnt& - 1))
+ParseLine& = ocnt& - 1
+END FUNCTION
+
diff --git a/samples/parseline/src/parseline.zip b/samples/parseline/src/parseline.zip
new file mode 100644
index 00000000..8c77ed06
Binary files /dev/null and b/samples/parseline/src/parseline.zip differ
diff --git a/samples/parsing.md b/samples/parsing.md
new file mode 100644
index 00000000..4db935e2
--- /dev/null
+++ b/samples/parsing.md
@@ -0,0 +1,9 @@
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+
+## SAMPLES: PARSING
+
+**[ParseLine](parseline/index.md)**
+
+[🐝 Rho Sigma](rho-sigma.md) 🔗 [data management](data-management.md), [parsing](parsing.md)
+
+I guess every developer is sooner or later in need of such a parsing function: Doesn't matter if ...
diff --git a/samples/particle-fountain/index.md b/samples/particle-fountain/index.md
index 9241e6dc..2335478b 100644
--- a/samples/particle-fountain/index.md
+++ b/samples/particle-fountain/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: PARTICLE FOUNTAIN
diff --git a/samples/particles.md b/samples/particles.md
index 7116b525..d801bb0c 100644
--- a/samples/particles.md
+++ b/samples/particles.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: PARTICLES
diff --git a/samples/pattern-editor/index.md b/samples/pattern-editor/index.md
index b71c0283..508bb1a2 100644
--- a/samples/pattern-editor/index.md
+++ b/samples/pattern-editor/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: PATTERN EDITOR
diff --git a/samples/pattern.md b/samples/pattern.md
index 5ff01d8a..367704bc 100644
--- a/samples/pattern.md
+++ b/samples/pattern.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: PATTERN
diff --git a/samples/pattern/index.md b/samples/pattern/index.md
index 13da6dbb..156f9f61 100644
--- a/samples/pattern/index.md
+++ b/samples/pattern/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: PATTERN
@@ -16,16 +16,9 @@
'------------------------------------------------------------------------
```
-### QBjs
-
-> Please note that QBjs is still in early development and support for these examples is extremely experimental (meaning will most likely not work). With that out of the way, give it a try!
-
-* [LOAD "pattern.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?src=https://qb64.com/samples/pattern/src/pattern.bas)
-* [RUN "pattern.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?mode=auto&src=https://qb64.com/samples/pattern/src/pattern.bas)
-* [PLAY "pattern.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?mode=play&src=https://qb64.com/samples/pattern/src/pattern.bas)
-
### File(s)
* [pattern.bas](src/pattern.bas)
+* [pattern_orig.bas](src/pattern_orig.bas)
🔗 [screensaver](../screensaver.md), [9 lines](../9-lines.md)
diff --git a/samples/pattern/src/pattern_orig.bas b/samples/pattern/src/pattern_orig.bas
new file mode 100644
index 00000000..e9588484
--- /dev/null
+++ b/samples/pattern/src/pattern_orig.bas
@@ -0,0 +1,13 @@
+'patterns
+'for Rel's 9 LINER contest at QBASICNEWS.COM 1/2003
+'------------------------------------------------------------------------
+1 SCREEN 13
+2 t% = RND * 345
+3 WAIT &H3DA, 8
+4 FOR i% = 0 TO 199
+5 FOR j% = 0 TO 319
+6 k% = ((k% + t% XOR j% XOR i%)) AND &HFF
+7 PSET (j%, i%), k%
+8 NEXT j%, i%
+9 IF LEN(INKEY$) THEN END ELSE GOTO 2
+
diff --git a/samples/patz2009.md b/samples/patz2009.md
new file mode 100644
index 00000000..5a4f3a06
--- /dev/null
+++ b/samples/patz2009.md
@@ -0,0 +1,9 @@
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+
+## SAMPLES BY PATZ2009
+
+**[Screen Tester](screen-tester/index.md)**
+
+[🐝 patz2009](patz2009.md) 🔗 [graphics](graphics.md), [utility](utility.md), [legacy](legacy.md)
+
+' PQBC Screen Tester '-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-...
diff --git a/samples/paul-meyer.md b/samples/paul-meyer.md
index e0dba941..1d2d8333 100644
--- a/samples/paul-meyer.md
+++ b/samples/paul-meyer.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY PAUL MEYER
diff --git a/samples/paul-redling.md b/samples/paul-redling.md
index d8e6b971..d05e4fec 100644
--- a/samples/paul-redling.md
+++ b/samples/paul-redling.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY PAUL REDLING
diff --git a/samples/paulunknown.md b/samples/paulunknown.md
new file mode 100644
index 00000000..243fa333
--- /dev/null
+++ b/samples/paulunknown.md
@@ -0,0 +1,15 @@
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+
+## SAMPLES BY PAULUNKNOWN
+
+**[Square Counter](square-counter/index.md)**
+
+[🐝 Paulunknown](paulunknown.md) 🔗 [legacy](legacy.md)
+
+PRINT " This is a program used to count squares or rectangles for" PRINT " people who don't wa...
+
+**[Zodiac](zodiac/index.md)**
+
+[🐝 Paulunknown](paulunknown.md) 🔗 [game](game.md), [legacy](legacy.md)
+
+PRINT "Game created by Paulunknown" PRINT "Thanks for playing. Please give me some comments on th...
diff --git a/samples/pcluddite.md b/samples/pcluddite.md
index 49263f33..3a7ba5fe 100644
--- a/samples/pcluddite.md
+++ b/samples/pcluddite.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY PCLUDDITE
diff --git a/samples/pdf.md b/samples/pdf.md
index 983e997d..8b586090 100644
--- a/samples/pdf.md
+++ b/samples/pdf.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: PDF
diff --git a/samples/pendulum-double/index.md b/samples/pendulum-double/index.md
index 8063b424..6d05a6df 100644
--- a/samples/pendulum-double/index.md
+++ b/samples/pendulum-double/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: PENDULUM DOUBLE
diff --git a/samples/pendulum-game/index.md b/samples/pendulum-game/index.md
index dbbd915e..bf526121 100644
--- a/samples/pendulum-game/index.md
+++ b/samples/pendulum-game/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: PENDULUM GAME
diff --git a/samples/pendulum.md b/samples/pendulum.md
index d4d00e8a..06c07971 100644
--- a/samples/pendulum.md
+++ b/samples/pendulum.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: PENDULUM
diff --git a/samples/personal/index.md b/samples/personal/index.md
index 1deb2f1d..5699a7cc 100644
--- a/samples/personal/index.md
+++ b/samples/personal/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: PERSONAL
diff --git a/samples/petr.md b/samples/petr.md
index 618e6be0..086d3465 100644
--- a/samples/petr.md
+++ b/samples/petr.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY PETR
diff --git a/samples/philipp-strathausen.md b/samples/philipp-strathausen.md
index b3d1111c..1b183907 100644
--- a/samples/philipp-strathausen.md
+++ b/samples/philipp-strathausen.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY PHILIPP STRATHAUSEN
diff --git a/samples/phone/index.md b/samples/phone/index.md
index e896f84f..1e16cdb1 100644
--- a/samples/phone/index.md
+++ b/samples/phone/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: PHONE
diff --git a/samples/physics.md b/samples/physics.md
index 851968ee..be7bf469 100644
--- a/samples/physics.md
+++ b/samples/physics.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: PHYSICS
diff --git a/samples/pipes-puzzle/index.md b/samples/pipes-puzzle/index.md
index 0a8ae093..fac618a1 100644
--- a/samples/pipes-puzzle/index.md
+++ b/samples/pipes-puzzle/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: PIPES PUZZLE
diff --git a/samples/pixelplus/index.md b/samples/pixelplus/index.md
index 28bf9300..0463f30c 100644
--- a/samples/pixelplus/index.md
+++ b/samples/pixelplus/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: PIXELPLUS
diff --git a/samples/plasma-effect/index.md b/samples/plasma-effect/index.md
index b9dc09bc..9cb5535b 100644
--- a/samples/plasma-effect/index.md
+++ b/samples/plasma-effect/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: PLASMA EFFECT
diff --git a/samples/plasma-non-pal/index.md b/samples/plasma-non-pal/index.md
index 9cb2ecee..63899b21 100644
--- a/samples/plasma-non-pal/index.md
+++ b/samples/plasma-non-pal/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: PLASMA NON-PAL
diff --git a/samples/plasma-waves/img/screenshot.png b/samples/plasma-waves/img/screenshot.png
new file mode 100644
index 00000000..9fde14a1
Binary files /dev/null and b/samples/plasma-waves/img/screenshot.png differ
diff --git a/samples/plasma-waves/index.md b/samples/plasma-waves/index.md
new file mode 100644
index 00000000..da06ba67
--- /dev/null
+++ b/samples/plasma-waves/index.md
@@ -0,0 +1,32 @@
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+
+## SAMPLE: PLASMA WAVES
+
+![screenshot.png](img/screenshot.png)
+
+### Description
+
+```text
+'Wavy with Plama.bas for QB64 fork (B+=MGA) 2017-05-05
+' Wavy with Plasma Treatment.bas SmallBASIC 0.12.9 (B+=MGA) 2017-05-03
+' from: animated circles started by Admin at SdlBasic 2017-05-03
+' I added Plasma treatment and spacebar changer
+Oh, I guess I was experimenting with circle drawing here too.
+```
+
+### QBjs
+
+> Please note that QBjs is still in early development and support for these examples is extremely experimental (meaning will most likely not work). With that out of the way, give it a try!
+
+* [LOAD "plasmawaves.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?src=https://qb64.com/samples/plasma-waves/src/plasmawaves.bas)
+* [RUN "plasmawaves.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?mode=auto&src=https://qb64.com/samples/plasma-waves/src/plasmawaves.bas)
+* [PLAY "plasmawaves.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?mode=play&src=https://qb64.com/samples/plasma-waves/src/plasmawaves.bas)
+
+### File(s)
+
+* [plasmawaves.bas](src/plasmawaves.bas)
+
+🔗 [screensaver](../screensaver.md), [plasma](../plasma.md)
+
+
+Reference: [qb64forum](https://qb64forum.alephc.xyz/index.php?topic=27.0)
diff --git a/samples/plasma-waves/src/plasmawaves.bas b/samples/plasma-waves/src/plasmawaves.bas
new file mode 100644
index 00000000..25cb6a81
--- /dev/null
+++ b/samples/plasma-waves/src/plasmawaves.bas
@@ -0,0 +1,95 @@
+'Wavy with Plama.bas for QB64 fork (B+=MGA) 2017-05-05
+' Wavy with Plasma Treatment.bas SmallBASIC 0.12.9 (B+=MGA) 2017-05-03
+' from: animated circles started by Admin at SdlBasic 2017-05-03
+' I added Plasma treatment and spacebar changer
+
+
+'===================================================================
+
+' Instructions: press spacebar for new injection of plasma
+
+'==================================================================
+
+Randomize Timer
+Const sqr12! = .5 ^ .5
+Const xmax = 1100
+Const ymax = 700
+Const DPI = 3.141516 * 2
+Const PHIDELTA = DPI / 15
+Const PHISTEP = DPI / 50
+Const RADIUS = 20
+Const SMALL_R = 20
+Const DISTANCE = 23
+Const W = xmax
+Const H = ymax
+
+Screen _NewImage(xmax, ymax, 32)
+_Title "Wavy with Plasma trans by bplus, Press Spacebar for New Plasma Injection."
+Dim Shared cN As Double
+Dim Shared pR, pG, pB As Integer
+Dim x, y, xball, yball As Integer
+Dim current_phi, phiIndex, phi As Double
+current_phi = 0
+cN = 1
+resetPlasma
+While 1
+ Cls
+ _Limit 10
+ If _KeyHit = 32 Then cN = 1: resetPlasma
+ current_phi = current_phi + PHISTEP
+ For x = 0 To (W + RADIUS) Step DISTANCE
+ For y = 0 To (H + RADIUS) Step DISTANCE
+ 'COLOR _RGB(120, 80, 80)
+ 'CIRCLE (x, y), RADIUS
+ phiIndex = ((x + y) Mod (2 * W)) / RADIUS
+ phi = phiIndex * PHIDELTA + current_phi
+ xball = Cos(phi) * RADIUS + x
+ yball = Sin(phi) * RADIUS + y
+ changePlasma
+ 'LINE (x, y)-(xball, yball)
+ fcirc2 xball, yball, SMALL_R
+ Next
+ Next
+ _Display
+Wend
+
+Sub changePlasma ()
+ cN = cN + 1
+ Color _RGB(127 + 127 * Sin(pR * cN), 127 + 127 * Sin(pG * cN), 127 + 127 * Sin(pB * cN))
+End Sub
+
+Sub resetPlasma ()
+ pR = Rnd ^ 2: pG = Rnd ^ 2: pB = Rnd ^ 2
+End Sub
+
+'========================================== sqrSeg Method for filled circle
+Sub fcirc2 (xx%, yy%, r%)
+ 'const sqr12! = .5^.5 'in main const section
+ r2% = r% * r%
+ sqr12r% = sqr12! * r%
+ Line (xx% - sqr12r%, yy% - sqr12r%)-(xx% + sqr12r%, yy% + sqr12r%), , BF
+ For x% = 0 To sqr12r%
+ y% = Sqr(r2% - x% * x%)
+ Line (xx% - x%, yy% + sqr12r%)-(xx% - x%, yy% + y%)
+ Line (xx% - x%, yy% - sqr12r%)-(xx% - x%, yy% - y%)
+ Line (xx% + x%, yy% + sqr12r%)-(xx% + x%, yy% + y%)
+ Line (xx% + x%, yy% - sqr12r%)-(xx% + x%, yy% - y%)
+ Next
+ For x% = sqr12r% To r%
+ y% = Sqr(r2% - x% * x%)
+ Line (xx% - x%, yy% + y%)-(xx% - x%, yy% - y%)
+ Line (xx% + x%, yy% + y%)-(xx% + x%, yy% - y%)
+ Next
+End Sub
+
+Sub fcirc (xx%, yy%, r%)
+ r2% = r% * r%
+ For x% = 0 To r%
+ y% = Int(Sqr(r2% - x% * x%))
+ Line (xx% - x%, yy% + y%)-(xx% - x%, yy% - y%)
+ Line (xx% + x%, yy% + y%)-(xx% + x%, yy% - y%)
+ Next
+End Sub
+
+
+
diff --git a/samples/plasma.md b/samples/plasma.md
index 815713a5..4b366d0f 100644
--- a/samples/plasma.md
+++ b/samples/plasma.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: PLASMA
@@ -13,3 +13,9 @@ Use the left mousebutton to draw a line, change color with the right mousebutton
[🐝 Relsoft](relsoft.md) 🔗 [screensaver](screensaver.md), [plasma](plasma.md)
'///Non Palette rotated plasma '///Relsoft 2003 '///Compile and see the speed. Didn't optimize i...
+
+**[Plasma Waves](plasma-waves/index.md)**
+
+[🐝 *missing*](author-missing.md) 🔗 [screensaver](screensaver.md), [plasma](plasma.md)
+
+'Wavy with Plama.bas for QB64 fork (B+=MGA) 2017-05-05 ' Wavy with Plasma Treatment.bas SmallBASI...
diff --git a/samples/platform.md b/samples/platform.md
index a489b6c6..e1a406ba 100644
--- a/samples/platform.md
+++ b/samples/platform.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: PLATFORM
diff --git a/samples/platform/index.md b/samples/platform/index.md
index 22908664..8f1a194b 100644
--- a/samples/platform/index.md
+++ b/samples/platform/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: PLATFORM
diff --git a/samples/platformer.md b/samples/platformer.md
index f0a92104..6755b3be 100644
--- a/samples/platformer.md
+++ b/samples/platformer.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: PLATFORMER
diff --git a/samples/plumeria/index.md b/samples/plumeria/index.md
index c80b4414..03ed3331 100644
--- a/samples/plumeria/index.md
+++ b/samples/plumeria/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: PLUMERIA
@@ -26,4 +26,4 @@ Plumeria demo by Vince.
* [plumeria.bas](src/plumeria.bas)
-🔗 [2d](../2d.md), [graphics](../graphics.md)
+🔗 [2d](../2d.md), [graphics](../graphics.md), [qbjs](../qbjs.md)
diff --git a/samples/pmg.md b/samples/pmg.md
index 9c093522..bf672cb7 100644
--- a/samples/pmg.md
+++ b/samples/pmg.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY PMG
diff --git a/samples/pong-bj/img/screenshot.png b/samples/pong-bj/img/screenshot.png
new file mode 100644
index 00000000..659c2d79
Binary files /dev/null and b/samples/pong-bj/img/screenshot.png differ
diff --git a/samples/pong-bj/index.md b/samples/pong-bj/index.md
new file mode 100644
index 00000000..efd2edd2
--- /dev/null
+++ b/samples/pong-bj/index.md
@@ -0,0 +1,31 @@
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+
+## SAMPLE: PONG BJ
+
+![screenshot.png](img/screenshot.png)
+
+### Author
+
+[🐝 bj mccann](../bj-mccann.md)
+
+### Description
+
+```text
+PRINT "PONG CLONE"
+PRINT " "
+PRINT " programed by bj mccann"
+```
+
+### QBjs
+
+> Please note that QBjs is still in early development and support for these examples is extremely experimental (meaning will most likely not work). With that out of the way, give it a try!
+
+* [LOAD "pongsource.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?src=https://qb64.com/samples/pong-bj/src/pongsource.bas)
+* [RUN "pongsource.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?mode=auto&src=https://qb64.com/samples/pong-bj/src/pongsource.bas)
+* [PLAY "pongsource.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?mode=play&src=https://qb64.com/samples/pong-bj/src/pongsource.bas)
+
+### File(s)
+
+* [pongsource.bas](src/pongsource.bas)
+
+🔗 [game](../game.md), [pong](../pong.md), [legacy](../legacy.md)
diff --git a/samples/pong-bj/src/pongsource.bas b/samples/pong-bj/src/pongsource.bas
new file mode 100644
index 00000000..d038b55c
--- /dev/null
+++ b/samples/pong-bj/src/pongsource.bas
@@ -0,0 +1,230 @@
+WIDTH 80, 50
+
+GOTO menu
+rt:
+CLS
+SCREEN 7
+LINE (20, 20)-(300, 180), 1, B
+LINE (10, 10)-(310, 190), 1, B
+PAINT (12, 12), 1
+LINE (20, 20)-(300, 180), 9, B
+LINE (10, 10)-(310, 190), 9, B
+LINE (23, 7)-(48, 16), 9, B
+LINE (296, 7)-(271, 16), 9, B
+COLOR 9
+LOCATE 2, 4
+PRINT win
+LOCATE 2, 35
+PRINT lose
+blx = 50: ppx = 50: ppxx = 50: zim = 164:
+bly = 21: mbx = 1: mby = 1: ppy = 22: PPYY = 52
+amy = 0: amyy = 0: ay = 41: ayy = 51: ax = 36
+ti = 0
+iat = 1
+COLOR 9
+'-------------start location randomizer for ball
+rerand:
+RANDOMIZE TIMER
+ballloc = INT(RND * 4) + 1
+IF ballloc = 1 THEN GOTO location1
+IF ballloc = 2 THEN GOTO location2
+IF ballloc = 3 THEN GOTO location3
+IF ballloc = 4 THEN GOTO location4
+locre:
+'-----------main loop
+SLEEP 1
+DO
+PSET (50, 20), 9'-------------wall repair thing
+pm = ppy + 25
+LINE (ppx, ppy - 1)-(ppxx, PPYY + 1), 0, BF 'player erase
+
+SELECT CASE INKEY$'-----------player control start
+CASE CHR$(0) + CHR$(80)
+IF PPYY = 178 THEN GOTO ppymm
+ppy = ppy + 1
+PPYY = PPYY + 1
+ppymm:
+CASE CHR$(0) + CHR$(72)
+IF ppy = 22 THEN GOTO ppym
+ppy = ppy - 1
+PPYY = PPYY - 1
+ppym:
+CASE CHR$(27)
+END
+END SELECT'---------player control end
+
+PSET (blx, bly), 0 '--------ball erase
+'-------------------------ball colision detection
+IF blx = 299 THEN mbx = -1
+IF blx = 21 THEN mbx = 1
+IF bly = 21 THEN mby = 1
+IF bly = 179 THEN mby = -1
+'----------------------------SCORE KEEPING
+IF blx > 279 AND bly < ax - 15 THEN win = win + 1
+IF blx > 279 AND bly < ax - 15 THEN GOTO rt
+IF blx > 279 AND bly > ax + 15 THEN win = win + 1
+IF blx > 279 AND bly > ax + 15 THEN GOTO rt
+'---------------------------------------------------winning and losing
+IF blx < 50 AND bly > ppy THEN lose = lose + 1
+IF blx < 50 AND bly > ppy THEN GOTO rt
+IF blx < 50 AND bly < PPYY THEN lose = lose + 1
+IF blx < 50 AND bly < PPYY THEN GOTO rt
+IF lose = 5 THEN GOTO losegame
+bstt = 0
+IF win = 5 THEN GOTO wingame
+'----------------------------ball padle colision detection
+IF blx = 50 GOTO ppm
+GOTO sm
+ppm:
+IF bly > ppy AND bly < PPYY THEN mbx = 1
+sm:
+IF blx = 269 THEN GOTO ppmm
+GOTO ms
+ppmm:
+IF bly < ax + 15 AND bly > ax - 15 THEN mbx = -1
+ms:
+'---------------ball movement
+blx = blx + mbx
+samy = samy + 1
+IF samy = 1 THEN bly = bly + mby
+IF samy = 1 THEN samy = 0
+PSET (blx, bly), 15'-----------balldrawer
+
+LINE (ppx, ppy - 1)-(ppxx, PPYY + 1), 15'------player padle drawer
+
+'----------------------------------------------timing loop
+DO
+ti = ti + 1
+LOOP UNTIL ti = gspeed
+ti = 0
+'-----------------------score display
+LOCATE 2, 4
+PRINT win
+LOCATE 2, 35
+PRINT lose
+'------------ai goto
+ait = ait + 1
+IF ait = 1 THEN GOTO ai
+backai:
+ita = 0
+LOOP
+'--------------loop end
+ai: '---------------------AI
+sam = sam + 1
+LINE (270, ax + 15)-(270, ax - 15), 0
+IF sam < 0 THEN GOTO missera
+
+IF ax - 14 < bly THEN amy = 1
+IF ax + 14 > bly THEN amy = -1
+IF ax = 164 THEN amy = -1
+IF ax = 36 THEN amy = 1
+
+IF sam = 2 THEN ax = ax + amy
+missera:
+IF sam = 2 THEN sam = 0
+LINE (270, ax + 15)-(270, ax - 15), 15
+ait = 0
+GOTO backai
+'------------------------------
+losegame:
+SLEEP 1
+CLS
+LOCATE 11, 19
+PRINT "you lose"
+SLEEP 2
+END
+
+wingame:
+SLEEP 1
+CLS
+LOCATE 11, 19
+PRINT "you win"
+SLEEP 2
+END
+
+location1:
+blx = 50
+bly = 21
+mbx = 1
+mby = 1
+GOTO locre
+
+location2:
+blx = 50
+bly = 171
+mby = -1
+mbx = 1
+GOTO locre
+
+location3:
+blx = 268
+bly = 21
+mbx = -1
+mby = 1
+GOTO locre
+
+location4:
+blx = 268
+bly = 171
+mbx = -1
+mby = -1
+GOTO locre
+
+menu:
+CLS
+dotloc = 24
+gspeed = 30000
+dotloc = 24
+menub:
+COLOR 9
+LOCATE 19, 35
+PRINT "PONG CLONE"
+PRINT " "
+PRINT " programed by bj mccann"
+PRINT
+PRINT
+PRINT " START"
+PRINT
+PRINT " CONTROLS"
+PRINT
+PRINT " CHANGE SPEED "
+PRINT
+PRINT " EXIT"
+COLOR 1
+DO
+LOCATE dotloc, 35
+PRINT " "
+SELECT CASE INKEY$
+'CASE CHR$(27)
+'END
+CASE CHR$(0) + CHR$(72)
+IF dotloc > 24 THEN dotloc = dotloc - 2
+CASE CHR$(0) + CHR$(80)
+IF dotloc < 30 THEN dotloc = dotloc + 2
+CASE CHR$(0) + CHR$(77)
+IF dotloc = 24 THEN GOTO rt
+IF dotloc = 26 THEN GOTO controls
+IF dotloc = 28 THEN GOTO speed
+IF dotloc = 30 THEN END
+END SELECT
+LOCATE dotloc, 35
+PRINT "*"
+LOOP
+
+controls:
+CLS
+LOCATE 19, 25
+PRINT "to move the paddle up press the up arrow."
+PRINT " to move the paddle down press down."
+PRINT " to return to the menu press escape"
+SLEEP 5
+GOTO menu
+
+speed:
+CLS
+LOCATE 19, 25
+PRINT "normal speed is 30000 the lower the number the faster the game runs"
+INPUT gspeed
+CLS
+GOTO menub
+
diff --git a/samples/pong-tennis/index.md b/samples/pong-tennis/index.md
index 99266036..160c9324 100644
--- a/samples/pong-tennis/index.md
+++ b/samples/pong-tennis/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: PONG TENNIS
diff --git a/samples/pong.md b/samples/pong.md
index e29006bd..e677c2a8 100644
--- a/samples/pong.md
+++ b/samples/pong.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: PONG
@@ -26,6 +26,12 @@ Darpong author: darokin - Adrien Rebuzzi e-mail : darokin@infonie.fr Dar
Four-player pong game.
+**[Pong BJ](pong-bj/index.md)**
+
+[🐝 bj mccann](bj-mccann.md) 🔗 [game](game.md), [pong](pong.md), [legacy](legacy.md)
+
+PRINT "PONG CLONE" PRINT " " PRINT " programed by bj mccann"
+
**[Pong Tennis](pong-tennis/index.md)**
[🐝 Alex Beighton](alex-beighton.md) 🔗 [game](game.md), [pong](pong.md), [legacy](legacy.md)
diff --git a/samples/pull-down-menu/index.md b/samples/pull-down-menu/index.md
index c3358941..3b34a942 100644
--- a/samples/pull-down-menu/index.md
+++ b/samples/pull-down-menu/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: PULL-DOWN MENU
diff --git a/samples/puzzle.md b/samples/puzzle.md
index d5e3e024..3e42608a 100644
--- a/samples/puzzle.md
+++ b/samples/puzzle.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: PUZZLE
diff --git a/samples/pyrus.md b/samples/pyrus.md
index b959fe4b..471d86a1 100644
--- a/samples/pyrus.md
+++ b/samples/pyrus.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY PYRUS
diff --git a/samples/qb-clock/index.md b/samples/qb-clock/index.md
index 714e184e..9aafa035 100644
--- a/samples/qb-clock/index.md
+++ b/samples/qb-clock/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: QB CLOCK
diff --git a/samples/qb-nventory/index.md b/samples/qb-nventory/index.md
index 805ceb25..ce0195fc 100644
--- a/samples/qb-nventory/index.md
+++ b/samples/qb-nventory/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: QB-NVENTORY
diff --git a/samples/qb-tank-commander/index.md b/samples/qb-tank-commander/index.md
index e328d8b2..7229b67a 100644
--- a/samples/qb-tank-commander/index.md
+++ b/samples/qb-tank-commander/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: QB TANK COMMANDER
diff --git a/samples/qb64-team-2018.md b/samples/qb64-team-2018.md
index 67c3bced..6cfafd7f 100644
--- a/samples/qb64-team-2018.md
+++ b/samples/qb64-team-2018.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY QB64 TEAM 2018
diff --git a/samples/qbascii/index.md b/samples/qbascii/index.md
index cbf7f6b8..3e0e8e04 100644
--- a/samples/qbascii/index.md
+++ b/samples/qbascii/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: QBASCII
diff --git a/samples/qbfreak2000.md b/samples/qbfreak2000.md
index 1ce8768c..72cfc047 100644
--- a/samples/qbfreak2000.md
+++ b/samples/qbfreak2000.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY QBFREAK2000
diff --git a/samples/qbguy.md b/samples/qbguy.md
index 245da0e7..f1f512a5 100644
--- a/samples/qbguy.md
+++ b/samples/qbguy.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY QBGUY
diff --git a/samples/qbjs.md b/samples/qbjs.md
index b63a8fdb..a7eade1b 100644
--- a/samples/qbjs.md
+++ b/samples/qbjs.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: QBJS
@@ -8,6 +8,18 @@
Waving American Flag demo by Vince.
+**[Chaotic Scattering](chaotic-scattering/index.md)**
+
+[🐝 vince](vince.md) 🔗 [ray tracing](ray-tracing.md), [reflections](reflections.md), [qbjs](qbjs.md)
+
+Demo of the Gaspard-Rice system. Left-click to change location.
+
+**[Plumeria](plumeria/index.md)**
+
+[🐝 Vince](vince.md) 🔗 [2d](2d.md), [graphics](graphics.md), [qbjs](qbjs.md)
+
+Plumeria demo by Vince.
+
**[Tile Demo](tile-demo/index.md)**
[🐝 Greg Ennen](greg-ennen.md) 🔗 [tile](tile.md), [dos world](dos-world.md), [qbjs](qbjs.md)
diff --git a/samples/qblocks/index.md b/samples/qblocks/index.md
index d433bd2d..99ead8fb 100644
--- a/samples/qblocks/index.md
+++ b/samples/qblocks/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: QBLOCKS
diff --git a/samples/qbricks/index.md b/samples/qbricks/index.md
index bf6fa521..60dc86c2 100644
--- a/samples/qbricks/index.md
+++ b/samples/qbricks/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: QBRICKS
diff --git a/samples/qbrnd/index.md b/samples/qbrnd/index.md
index e865b368..5e101d1c 100644
--- a/samples/qbrnd/index.md
+++ b/samples/qbrnd/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: QBRND
diff --git a/samples/qcards/index.md b/samples/qcards/index.md
index 9b2ebb10..19d2508d 100644
--- a/samples/qcards/index.md
+++ b/samples/qcards/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: QCARDS
diff --git a/samples/qdigger/index.md b/samples/qdigger/index.md
index 7cb9ad2e..e5fa9456 100644
--- a/samples/qdigger/index.md
+++ b/samples/qdigger/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: QDIGGER
diff --git a/samples/qmaze/index.md b/samples/qmaze/index.md
index eb6f4180..f1694417 100644
--- a/samples/qmaze/index.md
+++ b/samples/qmaze/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: QMAZE
diff --git a/samples/qships/index.md b/samples/qships/index.md
index 9e899be4..65766fce 100644
--- a/samples/qships/index.md
+++ b/samples/qships/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: QSHIPS
diff --git a/samples/qspace/index.md b/samples/qspace/index.md
index edc20b0f..6577d08d 100644
--- a/samples/qspace/index.md
+++ b/samples/qspace/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: QSPACE
diff --git a/samples/qsynth/index.md b/samples/qsynth/index.md
index d2934ae6..e7952cd4 100644
--- a/samples/qsynth/index.md
+++ b/samples/qsynth/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: QSYNTH
diff --git a/samples/qtrek/index.md b/samples/qtrek/index.md
index 1f3f9a7f..253779fa 100644
--- a/samples/qtrek/index.md
+++ b/samples/qtrek/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: QTREK
diff --git a/samples/quitbox/img/screenshot.png b/samples/quitbox/img/screenshot.png
new file mode 100644
index 00000000..b95acafc
Binary files /dev/null and b/samples/quitbox/img/screenshot.png differ
diff --git a/samples/quitbox/index.md b/samples/quitbox/index.md
new file mode 100644
index 00000000..a293a176
--- /dev/null
+++ b/samples/quitbox/index.md
@@ -0,0 +1,34 @@
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+
+## SAMPLE: QUITBOX
+
+![screenshot.png](img/screenshot.png)
+
+### Author
+
+[🐝 eoredson](../eoredson.md)
+
+### Description
+
+```text
+I am working on a project (can't tell you what it is yet) and have decided to draw my own boxes (MessageBox, InputBox, etc.)
+
+So, here is a sample of a QuitBox:
+```
+
+### QBjs
+
+> Please note that QBjs is still in early development and support for these examples is extremely experimental (meaning will most likely not work). With that out of the way, give it a try!
+
+* [LOAD "quitbox.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?src=https://qb64.com/samples/quitbox/src/quitbox.bas)
+* [RUN "quitbox.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?mode=auto&src=https://qb64.com/samples/quitbox/src/quitbox.bas)
+* [PLAY "quitbox.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?mode=play&src=https://qb64.com/samples/quitbox/src/quitbox.bas)
+
+### File(s)
+
+* [quitbox.bas](src/quitbox.bas)
+
+🔗 [tui](../tui.md)
+
+
+Reference: [qb64forum](https://qb64forum.alephc.xyz/index.php?topic=41.0)
diff --git a/samples/quitbox/src/quitbox.bas b/samples/quitbox/src/quitbox.bas
new file mode 100644
index 00000000..eaf8a949
--- /dev/null
+++ b/samples/quitbox/src/quitbox.bas
@@ -0,0 +1,523 @@
+Rem Sample of a QuitBox. v1.1a PD 2017. -ejo
+
+' declare screen save arrays
+Dim Shared TempArrayY(1 To 2000) As Integer
+Dim Shared TempArrayZ(1 To 2000) As Integer
+
+' declare box coordinates
+Dim Shared Xcoor3 As Integer, Ycoor3 As Integer
+
+' declare mouse variables
+Dim Shared MouseX As Integer, MouseY As Integer
+Dim Shared MouseButton1 As Integer, MouseButton2 As Integer
+Dim Shared MouseButton3 As Integer, MouseWheel As Integer
+Dim Shared MousePressed As Integer
+
+' declare box colors
+Dim Shared QuitBoxBorderColor As Integer
+Dim Shared QuitBoxTitleColor As Integer
+Dim Shared QuitBoxTextColor As Integer
+Dim Shared QuitBoxButton1Color As Integer
+Dim Shared QuitBoxButton2Color As Integer
+Dim Shared QuitBoxBackGround As Integer
+Dim Shared QuitBoxButtonBackGround As Integer
+
+' declare ascii variables
+Dim Shared Hline As Integer, Vline As Integer
+Dim Shared ULcorner As Integer, URcorner As Integer
+Dim Shared LLcorner As Integer, LRcorner As Integer
+
+' declare color constants
+Const Black = 0
+Const Blue = 1
+Const Green = 2
+Const Cyan = 3
+Const Red = 4
+Const Magenta = 5
+Const Brown = 6
+Const White = 7
+Const Gray = 8
+Const LightBlue = 9
+Const LightGreen = 10
+Const LightCyan = 11
+Const LightRed = 12
+Const LightMagenta = 13
+Const Yellow = 14
+Const HighWhite = 15
+
+' set box colors
+QuitBoxBorderColor = Yellow
+QuitBoxTitleColor = HighWhite
+QuitBoxTextColor = HighWhite
+QuitBoxButton1Color = HighWhite
+QuitBoxButton2Color = White
+QuitBoxBackGround = Blue
+QuitBoxButtonBackGround = Black
+
+' set ascii characters
+Hline = 205
+Vline = 186
+ULcorner = 201
+URcorner = 187
+LLcorner = 200
+LRcorner = 188
+
+' declare box coordinates.
+Xcoor3 = 10
+Ycoor3 = 10
+
+' set box button constants
+Const OKcancel = 1
+Const OK = 2
+Const cancel = 3
+
+' start input loop
+Cls
+Print "Quitbox:"
+Do
+ Color Yellow, Black
+ Print "Enter HELP or QUIT or TEST";
+ Color HighWhite, Black
+ Input X$
+ X$ = UCase$(X$)
+ If X$ = "QUIT" Then End
+ If X$ = "HELP" Then
+ Color HighWhite, Black
+ Print "Mouse: Click on or "
+ Print " Click on title, drag box."
+ Print "Keyboard: Enter for OK/Cancel, Escape to cancel,"
+ Print " Cursor left/right, tab/shift-tab to select button,"
+ Print " Control- to move box."
+ Print " Alt- to move box 4 chars."
+ Print "Colors: Ctrl-A Cycle box background, Ctrl-B Cycle button background,"
+ Print " Ctrl-D Cycle border, Ctrl-E Cycle title, Ctrl-F Cycle text,"
+ Print " Ctrl-G Cycle OK button, Ctrl-H Cycle Cancel button."
+ End If
+ If X$ = "TEST" Then
+ X = QuitBox(OKcancel, " Quit ", "Quit. Are you sure?")
+ If X Then
+ Print "Entered OK"
+ Else
+ Print "Entered Cancel"
+ End If
+ End If
+Loop
+End
+
+' Input: Buttons
+' 1 = both buttons, 2 = ok, 3 = cancel
+Function QuitBox (Buttons, QuitBoxTitle$, QuitBoxText$)
+ ' store screen area.
+ CurrentX = CsrLin
+ CurrentY = Pos(0)
+ Call SaveScreen
+
+ ' reset mouse buttons
+ MouseButton1 = 0
+ MouseButton2 = 0
+ MouseButton3 = 0
+ X = ClearMouse
+
+ ' draw box
+ If Buttons = 1 Or Buttons = 2 Then
+ BoxButton = 1
+ Else
+ BoxButton = 2
+ End If
+ GoSub DrawQuitBox
+
+ ' wait for keypress or mouse
+ _KeyClear
+ Do
+ _Limit 30
+ X$ = InKey$
+ If Len(X$) Then
+ Select Case Len(X$)
+ Case 1
+ Select Case UCase$(X$)
+ Case "O"
+ If Buttons = 1 Or Buttons = 2 Then
+ BoxButton = 1
+ Exit Do
+ End If
+ Case "C"
+ If Buttons = 1 Or Buttons = 3 Then
+ BoxButton = 2
+ Exit Do
+ End If
+ Case Chr$(13)
+ Exit Do
+ Case Chr$(27)
+ BoxButton = 2
+ Exit Do
+ Case Chr$(9) ' tab
+ If BoxButton = 1 Then
+ If Buttons = 1 Then
+ BoxButton = 2
+ GoSub DrawQuitBoxButtons
+ End If
+ Else
+ If Buttons = 1 Then
+ BoxButton = 1
+ GoSub DrawQuitBoxButtons
+ End If
+ End If
+ Case Chr$(1) ' ctrl-a
+ QuitBoxBackGround = QuitBoxBackGround + 1
+ If QuitBoxBackGround = 8 Then
+ QuitBoxBackGround = 0
+ End If
+ GoSub DrawQuitBox
+ Case Chr$(2) ' ctrl-b
+ QuitBoxButtonBackGround = QuitBoxButtonBackGround + 1
+ If QuitBoxButtonBackGround = 8 Then
+ QuitBoxButtonBackGround = 0
+ End If
+ GoSub DrawQuitBox
+ Case Chr$(4) ' ctrl-d
+ QuitBoxBorderColor = QuitBoxBorderColor + 1
+ If QuitBoxBorderColor = 16 Then
+ QuitBoxBorderColor = 0
+ End If
+ GoSub DrawQuitBox
+ Case Chr$(5) ' ctrl-e
+ QuitBoxTitleColor = QuitBoxTitleColor + 1
+ If QuitBoxTitleColor = 16 Then
+ QuitBoxTitleColor = 0
+ End If
+ GoSub DrawQuitBox
+ Case Chr$(6) ' ctrl-f
+ QuitBoxTextColor = QuitBoxTextColor + 1
+ If QuitBoxTextColor = 16 Then
+ QuitBoxTextColor = 0
+ End If
+ GoSub DrawQuitBox
+ Case Chr$(7) ' ctrl-g
+ QuitBoxButton1Color = QuitBoxButton1Color + 1
+ If QuitBoxButton1Color = 16 Then
+ QuitBoxButton1Color = 0
+ End If
+ GoSub DrawQuitBox
+ Case Chr$(8) ' ctrl-h
+ QuitBoxButton2Color = QuitBoxButton2Color + 1
+ If QuitBoxButton2Color = 16 Then
+ QuitBoxButton2Color = 0
+ End If
+ GoSub DrawQuitBox
+ End Select
+ Case 2
+ Select Case Asc(Right$(X$, 1))
+ Case 75, 15 ' left/shift-tab
+ If BoxButton = 2 Then
+ If Buttons = 1 Then
+ BoxButton = 1
+ GoSub DrawQuitBoxButtons
+ End If
+ Else
+ If Buttons = 1 Then
+ BoxButton = 2
+ GoSub DrawQuitBoxButtons
+ End If
+ End If
+ Case 77 ' right
+ If BoxButton = 1 Then
+ If Buttons = 1 Then
+ BoxButton = 2
+ GoSub DrawQuitBoxButtons
+ End If
+ Else
+ If Buttons = 1 Then
+ BoxButton = 1
+ GoSub DrawQuitBoxButtons
+ End If
+ End If
+ Case 141 ' ctrl-up
+ If Xcoor3 > 1 Then
+ Xcoor3 = Xcoor3 - 1
+ Call RestoreScreen
+ GoSub DrawQuitBox
+ End If
+ _KeyClear
+ Case 145 ' ctrl-down
+ If Xcoor3 < 18 Then
+ Xcoor3 = Xcoor3 + 1
+ Call RestoreScreen
+ GoSub DrawQuitBox
+ End If
+ _KeyClear
+ Case 115 ' ctrl-left
+ If Ycoor3 > 1 Then
+ Ycoor3 = Ycoor3 - 1
+ Call RestoreScreen
+ GoSub DrawQuitBox
+ End If
+ _KeyClear
+ Case 116 ' ctrl-right
+ If Ycoor3 < 49 Then
+ Ycoor3 = Ycoor3 + 1
+ Call RestoreScreen
+ GoSub DrawQuitBox
+ End If
+ _KeyClear
+ Case 152 ' alt-up
+ If Xcoor3 > 4 Then
+ Xcoor3 = Xcoor3 - 4
+ Call RestoreScreen
+ GoSub DrawQuitBox
+ Else
+ If Xcoor3 > 1 Then
+ Xcoor3 = 1
+ Call RestoreScreen
+ GoSub DrawQuitBox
+ End If
+ End If
+ _KeyClear
+ Case 160 ' alt-dn
+ If Xcoor3 < 14 Then
+ Xcoor3 = Xcoor3 + 4
+ Call RestoreScreen
+ GoSub DrawQuitBox
+ Else
+ If Xcoor3 < 18 Then
+ Xcoor3 = 18
+ Call RestoreScreen
+ GoSub DrawQuitBox
+ End If
+ End If
+ _KeyClear
+ Case 155 ' alt-left
+ If Ycoor3 > 4 Then
+ Ycoor3 = Ycoor3 - 4
+ Call RestoreScreen
+ GoSub DrawQuitBox
+ Else
+ If Ycoor3 > 1 Then
+ Ycoor3 = 1
+ Call RestoreScreen
+ GoSub DrawQuitBox
+ End If
+ End If
+ _KeyClear
+ Case 157 ' alt-right
+ If Ycoor3 < 45 Then
+ Ycoor3 = Ycoor3 + 4
+ Call RestoreScreen
+ GoSub DrawQuitBox
+ Else
+ If Ycoor3 < 49 Then
+ Ycoor3 = 49
+ Call RestoreScreen
+ GoSub DrawQuitBox
+ End If
+ End If
+ _KeyClear
+ End Select
+ End Select
+ End If
+ X = MouseDriver
+ If MouseButton1 Then
+ ' hover over titlebar
+ If MouseX = Xcoor3 Then
+ If MouseY >= Ycoor3 And MouseY <= Ycoor3 + 31 Then
+ ' store mouse XY during click
+ MouseTempX = MouseX
+ MouseTempY = MouseY
+ Do
+ X = MouseDriver
+ If MouseX Or MouseY Then ' drag
+ MoveBox = 0
+ ' difference in mouse X
+ If MouseX <> MouseTempX Then
+ If MouseX >= 1 And MouseX <= 18 Then
+ Xcoor3 = MouseX
+ MouseTempX = MouseX
+ MoveBox = -1
+ End If
+ End If
+ ' difference in mouse Y
+ If MouseY <> MouseTempY Then
+ MoveY = Ycoor3 + (MouseY - MouseTempY)
+ If MoveY >= 1 And MoveY <= 49 Then
+ Ycoor3 = MoveY
+ MouseTempY = MouseY
+ MoveBox = -1
+ End If
+ End If
+ ' move box
+ If MoveBox Then
+ Call RestoreScreen
+ GoSub DrawQuitBox
+ End If
+ End If
+ Loop Until MouseButton1 = 0
+ End If
+ Else
+ If MouseX = Xcoor3 + 4 Then ' click on button
+ If MouseY >= Ycoor3 + 2 And MouseY <= Ycoor3 + 5 Then
+ If Buttons = 1 Or Buttons = 2 Then
+ BoxButton = 1
+ Exit Do
+ End If
+ End If
+ If MouseY >= Ycoor3 + 8 And MouseY <= Ycoor3 + 15 Then
+ If Buttons = 1 Or Buttons = 3 Then
+ BoxButton = 2
+ Exit Do
+ End If
+ End If
+ End If
+ End If
+ Else
+ If MouseX = Xcoor3 + 4 Then ' mouseover button
+ If MouseY >= Ycoor3 + 2 And MouseY <= Ycoor3 + 5 Then
+ If BoxButton = 2 Then
+ If Buttons = 1 Then
+ BoxButton = 1
+ GoSub DrawQuitBoxButtons
+ End If
+ End If
+ End If
+ If MouseY >= Ycoor3 + 8 And MouseY <= Ycoor3 + 15 Then
+ If BoxButton = 1 Then
+ If Buttons = 1 Then
+ BoxButton = 2
+ GoSub DrawQuitBoxButtons
+ End If
+ End If
+ End If
+ End If
+ End If
+ Loop
+ _Delay .2
+ _KeyClear
+ _Delay .2
+
+ ' restore screen area.
+ Call RestoreScreen
+ Color White, Black
+ Locate CurrentX, CurrentY, 1
+ If BoxButton = 1 Then
+ QuitBox = -1
+ Else
+ QuitBox = 0
+ End If
+ Exit Function
+
+ ' draw box
+ DrawQuitBox:
+ Color QuitBoxBorderColor, QuitBoxBackGround
+ Locate Xcoor3, Ycoor3, 0
+ Print Chr$(ULcorner) + String$(30, Hline) + Chr$(URcorner);
+ For RowX1 = Xcoor3 + 1 To Xcoor3 + 6
+ Locate RowX1, Ycoor3, 0
+ Print Chr$(Vline) + Space$(30) + Chr$(Vline);
+ Next
+ Locate Xcoor3 + 7, Ycoor3, 0
+ Print Chr$(LLcorner) + String$(30, Hline) + Chr$(LRcorner);
+
+ ' display box title
+ XC = 16 - Len(QuitBoxTitle$) / 2 ' center of titlebar
+ XC = Ycoor3 + XC
+ If XC < 1 Then XC = 1
+ Color QuitBoxTitleColor
+ Locate Xcoor3, XC, 0
+ Print QuitBoxTitle$;
+
+ ' display quit text
+ Color QuitBoxTextColor
+ Locate Xcoor3 + 2, Ycoor3 + 2, 0
+ Print QuitBoxText$
+ GoSub DrawQuitBoxButtons
+ Return
+
+ ' display buttuns
+ DrawQuitBoxButtons:
+ If BoxButton = 1 Then
+ Locate Xcoor3 + 4, Ycoor3 + 2, 0
+ Color QuitBoxButton1Color, QuitBoxButtonBackGround
+ Print "";
+ If Buttons = 1 Then
+ Locate Xcoor3 + 4, Ycoor3 + 8, 0
+ Color QuitBoxButton2Color, QuitBoxButtonBackGround
+ Print "";
+ End If
+ Else
+ Locate Xcoor3 + 4, Ycoor3 + 8, 0
+ Color QuitBoxButton1Color, QuitBoxButtonBackGround
+ Print "";
+ If Buttons = 1 Then
+ Locate Xcoor3 + 4, Ycoor3 + 2, 0
+ Color QuitBoxButton2Color, QuitBoxButtonBackGround
+ Print "";
+ End If
+ End If
+ Color White, Black
+ Return
+End Function
+
+' screen save
+Sub SaveScreen
+ For Var1 = 1 To 25
+ For Var2 = 1 To 80
+ TempZ1 = Screen(Var1, Var2) ' screen char
+ TempZ2 = Screen(Var1, Var2, 1) ' char color
+ TempArrayY((Var1 - 1) * 80 + Var2) = TempZ1
+ TempArrayZ((Var1 - 1) * 80 + Var2) = TempZ2
+ Next
+ Next
+End Sub
+
+' screen restore
+Sub RestoreScreen
+ For Var1 = 1 To 25
+ For Var2 = 1 To 80
+ VarB = Int(TempArrayZ((Var1 - 1) * 80 + Var2) / 16)
+ VarF = TempArrayZ((Var1 - 1) * 80 + Var2) Mod 16
+ TempZ1 = TempArrayY((Var1 - 1) * 80 + Var2)
+ Locate Var1, Var2, 1
+ Color VarF, VarB
+ _ControlChr Off
+ Print Chr$(TempZ1);
+ _ControlChr On
+ Next
+ Next
+End Sub
+
+Rem clears mouse buffer.
+Function ClearMouse
+ While _MouseInput: Wend ' empty buffer
+End Function
+
+Rem processes mouse activity.
+Function MouseDriver
+ Static X1 As Integer, Y1 As Integer ' store old values
+ MouseX = 0: MouseY = 0
+ If _MouseInput Then
+ X = CInt(_MouseX): Y = CInt(_MouseY) ' X,Y return single
+ If X <> X1 Or Y <> Y1 Then
+ X1 = X: Y1 = Y
+ MouseX = Y: MouseY = X ' X,Y are reversed
+ While _MouseInput: Wend ' empty buffer
+ MousePressed = -1
+ End If
+ MouseButton1 = _MouseButton(1)
+ If MouseButton1 Then
+ MouseX = Y1
+ MouseY = X1
+ MousePressed = -1
+ End If
+ MouseButton2 = _MouseButton(2)
+ If MouseButton2 Then
+ MouseX = Y1
+ MouseY = X1
+ MousePressed = -1
+ End If
+ MouseButton3 = _MouseButton(3)
+ If MouseButton3 Then
+ MousePressed = -1
+ End If
+ MouseWheel = _MouseWheel
+ End If
+End Function
+
+
diff --git a/samples/r.-k.-fink.md b/samples/r.-k.-fink.md
index 54cb925c..b3d65ed5 100644
--- a/samples/r.-k.-fink.md
+++ b/samples/r.-k.-fink.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY R. K. FINK
diff --git a/samples/rattler/index.md b/samples/rattler/index.md
index cb9b80f2..8a0b5b45 100644
--- a/samples/rattler/index.md
+++ b/samples/rattler/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: RATTLER
diff --git a/samples/ray-tracer-z/index.md b/samples/ray-tracer-z/index.md
index 003d451a..7deed56e 100644
--- a/samples/ray-tracer-z/index.md
+++ b/samples/ray-tracer-z/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: RAY TRACER Z
diff --git a/samples/ray-tracer.md b/samples/ray-tracer.md
index 586cb7ea..8e59a69a 100644
--- a/samples/ray-tracer.md
+++ b/samples/ray-tracer.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: RAY TRACER
diff --git a/samples/ray-tracing.md b/samples/ray-tracing.md
index 45e0d257..ddbd7817 100644
--- a/samples/ray-tracing.md
+++ b/samples/ray-tracing.md
@@ -1,10 +1,10 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: RAY TRACING
**[Chaotic Scattering](chaotic-scattering/index.md)**
-[🐝 vince](vince.md) 🔗 [ray tracing](ray-tracing.md), [reflections](reflections.md)
+[🐝 vince](vince.md) 🔗 [ray tracing](ray-tracing.md), [reflections](reflections.md), [qbjs](qbjs.md)
Demo of the Gaspard-Rice system. Left-click to change location.
diff --git a/samples/raycaster.md b/samples/raycaster.md
index 4450ae40..00a0ddf2 100644
--- a/samples/raycaster.md
+++ b/samples/raycaster.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: RAYCASTER
diff --git a/samples/raycaster/index.md b/samples/raycaster/index.md
index 6a9fbdda..f2b7f93c 100644
--- a/samples/raycaster/index.md
+++ b/samples/raycaster/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: RAYCASTER
@@ -30,16 +30,9 @@
' make it a game???
```
-### QBjs
-
-> Please note that QBjs is still in early development and support for these examples is extremely experimental (meaning will most likely not work). With that out of the way, give it a try!
-
-* [LOAD "rc-ent6.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?src=https://qb64.com/samples/raycaster/src/rc-ent6.bas)
-* [RUN "rc-ent6.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?mode=auto&src=https://qb64.com/samples/raycaster/src/rc-ent6.bas)
-* [PLAY "rc-ent6.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?mode=play&src=https://qb64.com/samples/raycaster/src/rc-ent6.bas)
-
### File(s)
* [rc-ent6.bas](src/rc-ent6.bas)
+* [rc-ent6_orig.bas](src/rc-ent6_orig.bas)
🔗 [3d](../3d.md), [raycaster](../raycaster.md)
diff --git a/samples/raycaster/src/rc-ent6_orig.bas b/samples/raycaster/src/rc-ent6_orig.bas
new file mode 100644
index 00000000..89be7a89
--- /dev/null
+++ b/samples/raycaster/src/rc-ent6_orig.bas
@@ -0,0 +1,301 @@
+'DECLARE SUB raytrace ()
+'Antoni Gual raycaster
+'Modified from Entropy's an 36-lines entry for the Biskbart's
+'40-lines QB Raycaster Compo of fall-2001
+'
+'Added multikey handler
+'Step emulation
+'Added different textures, including clouds
+'Separe
+'with some of my ideas
+
+'to do:
+' add screen buffer
+' optimize rendering loop
+' interpolate rays
+' shadowing
+' subpixel precision
+' make it a game???
+
+'DECLARE SUB ffix ()
+
+'ffix
+SCREEN 13
+
+DIM map(9, 9) AS INTEGER 'the map
+DIM tex(31, 31, 4) AS INTEGER 'texture array
+DIM foff(15) AS INTEGER 'walk simulation vertical offset
+DIM kbd(128) AS INTEGER 'keyboard reader array
+DIM frames%
+DIM persplut(200) AS SINGLE 'vertical offsets for roof and floor
+DIM d1(319) AS INTEGER 'temporal arrays raycaster->renderer
+DIM d2(319) AS INTEGER
+DIM tx(319) AS INTEGER
+DIM tm(319) AS INTEGER
+DIM dx(319) AS SINGLE
+DIM dy(319) AS SINGLE
+
+'read map,do fixed part of persp lut (sky is always in the infinite)
+FOR i% = 0 TO 99
+ READ map(i% \ 10, i% MOD 10)
+ persplut(i%) = 25590 / (i% - 100)
+NEXT
+
+'make texture maps (should be read from file)
+FOR i% = 0 TO 31
+ FOR j% = 0 TO 31
+ tex(i%, j%, 0) = (i% XOR j%) 'xor walls
+ i1% = i% - 16: j1% = j% - 16
+ tex(i%, j%, 1) = SQR((i1% * i1%) + (j1% * j1%))'concentric ground tiles
+ tex(i%, j%, 2) = 16 - SQR((i1% * i1%) + (j1% * j1%))
+NEXT j%, i%
+
+'cloudy texture 1
+d1% = 64
+d% = 32
+tex(0, 0, 3) = 32
+WHILE d% > 1
+ d2% = d% \ 2
+ FOR i% = 0 TO 31 STEP d%
+ FOR j% = 0 TO 31 STEP d%
+ tex((i% + d2%) AND 31, j%, 3) = (tex(i%, j%, 3) + tex((i% + d%) AND 31, j%, 3) + (RND - .5) * d1%) / 2
+ tex(i%, (j% + d2%) AND 31, 3) = (tex(i%, j%, 3) + tex(i%, (j% + d%) AND 31, 3) + (RND - .5) * d1%) / 2
+ tex((i% + d2%) AND 31, (j% + d2%) AND 31, 3) = (tex(i%, j%, 3) + tex((i% + d%) AND 31, (j% + d%) AND 31, 3) + (RND - .5) * d1%) / 2
+ NEXT j%, i%
+ d1% = d1% / 2
+ d% = d2%
+WEND
+
+'cloudy texture for sky
+d1% = 64
+d% = 32
+tex(0, 0, 4) = 32
+WHILE d% > 1
+ d2% = d% \ 2
+ FOR i% = 0 TO 31 STEP d%
+ FOR j% = 0 TO 31 STEP d%
+ tex((i% + d2%) AND 31, j%, 4) = (tex(i%, j%, 4) + tex((i% + d%) AND 31, j%, 4) + (RND - .5) * d1%) / 2
+ tex(i%, (j% + d2%) AND 31, 4) = (tex(i%, j%, 4) + tex(i%, (j% + d%) AND 31, 4) + (RND - .5) * d1%) / 2
+ tex((i% + d2%) AND 31, (j% + d2%) AND 31, 4) = (tex(i%, j%, 4) + tex((i% + d%) AND 31, (j% + d%) AND 31, 4) + (RND - .5) * d1%) / 2
+ NEXT j%, i%
+ d1% = d1% / 2
+ d% = d2%
+WEND
+
+
+'fill step-simulation vertical offset
+pioct! = 3.141592 / 8!
+FOR i% = 0 TO 15
+ foff(i%) = ABS(COS(i% * pioct!) * 64)
+NEXT
+
+
+'set palette
+OUT &H3C8, 0
+'grey:walls
+FOR i% = 0 TO 63
+ OUT &H3C9, i%: OUT &H3C9, i%: OUT &H3C9, i%
+NEXT
+'green:ground
+FOR i% = 0 TO 63
+ OUT &H3C9, 0: OUT &H3C9, 63 - i%: OUT &H3C9, 0
+NEXT
+'blue:sky
+FOR i% = 0 TO 63
+ OUT &H3C9, 63 - i% / 2: OUT &H3C9, 63 - i% / 2: OUT &H3C9, 63
+NEXT
+
+
+
+'launch raytracer
+'erase key buffer and set num lock off
+DEF SEG = &H40: POKE &H1C, PEEK(&H1A): POKE &H17, PEEK(&H17) AND NOT 32
+
+tim! = TIMER
+frames% = 0
+
+
+
+
+'SUB raytrace
+rtf = 2048
+rtl = .0001
+inf = 3000000
+incu = .05
+xpos = 1.5
+ypos = 1.5
+angle = 0
+ini% = 1
+'frames loop
+DO
+
+WAIT &H3DA, 8
+WAIT &H3DA, 8, 8
+
+ frames% = frames% + 1
+
+ 'keyboard input
+ k% = INP(&H60):
+ IF k% THEN
+ kbd(k% AND 127) = -((k% AND 128) = 0)
+ DEF SEG = &H40: POKE &H1C, PEEK(&H1A)
+ IF kbd(1) THEN GOTO EXITDO1
+ turn% = kbd(&H4D) - kbd(&H4B): kbd(&H4D) = 0: kbd(&H4B) = 0
+ mov% = kbd(80) - kbd(72) + ini%
+ END IF
+ 'a movement has happened, update and collision detect
+ IF turn% OR mov% THEN
+ angle = angle + turn% * .1
+ xpos2 = mov% * COS(angle) * incu
+ ypos2 = mov% * SIN(angle) * incu
+
+ 'calculate walk offsets,and floor part of perspective
+ f% = f% + mov%
+ foff% = foff(f% AND 15)
+ calc = 25600 - 32 * foff%
+ FOR y% = 100 TO 199: persplut(y%) = calc / (y% - 99): NEXT
+
+ IF ini% THEN ini% = 0
+ dxc = COS(angle) * incu
+ dxs = SIN(angle) * incu / 160
+ dyc = COS(angle) * incu / 160
+ dys = SIN(angle) * incu
+ 'colision detector
+
+ IF map(INT(ypos - incu), INT(xpos - xpos2 - xpos2 - incu)) = 0 THEN
+ IF map(INT(ypos - incu), INT(xpos - xpos2 - xpos2 + incu)) = 0 THEN
+ IF map(INT(ypos + incu), INT(xpos - xpos2 - xpos2 - incu)) = 0 THEN
+ IF map(INT(ypos + incu), INT(xpos - xpos2 - xpos2 + incu)) = 0 THEN
+ xpos = xpos - xpos2
+ xpos32 = xpos * 32
+ xp1! = (xpos - INT(xpos)) * rtf
+ END IF
+ END IF
+ END IF
+ END IF
+ IF map(INT(ypos - ypos2 - ypos2 - incu), INT(xpos - incu)) = 0 THEN
+ IF map(INT(ypos - ypos2 - ypos2 + incu), INT(xpos - incu)) = 0 THEN
+ IF map(INT(ypos - ypos2 - ypos2 - incu), INT(xpos + incu)) = 0 THEN
+ IF map(INT(ypos - ypos2 - ypos2 + incu), INT(xpos + incu)) = 0 THEN
+ ypos = ypos - ypos2
+ ypos32 = ypos * 32
+ yp1! = (ypos - INT(ypos)) * rtf
+ END IF
+ END IF
+ END IF
+ END IF
+
+
+ 'raycast loop
+ FOR x% = 0 TO 319
+ 'INIT RAYCASTER
+ dx = dxc - (x% - 160) * dxs
+ dy = (x% - 160) * dyc + dys
+ dx(x%) = dx
+ dy(x%) = dy
+ SELECT CASE dx
+ CASE IS < -rtl
+ nextxt = -xp1! / dx
+ dxt = -rtf / dx
+ CASE IS > rtl
+ nextxt = (rtf - xp1!) / dx
+ dxt = rtf / dx
+ CASE ELSE
+ nextxt = inf
+ END SELECT
+ SELECT CASE dy
+ CASE IS < -rtl
+ nextyt = -yp1! / dy
+ dyt = -rtf / dy
+ CASE IS > rtl
+ nextyt = (rtf - yp1!) / dy
+ dyt = rtf / dy
+ CASE ELSE
+ nextyt = inf
+ END SELECT
+ sdx% = SGN(dx): sdy% = SGN(dy)
+ xm% = INT(xpos): ym% = INT(ypos)
+
+ 'cast a ray and increase distance until a wall is hit
+ DO
+ IF nextxt < nextyt THEN
+
+ xm% = xm% + sdx%
+ IF map(ym%, xm%) THEN ti = rtf / nextxt: GOTO exitdo2
+ nextxt = nextxt + dxt
+ ELSE
+ 'ny% = ny% + 1
+ ym% = ym% + sdy%
+ IF map(ym%, xm%) THEN ti = rtf / nextyt: GOTO exitdo2
+ nextyt = nextyt + dyt
+ END IF
+ LOOP
+exitdo2:
+ 'Enter texture index, top, bottom into table for this direction
+
+ tm(x%) = map(ym%, xm%) MOD 5
+ d1% = 99 - INT((800 + foff%) * ti)
+ IF d1% > md1% THEN md1% = d1%
+ d1(x%) = d1%
+ d2% = 102 + INT((800 - foff%) * ti)
+ d2(x%) = d2%
+ IF d2% < md2% THEN md2% = d2%
+ tx(x%) = ((xpos + ypos + (dx + dy) / ti) * 32) AND 31
+
+ NEXT x%
+ END IF
+
+ 'rendering loop (too many products and divisions)
+
+ DEF SEG = &HA000
+ FOR x% = 0 TO 319
+ d1% = d1(x%)
+ d2% = d2(x%)
+ tx% = tx(x%)
+ d21% = d2% - d1%
+ dx = dx(x%)
+ dy = dy(x%)
+ p& = x%
+ mmap% = tm(x%)
+ FOR y% = 0 TO 199
+ pl = persplut(y%)
+ SELECT CASE y%
+ 'sky
+ CASE IS < d1%
+ tt% = 128 + tex(dx * pl AND 31, dy * pl AND 31, 4)
+ 'wall
+ CASE IS < d2%
+ tt% = 10 + tex(32 * (y% - d1%) \ d21%, tx%, mmap%)
+ 'ground
+ CASE ELSE
+ tt% = 56 + tex((xpos32 + dx * pl) AND 31, (ypos32 + dy * pl) AND 31, 4)
+ END SELECT
+ POKE p&, tt%
+ p& = p& + 320
+ NEXT y%
+ NEXT x%
+LOOP
+EXITDO1:
+
+
+
+
+
+
+COLOR 12
+LOCATE 1, 1: PRINT frames% / (TIMER - tim!); " fps"
+a$ = INPUT$(1)
+END
+
+'map data
+DATA 7 , 8, 7, 8, 7, 8, 7, 8, 7, 8
+DATA 7 , 0, 0, 0, 0, 0, 0, 0, 0, 8
+DATA 8 , 0, 9, 1, 0, 2,10, 2, 0, 7
+DATA 7 , 0, 1, 9, 0, 0, 0,10, 0, 8
+DATA 8 , 0, 0, 0, 0, 0, 0, 0, 0, 7
+DATA 7 , 0, 3,11, 3,11, 0, 0, 0, 8
+DATA 8 , 0,11, 0, 0 ,3, 0 ,0, 0, 7
+DATA 7 , 0, 3, 0, 0,11, 0, 0 ,0, 8
+DATA 8 , 0, 0, 0, 0, 0, 0, 0, 0, 7
+DATA 8 , 7, 8, 7, 8, 7, 8, 7, 8, 8
+
diff --git a/samples/reality-software.md b/samples/reality-software.md
index bff86c16..1184ba12 100644
--- a/samples/reality-software.md
+++ b/samples/reality-software.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY REALITY SOFTWARE
diff --git a/samples/rectong/index.md b/samples/rectong/index.md
index c1f1f88e..319e4a2d 100644
--- a/samples/rectong/index.md
+++ b/samples/rectong/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: RECTONG
diff --git a/samples/reflections.md b/samples/reflections.md
index ee274ce5..92a52e8f 100644
--- a/samples/reflections.md
+++ b/samples/reflections.md
@@ -1,9 +1,9 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: REFLECTIONS
**[Chaotic Scattering](chaotic-scattering/index.md)**
-[🐝 vince](vince.md) 🔗 [ray tracing](ray-tracing.md), [reflections](reflections.md)
+[🐝 vince](vince.md) 🔗 [ray tracing](ray-tracing.md), [reflections](reflections.md), [qbjs](qbjs.md)
Demo of the Gaspard-Rice system. Left-click to change location.
diff --git a/samples/relief-3d/index.md b/samples/relief-3d/index.md
index be0cf335..e6e0b758 100644
--- a/samples/relief-3d/index.md
+++ b/samples/relief-3d/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: RELIEF 3D
diff --git a/samples/relsoft.md b/samples/relsoft.md
index c45d76e3..eed538c2 100644
--- a/samples/relsoft.md
+++ b/samples/relsoft.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY RELSOFT
diff --git a/samples/retroqb45.md b/samples/retroqb45.md
index f322cbe9..728f6072 100644
--- a/samples/retroqb45.md
+++ b/samples/retroqb45.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY RETROQB45
diff --git a/samples/reversi/index.md b/samples/reversi/index.md
index 79551ec0..4931dc77 100644
--- a/samples/reversi/index.md
+++ b/samples/reversi/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: REVERSI
diff --git a/samples/rho-sigma.md b/samples/rho-sigma.md
index e47c2f6d..68e59522 100644
--- a/samples/rho-sigma.md
+++ b/samples/rho-sigma.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY RHO SIGMA
@@ -50,6 +50,12 @@
'+---------------+---------------------------------------------------+ '|_######_######_|_____.--...
+**[ParseLine](parseline/index.md)**
+
+[🐝 Rho Sigma](rho-sigma.md) 🔗 [data management](data-management.md), [parsing](parsing.md)
+
+I guess every developer is sooner or later in need of such a parsing function: Doesn't matter if ...
+
**[Splines](splines/index.md)**
[🐝 Rho Sigma](rho-sigma.md) 🔗 [screenblanker](screenblanker.md)
diff --git a/samples/rhosigma.md b/samples/rhosigma.md
index 525adc60..5167499c 100644
--- a/samples/rhosigma.md
+++ b/samples/rhosigma.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY RHOSIGMA
diff --git a/samples/rich-geldreich.md b/samples/rich-geldreich.md
index 08571597..be5bc00d 100644
--- a/samples/rich-geldreich.md
+++ b/samples/rich-geldreich.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY RICH GELDREICH
diff --git a/samples/richard-c-garriott.md b/samples/richard-c-garriott.md
index c6c4dc3c..98b7810d 100644
--- a/samples/richard-c-garriott.md
+++ b/samples/richard-c-garriott.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY RICHARD C GARRIOTT
diff --git a/samples/richard-frost.md b/samples/richard-frost.md
index 055783ef..892b42fe 100644
--- a/samples/richard-frost.md
+++ b/samples/richard-frost.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY RICHARD FROST
diff --git a/samples/rick-ellis.md b/samples/rick-ellis.md
index c2a23abd..10895120 100644
--- a/samples/rick-ellis.md
+++ b/samples/rick-ellis.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY RICK ELLIS
diff --git a/samples/righttriangle/img/screenshot.png b/samples/righttriangle/img/screenshot.png
new file mode 100644
index 00000000..0bf23ca8
Binary files /dev/null and b/samples/righttriangle/img/screenshot.png differ
diff --git a/samples/righttriangle/index.md b/samples/righttriangle/index.md
new file mode 100644
index 00000000..c34abc80
--- /dev/null
+++ b/samples/righttriangle/index.md
@@ -0,0 +1,31 @@
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+
+## SAMPLE: RIGHTTRIANGLE
+
+![screenshot.png](img/screenshot.png)
+
+### Author
+
+[🐝 T.A. Giles](../t.a.-giles.md)
+
+### Description
+
+```text
+'Program (c) T.A.Giles - Mar 2001
+'Right Angle Triangle Solver v 1.1
+'640 x 480 graphics resolution
+```
+
+### QBjs
+
+> Please note that QBjs is still in early development and support for these examples is extremely experimental (meaning will most likely not work). With that out of the way, give it a try!
+
+* [LOAD "rats1.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?src=https://qb64.com/samples/righttriangle/src/rats1.bas)
+* [RUN "rats1.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?mode=auto&src=https://qb64.com/samples/righttriangle/src/rats1.bas)
+* [PLAY "rats1.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?mode=play&src=https://qb64.com/samples/righttriangle/src/rats1.bas)
+
+### File(s)
+
+* [rats1.bas](src/rats1.bas)
+
+🔗 [geometry](../geometry.md), [legacy](../legacy.md)
diff --git a/samples/righttriangle/src/rats1.bas b/samples/righttriangle/src/rats1.bas
new file mode 100644
index 00000000..e42e958e
--- /dev/null
+++ b/samples/righttriangle/src/rats1.bas
@@ -0,0 +1,103 @@
+'Program (c) T.A.Giles - Mar 2001
+'Right Angle Triangle Solver v 1.1
+'640 x 480 graphics resolution
+SCREEN 12
+start:
+CLS
+'degrees - radians conversion ratios
+LET dr = .0174532925199#
+LET rd = 57.2957795131#
+LOCATE 1, 34
+COLOR 7
+PRINT "Right Angle Triangle Solver v 1.1 (c) T.A.Giles"
+'Draw Triangle
+LINE (50, 400)-(400, 400), 2 'Side A
+LINE (400, 400)-(400, 150), 2 'Side B
+LINE (400, 150)-(50, 400), 2 'Side C
+LINE (360, 400)-(360, 360), 2 'Vert box
+LINE (360, 360)-(400, 360), 2 'Hori box
+'Print Side and Angle labels
+COLOR 3
+LOCATE 27, 27
+PRINT "Side A"
+LOCATE 18, 53
+PRINT "Side B"
+LOCATE 16, 23
+PRINT "Side C"
+LOCATE 24, 15
+COLOR 14
+PRINT "Angle b"
+LOCATE 14, 43
+PRINT "Angle a"
+COLOR 15
+lab0:
+'Re-set print position for output
+LOCATE 1, 1
+LET f = 0' Binary flag
+'Input data routine
+PRINT "Enter '0' if unknown"
+INPUT "Side A "; a
+INPUT "Side B "; b
+INPUT "Side C "; c
+INPUT "Angle a (deg)"; x
+INPUT "Angle b (deg)"; y
+'Error trapping routine
+IF a < 0 OR b < 0 OR c < 0 OR x < 0 OR y < 0 THEN GOTO err1
+IF x >= 90 OR y >= 90 OR x + y > 90 THEN GOTO err1
+IF a >= c AND c > 0 OR b >= c AND c > 0 THEN GOTO err1
+IF a > 0 AND b > 0 AND c > 0 AND NOT c = SQR(a ^ 2 + b ^ 2) THEN GOTO err1
+IF NOT x = 0 THEN LET y = 90 - x
+'Degrees to Radians conversion
+LET x = x * dr
+LET y = y * dr
+'Binary flag routine
+IF a = 0 THEN LET f = f + 1
+IF b = 0 THEN LET f = f + 2
+IF c = 0 THEN LET f = f + 4
+IF y = 0 THEN LET f = f + 8
+IF f = 1 OR f = 3 THEN GOTO lab1
+IF f = 2 OR f = 6 THEN GOTO lab2
+IF f = 4 OR f = 5 THEN GOTO lab3
+IF f = 8 OR f = 9 THEN GOTO lab4
+IF f = 10 THEN GOTO lab5
+IF f = 12 THEN GOTO lab6
+err1:
+SOUND 750, 1
+GOTO lab0
+lab1:
+LET a = c * COS(y)
+LET b = c * SIN(y)
+LET c = a / COS(y)
+GOTO lab9
+lab2:
+LET b = a * TAN(y)
+LET c = a / COS(y)
+GOTO lab9
+lab3:
+LET a = b / TAN(y)
+LET c = a / COS(y)
+GOTO lab9
+lab4:
+LET a = SQR(c ^ 2 - b ^ 2)
+LET y = ATN(b / a)
+GOTO lab9
+lab5:
+LET b = SQR(c ^ 2 - a ^ 2)
+LET y = ATN(b / a)
+GOTO lab9
+lab6:
+LET y = ATN(b / a)
+LET c = a / COS(y)
+lab9:
+'Output routine
+LOCATE 1, 1
+PRINT " ........ SOLUTION ........"
+PRINT " Side A = "; a
+PRINT " Side B = "; b
+PRINT " Side C = "; c
+PRINT " Angle a (deg) = "; 90 - y * rd
+PRINT " Angle b (deg) = "; y * rd
+PRINT " Area of Triangle = "; (a * b) / 2
+LOCATE 29, 1
+INPUT "Ctrl+Break > EXIT : Enter > MORE"; x
+GOTO start
\ No newline at end of file
diff --git a/samples/ripple.md b/samples/ripple.md
index cf9766eb..873e2202 100644
--- a/samples/ripple.md
+++ b/samples/ripple.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: RIPPLE
diff --git a/samples/ripples/index.md b/samples/ripples/index.md
index 4ecef162..48815a1e 100644
--- a/samples/ripples/index.md
+++ b/samples/ripples/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: RIPPLES
@@ -34,6 +34,7 @@
* [ripples.bas](src/ripples.bas)
* [ripples.zip](src/ripples.zip)
+* [ripples_orig.bas](src/ripples_orig.bas)
* [twolf.pcx](src/twolf.pcx)
🔗 [image processing](../image-processing.md), [ripple](../ripple.md)
diff --git a/samples/ripples/src/ripples_orig.bas b/samples/ripples/src/ripples_orig.bas
new file mode 100644
index 00000000..4d18b9f5
--- /dev/null
+++ b/samples/ripples/src/ripples_orig.bas
@@ -0,0 +1,113 @@
+CHDIR ".\samples\qb64\original"
+
+DECLARE SUB ripples (waterheight%, dlay!, amplitude!, wavelength!)
+DECLARE FUNCTION LoadPcx% (PCX$)
+DECLARE SUB DELAY (x!)
+'----------------------------------------------------------------------------
+'RIPPLES, by Antoni Gual 26/1/2001 agual@eic.ictnet.es
+'Simulates water reflection in a SCREEN 13 image
+'----------------------------------------------------------------------------
+'Who said QBasic is obsolete?
+'This is a remake of the popular LAKE Java applet.
+'You can experiment with different images and different values of the
+'parameters passed to RIPPLES sub.
+'----------------------------------------------------------------------------
+'PCX Loader modified from Kurt Kuzba.
+'Timber Wolf came with PaintShopPro 5, I rescaned it to fit SCREEN13
+'----------------------------------------------------------------------------
+'WARNING!: PCX MUST be 256 colors and 320x 200.The loader does'nt check it!!
+'----------------------------------------------------------------------------
+'Use as you want, only give me credit.
+'E-mail me to tell me about!
+'----------------------------------------------------------------------------
+DEFINT A-Z
+SCREEN 13: CLS
+dummy = LoadPcx("twolf.pcx")
+IF dummy THEN PRINT "File twolf.pcx not Found!": END
+ripples 150, .1, 2, 1
+
+SUB DELAY (x!)
+'Hope it will not freeze at midnight!
+T! = TIMER + x!
+DO: LOOP UNTIL TIMER > T! OR TIMER < x!
+END SUB
+
+FUNCTION LoadPcx (PCX$)
+'LOADS A 320x200x256 PCX. Modified from Kurt Kuzba
+
+bseg& = &HA000
+
+
+F = FREEFILE
+OPEN PCX$ FOR BINARY AS #F
+IF LOF(F) = 0 THEN CLOSE #F: KILL PCX$: LoadPcx = 1: EXIT FUNCTION
+
+fin& = LOF(1) - 767: SEEK #F, fin&: p$ = INPUT$(768, 1)
+p% = 1: fin& = fin& - 1
+OUT &H3C8, 0: DEF SEG = VARSEG(p$)
+FOR T& = SADD(p$) TO SADD(p$) + 767: OUT &H3C9, PEEK(T&) \ 4: NEXT
+
+
+SEEK #F, 129: T& = BOFS&: RLE% = 0
+DO
+ p$ = INPUT$(256, F): fpos& = SEEK(F): l% = LEN(p$)
+ IF fpos& > fin& THEN l% = l% - (fpos& - fin&): done = 1
+ FOR p& = SADD(p$) TO SADD(p$) + l% - 1
+ DEF SEG = VARSEG(p$): dat% = PEEK(p&): DEF SEG = bseg&
+ IF RLE% THEN
+ FOR RLE% = RLE% TO 1 STEP -1:
+ POKE T&, dat%: T& = T& + 1
+ NEXT
+ ELSE
+ IF (dat% AND 192) = 192 THEN
+ RLE% = dat% AND 63
+ ELSE
+ POKE T&, dat%: T& = T& + 1
+ END IF
+ END IF
+ NEXT
+LOOP UNTIL done
+CLOSE F
+END FUNCTION
+
+SUB ripples (waterheight, dlay!, amplitude!, wavelength!)
+'----------------------------------------------------------------------------
+'Ripples SUB, by Antoni Gual 26/1/2001 agual@eic.ictnet.es
+'Simulates water reflection in a SCREEN 13 image
+'----------------------------------------------------------------------------
+'PARAMETERS:
+'waterheight in pixels from top
+'dlay! delay between two recalcs in seconds
+'amplitude! amplitude of the distortion in pixels
+'wavelength! distance between two ripples
+'----------------------------------------------------------------------------
+
+
+'these are screen size constants, don't touch it!
+widh = 319
+height = 199
+
+REDIM a%(162)
+DIM r%(0 TO 200)
+
+'precalc a sinus table for speed
+FOR i! = 0 TO 200
+ r(i!) = CINT(SIN(i! / wavelength!) * amplitude!)
+NEXT
+j = 0
+
+'the loop!
+DO
+ 'it must be slowed down to look real!
+ DELAY dlay!
+
+ FOR i = 1 TO height - waterheight
+ temp = waterheight - i + r((j + i) MOD 200)
+ GET (1, temp)-(widh, temp), a%
+ PUT (1, waterheight + i), a%, PSET
+ NEXT
+ IF j = 200 THEN j = 0 ELSE j = j + 1
+LOOP UNTIL LEN(INKEY$)
+
+END SUB
+
diff --git a/samples/robo-raider/index.md b/samples/robo-raider/index.md
index ee205b8f..bd5fb262 100644
--- a/samples/robo-raider/index.md
+++ b/samples/robo-raider/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: ROBO RAIDER
diff --git a/samples/rockets/index.md b/samples/rockets/index.md
index d376216b..95b00e9d 100644
--- a/samples/rockets/index.md
+++ b/samples/rockets/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: ROCKETS
diff --git a/samples/roguelike.md b/samples/roguelike.md
index 7dd14f00..49013205 100644
--- a/samples/roguelike.md
+++ b/samples/roguelike.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: ROGUELIKE
diff --git a/samples/rotate/img/screenshot.png b/samples/rotate/img/screenshot.png
new file mode 100644
index 00000000..60cdfad6
Binary files /dev/null and b/samples/rotate/img/screenshot.png differ
diff --git a/samples/rotate/index.md b/samples/rotate/index.md
new file mode 100644
index 00000000..3e002d84
--- /dev/null
+++ b/samples/rotate/index.md
@@ -0,0 +1,25 @@
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+
+## SAMPLE: ROTATE
+
+![screenshot.png](img/screenshot.png)
+
+### Description
+
+```text
+Rotating circles.
+```
+
+### QBjs
+
+> Please note that QBjs is still in early development and support for these examples is extremely experimental (meaning will most likely not work). With that out of the way, give it a try!
+
+* [LOAD "rotate.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?src=https://qb64.com/samples/rotate/src/rotate.bas)
+* [RUN "rotate.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?mode=auto&src=https://qb64.com/samples/rotate/src/rotate.bas)
+* [PLAY "rotate.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?mode=play&src=https://qb64.com/samples/rotate/src/rotate.bas)
+
+### File(s)
+
+* [rotate.bas](src/rotate.bas)
+
+🔗 [geometry](../geometry.md), [legacy](../legacy.md)
diff --git a/samples/rotate/src/rotate.bas b/samples/rotate/src/rotate.bas
new file mode 100644
index 00000000..bcadac6c
--- /dev/null
+++ b/samples/rotate/src/rotate.bas
@@ -0,0 +1,62 @@
+CLS
+SCREEN 12
+LET pi = 3.14159
+
+DO
+ 'ANGLE increase
+FOR v = 0 TO 2 * pi STEP .008
+LET v3 = v3 + .003
+LET v4 = v4 + .01
+
+IF v3 >= 2 * pi THEN
+LET v3 = .003
+END IF
+
+IF v4 >= 2 * pi THEN
+LET v4 = .01
+END IF
+
+ 'CALCULATE
+ 'COS is for X
+ 'SIN is for Y
+ 'Multiplier is for SIZE and
+ 'addition is for OFFSET.
+ 'Combine two equations with offset to
+ 'get double rotation!
+
+LET x = COS(v3) * 180 + (COS(v) * -20 + 320)
+LET y = SIN(v3) * 180 + (SIN(v) * -20 + 240)
+LET x2 = COS(v3) * 180 + (COS(v) * 20 + 320)
+LET y2 = SIN(v3) * 180 + (SIN(v) * 20 + 240)
+
+LET x3 = COS(v3) * 180 + (COS(v) * 0 + 320)
+LET y3 = SIN(v3) * 180 + (SIN(v) * 0 + 240)
+
+LET x4 = COS(v) * 20 + 320
+LET y4 = SIN(v) * 20 + 240
+LET x5 = COS(v4) * 80 + 320
+LET y5 = SIN(v4) * 80 + 240
+
+ 'DRAW
+LINE (x, y)-(x2, y2), 15
+CIRCLE (x3, y3), 20, 15
+CIRCLE (x4, y4), 40, 15
+CIRCLE (x5, y5), 10, 15
+
+ 'WAIT and key press=exit
+ LET key$ = INKEY$
+FOR v2 = 1 TO 10000
+ IF key$ <> "" THEN
+ END
+ END IF
+NEXT v2
+
+ 'ERASE
+LINE (x, y)-(x2, y2), 0
+CIRCLE (x3, y3), 20, 0
+CIRCLE (x4, y4), 40, 0
+CIRCLE (x5, y5), 10, 0
+
+NEXT v
+LOOP
+
diff --git a/samples/rotations.md b/samples/rotations.md
index d172114f..577dc7f6 100644
--- a/samples/rotations.md
+++ b/samples/rotations.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: ROTATIONS
diff --git a/samples/rotozoom.md b/samples/rotozoom.md
new file mode 100644
index 00000000..c88a3794
--- /dev/null
+++ b/samples/rotozoom.md
@@ -0,0 +1,9 @@
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+
+## SAMPLES: ROTOZOOM
+
+**[RotoZoom3](rotozoom3/index.md)**
+
+[🐝 Galleon](galleon.md) [🐝 bplus](bplus.md) 🔗 [graphics](graphics.md), [rotozoom](rotozoom.md)
+
+A modification of Galleon's RotoZoom in Wiki that both scales and rotates an image, this version ...
diff --git a/samples/rotozoom3/img/spiked.png b/samples/rotozoom3/img/spiked.png
new file mode 100644
index 00000000..a5b52c31
Binary files /dev/null and b/samples/rotozoom3/img/spiked.png differ
diff --git a/samples/rotozoom3/img/ss1.png b/samples/rotozoom3/img/ss1.png
new file mode 100644
index 00000000..5b701f44
Binary files /dev/null and b/samples/rotozoom3/img/ss1.png differ
diff --git a/samples/rotozoom3/img/tspike.png b/samples/rotozoom3/img/tspike.png
new file mode 100644
index 00000000..65798d30
Binary files /dev/null and b/samples/rotozoom3/img/tspike.png differ
diff --git a/samples/rotozoom3/index.md b/samples/rotozoom3/index.md
new file mode 100644
index 00000000..68dc0e56
--- /dev/null
+++ b/samples/rotozoom3/index.md
@@ -0,0 +1,31 @@
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+
+## SAMPLE: ROTOZOOM3
+
+![spiked.png](img/spiked.png)
+
+### Authors
+
+[🐝 Galleon](../galleon.md) [🐝 bplus](../bplus.md)
+
+### Description
+
+```text
+A modification of Galleon's RotoZoom in Wiki that both scales and rotates an image, this version scales the x-axis and y-axis independently allowing some rotations of image just by changing X or Y Scales making this already powerful routine even more a versatile image tool.
+```
+
+### File(s)
+
+* [another-rotozoom-demo.bas](src/another-rotozoom-demo.bas)
+* [another-rotozoom-demo.zip](src/another-rotozoom-demo.zip)
+* [tspike.png](src/tspike.png)
+
+### Additional Image(s)
+
+![ss1.png](img/ss1.png)
+![tspike.png](img/tspike.png)
+
+🔗 [graphics](../graphics.md), [rotozoom](../rotozoom.md)
+
+
+Reference: [qb64forum](https://qb64forum.alephc.xyz/index.php?topic=4212.0)
diff --git a/samples/rotozoom3/src/another-rotozoom-demo.bas b/samples/rotozoom3/src/another-rotozoom-demo.bas
new file mode 100644
index 00000000..b75119cc
--- /dev/null
+++ b/samples/rotozoom3/src/another-rotozoom-demo.bas
@@ -0,0 +1,120 @@
+OPTION _EXPLICIT
+_TITLE "Another RotoZoom Demo" 'b+ started 2020-03-02
+
+CONST xmax = 1200, ymax = 700, xc = 600, yc = 350
+SCREEN _NEWIMAGE(xmax, ymax, 32)
+_SCREENMOVE 100, 40
+DIM SHARED s&, ao
+DIM a, x, y, x1, y1, xs, dxs, ddxs, ys, dys, ddys, maxScale
+
+' Starting from an image I pulled from Internet, I used Paint 3D to give it a transparent background.
+s& = _LOADIMAGE("tspike.png") 't for transparent background
+
+
+' Standard Rotation about the image center on a given X, Y location. Rotating image in middle of screen,
+' I used something like this to find ideal angle for level point on left head on right.
+WHILE _KEYDOWN(27) = 0
+ a = a + _PI(1 / 36)
+ IF a > _PI(1.999) THEN a = 0
+ CLS
+ RotoZoom3 xc, yc, s&, 1, 1, a
+ PRINT "Raw image rotation:": PRINT
+ PRINT "radian angle:"; a; " degrees:"; _R2D(a) \ 1; " press key for next angle... esc to rotate on y axis"
+ WHILE LEN(INKEY$) = 0: _LIMIT 60: WEND
+WEND
+
+ao = _PI(.27) ' I have to offset the image angle by this amount so that the spike point is on the left
+' and the head is on the right at 0 degrees or radians.
+
+
+'Demo of the independent x and y scale for axis rotations
+maxScale = 4: dxs = .01: ddxs = 1: xs = maxScale:
+WHILE LEN(INKEY$) = 0
+ CLS
+ PRINT "Press any for rotation on x axis..."
+ RotoZoom3 xc, yc, s&, xs, maxScale, ao
+ IF xs + dxs > maxScale OR xs + dxs < -maxScale THEN ddxs = ddxs * -1
+ xs = xs + dxs * ddxs
+ _DISPLAY
+ _LIMIT 60
+WEND
+
+ys = maxScale: dys = .01: ddys = 1
+WHILE LEN(INKEY$) = 0
+ CLS
+ PRINT "Press any to see layout of image over whole screen and end demo..."
+ RotoZoom3 xc, yc, s&, maxScale, ys, ao
+ IF ys + dys > maxScale OR ys + dys < -maxScale THEN ddys = ddys * -1
+ ys = ys + dys * ddys
+ _DISPLAY
+ _LIMIT 60
+WEND
+
+' Demo of an applied layout on screen
+COLOR , &HFFBBBBBB: CLS ' the image has slight gray halo so hide with gray background
+FOR x = 40 TO _WIDTH - 40 STEP 20
+ RotoZoom3 x, 15, s&, .2, .2, _PI(1.5 + .27)
+ RotoZoom3 x, _HEIGHT - 15, s&, .2, .2, _PI(.5 + .27)
+NEXT
+FOR y = 40 TO _HEIGHT - 40 STEP 20
+ RotoZoom3 15, y, s&, .2, .2, _PI(1 + .27)
+ RotoZoom3 _WIDTH - 15, y, s&, .2, .2, _PI(.27)
+NEXT
+FOR a = 0 TO _PI(2) STEP _PI(1 / 6)
+ x1 = xc + 200 * COS(a)
+ y1 = yc + 200 * SIN(a)
+ RotoZoom3 x1, y1, s&, 2, 2, a + ao
+NEXT
+_DISPLAY
+_DELAY 4
+
+'And finally a little show. What is better than a knife thrower throwing bananas?
+WHILE _KEYDOWN(27) = 0
+ CLS
+ drawKite xc, .9 * ymax, 600, a + ao
+ _DISPLAY
+ _LIMIT 30
+ a = a + _PI(2 / 360)
+WEND
+SYSTEM
+
+SUB drawKite (x, y, s, a)
+ RotoZoom3 x, y, s&, s / _WIDTH(s&), s / _HEIGHT(s&), a + ao
+ IF s > 10 THEN
+ drawKite x + .5 * s * COS(_PI(2) - a), (y - .25 * s) + .25 * s * SIN(_PI(2) - a), s / 1.5, a
+ drawKite x + .5 * s * COS(_PI + a), (y - .25 * s) + .25 * s * SIN(_PI + a), s / 1.5, a
+ END IF
+END SUB
+
+' Description:
+' Started from a mod of Galleon's in Wiki that both scales and rotates an image.
+' This version scales the x-axis and y-axis independently allowing rotations of image just by changing X or Y Scales
+' making this tightly coded routine a very powerful and versatile image tool.
+SUB RotoZoom3 (X AS LONG, Y AS LONG, Image AS LONG, xScale AS SINGLE, yScale AS SINGLE, radianRotation AS SINGLE)
+ ' This assumes you have set your drawing location with _DEST or default to screen.
+ ' X, Y - is where you want to put the middle of the image
+ ' Image - is the handle assigned with _LOADIMAGE
+ ' xScale, yScale - are shrinkage < 1 or magnification > 1 on the given axis, 1 just uses image size.
+ ' These are multipliers so .5 will create image .5 size on given axis and 2 for twice image size.
+ ' radianRotation is the Angle in Radian units to rotate the image
+ ' note: Radian units for rotation because it matches angle units of other Basic Trig functions
+ ' and saves a little time converting from degree.
+ ' Use the _D2R() function if you prefer to work in degree units for angles.
+
+ DIM px(3) AS SINGLE: DIM py(3) AS SINGLE ' simple arrays for x, y to hold the 4 corners of image
+ DIM W&, H&, sinr!, cosr!, i&, x2&, y2& ' variables for image manipulation
+ W& = _WIDTH(Image&): H& = _HEIGHT(Image&)
+ px(0) = -W& / 2: py(0) = -H& / 2 'left top corner
+ px(1) = -W& / 2: py(1) = H& / 2 ' left bottom corner
+ px(2) = W& / 2: py(2) = H& / 2 ' right bottom
+ px(3) = W& / 2: py(3) = -H& / 2 ' right top
+ sinr! = SIN(-radianRotation): cosr! = COS(-radianRotation) ' rotation helpers
+ FOR i& = 0 TO 3 ' calc new point locations with rotation and zoom
+ x2& = xScale * (px(i&) * cosr! + sinr! * py(i&)) + X: y2& = yScale * (py(i&) * cosr! - px(i&) * sinr!) + Y
+ px(i&) = x2&: py(i&) = y2&
+ NEXT
+ _MAPTRIANGLE _SEAMLESS(0, 0)-(0, H& - 1)-(W& - 1, H& - 1), Image TO(px(0), py(0))-(px(1), py(1))-(px(2), py(2))
+ _MAPTRIANGLE _SEAMLESS(0, 0)-(W& - 1, 0)-(W& - 1, H& - 1), Image TO(px(0), py(0))-(px(3), py(3))-(px(2), py(2))
+END SUB
+
+
diff --git a/samples/rotozoom3/src/another-rotozoom-demo.zip b/samples/rotozoom3/src/another-rotozoom-demo.zip
new file mode 100644
index 00000000..375022d4
Binary files /dev/null and b/samples/rotozoom3/src/another-rotozoom-demo.zip differ
diff --git a/samples/rotozoom3/src/tspike.png b/samples/rotozoom3/src/tspike.png
new file mode 100644
index 00000000..65798d30
Binary files /dev/null and b/samples/rotozoom3/src/tspike.png differ
diff --git a/samples/rotozoomer/index.md b/samples/rotozoomer/index.md
index 835dbf8a..03623401 100644
--- a/samples/rotozoomer/index.md
+++ b/samples/rotozoomer/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: ROTOZOOMER
@@ -16,16 +16,9 @@
'------------------------------------------------------------------------
```
-### QBjs
-
-> Please note that QBjs is still in early development and support for these examples is extremely experimental (meaning will most likely not work). With that out of the way, give it a try!
-
-* [LOAD "rotozoom.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?src=https://qb64.com/samples/rotozoomer/src/rotozoom.bas)
-* [RUN "rotozoom.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?mode=auto&src=https://qb64.com/samples/rotozoomer/src/rotozoom.bas)
-* [PLAY "rotozoom.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?mode=play&src=https://qb64.com/samples/rotozoomer/src/rotozoom.bas)
-
### File(s)
* [rotozoom.bas](src/rotozoom.bas)
+* [rotozoom_orig.bas](src/rotozoom_orig.bas)
🔗 [screensaver](../screensaver.md), [9 lines](../9-lines.md)
diff --git a/samples/rotozoomer/src/rotozoom_orig.bas b/samples/rotozoomer/src/rotozoom_orig.bas
new file mode 100644
index 00000000..99115559
--- /dev/null
+++ b/samples/rotozoomer/src/rotozoom_orig.bas
@@ -0,0 +1,14 @@
+' OPTIMIZED :) rotozoomer in 9 lines by Antoni Gual
+'for Rel's 9 LINER contest at QBASICNEWS.COM 1/2003
+'------------------------------------------------------------------------
+
+1 SCREEN 13
+2 ANG = ANG + .08
+3 CS% = COS(ANG) * ABS(SIN(ANG)) * 128
+4 ss% = SIN(ANG) * ABS(SIN(ANG)) * 128
+5 FOR Y% = -100 TO 99
+6 FOR X% = -160 TO 159
+7 PSET (X% + 160, Y% + 100), (((X% * CS% - Y% * ss%) AND (Y% * CS% + X% * ss%)) \ 128)
+8 NEXT X%, Y%
+9 IF LEN(INKEY$) = 0 THEN 2
+
diff --git a/samples/rpg.md b/samples/rpg.md
index e220a1d3..98f7bbcd 100644
--- a/samples/rpg.md
+++ b/samples/rpg.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: RPG
diff --git a/samples/rpgfan3233.md b/samples/rpgfan3233.md
index 3779fb32..910fbb84 100644
--- a/samples/rpgfan3233.md
+++ b/samples/rpgfan3233.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY RPGFAN3233
diff --git a/samples/rug/img/screenshot.png b/samples/rug/img/screenshot.png
new file mode 100644
index 00000000..5e30507d
Binary files /dev/null and b/samples/rug/img/screenshot.png differ
diff --git a/samples/rug/index.md b/samples/rug/index.md
new file mode 100644
index 00000000..848f1211
--- /dev/null
+++ b/samples/rug/index.md
@@ -0,0 +1,25 @@
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+
+## SAMPLE: RUG
+
+![screenshot.png](img/screenshot.png)
+
+### Description
+
+```text
+Simple coloured ascii smilies.
+```
+
+### QBjs
+
+> Please note that QBjs is still in early development and support for these examples is extremely experimental (meaning will most likely not work). With that out of the way, give it a try!
+
+* [LOAD "rug.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?src=https://qb64.com/samples/rug/src/rug.bas)
+* [RUN "rug.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?mode=auto&src=https://qb64.com/samples/rug/src/rug.bas)
+* [PLAY "rug.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?mode=play&src=https://qb64.com/samples/rug/src/rug.bas)
+
+### File(s)
+
+* [rug.bas](src/rug.bas)
+
+🔗 [graphics](../graphics.md), [ascii](../ascii.md), [legacy](../legacy.md)
diff --git a/samples/rug/src/rug.bas b/samples/rug/src/rug.bas
new file mode 100644
index 00000000..058d2c4f
--- /dev/null
+++ b/samples/rug/src/rug.bas
@@ -0,0 +1,22 @@
+CLS
+COLOR 2
+d% = 2
+w% = 2
+WHILE INKEY$ = ""
+LOCATE w%, d%
+RANDOMIZE TIMER
+c = INT(RND * 2)
+f = INT(RND * 15) + 1
+IF c = 0 THEN : FOR p = 1 TO 300: NEXT p: COLOR f: PRINT CHR$(1)
+
+IF c = 1 THEN : FOR p = 1 TO 300: NEXT p: COLOR f: PRINT CHR$(2)
+
+w% = w% + 1
+IF w% = 23 THEN
+d% = d% + 1
+w% = 2
+END IF
+IF d% = 80 THEN SLEEP 1: CLS : w% = 2: d% = 2
+
+WEND
+
diff --git a/samples/saver/index.md b/samples/saver/index.md
index 7276ff5c..2478308e 100644
--- a/samples/saver/index.md
+++ b/samples/saver/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: SAVER
diff --git a/samples/schemat/index.md b/samples/schemat/index.md
index 4450a5ab..64bfaa1d 100644
--- a/samples/schemat/index.md
+++ b/samples/schemat/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: SCHEMAT
diff --git a/samples/schematics.md b/samples/schematics.md
index 93cdc3a4..a1492ef1 100644
--- a/samples/schematics.md
+++ b/samples/schematics.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: SCHEMATICS
diff --git a/samples/science.md b/samples/science.md
index 864e15d8..5d19025a 100644
--- a/samples/science.md
+++ b/samples/science.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: SCIENCE
diff --git a/samples/scott-edwards.md b/samples/scott-edwards.md
index b72bb7ac..403d4161 100644
--- a/samples/scott-edwards.md
+++ b/samples/scott-edwards.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY SCOTT EDWARDS
diff --git a/samples/scramble/img/screenshot.png b/samples/scramble/img/screenshot.png
new file mode 100644
index 00000000..c2256c38
Binary files /dev/null and b/samples/scramble/img/screenshot.png differ
diff --git a/samples/scramble/index.md b/samples/scramble/index.md
new file mode 100644
index 00000000..65b29261
--- /dev/null
+++ b/samples/scramble/index.md
@@ -0,0 +1,26 @@
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+
+## SAMPLE: SCRAMBLE
+
+![screenshot.png](img/screenshot.png)
+
+### Description
+
+```text
+PRINT "Instructions:"
+PRINT STRING$(13, 196)
+PRINT " "; CHR$(254); " The object of the game is to restore the puzzle back to its initial state"
+PRINT SPACE$(3); "from a scrambled state."
+PRINT " "; CHR$(254); " To scramble the puzzle, press S."
+PRINT " "; CHR$(254); " To give up and reset the puzzle, type R."
+PRINT " "; CHR$(254); " To shift a row right, press the number of that row."
+PRINT " "; CHR$(254); " To move a tile up into the blank space, press the up arrow key."
+PRINT " "; CHR$(254); " To move a tile down into the blank space, press the down arrow key."
+```
+
+### File(s)
+
+* [scramble.bas](src/scramble.bas)
+* [scramble.exe](src/scramble.exe)
+
+🔗 [game](../game.md), [legacy](../legacy.md)
diff --git a/samples/scramble/src/scramble.bas b/samples/scramble/src/scramble.bas
new file mode 100644
index 00000000..3c6cfff4
--- /dev/null
+++ b/samples/scramble/src/scramble.bas
@@ -0,0 +1,117 @@
+DECLARE SUB SCRAMBLE ()
+DECLARE SUB GIVEUP ()
+DECLARE SUB UP ()
+DECLARE SUB DOWN ()
+DECLARE SUB ROTATE (ROW%)
+DEFINT A-Z
+DIM SHARED PUZZLE(0 TO 5, 0 TO 5)
+DIM COLORS(-1 TO 5)
+CLS
+FOR I = 0 TO 5
+READ COLORS(I)
+FOR J = 0 TO 5
+PUZZLE(I, J) = J
+NEXT
+NEXT
+DATA 8, 15, 12, 14, 10, 9
+PUZZLE(5, 5) = -1
+DO
+CLS
+FOR I = 0 TO 5
+PRINT I + 1;
+FOR J = 0 TO 5
+COLOR COLORS(PUZZLE(I, J))
+PRINT CHR$(219);
+NEXT
+COLOR 7: PRINT
+NEXT
+PRINT
+PRINT "Instructions:"
+PRINT STRING$(13, 196)
+PRINT " "; CHR$(254); " The object of the game is to restore the puzzle back to its initial state"
+PRINT SPACE$(3); "from a scrambled state."
+PRINT " "; CHR$(254); " To scramble the puzzle, press S."
+PRINT " "; CHR$(254); " To give up and reset the puzzle, type R."
+PRINT " "; CHR$(254); " To shift a row right, press the number of that row."
+PRINT " "; CHR$(254); " To move a tile up into the blank space, press the up arrow key."
+PRINT " "; CHR$(254); " To move a tile down into the blank space, press the down arrow key."
+N$ = ""
+WHILE N$ = ""
+N$ = INKEY$
+WEND
+SELECT CASE N$
+CASE "R", "r"
+CALL GIVEUP
+CASE "S", "s"
+CALL SCRAMBLE
+CASE "1"
+CALL ROTATE(0)
+CASE "2"
+CALL ROTATE(1)
+CASE "3"
+CALL ROTATE(2)
+CASE "4"
+CALL ROTATE(3)
+CASE "5"
+CALL ROTATE(4)
+CASE "6"
+CALL ROTATE(5)
+CASE CHR$(0) + CHR$(72)
+CALL UP
+CASE CHR$(0) + CHR$(80)
+CALL DOWN
+CASE CHR$(27)
+END
+END SELECT
+LOOP
+
+SUB DOWN
+FOR I = 0 TO 5
+FOR J = 0 TO 5
+K = PUZZLE(I, J)
+IF K = -1 THEN GOTO 2
+NEXT
+NEXT
+2 IF I = 0 THEN EXIT SUB
+SWAP PUZZLE(I - 1, J), PUZZLE(I, J)
+END SUB
+
+SUB GIVEUP
+FOR I = 0 TO 5
+FOR J = 0 TO 5
+PUZZLE(I, J) = J
+NEXT
+NEXT
+PUZZLE(5, 5) = -1
+END SUB
+
+SUB ROTATE (ROW)
+FOR I = 1 TO 5
+SWAP PUZZLE(ROW, 0), PUZZLE(ROW, I)
+NEXT
+END SUB
+
+SUB SCRAMBLE
+FOR I = 1 TO 1000
+J = INT(RND(1) * 8)
+SELECT CASE J
+CASE 0 TO 5
+CALL ROTATE(J)
+CASE 6
+CALL UP
+CASE 7
+CALL DOWN
+END SELECT
+NEXT
+END SUB
+
+SUB UP
+FOR I = 0 TO 5
+FOR J = 0 TO 5
+K = PUZZLE(I, J)
+IF K = -1 THEN GOTO 1
+NEXT
+NEXT
+1 IF I = 5 THEN EXIT SUB
+SWAP PUZZLE(I + 1, J), PUZZLE(I, J)
+END SUB
diff --git a/samples/scramble/src/scramble.exe b/samples/scramble/src/scramble.exe
new file mode 100644
index 00000000..7d31d282
Binary files /dev/null and b/samples/scramble/src/scramble.exe differ
diff --git a/samples/screen-tester/img/screenshot.png b/samples/screen-tester/img/screenshot.png
new file mode 100644
index 00000000..124c61c2
Binary files /dev/null and b/samples/screen-tester/img/screenshot.png differ
diff --git a/samples/screen-tester/index.md b/samples/screen-tester/index.md
new file mode 100644
index 00000000..8db237f3
--- /dev/null
+++ b/samples/screen-tester/index.md
@@ -0,0 +1,40 @@
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+
+## SAMPLE: SCREEN TESTER
+
+![screenshot.png](img/screenshot.png)
+
+### Author
+
+[🐝 patz2009](../patz2009.md)
+
+### Description
+
+```text
+' PQBC Screen Tester
+'-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+' This program looks big, but it is actually quite small. Run it through a
+' decommenter to see how small it is. Anyway, this program tests what screen
+' modes your graphics adapter supports. You can find one included with the
+' QuickBasic 4.5 examples, but this one is easier to manipulate and more
+' effective. This lists all the screen modes your computer supports, instead
+' of just a few. The REMs show the variables that can be manipulated.
+' This program is free to distribute as long as these first 12 lines of
+' comments are NOT removed and/or changed.
+' If you have questions/comments/suggestions, contact me at:
+' patz2009@yahoo.com
+```
+
+### QBjs
+
+> Please note that QBjs is still in early development and support for these examples is extremely experimental (meaning will most likely not work). With that out of the way, give it a try!
+
+* [LOAD "screen.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?src=https://qb64.com/samples/screen-tester/src/screen.bas)
+* [RUN "screen.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?mode=auto&src=https://qb64.com/samples/screen-tester/src/screen.bas)
+* [PLAY "screen.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?mode=play&src=https://qb64.com/samples/screen-tester/src/screen.bas)
+
+### File(s)
+
+* [screen.bas](src/screen.bas)
+
+🔗 [graphics](../graphics.md), [utility](../utility.md), [legacy](../legacy.md)
diff --git a/samples/screen-tester/src/screen.bas b/samples/screen-tester/src/screen.bas
new file mode 100644
index 00000000..03c0e240
--- /dev/null
+++ b/samples/screen-tester/src/screen.bas
@@ -0,0 +1,52 @@
+' PQBC Screen Tester
+'-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+' This program looks big, but it is actually quite small. Run it through a
+' decommenter to see how small it is. Anyway, this program tests what screen
+' modes your graphics adapter supports. You can find one included with the
+' QuickBasic 4.5 examples, but this one is easier to manipulate and more
+' effective. This lists all the screen modes your computer supports, instead
+' of just a few. The REMs show the variables that can be manipulated.
+' This program is free to distribute as long as these first 12 lines of
+' comments are NOT removed and/or changed.
+' If you have questions/comments/suggestions, contact me at:
+' patz2009@yahoo.com
+REM Variables
+REM ------------------------
+REM works > a supported screen mode
+REM nogo > error handling variable
+REM test > the screen mode being tested
+REM list$ > list of supported modes
+
+
+'-------------------START-OF-PROGRAM---------------------------------
+ON ERROR GOTO handler
+works = 50 ' Later replaced by the first working mode
+test = 1 ' Activates first mode to test (start at
+ ' 1 to test all screen modes)
+starttest:
+IF test = 14 THEN GOTO ender ' Ends since there is no SCREEN 14
+IF nogo = 0 THEN SCREEN test ' Core tester - activates a screen mode
+IF nogo = 0 THEN LET list$ = list$ + "," + STR$(test) ' Creates a list of
+ ' working screen modes.
+IF nogo = 0 AND works = 50 THEN LET works = test ' Generates a working screen
+ ' mode to display working
+ ' mode numbers.
+nogo = 0 ' Replaces error handler.
+test = test + 1 ' Tests a new screen mode.
+GOTO starttest ' Restarts the test.
+
+
+'----------------Display-working-screen-modes----------------------
+ender:
+SCREEN works ' Uses a working graphics mode.
+PRINT "Your graphics adapter supports screen" ' Displays your working
+PRINT "modes 0"; list$; "." ' screen modes.
+' NOTE: All graphics adapters support SCREEN 0
+END
+
+
+'------------------Error-handling-variable-activater---------------
+handler:
+LET nogo = 1 ' Activates the error handling variable.
+RESUME NEXT
+'-----------------------------------------------------------------
\ No newline at end of file
diff --git a/samples/screenblanker.md b/samples/screenblanker.md
index 2591d8d1..bdf32433 100644
--- a/samples/screenblanker.md
+++ b/samples/screenblanker.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: SCREENBLANKER
diff --git a/samples/screensaver.md b/samples/screensaver.md
index f4bd920f..e4b4f5a6 100644
--- a/samples/screensaver.md
+++ b/samples/screensaver.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: SCREENSAVER
@@ -86,6 +86,12 @@ Copyright (C) 1994-95 DOS Resource Guide/DOS World Published in Issue #17, Sept
'///Non Palette rotated plasma '///Relsoft 2003 '///Compile and see the speed. Didn't optimize i...
+**[Plasma Waves](plasma-waves/index.md)**
+
+[🐝 *missing*](author-missing.md) 🔗 [screensaver](screensaver.md), [plasma](plasma.md)
+
+'Wavy with Plama.bas for QB64 fork (B+=MGA) 2017-05-05 ' Wavy with Plasma Treatment.bas SmallBASI...
+
**[Rockets](rockets/index.md)**
[🐝 *missing*](author-missing.md) 🔗 [screensaver](screensaver.md), [particles](particles.md)
@@ -104,6 +110,12 @@ Screensaver with rocket-like particles.
1 ' SAVER.BAS by David Ferrier 2 ' Copyright (C) 1992 DOS Resource Guide 3 ' Published in Issu...
+**[SSaver](ssaver/index.md)**
+
+[🐝 *missing*](author-missing.md) 🔗 [screensaver](screensaver.md), [legacy](legacy.md)
+
+Filled circle screensaver.
+
**[Twirl](twirl/index.md)**
[🐝 Antoni Gual](antoni-gual.md) 🔗 [screensaver](screensaver.md), [9 lines](9-lines.md)
diff --git a/samples/set-fire-to-rain/index.md b/samples/set-fire-to-rain/index.md
index b3eaedf3..7039518e 100644
--- a/samples/set-fire-to-rain/index.md
+++ b/samples/set-fire-to-rain/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: SET FIRE TO RAIN
diff --git a/samples/shooter.md b/samples/shooter.md
index 9d51f6de..3fe130c4 100644
--- a/samples/shooter.md
+++ b/samples/shooter.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: SHOOTER
diff --git a/samples/shooter/index.md b/samples/shooter/index.md
index debd581f..53182f24 100644
--- a/samples/shooter/index.md
+++ b/samples/shooter/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: SHOOTER
@@ -10,17 +10,10 @@
1945-style shooter.
```
-### QBjs
-
-> Please note that QBjs is still in early development and support for these examples is extremely experimental (meaning will most likely not work). With that out of the way, give it a try!
-
-* [LOAD "shoot.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?src=https://qb64.com/samples/shooter/src/shoot.bas)
-* [RUN "shoot.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?mode=auto&src=https://qb64.com/samples/shooter/src/shoot.bas)
-* [PLAY "shoot.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?mode=play&src=https://qb64.com/samples/shooter/src/shoot.bas)
-
### File(s)
* [shoot.bas](src/shoot.bas)
* [shooter.zip](src/shooter.zip)
+* [shoot_orig.bas](src/shoot_orig.bas)
🔗 [game](../game.md), [shooter](../shooter.md)
diff --git a/samples/shooter/src/shoot_orig.bas b/samples/shooter/src/shoot_orig.bas
new file mode 100644
index 00000000..b25df62b
--- /dev/null
+++ b/samples/shooter/src/shoot_orig.bas
@@ -0,0 +1,276 @@
+'CHDIR ".\samples\qb64\original"
+
+deflng a-z
+SCREEN 13,,1,0
+
+_sndplayfile "ps2battl.mid"
+shootsound=_sndopen("fireball.wav","SYNC")
+
+'index,filename(.RAW),width,height
+DATA 1,ship1,21,27
+DATA 2,shot1,10,10
+DATA 3,evil1,93,80
+DATA 4,land1,320,56
+DATA 5,boom1,65,75
+
+dim shared spritedata(1000000) as _unsigned _byte
+dim shared freespritedata as long
+dim shared freesprite as long
+freesprite=1
+
+type spritetype
+x as integer
+y as integer
+index as long 'an index in the spritedata() array
+index2 as long 'optional secondary index
+halfx as integer
+halfy as integer
+end type
+dim shared s(1 to 1000) as spritetype
+
+'load sprites
+for i=1 to 5
+b$=" "
+read n
+read f$:f$=f$+".raw"
+read x,y
+open f$ for binary as #1
+if lof(1)<>x*y then screen 0:print "Error loading "+f$:end
+for y2=y-1 to 0 step -1
+for x2=0 to x-1
+get #1,,b$
+pset(x2,y2),asc(b$)
+next
+next
+close #1
+get (0,0)-(x-1,y-1),spritedata(freespritedata)
+s(freesprite).index=freespritedata
+freespritedata=freespritedata+x*y+4
+'create shadow
+for y2=y-1 to 0 step -1
+for x2=0 to x-1
+if point(x2,y2)<>254 then pset(x2,y2),18
+next
+next
+get (0,0)-(x-1,y-1),spritedata(freespritedata)
+s(freesprite).index2=freespritedata
+freespritedata=freespritedata+x*y+4
+s(freesprite).x=x:s(freesprite).y=y
+s(freesprite).halfx=x\2:s(freesprite).halfy=y\2
+freesprite=freesprite+1
+next
+
+type object
+active as integer
+x as integer
+y as integer
+z as integer 'height
+mx as integer
+my as integer
+sprite as integer
+end type
+
+'create objects
+dim o(1 to 1000) as object 'all game objects
+dim shared lastobject as integer
+lastobject=1000
+
+'create player
+i=newobject(o())
+o(i).sprite=1
+o(i).z=50
+o(i).active=20
+player=i
+
+_MOUSEHIDE
+
+'gameloop
+do
+
+do: loop while _MOUSEINPUT 'read all available mouse messages until current message
+
+'set player's position
+o(player).x=_mousex: o(player).y=_mousey
+
+'draw land
+landy=(landy+1) mod 56
+for i=-1 to 4
+put (0,i*56+landy),spritedata(s(4).index),_CLIP PSET,254
+next
+
+'draw enemy shadows
+for i=1 to lastobject
+if o(i).sprite=3 then displayshadow o(i)
+next
+
+'draw player's shadow
+displayshadow o(player)
+
+'draw enemies
+for i=1 to lastobject
+if o(i).sprite=3 then
+display o(i)
+move o(i)
+if o(i).y-s(o(i).sprite).halfy>200 then o(i).y=-1000
+end if
+next
+
+'draw bullets
+for i=1 to lastobject
+if o(i).sprite=2 then
+display o(i)
+move o(i)
+if offscreen(o(i)) then freeobject o(i)
+xshift=int(rnd*3)-1
+o(i).mx=o(i).mx+xshift
+o(i).my=o(i).my-1
+end if
+next
+
+'draw player
+display o(player)
+
+'draw explosion(s)
+for i=1 to lastobject
+if o(i).sprite=5 then
+for i2=1 to o(i).active
+rad=i2*5:halfrad=rad\2
+dx=rnd*rad-halfrad: dy=rnd*rad-halfrad
+displayat o(i).x+dx,o(i).y+dy,o(i)
+next
+move o(i)
+o(i).active=o(i).active-1
+if o(i).active=0 then freeobject o(i)
+end if
+next
+
+'hp bar
+x=60
+y=185
+line (x-1,y)-step(20*10+2,5),2,b
+line (x,y-1)-step(20*10,5+2),2,b
+line (x,y)-step(20*10,5),40,bf
+line (x,y)-step(o(player).active*10,5),47,bf
+
+pcopy 1,0
+
+'shoot?
+if _MOUSEBUTTON(1) then
+i=newobject(o())
+o(i).sprite=2
+o(i).x=o(player).x
+o(i).y=o(player).y-s(o(player).sprite).halfy
+o(i).my=-1
+_sndplaycopy shootsound
+end if
+
+'bullet->enemy collision
+for i=1 to lastobject
+if o(i).sprite=2 then 'bullet
+for i2=1 to lastobject
+if o(i2).sprite=3 then 'enemy
+if collision(o(i),o(i2)) then
+_sndplaycopy shootsound
+i3=newobject(o())
+o(i3).sprite=5
+o(i3).my=o(i2).my\2+1
+if o(i2).active>1 then 'hit (small explosion)
+o(i2).active=o(i2).active-1
+o(i3).x=o(i).x
+o(i3).y=o(i).y
+else 'destroyed (large explosion)
+o(i3).x=o(i2).x
+o(i3).y=o(i2).y
+o(i3).active=15
+freeobject o(i2) 'enemy
+end if
+freeobject o(i) 'bullet
+exit for
+end if 'collision
+end if
+next
+end if
+next
+
+'ship->enemy collision
+i=player
+for i2=1 to lastobject
+if o(i2).sprite=3 then 'enemy
+if collision(o(i),o(i2)) then
+o(i).active=o(i).active-1
+if o(i).active=0 then end
+exit for
+end if 'collision
+end if
+next
+
+'add new enemy?
+addenemy=addenemy+1
+if addenemy=50 then
+addenemy=0
+i=newobject(o())
+o(i).sprite=3
+o(i).x=rnd*320
+o(i).y=rnd*-1000-s(o(i).sprite).halfy
+o(i).my=3+rnd*6
+o(i).z=25+o(i).my*8
+o(i).active=15 'hp
+end if
+
+'speed limit main loop to 18.2 frames per second
+do: nt!=timer: loop while nt!=lt!
+lt!=nt!
+
+loop
+'end main loop
+
+sub move (o as object)
+o.x=o.x+o.mx
+o.y=o.y+o.my
+end sub
+
+sub display (o as object)
+put (o.x-s(o.sprite).halfx,o.y-s(o.sprite).halfy),spritedata(s(o.sprite).index),_CLIP PSET,254
+end sub
+
+sub displayat (x as integer,y as integer,o as object)
+put (x-s(o.sprite).halfx,y-s(o.sprite).halfy),spritedata(s(o.sprite).index),_CLIP PSET,254
+end sub
+
+
+sub displayshadow (o as object)
+put (o.x-s(o.sprite).halfx,o.y-s(o.sprite).halfy+o.z),spritedata(s(o.sprite).index2),_CLIP PSET,254
+end sub
+
+function newobject (o() as object)
+for i=1 to lastobject
+if o(i).active=0 then
+o(i).active=1
+o(i).mx=0: o(i).my=0
+o(i).z=0
+newobject=i
+exit function
+end if
+next
+screen 0: print "No more free objects available!":end
+end function
+
+function offscreen (o as object)
+if o.x+s(o.sprite).halfx<0 then offscreen=1:exit function
+if o.x-s(o.sprite).halfx>319 then offscreen=1:exit function
+if o.y+s(o.sprite).halfy<0 then offscreen=1:exit function
+if o.y-s(o.sprite).halfy>199 then offscreen=1:exit function
+end function
+
+sub freeobject (o as object)
+o.active=0
+o.sprite=0
+end sub
+
+function collision(o1 as object, o2 as object)
+if o1.y+s(o1.sprite).halfy Please note that QBjs is still in early development and support for these examples is extremely experimental (meaning will most likely not work). With that out of the way, give it a try!
-
-* [LOAD "sinecube.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?src=https://qb64.com/samples/sinecube/src/sinecube.bas)
-* [RUN "sinecube.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?mode=auto&src=https://qb64.com/samples/sinecube/src/sinecube.bas)
-* [PLAY "sinecube.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?mode=play&src=https://qb64.com/samples/sinecube/src/sinecube.bas)
-
### File(s)
* [sinecube.bas](src/sinecube.bas)
+* [sinecube_orig.bas](src/sinecube_orig.bas)
🔗 [graphics](../graphics.md)
diff --git a/samples/sinecube/src/sinecube_orig.bas b/samples/sinecube/src/sinecube_orig.bas
new file mode 100644
index 00000000..123acea3
--- /dev/null
+++ b/samples/sinecube/src/sinecube_orig.bas
@@ -0,0 +1,50 @@
+'sinecube 2006 mennonite
+'public domain
+
+DIM blox(40, 40, 40) AS INTEGER
+
+SCREEN 12: LINE (0, 0)-(639, 479), , B
+
+l = 8
+
+B$ = B$ + "00000000..."
+B$ = B$ + "llnnnnnnl.."
+B$ = B$ + "l8lnnnnnnl."
+B$ = B$ + "l88llllllll"
+B$ = B$ + "l88l000000l"
+B$ = B$ + "l88l000000l"
+B$ = B$ + "l88l000000l"
+B$ = B$ + "l88l000000l"
+B$ = B$ + ".l8l000000l"
+B$ = B$ + "..ll000000l"
+B$ = B$ + "...llllllll"
+
+blox(2, 3, 32) = 1
+
+FOR l = 8 * 32 TO 1 STEP -8
+
+FOR y = 4 TO 4 * 32 STEP 4
+FOR x = 8 * 32 TO 1 STEP -8
+
+mm = SIN(x * y * l * 3.14): if mm<0 then mm=-1 else if mm>0 then mm=1
+IF blox(x / 8, y / 4, l / 8) = mm + 1 THEN
+FOR by = 1 TO 11
+FOR bx = 1 TO 11
+IF right$(left$(b$,(by - 1) * 11 + bx),1) <> "." THEN
+z = 11
+PSET (x + bx - 1 + y - 3, by - 1 + y + l + 4), ASC(right$(left$(b$,(by - 1) * 11 + bx),1)) MOD 16 + (y MOD 2)
+END IF
+
+NEXT bx
+NEXT by
+
+END IF
+IF INKEY$ = CHR$(27) THEN END
+
+NEXT x
+
+t = TIMER: DO: LOOP UNTIL t <> TIMER
+
+NEXT y
+
+NEXT l
\ No newline at end of file
diff --git a/samples/skydiver/img/screenshot.png b/samples/skydiver/img/screenshot.png
new file mode 100644
index 00000000..2825cd60
Binary files /dev/null and b/samples/skydiver/img/screenshot.png differ
diff --git a/samples/skydiver/index.md b/samples/skydiver/index.md
new file mode 100644
index 00000000..1a82592b
--- /dev/null
+++ b/samples/skydiver/index.md
@@ -0,0 +1,52 @@
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+
+## SAMPLE: SKYDIVER
+
+![screenshot.png](img/screenshot.png)
+
+### Author
+
+[🐝 Jeremy Ruten](../jeremy-ruten.md)
+
+### Description
+
+```text
+PRINT "Welcome to Skydiver!"
+PRINT "The object of the game is to"
+PRINT "jump out of your airplane and"
+PRINT "land in the pool. If you think"
+PRINT "that you aren't going to make"
+PRINT "it then you can use the arrow keys"
+PRINT "when you are falling in the air."
+PRINT "You must press space bar to jump."
+PRINT "The pool will get smaller each time."
+PRINT "You need 20 successful jumps for this"
+PRINT "level."
+
+PRINT "- Wind that pushes you while you're in the air"
+PRINT "- High Scores"
+PRINT "- Automatic Speed Checker"
+PRINT "- Cheats and Passwords"
+PRINT "- A system where you earn money and lose money"
+PRINT "- Buy new and better equipment"
+PRINT "- Save/Load Game (Money Version)"
+PRINT "- Gravity/parachutes"
+PRINT "- Better Graphics (i.e. airplane and skydiver)"
+PRINT
+PRINT "E-mail me for more suggestions!"
+PRINT "jeremy.ruten@gmail.com"
+```
+
+### QBjs
+
+> Please note that QBjs is still in early development and support for these examples is extremely experimental (meaning will most likely not work). With that out of the way, give it a try!
+
+* [LOAD "skydiver.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?src=https://qb64.com/samples/skydiver/src/skydiver.bas)
+* [RUN "skydiver.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?mode=auto&src=https://qb64.com/samples/skydiver/src/skydiver.bas)
+* [PLAY "skydiver.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?mode=play&src=https://qb64.com/samples/skydiver/src/skydiver.bas)
+
+### File(s)
+
+* [skydiver.bas](src/skydiver.bas)
+
+🔗 [game](../game.md), [legacy](../legacy.md)
diff --git a/samples/skydiver/src/skydiver.bas b/samples/skydiver/src/skydiver.bas
new file mode 100644
index 00000000..d7986df7
--- /dev/null
+++ b/samples/skydiver/src/skydiver.bas
@@ -0,0 +1,211 @@
+menu:
+CLS
+LOCATE 10, 30
+PRINT "1) Try first two levels"
+LOCATE 12, 30
+PRINT "2) See New Features"
+LOCATE 14, 30
+PRINT "3) Quit"
+PRINT
+PRINT "Select your choice"
+DO
+i$ = INKEY$
+IF i$ = "1" THEN GOTO beginning
+IF i$ = "2" THEN GOTO newfeatures
+IF i$ = "3" THEN END
+LOOP
+
+beginning:
+DIM ambulance(20, 10)
+SCREEN 13
+FOR y = 1 TO 10
+FOR x = 1 TO 20
+READ clr
+IF clr = 1 THEN PSET (x, y), 15
+IF clr = 2 THEN PSET (x, y), 4
+IF clr = 3 THEN PSET (x, y), 3
+IF clr = 4 THEN PSET (x, y), 4
+IF clr = 7 THEN PSET (x, y), 7
+NEXT x
+NEXT y
+GET (1, 1)-(20, 10), ambulance
+
+RANDOMIZE TIMER / 3
+lives = 5 'NUMBER OF TIMES PLAYER IS ALLOWED TO MISS POOL+++++DEFAULT = 5
+score = 0 'SCORE THE PLAYER STARTS OUT WITH+++++DEFAULT = 0
+poolwidth = 100 'WIDTH OF GOAL IN PIXELS+++++DEFAULT = 100
+speed = 2000 'SPEED OF AIRPLANE+++++DEFAULT = 2000
+
+CLS
+PRINT "Welcome to Skydiver!"
+PRINT "The object of the game is to"
+PRINT "jump out of your airplane and"
+PRINT "land in the pool. If you think"
+PRINT "that you aren't going to make"
+PRINT "it then you can use the arrow keys"
+PRINT "when you are falling in the air."
+PRINT "You must press space bar to jump."
+PRINT "The pool will get smaller each time."
+PRINT "You need 20 successful jumps for this"
+PRINT "level."
+PRINT
+PRINT "Good Luck! Press enter."
+DO
+LOOP UNTIL INKEY$ = CHR$(13)
+GOTO more
+
+
+level2start:
+score = 0
+lives = 5
+speed = 1000
+poolwidth = 100
+
+
+more:
+CLS
+x = 1 'STARTING LOCATION OF AIRPLANE AND SKYDIVER+++++DEFAULT = 1
+y = 5 'STARTING LOCATION OF AIRPLANE AND SKYDIVER+++++DEFAULT = 5
+poolx = INT(RND(1) * (320 - poolwidth)) + 1'RANDOM LOCATION OF POOL
+LINE (1, 190)-(320, 200), 6, BF 'DRAW GRAVEL
+LINE (1, 189)-(320, 189), 10 'DRAW GRASS
+LINE (poolx, 189)-(poolx + poolwidth, 194), 1, BF 'DRAW POOL
+LOCATE 3, 1
+PRINT "Score: "; score
+PRINT "Lives: "; lives
+DO
+ i$ = INKEY$
+ x = x + 1
+ CIRCLE (x, y), 5, 15
+ PSET (x, y), 14
+ IF x = 300 THEN x = 1
+ FOR nothing = 1 TO speed
+ nothing2 = nothing2 + 1
+ IF nothing2 > 10000 THEN WAIT &H3DA, 8: WAIT &H3DA, 8, 8: nothing2 = 0
+ NEXT nothing
+ CIRCLE (x, y), 5, 0
+ PSET (x, y), 0
+ IF i$ = " " THEN GOTO drop
+ LINE (295, 1)-(305, 10), 0, BF
+LOOP UNTIL i$ = CHR$(27)
+END
+
+drop:
+CIRCLE (x, y), 5, 15
+FOR skyy = y TO 190 - y
+ i$ = INKEY$
+ IF i$ = CHR$(0) + CHR$(77) AND x <> 320 AND x <> 319 AND x <> 318 THEN x = x + 2
+ IF i$ = CHR$(0) + CHR$(75) AND x <> 1 AND x <> 2 AND x <> 3 THEN x = x - 2
+ PSET (x, skyy), 14
+ FOR nothing = 1 TO speed
+ NEXT nothing
+ PSET (x, skyy), 0
+NEXT skyy
+FOR poolcheck = poolx TO poolx + poolwidth
+ IF x = poolcheck THEN GOTO win
+NEXT poolcheck
+
+FOR amb = 300 TO x STEP -1
+ PUT (amb, 179), ambulance
+ FOR nothing = 1 TO speed: NEXT nothing
+ LINE (amb, 179)-(amb + 20, 179 + 10), 0, BF
+NEXT amb
+PUT (amb, 179), ambulance
+SLEEP 1
+FOR amb = x TO 1 STEP -1
+ PUT (amb, 179), ambulance
+ FOR nothing = 1 TO speed: NEXT nothing
+ LINE (amb, 179)-(amb + 20, 179 + 10), 0, BF
+NEXT amb
+lives = lives - 1
+IF lives = 0 THEN GOTO lose
+GOTO more
+
+win:
+score = score + 1
+poolwidth = poolwidth - 5
+IF score >= 20 THEN GOTO level2
+GOTO more
+
+lose:
+LOCATE 12, 10
+PRINT "Sorry, you have lost!"
+LOCATE 13, 10
+PRINT "You ended up with "; score
+LOCATE 14, 10
+PRINT "successful dives!"
+LOCATE 15, 10
+PRINT "Congratulations!"
+DO
+LOOP UNTIL INKEY$ = CHR$(13)
+END
+
+level2:
+IF speed = 1000 THEN GOTO level3
+CLS
+PRINT "Congratulations! You made it!"
+PRINT "Now you can go to level 2!"
+PRINT "This time you fall faster, and"
+PRINT "still need 20 successful jumps!"
+PRINT
+PRINT "Press enter to start."
+DO
+LOOP UNTIL INKEY$ = CHR$(13)
+GOTO level2start
+
+
+level3:
+CLS
+PRINT "Congratulations! You have finished"
+PRINT "the first 2 levels in this game demo!"
+PRINT "Sorry, but that's all that is included"
+PRINT "in this demo! I'm making more levels"
+PRINT "and new features though!!"
+PRINT
+PRINT "Press escape to quit or press enter"
+PRINT "to see the new features that are coming"
+DO
+i$ = INKEY$
+IF i$ = CHR$(27) THEN END
+IF i$ = CHR$(13) THEN GOTO newfeatures
+LOOP
+
+
+
+ambulence:
+DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+DATA 0,0,0,0,0,0,0,0,0,2,2,0,0,0,0,0,0,0,0,0
+DATA 0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0
+DATA 0,0,0,0,0,0,0,1,3,3,1,1,1,1,1,1,1,1,1,0
+DATA 0,1,1,1,1,1,1,1,3,3,1,1,4,4,1,1,1,1,1,0
+DATA 0,1,1,1,1,1,1,1,1,1,1,4,4,4,4,1,1,1,1,0
+DATA 0,1,1,1,1,1,1,1,1,1,1,1,4,4,1,1,1,1,1,0
+DATA 0,1,1,7,1,1,1,1,1,1,1,1,1,1,1,1,7,1,1,0
+DATA 0,1,7,0,7,1,1,1,1,1,1,1,1,1,1,7,0,7,1,0
+DATA 0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0
+
+
+
+
+
+newfeatures:
+CLS
+PRINT "- Wind that pushes you while you're in the air"
+PRINT "- High Scores"
+PRINT "- Automatic Speed Checker"
+PRINT "- Cheats and Passwords"
+PRINT "- A system where you earn money and lose money"
+PRINT "- Buy new and better equipment"
+PRINT "- Save/Load Game (Money Version)"
+PRINT "- Gravity/parachutes"
+PRINT "- Better Graphics (i.e. airplane and skydiver)"
+PRINT
+PRINT "E-mail me for more suggestions!"
+PRINT "jeremy.ruten@gmail.com"
+PRINT
+PRINT "Press enter"
+DO
+i$ = INKEY$
+LOOP UNTIL i$ = CHR$(13)
+GOTO menu
+
diff --git a/samples/slot/index.md b/samples/slot/index.md
index e628ae57..42d60c1c 100644
--- a/samples/slot/index.md
+++ b/samples/slot/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: SLOT
diff --git a/samples/snake-basic/index.md b/samples/snake-basic/index.md
index a2480886..f7954347 100644
--- a/samples/snake-basic/index.md
+++ b/samples/snake-basic/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: SNAKE BASIC
diff --git a/samples/snake.md b/samples/snake.md
index c142b29d..573e4f77 100644
--- a/samples/snake.md
+++ b/samples/snake.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: SNAKE
diff --git a/samples/sokoban/index.md b/samples/sokoban/index.md
index d0012e51..eb45beb2 100644
--- a/samples/sokoban/index.md
+++ b/samples/sokoban/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: SOKOBAN
diff --git a/samples/sort-demo/index.md b/samples/sort-demo/index.md
index 8b6e298b..170cc946 100644
--- a/samples/sort-demo/index.md
+++ b/samples/sort-demo/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: SORT DEMO
diff --git a/samples/sort.md b/samples/sort.md
index e0f16f5e..81fe62bd 100644
--- a/samples/sort.md
+++ b/samples/sort.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: SORT
diff --git a/samples/sort/index.md b/samples/sort/index.md
index 4485bb55..6e9afae8 100644
--- a/samples/sort/index.md
+++ b/samples/sort/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: SORT
diff --git a/samples/sound.md b/samples/sound.md
index 2715e382..f05b655b 100644
--- a/samples/sound.md
+++ b/samples/sound.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: SOUND
diff --git a/samples/space-invaders.md b/samples/space-invaders.md
index 7d4bdc7e..4dd2eda1 100644
--- a/samples/space-invaders.md
+++ b/samples/space-invaders.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: SPACE INVADERS
diff --git a/samples/space-invaders/index.md b/samples/space-invaders/index.md
index c881dda7..6e4fc811 100644
--- a/samples/space-invaders/index.md
+++ b/samples/space-invaders/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: SPACE INVADERS
diff --git a/samples/space-shooter.md b/samples/space-shooter.md
index d3d56c3b..f7ebde9a 100644
--- a/samples/space-shooter.md
+++ b/samples/space-shooter.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: SPACE SHOOTER
diff --git a/samples/space64/index.md b/samples/space64/index.md
index 6339479c..485ab4df 100644
--- a/samples/space64/index.md
+++ b/samples/space64/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: SPACE64
diff --git a/samples/spaceship/index.md b/samples/spaceship/index.md
index 7c803000..72f51204 100644
--- a/samples/spaceship/index.md
+++ b/samples/spaceship/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: SPACESHIP
diff --git a/samples/sphere.md b/samples/sphere.md
index 93dc0151..7e25054b 100644
--- a/samples/sphere.md
+++ b/samples/sphere.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: SPHERE
diff --git a/samples/spiral.md b/samples/spiral.md
index c2f97205..17f6eeea 100644
--- a/samples/spiral.md
+++ b/samples/spiral.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: SPIRAL
diff --git a/samples/splines/index.md b/samples/splines/index.md
index e263b772..8c512f81 100644
--- a/samples/splines/index.md
+++ b/samples/splines/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: SPLINES
diff --git a/samples/split.md b/samples/split.md
new file mode 100644
index 00000000..9a5cea19
--- /dev/null
+++ b/samples/split.md
@@ -0,0 +1,9 @@
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+
+## SAMPLES: SPLIT
+
+**[SplitJoin](splitjoin/index.md)**
+
+[🐝 luke](luke.md) 🔗 [data management](data-management.md), [split](split.md)
+
+Given a string of words separated by spaces (or any other character), splits it into an array of ...
diff --git a/samples/splitjoin/img/screenshot.png b/samples/splitjoin/img/screenshot.png
new file mode 100644
index 00000000..565aeea3
Binary files /dev/null and b/samples/splitjoin/img/screenshot.png differ
diff --git a/samples/splitjoin/index.md b/samples/splitjoin/index.md
new file mode 100644
index 00000000..d96323ca
--- /dev/null
+++ b/samples/splitjoin/index.md
@@ -0,0 +1,34 @@
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+
+## SAMPLE: SPLITJOIN
+
+![screenshot.png](img/screenshot.png)
+
+### Author
+
+[🐝 luke](../luke.md)
+
+### Description
+
+```text
+Given a string of words separated by spaces (or any other character), splits it into an array of the words. I've no doubt many people have written a version of this over the years and no doubt there's a million ways to do it, but I thought I'd put mine here so we have at least one version. There's also a join function that does the opposite array -> single string.
+
+Code is hopefully reasonably self explanatory with comments and a little demo. Note, this is akin to Python/JavaScript split/join, PHP explode/implode.
+```
+
+### QBjs
+
+> Please note that QBjs is still in early development and support for these examples is extremely experimental (meaning will most likely not work). With that out of the way, give it a try!
+
+* [LOAD "splitjoin.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?src=https://qb64.com/samples/splitjoin/src/splitjoin.bas)
+* [RUN "splitjoin.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?mode=auto&src=https://qb64.com/samples/splitjoin/src/splitjoin.bas)
+* [PLAY "splitjoin.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?mode=play&src=https://qb64.com/samples/splitjoin/src/splitjoin.bas)
+
+### File(s)
+
+* [splitjoin.bas](src/splitjoin.bas)
+
+🔗 [data management](../data-management.md), [split](../split.md)
+
+
+Reference: [qb64forum](https://qb64forum.alephc.xyz/index.php?topic=1073.0)
diff --git a/samples/splitjoin/src/splitjoin.bas b/samples/splitjoin/src/splitjoin.bas
new file mode 100644
index 00000000..c8ddacd5
--- /dev/null
+++ b/samples/splitjoin/src/splitjoin.bas
@@ -0,0 +1,46 @@
+ReDim words$(0)
+
+original$ = "The rain in Spain "
+Print "Original string: "; original$
+Print
+
+split original$, " ", words$()
+
+Print "Words:"
+For i = LBound(words$) To UBound(words$)
+ Print words$(i)
+Next i
+Print
+
+Print "Joined with commas: "; join$(words$(), ",")
+
+'Split in$ into pieces, chopping at every occurrence of delimiter$. Multiple consecutive occurrences
+'of delimiter$ are treated as a single instance. The chopped pieces are stored in result$().
+'
+'delimiter$ must be one character long.
+'result$() must have been REDIMmed previously.
+Sub split (in$, delimiter$, result$())
+ ReDim result$(-1)
+ start = 1
+ Do
+ While Mid$(in$, start, 1) = delimiter$
+ start = start + 1
+ If start > Len(in$) Then Exit Sub
+ Wend
+ finish = InStr(start, in$, delimiter$)
+ If finish = 0 Then finish = Len(in$) + 1
+ ReDim _Preserve result$(0 To UBound(result$) + 1)
+ result$(UBound(result$)) = Mid$(in$, start, finish - start)
+ start = finish + 1
+ Loop While start <= Len(in$)
+End Sub
+
+'Combine all elements of in$() into a single string with delimiter$ separating the elements.
+Function join$ (in$(), delimiter$)
+ result$ = in$(LBound(in$))
+ For i = LBound(in$) + 1 To UBound(in$)
+ result$ = result$ + delimiter$ + in$(i)
+ Next i
+ join$ = result$
+end function
+
diff --git a/samples/square-counter/img/screenshot.png b/samples/square-counter/img/screenshot.png
new file mode 100644
index 00000000..c6316b8e
Binary files /dev/null and b/samples/square-counter/img/screenshot.png differ
diff --git a/samples/square-counter/index.md b/samples/square-counter/index.md
new file mode 100644
index 00000000..f1fda58c
--- /dev/null
+++ b/samples/square-counter/index.md
@@ -0,0 +1,34 @@
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+
+## SAMPLE: SQUARE COUNTER
+
+![screenshot.png](img/screenshot.png)
+
+### Author
+
+[🐝 Paulunknown](../paulunknown.md)
+
+### Description
+
+```text
+PRINT " This is a program used to count squares or rectangles for"
+PRINT " people who don't want to waste their time on solving annoying"
+PRINT " long puzzles where they need to count how many squares or rectangles"
+PRINT " are in a certain grid. NOTE: A 3 by 3 grid don't just have 9, it also"
+PRINT " count the bigger ones (like the grid itself). So a 3 by 3 have 14"
+PRINT " squares in total."
+```
+
+### QBjs
+
+> Please note that QBjs is still in early development and support for these examples is extremely experimental (meaning will most likely not work). With that out of the way, give it a try!
+
+* [LOAD "rect2.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?src=https://qb64.com/samples/square-counter/src/rect2.bas)
+* [RUN "rect2.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?mode=auto&src=https://qb64.com/samples/square-counter/src/rect2.bas)
+* [PLAY "rect2.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?mode=play&src=https://qb64.com/samples/square-counter/src/rect2.bas)
+
+### File(s)
+
+* [rect2.bas](src/rect2.bas)
+
+🔗 [legacy](../legacy.md)
diff --git a/samples/square-counter/src/rect2.bas b/samples/square-counter/src/rect2.bas
new file mode 100644
index 00000000..a144289d
--- /dev/null
+++ b/samples/square-counter/src/rect2.bas
@@ -0,0 +1,92 @@
+SCREEN 12
+title:
+CLS
+LOCATE 15, 25
+PRINT "Welcome to Square Counter 2"
+LOCATE 16, 23
+PRINT "Press 's' for counting squares only."
+LOCATE 17, 23
+PRINT "Press 'r' for counting rectangles."
+LOCATE 18, 23
+PRINT "Press 'i' for explanation."
+LOCATE 19, 23
+PRINT "Press 'x' to quit."
+DO
+key$ = INKEY$
+LOOP UNTIL key$ = "s" OR key$ = "r" OR key$ = "x" OR key$ = "i"
+SELECT CASE key$
+ CASE IS = "s"
+ GOSUB squares
+ CASE IS = "r"
+ GOSUB rectangles
+ CASE IS = "i"
+ GOSUB explain
+ CASE IS = "x"
+ GOSUB ending
+END SELECT
+
+squares:
+CLS
+oldxsquare = 0
+xsquare = 0
+LOCATE 15, 25
+INPUT "Enter the length of a side:", x
+LOCATE 16, 25
+INPUT "Enter the length of other side:", y
+x = x + 1
+y = y + 1
+DO
+oldxsquare = xsquare
+x = x - 1
+y = y - 1
+xsquare = x * y
+xsquare = xsquare + oldxsquare
+LOOP UNTIL x = 1 OR y = 1
+LOCATE 17, 24
+PRINT xsquare
+SLEEP
+GOSUB title
+
+rectangles:
+CLS
+oldxsquare2 = 0
+xsquare2 = 0
+LOCATE 15, 25
+INPUT "Enter the length of a side:", x2
+LOCATE 16, 25
+INPUT "Enter the length of other side:", y2
+x2 = x2 + 1
+y2 = y2 + 1
+DO
+oldxsquare2 = xsquare2
+x2 = x2 - 1
+y2 = y2 - 1
+xy = x2 + y2
+xsquare2 = x2 * y2 * (xy / 2)
+xsquare2 = xsquare2 + oldxsquare2
+LOOP UNTIL x2 = 1 OR y2 = 1
+LOCATE 17, 24
+PRINT xsquare2
+SLEEP
+GOSUB title
+
+explain:
+CLS
+LOCATE 5, 5
+PRINT " This is a program used to count squares or rectangles for"
+PRINT " people who don't want to waste their time on solving annoying"
+PRINT " long puzzles where they need to count how many squares or rectangles"
+PRINT " are in a certain grid. NOTE: A 3 by 3 grid don't just have 9, it also"
+PRINT " count the bigger ones (like the grid itself). So a 3 by 3 have 14"
+PRINT " squares in total."
+SLEEP
+GOSUB title
+
+ending:
+CLS
+LOCATE 1, 1
+PRINT " I hope this will help with your puzzles."
+PRINT " Please give me comments on this."
+PRINT ""
+PRINT " By Paulunknown, creator of 'Zodiac'"
+END
\ No newline at end of file
diff --git a/samples/ssaver/img/screenshot.png b/samples/ssaver/img/screenshot.png
new file mode 100644
index 00000000..eb740b68
Binary files /dev/null and b/samples/ssaver/img/screenshot.png differ
diff --git a/samples/ssaver/index.md b/samples/ssaver/index.md
new file mode 100644
index 00000000..e4fa08f1
--- /dev/null
+++ b/samples/ssaver/index.md
@@ -0,0 +1,25 @@
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+
+## SAMPLE: SSAVER
+
+![screenshot.png](img/screenshot.png)
+
+### Description
+
+```text
+Filled circle screensaver.
+```
+
+### QBjs
+
+> Please note that QBjs is still in early development and support for these examples is extremely experimental (meaning will most likely not work). With that out of the way, give it a try!
+
+* [LOAD "ssaver.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?src=https://qb64.com/samples/ssaver/src/ssaver.bas)
+* [RUN "ssaver.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?mode=auto&src=https://qb64.com/samples/ssaver/src/ssaver.bas)
+* [PLAY "ssaver.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?mode=play&src=https://qb64.com/samples/ssaver/src/ssaver.bas)
+
+### File(s)
+
+* [ssaver.bas](src/ssaver.bas)
+
+🔗 [screensaver](../screensaver.md), [legacy](../legacy.md)
diff --git a/samples/ssaver/src/ssaver.bas b/samples/ssaver/src/ssaver.bas
new file mode 100644
index 00000000..bcc0cd49
--- /dev/null
+++ b/samples/ssaver/src/ssaver.bas
@@ -0,0 +1,14 @@
+REM THIS PROGRAM IS IN T3H PUBLIC DOMAIN
+
+SCREEN 12
+LINE (0, 0)-(640, 480), 15, BF
+DO
+X = INT(RND(1) * 640)
+Y = INT(RND(1) * 480)
+Z = INT(RND(1) * 50) + 10
+COLOUR = INT(RND(1) * 14) + 1
+COLOR COLOUR
+CIRCLE (X, Y), Z, COLOUR
+PAINT (X, Y), COLOUR
+IF INKEY$ = CHR$(27) THEN EXIT DO
+LOOP
\ No newline at end of file
diff --git a/samples/star-battles/img/screenshot.png b/samples/star-battles/img/screenshot.png
new file mode 100644
index 00000000..ee198a4f
Binary files /dev/null and b/samples/star-battles/img/screenshot.png differ
diff --git a/samples/star-battles/index.md b/samples/star-battles/index.md
new file mode 100644
index 00000000..71cc011b
--- /dev/null
+++ b/samples/star-battles/index.md
@@ -0,0 +1,25 @@
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+
+## SAMPLE: STAR BATTLES
+
+![screenshot.png](img/screenshot.png)
+
+### Description
+
+```text
+Two players battle in starships.
+```
+
+### QBjs
+
+> Please note that QBjs is still in early development and support for these examples is extremely experimental (meaning will most likely not work). With that out of the way, give it a try!
+
+* [LOAD "space1.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?src=https://qb64.com/samples/star-battles/src/space1.bas)
+* [RUN "space1.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?mode=auto&src=https://qb64.com/samples/star-battles/src/space1.bas)
+* [PLAY "space1.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?mode=play&src=https://qb64.com/samples/star-battles/src/space1.bas)
+
+### File(s)
+
+* [space1.bas](src/space1.bas)
+
+🔗 [game](../game.md), [2 player](../2-player.md), [legacy](../legacy.md)
diff --git a/samples/star-battles/src/space1.bas b/samples/star-battles/src/space1.bas
new file mode 100644
index 00000000..4cf6e777
--- /dev/null
+++ b/samples/star-battles/src/space1.bas
@@ -0,0 +1,498 @@
+CLS
+
+RANDOMIZE TIMER
+LET ylength = 31
+LET xlength = 41
+
+DIM sx(100)
+DIM sy(100)
+DIM ship1r(xlength, ylength)
+DIM ship2l(xlength, ylength)
+DIM ship1l(xlength, ylength)
+DIM ship2r(xlength, ylength)
+
+DIM bullet2(6, 6)
+DIM bullet1(6, 6)
+
+
+DO
+
+
+
+
+
+
+
+LOCATE 8, 28
+COLOR 11 + 16
+PRINT "Welcome to Star Battles"
+COLOR 14
+LOCATE 10, 10
+PRINT "Player 1: ";
+COLOR 12
+PRINT "Press A for left, D for right, W for up, S for down, and Spacebar to shoot."
+COLOR 14
+LOCATE 12, 10
+PRINT "Player 2: ";
+COLOR 9
+PRINT "Press 4 for left, 6 for right, 8 for up, 5 for down, and Backspace to shoot."
+LOCATE 15, 10
+COLOR 15
+PRINT "(Player 2 use Number Pad, NumLock must be on)"
+LOCATE 16, 10
+PRINT "(Player 1, CapsLock must be off)"
+LOCATE 17, 10
+COLOR 13
+PRINT "Press P to play"
+LOOP UNTIL INKEY$ = "p" OR INKEY$ = "P"
+CLS
+
+
+DO
+FOR i = 1 TO 500: NEXT i
+CLS
+SCREEN 12
+
+LOCATE 12, 36
+COLOR 14
+PRINT "3"
+PLAY "o4"
+PLAY "L8"
+PLAY "C"
+FOR i = 1 TO 100000: NEXT i
+LOCATE 12, 36
+COLOR 14
+PRINT "2"
+PLAY "C"
+FOR i = 1 TO 100000: NEXT i
+
+LOCATE 12, 36
+COLOR 14
+PRINT "1"
+PLAY "C"
+FOR i = 1 TO 100000: NEXT i
+
+
+LOCATE 12, 34
+COLOR 14
+PRINT "BATTLE!"
+PLAY "L4"
+PLAY "G"
+FOR i = 1 TO 100000: NEXT i
+
+
+
+
+SCREEN 9, 0, 1, 0
+
+LET ylength = 31
+LET xlength = 41
+REM get ship 1 into array
+
+FOR q = 1 TO ylength
+ a = 100
+ FOR z = 1 TO xlength
+ READ c
+ PSET (z, q), c
+ PSET (z + a, q), c
+ a = a - 2
+ NEXT z
+NEXT q
+
+GET (0, 0)-(xlength, ylength), ship1r
+GET (59, 0)-(100, ylength), ship1l
+
+CLS
+FOR q = 1 TO ylength
+ a = 100
+ FOR z = 1 TO xlength
+ READ c
+ IF c = 12 THEN LET c = 9
+ PSET (z, q), c
+ PSET (z + a, q), c
+ a = a - 2
+ NEXT z
+NEXT q
+GET (0, 0)-(xlength, ylength), ship2l
+GET (60, 0)-(100, ylength), ship2r
+
+LET x = z
+LET y = q
+
+LET y2 = q
+
+CLS
+
+CIRCLE (3, 3), 2, 14
+GET (1, 1)-(6, 6), bullet1
+
+CLS
+
+CIRCLE (3, 3), 2, 10
+GET (1, 1)-(6, 6), bullet2
+
+CLS
+
+LET p1h = 100
+LET p2h = 100
+
+
+REM random stars
+
+FOR s = 1 TO 100
+LET xstars = INT(RND * 639) + 1
+LET ystars = INT(RND * 339) + 1
+LET sx(s) = xstars
+LET sy(s) = ystars
+NEXT s
+
+FOR d = 1 TO 100
+ PSET (sx(d), sy(d)), 15
+NEXT d
+
+REM erase where ships start
+
+LET x2 = 500
+PUT (x, y), ship1r
+PUT (x2, y2), ship2l
+
+
+LINE (10, 2)-(110, 8), 12, BF
+LINE (500, 2)-(600, 8), 9, BF
+
+
+
+LET n = 1
+LET a$ = INKEY$
+DO WHILE a$ <> LCASE$("q")
+
+ LET a$ = INKEY$
+
+
+ REM erase ships as they move
+ IF x < x2 THEN
+ PUT (x, y), ship1r
+ PUT (x2, y2), ship2l
+ END IF
+ IF x > x2 THEN
+ PUT (x2, y2), ship2r
+ PUT (x, y), ship1l
+ END IF
+ REM player 1 controls
+ IF a$ = "w" THEN LET p1m$ = "up"
+ IF a$ = "s" THEN LET p1m$ = "down"
+ IF a$ = "a" THEN LET p1m$ = "left"
+ IF a$ = "d" THEN LET p1m$ = "right"
+
+ REM player 2 controls
+ IF a$ = "4" THEN LET p2m$ = "left"
+ IF a$ = "6" THEN LET p2m$ = "right"
+ IF a$ = "5" THEN LET p2m$ = "down"
+ IF a$ = "8" THEN LET p2m$ = "up"
+
+ REM player 1 moving
+ IF p1m$ = "up" THEN LET y = y - 7
+ IF p1m$ = "down" THEN LET y = y + 7
+ IF p1m$ = "left" THEN LET x = x - 7
+ IF p1m$ = "right" THEN LET x = x + 7
+
+ REM player 2 moving
+ IF p2m$ = "up" THEN LET y2 = y2 - 7
+ IF p2m$ = "down" THEN LET y2 = y2 + 7
+ IF p2m$ = "left" THEN LET x2 = x2 - 7
+ IF p2m$ = "right" THEN LET x2 = x2 + 7
+
+
+
+ REM player 1 off the screen
+ IF x < 2 THEN LET x = 585
+ IF x > 585 THEN LET x = 2
+ IF y < 2 THEN LET y = 303
+ IF y > 303 THEN LET y = 2
+
+ REM player 2 off the screen
+ IF x2 < 2 THEN LET x2 = 585
+ IF x2 > 585 THEN LET x2 = 2
+ IF y2 < 2 THEN LET y2 = 303
+ IF y2 > 303 THEN LET y2 = 2
+
+ IF a$ = CHR$(32) THEN
+ LINE (b1x, b1y)-(b1x + 5, b1y + 5), 0, BF
+
+ LET b1m$ = "yes"
+ IF x < x2 THEN
+ LET b1x = x + 41
+ LET b1d$ = "right"
+ END IF
+ IF x > x2 THEN
+ LET b1x = x
+ LET b1d$ = "left"
+ END IF
+ LET b1y = y + 14
+
+ END IF
+
+
+ IF b1m$ = "yes" THEN
+
+ PUT (b1x, b1y), bullet1
+ LINE (b1x, b1y)-(b1x + 5, b1y + 5), 0, BF
+ IF b1d$ = "right" THEN LET b1x = b1x + 14
+ IF b1d$ = "left" THEN LET b1x = b1x - 14
+ PUT (b1x, b1y), bullet1, XOR
+
+
+ IF b1d$ = "right" THEN
+ IF (b1x > x2) AND ((b1y > y2) AND (b1y < y2 + 31)) THEN
+ LET p2h = p2h - 10
+ LET b1m$ = "no"
+ LINE (b1x, b1y)-(b1x + 5, b1y + 5), 0, BF
+
+
+ END IF
+ END IF
+ IF b1d$ = "left" THEN
+ IF (b1x < x2 + 41) AND ((b1y > y2) AND (b1y < y2 + 31)) THEN
+ LET p2h = p2h - 10
+ LET b1m$ = "no"
+ LINE (b1x, b1y)-(b1x + 5, b1y + 5), 0, BF
+
+ END IF
+ END IF
+ END IF
+
+ IF (b1x < 14) THEN
+ LET b1m$ = "no"
+ LINE (b1x, b1y)-(b1x + 5, b1y + 5), 0, BF
+ END IF
+
+ IF (b1x > 599) THEN
+ LET b1m$ = "no"
+ LINE (b1x, b1y)-(b1x + 5, b1y + 5), 0, BF
+ END IF
+
+
+ IF a$ = CHR$(8) THEN
+
+ LINE (b2x, b2y)-(b2x + 5, b2y + 5), 0, BF
+
+ LET b2m$ = "yes"
+ IF x2 > x THEN
+ LET b2x = x2
+ LET b2d$ = "left"
+ END IF
+ IF x2 < x THEN
+ LET b2x = x2 + 41
+ LET b2d$ = "right"
+ END IF
+ LET b2y = y2 + 14
+
+ END IF
+
+
+ IF b2m$ = "yes" THEN
+
+ PUT (b2x, b2y), bullet2
+ LINE (b2x, b2y)-(b2x + 5, b2y + 5), 0, BF
+ IF b2d$ = "right" THEN LET b2x = b2x + 14
+ IF b2d$ = "left" THEN LET b2x = b2x - 14
+ PUT (b2x, b2y), bullet2, XOR
+
+
+ IF b2d$ = "right" THEN
+ IF (b2x > x) AND ((b2y > y) AND (b2y < y + 31)) THEN
+ LET p1h = p1h - 10
+ LET b2m$ = "no"
+ LINE (b2x, b2y)-(b2x + 5, b2y + 5), 0, BF
+ END IF
+ END IF
+ IF b2d$ = "left" THEN
+ IF (b2x < x + 41) AND ((b2y > y) AND (b2y < y + 31)) THEN
+ LET p1h = p1h - 10
+ LET b2m$ = "no"
+ LINE (b2x, b2y)-(b2x + 5, b2y + 5), 0, BF
+
+ END IF
+ END IF
+
+ END IF
+ IF (b2x > 599) THEN
+ LET b2m$ = "no"
+ LINE (b2x, b2y)-(b2x + 5, b2y + 5), 0, BF
+ END IF
+ IF (b2x < 14) THEN
+ LET b2m$ = "no"
+ LINE (b2x, b2y)-(b2x + 5, b2y + 5), 0, BF
+ END IF
+
+ REM healthbars
+ IF p1h = 90 THEN LINE (100, 3)-(109, 7), 0, BF
+ IF p1h = 80 THEN LINE (90, 3)-(109, 7), 0, BF
+ IF p1h = 70 THEN LINE (80, 3)-(109, 7), 0, BF
+ IF p1h = 60 THEN LINE (70, 3)-(109, 7), 0, BF
+ IF p1h = 50 THEN LINE (60, 3)-(109, 7), 0, BF
+ IF p1h = 40 THEN LINE (50, 3)-(109, 7), 0, BF
+ IF p1h = 30 THEN LINE (40, 3)-(109, 7), 0, BF
+ IF p1h = 20 THEN LINE (30, 3)-(109, 7), 0, BF
+ IF p1h = 10 THEN LINE (20, 3)-(109, 7), 0, BF
+ IF p1h = 0 THEN
+ LET w = 1
+ LET a$ = "q"
+ LINE (11, 3)-(109, 7), 0, BF
+ LET s = 1
+
+ END IF
+ IF p2h = 90 THEN LINE (501, 3)-(510, 7), 0, BF
+ IF p2h = 80 THEN LINE (501, 3)-(520, 7), 0, BF
+ IF p2h = 70 THEN LINE (501, 3)-(530, 7), 0, BF
+ IF p2h = 60 THEN LINE (501, 3)-(540, 7), 0, BF
+ IF p2h = 50 THEN LINE (501, 3)-(550, 7), 0, BF
+ IF p2h = 40 THEN LINE (501, 3)-(560, 7), 0, BF
+ IF p2h = 30 THEN LINE (501, 3)-(570, 7), 0, BF
+ IF p2h = 20 THEN LINE (501, 3)-(580, 7), 0, BF
+ IF p2h = 10 THEN LINE (501, 3)-(590, 7), 0, BF
+ IF p2h = 0 THEN
+ LET w = 2
+ LET a$ = "q"
+ LINE (501, 3)-(599, 7), 0, BF
+ END IF
+
+
+
+ REM draw ships moving
+
+ IF x < x2 THEN
+ PUT (x, y), ship1r, XOR
+ PUT (x2, y2), ship2l, XOR
+ END IF
+
+ IF x > x2 THEN
+ PUT (x, y), ship1l, XOR
+ PUT (x2, y2), ship2r, XOR
+ END IF
+ PCOPY 1, 0
+
+DO
+timenow! = TIMER
+LOOP UNTIL timenow! <> lasttime!
+lasttime! = timenow!
+
+LOOP
+
+
+
+IF w = 1 THEN
+FOR a = 2 TO 62
+COLOR 9
+LOCATE 12, a - 1
+PRINT " "
+LOCATE 12, a
+PRINT "Player 2 Wins!"
+PCOPY 1, 0
+FOR i = 1 TO 2500: NEXT i
+NEXT a
+LOCATE 12, 1
+END IF
+
+IF w = 2 THEN
+FOR a = 62 TO 2 STEP -1
+COLOR 12
+LOCATE 12, a
+PRINT "Player 1 Wins!"
+LOCATE 12, a + 14
+PRINT " "
+PCOPY 1, 0
+FOR i = 1 TO 2500: NEXT i
+NEXT a
+END IF
+
+SCREEN 12
+COLOR 3
+LOCATE 14, 18
+
+INPUT "Would you like to play again (Y/N)"; y$
+
+
+CLS
+LET x = 1
+LET y = 1
+LET x2 = 500
+LET y2 = 1
+LET a$ = " "
+LET w = 0
+LET p1m$ = " "
+LET p2m$ = " "
+RESTORE
+LOOP WHILE y$ = "y" OR y$ = "Y"
+
+
+DATA 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
+DATA 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
+DATA 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
+DATA 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
+DATA 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
+DATA 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,12,12,12,12,12,12,12,12,12,12,12,12,12,12,00,00,00,00,00,00
+DATA 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,00,00,00,00
+DATA 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,12,12,12,12,12,12,12,12,12,12,12,12,00,00,00,00,00,00,12,00,00,00
+DATA 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,12,12,12,12,12,12,12,12,12,12,12,12,00,00,00,00,00,00,00,00,00,00,00
+DATA 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,12,12,12,12,12,12,12,12,12,12,12,12,00,00,00,00,00,00,00,00,00,00,00,00
+DATA 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,12,12,12,12,12,12,12,12,12,12,12,12,00,00,00,00,00,00,00,00,00,00,00,00,00
+DATA 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,12,12,12,12,12,12,12,12,12,12,12,12,12,00,00,00,00,00,00,00,00,00,00,00,00,00
+DATA 00,00,00,00,00,00,00,00,00,04,00,00,00,00,12,12,12,12,12,12,12,02,02,02,12,12,12,12,00,00,00,00,00,00,00,00,00,00,00,00,00
+DATA 00,00,00,00,00,00,00,00,04,00,14,07,07,07,12,12,12,12,12,12,12,02,02,02,12,12,12,12,00,00,00,00,00,00,00,00,00,00,00,00,00
+DATA 00,00,00,00,00,00,00,14,04,04,07,07,07,07,12,12,12,12,12,12,12,02,02,02,12,12,12,12,12,00,00,00,00,00,00,00,00,00,00,00,00
+DATA 00,00,00,00,00,04,04,04,14,07,07,07,07,07,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,00,00,00
+DATA 00,00,00,00,00,14,04,14,04,07,07,07,07,07,12,12,12,12,12,12,12,12,12,12,02,02,02,12,12,12,12,12,12,12,12,12,12,12,07,07,00
+DATA 00,00,00,00,00,04,04,04,14,07,07,07,07,07,12,12,12,12,12,12,12,12,12,12,02,02,02,12,12,12,12,12,12,12,12,12,12,12,07,07,07
+DATA 00,00,00,00,00,00,00,14,04,04,07,07,07,07,12,12,12,12,12,12,12,12,12,12,02,02,02,12,12,12,12,12,12,12,12,12,12,12,07,07,00
+DATA 00,00,00,00,00,00,00,00,04,04,14,07,07,07,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,00,00,00
+DATA 00,00,00,00,00,00,00,00,00,00,00,00,00,00,12,12,12,12,12,12,12,02,02,02,12,12,12,12,12,00,00,00,00,00,00,00,00,00,00,00,00
+DATA 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,12,12,12,12,12,12,02,02,02,12,12,12,12,00,00,00,00,00,00,00,00,00,00,00,00,00
+DATA 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,12,12,12,12,12,02,02,02,12,12,12,12,00,00,00,00,00,00,00,00,00,00,00,00,00
+DATA 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,12,12,12,12,12,12,12,12,12,12,12,00,00,00,00,00,00,00,00,00,00,00,00,00
+DATA 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,12,12,12,12,12,12,12,12,12,12,12,00,00,00,00,00,00,00,00,00,00,00,00
+DATA 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,12,12,12,12,12,12,12,12,12,12,12,00,00,00,00,00,00,00,12,00,00,00
+DATA 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,00,00,00,00
+DATA 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,12,12,12,12,12,12,12,12,12,12,12,12,12,12,00,00,00,00,00,00
+DATA 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
+DATA 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
+DATA 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
+
+
+
+
+
+
+
+DATA 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
+DATA 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
+DATA 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
+DATA 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
+DATA 00,00,00,00,00,00,00,12,12,12,12,12,12,12,12,12,12,12,12,12,12,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
+DATA 00,00,00,00,00,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
+DATA 00,00,00,00,12,00,00,00,00,00,00,12,12,12,12,12,12,12,12,12,12,12,12,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
+DATA 00,00,00,00,00,00,00,00,00,00,00,00,12,12,12,12,12,12,12,12,12,12,12,12,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
+DATA 00,00,00,00,00,00,00,00,00,00,00,00,00,12,12,12,12,12,12,12,12,12,12,12,12,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
+DATA 00,00,00,00,00,00,00,00,00,00,00,00,00,00,12,12,12,12,12,12,12,12,12,12,12,12,12,00,00,00,00,00,00,00,00,00,00,00,00,00,00
+DATA 00,00,00,00,00,00,00,00,00,00,00,00,00,00,12,12,12,12,12,12,12,12,12,12,12,12,12,00,00,00,00,00,00,00,00,00,00,00,00,00,00
+DATA 00,00,00,00,00,00,00,00,00,00,00,00,00,00,12,12,12,12,02,02,02,12,12,12,12,12,12,00,00,00,00,00,00,00,00,00,00,00,00,00,00
+DATA 00,00,00,00,00,00,00,00,00,00,00,00,00,00,12,12,12,12,02,02,02,12,12,12,12,12,12,07,07,07,14,04,04,00,00,00,00,00,00,00,00
+DATA 00,00,00,00,00,00,00,00,00,00,00,00,00,12,12,12,12,12,02,02,02,12,12,12,12,12,12,07,07,07,07,04,04,14,00,00,00,00,00,00,00
+DATA 00,00,00,00,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,07,07,07,07,07,14,04,04,04,00,00,00,00,00
+DATA 00,00,07,07,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,02,02,02,12,12,07,07,07,07,07,04,14,04,14,00,00,00,00,00
+DATA 00,07,07,07,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,02,02,02,12,12,07,07,07,07,07,14,04,04,04,00,00,00,00,00
+DATA 00,00,07,07,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,02,02,02,12,12,07,07,07,07,04,04,14,00,00,00,00,00,00,00
+DATA 00,00,00,00,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,07,07,07,14,04,04,00,00,00,00,00,00,00,00
+DATA 00,00,00,00,00,00,00,00,00,00,00,00,00,12,12,12,12,12,02,02,02,12,12,12,12,12,12,00,00,00,00,00,00,00,00,00,00,00,00,00,00
+DATA 00,00,00,00,00,00,00,00,00,00,00,00,00,00,12,12,12,12,02,02,02,12,12,12,12,12,12,00,00,00,00,00,00,00,00,00,00,00,00,00,00
+DATA 00,00,00,00,00,00,00,00,00,00,00,00,00,00,12,12,12,12,02,02,02,12,12,12,12,12,12,00,00,00,00,00,00,00,00,00,00,00,00,00,00
+DATA 00,00,00,00,00,00,00,00,00,00,00,00,00,00,12,12,12,12,12,12,12,12,12,12,12,12,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
+DATA 00,00,00,00,00,00,00,00,00,00,00,00,00,12,12,12,12,12,12,12,12,12,12,12,12,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
+DATA 00,00,00,00,00,00,00,00,00,00,00,00,12,12,12,12,12,12,12,12,12,12,12,12,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
+DATA 00,00,00,00,12,00,00,00,00,00,00,12,12,12,12,12,12,12,12,12,12,12,12,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
+DATA 00,00,00,00,00,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
+DATA 00,00,00,00,00,00,00,12,12,12,12,12,12,12,12,12,12,12,12,12,12,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
+DATA 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
+DATA 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
+DATA 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
+DATA 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
diff --git a/samples/star-wars.md b/samples/star-wars.md
new file mode 100644
index 00000000..795ece5f
--- /dev/null
+++ b/samples/star-wars.md
@@ -0,0 +1,9 @@
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+
+## SAMPLES: STAR WARS
+
+**[X-Wing](x-wing/index.md)**
+
+[🐝 DATATECH](datatech.md) 🔗 [game](game.md), [star wars](star-wars.md), [legacy](legacy.md)
+
+PRINT "ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿" PRINT "³ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿³"...
diff --git a/samples/starfield-torus/index.md b/samples/starfield-torus/index.md
index bd2a1900..f8b2e7c1 100644
--- a/samples/starfield-torus/index.md
+++ b/samples/starfield-torus/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: STARFIELD TORUS
diff --git a/samples/starfield.md b/samples/starfield.md
index ca8afaca..339a35dc 100644
--- a/samples/starfield.md
+++ b/samples/starfield.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: STARFIELD
diff --git a/samples/starfield/index.md b/samples/starfield/index.md
index e83e1a9e..b7c77a23 100644
--- a/samples/starfield/index.md
+++ b/samples/starfield/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: STARFIELD
@@ -16,16 +16,9 @@
'------------------------------------------------------------------------
```
-### QBjs
-
-> Please note that QBjs is still in early development and support for these examples is extremely experimental (meaning will most likely not work). With that out of the way, give it a try!
-
-* [LOAD "strfld.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?src=https://qb64.com/samples/starfield/src/strfld.bas)
-* [RUN "strfld.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?mode=auto&src=https://qb64.com/samples/starfield/src/strfld.bas)
-* [PLAY "strfld.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?mode=play&src=https://qb64.com/samples/starfield/src/strfld.bas)
-
### File(s)
* [strfld.bas](src/strfld.bas)
+* [strfld_orig.bas](src/strfld_orig.bas)
🔗 [starfield](../starfield.md), [9 lines](../9-lines.md)
diff --git a/samples/starfield/src/strfld_orig.bas b/samples/starfield/src/strfld_orig.bas
new file mode 100644
index 00000000..b916d95b
--- /dev/null
+++ b/samples/starfield/src/strfld_orig.bas
@@ -0,0 +1,13 @@
+'Starfield by Antoni gual
+'for Rel's 9 LINER contest at QBASICNEWS.COM 1/2003
+'------------------------------------------------------------------------
+
+1 SCREEN 13
+2 a$ = STRING$(400 * 6, CHR$(0))
+3 IF CVI(MID$(a$, j + 5, 2)) = 0 THEN MID$(a$, j + 1, 6) = MKI$(RND * 20000 - 10000) + MKI$(RND * 20000 - 10000) + MKI$(100 * RND + 1)
+4 PSET (160 + CVI(MID$(a$, j + 1, 2)) / CVI(MID$(a$, j + 5, 2)), 100 + CVI(MID$(a$, j + 3, 2)) / CVI(MID$(a$, j + 5, 2))), 0
+5 MID$(a$, j + 5, 2) = MKI$(CVI(MID$(a$, j + 5, 2)) - 1)
+6 IF CVI(MID$(a$, j + 5, 2)) > 0 THEN PSET (160 + CVI(MID$(a$, j + 1, 2)) / CVI(MID$(a$, j + 5, 2)), 100 + CVI(MID$(a$, j + 3, 2)) / CVI(MID$(a$, j + 5, 2))), 32 - CVI(MID$(a$, j + 5, 2)) \ 8
+7 j = (j + 6) MOD (LEN(a$))
+8 IF LEN(INKEY$) = 0 THEN 3
+
diff --git a/samples/statistics.md b/samples/statistics.md
index 4417ce3a..4e57de86 100644
--- a/samples/statistics.md
+++ b/samples/statistics.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: STATISTICS
diff --git a/samples/steve-m..md b/samples/steve-m..md
index 656caf56..269aef2f 100644
--- a/samples/steve-m..md
+++ b/samples/steve-m..md
@@ -1,8 +1,8 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY STEVE M.
-**[Mazes of Misery](mazes-of-misery/index.md)**
+**[Maze of Misery](maze-of-misery/index.md)**
[🐝 Steve M.](steve-m..md) 🔗 [game](game.md), [maze](maze.md)
diff --git a/samples/stock-watcher/index.md b/samples/stock-watcher/index.md
index 025520ad..40da8ea5 100644
--- a/samples/stock-watcher/index.md
+++ b/samples/stock-watcher/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: STOCK WATCHER
diff --git a/samples/stocks.md b/samples/stocks.md
index 438ff845..668feeea 100644
--- a/samples/stocks.md
+++ b/samples/stocks.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: STOCKS
diff --git a/samples/stones/img/screenshot.png b/samples/stones/img/screenshot.png
new file mode 100644
index 00000000..dab5cff4
Binary files /dev/null and b/samples/stones/img/screenshot.png differ
diff --git a/samples/stones/index.md b/samples/stones/index.md
new file mode 100644
index 00000000..bd70a864
--- /dev/null
+++ b/samples/stones/index.md
@@ -0,0 +1,25 @@
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+
+## SAMPLE: STONES
+
+![screenshot.png](img/screenshot.png)
+
+### Description
+
+```text
+
+```
+
+### QBjs
+
+> Please note that QBjs is still in early development and support for these examples is extremely experimental (meaning will most likely not work). With that out of the way, give it a try!
+
+* [LOAD "stones.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?src=https://qb64.com/samples/stones/src/stones.bas)
+* [RUN "stones.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?mode=auto&src=https://qb64.com/samples/stones/src/stones.bas)
+* [PLAY "stones.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?mode=play&src=https://qb64.com/samples/stones/src/stones.bas)
+
+### File(s)
+
+* [stones.bas](src/stones.bas)
+
+🔗 [game](../game.md), [legacy](../legacy.md)
diff --git a/samples/stones/src/stones.bas b/samples/stones/src/stones.bas
new file mode 100644
index 00000000..7c155c0e
--- /dev/null
+++ b/samples/stones/src/stones.bas
@@ -0,0 +1,19 @@
+5 RANDOMIZE TIMER
+10 A = 25
+20 CLS
+25 FOR B = 1 TO A
+30 PRINT "* ";
+35 NEXT B
+37 PRINT
+40 PRINT "HOW MANY TO TAKE AWAY"
+45 INPUT C
+50 IF C > 3 THEN PRINT "YOU CAN ONLY TAKE AWAY 1,2, OR 3 STONES.": GOTO 40
+60 A = A - C
+65 IF A = 0 THEN PRINT "YOU WIN!": END
+70 D = (A MOD 4)
+75 IF D = 0 THEN D = INT(3 * RND(1)) + 1
+80 PRINT "I TOOK AWAY "; D; "STONES"
+83 SLEEP
+85 A = A - D
+90 IF A = 0 THEN PRINT "I WIN": END
+100 GOTO 20
\ No newline at end of file
diff --git a/samples/stxaxtic.md b/samples/stxaxtic.md
index 65313a25..591b3f1d 100644
--- a/samples/stxaxtic.md
+++ b/samples/stxaxtic.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY STXAXTIC
diff --git a/samples/sudoku/img/screenshot.png b/samples/sudoku/img/screenshot.png
new file mode 100644
index 00000000..1ad72aa2
Binary files /dev/null and b/samples/sudoku/img/screenshot.png differ
diff --git a/samples/sudoku/index.md b/samples/sudoku/index.md
new file mode 100644
index 00000000..bb34616b
--- /dev/null
+++ b/samples/sudoku/index.md
@@ -0,0 +1,25 @@
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+
+## SAMPLE: SUDOKU
+
+![screenshot.png](img/screenshot.png)
+
+### Description
+
+```text
+Sudoku solver.
+```
+
+### QBjs
+
+> Please note that QBjs is still in early development and support for these examples is extremely experimental (meaning will most likely not work). With that out of the way, give it a try!
+
+* [LOAD "sudoku.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?src=https://qb64.com/samples/sudoku/src/sudoku.bas)
+* [RUN "sudoku.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?mode=auto&src=https://qb64.com/samples/sudoku/src/sudoku.bas)
+* [PLAY "sudoku.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?mode=play&src=https://qb64.com/samples/sudoku/src/sudoku.bas)
+
+### File(s)
+
+* [sudoku.bas](src/sudoku.bas)
+
+🔗 [legacy](../legacy.md)
diff --git a/samples/sudoku/src/sudoku.bas b/samples/sudoku/src/sudoku.bas
new file mode 100644
index 00000000..8998900f
--- /dev/null
+++ b/samples/sudoku/src/sudoku.bas
@@ -0,0 +1,44 @@
+DIM gr$(18, 9), rg$(18, 9): SCREEN 7: CLS : FOR a = 1 TO 9: FOR b = 1 TO 9: gr$(a, b) = " ": LINE (((a - 1) * 32), ((b - 1) * 16) + 11)-STEP(32, 16), 8, B
+IF a / 3 = INT(a / 3) AND b / 3 = INT(b / 3) THEN LINE (((a - 3) * 32), ((b - 3) * 16) + 11)-STEP(96, 48), 15, B
+NEXT b, a: x = 5: y = 5: vv = 1: c = 0: fl = 0: COLOR 10: LOCATE 21, 2: PRINT "CURSORS"; : COLOR 2: PRINT "=move"; : COLOR 10: PRINT " 1-9"; : COLOR 2
+PRINT "=number"; : COLOR 10: PRINT " ENTER"; : COLOR 2: PRINT "=solve": COLOR 10: PRINT " SPACE"; : COLOR 2: PRINT "=clear number"; : COLOR 10
+PRINT " DELETE"; : COLOR 2: PRINT "=wipe grid": COLOR 1: PRINT " *SuDoKu SoLVeR* (c)David Hall 2005";
+cc: LOCATE (y * 2) + 1, (x * 4) - 1: COLOR 11: i$ = CHR$(2): IF fl = 0 AND gr$(x, y) <> " " THEN i$ = gr$(x, y)
+PRINT i$: COLOR 15: i$ = "": c = c + 1: IF c > 2400 THEN c = 0: fl = fl XOR 1
+i$ = RIGHT$(INKEY$, 1): IF VAL(i$) > 0 THEN GOSUB hh: IF fl = 0 THEN gr$(x, y) = i$: GOSUB ff: x = x + 1: IF x > 9 THEN x = 1: y = y + 1: IF y > 9 THEN y = 1
+IF i$ = " " THEN gr$(x, y) = " ": GOSUB ff: x = x + 1: IF x > 9 THEN x = 1: y = y + 1: IF y > 9 THEN y = 1
+IF i$ = CHR$(13) THEN GOSUB ff: GOTO rn
+IF i$ = CHR$(75) AND x > 1 THEN GOSUB ff: x = x - 1 ELSE IF i$ = CHR$(77) AND x < 9 THEN GOSUB ff: x = x + 1
+IF i$ = CHR$(72) AND y > 1 THEN GOSUB ff: y = y - 1 ELSE IF i$ = CHR$(80) AND y < 9 THEN GOSUB ff: y = y + 1
+IF i$ = CHR$(83) THEN RUN ELSE GOTO cc
+ff: LOCATE (y * 2) + 1, (x * 4) - 1: PRINT gr$(x, y): RETURN
+hh: fl = 0: a = 1: WHILE a < 10: IF gr$(a, y) = i$ OR gr$(x, a) = i$ THEN fl = 1: RETURN
+a = a + 1: WEND: a = INT((x - 1) / 3): a = (a * 3) + 1: b = INT((y - 1) / 3): b = (b * 3) + 1
+FOR c = a TO a + 2: FOR d = b TO b + 2: IF gr$(c, d) = i$ THEN fl = 1
+NEXT d, c: RETURN
+rn: COLOR 7: lf = 0: o = 49: a = 1: b = 1: FOR j = 49 TO 57: FOR y = 1 TO 9: FOR x = 1 TO 9: IF j = 49 THEN rg$(x, y) = ""
+IF gr$(x, y) <> " " THEN GOTO zz
+i$ = CHR$(j): GOSUB hh: IF fl = 0 THEN rg$(x, y) = rg$(x, y) + i$
+IF j = 57 AND LEN(rg$(x, y)) = 1 THEN gr$(x, y) = rg$(x, y): GOSUB ff: lf = 1: rg$(x, y) = ""
+zz: NEXT x, y, j: IF lf = 1 THEN GOTO rn
+pip: i$ = CHR$(o): y = 1: WHILE y < 10: ct = 0: FOR x = 1 TO 9: IF rg$(x, y) = "" THEN GOTO ra
+IF INSTR(1, rg$(x, y), i$) > 0 THEN ct = ct + 1: v = x
+ra: NEXT x: IF ct = 1 THEN x = v: gr$(x, y) = i$: GOSUB ff: GOTO rn
+y = y + 1: WEND: x = 1
+WHILE x < 10: tc = 0: FOR y = 1 TO 9: IF rg$(x, y) = "" THEN GOTO ri
+IF INSTR(1, rg$(x, y), i$) > 0 THEN tc = tc + 1: v = y
+ri: NEXT y: IF tc = 1 THEN y = v: gr$(x, y) = i$: GOSUB ff: GOTO rn
+x = x + 1: WEND
+WHILE b < 10: ct = 0: FOR c = a TO a + 2: FOR d = b TO b + 2: IF rg$(c, d) = "" THEN GOTO rk
+IF INSTR(1, rg$(c, d), i$) > 0 THEN ct = ct + 1: v = c: w = d
+rk: NEXT d, c: IF ct = 1 THEN x = v: y = w: gr$(x, y) = i$: GOSUB ff: GOTO rn
+a = a + 3: IF a > 7 THEN a = 1: b = b + 3
+WEND: o = o + 1: IF o < 58 THEN GOTO pip
+IF vv = 1 THEN vv = 2: j = 0: m = 9: GOSUB kl
+mf = 0: co = 0: FOR y = 1 TO 9: FOR x = 1 TO 9: i$ = gr$(x, y): IF i$ = " " THEN co = 1: GOTO bl
+gr$(x, y) = " ": GOSUB hh: gr$(x, y) = i$: IF fl = 1 OR (gr$(x, y) = " " AND rg$(x, y) = "") THEN mf = 1
+bl: NEXT x, y: IF co = 0 AND mf = 0 THEN COLOR 15: FOR y = 1 TO 9: FOR x = 1 TO 9: GOSUB ff: NEXT x, y: END
+IF mf = 1 THEN j = 9: m = 0: GOSUB kl
+rb: x = INT(RND(1) * 9) + 1: y = INT(RND(1) * 9) + 1: IF LEN(rg$(x, y)) < 2 THEN GOTO rb
+gr$(x, y) = MID$(rg$(x, y), INT(RND(1) * LEN(rg$(x, y))) + 1, 1): GOTO rn
+kl: FOR y = 1 TO 9: FOR x = 1 TO 9: gr$(x + m, y) = gr$(x + j, y): rg$(x + m, y) = rg$(x + j, y): NEXT x, y: RETURN
diff --git a/samples/super-mario-jump/index.md b/samples/super-mario-jump/index.md
index 5d8cf1c1..6fc16083 100644
--- a/samples/super-mario-jump/index.md
+++ b/samples/super-mario-jump/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: SUPER MARIO JUMP
diff --git a/samples/t.a.-giles.md b/samples/t.a.-giles.md
new file mode 100644
index 00000000..638e7ba2
--- /dev/null
+++ b/samples/t.a.-giles.md
@@ -0,0 +1,9 @@
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+
+## SAMPLES BY T.A. GILES
+
+**[RightTriangle](righttriangle/index.md)**
+
+[🐝 T.A. Giles](t.a.-giles.md) 🔗 [geometry](geometry.md), [legacy](legacy.md)
+
+'Program (c) T.A.Giles - Mar 2001 'Right Angle Triangle Solver v 1.1 '640 x 480 graphics resolution
diff --git a/samples/tag-cloud.md b/samples/tag-cloud.md
index a4a0c876..04ac0d11 100644
--- a/samples/tag-cloud.md
+++ b/samples/tag-cloud.md
@@ -1,5 +1,5 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## TAGS
-[game:86](game.md) • [legacy:45](legacy.md) • [dos world:35](dos-world.md) • [screensaver:19](screensaver.md) • [3d:14](3d.md) • [graphics:14](graphics.md) • [fractal:11](fractal.md) • [screenblanker:11](screenblanker.md) • [9 lines:10](9-lines.md) • [254 chars:9](254-chars.md) • [art:6](art.md) • [data management:6](data-management.md) • [pong:6](pong.md) • [2d:5](2d.md) • [geometry:5](geometry.md) • [mandelbrot:5](mandelbrot.md) • [physics:5](physics.md) • [ascii:4](ascii.md) • [intersections:4](intersections.md) • [statistics:4](statistics.md) • [trigonometry:4](trigonometry.md) • [breakout:3](breakout.md) • [clock:3](clock.md) • [drawing:3](drawing.md) • [maze:3](maze.md) • [pendulum:3](pendulum.md) • [qbjs:3](qbjs.md) • [snake:3](snake.md) • [space shooter:3](space-shooter.md) • [starfield:3](starfield.md) • [tetris:3](tetris.md) • [tile:3](tile.md) • [tui:3](tui.md) • [artillery:2](artillery.md) • [audio:2](audio.md) • [bad boxes:2](bad-boxes.md) • [chess:2](chess.md) • [collisions:2](collisions.md) • [curve:2](curve.md) • [fire:2](fire.md) • [gui:2](gui.md) • [image processing:2](image-processing.md) • [julia set:2](julia-set.md) • [math:2](math.md) • [money:2](money.md) • [monopoly:2](monopoly.md) • [mosaic:2](mosaic.md) • [particles:2](particles.md) • [plasma:2](plasma.md) • [puzzle:2](puzzle.md) • [ray tracer:2](ray-tracer.md) • [ray tracing:2](ray-tracing.md) • [shooter:2](shooter.md) • [sort:2](sort.md) • [space invaders:2](space-invaders.md) • [tic tac toe:2](tic-tac-toe.md) • [utility:2](utility.md) • [wireframe:2](wireframe.md) • [zen:2](zen.md) • [2 player:1](2-player.md) • [7 lines:1](7-lines.md) • [abacus:1](abacus.md) • [ai:1](ai.md) • [arithmetic:1](arithmetic.md) • [automata:1](automata.md) • [battleship:1](battleship.md) • [bezier:1](bezier.md) • [binary:1](binary.md) • [biorhythms:1](biorhythms.md) • [bitmap:1](bitmap.md) • [blackjack:1](blackjack.md) • [calculator:1](calculator.md) • [calendar:1](calendar.md) • [circuits:1](circuits.md) • [color picker:1](color-picker.md) • [conway:1](conway.md) • [counter:1](counter.md) • [cricket:1](cricket.md) • [cube:1](cube.md) • [data manipulation:1](data-manipulation.md) • [defense:1](defense.md) • [desktop:1](desktop.md) • [dialog:1](dialog.md) • [dice:1](dice.md) • [digger:1](digger.md) • [draw:1](draw.md) • [editor:1](editor.md) • [eliza:1](eliza.md) • [ellipse:1](ellipse.md) • [fern:1](fern.md) • [fibonacci:1](fibonacci.md) • [filled circle:1](filled-circle.md) • [finance:1](finance.md) • [fish:1](fish.md) • [flight:1](flight.md) • [floorscape:1](floorscape.md) • [frogger:1](frogger.md) • [frostbite:1](frostbite.md) • [gl:1](gl.md) • [graph:1](graph.md) • [gravity:1](gravity.md) • [hangman:1](hangman.md) • [hex:1](hex.md) • [html:1](html.md) • [image manipulation:1](image-manipulation.md) • [interface:1](interface.md) • [interpolation:1](interpolation.md) • [interpreter:1](interpreter.md) • [isometric:1](isometric.md) • [jpeg:1](jpeg.md) • [lander:1](lander.md) • [letter:1](letter.md) • [lights:1](lights.md) • [lisp:1](lisp.md) • [lorenz:1](lorenz.md) • [maptriangle:1](maptriangle.md) • [mario:1](mario.md) • [matrix:1](matrix.md) • [measure:1](measure.md) • [menu:1](menu.md) • [minecraft:1](minecraft.md) • [mouse:1](mouse.md) • [multiplayer:1](multiplayer.md) • [music:1](music.md) • [pattern:1](pattern.md) • [pdf:1](pdf.md) • [platform:1](platform.md) • [platformer:1](platformer.md) • [raycaster:1](raycaster.md) • [reflections:1](reflections.md) • [ripple:1](ripple.md) • [roguelike:1](roguelike.md) • [rotations:1](rotations.md) • [rpg:1](rpg.md) • [schematics:1](schematics.md) • [science:1](science.md) • [simulation:1](simulation.md) • [sound:1](sound.md) • [sphere:1](sphere.md) • [spiral:1](spiral.md) • [stocks:1](stocks.md) • [tank:1](tank.md) • [tic tac toe rings:1](tic-tac-toe-rings.md) • [torus:1](torus.md) • [tower:1](tower.md) • [triangle:1](triangle.md) • [tunnel:1](tunnel.md) • [turtle graphics:1](turtle-graphics.md) • [vectors:1](vectors.md) • [wave motion:1](wave-motion.md)
\ No newline at end of file
+[game:100](game.md) • [legacy:70](legacy.md) • [dos world:35](dos-world.md) • [screensaver:21](screensaver.md) • [graphics:19](graphics.md) • [3d:14](3d.md) • [9 lines:11](9-lines.md) • [fractal:11](fractal.md) • [screenblanker:11](screenblanker.md) • [254 chars:9](254-chars.md) • [geometry:9](geometry.md) • [data management:8](data-management.md) • [pong:7](pong.md) • [art:6](art.md) • [ascii:6](ascii.md) • [2d:5](2d.md) • [mandelbrot:5](mandelbrot.md) • [physics:5](physics.md) • [qbjs:5](qbjs.md) • [clock:4](clock.md) • [intersections:4](intersections.md) • [statistics:4](statistics.md) • [trigonometry:4](trigonometry.md) • [tui:4](tui.md) • [breakout:3](breakout.md) • [drawing:3](drawing.md) • [image processing:3](image-processing.md) • [maze:3](maze.md) • [pendulum:3](pendulum.md) • [plasma:3](plasma.md) • [snake:3](snake.md) • [space shooter:3](space-shooter.md) • [starfield:3](starfield.md) • [tetris:3](tetris.md) • [tile:3](tile.md) • [utility:3](utility.md) • [zen:3](zen.md) • [2 player:2](2-player.md) • [artillery:2](artillery.md) • [audio:2](audio.md) • [bad boxes:2](bad-boxes.md) • [chess:2](chess.md) • [collisions:2](collisions.md) • [curve:2](curve.md) • [fire:2](fire.md) • [gui:2](gui.md) • [interpreter:2](interpreter.md) • [jpeg:2](jpeg.md) • [julia set:2](julia-set.md) • [math:2](math.md) • [money:2](money.md) • [monopoly:2](monopoly.md) • [mosaic:2](mosaic.md) • [particles:2](particles.md) • [puzzle:2](puzzle.md) • [ray tracer:2](ray-tracer.md) • [ray tracing:2](ray-tracing.md) • [shooter:2](shooter.md) • [sort:2](sort.md) • [space invaders:2](space-invaders.md) • [tic tac toe:2](tic-tac-toe.md) • [wireframe:2](wireframe.md) • [7 lines:1](7-lines.md) • [abacus:1](abacus.md) • [ai:1](ai.md) • [arithmetic:1](arithmetic.md) • [automata:1](automata.md) • [battleship:1](battleship.md) • [bezier:1](bezier.md) • [binary:1](binary.md) • [biorhythms:1](biorhythms.md) • [bitmap:1](bitmap.md) • [blackjack:1](blackjack.md) • [calculator:1](calculator.md) • [calendar:1](calendar.md) • [circuits:1](circuits.md) • [color picker:1](color-picker.md) • [compression:1](compression.md) • [conway:1](conway.md) • [counter:1](counter.md) • [cricket:1](cricket.md) • [cube:1](cube.md) • [data manipulation:1](data-manipulation.md) • [defense:1](defense.md) • [desktop:1](desktop.md) • [dialog:1](dialog.md) • [dice:1](dice.md) • [digger:1](digger.md) • [draw:1](draw.md) • [editor:1](editor.md) • [eliza:1](eliza.md) • [ellipse:1](ellipse.md) • [fern:1](fern.md) • [fibonacci:1](fibonacci.md) • [filled circle:1](filled-circle.md) • [finance:1](finance.md) • [fish:1](fish.md) • [flight:1](flight.md) • [floorscape:1](floorscape.md) • [frogger:1](frogger.md) • [frostbite:1](frostbite.md) • [gl:1](gl.md) • [graph:1](graph.md) • [gravity:1](gravity.md) • [hangman:1](hangman.md) • [hex:1](hex.md) • [html:1](html.md) • [image manipulation:1](image-manipulation.md) • [interface:1](interface.md) • [interpolation:1](interpolation.md) • [isometric:1](isometric.md) • [lander:1](lander.md) • [letter:1](letter.md) • [lights:1](lights.md) • [line:1](line.md) • [lisp:1](lisp.md) • [lorenz:1](lorenz.md) • [maptriangle:1](maptriangle.md) • [mario:1](mario.md) • [martix:1](martix.md) • [matrix:1](matrix.md) • [measure:1](measure.md) • [menu:1](menu.md) • [minecraft:1](minecraft.md) • [mouse:1](mouse.md) • [multiplayer:1](multiplayer.md) • [music:1](music.md) • [parsing:1](parsing.md) • [pattern:1](pattern.md) • [pdf:1](pdf.md) • [platform:1](platform.md) • [platformer:1](platformer.md) • [raycaster:1](raycaster.md) • [reflections:1](reflections.md) • [ripple:1](ripple.md) • [roguelike:1](roguelike.md) • [rotations:1](rotations.md) • [rotozoom:1](rotozoom.md) • [rpg:1](rpg.md) • [schematics:1](schematics.md) • [science:1](science.md) • [simulation:1](simulation.md) • [sound:1](sound.md) • [sphere:1](sphere.md) • [spiral:1](spiral.md) • [split:1](split.md) • [star wars:1](star-wars.md) • [stocks:1](stocks.md) • [tank:1](tank.md) • [tic tac toe rings:1](tic-tac-toe-rings.md) • [torus:1](torus.md) • [tower:1](tower.md) • [triangle:1](triangle.md) • [tunnel:1](tunnel.md) • [turtle graphics:1](turtle-graphics.md) • [vectors:1](vectors.md) • [wave motion:1](wave-motion.md)
\ No newline at end of file
diff --git a/samples/tank.md b/samples/tank.md
index 3d5a68f3..e37d152b 100644
--- a/samples/tank.md
+++ b/samples/tank.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: TANK
diff --git a/samples/temperature-conversion/index.md b/samples/temperature-conversion/index.md
index 0c607d30..f410bb9e 100644
--- a/samples/temperature-conversion/index.md
+++ b/samples/temperature-conversion/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: TEMPERATURE CONVERSION
diff --git a/samples/template-dw/index.md b/samples/template-dw/index.md
index f8121034..02d474df 100644
--- a/samples/template-dw/index.md
+++ b/samples/template-dw/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: TEMPLATE DW
diff --git a/samples/temple/img/screenshot.png b/samples/temple/img/screenshot.png
new file mode 100644
index 00000000..5c3adb2b
Binary files /dev/null and b/samples/temple/img/screenshot.png differ
diff --git a/samples/temple/index.md b/samples/temple/index.md
new file mode 100644
index 00000000..17d40a7c
--- /dev/null
+++ b/samples/temple/index.md
@@ -0,0 +1,35 @@
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+
+## SAMPLE: TEMPLE
+
+![screenshot.png](img/screenshot.png)
+
+### Author
+
+[🐝 John Belew](../john-belew.md)
+
+### Description
+
+```text
+710 REM ****************************************************
+720 REM * WRITTEN BY JOHN BELEW FOR USE WITH THE I.B.M. *
+730 REM * AND OTHER COMPATIBLE *
+740 REM * THANKS TO TSR FOR THE MONSTERS *
+750 REM * THANKS TO RECREATIONAL COMPUTING FOR THE ORIGINAL*
+760 REM * PROGRAM JUNE 29, 1984 *
+770 REM ****************************************************
+```
+
+### QBjs
+
+> Please note that QBjs is still in early development and support for these examples is extremely experimental (meaning will most likely not work). With that out of the way, give it a try!
+
+* [LOAD "temple.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?src=https://qb64.com/samples/temple/src/temple.bas)
+* [RUN "temple.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?mode=auto&src=https://qb64.com/samples/temple/src/temple.bas)
+* [PLAY "temple.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?mode=play&src=https://qb64.com/samples/temple/src/temple.bas)
+
+### File(s)
+
+* [temple.bas](src/temple.bas)
+
+🔗 [game](../game.md), [legacy](../legacy.md)
diff --git a/samples/temple/src/temple.bas b/samples/temple/src/temple.bas
new file mode 100644
index 00000000..0b16b264
--- /dev/null
+++ b/samples/temple/src/temple.bas
@@ -0,0 +1,1522 @@
+DIM SHARED X AS INTEGER
+DIM SHARED Y AS INTEGER
+
+10 'KEY OFF
+15 N = VAL(MID$(TIME$, 7, 2))
+20 RANDOMIZE N
+30 INPUT "Do you want graphics (Y/N)"; ANS$
+40 IF ANS$ = "y" GOTO 70
+50 IF ANS$ = "Y" GOTO 70
+55 IF ANS$ = "ARIOCH" GOTO 700
+60 GOTO 350
+70 SCREEN 1: CLS
+80 CIRCLE (20, 20), 20
+90 PAINT (30, 30), 2, 3
+100 CIRCLE (240, 30), 15
+110 PAINT (240, 30), 1, 3
+120 PSET (60, 125)
+130 'DRAW "e100;f100;l199"
+140 LINE (360, 125)-(0, 360), , BF
+150 PAINT (100, 100), 3
+160 LINE (360, 125)-(0, 360), 1, BF
+170 LOCATE 16, 19
+180 PRINT " "
+190 FOR J = 1 TO 200
+200 I = (RND * 360)
+210 F = (RND * 120)
+220 FOR R = 1 TO 0 STEP -1
+230 CIRCLE (I, F), R, 3
+240 NEXT
+250 NEXT
+260 LOCATE 22, 11
+270 PRINT "THE TEMPLE OF LOTH"
+280 LOCATE 22, 11
+290 BEEP
+ SLEEP 2
+300 FOR X = 200 TO 0 STEP -4
+310 CIRCLE (160, 100), X, , , , 1
+320 NEXT
+330 SCREEN 2
+340 SCREEN 0
+350 CLS
+360 PRINT : COLOR 12, 0, 1
+410 PRINT :
+420 PRINT
+470 PRINT : COLOR 31, 0, 1
+480 PRINT " VERSION 4.2"
+490 COLOR 3, 0, 1: PRINT " July 25, 1984"
+500 COLOR 3, 0, 1: PRINT " Suggested for use with printer and graphics board"
+510 PRINT ""
+520 PRINT " by John Belew"
+530 PRINT " (Nurruc the Chaotic)"
+540 PRINT : COLOR 10, 0, 1
+550 PRINT " of the Apple Eliminators": COLOR 3, 0, 1
+560 SOU = INT(RND * 2 + 1)
+570 ON SOU GOTO 580, 600
+580 'PLAY "O1MFT155L2DL4EL2FDL1GG#"
+ SLEEP 2
+590 GOTO 650
+600 FOR QWER = 220 TO 196 STEP -1
+610 SOUND QWER, 1
+620 NEXT
+630 'PLAY "O1MLT155L2GP10EP10L1F#"
+ SLEEP 2
+640 GOTO 650
+650 PRINT
+660 PRINT " Make sure that all commands are done in capitals. For help type `H'."
+670 INPUT " Do you want instructions (Y/N)"; ANS$
+680 IF ANS$ = "Y" GOTO 11570
+690 IF ANS$ = "y" GOTO 11570
+700 REM
+710 REM ****************************************************
+720 REM * WRITTEN BY JOHN BELEW FOR USE WITH THE I.B.M. *
+730 REM * AND OTHER COMPATIBLE *
+740 REM * THANKS TO TSR FOR THE MONSTERS *
+750 REM * THANKS TO RECREATIONAL COMPUTING FOR THE ORIGINAL*
+760 REM * PROGRAM JUNE 29, 1984 *
+770 REM ****************************************************
+780 DEFINT A-Z
+
+790 DIM C$(34), I$(34), R$(4), W$(8), E$(8)
+800 DIM L(512), C(3, 4), T(8), O(3), R(3)
+'810 DEF FNA (Q) = 1 + INT(RND(1) * Q)
+'820 DEF FNB (Q) = Q + 8 * ((Q = 9) - (Q = 0))
+'830 DEF FNC (Q) = -Q * (Q < 19) - 18 * (Q > 18)
+'840 DEF FND (Q) = 64 * (Q - 1) + 8 * (X - 1) + Y
+'850 DEF FNE (Q) = Q + 100 * (Q > 99)
+860 COLOR 11, 0, 15: Y$ = "** Please answer yes or no": COLOR 3, 0, 1
+870 NG = 0
+880 REM
+890 REM INITIALIZE ARRAYS
+900 REM
+910 NG = NG + 1
+920 Q = RND(1)
+930 RESTORE
+940 FOR Q = 1 TO 34
+950 READ C$(Q), I$(Q)
+960 NEXT Q
+970 FOR Q = 1 TO 512
+980 L(Q) = 101
+990 NEXT Q
+1000 FOR Q = 1 TO 8
+1010 READ W$(Q), E$(Q)
+1020 NEXT Q
+1030 FOR Q = 1 TO 4
+1040 READ R$(Q)
+1050 NEXT Q
+1060 IF NG > 1 GOTO 1420
+1070 'INPUT " Do you want instructions (Y/N)?";ANS$
+1080 'PRINT
+1090 'IF ANS$ = "Y" GOTO 12000
+1100 'IF ANS$ = "y" GOTO 12000
+1110 CLS
+1120 PRINT " ͻ"
+1130 PRINT " "; : COLOR 27, 0, 1: PRINT "* * * THE TEMPLE OF LOTH * * *"; : COLOR 3, 0, 1: PRINT ""
+1140 PRINT " "
+1150 'PRINT
+1160 'PRINT "
+1170 'GOSUB 9060
+1180 PRINT " Many generations ago, during the great Elfin Wars of the "
+1190 PRINT " first age, there stood the majestic temple of the Drow. The "
+1200 PRINT " Drow are an evil race of elves dedicated to the destruction "
+1210 PRINT " of all elves but themselves. During this time they were rul- "
+1220 PRINT " ed by the the evil priestess,Tar-Anclime, a great sorceress. "
+1230 PRINT " Under the aid of her goddess Loth, she created "; : COLOR 11, 0, 1: PRINT "the Amulet of"; : COLOR 3, 0, 1: PRINT " "
+1240 PRINT " "; : COLOR 11, 0, 1: PRINT " Chaos"; : COLOR 3, 0, 1: PRINT " which was to be used to aid her side in the final des- "
+1250 PRINT " truction of their rivals. The Drow massed for The final con- "
+1260 PRINT " flict but they were attacked by their rival forces and there "
+1270 PRINT " they were utterly destroyed. Now thousands of years later it "
+1280 PRINT " is said that in the kingdom of Rhyl that the descendents of "
+1290 PRINT " the Drow are massing. The Drow plan to return to claim their "
+1300 PRINT " homeland to retrieve "; : COLOR 11, 0, 1: PRINT "the Amulet of Chaos"; : COLOR 3, 0, 1: PRINT " so they can finally "
+1310 PRINT " destroy the elves of good. Living in the village shadowed by "
+1320 PRINT " now crumbling temple, you have been chosen to retrieve the "
+1330 PRINT " Amulet before the Drow return so that it can be destroyed. "
+1340 PRINT " There are many dangers that live in the mazes of the ruins "
+1350 PRINT " such as powerful and magic monsters. It is even believed "
+1360 PRINT " that the some Drow still live in ruins."; : COLOR 28, 0, 1: PRINT " BEWARE!!!"; : COLOR 3, 0, 1: PRINT " "
+1370 'PRINT "
+1380 PRINT " ͼ"
+1400 GOTO 1420
+1410 PRINT "Wait one moment please while I stock the temple..."
+1420 X = 1: Y = 4
+1430 L(FND(1)) = 2
+1440 FOR Z = 1 TO 7
+1450 FOR Q1 = 1 TO 2
+1460 Q = 104
+1470 GOSUB 10450
+1480 L(FND(Z + 1)) = 103
+1490 NEXT Q1
+1500 NEXT Z
+1510 FOR Z = 1 TO 8
+1520 FOR Q = 113 TO 124
+1530 GOSUB 10450
+1540 NEXT Q
+1550 FOR Q1 = 1 TO 3
+1560 FOR Q = 105 TO 112
+1570 GOSUB 10450
+1580 NEXT Q
+1590 Q = 125
+1600 GOSUB 10450
+1610 NEXT Q1
+1620 NEXT Z
+1630 FOR Q = 126 TO 133
+1640 Z = FNA(8)
+1650 GOSUB 10450
+1660 NEXT Q
+1670 Q = 101
+1680 FOR A = 1 TO 3
+1690 Z = FNA(8)
+1700 GOSUB 10450
+1710 C(A, 1) = X
+1720 C(A, 3) = Z
+1730 C(A, 2) = Y
+1740 C(A, 4) = 0
+1750 NEXT A
+1760 RC = 0
+1770 ST = 2
+1780 DX = 8
+1790 R$(3) = "Man"
+1800 Q = 112 + FNA(12)
+1810 Z = FNA(8)
+1820 GOSUB 10450
+1830 R(1) = X
+1840 R(2) = Y
+1850 R(3) = Z
+1860 Q = 109
+1870 Z = FNA(8)
+1880 GOSUB 10450
+1890 O(1) = X
+1900 O(2) = Y
+1910 O(3) = Z
+1920 BF = 0: OT = 8: AV = 0: HT = 0: T = 1: VF = 0: LF = 0
+1930 TC = 0: GP! = 60: RF = 0: OF = 0: BL = 0: IQ = 8: SX = 0
+1940 FOR Q = 1 TO 8
+1950 T(Q) = 0
+1960 NEXT Q
+1970 BEEP
+1980 CLS
+1990 PRINT
+2000 PRINT
+2010 COLOR 11, 0, 1: PRINT " You are in large room blinded by a very bright light. All of the sudden you "
+2020 PRINT "hear a booming voice which says, `You have been chosen bold one to be a valiant"
+2030 PRINT "and brave warrior of any race you desire. You can choose to be an Elf, a Man,"
+2040 PRINT "a Dwarf or a Hobbit.' Remember though, you only have 500 turns.": COLOR 3, 0, 1
+2050 COLOR 3, 0, 1
+2060 GOSUB 10690
+2070 FOR Q = 1 TO 4
+2080 STR = INT(RND * 10 + 2)
+2090 DEX = INT(RND * 10 + 2)
+2100 IF LEFT$(R$(Q), 1) = O$ THEN RC = Q: ST = STR * Q: DX = DEX * Q
+2110 IF ST > 18 THEN ST = 18
+2120 IF DX > 18 THEN DX = 18
+2130 NEXT Q
+2140 PRINT
+2150 OT = OT + 4 * (RC = 1)
+2160 IF RC > 0 THEN R$(3) = "Human": GOTO 2190
+2170 COLOR 11, 0, 15: PRINT "** That was incorrect. Please type E, D, M, OR H.": COLOR 3, 0, 1
+2180 GOTO 2060
+2190 PRINT "Which sex do you prefer";
+2200 GOSUB 10710
+2210 IF O$ = "M" THEN SX = 1: GOTO 2250
+2220 IF O$ = "F" GOTO 2250
+2230 COLOR 11, 0, 15: PRINT "** Cute "; R$(RC); ", Real cute. Try M OR F.": COLOR 3, 0, 1
+2240 GOTO 2190
+2250 PRINT
+2260 PRINT "OK, "; R$(RC); ", you have the following attributes :"
+2270 PRINT "Strength ="; ST
+2280 PRINT "Intelligence ="; IQ
+2290 PRINT "Dexterity ="; DX
+2300 PRINT "and"; OT; "other points you allocate as you wish."
+2310 PRINT
+2320 Z$ = "Strength"
+2330 GOSUB 10740
+2340 ST = ST + Q
+2350 IF OT = 0 GOTO 2430
+2360 Z$ = "Intelligence"
+2370 GOSUB 10740
+2380 IQ = IQ + Q
+2390 IF OT = 0 GOTO 2430
+2400 Z$ = "Dexterity"
+2410 GOSUB 10740
+2420 DX = DX + Q
+2430 PRINT "OK, "; R$(RC); ", you find your self at a bazaar in a small village built in the "
+2440 PRINT "shadow of a large and crumbling castle. You have nothing save the clothes on "
+2450 PRINT "your back and a purse containing 60gp's to buy your equipments with."
+2460 Z$ = "Armor"
+2470 GOSUB 10990
+2480 AV = 0: WV = 0: FL = 0: WC = 0
+2490 PRINT "Plate Mail:30gp's Chainmail:20gp's Leather:10gp's Nothing:-"
+2500 GOSUB 10690
+2510 IF O$ = "N" GOTO 2570
+2520 AV = -3 * (O$ = "P") - 2 * (O$ = "C") - (O$ = "L")
+2530 IF AV > 0 GOTO 2570
+2540 PRINT
+2550 COLOR 11, 0, 15: PRINT "** Are you a "; R$(RC); " or "; C$(FNA(12) + 12); "?": COLOR 3, 0, 1
+2560 GOTO 2460
+2570 AH = AV * 7: GP! = GP! - AV * 10
+2580 PRINT
+2590 PRINT "OK, bold "; R$(RC); ", you have"; GP!; "gp's left."
+2600 PRINT
+2610 Z$ = "Weapons"
+2620 GOSUB 10990
+2630 PRINT "Sword:30gp's Mace:20gp's Dagger:10gp's Nothing:-"
+2640 GOSUB 10690
+2650 IF O$ = "N" GOTO 2710
+2660 WV = -3 * (O$ = "S") - 2 * (O$ = "M") - (O$ = "D")
+2670 IF WV > 0 GOTO 2710
+2680 PRINT
+2690 COLOR 11, 0, 15: PRINT "** Is your IQ really"; IQ; "?": COLOR 3, 0, 1
+2700 GOTO 2610
+2710 GP! = GP! - WV * 10
+2720 IF GP! < 20 GOTO 2780
+2730 PRINT
+2740 PRINT "Do you want to buy a lamp for 20gp's";
+2750 GOSUB 10710
+2760 IF O$ = "Y" THEN LF = 1: GP! = GP! - 20: GOTO 2780
+2770 IF O$ <> "N" THEN PRINT : PRINT Y$: PRINT : GOTO 2740
+2780 PRINT
+2790 IF GP! < 1 THEN Q = 0: GOTO 2900
+2800 PRINT "OK, "; R$(RC); ", you have"; GP!; "gold pieces left."
+2810 PRINT
+2820 INPUT "Flares give off light which allows you to see all the rooms around you. At a cost of 1gp each how many do you want to buy?"; O$
+2830 Q = VAL(O$)
+2840 PRINT
+2850 IF Q > 0 OR ASC(O$) = 48 GOTO 2890
+2860 COLOR 11, 0, 15: PRINT "** If you don't want any, just type 0.": COLOR 3, 0, 1
+2870 PRINT
+2880 GOTO 2820
+2890 COLOR 11, 0, 15: IF Q > GP! THEN PRINT "** You can only afford"; GP!; ".": COLOR 3, 0, 1: PRINT : GOTO 2820
+2900 FL = FL + Q: GP! = GP! - Q
+2910 X = 1: Y = 4: Z = 1
+2920 COLOR 27, 0, 15: PRINT "OK, "; R$(RC); ", You are now entering the castle!": COLOR 3, 0, 1:
+2930 GOTO 6370
+2940 REM
+2950 REM MAIN PROCESSING LOOP
+2960 REM
+2970 T = T + 1
+2980 IF RF + OF > 0 GOTO 3110
+2990 IF C(1, 4) > T(1) THEN T = T + 1
+3000 IF C(2, 4) > T(3) THEN GP! = GP! - FNA(5)
+3010 IF GP! < 0 THEN GP! = 0
+3020 IF C(3, 4) <= T(5) GOTO 3110
+3030 A = X: B = Y: C = Z
+3040 X = FNA(8): Y = FNA(8): Z = FNA(8)
+3050 L(FND(Z)) = FNE(L(FND(Z))) + 100
+3060 X = A: Y = B: Z = C
+3070 IF L(FND(Z)) <> 1 GOTO 3110
+3080 FOR Q = 1 TO 3
+3090 C(Q, 4) = -(C(Q, 1) = X) * (C(Q, 2) = Y) * (C(Q, 3) = Z)
+3100 NEXT Q
+3110 IF FNA(5) > 1 GOTO 3610
+3120 PRINT
+3130 PRINT "You ";
+3140 Q = FNA(7) + BL
+3150 IF Q > 7 THEN Q = 4
+3160 ON Q GOSUB 3460, 3200, 3440, 3180, 3480, 3510, 3530
+3170 GOTO 3610
+3180 PRINT "stepped on dragon @#*%!"
+3190 RETURN
+3200 PRINT "hear ";
+3210 ON FNA(4) GOTO 3220, 3280, 3360, 3390
+3220 PRINT "a scream!"
+3230 FOR I = 2075 TO 1800 STEP -1
+3240 SOUND I, .001
+3250 NEXT
+3260 SOUND 32729, 1
+3270 RETURN
+3280 PRINT "footsteps!"
+3290 'FOR I=1 TO 5
+3300 FOR J = 40 TO 37 STEP -1
+3310 SOUND J, 1
+3320 SOUND 32729, 10
+3330 'NEXT
+3340 NEXT
+3350 RETURN
+3360 PRINT "a Wumpus!"
+3370 'PLAY "O0MST255L4AGP5AGP5AGP5AG"
+ SLEEP 2
+3380 RETURN
+3390 PRINT "groans!"
+3400 FOR I = 300 TO 37 STEP -1
+3410 SOUND I, .1
+3420 NEXT
+3430 RETURN
+3440 PRINT "sneezed!"
+3450 RETURN
+3460 PRINT "see a bat fly by!"
+3470 RETURN
+3480 PRINT "hear a "; C$(12 + FNA(13)); " growling!"
+3490 GOTO 3400
+3500 RETURN
+3510 PRINT "feel like you're being watched!"
+3520 RETURN
+3530 PRINT "hear faint rustling noises!"
+3540 FOR Q = 1 TO 200
+3550 A = INT(RND * 50 + 37)
+3560 SOUND A, .001
+3570 'SOUND 32729,1
+3580 NEXT
+3590 SOUND 32729, 1
+3600 RETURN
+3610 IF BL + T(4) <> 2 GOTO 3650
+3620 PRINT
+3630 PRINT C$(29); " cures your blindness!"
+3640 BL = 0
+3650 IF BF + T(6) <> 2 GOTO 3690
+3660 PRINT
+3670 PRINT C$(31); " dissolves the book!"
+3680 BF = 0
+3690 PRINT
+3695 PRINT
+3700 LOCATE 23, 1: COLOR 3, 0, 1: PRINT "Enter your command:"
+3705 FOR ASD = 1 TO 2
+3710 LOCATE 23, 20: PRINT "-": SOUND 32767, 1
+3720 LOCATE 23, 20: PRINT "\": SOUND 32767, 1
+3730 LOCATE 23, 20: PRINT "": SOUND 32767, 1
+3740 LOCATE 23, 20: PRINT "/": SOUND 32767, 1
+3750 LOCATE 23, 20: PRINT "-": SOUND 32767, 1
+3760 LOCATE 23, 20: PRINT "\": SOUND 32767, 1
+3770 LOCATE 23, 20: PRINT "": SOUND 32767, 1
+3780 LOCATE 23, 20: PRINT "/": SOUND 32767, 1
+3790 LOCATE 23, 20: PRINT "-"; : SOUND 32767, 1
+3791 'LINE INPUT O$
+3792 NEXT
+3795 LINE INPUT O$
+3800 IF LEFT$(O$, 2) = "DR" GOTO 5180
+3810 O$ = LEFT$(O$, 1)
+3820 IF O$ = "N" GOTO 4300
+3830 IF (O$ = "S") OR (O$ = "W") OR (O$ = "E") GOTO 4310
+3840 IF O$ = "U" GOTO 4360
+3850 IF O$ = "D" GOTO 4390
+3860 IF O$ = "" GOTO 10210
+3870 IF O$ = "M" GOTO 4440
+3880 IF O$ = "F" THEN ON BL + 1 GOTO 4680, 4440
+3890 IF O$ = "L" THEN ON BL + 1 GOTO 4940, 4440
+3900 IF O$ = "O" GOTO 5370
+3910 IF O$ = "Q" GOTO 6240
+3920 IF O$ = "G" THEN ON BL + 1 GOTO 5830, 4440
+3930 IF O$ = "T" THEN PRINT : ON RF + 1 GOTO 6090, 6130
+3940 IF O$ = "#" GOTO 11050
+3950 IF O$ = "H" GOTO 3970
+3960 GOTO 4280
+3970 INPUT "Do you want a hard copy (Y/N)"; HARD$
+3980 IF HARD$ = "Y" GOTO 11100
+3990 PRINT "ͻ"
+4000 PRINT ""; : COLOR 27, 0, 1: PRINT " *** TEMPLE OF LOTH'S COMMAND AND INFORMATION SUMMARY ***"; : COLOR 3, 0, 1: PRINT " "
+4010 PRINT ""
+4020 PRINT " The following commands available are: "
+4030 PRINT " "
+4040 PRINT " H=Help N=North S=South E=East W=West U=Up "
+4050 PRINT " D=Down DR=Drink M=Map F=Flare L=Lamp O=Open "
+4060 PRINT " G=Gaze T=Teleport Q=Quit #=Score "
+4070 PRINT ""
+4080 PRINT " The contents of the rooms are as follows: "
+4090 PRINT " "
+4100 PRINT " = empty room B = book C = chest "
+4110 PRINT " D = stairs down = entrance/exit = flares "
+4120 PRINT " G = gold pieces = monster = crystal orb "
+4130 PRINT " P = magic pool S = sinkhole T = treasure "
+4140 PRINT " U = stairs up * = Drow = warp/amulet "
+4150 PRINT ""
+4160 PRINT " The benefits of having treasures are: "
+4170 PRINT " "
+4180 PRINT " RUBY RED - avoid lethargy PALE PEARL - avoid leech "
+4190 PRINT " GREEN GEM - avoid forgetting OPAL EYE - cure blindness "
+4200 PRINT " BLUE FLAME - dissolves books NORN STONE - no benefit "
+4210 PRINT " PALANTIR - no benefit SILMARIL - no benefit "
+4220 PRINT ""
+4230 PRINT
+4240 PRINT "Press RETURN when ready to resume, "; R$(RC); ".";
+4250 LINE INPUT ""; O$
+4260 GOTO 2970
+4270 PRINT
+4280 COLOR 11, 0, 15: PRINT "** Bold "; R$(RC); ", that wasn't a valid command!": COLOR 3, 0, 1
+4290 GOTO 2970
+4300 IF L(FND(Z)) = 2 GOTO 9710
+4310 X = X + (O$ = "N") - (O$ = "S")
+4320 Y = Y + (O$ = "W") - (O$ = "E")
+4330 X = FNB(X)
+4340 Y = FNB(Y)
+4350 GOTO 6370
+4360 IF L(FND(Z)) = 3 THEN Z = Z - 1: GOTO 6370
+4370 Z$ = "Up"
+4380 GOTO 4410
+4390 Z$ = "Down"
+4400 IF L(FND(Z)) = 4 THEN Z = Z + 1: GOTO 6370
+4410 PRINT
+4420 COLOR 11, 0, 15: PRINT "** There are no stairs going "; Z$; " from here!": COLOR 3, 0, 1
+4430 GOTO 2970
+4440 IF BL <> 1 GOTO 4520
+4450 PRINT
+4460 COLOR 11, 0, 15: PRINT "** You can't see anything "; R$(RC); "!": COLOR 3, 0, 1
+4470 GOTO 2970
+4480 REM
+4490 REM DISPLAY MAP OF CURRENT CASTLE LEVEL
+4500 REM
+4510 COLOR 6, 0, 1
+4520 PRINT
+4530 A = X: B = Y
+4540 FOR X = 1 TO 8
+4550 FOR Y = 1 TO 8
+4560 Q = L(FND(Z))
+4570 IF Q > 99 THEN Q = Q - 100: Q = 34: REM TO HIDE ROOMS
+4580 COLOR 6, 0, 1: IF X = A AND Y = B THEN PRINT "<"; I$(Q); "> "; : GOTO 4600: COLOR 3, 0, 1
+4590 COLOR 6, 0, 1: PRINT " "; I$(Q); " "; : COLOR 3, 0, 1
+4600 NEXT Y
+4610 COLOR 3, 0, 1: PRINT
+4620 PRINT
+4630 NEXT X
+4640 X = A: Y = B
+4650 GOTO 4890
+4660 COLOR 12, 0, 1: PRINT ") level"; Z: COLOR 3, 0, 1
+4670 GOTO 2970
+4680 IF FL <> 0 GOTO 4740
+4690 COLOR 11, 0, 15: PRINT "** You can't, you're out of flares!": COLOR 3, 0, 1
+4700 GOTO 2970
+4710 REM
+4720 REM DISPLAY ADJACENT ROOM CONTENTS WITH FLARE
+4730 REM
+4740 PRINT
+4750 FL = FL - 1
+4760 A = X: B = Y
+4770 FOR Q1 = A - 1 TO A + 1
+4780 X = FNB(Q1)
+4790 FOR Q2 = B - 1 TO B + 1
+4800 Y = FNB(Q2)
+4810 Q = FNE(L(FND(Z)))
+4820 L(FND(Z)) = Q
+4830 COLOR 12, 0, 1: PRINT " "; I$(Q); " "; : COLOR 3, 0, 1
+4840 NEXT Q2
+4850 PRINT
+4860 PRINT
+4870 NEXT Q1
+4880 X = A: Y = B
+4890 GOSUB 11020
+4900 GOTO 2970
+4910 REM
+4920 REM DISPLAY CONTENTS OF ADJACENT ROOM WITH LAMP
+4930 REM
+4940 IF LF <> 0 GOTO 4980
+4950 PRINT
+4960 COLOR 11, 0, 15: PRINT "** You don't have a lamp, "; R$(RC); "!": COLOR 3, 0, 1
+4970 GOTO 2970
+4980 PRINT
+4990 PRINT "Where do you want to shine the lamp (N,S,E,W)";
+5000 GOSUB 10710
+5010 A = X: B = Y
+5020 X = FNB(X + (O$ = "N") - (O$ = "S"))
+5030 Y = FNB(Y + (O$ = "W") - (O$ = "E"))
+5040 IF A - X + B - Y <> 0 GOTO 5080
+5050 PRINT
+5060 COLOR 11, 0, 15: PRINT "** That's not a direction "; R$(RC); "!": COLOR 3, 0, 1
+5070 GOTO 2970
+5080 PRINT
+5090 PRINT "The lamp shines into ("; X; ","; Y; ") level"; Z; "."
+5100 PRINT
+5110 L(FND(Z)) = FNE(L(FND(Z)))
+5120 PRINT "There you will find "; C$(L(FND(Z))); "."
+5130 X = A: Y = B
+5140 GOTO 2970
+5150 REM
+5160 REM TAKE A DRINK FROM A POOL
+5170 REM
+5180 IF L(FND(Z)) = 5 GOTO 5220
+5190 PRINT
+5200 COLOR 11, 0, 15: PRINT "** There is no pool to drink from here!": COLOR 3, 0, 1
+5210 GOTO 2970
+5220 Q = FNA(8)
+5230 PRINT
+5240 PRINT "You take a drink and ";
+5250 IF Q < 7 THEN PRINT "feel ";
+5260 ON Q GOTO 5270, 5280, 5290, 5300, 5310, 5320, 5330, 5350
+5270 ST = FNC(ST + FNA(3)): PRINT "stronger.": GOTO 2970
+5280 ST = ST - FNA(3): COLOR 15, 0, 0: PRINT "weaker.": COLOR 7, 0, 0: ON (1 - (ST < 1)) GOTO 2880, 9120
+5290 IQ = FNC(IQ + FNA(3)): PRINT "smarter.": GOTO 2970
+5300 IQ = IQ - FNA(3): COLOR 11, 0, 15: PRINT "dumber.": COLOR 3, 0, 1: ON (1 - (IQ < 1)) GOTO 2970, 9590
+5310 DX = FNC(DX + FNA(3)): PRINT "faster.": GOTO 2970
+5320 DX = DX - FNA(3): COLOR 11, 0, 15: PRINT "clumsier.": COLOR 3, 0, 1: ON (1 - (DX < 1)) GOTO 2970, 9590
+5330 Q = FNA(4): IF Q = RC GOTO 5330
+5340 RC = Q: PRINT "become a "; R$(RC); ".": GOTO 2970
+5350 SX = 1 - SX: PRINT "turn into a "; : IF SX = 0 THEN PRINT "fe";
+5360 PRINT "male "; R$(RC); "!": GOTO 2970
+5370 IF L(FND(Z)) <> 6 GOTO 5410
+5380 PRINT
+5390 PRINT "You open the chest and"
+5400 GOTO 5670
+5410 IF L(FND(Z)) <> 12 GOTO 5450
+5420 PRINT
+5430 PRINT "You open the book and"
+5440 GOTO 5480
+5450 PRINT
+5460 COLOR 11, 0, 15: PRINT "** there is nothing to open here.": COLOR 3, 0, 1
+5470 GOTO 2970
+5480 ON FNA(6) GOTO 5490, 5520, 5540, 5560, 5590, 5620
+5490 COLOR 0, 15, 15: CLS : PRINT "Flash! Oh no! you are now a blind "; R$(RC); "!"
+5500 BL = 1
+5510 GOTO 5650
+5520 PRINT "It's another volume of Nurcc's poetry! - YECH!!"
+5530 GOTO 5650
+5540 PRINT "It's an old copy of Play"; R$(FNA(4)); "!"
+5550 GOTO 5650
+5560 PRINT "It's a manual of dexterity!"
+5570 DX = 18
+5580 GOTO 5650
+5590 PRINT "It's a manual of strength!"
+5600 ST = 18
+5610 GOTO 5650
+5620 COLOR 11, 0, 15: PRINT "The book sticks to your hands -"
+5630 PRINT "now you are unable to draw your weapon!": COLOR 3, 0, 1
+5640 BF = 1
+5650 L(FND(Z)) = 1
+5660 GOTO 2970
+5670 ON FNA(4) GOTO 5680, 5730, 5770, 5730
+5680 PRINT
+5690 COLOR 14, 0, 15: PRINT "KABOOM!"; : COLOR 3, 0, 1: PRINT " it explodes!!"
+5700 Q = FNA(6)
+5710 GOSUB 9490
+5720 ON (1 - (ST < 1)) GOTO 5650, 9590
+5730 Q = FNA(1000)
+5740 PRINT "find"; Q; "gold pieces!"
+5750 GP! = GP! + Q
+5760 GOTO 5650
+5770 PRINT
+5780 COLOR 5, 0, 15: PRINT "GAS!!"; : COLOR 3, 0, 1: PRINT "you stagger from the room!"
+5790 L(FND(Z)) = 1
+5800 T = T + 20
+5810 O$ = MID$("NSEW", FNA(4), 1)
+5820 GOTO 4310
+5830 IF L(FND(Z)) = 11 GOTO 5870
+5840 PRINT
+5850 COLOR 11, 0, 15: PRINT "**You need an orb to use the gaze command!": COLOR 3, 0, 1
+5860 GOTO 2970
+5870 PRINT
+5880 PRINT "You see ";
+5890 ON FNA(6) GOTO 5900, 5920, 5940, 5960, 6030, 6070
+5900 PRINT "Yourself in a bloody mess!"
+5910 ST = ST - FNA(2): ON (1 - (ST < 1)) GOTO 2970, 9590
+5920 PRINT "Yourself drinking from a pool and becoming "; C$(12 + FNA(13)); "!"
+5930 GOTO 2970
+5940 PRINT C$(12 + FNA(13)); " gazing back at you!"
+5950 GOTO 2970
+5960 A = X: B = Y: C = Z
+5970 X = FNA(8): Y = FNA(8): Z = FNA(8)
+5980 Q = FNE(L(FND(Z)))
+5990 L(FND(Z)) = Q
+6000 PRINT C$(Q); " at ("; X; ","; Y; ") level"; Z; "."
+6010 X = A: Y = B: Z = C
+6020 GOTO 2970
+6030 A = FNA(8): B = FNA(8): C = FNA(8)
+6040 IF FNA(8) < 4 THEN A = O(1): B = O(2): C = O(3)
+6050 BEEP: COLOR 12, 0, 15: PRINT "The Amulet of Chaos at ("; A; ","; B; ") level"; C; "!": COLOR 3, 0, 1
+6060 GOTO 2970
+6070 PRINT "a soap opera rerun!"
+6080 GOTO 2970
+6090 IF RF <> 0 GOTO 6130
+6100 PRINT
+6110 COLOR 11, 0, 15: PRINT "** You can't teleport without the Runestaff!": COLOR 3, 0, 1
+6120 GOTO 2970
+6130 Z$ = "X-Coordinate"
+6140 GOSUB 10850
+6150 X = Q
+6160 Z$ = "Y-Coordinate"
+6170 GOSUB 10850
+6180 Y = Q
+6190 Z$ = "Z-Coordinate"
+6200 GOSUB 10850
+6210 Z = Q
+6220 O$ = "T"
+6230 GOTO 6370
+6240 PRINT
+6250 PRINT "Do you really want to quit now?";
+6260 GOSUB 10710
+6270 PRINT
+6280 IF O$ = "Y" GOTO 6310
+6290 COLOR 11, 0, 15: PRINT "** Then don't say that you do!": COLOR 3, 0, 1
+6300 GOTO 2970
+6310 PRINT
+6320 GOTO 9870
+6330 REM
+6340 REM DISPLAY STATUS INFORMATION
+6350 REM
+6360 CLS
+6370 COLOR 3, 0, 1: PRINT
+6380 IF BL = 0 THEN GOSUB 11020: PRINT
+6390 LOCATE 24, 1: COLOR 3, 0, 1
+6400 PRINT "Strength ="; ST; " Intelligence ="; IQ; " Dexterity ="; DX
+6410 PRINT "Treasures ="; TC; " Flares ="; FL; " Gold Pieces ="; GP!
+6420 PRINT "Turns ="; T; " Weapon = "; W$(WV + 1); " Armor = "; W$(AV + 5);
+6430 IF LF = 1 THEN PRINT " and a lamp"
+6440 IF LF = 0 THEN PRINT " "
+6450 JOHN! = IQ * 100 + ST * 100 + DX * 100 + KM! + FTRS + REQ + GP! - T * 5
+6460 ' IF JOHN! > 30000 THEN JOHN!=30000
+6470 ' IF GP! > 30000 THEN GP!=30000
+6480 PRINT "Score ="; JOHN!;
+6490 PRINT " Status = ";
+6500 EQUZ = 0
+6510 IF BL = 1 THEN PRINT "-Blinded": EQUZ = 1
+6520 IF BF = 1 THEN PRINT "-Unable to draw weapon": EQUZ = 1
+6530 IF EQUZ = 0 THEN PRINT "-Normal"
+6540 MAGICAL = 0
+6550 PRINT "You are carrying ";
+6560 IF OF = 1 THEN COLOR 12, 0, 1: PRINT "The Amulet of Chaos": COLOR 3, 0, 1: MAGICAL = 1
+6570 IF RF = 1 THEN PRINT "The Runestaff": MAGICAL = 1
+6580 IF MAGICAL = 0 THEN PRINT "no magical items at the moment"
+6590 QXYZ = 0
+6600 PRINT "The treasures you carry are ";
+6610 FOR Q = 1 TO 8
+6620 IF T(Q) = 1 THEN PRINT C$(Q + 25): QXYZ = 1
+6630 NEXT Q
+6640 IF QXYZ = 0 THEN PRINT "nothing"
+6650 IF COME = 1 THEN GOTO 6670
+6660 IF T > 500 THEN GOTO 11380
+6670 WC = 0
+6680 Q = FNE(L(FND(Z)))
+6690 L(FND(Z)) = Q
+6700 Z$ = "You now have "
+6710 PRINT
+6720 PRINT "Here you find "; C$(Q); "."
+6730 IF (Q < 7) OR (Q = 11) OR (Q = 12) GOTO 2970
+6740 IF Q = 7 THEN GP! = GP! + FNA(10): PRINT Z$; GP!; ".": GOTO 5650
+6750 IF Q = 8 THEN FL = FL + FNA(5): PRINT Z$; FL; ".": GOTO 5650
+6760 IF Q > 9 GOTO 6790
+6770 IF (O(1) = X) AND (O(2) = Y) AND (O(3) = Z) THEN ON (1 - (O$ = "T")) GOTO 4310, 10190
+6780 X = FNA(8): Y = FNA(8): Z = FNA(8): GOTO 6370
+6790 IF Q = 10 THEN Z = FNB(Z + 1): GOTO 6370
+6800 IF Q <= 25 OR Q >= 34 GOTO 6860
+6810 PRINT
+6820 PRINT "It's now yours!"
+6830 T(Q - 25) = 1
+6840 TC = TC + 1
+6850 GOTO 5650
+6860 A = L(FND(Z)) - 12
+6870 WC = 0
+6880 IF (A < 13) OR (VF = 1) GOTO 8070
+6890 PRINT
+6900 PRINT "You may trade with, attack, or ignore the Drow Merchant."
+6910 GOSUB 10690
+6920 IF O$ = "I" GOTO 2970
+6930 IF O$ <> "A" GOTO 6980
+6940 VF = 1
+6950 PRINT
+6960 COLOR 3, 0, 12: PRINT "You'll be sorry that you did that!"
+6970 GOTO 8070
+6980 IF O$ = "T" GOTO 7020
+6990 PRINT
+7000 COLOR 11, 0, 15: PRINT "** Nice shot "; R$(RC); "!": COLOR 3, 0, 1
+7010 GOTO 6890
+7020 FOR Q = 1 TO 8
+7030 A = FNA(Q * 1500)
+7040 IF T(Q) = 0 GOTO 7100
+7050 PRINT
+7060 PRINT "Do you want to sell "; C$(Q + 25); " for "; A; "gp's";
+7070 GOSUB 10710
+7080 IF O$ = "Y" THEN TC = TC - 1: T(Q) = 0: GP! = GP! + A: GOTO 7100
+7090 IF O$ <> "N" THEN PRINT Y$: GOTO 7050
+7100 NEXT Q
+7110 IF GP! >= 1000 GOTO 7150
+7120 PRINT
+7130 PRINT "You're too poor to trade, "; R$(RC); "."
+7140 GOTO 2970
+7150 IF GP! < 1250 GOTO 7650
+7160 PRINT
+7170 PRINT "OK "; R$(RC); ", you have "; GP!; "gp's and "; W$(AV + 5); " armor."
+7180 PRINT
+7190 Z$ = "Armor"
+7200 GOSUB 10990
+7210 PRINT "Nothing:0gp's Leather:1250gp's ";
+7220 IF GP! > 1499 THEN PRINT "Chainmail:1500:gp's ";
+7230 IF GP! > 1999 THEN PRINT "Plate Mail:2000gp's ";
+7240 PRINT
+7250 GOSUB 10690
+7260 PRINT
+7270 IF O$ = "N" GOTO 7400
+7280 IF O$ = "L" THEN GP! = GP! - 1250: AV = 1: AH = 7: GOTO 7400
+7290 IF O$ <> "C" OR GP! >= 1500 GOTO 7320
+7300 COLOR 11, 0, 15: PRINT "** You haven't got that much gold on hand!": COLOR 3, 0, 1
+7310 GOTO 7180
+7320 IF O$ = "C" THEN GP! = GP! - 1500: AV = 2: AH = 14: GOTO 7400
+7330 IF O$ <> "P" OR GP! >= 2000 GOTO 7360
+7340 COLOR 11, 0, 15: PRINT "** You can't afford plate mail!": COLOR 3, 0, 1
+7350 GOTO 7180
+7360 IF O$ = "P" THEN GP! = GP! - 2000: AV = 3: AH = 21: GOTO 7400
+7370 PRINT
+7380 COLOR 11, 0, 15: PRINT "** Choose a selection.": COLOR 3, 0, 1
+7390 GOTO 7240
+7400 IF GP! < 1250 GOTO 7650
+7410 PRINT
+7420 PRINT "You have"; GP!; "gp's left with "; W$(WV + 1); " in hand."
+7430 PRINT
+7440 Z$ = "Weapon"
+7450 GOSUB 10990
+7460 PRINT "Nothing:- Dagger:1250gp's";
+7470 IF GP! > 1499 THEN PRINT "Mace:1500gp's";
+7480 IF GP! > 1999 THEN PRINT "Sword:2000gp's";
+7490 PRINT
+7500 GOSUB 10690
+7510 PRINT
+7520 IF O$ = "N" GOTO 7650
+7530 IF O$ = "D" THEN GP! = GP! - 1250: WV = 1: GOTO 7650
+7540 IF O$ <> "M" OR GP! >= 1500 GOTO 7570
+7550 COLOR 11, 0, 15: PRINT "** Sorry sir, I'm afraid I don't give credit!": COLOR 3, 0, 1
+7560 GOTO 7430
+7570 IF O$ = "M" THEN GP! = GP! - 1500: WV = 2: GOTO 7650
+7580 IF O$ <> "S" OR GP! >= 2000 GOTO 7620
+7590 COLOR 11, 0, 15: PRINT "** Your Dungeon Express Card - ";
+7600 PRINT "You left home without it!": COLOR 3, 0, 1
+7610 GOTO 7430
+7620 IF O$ = "S" THEN GP! = GP! - 2000: WV = 3: GOTO 7650
+7630 COLOR 11, 0, 15: PRINT "** Try choosing a selection!": COLOR 3, 0, 1
+7640 GOTO 7490
+7650 IF GP! < 1000 GOTO 2970
+7660 Z$ = "Strength"
+7670 GOSUB 10930
+7680 IF O$ <> "Y" GOTO 7740
+7690 GP! = GP! - 1000
+7700 ST = FNC(ST + FNA(6))
+7710 Q = ST
+7720 GOSUB 10960
+7730 GOTO 7650
+7740 IF O$ <> "N" THEN PRINT Y$: GOTO 7660
+7750 IF GP! < 1000 GOTO 2970
+7760 Z$ = "Intelligence"
+7770 GOSUB 10930
+7780 IF O$ <> "Y" GOTO 7840
+7790 GP! = GP! - 1000
+7800 IQ = FNC(IQ + FNA(6))
+7810 Q = IQ
+7820 GOSUB 10960
+7830 GOTO 7750
+7840 IF O$ <> "N" THEN PRINT Y$: GOTO 7760
+7850 IF GP! < 1000 GOTO 2970
+7860 Z$ = "Dexterity"
+7870 GOSUB 10930
+7880 IF O$ <> "Y" GOTO 7940
+7890 GP! = GP! - 1000
+7900 DX = FNC(DX + FNA(6))
+7910 Q = DX
+7920 GOSUB 10960
+7930 GOTO 7850
+7940 IF O$ <> "N" THEN PRINT Y$: GOTO 7860
+7950 IF (GP! < 1000) OR (LF = 1) GOTO 2970
+7960 PRINT
+7970 PRINT "Do you want to buy a lamp for 1000 gp's";
+7980 GOSUB 10710
+7990 IF O$ <> "Y" GOTO 8050
+8000 GP! = GP! - 1000
+8010 LF = 1
+8020 PRINT
+8030 PRINT "It's guaranteed to outlive you!"
+8040 GOTO 2970
+8050 IF O$ <> "N" THEN PRINT Y$: GOTO 7960
+8060 GOTO 2970
+8070 Q1 = 1 + INT(A / 2): Q2 = A + 2: Q3 = 1
+8080 IF (C(1, 4) > T(1)) OR (BL = 1) OR (DX < FNA(9) + FNA(9)) GOTO 9100
+8090 PRINT
+8100 COLOR 3, 0, 12: PRINT "You're confronting "; C$(A + 12); "!"
+8110 PRINT
+8120 PRINT "You may attack or retreat (strongly suggested!)."
+8130 IF Q3 = 1 THEN PRINT "You can also attempt to bribe the creature."
+8140 IF IQ > 14 THEN PRINT "You can also cast a spell."
+8150 PRINT
+8160 PRINT "Your strength is"; ST; "and your dexterity is"; DX; "."
+8170 GOSUB 10690
+8180 IF O$ <> "A" GOTO 8590
+8190 IF WV <> 0 GOTO 8230
+8200 PRINT
+8210 COLOR 11, 0, 15: PRINT "** Pounding on "; C$(A + 12); " won't hurt it!": COLOR 3, 0, 12
+8220 GOTO 9100
+8230 IF BF <> 1 GOTO 8270
+8240 PRINT
+8250 COLOR 11, 0, 15: PRINT "** You can't kill it with a book, so I suggest you either attack or retreat!": COLOR 3, 0, 12
+8260 GOTO 9100
+8270 IF DX >= FNA(20) + (3 * BL) GOTO 8310
+8280 PRINT
+8290 PRINT "You barely missed the "; C$(A + 12); "!"
+8300 GOTO 9100
+8310 Z$ = RIGHT$(C$(A + 12), LEN(C$(A + 12)) - 2)
+8320 IF LEFT$(Z$, 1) = " " THEN Z$ = MID$(Z$, 2)
+8330 PRINT
+8340 PRINT "A valiant blow, you hit the "; Z$; "!"
+8350 Q2 = Q2 - WV
+8360 IF (A <> 9 AND A <> 12) GOTO 8410
+8370 IF FNA(8) <> 1 GOTO 8410
+8380 PRINT
+8390 COLOR 11, 0, 15: BEEP: BEEP: PRINT "OH NO! Your "; W$(WV + 1); " broke!": BEEP: BEEP: COLOR 3, 0, 12
+8400 WV = 0
+8410 IF Q2 > 0 GOTO 9100
+8420 PRINT
+8430 MC = MC - 1
+8440 PRINT "You kill "; C$(A + 12); "."
+8445 KM! = KM! + 1000
+8450 IF H > T - 60 GOTO 8490
+8460 PRINT
+8470 PRINT "You spend an hour eating "; C$(A + 12); E$(FNA(8)); "."
+8480 H = T
+8490 IF X <> R(1) OR Y <> R(2) OR Z <> R(3) THEN ON (1 - (A = 13)) GOTO 8540, 10490
+8500 PRINT
+8510 COLOR 11, 0, 15: BEEP: PRINT "You've found the Runestaff!": BEEP: COLOR 3, 0, 12
+8515 FTRS = 10000
+8520 R(1) = 0
+8530 RF = 1
+8540 Q = FNA(1000)
+8550 PRINT
+8560 PRINT "You now get his hoard of"; Q; "gp's!"
+8570 GP! = GP! + Q
+8580 GOTO 5650
+8590 IF O$ = "R" GOTO 9100
+8600 IF O$ <> "C" GOTO 8890
+8610 IF IQ >= 15 OR Q3 <= 1 GOTO 8650
+8620 PRINT
+8630 COLOR 11, 0, 15: PRINT "** You can't cast a spell now!": COLOR 3, 0, 12
+8640 GOTO 8090
+8650 PRINT
+8660 PRINT "Which spell do you wish to cast, Web, Fireball, or Deathspell?";
+8670 GOSUB 10710
+8680 PRINT
+8690 IF O$ <> "W" GOTO 8730
+8700 ST = ST - 1
+8710 WC = FNA(8) + 1
+8720 ON (1 - (ST < 1)) GOTO 9100, 9590
+8730 IF O$ <> "F" GOTO 8820
+8740 Q = FNA(7) + FNA(7)
+8750 ST = ST - 1
+8760 IQ = IQ - 1
+8770 IF (IQ < 1) OR (ST < 1) GOTO 9590
+8780 PRINT "It does"; Q; "points worth of damage."
+8790 PRINT
+8800 Q2 = Q2 - Q
+8810 GOTO 8410
+8820 IF O$ = "D" GOTO 8860
+8830 PRINT
+8840 COLOR 11, 0, 15: PRINT "** Try one of the options given.": COLOR 3, 0, 12
+8850 GOTO 8090
+8860 PRINT "Death is. . . ";
+8870 IF IQ < FNA(4) + 15 THEN PRINT "yours!": IQ = 0: GOTO 9590
+8880 PRINT "his!": Q2 = 0: GOTO 8420
+8890 IF O$ = "B" AND Q3 <= 1 GOTO 8930
+8900 PRINT
+8910 COLOR 11, 0, 15: PRINT "** Choose one of the options listed.": COLOR 3, 0, 12
+8920 GOTO 8090
+8930 IF TC <> 0 GOTO 8970
+8940 PRINT
+8950 PRINT "All I want is your life!"
+8960 GOTO 9100
+8970 Q = FNA(8)
+8980 IF T(Q) = 0 GOTO 8970
+8990 PRINT
+9000 PRINT "I want "; C$(Q + 25); ". Will you give it to me?";
+9010 GOSUB 10710
+9020 IF O$ = "N" GOTO 9100
+9030 IF O$ <> "Y" THEN PRINT Y$: GOTO 8990
+9040 T(Q) = 0
+9050 TC = TC - 1
+9060 PRINT
+9070 PRINT "OK, just don't tell anyone else."
+9080 VF = VF + (L(FND(Z)) = 25)
+9090 GOTO 2970
+9100 Q3 = 2
+9110 IF WC <= 0 GOTO 9140
+9120 WC = WC - 1
+9130 IF WC = 0 THEN PRINT : PRINT "The web just broke!"
+9140 Z$ = RIGHT$(C$(A + 12), LEN(C$(A + 12)) - 2)
+9150 IF LEFT$(Z$, 1) = " " THEN Z$ = MID$(Z$, 2)
+9160 IF WC <= 0 GOTO 9200
+9170 PRINT
+9180 PRINT "The "; Z$; " is stuck and can't attack now!"
+9190 GOTO 9380
+9200 PRINT
+9210 PRINT "The "; Z$; " attacks!"
+9220 IF DX < FNA(7) + FNA(7) + FNA(7) + 3 * BL GOTO 9330
+9230 PRINT
+9240 HIT = INT(RND(0) * 2 + 1)
+9250 ON HIT GOTO 9260, 9280, 9300
+9260 PRINT "The blow barely misses your left leg making sparks a huge dent in the floor!"
+9270 GOTO 9380
+9280 PRINT "The "; Z$; " charges at you but you dodge out of the way just in time!"
+9290 GOTO 9380
+9300 PRINT "The "; Z$; " just barely misses your ear!"
+9310 GOTO 9380
+9320 GOTO 9380
+9330 PRINT
+9340 COLOR 12, 0, 4: BEEP: PRINT "Thud! The "; Z$; " hit you!": BEEP: COLOR 3, 0, 12
+9350 Q = Q1
+9360 GOSUB 9490
+9370 IF ST < 1 GOTO 9590
+9380 IF O$ <> "R" GOTO 8090
+9390 PRINT
+9400 PRINT "You have escaped!"
+9410 PRINT
+9420 PRINT "Do you want to go North, South, East, or West?";
+9430 GOSUB 10710
+9440 IF O$ = "N" OR O$ = "S" OR O$ = "E" OR O$ = "W" GOTO 4310
+9450 PRINT
+9460 COLOR 11, 0, 15: PRINT "** Don't press your luck, "; R$(RC); "!": COLOR 3, 0, 12
+9470 PRINT
+9480 GOTO 9420
+9490 IF AV = 0 GOTO 9570
+9500 Q = Q - AV
+9510 AH = AH - AV
+9520 IF Q < 0 THEN AH = AH - Q: Q = 0
+9530 IF AH >= 0 GOTO 9570
+9540 AH = 0: AV = 0
+9550 PRINT
+9560 PRINT "Your armor is damaged beyond use . . . good luck!"
+9570 ST = ST - Q
+9580 RETURN
+9590 BEEP
+9600 GOSUB 10630
+9610 COLOR 3, 0, 7: PRINT "A noble effort, oh formerly living "; R$(RC); "!"
+9620 PRINT
+9630 PRINT "You died due to lack of ";
+9640 IF ST < 1 THEN PRINT "Strength."
+9650 IF IQ < 1 THEN PRINT "Intelligence."
+9660 IF DX < 1 THEN PRINT "Dexterity."
+9670 PRINT
+9680 Q3 = 1
+9690 PRINT "At the time you died, you had :"
+9700 GOTO 9920
+9710 Q3 = 0
+9720 PRINT
+9730 PRINT "You left the castle with";
+9740 IF OF = 0 THEN PRINT "out";
+9750 PRINT " the Amulet of Chaos."
+9760 PRINT
+9770 IF OF = 0 GOTO 9870
+9780 CLS
+9790 COLOR 11, 0, 15: PRINT " "
+9800 PRINT " "
+9810 PRINT " "
+9820 PRINT
+9830 BEEP: PRINT "An incredibly glorious victory!!!!": BEEP: BEEP: BEEP: COLOR 3, 0, 1
+9840 PRINT
+9850 PRINT "In addition, you got out with the following:"
+9860 GOTO 9910
+9870 PRINT
+9880 PRINT "A less than awe-inspiring defeat."
+9890 PRINT
+9900 PRINT "When you left the castle, you had:"
+9910 IF Q3 = 0 THEN PRINT "Your miserable life!"
+9920 FOR Q = 1 TO 8
+9930 IF T(Q) = 1 THEN PRINT C$(Q + 25)
+9940 NEXT Q
+9950 PRINT W$(WV + 1); " and "; W$(AV + 5);
+9960 IF LF = 1 THEN PRINT " and a lamp";
+9970 PRINT
+9980 PRINT "You also had"; FL; "flares and"; GP!; "gold pieces"
+9990 IF RF = 1 THEN PRINT "and the Runestaff"
+10000 PRINT "Your score was "; JOHN!
+10010 PRINT "And it took you"; T; "turns!"
+10020 IF JOHN! < 20000 THEN RANK$ = "a Wimp"
+10021 IF JOHN! > 35000! THEN RANK$ = "a Peasant"
+10022 IF JOHN! > 50000! THEN RANK$ = "an Amateur"
+10023 IF JOHN! > 75000! THEN RANK$ = "a Scout"
+10024 IF JOHN! > 90000! THEN RANK$ = "an Adventurer"
+10025 IF JOHN! > 110000! THEN RANK$ = "a Hero"
+10026 IF JOHN! > 125000! THEN RANK$ = "a Wizard"
+10027 IF JOHN! > 140000! THEN GOTO 11999
+10040 'GOTO 11290
+10050 PRINT "You are ranked as "; RANK$
+10051 PRINT
+10060 PRINT " Are you foolish enough to want to play again?";
+10070 GOSUB 10710
+10080 PRINT
+10090 IF O$ <> "Y" GOTO 10150
+10100 PRINT "Some "; R$(RC); "s never learn!"
+10110 PRINT
+10120 PRINT "Please be patient while the castle is restocked."
+10130 PRINT
+10140 GOTO 910
+10150 IF O$ <> "N" THEN PRINT Y$: GOTO 10050
+10160 PRINT "Maybe dumb "; R$(RC); " is not so dumb after all!"
+10170 PRINT
+10180 GOTO 11040
+10190 PRINT
+10200 'PRINT "Great unmitigated Nurcc!"
+10210 PRINT
+10220 COLOR 28, 0, 15: BEEP: BEEP: PRINT "You just found The Amulet of Chaos!": BEEP: BEEP: COLOR 3, 0, 1
+10230 ST = 18
+10240 IQ = 18
+10250 DX = 18
+10260 REQ = 20000
+10261 BF = 0
+10262 BL = 0
+10270 PRINT
+10280 PRINT "The Runestaff has just disappeared!"
+10290 RF = 0
+10300 OF = 1
+10310 O(1) = 0
+10320 GOTO 5650
+10330 DATA An empty room,,the entrance,,stairs going up,U
+10340 DATA stairs going down,D,a pool,P,a chest,C,gold pieces,G
+10350 DATA flares,,a warp,,a sinkhole,S,a Crystal Orb,
+10360 DATA a book,B,a Green Slime,,an Orc,,an Evil Dwarf,,a Goblin,,a Mind Flayer,
+10370 DATA a Troll,,a Giant spider,,a Minotar,,a Drow,*,a Drider,
+10380 DATA a Balor Demon,,a Red Dragon,,a Drow Merchant,,the Ruby Red,T
+10390 DATA the Norn Stone,T,the Pale Pearl,T,the Opal Eye,T
+10400 DATA the Green Gem,T,the Blue Flame,T,the Palantir,T,the Silmaril,T
+10410 DATA X,"?",no weapon," Sandwich"
+10420 DATA Dagger," stew",Mace," soup",Sword," burger",No armor," roast"
+10430 DATA Leather," filet",Chainmail," taco",Plate mail," pie"
+10440 DATA Hobbit,Elf,Man,Dwarf
+10450 X = FNA(8): Y = FNA(8)
+10460 IF L(FND(Z)) <> 101 GOTO 10450
+10470 L(FND(Z)) = Q
+10480 RETURN
+10490 PRINT
+10500 PRINT "You get all his wares :"
+10510 PRINT "Plate mail"
+10520 AV = 3: AH = 21
+10530 PRINT "A sword"
+10540 WV = 3
+10550 PRINT "A strength potion"
+10560 ST = FNC(ST + FNA(6))
+10570 PRINT "An intelligence potion"
+10580 IQ = FNC(IQ + FNA(6))
+10590 PRINT "A dexterity potion"
+10600 DX = FNC(DX + FNA(6))
+10610 IF LF = 0 THEN PRINT "A lamp": LF = 1
+10620 GOTO 8540
+10630 FOR Q = 1 TO 64
+10640 PRINT "*";
+10650 NEXT Q
+10660 PRINT
+10670 PRINT
+10680 RETURN
+10690 PRINT
+10700 PRINT "Your choice";
+10710 INPUT O$
+10720 O$ = LEFT$(O$, 1)
+10730 RETURN
+10740 PRINT "How many points do you wish to add to your "; Z$;
+10750 INPUT O$
+10760 PRINT
+10770 Q = VAL(O$)
+10780 IF Q = 0 AND ASC(O$) <> 48 THEN Q = -1
+10790 IF Q < 0 OR Q > OT OR Q <> INT(Q) THEN PRINT "** "; : GOTO 10740
+10800 OT = OT - Q
+10810 RETURN
+10820 INPUT O$
+10830 Q = INT(VAL(O$))
+10840 RETURN
+10850 PRINT
+10860 PRINT Z$;
+10870 INPUT O$
+10880 Q = INT(VAL(O$))
+10890 IF Q > 0 AND Q < 9 THEN RETURN
+10900 PRINT
+10910 COLOR 11, 0, 15: PRINT "** Try a number from 1 to 8.": COLOR 3, 0, 1
+10920 GOTO 10850
+10930 PRINT
+10940 PRINT "Do you want to buy a potion of "; Z$; " for 1000 gp's";
+10950 GOTO 10710
+10960 PRINT
+10970 PRINT "Your "; Z$; " is now"; Q; "."
+10980 RETURN
+10990 PRINT
+11000 PRINT "These are the types of "; Z$; " you can buy :"
+11010 RETURN
+11020 COLOR 2, 0, 1: PRINT "You are at ("; X; ","; Y; ") level"; Z; ".": COLOR 3, 0, 1
+11030 RETURN
+11040 SYSTEM
+11050 LET JOHN! = ST + IQ + DX + GP! - T
+11060 PRINT
+11070 PRINT "Your score at this time is "; JOHN!
+11080 PRINT
+11090 GOTO 3690
+
+11100
+ OPEN "help.txt" FOR OUTPUT AS #1
+ PRINT #1, "*** TEMPLE OF LOTH'S COMMAND AND INFORMATION SUMMARY ***"
+11110 PRINT #1,
+11120 PRINT #1, "The following commands available are:"
+11130 PRINT #1,
+11140 PRINT #1, "H=Help N=North S=South E=East W=West U=Up"
+11150 PRINT #1, "D=Down DR=Drink M=Map F=Flare L=Lamp O=Open"
+11160 PRINT #1, "G=Gaze T=Teleport Q=Quit #=Score"
+11170 PRINT #1,
+11180 PRINT #1, "The contents of the rooms are as follows:"
+11190 PRINT #1,
+11200 PRINT #1, " = empty room B = book C = chest"
+11210 PRINT #1, "D = stairs down = entrance/exit = flares"
+11220 PRINT #1, "G = gold pieces = monster = crystal orb"
+11230 PRINT #1, "P = magic pool S = sinkhole T = treasure"
+11240 PRINT #1, "U = stairs up * = Drow = warp/amulet"
+11250 PRINT #1,
+11260 PRINT #1,
+11270 PRINT #1, "The benefits of having treasures are:"
+11280 PRINT #1,
+11290 PRINT #1, "RUBY RED - avoid lethargy PALE PEARL - avoid leech"
+11300 PRINT #1, "GREEN GEM - avoid forgetting OPAL EYE - cure blindness"
+11310 PRINT #1, "BLUE FLAME - dissolves books NORN STONE - no benefit"
+11320 PRINT #1, "PALANTIR - no benefit SILMARIL - no benefit"
+11330 PRINT #1,
+ CLOSE #1
+ PRINT "HELP.TXT created!"
+ SLEEP 3
+11340 GOTO 3700
+11350 END
+11360 RF = 1
+11370 GOTO 3700
+11380 PRINT
+11390 COME = 1
+11400 PRINT "You hear footsteps...";
+11410 SOUND 32767, 28
+11420 PRINT "The footsteps get louder!"
+11430 SOUND 32767, 28
+11440 PRINT "You hear people talking in a strange language."
+11450 SOUND 32767, 28
+11460 PRINT "Oh, No!! the Drow have returned!!!"
+11470 DROW = INT(RND * 100)
+11480 IF DROW < 10 GOTO 11530
+11490 ST = 0
+11500 IQ = 0
+11510 DX = 0
+11520 GOTO 9600
+11530 PRINT
+11540 PRINT "You escaped just in time!"
+11550 PRINT
+11560 GOTO 9760
+11570 'CHAIN"TEM-INS.BAS",10
+
+99910 'CLS:KEY OFF:COLOR 3,0,1
+ CLS : COLOR 3, 0, 1
+ LOCATE 1, 28: COLOR 27, 0, 1: PRINT "Temple of Loth instructions"
+ COLOR 3, 0, 1: LOCATE 4, 3
+ PRINT " Temple of Loth is a computerized simulation of one of the most common and popular fantasy motifs, the lone adventurer's quest with an immense under ground labyrinth. Each game is separate from all others, so the game is a"
+ PRINT " challenge even after you have won. Each game will result in a win or loss depending on the player's skill and luck. The instruction which follow will explain the rules and options of the game."
+ COLOR 3, 0, 1: LOCATE 12, 7: PRINT "A. Character Creation"
+ 'LOCATE 4, 45: PRINT "A. Sex"
+ 'LOCATE 5, 7: PRINT "C. Points"
+ LOCATE 12, 45: PRINT "B. Equipments"
+ 'LOCATE 5, 7: PRINT "C. Lamps and Flares"
+ LOCATE 13, 7: PRINT "C. The Temple"
+ LOCATE 13, 45: PRINT "D. Player Commands"
+ LOCATE 14, 7: PRINT "E. Magic Spells"
+ LOCATE 14, 45: PRINT "F. Treasures, Curses and Such"
+ LOCATE 15, 7: PRINT "G. Drow Merchants"
+ LOCATE 15, 45: PRINT "H. Monsters and The Runestaff"
+ LOCATE 16, 7: PRINT "I. Warps and "; : COLOR 11, 0, 1: PRINT "The Amulet of Chaos ": COLOR 3, 0, 1
+ LOCATE 16, 45: PRINT "J. Error Messages"
+ LOCATE 17, 7: PRINT "K. Scoring"
+ LOCATE 17, 45: PRINT "L. Comments and Suggestions"
+ LOCATE 18, 7: PRINT "M. Return to game"
+999210 LOCATE 20, 6
+ COLOR 11, 0, 1: INPUT "Type in the letter of the section desired then press return"; A$
+ A$ = CHR$(ASC(A$) OR &H20)
+ IF A$="a" goto 999380
+ IF A$="b" goto 999610
+ IF A$="c" goto 999870
+ IF A$="d" goto 9991190
+ IF A$="e" goto 9991650
+ IF A$="f" goto 9991770
+ IF A$="g" goto 9992060
+ IF A$="h" goto 9992160
+ IF A$="i" goto 9992290
+ IF A$="j" goto 9992390
+ IF A$="l" goto 9992470
+ IF A$="k" goto 9992600
+ IF A$="m" goto 9993000
+ PRINT
+ COLOR 11, 0, 15: PRINT "Invalid input, try again": COLOR 3, 0, 1
+ GOTO 999210
+999380 CLS
+ COLOR 11, 0, 1
+ PRINT " CHARACTER CREATION"
+ PRINT : COLOR 3, 0, 1
+ PRINT " At the start of each game you will be asked a number of questions about"
+ PRINT "what type of character you will have. You must make the choices as follows:"
+ PRINT
+ PRINT "RACE You may be an Elf, Dwarf, Man, or Hobbit. Each score is randomly "
+ PRINT " generated, but bonus and deductions are different for each race."
+ PRINT
+ PRINT "SEX You may be a female or male. Both are equal in number of points."
+ PRINT " Be creative in your response."
+ PRINT
+ PRINT "POINTS Each character starts with a number of points for the attributes"
+ PRINT " of strength (ST), intelligence (IQ), and dexterity (DX). In addition,"
+ PRINT " there are some other points you may distribute between these three"
+ PRINT " attributes as you wish."
+ PRINT
+ PRINT " Your ST, IQ, and DX may be any number from 1 to 18. If any of the "
+ PRINT " three drop below 1, you have died. For all three attributes, the "
+ PRINT " larger the numerical value, the better. "
+ LOCATE 25, 1: INPUT "Press enter to return to main menu"; B$
+ GOTO 99910
+999610 CLS : COLOR 11, 0, 1
+ PRINT " EQUIPMENT"
+ PRINT : COLOR 3, 0, 1
+ PRINT " Every character is given 60 gold pieces (gp's), at the beginning of each"
+ PRINT "to purchase some of the following items."
+ PRINT
+ PRINT "ARMOR You may buy platemail armor for 30 gp's, chainmail for 20 gp's or"
+ PRINT " leather for 10 gp's. You can only wear one suit of armor at a time."
+ PRINT " The more expensive the armor, the more damage it will absorb."
+ PRINT
+ PRINT "WEAPONS You may buy a sword for 30 gp's, a mace for 20 gp's, or a dagger for "
+ PRINT " 10 gp's. You can only carry a single weapon at a time. The more ex-"
+ PRINT " pensive the weapon, the more damage it does to the various monsters."
+ PRINT
+ PRINT "LAMP If after selecting armor and weapons, you have 20 gp's left , you may"
+ PRINT " buy a lamp for 20 gp's. Having the lamp will allow you to look into"
+ PRINT " an adjacent room without having to enter it."
+ PRINT
+ PRINT "FLARES If, after all purchases , you have money left, you may buy flares for"
+ PRINT " 1 gp each. Lighting a flare reveals the contents of all the rooms "
+ PRINT " surrounding your current location."
+ PRINT
+ PRINT " Once you have equipped your character, you are ready to enter the"
+ PRINT " Temple and begin your quest."
+ LOCATE 25, 1: INPUT "Press enter to return to main menu."; B$
+ GOTO 99910
+999870 CLS : COLOR 11, 0, 1
+ PRINT " THE TEMPLE"
+ COLOR 3, 0, 1: PRINT
+ PRINT _
+" The temple is arranged in a 8x8x8 three dimensional matrix. This means that there are 8 levels with 64 rooms on each level. The temple levels are are numbered from 1 (the top level) to 8 (the bottom level. Each temple level"
+ PRINT " is constructed in a doughnut like fashion, in that the north edge is connect to the south edge and the east edge is connected to the west edge. In a sim- ular fashion, the sinkholes, explain later, on level 8 will "; DROP; _
+" you down"
+ PRINT " to level 1. The only room that does not work in this fashion is always locat- ed at location (1,4) level 1. Going north from this room will take you out of the temple and end the game."
+ PRINT
+ PRINT " Each room of the temple will have contents as one of the following."
+ PRINT
+ PRINT " = The entrance / exit room"
+ PRINT " = An empty room containing nothing"
+ PRINT " U = Stairs going up a level"
+ PRINT " D = Stairs going down a level"
+ PRINT " P = Magic Pool from which you may drink"
+ PRINT " C = A chest you may open."
+ PRINT " B = A book you may open"
+ PRINT " G = From 1 to 10 gold pieces"
+ PRINT " = From 1 to 3 flares"
+ PRINT " = A warp to another random location"
+ LOCATE 25, 1: INPUT "Press return to continue"; B$
+ LOCATE 25, 1: PRINT " "
+ LOCATE 22, 1
+ PRINT " = A monster (1 of 9 different types)"
+ PRINT " * = A Drow fighter"
+ PRINT " = A crystal orb"
+ PRINT " T = A treasure (1 of 8 in the castle)"
+ PRINT " = A Green Slime"
+ PRINT " 4 = A Red Dragon"
+ PRINT
+ PRINT " The letters are the abbreviations for the room contents which are display- ed whenever you look at a map or light a flare. When you look at a map, the room you are currently located in is bracketed by < >"
+ LOCATE 25, 1: INPUT "Press enter to return to main menu"; B$
+ GOTO 99910
+9991190 CLS : COLOR 11, 0, 1
+ PRINT " PLAYER COMMANDS"
+ COLOR 3, 0, 1: PRINT
+ PRINT " Whenever the program asks for a command, you must decide what action you wish to preform. If your choice is not valid, the program will inform you and allow you to try agian. The following is a list of commands which the pro-"
+ PRINT " gram understands, with a description of their effects and restrictions:"
+ PRINT
+ PRINT " NORTH Moves you to the room north from your present position. When go north from the entrance / exit room, the game terminates. In all cases, the north edge wraps around from the south."
+ PRINT
+ PRINT " SOUTH Moves you to the room south of your present position. In all cases, the south edge wraps around to the north edge."
+ PRINT
+ PRINT " EAST Moves you to the room east of your present position. In all cases, the east edge wraps around to the west."
+ PRINT
+ PRINT " WEST Moves you to the room west of your present position. In all cases, the west edge wraps around to the east."
+ PRINT
+ PRINT " UP/DOWN Causes you to ascend/descend stairs. You must be in a room containing stairs to use this command."
+ PRINT
+ LOCATE 25, 1: INPUT "Press return to continue"; B$
+ LOCATE 25, 1: PRINT " "
+ LOCATE 22, 1
+ PRINT " DRINK Causes you to take a drink from a magic pool. You may repeat this command as often as you wish, but you must be in a room with a pool to use this command."
+ PRINT
+ PRINT " MAP Causes a map of the level you are currently on to be printed. All unexplored rooms are displayed as `?'. All other rooms are dis- played as their one character symbols. You may look at your map at"
+ PRINT
+ PRINT _
+" FLARE Cause one of your flares to be lit, revealing the contents of all the rooms surrounding your current location. Because each edge is joined to the opposite edge, you will always see nine rooms with your loca-"
+ PRINT " as long as you have some and you are not blind or fighting a monster."
+ PRINT
+ PRINT _
+" LAMP Allows you to shine your lamp into any one of the rooms north, south, east, and west of your current position, revealing the room contents. Unlike flares, the lamp may be used repeatedly. You may use your lamp"
+ PRINT " at any time as long as you have one, are not blind, and not attacking a monster."
+ PRINT
+ PRINT " OPEN Causes you to open a book or a chest which is in the room with you."
+ PRINT
+ LOCATE 25, 1: INPUT "Press return to continue"; B$
+ LOCATE 25, 1: PRINT " "
+ LOCATE 22, 1
+ PRINT " GAZE Causes you to gaze into a crystal orb. When you see yourself in a bloody mess, you lose 1 or 2 points of strength. When you see the location of the "; : COLOR 11, 0, 1: PRINT "Amulet of Chaos"; : _
+COLOR 3, 0, 1
+ PRINT ", there is only a 50% chance that it "
+ PRINT " is correct. You cannot gaze when you are blind or when you are not in a room containing a crystal orb."
+ PRINT
+ PRINT " TELE- Allows you to teleport directly into a specific room any where in the PORT temple. This is the only way you can can enter the room containing the"; : COLOR 11, 0, 1: PRINT " Amulet of Chaos."; : COLOR 3, 0, 1
+ PRINT " You must have the Runestaff to teleport!"
+ PRINT
+ PRINT " QUIT Allows you to end the game while you are still in the temple. You will be asked if you are, in case you change your mind. If you quit, you will lose the game."
+ PRINT
+ PRINT " HELP Causes a summary of available commands, abbreviations used in des- cribing the contents of rooms, and the benefits of possessing each of the treasures to be displayed at any time."
+ LOCATE 25, 1: INPUT "Press enter to return to main menu"; B$
+ GOTO 99910
+9991650 CLS : COLOR 11, 0, 2
+ PRINT " MAGIC SPELLS"
+ COLOR 3, 0, 1: PRINT
+ PRINT " When ever your intelligence (IQ) becomes 15 or higher, you gain the option of casting a magic spell on a monster if you have the very first combat option. The three spells and there effects are as follows:"
+ PRINT
+ PRINT " WEB Traps the monster in a sticky web so that it can't fight back as you attack it. This spell lasts from 2 to 9 turns and costs you one strength (ST) point."
+ PRINT
+ PRINT " FIRE- Hits the monster with a ball of flame that causes between 2 and 14 BALL points worth of damage instantly. It costs one strength points and one point of intelligence."
+ PRINT
+ PRINT " DEATH is a contest of will between the monster and yourself, whoever has the lower intelligence dies at once. It costs nothing to use, but it is very risky. Even with an IQ of 18 (the highest possible), you"
+ LOCATE 25, 1: INPUT "Press enter to return to main menu"; B$
+ GOTO 99910
+9991770 CLS : COLOR 11, 0, 1
+ PRINT " TREASURE, CURSES, AND SUCH"
+ COLOR 3, 0, 1: PRINT
+ PRINT " In the temple there are eight randomly placed treasures:"
+ PRINT
+ PRINT " The Ruby Red - Wards off the curse of lethargy."
+ PRINT " The Pale Pearl - Wards off the curse of the leech."
+ PRINT " The Opal Eye - Cures blindness."
+ PRINT " The Green Gem - Wards off the curse of forgetfulness."
+ PRINT " The Blue Flame - Dissolves books stuck to your hands."
+ PRINT " The Norn Stone - Has no special power."
+ PRINT " The Palantir - Has no special power."
+ PRINT " The Silmaril - Has no special power."
+ PRINT
+ PRINT " THERE ARE THREE CURSES:"
+ PRINT
+ PRINT " LETHARGY - This gives the monster the first attack which prevents you from bribing him or casting a spell on them."
+ PRINT
+ PRINT " LEECH - This takes from 1 to 5 gp's from you each turn until you have no gold left at all!"
+ PRINT
+ LOCATE 25, 1: INPUT "Press return to continue"; B$
+ LOCATE 25, 1: PRINT " "
+ LOCATE 20, 1
+ PRINT " FORGETFULNESS - This causes you to forget what you know about each level of the temple. Your map will slowly turn back to all question marks, How- ever, the contents of the rooms stay the same."
+ PRINT
+ PRINT " In addition to nullifying the effects of the curses, the treasures can also provide protection from two undesirable things which can happen when you open a book. These are going blind and which prevent you from"
+ PRINT " seeing your maps, lighting flares, using your lamp, gazing into orbs, and being informed or your current location, and secondly, having a book stuck to your hands, which prevents you to draw your weapon to fight"
+ LOCATE 25, 1: INPUT "Press enter to return to main menu"; B$
+ GOTO 99910
+9992060 CLS : COLOR 11, 0, 1
+ PRINT " DROW MERCHANTS"
+ COLOR 3, 0, 1: PRINT
+ PRINT _
+" On every level there are Drow Merchants who sell necessary items at in- flated prices. Normally, the merchants will make you an offer for every treasure you have, and then, depending on the amount of gold you have, will"
+ PRINT " sell you new armor, a new weapon, a potion of strength, intelligence, and dexterity (no matter how many potions you buy, the maximum amount for these"
+ PRINT " attributes is 18), and a lamp, if you don't already have one. If you chose to attack the merchant, you will antagonize every one in the temple, and they will all react as monsters. You will also lose the ability to trade with"
+ PRINT " them. Killing a merchant, however, will give you new platemail, a sword, one of each kind of potion, and a lamp (if you don't already have one, in add- ition to his hoard of between 1 and 1000 gold pieces. To end hostilities"
+ PRINT " and reestablish trading privileges, you must bribe any Merchant Drow in the castle with the treasure of his choice."
+ LOCATE 25, 1: INPUT "Press enter to return to main menu"; B$
+ GOTO 99910
+9992160 CLS : COLOR 11, 0, 1
+ PRINT " MONSTERS AND THE RUNESTAFF"
+ COLOR 3, 0, 1: PRINT
+ PRINT " There are 12 types of monsters in the temple:"
+ PRINT
+ PRINT " Green Slime, Orcs, Evil Dwarfs, Goblins, Mind Flayers, Trolls, Giant Spiders Minotaurs, Driders, Balor Demon, Reds Dragons, and Drow Warriors."
+ PRINT
+ PRINT " Please note that each time you strike a Drow Warrior or a Red Dragon, there is a chance that your weapon will be shattered."
+ PRINT
+ PRINT _
+" Each monster possesses a hoard of from 1 to 1000 gp's which you obtain when you kill a monster. In addition, one of the monsters is also carring The Runestaff, (you won't know which until one until you kill it). You must have"
+ PRINT " The Runestaff to teleport, and when you teleport into the room with The Amulet of Chaos, The Runestaff will disappear. (You must find your way out of the temple without it)."
+ LOCATE 25, 1: INPUT "Press enter to return to main menu"; B$
+ GOTO 99910
+9992290 CLS : COLOR 11, 0, 1
+ PRINT " WARPS AND "; : COLOR 27, 0, 1: PRINT "THE AMULET OF CHAOS"
+ COLOR 3, 0, 1: PRINT
+ PRINT " All but one of the rooms donated as `' are truly warps. Walking, fall- ing, or teleporting into one of these warps will cause you to be instantly transported to anywhere in the temple at random. The one exception to this"
+ PRINT " rule is the room containing "; : COLOR 11, 0, 1: PRINT "The Amulet of Chaos"; : COLOR 3, 0, 1: PRINT ". This room is disguised as a"
+ PRINT " warp. Walking into this room causes you to move one room further in the same direction. To actually enter this room, you must teleport in using The Rune-"
+ PRINT " staff. At this point, you will acquire "; : COLOR 11, 0, 1: PRINT "The Amulet of Chaos"; : COLOR 3, 0, 1: PRINT ". The Runestaff will"
+ PRINT " disappear at this point. Remember, to win the game, you must leave the temple with the amulet in your possession."
+ LOCATE 25, 1: INPUT "Press enter to return to the main menu"; B$
+ GOTO 99910
+9992390 CLS : COLOR 11, 0, 1
+ PRINT " ERROR MESSAGES"
+ COLOR 3, 0, 1: PRINT
+ PRINT " Anytime you receive a highlighted message with a `**', it means that the last thing you typed was unacceptable to the program at the time. For in- "
+ PRINT " stance "; : COLOR 11, 0, 1: PRINT "** It's hard to gaze without an orb."; : COLOR 3, 0, 1: PRINT ", this means that you tried to"
+ PRINT " gaze from a room which did not contain a crystal orb. You are always required to redo your last response when you receive an `**' message."
+ LOCATE 25, 1: INPUT "Press enter to return to main menu"; B$
+ GOTO 99910
+9992470 CLS : COLOR 11, 0, 1
+ PRINT " COMMENTS AND SUGGESTION"
+ COLOR 3, 0, 1: PRINT
+ PRINT " I hope that all enjoy this program. If you have any comments or suggest- ions, please send them to:"
+ PRINT
+ PRINT " John Belew"
+ PRINT " 4329 Lenoso Common"
+ PRINT " Fremont CA, 94536"
+ PRINT
+ PRINT " if you have any ideas to improve this program yourself please do. Upload your improved version on Wes Meier's RBBS at area code (415) 937-0156."
+ PRINT ""
+ LOCATE 25, 1: INPUT "Press enter to return to main menu"; B$
+ GOTO 99910
+9992600 CLS : COLOR 11, 0, 1
+ PRINT " SCORING "
+ COLOR 3, 0, 1: PRINT
+ PRINT " Each game that you play you will be given a score. The scoring formula goes as follows:"
+ PRINT
+ PRINT " 1 point for each gold piece + 100 times your combined attribute scores"
+ PRINT
+ PRINT " + 1000 points for each monster killed - 5 times the turns played"
+ PRINT
+ PRINT " Bonus points are scored as follows:"
+ PRINT ""
+ PRINT " 5000 for each treasure"
+ PRINT " 10000 for finding the Runestaff"
+ PRINT " 20000 for finding the Amulet of Chaos"
+ PRINT ""
+ PRINT " You will then be ranked into one of the following classes:"
+ PRINT
+ PRINT " 0 - 20000 Whimp 20000 - 35000 Peasent"
+ PRINT " 35000 - 50000 Ameteur 50000 - 75000 Scout"
+ PRINT " 90000 -110000 Adventurer 110000 -125000 Hero"
+ PRINT " 125000 -140000 Wizard 140000+ Lord"
+ PRINT ""
+ PRINT " The highest score to date is that of Lord Nurcc: 142,498"
+ LOCATE 25, 1
+ LINE INPUT "Press enter to return to Main Menu"; B$
+ GOTO 99910
+9993000 CLS
+ 'CHAIN "Temple",700
+ GOTO 700
+'---------------------------------------------------------------------------
+
+11999 LOCATE 25, 1: INPUT "Press return to continue."; QWERTYU$
+12000 CLS : COLOR 26, 0, 1
+12010 PRINT " "
+12020 PRINT " "
+12030 PRINT " "
+12040 PRINT " "
+12050 PRINT " "
+12060 COLOR 3, 0, 1: PRINT
+12070 PRINT
+12080 PRINT " You have been ranked as a Lord with a score of "; JOHN!
+12090 PRINT
+12100 IF JOHN! > 142498! THEN PRINT " Don't forget to replace my score on Tem-Ins.Bas"
+12200 GOTO 10051
+
+
+'810 DEF FNA (Q) = 1 + INT(RND(1) * Q)
+FUNCTION FNA (Q)
+FNA = 1 + INT(RND(1) * Q)
+END FUNCTION
+
+'820 DEF FNB (Q) = Q + 8 * ((Q = 9) - (Q = 0))
+FUNCTION FNB (Q)
+FNB = Q + 8 * ((Q = 9) - (Q = 0))
+END FUNCTION
+
+'830 DEF FNC (Q) = -Q * (Q < 19) - 18 * (Q > 18)
+FUNCTION FNC (Q)
+FNC = -Q * (Q < 19) - 18 * (Q > 18)
+END FUNCTION
+
+'840 DEF FND (Q) = 64 * (Q - 1) + 8 * (X - 1) + Y
+FUNCTION FND (Q)
+FND = 64 * (Q - 1) + 8 * (X - 1) + Y
+END FUNCTION
+
+'850 DEF FNE (Q) = Q + 100 * (Q > 99)
+FUNCTION FNE (Q)
+FNE = Q + 100 * (Q > 99)
+END FUNCTION
+
diff --git a/samples/terry-ritchie.md b/samples/terry-ritchie.md
index a099089d..05e241f4 100644
--- a/samples/terry-ritchie.md
+++ b/samples/terry-ritchie.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY TERRY RITCHIE
diff --git a/samples/tetris.md b/samples/tetris.md
index ae3eb021..16043d21 100644
--- a/samples/tetris.md
+++ b/samples/tetris.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: TETRIS
diff --git a/samples/texel-raytracer/index.md b/samples/texel-raytracer/index.md
index b24444a9..81be6463 100644
--- a/samples/texel-raytracer/index.md
+++ b/samples/texel-raytracer/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: TEXEL RAYTRACER
diff --git a/samples/thick-lines/img/screenshot.png b/samples/thick-lines/img/screenshot.png
new file mode 100644
index 00000000..e9145842
Binary files /dev/null and b/samples/thick-lines/img/screenshot.png differ
diff --git a/samples/thick-lines/index.md b/samples/thick-lines/index.md
new file mode 100644
index 00000000..bb2e0993
--- /dev/null
+++ b/samples/thick-lines/index.md
@@ -0,0 +1,32 @@
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+
+## SAMPLE: THICK LINES
+
+![screenshot.png](img/screenshot.png)
+
+### Author
+
+[🐝 Fellippe Heitor](../fellippe-heitor.md)
+
+### Description
+
+```text
+This can be used to draw a line with a specified lineWidth.
+```
+
+### QBjs
+
+> Please note that QBjs is still in early development and support for these examples is extremely experimental (meaning will most likely not work). With that out of the way, give it a try!
+
+* [LOAD "thick-lines.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?src=https://qb64.com/samples/thick-lines/src/thick-lines.bas)
+* [RUN "thick-lines.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?mode=auto&src=https://qb64.com/samples/thick-lines/src/thick-lines.bas)
+* [PLAY "thick-lines.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?mode=play&src=https://qb64.com/samples/thick-lines/src/thick-lines.bas)
+
+### File(s)
+
+* [thick-lines.bas](src/thick-lines.bas)
+
+🔗 [graphics](../graphics.md), [line](../line.md)
+
+
+Reference: [qb64forum](https://qb64forum.alephc.xyz/index.php?topic=116.0)
diff --git a/samples/thick-lines/src/thick-lines.bas b/samples/thick-lines/src/thick-lines.bas
new file mode 100644
index 00000000..8351c706
--- /dev/null
+++ b/samples/thick-lines/src/thick-lines.bas
@@ -0,0 +1,73 @@
+Const false = 0, true = Not false
+
+Dim x1, y1, x2, y2
+Dim mouseDown As _Byte
+Dim totalDots As Integer
+Dim thickness As Integer
+
+thickness = 10
+
+Screen _NewImage(800, 600, 32)
+
+Do
+ While _MouseInput: thickness = thickness + _MouseWheel: Wend
+
+ If thickness < 1 Then thickness = 1
+
+ If _MouseButton(1) Then
+ If Not mouseDown Then
+ mouseDown = true
+ totalDots = totalDots + 1
+ If totalDots > 2 Then totalDots = 1
+ Select Case totalDots
+ Case 1
+ x1 = _MouseX
+ y1 = _MouseY
+ Case 2
+ x2 = _MouseX
+ y2 = _MouseY
+ End Select
+ End If
+ Else
+ mouseDown = false
+ End If
+
+ Cls
+ Print "Click to set the initial line coordinate,"
+ Print "click again to set the final line coordinate."
+ Print "Use the mousewheel to make the line thicker/thinner."
+ Print "Current thickness:"; thickness
+
+ If totalDots = 1 Then
+ PSet (x1, y1)
+ Else
+ thickLine x1, y1, x2, y2, thickness
+ End If
+ _Display
+ _Limit 30
+Loop
+
+Sub thickLine (x1 As Single, y1 As Single, x2 As Single, y2 As Single, lineWeight%)
+ Dim a As Single, x0 As Single, y0 As Single
+ Dim prevDest As Long, prevColor As _Unsigned Long
+ Static colorSample As Long
+
+ If colorSample = 0 Then
+ colorSample = _NewImage(1, 1, 32)
+ End If
+
+ prevDest = _Dest
+ prevColor = _DefaultColor
+ _Dest colorSample
+ PSet (0, 0), prevColor
+ _Dest prevDest
+
+ a = _Atan2(y2 - y1, x2 - x1)
+ a = a + _Pi / 2
+ x0 = 0.5 * lineWeight% * Cos(a)
+ y0 = 0.5 * lineWeight% * Sin(a)
+
+ _MapTriangle _Seamless(0, 0)-(0, 0)-(0, 0), colorSample To(x1 - x0, y1 - y0)-(x1 + x0, y1 + y0)-(x2 + x0, y2 + y0), , _Smooth
+ _MapTriangle _Seamless(0, 0)-(0, 0)-(0, 0), colorSample To(x1 - x0, y1 - y0)-(x2 + x0, y2 + y0)-(x2 - x0, y2 - y0), , _Smooth
+End Sub
+
diff --git a/samples/tic-tac-toe-3d/index.md b/samples/tic-tac-toe-3d/index.md
index d966c473..872108af 100644
--- a/samples/tic-tac-toe-3d/index.md
+++ b/samples/tic-tac-toe-3d/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: TIC TAC TOE 3D
diff --git a/samples/tic-tac-toe-rings.md b/samples/tic-tac-toe-rings.md
index 515ececa..50cc66e8 100644
--- a/samples/tic-tac-toe-rings.md
+++ b/samples/tic-tac-toe-rings.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: TIC TAC TOE RINGS
diff --git a/samples/tic-tac-toe-rings/index.md b/samples/tic-tac-toe-rings/index.md
index f829e2ca..441e33a5 100644
--- a/samples/tic-tac-toe-rings/index.md
+++ b/samples/tic-tac-toe-rings/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: TIC TAC TOE RINGS
diff --git a/samples/tic-tac-toe.md b/samples/tic-tac-toe.md
index 13e1e7b9..0702ce9f 100644
--- a/samples/tic-tac-toe.md
+++ b/samples/tic-tac-toe.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: TIC TAC TOE
diff --git a/samples/tic-tac-toe/index.md b/samples/tic-tac-toe/index.md
index dc110b97..c8d72fcd 100644
--- a/samples/tic-tac-toe/index.md
+++ b/samples/tic-tac-toe/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: TIC TAC TOE
diff --git a/samples/tile-demo/index.md b/samples/tile-demo/index.md
index 8bebbd7f..bdf87d74 100644
--- a/samples/tile-demo/index.md
+++ b/samples/tile-demo/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: TILE DEMO
diff --git a/samples/tile-engine-test/index.md b/samples/tile-engine-test/index.md
index 8657e2f0..b396033a 100644
--- a/samples/tile-engine-test/index.md
+++ b/samples/tile-engine-test/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: TILE ENGINE TEST
diff --git a/samples/tile-experiment/index.md b/samples/tile-experiment/index.md
index 5b53019a..ea8b397d 100644
--- a/samples/tile-experiment/index.md
+++ b/samples/tile-experiment/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: TILE EXPERIMENT
diff --git a/samples/tile.md b/samples/tile.md
index 3b50508c..344b2922 100644
--- a/samples/tile.md
+++ b/samples/tile.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: TILE
diff --git a/samples/tim-syrop.md b/samples/tim-syrop.md
index 5c61ec4b..53e5ffba 100644
--- a/samples/tim-syrop.md
+++ b/samples/tim-syrop.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY TIM SYROP
diff --git a/samples/time/img/screenshot.png b/samples/time/img/screenshot.png
new file mode 100644
index 00000000..6a3c4012
Binary files /dev/null and b/samples/time/img/screenshot.png differ
diff --git a/samples/time/index.md b/samples/time/index.md
new file mode 100644
index 00000000..466de66f
--- /dev/null
+++ b/samples/time/index.md
@@ -0,0 +1,25 @@
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+
+## SAMPLE: TIME
+
+![screenshot.png](img/screenshot.png)
+
+### Description
+
+```text
+Simple date/time program.
+```
+
+### QBjs
+
+> Please note that QBjs is still in early development and support for these examples is extremely experimental (meaning will most likely not work). With that out of the way, give it a try!
+
+* [LOAD "time.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?src=https://qb64.com/samples/time/src/time.bas)
+* [RUN "time.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?mode=auto&src=https://qb64.com/samples/time/src/time.bas)
+* [PLAY "time.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?mode=play&src=https://qb64.com/samples/time/src/time.bas)
+
+### File(s)
+
+* [time.bas](src/time.bas)
+
+🔗 [clock](../clock.md), [legacy](../legacy.md)
diff --git a/samples/time/src/time.bas b/samples/time/src/time.bas
new file mode 100644
index 00000000..6efb0fa9
--- /dev/null
+++ b/samples/time/src/time.bas
@@ -0,0 +1,32 @@
+CLS
+DO
+Y = VAL(MID$(DATE$, 7, 4))
+M = VAL(MID$(DATE$, 1, 2))
+EM$ = "TH"
+IF M = 1 THEN EM$ = "ST"
+IF M = 2 THEN EM$ = "ND"
+IF M = 3 THEN EM$ = "RD"
+M$ = STR$(M) + EM$
+FOR K = 1 TO M
+READ MO$
+NEXT
+D = VAL(MID$(DATE$, 4, 2))
+ED$ = "TH"
+IF D = 1 THEN EM$ = "ST"
+IF D = 2 THEN EM$ = "ND"
+IF D = 3 THEN EM$ = "RD"
+D$ = STR$(D) + ED$
+H = INT(VAL(MID$(TIME$, 1, 2)) / 2) - 1
+HH = VAL(MID$(TIME$, 1, 2))
+IF HH < 12 THEN T$ = STR$(H) + MID$(TIME$, 3, 8) + " A.M."
+IF HH > 11 THEN T$ = STR$(H) + MID$(TIME$, 3, 8) + " P.M."
+RESTORE
+LOCATE 5, 1
+PRINT "THE YEAR IS"; Y
+PRINT "IT'S "; MO$
+PRINT "WHICH IS THE"; M$; " MONTH"
+PRINT "IT'S THE"; D$
+PRINT "AND THE TIME IS"; T$
+PRINT "THE MILITARY TIME IS "; TIME$
+LOOP UNTIL INKEY$ <> ""
+DATA "JANUARY","FEBRUARY","MARCH","APRIL","MAY","JUNE","JULY","AUGUST","SEPTEMBER","OCTOBER","NOVEMBER","DECEMBER"
\ No newline at end of file
diff --git a/samples/timothy-baxendale.md b/samples/timothy-baxendale.md
index b38b5abf..0f559afc 100644
--- a/samples/timothy-baxendale.md
+++ b/samples/timothy-baxendale.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY TIMOTHY BAXENDALE
diff --git a/samples/tom-sales.md b/samples/tom-sales.md
index 88ab3401..64f34862 100644
--- a/samples/tom-sales.md
+++ b/samples/tom-sales.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY TOM SALES
diff --git a/samples/tor-myklebust.md b/samples/tor-myklebust.md
index 54c3a5fa..5443d8e5 100644
--- a/samples/tor-myklebust.md
+++ b/samples/tor-myklebust.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY TOR MYKLEBUST
diff --git a/samples/torneo-ndc/img/screenshot.png b/samples/torneo-ndc/img/screenshot.png
new file mode 100644
index 00000000..ff6aa68a
Binary files /dev/null and b/samples/torneo-ndc/img/screenshot.png differ
diff --git a/samples/torneo-ndc/index.md b/samples/torneo-ndc/index.md
new file mode 100644
index 00000000..56f259da
--- /dev/null
+++ b/samples/torneo-ndc/index.md
@@ -0,0 +1,53 @@
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+
+## SAMPLE: TORNEO NDC
+
+![screenshot.png](img/screenshot.png)
+
+### Author
+
+[🐝 FGR SOFTWARE](../fgr-software.md)
+
+### Description
+
+```text
+Ascii-based spaceship game with music.
+
+'
+' FGR SOFTWARE
+' Torneo NDC
+'
+'=============================================================================
+'Torneo NDC:
+'Este juego intenta ser un juego al estilo galaxian, solo que muy pobre...
+'Tiene 14 o 15 niveles, y es casi siemprelo mismo, solo que cambia el color
+'de las naves enemigas (X), la dificultad, y se van acumulando las vidas y
+'los puntajes...
+'Las teclas son: A (para movernos a la izquierda)
+'=============== S (para la derecha)
+' X (para disparar).
+'
+'=============================================================================
+'
+'Ya se que los comandos son un poco malos, pero sinceramente ya me canse de
+'moverme con las flechas, y disparar con barra. Mi barra ya esta destrozada!
+'Bueno, si tienen algun comentario o critica constructiva (no agresiones)
+'escribanmen a fernandogastonramirez@yahoo.com.ar
+'Visiten www.fgrqbasic.co.nr
+'
+'==============================================================================
+```
+
+### QBjs
+
+> Please note that QBjs is still in early development and support for these examples is extremely experimental (meaning will most likely not work). With that out of the way, give it a try!
+
+* [LOAD "torndc.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?src=https://qb64.com/samples/torneo-ndc/src/torndc.bas)
+* [RUN "torndc.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?mode=auto&src=https://qb64.com/samples/torneo-ndc/src/torndc.bas)
+* [PLAY "torndc.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?mode=play&src=https://qb64.com/samples/torneo-ndc/src/torndc.bas)
+
+### File(s)
+
+* [torndc.bas](src/torndc.bas)
+
+🔗 [game](../game.md), [legacy](../legacy.md)
diff --git a/samples/torneo-ndc/src/torndc.bas b/samples/torneo-ndc/src/torndc.bas
new file mode 100644
index 00000000..40b13a7f
--- /dev/null
+++ b/samples/torneo-ndc/src/torndc.bas
@@ -0,0 +1,662 @@
+'
+' FGR SOFTWARE
+' Torneo NDC
+'
+'=============================================================================
+'Torneo NDC:
+'Este juego intenta ser un juego al estilo galaxian, solo que muy pobre...
+'Tiene 14 o 15 niveles, y es casi siemprelo mismo, solo que cambia el color
+'de las naves enemigas (X), la dificultad, y se van acumulando las vidas y
+'los puntajes...
+'Las teclas son: A (para movernos a la izquierda)
+'=============== S (para la derecha)
+' X (para disparar).
+'
+'=============================================================================
+'
+'Ya se que los comandos son un poco malos, pero sinceramente ya me canse de
+'moverme con las flechas, y disparar con barra. Mi barra ya esta destrozada!
+'Bueno, si tienen algun comentario o critica constructiva (no agresiones)
+'escribanmen a fernandogastonramirez@yahoo.com.ar
+'Visiten www.fgrqbasic.co.nr
+'
+'==============================================================================
+
+
+
+
+
+
+DECLARE SUB menu ()
+DECLARE SUB instrucciones ()
+DECLARE SUB historia ()
+DECLARE SUB estrellas ()
+DECLARE SUB ganador ()
+DECLARE SUB CentrarTexto (t$, y%)
+
+
+vida = 4
+vel = 10000
+cd:
+CALL menu
+
+DO
+SELECT CASE INKEY$
+CASE "j"
+GOTO post
+CASE "d"
+GOTO dificultad
+CASE "i"
+CALL instrucciones
+GOTO cd
+CASE "s"
+GOTO salir
+END SELECT
+LOOP
+
+salir:
+CLS
+COLOR 30
+CentrarTexto "!Gracias Por Jugar TORNEO NDC!", 12
+SLEEP 5
+END
+
+dificultad:
+CLS
+COLOR 10
+CentrarTexto "(F)acil", 11
+CentrarTexto "(N)ormal", 12
+CentrarTexto "(D)ificil", 13
+DO
+SELECT CASE INKEY$
+CASE "f"
+vel = 10000
+www = 0
+GOTO cd
+CASE "n"
+www = 1
+d = 10
+vel = 9000
+vida = 3
+GOTO cd
+CASE "d"
+www = 1
+d = 15
+vel = 1585
+vida = 2
+GOTO cd
+END SELECT
+LOOP
+
+CALL menu
+
+
+post:
+CLS
+fgr = 1
+puntos = 0
+fx = 20000
+www = 0
+
+'INICIO DEL JUEGO
+'----------------
+
+CALL historia
+inicio:
+CLS
+X = 1
+y = 45
+z = 40
+
+DO
+RANDOMIZE TIMER
+
+
+'MOSTRAR VIDA, NIVEL Y PUNTOS
+'-----------------------------
+LOCATE 1, 70
+COLOR 10
+PRINT "Nvl:"
+LOCATE 1, 76
+PRINT fgr
+COLOR 9
+LOCATE 2, 70
+PRINT "vida:"
+LOCATE 2, 76
+PRINT vida
+LOCATE 3, 70
+COLOR 4
+PRINT "Puntos:"
+LOCATE 3, 76
+PRINT puntos
+
+
+'CREACION Y MOVIMIENTO DE LA NAVE
+'--------------------------------
+
+CALL estrellas
+
+LOCATE X, y
+COLOR fgr
+PRINT "X"
+LOCATE 23, z
+COLOR 9
+PRINT "W"
+
+SELECT CASE INKEY$
+CASE "a"
+z = z - 1
+f = z + 1
+LOCATE 23, f
+COLOR 0
+PRINT "W"
+CASE "s"
+z = z + 1
+f = z - 1
+LOCATE 23, f
+COLOR 0
+PRINT "W"
+CASE "k"
+BEEP
+FOR m = 23 TO 2 STEP -1
+LOCATE m, z
+COLOR 15
+PRINT "."
+NEXT m
+FOR I = 1 TO 10000
+NEXT I
+
+FOR m = 23 TO 2 STEP -1
+LOCATE m, z
+COLOR 0
+PRINT "."
+NEXT m
+
+
+IF z = y THEN
+LOCATE X, y
+COLOR 4
+PRINT "X"
+FOR I = 1 TO 15
+FOR S = 850 TO 810 STEP -1
+SOUND (RND * 100 + S / 10 + 30), .1
+NEXT
+NEXT I
+GOTO punto
+END IF
+FOR m = 23 TO 2 STEP -1
+LOCATE m, z
+COLOR 0
+PRINT "."
+NEXT m
+CASE CHR$(27)
+GOTO cd
+END SELECT
+
+
+IF z >= 81 THEN
+z = z - 1
+END IF
+
+IF z = 0 THEN
+z = z + 1
+END IF
+
+
+
+'ENEMIGO, MOVIMIENTOS Y DISPAROS
+'-------------------------------
+
+S = INT(RND * 3) + 1
+
+FOR I = 1 TO fx
+NEXT I
+
+SELECT CASE S
+CASE 1
+y = y - 1
+IF y = 1 THEN
+y = y + 1
+END IF
+j = y + 1
+LOCATE 1, j
+COLOR 0
+PRINT "X"
+CASE 2
+y = y + 1
+IF y = 80 THEN
+y = y - 1
+END IF
+j = y - 1
+LOCATE 1, j
+COLOR 0
+PRINT "X"
+END SELECT
+
+'DISPAROS ENEMIGOS
+'-----------------
+
+d = INT(RND * 10) + 1
+b = X
+b = b + 2
+
+SELECT CASE d
+CASE 3
+BEEP
+FOR b = 1 TO 23
+LOCATE b, y
+COLOR 15
+PRINT "."
+NEXT b
+FOR I = 1 TO vel
+NEXT I
+FOR b = 1 TO 23
+LOCATE b, y
+COLOR 0
+PRINT "."
+NEXT b
+
+
+IF z = y THEN
+LOCATE 23, z
+COLOR 4
+PRINT "W"
+
+FOR I = 1 TO 15
+FOR S = 850 TO 810 STEP -1
+SOUND (RND * 100 + S / 10 + 30), .1
+NEXT
+NEXT I
+
+GOTO vida
+END IF
+
+END SELECT
+
+
+
+
+
+LOOP
+
+
+
+vida:
+CLS
+vida = vida - 1
+IF vida = 0 THEN
+GOTO gameover
+END IF
+COLOR 9
+CentrarTexto "Numero de vida:", 12
+LOCATE 12, 48
+PRINT vida
+PLAY "o2 c4 c4 c8 c4 d+4 d8 d4 c8 c4 o1 b8 o2 c4"
+SLEEP 1
+GOTO inicio
+
+'JUEGO TERMINADO
+'---------------
+
+gameover:
+COLOR 15
+CLS
+SLEEP 1
+BEEP
+CentrarTexto "Perdiste!", 10
+BEEP
+SLEEP 2
+COLOR 8
+CentrarTexto "Puntos: ", 12
+LOCATE 12, 43
+PRINT puntos
+BEEP
+SLEEP 2
+COLOR 30
+CentrarTexto "Gracias por Jugar!", 14
+'Perder
+PLAY "MnT250L4O2GG+FF+L2EP1A+L1G"
+BEEP
+GOTO cd
+SLEEP 7
+
+
+'FIN DEL JUEGO
+'-------------
+
+END
+
+punto:
+IF fgr = 16 THEN
+CALL ganador
+GOTO cd
+END IF
+CLS
+COLOR 10
+CentrarTexto "Nave enemiga DERROTADA!!", 12
+COLOR 10
+CentrarTexto "Ahora al siguiente nivel!", 13
+PLAY "o4l10 dcdedefefgp10g o5 c5 o4"
+puntos = puntos + 5
+fgr = fgr + 1
+IF fgr = 3 THEN
+vida = vida + 1
+'Juego
+PLAY "MB L5 n0 L8 n55 n0 n50 n50 L5 n0 L8 n54 n54 L12 n0 L8 n55 L4 n0"
+PLAY "MB l8 n55 n0 n50 n50 L4 n0 L8 n54 n54 L13 n0 L6 n55 "
+IF www = 1 THEN
+fx = 17000
+END IF
+END IF
+IF fgr = 5 THEN
+vida = vida + 1
+IF www = 1 THEN
+fx = 15000
+END IF
+'Juego
+PLAY "MB L5 n0 L8 n55 n0 n50 n50 L5 n0 L8 n54 n54 L12 n0 L8 n55 L4 n0"
+PLAY "MB l8 n55 n0 n50 n50 L4 n0 L8 n54 n54 L13 n0 L6 n55 "
+END IF
+IF fgr = 10 THEN
+vida = vida + 1
+IF www = 1 THEN
+fx = 10000
+END IF
+'Juego
+PLAY "MB L5 n0 L8 n55 n0 n50 n50 L5 n0 L8 n54 n54 L12 n0 L8 n55 L4 n0"
+PLAY "MB l8 n55 n0 n50 n50 L4 n0 L8 n54 n54 L13 n0 L6 n55 "
+END IF
+SLEEP 7
+
+IF fgr = 16 THEN
+CLS
+COLOR 15
+IF www = 1 THEN
+fx = 7000
+END IF
+CentrarTexto "!!NAVE FINAL!!", 11
+PLAY "o3 l13 t150 eegeeaeebeegeefe t125"
+PLAY "o3 l13 t150 eegeeaeebeegeefe t125"
+COLOR 4
+CentrarTexto "!!TE ENFRENTARAS CONTRA LA NAVE INVISIBLE!!", 12
+PLAY "o3 l13 t150 eegeeaeebeegeefe t125"
+PLAY "o3 l13 t150 eegeeaeebeegeefe t125"
+COLOR 30
+CentrarTexto "Podras Vencerla?", 13
+'Pelea
+PLAY "o3 l13 t150 eegeeaeebeegeefe t125"
+PLAY "o3 l13 t150 eegeeaeebeegeefe t125"
+'Pelea
+PLAY "o3 l13 t150 eegeeaeebeegeefe t125"
+PLAY "o3 l13 t150 eegeeaeebeegeefe t125"
+END IF
+GOTO inicio
+
+SUB CentrarTexto (t$, y%)
+xnum% = (80 - LEN(t$)) / 2
+xspc% = INT((80 - LEN(t$)) / 2)
+IF y% = 0 THEN PRINT TAB(xspc%); t$: EXIT SUB
+LOCATE y%, xnum%: PRINT t$
+'
+
+END SUB
+
+SUB estrellas
+
+e = INT(RND * 23) + 1
+S = INT(RND * 80) + 1
+xc = INT(RND * 5) + 1
+
+SELECT CASE xc
+CASE 1
+v = 15
+CASE 2
+v = 9
+CASE ELSE
+v = 0
+END SELECT
+
+COLOR v
+LOCATE e, S
+PRINT "."
+
+END SUB
+
+SUB ganador
+
+COLOR 4
+CentrarTexto "!GANASTE!", 12
+PLAY "o4l10 dcdedefefgp10g o5 c5 o4"
+SLEEP 3
+
+CLS
+COLOR 10
+CentrarTexto "Pensaste alguna vez que podrias ganar el torneo NDC?", 3
+SLEEP 3
+BEEP
+CentrarTexto "Seguro que si... O tal vez no!", 4
+SLEEP 3
+BEEP
+CentrarTexto "Pero aqui ests, disfrutando de la victoria con tus amigos,", 5
+SLEEP 3
+BEEP
+CentrarTexto "de la gloria, y de los $ 100.000 dolares ganados...", 6
+SLEEP 3
+BEEP
+CentrarTexto "No es hermoso? No es hermoso que de aqui en mas seas visto", 7
+SLEEP 3
+BEEP
+CentrarTexto "como un heroe en el planeta? No es hermoso haber ganado", 8
+SLEEP 3
+BEEP
+CentrarTexto "al comandante de la nave mas temida y nunca derrotada en los", 9
+SLEEP 3
+BEEP
+CentrarTexto "ultimos 20 aos? Bueno... Aqui ests, lo has hecho...", 10
+SLEEP 5
+
+CLS
+CentrarTexto "Pero que hay con la libertad de las personas?", 3
+SLEEP 3
+BEEP
+CentrarTexto "Ahora todos son libres!! El comandante Garri nunca se ", 4
+SLEEP 3
+BEEP
+CentrarTexto "hubiese imaginado que alguna persona en el mundo", 5
+SLEEP 3
+BEEP
+CentrarTexto "podria haberlo derrotado, pero la realidad es totalmente otra...", 6
+SLEEP 3
+BEEP
+CentrarTexto "El est muerto, y sin opresor hay libertad... La libertad y democracia", 7
+SLEEP 3
+BEEP
+CentrarTexto "manda ahora... Pero necesitamos de alguien que nos gobierne!", 8
+SLEEP 3
+BEEP
+CentrarTexto "(es lo que todos piden)", 9
+SLEEP 3
+BEEP
+CentrarTexto "La gente necesita a alguien con grandes valores, honor y respeto", 10
+SLEEP 3
+BEEP
+CentrarTexto "por la vida... Y ese alguien sos vos!", 11
+SLEEP 5
+BEEP
+COLOR 4
+CLS
+BEEP
+
+CLS
+COLOR 4
+PRINT "TORNEO NDC"
+PRINT
+COLOR 15
+PRINT "Director del programa: Fernando Ramirez"
+PRINT
+PRINT "Director artistico: Fernando Ramirez"
+PRINT
+PRINT "Diseo del sistema: Fernando Ramirez"
+PRINT
+PRINT "Creador del universo: Fernando Ramirez"
+PRINT
+PRINT "Idea Original: Fernando Ramirez"
+PRINT
+PRINT "Director de la iglesia catolica: Fernando Ramirez"
+PRINT
+PRINT "Maquillador: Fernando Ramirez"
+PRINT
+PRINT "Musica y sonido: Fernando Ramirez"
+PRINT
+PRINT "Todo: Fernando Ramirez"
+PRINT
+PRINT "www.fgrqbasic.co.nr - Fernando Ramirez"
+PRINT
+PRINT "Gracias por jugar mi Juego!... Fernando Ramirez"
+ 'Cancin
+ PLAY "MNT200L4O1BL8EBL4>CL8CL4C+L8C+L4CL8CL4CL8CL4C+L8C+L4CL8C>EL16F+F+L8F+L4F+.L8EL16GGL8GL4G.L8EL16F+F+L8F+L4F+.L8EL16G"
+ PLAY "GL8GL4G.L8EL16F+F+L8F+L4F+.L8EL16GGL8GL4G."
+ PLAY "L8DL2DL64O2GL8BL64F+L8AL32G.L1B.L8E"
+ PLAY "L16F+F+L8F+L4F+.L8>EEEF+F+F+EEEF+F+F+EEEF+F+E>D+L64DL2DL64CL8CL4C+L8C+L4CL8CL4CL8CL4C+L8C+L4CL8C>EL64EL4GL8>D+L64D.L8EC+L2C+L64F+.P16L64F+L8EL64EL4GL8>D+L64D.L8D+EL2EL64C+.P16L64C+L8EL64EL4GL8>D+L64D.L8EC+L2C+L64F+.P16L64F+L8EL64E"
+ PLAY "L4GL8>D+L64D.L8D+EL2EL64C+.P16L64C+L64EL64E"
+ PLAY "L64EL64D+L8F+.L16EL64D+L4F+L64EL8GL64EL4GL64EL8GL64D+L8F+.L16EL64D+L4F+L64E"
+ PLAY "L64EL64EL64D+L8F+.L16EL64D+L4F+L64EL8GL64EL4GL64EL8GL64D+L8F+.L16EL64D+L4F+"
+ PLAY "L64C+EGL8BL64C+EGL8BP8L2O1BL8BL64O3C+EGL8BL64C+EGL8BP8"
+ PLAY "L4O1B.BL64O3C+EGL16BL8BL16BL8BL64C+EGL8BL4O1BL8EBL4>C"
+ PLAY "L8CL4C+L8C+L4CL8C>EL16F+F+L8F+L4F+.L8EEEEL16G"
+ PLAY "GL8GL4G.L8F+F+F+EL16F+F+L8F+L4F+.L8EEEEL16GGL8GL4G.L8F+"
+ PLAY "F+F+EL16F+F+L8F+L4F+.L8EEEEL16GGL8GL4G.L8F+F+E>D+L64DL2DL64GL8BL64F+L8AL32G.L1B.P16L8O2EL4GL8>D+L4DL8F+L4FL8DL8A+L4AL8FAL4AL8D+DDP8P4L64O1EB>GB>C+"
+ PLAY "L2F+."
+SLEEP 1
+CLS
+COLOR 4
+CentrarTexto "Gracias por jugar!", 12
+SLEEP 5
+END SUB
+
+SUB historia
+CLS
+COLOR 9
+CentrarTexto "Saltar intro? (S/N)", 12
+DO
+SELECT CASE INKEY$
+CASE "s"
+GOTO jaja
+CASE "n"
+GOTO lol
+END SELECT
+LOOP
+
+
+lol:
+COLOR 10
+CentrarTexto "El planeta tierra define a sus mandatarios por medio", 5
+CentrarTexto "del torneo NDC (Naves De Combate), en el cual participan", 6
+CentrarTexto "16 aspirantes a gobernar el planeta, y de los cuales morirn 15 de ellos...", 7
+CentrarTexto "El comandante Garri, un Ingles sin una gota de moral, est", 8
+CentrarTexto "en el poder desde ya hace 20 aos, utilizando como herramientas para", 9
+CentrarTexto "que su gobierno no decaiga, la tortura y la muerte...", 10
+CentrarTexto "Su nave es la mejor de todas, y nadie ha podido ganarle todavia, ya que", 11
+CentrarTexto "esta es invisible al ojo humano...", 12
+CentrarTexto "Amas las NDC, y piensas morir sobre alguna de ellas, no te interesa", 16
+CentrarTexto "el poder, pero si te interesa el campeonato, ya que es una gran oportunidad", 17
+CentrarTexto "para mostrar tus habilidades... y una gran oportunidad para deshacerte", 18
+CentrarTexto "de ese bastardo inutil... Tienes el deber de llegar a lo mas alto posible", 19
+CentrarTexto "para ayudar a tu familia, y al resto del mundo...", 20
+CentrarTexto "!Mucha Suerte!", 21
+
+'Viaje a las estrellas
+PLAY "t236 l6 o2 ddd l2 ml g o3 dd mn l6 c o2 ba l2 o3 ml gdd"
+PLAY "mn l6 c o2 ba ml l2 o3 gdd mn l6 c o2 b o3 c l2 ml o2 a1a4 p4 mn"
+PLAY "t236 l6 o2 ddd l2 ml g o3 dd mn l6 c o2 ba l2 o3 ml gdd"
+PLAY "mn l6 c o2 ba ml l2 o3 gdd mn l6 c o2 b o3 c l2 ml o2 a1a4 p4 mn"
+PLAY "t136 mn o3 l8"
+PLAY "p4 mn o2 l8 d4 e4.e o3c o2 bag l12 gab l8 a8. e16f+4d8. d"
+PLAY "e4.e o3 c o2 bag o3 d8.o2 a16 ml a4a4 mn d4 e4.e O3 c o2 bag "
+PLAY "l12 gaba8. e16 f+4 o3 d8. d16 l16 g8. fe-8. d c8. o2 b-a8. g"
+PLAY "o3 d2"
+PLAY "t236 l6 o2 ddd l2 ml g o3 dd mn l6 c o2 ba l2 o3 ml gdd"
+PLAY "mn l6 c o2 ba ml l2 o3 gdd mn l6 co2 b o3c l2 ml o2a1a4 p4 mn"
+PLAY "t236 l6 o2 ddd l2 ml g o3 dd mn l6 c o2 ba l2 o3 ml gdd"
+PLAY "mn l6 c o2ba ml l2 o3gdd mn l6 co2bo3c l2 ml o2a1a4 p4 mn"
+PLAY "l6 o3 mn ddd ml l1 gggg4 p4 p4 mn l12 dddg2"
+
+jaja:
+END SUB
+
+SUB instrucciones
+CLS
+COLOR 28
+CentrarTexto "Teclas", 3
+COLOR 9, 0
+CentrarTexto "Izquierda: a", 5
+CentrarTexto "Derecha: s", 6
+CentrarTexto "Disparos: k", 7
+
+COLOR 10, 0
+CentrarTexto "TENER SIEMPRE DESACTIVADO BLOQ MAYUS (CAPS)", 22
+COLOR 30
+CentrarTexto "(Presion cualquier tecla para continuar)", 23
+DO WHILE INKEY$ = ""
+LOOP
+END SUB
+
+SUB menu
+CLS
+FOR l = 1 TO 100
+e = INT(RND * 23) + 1
+S = INT(RND * 80) + 1
+xc = INT(RND * 5) + 1
+SELECT CASE xc
+CASE 1
+v = 15
+CASE 2
+v = 9
+CASE ELSE
+v = 0
+END SELECT
+COLOR v
+LOCATE e, S
+PRINT "."
+NEXT l
+
+COLOR 10
+SLEEP 1
+COLOR 30
+CentrarTexto "TORNEO NDC", 3
+PLAY "d"
+SLEEP 1
+COLOR 10
+CentrarTexto "(J)ugar", 9
+PLAY "d"
+SLEEP 1
+CentrarTexto "(D)ificultad", 10
+PLAY "d"
+SLEEP 1
+CentrarTexto "(I)nstrucciones", 11
+PLAY "d"
+SLEEP 1
+CentrarTexto "(S)alir", 12
+PLAY "d"
+SLEEP 1
+COLOR 4
+CentrarTexto "FGR SOFTWARE 2006", 23
+PLAY "MfT250L4O5FL8EDEL4EL8DCDEL32AL2G"
+END SUB
+
diff --git a/samples/torus-demo/index.md b/samples/torus-demo/index.md
index f7076f11..406c828f 100644
--- a/samples/torus-demo/index.md
+++ b/samples/torus-demo/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: TORUS DEMO
diff --git a/samples/torus.md b/samples/torus.md
index 27e3dfb0..b43d30a3 100644
--- a/samples/torus.md
+++ b/samples/torus.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: TORUS
diff --git a/samples/tower-of-hanoi/index.md b/samples/tower-of-hanoi/index.md
index e8d40e1e..44a03a45 100644
--- a/samples/tower-of-hanoi/index.md
+++ b/samples/tower-of-hanoi/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: TOWER OF HANOI
@@ -12,16 +12,9 @@ Print "of three pegs and a number of discs which can slide onto any peg."
Print "The puzzle starts with the discs stacked in order of size on one peg."
```
-### QBjs
-
-> Please note that QBjs is still in early development and support for these examples is extremely experimental (meaning will most likely not work). With that out of the way, give it a try!
-
-* [LOAD "tower.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?src=https://qb64.com/samples/tower-of-hanoi/src/tower.bas)
-* [RUN "tower.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?mode=auto&src=https://qb64.com/samples/tower-of-hanoi/src/tower.bas)
-* [PLAY "tower.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?mode=play&src=https://qb64.com/samples/tower-of-hanoi/src/tower.bas)
-
### File(s)
* [tower.bas](src/tower.bas)
+* [tower_orig.bas](src/tower_orig.bas)
🔗 [game](../game.md), [tower](../tower.md)
diff --git a/samples/tower-of-hanoi/src/tower_orig.bas b/samples/tower-of-hanoi/src/tower_orig.bas
new file mode 100644
index 00000000..12e37129
--- /dev/null
+++ b/samples/tower-of-hanoi/src/tower_orig.bas
@@ -0,0 +1,159 @@
+DECLARE SUB INSTRUCT ()
+DECLARE SUB AUTO ()
+DECLARE SUB PLAYGAME ()
+DECLARE SUB MOVEPILE (N%, START%, FINISH%)
+DECLARE SUB MOVEDISC (START%, FINISH%)
+DECLARE SUB SHOWDISCS ()
+DEFINT A-Z
+
+'CONST NUMDISCS = 8 ' alter this line to change number of discs
+DIM SHARED NUMDISCS
+NUMDISCS = 8
+
+DIM SHARED TOWERS(0 TO 2, 1 TO NUMDISCS), TOP(0 TO 2), COLORS(1 TO NUMDISCS), NUMMOVES AS LONG
+CLS
+TOP(0) = NUMDISCS: TOP(1) = 0: TOP(2) = 0
+FOR I = 1 TO NUMDISCS
+TOWERS(0, I) = NUMDISCS - I + 1
+READ COLORS(I)
+NEXT
+DATA 6, 9, 4, 10, 11, 12, 13, 14
+DATA 6, 9, 4, 10, 11, 12, 13, 14
+LOCATE 1, 26
+PRINT CHR$(218); STRING$(14, CHR$(196)); CHR$(191)
+LOCATE 2, 26
+PRINT CHR$(179); "TOWER OF HANOI"; CHR$(179)
+LOCATE 3, 26
+PRINT CHR$(192); STRING$(14, CHR$(196)); CHR$(217)
+PRINT STRING$(80, CHR$(196))
+PRINT
+PRINT "1: AUTO"
+PRINT "2: HUMAN"
+PRINT STRING$(20, CHR$(196))
+WHILE CHOICE <> 1 AND CHOICE <> 2
+INPUT "CHOOSE ONE: ", CHOICE
+WEND
+IF CHOICE = 1 THEN CALL AUTO ELSE CALL PLAYGAME
+
+SUB AUTO
+CALL SHOWDISCS
+CALL MOVEPILE(NUMDISCS, 0, 2)
+END SUB
+
+SUB INSTRUCT
+PRINT "The TOWER OF HANOI is a mathematical game or puzzle. It consists"
+PRINT "of three pegs and a number of discs which can slide onto any peg."
+PRINT "The puzzle starts with the discs stacked in order of size on one peg."
+PRINT
+PRINT "The object of the game is to move the entire stack onto another peg,"
+PRINT "obeying the following rules:"
+PRINT TAB(2); CHR$(248); " Only one disc may be moved at a time."
+PRINT TAB(2); CHR$(248); " Each move consists of taking the upper disc from"
+PRINT TAB(4); "one peg and sliding it onto another peg, on top of any discs"
+PRINT TAB(4); "that may already be on that peg."
+PRINT TAB(2); CHR$(248); " No disc may be placed on top of another disc."
+PRINT "PRESS ANY KEY TO CONTINUE..."
+NULL$ = INPUT$(1)
+END SUB
+
+SUB MOVEDISC (START, FINISH)
+DIM T AS SINGLE
+TOWERS(FINISH, TOP(FINISH) + 1) = TOWERS(START, TOP(START))
+TOP(FINISH) = TOP(FINISH) + 1
+TOWERS(START, TOP(START)) = 0
+TOP(START) = TOP(START) - 1
+NUMMOVES = NUMMOVES + 1
+CALL SHOWDISCS
+T = TIMER
+WHILE TIMER - T < .2:
+IF INKEY$ = CHR$(27) THEN END
+WEND
+END SUB
+
+SUB MOVEPILE (N, START, FINISH)
+IF N > 1 THEN CALL MOVEPILE(N - 1, START, 3 - START - FINISH)
+CALL MOVEDISC(START, FINISH)
+IF N > 1 THEN CALL MOVEPILE(N - 1, 3 - START - FINISH, FINISH)
+END SUB
+
+SUB PLAYGAME
+DO
+INPUT "WOULD YOU LIKE INSTRUCTIONS"; NULL$
+NULL$ = UCASE$(LEFT$(LTRIM$(NULL$), 1))
+IF NULL$ = "Y" THEN CALL INSTRUCT: EXIT DO
+IF NULL$ = "N" THEN EXIT DO
+LOOP
+CALL SHOWDISCS
+DO
+LOCATE 1, 1
+COLOR 7
+PRINT "TYPE NUMBER OF START PEG FOLLOWED BY NUMBER OF END PEG"
+PRINT "LEFT = 1", "MIDDLE = 2", "RIGHT=3"
+DO
+KEY$ = INKEY$
+SELECT CASE KEY$
+CASE CHR$(27)
+END
+CASE "1"
+START = 0
+EXIT DO
+CASE "2"
+START = 1
+EXIT DO
+CASE "3"
+START = 2
+EXIT DO
+END SELECT
+LOOP
+DO
+KEY$ = INKEY$
+SELECT CASE KEY$
+CASE CHR$(27)
+END
+CASE "1"
+FINISH = 0
+EXIT DO
+CASE "2"
+FINISH = 1
+EXIT DO
+CASE "3"
+FINISH = 2
+EXIT DO
+END SELECT
+LOOP
+IF TOP(START) = 0 THEN PRINT "There are no discs on that peg.": GOTO 1
+IF START = FINISH THEN PRINT "The start peg is the same as the end peg.": GOTO 1
+IF TOP(FINISH) > 0 THEN
+IF TOWERS(START, TOP(START)) > TOWERS(FINISH, TOP(FINISH)) THEN PRINT "You may not put a larger disc on top of a smaller disc.": GOTO 1
+END IF
+CALL MOVEDISC(START, FINISH)
+IF TOP(0) = 0 AND TOP(1) = 0 THEN EXIT DO
+IF TOP(0) = 0 AND TOP(2) = 0 THEN EXIT DO
+1 LOOP
+END SUB
+
+SUB SHOWDISCS
+CLS
+LOCATE 1, 60: PRINT "MOVES: "; NUMMOVES
+LOCATE 25, 1
+PRINT STRING$(80, CHR$(196));
+FOR I = 1 TO TOP(0)
+LOCATE 25 - I, I + 1
+X = TOWERS(0, I)
+IF X = 0 THEN EXIT FOR
+COLOR COLORS(X): PRINT STRING$(X * 2, CHR$(219));
+NEXT
+FOR I = 1 TO TOP(1)
+LOCATE 25 - I, I + NUMDISCS * 3
+X = TOWERS(1, I)
+IF X = 0 THEN EXIT FOR
+COLOR COLORS(X): PRINT STRING$(X * 2, CHR$(219));
+NEXT
+FOR I = 1 TO TOP(2)
+LOCATE 25 - I, I + NUMDISCS * 6
+X = TOWERS(2, I)
+IF X = 0 THEN EXIT FOR
+COLOR COLORS(X): PRINT STRING$(X * 2, CHR$(219));
+NEXT
+
+END SUB
diff --git a/samples/tower.md b/samples/tower.md
index 215e9af3..8eb54611 100644
--- a/samples/tower.md
+++ b/samples/tower.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: TOWER
diff --git a/samples/trialandterror.md b/samples/trialandterror.md
index 2ea08c2d..d2c02680 100644
--- a/samples/trialandterror.md
+++ b/samples/trialandterror.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY TRIALANDTERROR
diff --git a/samples/triangle.md b/samples/triangle.md
index 3d1966c7..ffaf7162 100644
--- a/samples/triangle.md
+++ b/samples/triangle.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: TRIANGLE
diff --git a/samples/trig-demo/index.md b/samples/trig-demo/index.md
index 853cc876..0c1fdf26 100644
--- a/samples/trig-demo/index.md
+++ b/samples/trig-demo/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: TRIG DEMO
diff --git a/samples/triggered.md b/samples/triggered.md
index 0ee5778d..81e01de8 100644
--- a/samples/triggered.md
+++ b/samples/triggered.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY TRIGGERED
diff --git a/samples/trigonometry.md b/samples/trigonometry.md
index b1c93d0c..a3004878 100644
--- a/samples/trigonometry.md
+++ b/samples/trigonometry.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: TRIGONOMETRY
diff --git a/samples/tsiplacov-sergey.md b/samples/tsiplacov-sergey.md
index 0c56b003..e1864fb0 100644
--- a/samples/tsiplacov-sergey.md
+++ b/samples/tsiplacov-sergey.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY TSIPLACOV SERGEY
diff --git a/samples/tui.md b/samples/tui.md
index 0056e452..f1bd7ca5 100644
--- a/samples/tui.md
+++ b/samples/tui.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: TUI
@@ -8,6 +8,12 @@
' BARDEMO.BAS ' by Douglas Park ' Copyright (C) 1995 DOS World Magazine ' Published in Issue #19,...
+**[QuitBox](quitbox/index.md)**
+
+[🐝 eoredson](eoredson.md) 🔗 [tui](tui.md)
+
+I am working on a project (can't tell you what it is yet) and have decided to draw my own boxes (...
+
**[Template DW](template-dw/index.md)**
[🐝 Tim Syrop](tim-syrop.md) 🔗 [tui](tui.md), [dos world](dos-world.md)
diff --git a/samples/tui/index.md b/samples/tui/index.md
index f9080f2d..5979930e 100644
--- a/samples/tui/index.md
+++ b/samples/tui/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: TUI
diff --git a/samples/tunnel.md b/samples/tunnel.md
index 2b286943..f2abc101 100644
--- a/samples/tunnel.md
+++ b/samples/tunnel.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: TUNNEL
diff --git a/samples/turtle-graphics.md b/samples/turtle-graphics.md
index a2d996cd..eda4be43 100644
--- a/samples/turtle-graphics.md
+++ b/samples/turtle-graphics.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: TURTLE GRAPHICS
diff --git a/samples/turtle-graphics/index.md b/samples/turtle-graphics/index.md
index a9588bf9..05cb9ca7 100644
--- a/samples/turtle-graphics/index.md
+++ b/samples/turtle-graphics/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: TURTLE GRAPHICS
diff --git a/samples/twirl/index.md b/samples/twirl/index.md
index 7003bcc2..7f6d1661 100644
--- a/samples/twirl/index.md
+++ b/samples/twirl/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: TWIRL
@@ -16,16 +16,9 @@
'------------------------------------------------------------------------
```
-### QBjs
-
-> Please note that QBjs is still in early development and support for these examples is extremely experimental (meaning will most likely not work). With that out of the way, give it a try!
-
-* [LOAD "twirl2.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?src=https://qb64.com/samples/twirl/src/twirl2.bas)
-* [RUN "twirl2.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?mode=auto&src=https://qb64.com/samples/twirl/src/twirl2.bas)
-* [PLAY "twirl2.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?mode=play&src=https://qb64.com/samples/twirl/src/twirl2.bas)
-
### File(s)
* [twirl2.bas](src/twirl2.bas)
+* [twirl2_orig.bas](src/twirl2_orig.bas)
🔗 [screensaver](../screensaver.md), [9 lines](../9-lines.md)
diff --git a/samples/twirl/src/twirl2_orig.bas b/samples/twirl/src/twirl2_orig.bas
new file mode 100644
index 00000000..62042c80
--- /dev/null
+++ b/samples/twirl/src/twirl2_orig.bas
@@ -0,0 +1,15 @@
+'Twirl by Antoni Gual, from an idea by Steve Nunnaly
+'for Rel's 9 LINER contest at QBASICNEWS.COM 1/2003
+'------------------------------------------------------------------------
+
+1 IF i THEN CIRCLE (160, 100), i, (i MOD 16) + 32, , , .8 ELSE SCREEN 13
+2 i = i + 1
+3 IF i < 200 THEN GOTO 1 ELSE DIM b2%(5000)
+4 w = (w + .3)
+5 xmid = 140 + SIN(7 * w / 1000) * 110
+6 ymid = 80 + SIN(11 * w / 1000) * 59
+7 GET ((xmid - (SIN(w) * 28)), (ymid - (COS(w) * 20)))-((xmid - (SIN(w) * 28)) + 40, (ymid - (COS(w) * 20)) + 40), b2%
+8 PUT ((xmid - (SIN(w - .04) * 27.16)), (ymid - (COS(w - .04) * 19.4))), b2%, PSET
+9 IF LEN(INKEY$) = 0 THEN GOTO 4
+
+
diff --git a/samples/tylerdarko.md b/samples/tylerdarko.md
index 129a29a8..8aa554c9 100644
--- a/samples/tylerdarko.md
+++ b/samples/tylerdarko.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY TYLERDARKO
diff --git a/samples/utility.md b/samples/utility.md
index 14034379..2632656e 100644
--- a/samples/utility.md
+++ b/samples/utility.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: UTILITY
@@ -13,3 +13,9 @@ Converts between ASCII value and character.
[🐝 William W. Sindel](william-w.-sindel.md) 🔗 [utility](utility.md), [legacy](legacy.md)
'*************************************************************************** '* '* Keyboard inpu...
+
+**[Screen Tester](screen-tester/index.md)**
+
+[🐝 patz2009](patz2009.md) 🔗 [graphics](graphics.md), [utility](utility.md), [legacy](legacy.md)
+
+' PQBC Screen Tester '-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-...
diff --git a/samples/vector-field/index.md b/samples/vector-field/index.md
index 87f875bb..f0b57f3e 100644
--- a/samples/vector-field/index.md
+++ b/samples/vector-field/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: VECTOR FIELD
diff --git a/samples/vectors.md b/samples/vectors.md
index 4b59c0df..07a53eec 100644
--- a/samples/vectors.md
+++ b/samples/vectors.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: VECTORS
diff --git a/samples/vektor/img/screenshot.png b/samples/vektor/img/screenshot.png
new file mode 100644
index 00000000..a9f0213e
Binary files /dev/null and b/samples/vektor/img/screenshot.png differ
diff --git a/samples/vektor/index.md b/samples/vektor/index.md
new file mode 100644
index 00000000..f730ffa3
--- /dev/null
+++ b/samples/vektor/index.md
@@ -0,0 +1,42 @@
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+
+## SAMPLE: VEKTOR
+
+![screenshot.png](img/screenshot.png)
+
+### Description
+
+```text
+Fly around a plane of dots.
+
+PRINT "Welcome to my second go at displaying"
+PRINT "points in a threedimentional space."
+PRINT
+PRINT "This program uses vectorcalculations"
+PRINT "to calculate where a given point in"
+PRINT "a virtual space should be placed on the"
+PRINT "screen. The math behind the program"
+PRINT "could be disciphered by someone with a"
+PRINT "lot of experience with math, and if you"
+PRINT "are one, please feel free to do so and"
+PRINT "use it in a program of your own."
+PRINT
+PRINT "I can't copyright math, after all."
+PRINT
+PRINT "But do give me credits... :)"
+PRINT
+```
+
+### QBjs
+
+> Please note that QBjs is still in early development and support for these examples is extremely experimental (meaning will most likely not work). With that out of the way, give it a try!
+
+* [LOAD "vektor.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?src=https://qb64.com/samples/vektor/src/vektor.bas)
+* [RUN "vektor.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?mode=auto&src=https://qb64.com/samples/vektor/src/vektor.bas)
+* [PLAY "vektor.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?mode=play&src=https://qb64.com/samples/vektor/src/vektor.bas)
+
+### File(s)
+
+* [vektor.bas](src/vektor.bas)
+
+🔗 [geometry](../geometry.md), [legacy](../legacy.md)
diff --git a/samples/vektor/src/vektor.bas b/samples/vektor/src/vektor.bas
new file mode 100644
index 00000000..e334e79d
--- /dev/null
+++ b/samples/vektor/src/vektor.bas
@@ -0,0 +1,365 @@
+DECLARE SUB roteron (vinkel!)
+DECLARE SUB roterhv (vinkel!)
+DECLARE SUB angpunkt (nr%, x%, y%, z%)
+DECLARE SUB tegnpunkt (nr%)
+TYPE vektor
+x AS SINGLE
+y AS SINGLE
+z AS SINGLE
+END TYPE
+
+TYPE poin
+x AS INTEGER
+y AS INTEGER
+z AS INTEGER
+END TYPE
+
+
+PRINT "Welcome to my second go at displaying"
+PRINT "points in a threedimentional space."
+PRINT
+PRINT "This program uses vectorcalculations"
+PRINT "to calculate where a given point in"
+PRINT "a virtual space should be placed on the"
+PRINT "screen. The math behind the program"
+PRINT "could be disciphered by someone with a"
+PRINT "lot of experience with math, and if you"
+PRINT "are one, please feel free to do so and"
+PRINT "use it in a program of your own."
+PRINT
+PRINT "I can't copyright math, after all."
+PRINT
+PRINT "But do give me credits... :)"
+PRINT
+PRINT "Press any key to see instructions"
+WHILE INKEY$ = "": WEND
+CLS
+PRINT "How to navigate in the virtual space:"
+PRINT
+PRINT " w These control your direction"
+PRINT "a s d of view."
+PRINT
+PRINT "u i o These are used to move the"
+PRINT "j k l point of view in the space."
+PRINT
+PRINT "q This is the most useful key"
+PRINT " in the program. It makes it"
+PRINT " go away."
+PRINT
+PRINT "Press any key to enter the chamber of horrors!"
+WHILE INKEY$ = "": WEND
+
+
+SCREEN 7, 0, 1, 0
+
+pnkt% = 49
+DIM SHARED punkt(1 TO pnkt%) AS poin
+DIM SHARED perspunkt AS vektor
+DIM SHARED retning AS vektor
+DIM SHARED nedad AS vektor
+DIM SHARED vinkel
+
+perspunkt.x = 50
+perspunkt.y = 50
+perspunkt.z = 3
+
+vinkel = 3.8
+retning.x = SIN(vinkel)
+retning.y = COS(vinkel)
+retning.z = 0
+
+angpunkt 1, 10, 5, 1
+angpunkt 2, 10, 5, 2
+angpunkt 3, 10, 5, 3
+angpunkt 4, 10, 5, 4
+angpunkt 5, 10, 5, 5
+angpunkt 6, 10, 4, 1
+angpunkt 7, 10, 4, 2
+angpunkt 8, 10, 4, 3
+angpunkt 9, 10, 4, 4
+angpunkt 10, 10, 4, 5
+angpunkt 11, 10, 3, 1
+angpunkt 12, 10, 3, 2
+angpunkt 13, 10, 3, 3
+angpunkt 14, 10, 3, 4
+angpunkt 15, 10, 3, 5
+angpunkt 16, 10, 2, 1
+angpunkt 17, 10, 2, 2
+angpunkt 18, 10, 2, 3
+angpunkt 19, 10, 2, 4
+angpunkt 20, 10, 2, 5
+angpunkt 21, 10, 1, 1
+angpunkt 22, 10, 1, 2
+angpunkt 23, 10, 1, 3
+angpunkt 24, 10, 1, 4
+angpunkt 25, 10, 1, 5
+angpunkt 26, 10, 0, 1
+angpunkt 27, 10, 0, 2
+angpunkt 28, 10, 0, 3
+angpunkt 29, 10, 0, 4
+angpunkt 30, 10, 0, 5
+angpunkt 31, 10, 1, 6
+angpunkt 32, 10, 2, 6
+angpunkt 33, 10, 3, 6
+angpunkt 34, 10, 4, 6
+angpunkt 35, 10, 5, 6
+angpunkt 36, 10, -1, 1
+angpunkt 37, 10, -1, 2
+angpunkt 38, 10, -1, 3
+angpunkt 39, 10, -1, 4
+angpunkt 40, 10, -1, 5
+angpunkt 41, 10, -1, 6
+angpunkt 42, 10, 0, 7
+angpunkt 43, 10, 1, 7
+angpunkt 44, 10, 2, 7
+angpunkt 45, 10, 3, 7
+angpunkt 46, 10, 4, 7
+angpunkt 47, 10, 5, 7
+angpunkt 48, 10, -1, 7
+angpunkt 49, 10, 0, 6
+
+
+
+nedad.x = 0
+nedad.y = 0
+nedad.z = -1
+
+
+
+DO
+
+SELECT CASE INKEY$
+
+CASE "a"
+roterhv 3.141593 / 90
+
+CASE "d"
+roterhv -3.141593 / 90
+
+CASE "w"
+roteron -3.141593 / 90
+
+CASE "s"
+roteron 3.141593 / 90
+
+CASE "i"
+perspunkt.x = perspunkt.x + retning.x
+perspunkt.y = perspunkt.y + retning.y
+perspunkt.z = perspunkt.z + retning.z
+
+CASE "k"
+perspunkt.x = perspunkt.x - retning.x
+perspunkt.y = perspunkt.y - retning.y
+perspunkt.z = perspunkt.z - retning.z
+
+CASE "l"
+r1 = retning.x: r2 = retning.y: r3 = retning.z
+n1 = nedad.x: n2 = nedad.y: n3 = nedad.z
+x1 = n2 * r3 - n3 * r2
+x2 = n3 * r1 - n1 * r3
+x3 = n1 * r2 - n2 * r1
+l = SQR(x1 ^ 2 + x2 ^ 2 + x3 ^ 2)
+x1 = x1 / l
+x2 = x2 / l
+x3 = x3 / l
+perspunkt.x = perspunkt.x - x1
+perspunkt.y = perspunkt.y - x2
+perspunkt.z = perspunkt.z - x3
+
+CASE "j"
+r1 = retning.x: r2 = retning.y: r3 = retning.z
+n1 = nedad.x: n2 = nedad.y: n3 = nedad.z
+x1 = n2 * r3 - n3 * r2
+x2 = n3 * r1 - n1 * r3
+x3 = n1 * r2 - n2 * r1
+l = SQR(x1 ^ 2 + x2 ^ 2 + x3 ^ 2)
+x1 = x1 / l
+x2 = x2 / l
+x3 = x3 / l
+perspunkt.x = perspunkt.x + x1
+perspunkt.y = perspunkt.y + x2
+perspunkt.z = perspunkt.z + x3
+
+CASE "u"
+perspunkt.x = perspunkt.x - nedad.x
+perspunkt.y = perspunkt.y - nedad.y
+perspunkt.z = perspunkt.z - nedad.z
+
+CASE "o"
+perspunkt.x = perspunkt.x + nedad.x
+perspunkt.y = perspunkt.y + nedad.y
+perspunkt.z = perspunkt.z + nedad.z
+
+
+CASE "q"
+GOTO endscreen
+CASE ELSE
+END SELECT
+
+FOR i% = 1 TO pnkt% STEP 1
+tegnpunkt (i%)
+NEXT
+PCOPY 1, 0
+
+
+CLS
+LOOP
+
+endscreen:
+CLS
+SCREEN 9
+PRINT "That was my latest program."
+PRINT "Programmed 10-14-05 and 10-15-05"
+PRINT "Please do not use any of the program code without giving me credit"
+PRINT "That's a Thanks to Firngrod for ... in your programs... :)"
+PRINT "I hope you enjoyed it."
+PRINT
+PRINT "Kindly yours:"
+PRINT "Firngrod"
+PRINT "Firngrod@hotmail.com"
+PRINT
+PRINT
+PRINT "Press any key to quit."
+WHILE INKEY$ = "": WEND
+
+SUB angpunkt (nr%, x%, y%, z%)
+punkt(nr%).x = x%
+punkt(nr%).y = y%
+punkt(nr%).z = z%
+
+END SUB
+
+SUB roterhv (vinkel)
+
+r1 = retning.x
+r2 = retning.y
+r3 = retning.z
+
+n1 = nedad.x
+n2 = nedad.y
+n3 = nedad.z
+
+x1 = n2 * r3 - n3 * r2
+x2 = n3 * r1 - n1 * r3
+x3 = n1 * r2 - n2 * r1
+l = SQR(x1 ^ 2 + x2 ^ 2 + x3 ^ 2)
+x1 = x1 / l
+x2 = x2 / l
+x3 = x3 / l
+
+
+Rx1 = SIN(vinkel) * x1
+Rx2 = SIN(vinkel) * x2
+Rx3 = SIN(vinkel) * x3
+
+Ry1 = COS(vinkel) * r1
+Ry2 = COS(vinkel) * r2
+Ry3 = COS(vinkel) * r3
+
+r1 = Rx1 + Ry1
+r2 = Rx2 + Ry2
+r3 = Rx3 + Ry3
+
+retning.x = r1
+retning.y = r2
+retning.z = r3
+
+END SUB
+
+SUB roteron (vinkel)
+
+r1 = retning.x
+r2 = retning.y
+r3 = retning.z
+
+n1 = nedad.x
+n2 = nedad.y
+n3 = nedad.z
+
+re1 = COS(vinkel) * r1 + SIN(vinkel) * n1
+re2 = COS(vinkel) * r2 + SIN(vinkel) * n2
+re3 = COS(vinkel) * r3 + SIN(vinkel) * n3
+
+ne1 = -SIN(vinkel) * r1 + COS(vinkel) * n1
+ne2 = -SIN(vinkel) * r2 + COS(vinkel) * n2
+ne3 = -SIN(vinkel) * r3 + COS(vinkel) * n3
+
+retning.x = re1
+retning.y = re2
+retning.z = re3
+
+nedad.x = ne1
+nedad.y = ne2
+nedad.z = ne3
+
+END SUB
+
+SUB tegnpunkt (nr%)
+
+'' The assigning of values
+
+p1 = punkt(nr%).x
+p2 = punkt(nr%).y
+p3 = punkt(nr%).z
+
+m1 = perspunkt.x
+m2 = perspunkt.y
+m3 = perspunkt.z
+
+r1 = retning.x
+r2 = retning.y
+r3 = retning.z
+
+n1 = nedad.x
+n2 = nedad.y
+n3 = nedad.z
+
+
+'' The calculation of values
+
+' Vektor from point of view (POV) to point i question
+v1 = p1 - m1
+v2 = p2 - m2
+v3 = p3 - m3
+
+' Projection of this vektor on the vektor that represents the direction of view(the DOV)
+k = (v1 * r1 + v2 * r2 + v3 * r3) / (r1 ^ 2 + r2 ^ 2 + r3 ^ 2)
+IF k < 0 THEN GOTO nopoint
+d1 = k * r1
+d2 = k * r2
+d3 = k * r3
+' The length of this projection-vektor
+z = SQR(d1 ^ 2 + d2 ^ 2 + d3 ^ 2)
+
+' The projection of the point on the plane that goes through the POV and is ortogonal with DOV
+t = (r1 * m1 + r2 * m2 + r3 * m3 - r1 * p1 - r2 * p2 - r3 * p3) / (r1 ^ 2 + r2 ^ 2 + r3 ^ 2)
+s1 = p1 + t * r1
+s2 = p2 + t * r2
+s3 = p3 + t * r3
+
+' The making of the vektor from POV to (s1,s2,s3)
+w1 = s1 - m1
+w2 = s2 - m2
+w3 = s3 - m3
+
+' The splitting of the W vektor into vektors that represent, in a way, the placing on the dot on the screen
+coss = (n1 * w1 + n2 * w2 + n3 * w3) / (SQR((n1 ^ 2 + n2 ^ 2 + n3 ^ 2) * (w1 ^ 2 + w2 ^ 2 + w3 ^ 2)))
+h1 = r2 * n3 - r3 * n2
+h2 = r3 * n1 - r1 * n3
+h3 = r1 * n2 - r2 * n1
+sinn = (h1 * w1 + h2 * w2 + h3 * w3) / (SQR((h1 ^ 2 + h2 ^ 2 + h3 ^ 2) * (w1 ^ 2 + w2 ^ 2 + w3 ^ 2)))
+
+x = sinn * SQR(w1 ^ 2 + w2 ^ 2 + w3 ^ 2)
+y = coss * SQR(w1 ^ 2 + w2 ^ 2 + w3 ^ 2)
+
+Forsfakt! = -LOG(z / 32000) / LOG(2)
+
+x = x * 2 ^ Forsfakt! / 100
+y = y * 2 ^ Forsfakt! / 100
+
+x = x + 320 / 2
+y = y + 200 / 2
+
+PSET (x, y), 15
+nopoint:
+END SUB
\ No newline at end of file
diff --git a/samples/vince.md b/samples/vince.md
index 267eb67c..8219fa34 100644
--- a/samples/vince.md
+++ b/samples/vince.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY VINCE
@@ -10,7 +10,7 @@ Waving American Flag demo by Vince.
**[Chaotic Scattering](chaotic-scattering/index.md)**
-[🐝 vince](vince.md) 🔗 [ray tracing](ray-tracing.md), [reflections](reflections.md)
+[🐝 vince](vince.md) 🔗 [ray tracing](ray-tracing.md), [reflections](reflections.md), [qbjs](qbjs.md)
Demo of the Gaspard-Rice system. Left-click to change location.
@@ -20,6 +20,12 @@ Demo of the Gaspard-Rice system. Left-click to change location.
Curve Approximator by Vince.
+**[Discrete Cosine Transform](discrete-cosine-transform/index.md)**
+
+[🐝 Vince](vince.md) 🔗 [image processing](image-processing.md), [compression](compression.md), [jpeg](jpeg.md)
+
+Demonstrates how jpegs are made. Not for the faint of mind.
+
**[Fish Mosaic](fish-mosaic/index.md)**
[🐝 Vince](vince.md) 🔗 [mosaic](mosaic.md), [fish](fish.md)
@@ -40,6 +46,6 @@ Double Pendulum Simulator by Vince.
**[Plumeria](plumeria/index.md)**
-[🐝 Vince](vince.md) 🔗 [2d](2d.md), [graphics](graphics.md)
+[🐝 Vince](vince.md) 🔗 [2d](2d.md), [graphics](graphics.md), [qbjs](qbjs.md)
Plumeria demo by Vince.
diff --git a/samples/vortex/index.md b/samples/vortex/index.md
index c6c4affe..e49dccc1 100644
--- a/samples/vortex/index.md
+++ b/samples/vortex/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: VORTEX
@@ -16,16 +16,9 @@
'------------------------------------------------------------------------
```
-### QBjs
-
-> Please note that QBjs is still in early development and support for these examples is extremely experimental (meaning will most likely not work). With that out of the way, give it a try!
-
-* [LOAD "vortex.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?src=https://qb64.com/samples/vortex/src/vortex.bas)
-* [RUN "vortex.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?mode=auto&src=https://qb64.com/samples/vortex/src/vortex.bas)
-* [PLAY "vortex.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?mode=play&src=https://qb64.com/samples/vortex/src/vortex.bas)
-
### File(s)
* [vortex.bas](src/vortex.bas)
+* [vortex_orig.bas](src/vortex_orig.bas)
🔗 [screensaver](../screensaver.md), [9 lines](../9-lines.md)
diff --git a/samples/vortex/src/vortex_orig.bas b/samples/vortex/src/vortex_orig.bas
new file mode 100644
index 00000000..1a8a530c
--- /dev/null
+++ b/samples/vortex/src/vortex_orig.bas
@@ -0,0 +1,13 @@
+' Vortex Antoni Gual 2003
+' for Rel's 9 liners contest at QBASICNEWS.COM
+'------------------------------------------------------------------------
+1 SCREEN 13
+2 PALETTE LEN(a$) / 3, 0
+3 a$ = a$ + CHR$(32 - 31 * SIN((LEN(a$) - 60 * ((LEN(a$) MOD 3) = 2) + 60 * ((LEN(a$) MOD 3) = 1)) * 3.14151693# / 128))
+4 CIRCLE (160, 290 - LEN(a$) ^ .8), LEN(a$) / 2.8, LEN(a$) \ 3, , , .5
+5 CIRCLE (160, 290 - LEN(a$) ^ .8 + 1), LEN(a$) / 2.8, LEN(a$) \ 3, , , .5
+6 IF LEN(a$) < 256 * 3 THEN 2 ELSE OUT &H3C8, 0
+7 J = (J + 1) MOD (LEN(a$) - 3)
+8 OUT &H3C9, ASC(MID$(a$, J + 1, 1))
+9 IF LEN(INKEY$) = 0 THEN 7
+
diff --git a/samples/vsphere/img/screenshot.png b/samples/vsphere/img/screenshot.png
new file mode 100644
index 00000000..e3cacc7c
Binary files /dev/null and b/samples/vsphere/img/screenshot.png differ
diff --git a/samples/vsphere/index.md b/samples/vsphere/index.md
new file mode 100644
index 00000000..6aec65f3
--- /dev/null
+++ b/samples/vsphere/index.md
@@ -0,0 +1,25 @@
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+
+## SAMPLE: VSPHERE
+
+![screenshot.png](img/screenshot.png)
+
+### Description
+
+```text
+'This is a program that calculates the volume of a sphere.
+```
+
+### QBjs
+
+> Please note that QBjs is still in early development and support for these examples is extremely experimental (meaning will most likely not work). With that out of the way, give it a try!
+
+* [LOAD "vsphere.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?src=https://qb64.com/samples/vsphere/src/vsphere.bas)
+* [RUN "vsphere.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?mode=auto&src=https://qb64.com/samples/vsphere/src/vsphere.bas)
+* [PLAY "vsphere.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?mode=play&src=https://qb64.com/samples/vsphere/src/vsphere.bas)
+
+### File(s)
+
+* [vsphere.bas](src/vsphere.bas)
+
+🔗 [geometry](../geometry.md), [legacy](../legacy.md)
diff --git a/samples/vsphere/src/vsphere.bas b/samples/vsphere/src/vsphere.bas
new file mode 100644
index 00000000..1b8dce8e
--- /dev/null
+++ b/samples/vsphere/src/vsphere.bas
@@ -0,0 +1,14 @@
+'This is a program that calculates the volume of a sphere.
+
+DIM Radius AS DOUBLE
+DIM Pi AS DOUBLE
+DIM Volume AS DOUBLE
+
+CLS
+INPUT "What is the radius of the sphere (ft.) "; Radius
+PRINT
+Pi = 4 * ATN(1)
+Volume = Pi * Radius * Radius * Radius / 3
+PRINT "The volume of the sphere= "; Volume; " cubic feet"
+END
+
diff --git a/samples/water/index.md b/samples/water/index.md
index 9b882ea3..9b87ff0d 100644
--- a/samples/water/index.md
+++ b/samples/water/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: WATER
diff --git a/samples/wave-motion.md b/samples/wave-motion.md
index c51dc6f7..4c5905e9 100644
--- a/samples/wave-motion.md
+++ b/samples/wave-motion.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: WAVE MOTION
diff --git a/samples/wetspot/index.md b/samples/wetspot/index.md
index 32dc72e0..69ee9552 100644
--- a/samples/wetspot/index.md
+++ b/samples/wetspot/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: WETSPOT
diff --git a/samples/wheel-o/index.md b/samples/wheel-o/index.md
index 70a3fcf5..3ea02380 100644
--- a/samples/wheel-o/index.md
+++ b/samples/wheel-o/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: WHEEL O
diff --git a/samples/william-loughner.md b/samples/william-loughner.md
index cca4ca14..92b88da2 100644
--- a/samples/william-loughner.md
+++ b/samples/william-loughner.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY WILLIAM LOUGHNER
diff --git a/samples/william-w.-sindel.md b/samples/william-w.-sindel.md
index e77dcaff..26ef30e2 100644
--- a/samples/william-w.-sindel.md
+++ b/samples/william-w.-sindel.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY WILLIAM W. SINDEL
diff --git a/samples/wireframe.md b/samples/wireframe.md
index e1e293d0..6aad12b6 100644
--- a/samples/wireframe.md
+++ b/samples/wireframe.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: WIREFRAME
diff --git a/samples/worms/index.md b/samples/worms/index.md
index 12845c8d..6c603bba 100644
--- a/samples/worms/index.md
+++ b/samples/worms/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: WORMS
diff --git a/samples/wumpus/img/screenshot.png b/samples/wumpus/img/screenshot.png
new file mode 100644
index 00000000..4c7802e3
Binary files /dev/null and b/samples/wumpus/img/screenshot.png differ
diff --git a/samples/wumpus/index.md b/samples/wumpus/index.md
new file mode 100644
index 00000000..de3b98f7
--- /dev/null
+++ b/samples/wumpus/index.md
@@ -0,0 +1,30 @@
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+
+## SAMPLE: WUMPUS
+
+![screenshot.png](img/screenshot.png)
+
+### Description
+
+```text
+375 REM *** INSTRUCTIONS ***
+PRINT "WELCOME TO 'HUNT THE WUMPUS'"
+PRINT " THE WUMPUS LIVES IN A CAVE OF 20 ROOMS. EACH ROOM"
+PRINT "HAS 3 TUNNELS LEADING TO OTHER ROOMS. (LOOK AT A"
+PRINT "DODECAHEDRON TO SEE HOW THIS WORKS-IF YOU DON'T KNOW"
+PRINT "WHAT A DODECAHEDRON IS, ASK SOMEONE)"
+```
+
+### QBjs
+
+> Please note that QBjs is still in early development and support for these examples is extremely experimental (meaning will most likely not work). With that out of the way, give it a try!
+
+* [LOAD "wumpus.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?src=https://qb64.com/samples/wumpus/src/wumpus.bas)
+* [RUN "wumpus.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?mode=auto&src=https://qb64.com/samples/wumpus/src/wumpus.bas)
+* [PLAY "wumpus.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?mode=play&src=https://qb64.com/samples/wumpus/src/wumpus.bas)
+
+### File(s)
+
+* [wumpus.bas](src/wumpus.bas)
+
+🔗 [game](../game.md), [legacy](../legacy.md)
diff --git a/samples/wumpus/src/wumpus.bas b/samples/wumpus/src/wumpus.bas
new file mode 100644
index 00000000..74c2b345
--- /dev/null
+++ b/samples/wumpus/src/wumpus.bas
@@ -0,0 +1,229 @@
+REM *** HUNT THE WUMPUS **
+DIM p(5)
+PRINT "INSTRUCTIONS (Y-N)";
+INPUT i$
+i$ = UCASE$(i$)
+IF (i$ = "Y") OR (i$ = "YES") THEN GOSUB 375
+REM *** SET UP CAVE (DODECAHEDRAL NODE LIST) ***
+DIM s(20, 3)
+FOR j = 1 TO 20
+FOR k = 1 TO 3
+READ s(j, k)
+NEXT k
+NEXT j
+DATA 2,5,8,1,3,10,2,4,12,3,5,14,1,4,6
+DATA 5,7,15,6,8,17,1,7,9,8,10,18,2,9,11
+DATA 10,12,19,3,11,13,12,14,20,4,13,15,6,14,16
+DATA 15,17,20,7,16,18,9,17,19,11,18,20,13,16,19
+REM *** LOCATE L ARRAY ITEMS ***
+REM *** 1-YOU, 2-WUMPUS, 3&4-PITS, 5&6-BATS ***
+DIM l(6)
+DIM m(6)
+170 FOR j = 1 TO 6
+l(j) = INT(20 * RND(1)) + 1
+m(j) = l(j)
+NEXT j
+REM *** CHECK FOR CROSSOVERS (IE l(1)=l(2), ETC) ***
+FOR j = 1 TO 6
+FOR k = 1 TO 6
+IF j = k THEN GOTO 215
+IF l(j) = l(k) THEN GOTO 170
+215 NEXT k
+NEXT j
+REM *** SET NO. OF ARROWS ***
+230 a = 5
+l = l(1)
+REM *** RUN THE GAME ***
+PRINT "HUNT THE WUMPUS"
+REM *** HAZARD WARNING AND LOCATION ***
+255 GOSUB 585
+REM *** MOVE OR SHOOT ***
+GOSUB 670
+IF o = 1 THEN GOTO 280
+IF o = 2 THEN GOTO 300
+REM *** SHOOT ***
+280 GOSUB 715
+IF f = 0 THEN GOTO 255
+GOTO 310
+REM *** MOVE ***
+300 GOSUB 975
+IF f = 0 THEN GOTO 255
+310 IF f > 0 THEN GOTO 335
+REM *** LOSE ***
+PRINT "HA HA HA - YOU LOSE!"
+GOTO 340
+REM *** WIN ***
+335 PRINT "HEE HEE HEE - THE WUMPUS'LL GET YOU NEXT TIME!!"
+340 FOR j = 1 TO 6
+l(j) = m(j)
+NEXT j
+PRINT "SAME SETUP (Y-N)";
+INPUT i$
+IF (i$ <> "Y") AND (i$ <> "y") THEN GOTO 170
+GOTO 230
+375 REM *** INSTRUCTIONS ***
+PRINT "WELCOME TO 'HUNT THE WUMPUS'"
+PRINT " THE WUMPUS LIVES IN A CAVE OF 20 ROOMS. EACH ROOM"
+PRINT "HAS 3 TUNNELS LEADING TO OTHER ROOMS. (LOOK AT A"
+PRINT "DODECAHEDRON TO SEE HOW THIS WORKS-IF YOU DON'T KNOW"
+PRINT "WHAT A DODECAHEDRON IS, ASK SOMEONE)"
+PRINT
+PRINT " HAZARDS:"
+PRINT " BOTTOMLESS PITS - TWO ROOMS HAVE BOTTOMLESS PITS IN THEM"
+PRINT " IF YOU GO THERE, YOU FALL INTO THE PIT (& LOSE!)"
+PRINT " SUPER BATS - TWO OTHER ROOMS HAVE SUPER BATS. IF YOU"
+PRINT " GO THERE, A BAT GRABS YOU AND TAKES YOU TO SOME OTHER"
+PRINT " ROOM AT RANDOM. (WHICH MAY BE TROUBLESOME)"
+INPUT "HIT RETURN TO CONTINUE"; a$
+PRINT " WUMPUS:"
+PRINT " THE WUMPUS IS NOT BOTHERED BY HAZARDS (HE HAS SUCKER"
+PRINT " FEET AND IS TOO BIG FOR A BAT TO LIFT). USUALLY"
+PRINT " HE IS ASLEEP. TWO THINGS WAKE HIM UP: YOU SHOOTING AN"
+PRINT "ARROW OR YOU ENTERING HIS ROOM."
+PRINT " IF THE WUMPUS WAKES HE MOVES (P=.75) ONE ROOM"
+PRINT " OR STAYS STILL (P=.25). AFTER THAT, IF HE IS WHERE YOU"
+PRINT " ARE, HE EATS YOU UP AND YOU LOSE!"
+PRINT
+PRINT " YOU:"
+PRINT " EACH TURN YOU MAY MOVE OR SHOOT A CROOKED ARROW"
+PRINT " MOVING: YOU CAN MOVE ONE ROOM (THRU ONE TUNNEL)"
+PRINT " ARROWS: YOU HAVE 5 ARROWS. YOU LOSE WHEN YOU RUN OUT"
+PRINT " EACH ARROW CAN GO FROM 1 TO 5 ROOMS. YOU AIM BY TELLING"
+PRINT " THE COMPUTER THE ROOM#S YOU WANT THE ARROW TO GO TO."
+PRINT " IF THE ARROW CAN'T GO THAT WAY (IF NO TUNNEL) IT MOVES"
+PRINT " AT RANDOM TO THE NEXT ROOM."
+PRINT " IF THE ARROW HITS THE WUMPUS, YOU WIN."
+PRINT " IF THE ARROW HITS YOU, YOU LOSE."
+INPUT "HIT RETURN TO CONTINUE"; a$
+PRINT " WARNINGS:"
+PRINT " WHEN YOU ARE ONE ROOM AWAY FROM A WUMPUS OR HAZARD,"
+PRINT " THE COMPUTER SAYS:"
+PRINT " WUMPUS: 'I SMELL A WUMPUS'"
+PRINT " BAT : 'BATS NEARBY'"
+PRINT " PIT : 'I FEEL A DRAFT'"
+PRINT
+RETURN
+585 REM *** PRINT LOCATION & HAZARD WARNINGS ***
+PRINT
+FOR j = 2 TO 6
+FOR k = 1 TO 3
+IF s(l(1), k) <> l(j) THEN GOTO 640
+SELECT CASE j - 1
+CASE 1
+GOTO 615
+CASE 2
+GOTO 625
+CASE 3
+GOTO 625
+CASE 4
+GOTO 635
+CASE 5
+GOTO 635
+END SELECT
+615 PRINT "I SMELL A WUMPUS!"
+GOTO 640
+625 PRINT "I FEEL A DRAFT"
+GOTO 640
+635 PRINT "BATS NEARBY!"
+640 NEXT k
+NEXT j
+PRINT "YOU ARE IN ROOM "; l(1)
+PRINT "TUNNELS LEAD TO "; s(l, 1); " "; s(l, 2); " "; s(l, 3)
+PRINT
+RETURN
+670 REM *** CHOOSE OPTION ***
+675 PRINT "SHOOT OR MOVE (S-M)";
+INPUT i$
+IF (i$ <> "S") AND (i$ <> "s") THEN GOTO 700
+o = 1
+RETURN
+700 IF (i$ <> "M") AND (i$ <> "m") THEN GOTO 675
+o = 2
+RETURN
+715 REM *** ARROW ROUTINE ***
+f = 0
+REM *** PATH OF ARROW ***
+735 PRINT "NO. OF ROOMS (1-5)";
+INPUT j9
+IF j9 < 1 THEN GOTO 735
+IF j9 > 5 THEN GOTO 735
+FOR k = 1 TO j9
+760 PRINT "ROOM #";
+INPUT p(k)
+IF k <= 2 THEN 790
+IF p(k) <> p(k - 2) THEN GOTO 790
+PRINT "ARROWS AREN'T THAT CROOKED - TRY ANOTHER ROOM"
+GOTO 760
+790 NEXT k
+REM *** SHOOT ARROW ***
+l = l(1)
+FOR k = 1 TO j9
+FOR k1 = 1 TO 3
+IF s(l, k1) = p(k) THEN GOTO 895
+NEXT k1
+REM *** NO TUNNEL FOR ARROW ***
+l = s(l, INT(3 * RND(1)) + 1)
+GOTO 900
+840 NEXT k
+PRINT "MISSED"
+l = l(1)
+REM *** MOVE WUMPUS ***
+GOSUB 935
+REM *** AMMO CHECK ***
+a = a - 1
+IF a > 0 THEN 885
+880 f = -1
+885 RETURN
+REM *** SEE IF ARROW IS AT l(1) OR AT l(2)
+895 l = p(k)
+900 IF l <> l(2) THEN 920
+PRINT "AHA! YOU GOT THE WUMPUS!"
+f = 1
+RETURN
+920 IF l <> l(1) THEN GOTO 840
+PRINT "OUCH! ARROW GOT YOU!"
+GOTO 880
+935 REM *** MOVE WUMPUS ROUTINE ***
+940 k = INT(4 * RND(1)) + 1
+IF k = 4 THEN GOTO 955
+l(2) = s(l(2), k)
+955 IF l(2) <> l THEN GOTO 970
+PRINT "TSK TSK TSK - WUMPUS GOT YOU!"
+f = -1
+970 RETURN
+975 REM *** MOVE ROUTINE ***
+f = 0
+985 PRINT "WHERE TO";
+INPUT l
+IF l < 1 THEN GOTO 985
+IF l > 20 THEN GOTO 985
+FOR k = 1 TO 3
+REM *** CHECK IF LEGAL MOVE ***
+IF s(l(1), k) = l THEN GOTO 1045
+NEXT k
+IF l = l(1) THEN GOTO 1045
+PRINT "NOT POSSIBLE -";
+GOTO 985
+REM *** CHECK FOR HAZARDS ***
+1045 l(1) = l
+REM *** WUMPUS ***
+IF l <> l(2) THEN GOTO 1090
+PRINT "... OOPS! BUMPED A WUMPUS!"
+REM *** MOVE WUMPUS ***
+GOSUB 940
+IF f = 0 THEN GOTO 1090
+RETURN
+REM *** PIT ***
+1090 IF l = l(3) THEN GOTO 1100
+IF l <> l(4) THEN GOTO 1120
+1100 PRINT "YYYYIIIIEEEE . . . FELL IN PIT"
+f = -1
+RETURN
+REM *** BATS ***
+1120 IF l = l(5) THEN GOTO 1130
+IF l <> l(6) THEN GOTO 1145
+1130 PRINT "ZAP--SUPER BAT SNATCH! ELSEWHEREVILLE FOR YOU!"
+l = INT(20 * RND(1)) + 1
+GOTO 1045
+1145 RETURN
+END
\ No newline at end of file
diff --git a/samples/x-wing/img/screenshot.png b/samples/x-wing/img/screenshot.png
new file mode 100644
index 00000000..265c9b89
Binary files /dev/null and b/samples/x-wing/img/screenshot.png differ
diff --git a/samples/x-wing/index.md b/samples/x-wing/index.md
new file mode 100644
index 00000000..e565a7b0
--- /dev/null
+++ b/samples/x-wing/index.md
@@ -0,0 +1,48 @@
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+
+## SAMPLE: X-WING
+
+![screenshot.png](img/screenshot.png)
+
+### Author
+
+[🐝 DATATECH](../datatech.md)
+
+### Description
+
+```text
+PRINT "ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿"
+PRINT "³ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿³"
+PRINT "³³ ³³"
+PRINT "³³ 2060-A.BAS ³³"
+PRINT "³³ XWING ³³"
+PRINT "³³ ³³"
+PRINT "³³ BROUGHT TO YOU BY DATATECH ³³"
+PRINT "³³ ³³"
+PRINT "³³ MICHAEL KNOX WAUSAU WI 54403 ³³"
+PRINT "³³ ³³"
+PRINT "³³ ³³"
+PRINT "³³ MODIFIED BY GALLEON TO ³³"
+PRINT "³³ BE QBASIC COMPATIBLE ³³"
+PRINT "³³ ³³"
+PRINT "³³ ³³"
+PRINT "³³ QB64 DEMO #5: X-WING FIGHTER ³³"
+PRINT "³³ ³³"
+PRINT "³³ ³³"
+PRINT "³ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ³"
+PRINT "ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ"
+```
+
+### QBjs
+
+> Please note that QBjs is still in early development and support for these examples is extremely experimental (meaning will most likely not work). With that out of the way, give it a try!
+
+* [LOAD "xwing.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?src=https://qb64.com/samples/x-wing/src/xwing.bas)
+* [RUN "xwing.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?mode=auto&src=https://qb64.com/samples/x-wing/src/xwing.bas)
+* [PLAY "xwing.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?mode=play&src=https://qb64.com/samples/x-wing/src/xwing.bas)
+
+### File(s)
+
+* [xwing.bas](src/xwing.bas)
+
+🔗 [game](../game.md), [star wars](../star-wars.md), [legacy](../legacy.md)
diff --git a/samples/x-wing/src/xwing.bas b/samples/x-wing/src/xwing.bas
new file mode 100644
index 00000000..3b0afc76
--- /dev/null
+++ b/samples/x-wing/src/xwing.bas
@@ -0,0 +1,816 @@
+'CONTROLS:
+'ARROW KEYS - AIM UP/DOWN/LEFT/RIGHT
+'SPACE - FIRE CANNON
+'ENTER - FIRE TORPEDO
+'1-9 - CHANGE ENGINE SPEED
+'KEY OFF
+DEFINT A-Z: DEFSNG G, J, O, S
+CLS
+SCREEN 0
+WIDTH 40
+PRINT "Ŀ"
+PRINT "Ŀ"
+PRINT " "
+PRINT " 2060-A.BAS "
+PRINT " XWING "
+PRINT " "
+PRINT " BROUGHT TO YOU BY DATATECH "
+PRINT " "
+PRINT " MICHAEL KNOX WAUSAU WI 54403 "
+PRINT " "
+PRINT " "
+PRINT " MODIFIED BY GALLEON TO "
+PRINT " BE QBASIC COMPATIBLE "
+PRINT " "
+PRINT " "
+PRINT " QB64 DEMO #5: X-WING FIGHTER "
+PRINT " "
+PRINT " "
+PRINT "ٳ"
+PRINT ""
+PRINT
+PRINT " PRESS ANY KEY TO CONTINUE"
+260 A$ = INKEY$: IF A$ = "" THEN 260
+WIDTH 80
+CLS
+REM * STAR PILOT GAME *
+REM * WRITTEN BY MICHAEL KNOX WAUSAU WI *
+REM * FOR PUBLIC DOMAIN UNLESS MOVIEMAKERS OBJECT *
+REM * VERSION 2.0 JANUARY 4, 1996 *
+REM * PRODUCED BY WILD BOAR PRODUCTIONS *
+REM * WILD BOAR PRODUCTIONS WAUSAU WI *
+REM * JANUARY 1996 *
+'KEY OFF
+CLS : WIDTH 80: DEF SEG = 0: A = PEEK(&H410): POKE &H410, (A AND &HCF) OR &H20
+WIDTH 40: SCREEN 1: SCREEN 0: WIDTH 80: WIDTH 40: SCREEN 1: COLOR 0, 1
+GOTO 1200
+1100 V = V - 1: IF V < -3 THEN V = -3
+RETURN
+1120 W = W - 1: IF W < -5 THEN W = -5
+RETURN
+1140 W = W + 1: IF W > 5 THEN W = 5
+RETURN
+1160 V = V + 1: IF V > 3 THEN V = 3
+RETURN
+1180 RETURN 'KEY(1) ON: KEY(2) ON: KEY(11) ON: KEY(12) ON: KEY(13) ON: KEY(14) ON: RETURN
+1190 RETURN 'KEY(1) STOP: KEY(2) STOP: KEY(11) STOP: KEY(12) STOP: KEY(13) STOP: KEY(14) STOP: RETURN
+1200 LOCATE 8, 1: PRINT "****************************************";
+PRINT "* *";
+PRINT "* X W I N G F I G H T E R *";
+PRINT "* *";
+PRINT "****************************************";
+SOUND 525.25, 18.2: SOUND 783.99, 18.2 / 2: SOUND 698.46, 18.2 / 6: SOUND 659.26, 18.2 / 6: SOUND 587.33, 18.2 / 6: SOUND 1046.6, 18.2: SOUND 783.99, 18.2 / 2: SOUND 698.46, 18.2 / 6: SOUND 659.26, 18.2 / 6: SOUND 587.33, 18.2 / 6
+SOUND 1046.5, 18.2: SOUND 783.99, 18.2 / 2: SOUND 698.46, 18.2 / 6: SOUND 659.26, 18.2 / 6: SOUND 698.46, 18.2 / 6: SOUND 587.33, 18.2
+1270 LOCATE 16, 1: PRINT "DO YOU WANT INSTRUCTIONS (Y OR N)?";
+K$ = INKEY$: IF K$ = "Y" OR K$ = "y" GOTO 6930
+IF K$ <> "N" AND K$ <> "n" GOTO 1270
+1300 CLS
+IF RESTARTED% THEN END ELSE RESTARTED% = 1
+RANDOMIZE (VAL(RIGHT$(TIME$, 2)))
+'ON KEY(1) GOSUB 5350: ON KEY(2) GOSUB 5750: ON KEY(11) GOSUB 1100: ON KEY(12) GOSUB 1120: ON KEY(13) GOSUB 1140: ON KEY(14) GOSUB 1160
+LOCATE 8, 1: PRINT "IMPERIAL FIGHTER: ": DRAW2$ = "C2;BM145,59;M+0,0;BM+10,1;M+0,-2;M+2,2;M+0,-2;BM+10,-1;M+0,4;BM+6,-4;M+0,4;M+0,-2;M-6,0": GOSUB DRAW2
+DIM IM(6): DIM IM1(6): DIM IM2(6): DIM IM3(6): GET (145, 59)-(145, 59), IM: GET (145, 59)-(145, 59), IM1: GET (155, 58)-(157, 60), IM2: GET (167, 57)-(173, 61), IM3
+DIM IM4(13): IM4(0) = 22: IM4(1) = 7: IM4(2) = 128: IM4(3) = -32760: IM4(4) = 2048: IM4(5) = 128: IM4(6) = -22008: IM4(7) = -22358: IM4(8) = 128: IM4(9) = -32760: IM4(10) = 2048: IM4(11) = 128: IM4(12) = 8
+DIM IM5(20): IM5(0) = 26: IM5(1) = 9: IM5(2) = 128: IM5(3) = -32768!: IM5(4) = 128: IM5(5) = -32768!: IM5(6) = 128: IM5(7) = -32768!: IM5(8) = 128: IM5(9) = -32768!: IM5(10) = -21846: IM5(11) = -32598: IM5(12) = 128
+IM5(13) = -32768!: IM5(14) = 128: IM5(15) = -32768!: IM5(16) = 128: IM5(17) = -32768!: IM5(18) = 128: IM5(19) = -32768!
+DIM IM6(44): IM6(0) = 34: IM6(1) = 17: IM6(2) = 2048: IM6(5) = 32: IM6(7) = -32768!: IM6(9) = 512: IM6(12) = -32760: IM6(14) = 8192: IM6(15) = 32: IM6(17) = 2176: IM6(20) = 2: IM6(23) = 128: IM6(25) = 8192: IM6(28) = 8
+IM6(29) = 128: IM6(30) = 512: IM6(31) = 2: IM6(33) = -30720: IM6(36) = 32: IM6(38) = -32768!: IM6(40) = 512: IM6(43) = 8
+DIM IM7(44)
+IM7(0) = 30: IM7(1) = 21: IM7(2) = -22006: IM7(3) = -22358: IM7(4) = 32: IM7(5) = 8192: IM7(6) = -21846: IM7(7) = -32598: IM7(8) = 2048: IM7(9) = 128
+IM7(10) = 2048: IM7(11) = 128: IM7(12) = 2048: IM7(13) = 128: IM7(14) = 2048: IM7(15) = 128: IM7(16) = 2048: IM7(17) = 128: IM7(18) = 2048: IM7(19) = 128
+IM7(20) = 2560: IM7(21) = 32: IM7(22) = 2048: IM7(23) = 128: IM7(24) = 8704: IM7(25) = 128: IM7(26) = 2048: IM7(27) = 128: IM7(28) = 2048: IM7(29) = 128
+IM7(30) = 2048: IM7(31) = 128: IM7(32) = 2048: IM7(33) = 128: IM7(34) = 2048: IM7(35) = 128: IM7(36) = 2048: IM7(37) = 128: IM7(38) = -22518: IM7(39) = -22358
+IM7(40) = 2592: IM7(41) = 8192: IM7(42) = -21846: IM7(43) = -32598
+DIM IM8(102)
+IM8(0) = 50: IM8(1) = 29: IM8(3) = 2048: IM8(7) = 10: IM8(10) = 2048: IM8(11) = 128: IM8(14) = 8200: IM8(17) = 2048: IM8(18) = 8: IM8(21) = 514
+IM8(25) = -32640: IM8(28) = 8192: IM8(29) = 32: IM8(32) = 2184: IM8(35) = 514: IM8(36) = 2: IM8(38) = 2048: IM8(39) = -32760: IM8(40) = 128: IM8(42) = 8352
+IM8(43) = -32736: IM8(45) = 8194: IM8(46) = 2176: IM8(47) = 128: IM8(48) = 512: IM8(49) = 34: IM8(50) = -32766: IM8(51) = 128: IM8(52) = 10250: IM8(54) = -24448
+IM8(55) = 8704: IM8(56) = 32: IM8(58) = 136: IM8(59) = -24446: IM8(61) = -32256: IM8(62) = 514: IM8(63) = 128: IM8(65) = -30592: IM8(66) = 8: IM8(68) = 8192
+IM8(69) = 8224: IM8(72) = 8200: IM8(73) = 128: IM8(75) = 512: IM8(76) = 34: IM8(79) = -22528: IM8(80) = 128: IM8(83) = 8224: IM8(86) = 2048: IM8(87) = 8
+IM8(90) = 2050: IM8(94) = 136: IM8(97) = 10240: IM8(101) = 8
+LOCATE 10, 1: PRINT "DARTH VADER : ": DRAW2$ = "C2;BM145,75;M+0,0;BM+10,1;M+0,-2;M+2,2;M+0,-2;BM+11,-1;M-1,1;M+0,2;M+1,1;BM+4,-4;M+1,1;M+0,2;M-1,1;BM+1,-2;M-6,0": GOSUB DRAW2
+DIM DV(6): DIM DV1(6): DIM DV2(6): DIM DV3(6): GET (145, 75)-(145, 75), DV: GET (145, 75)-(145, 75), DV1: GET (155, 74)-(157, 76), DV2: GET (167, 73)-(173, 77), DV3
+DIM DV4(13)
+DV4(0) = 22: DV4(1) = 7: DV4(2) = 8: DV4(3) = 8320: DV4(4) = 8192: DV4(5) = 128: DV4(6) = -22008: DV4(7) = -22358: DV4(8) = 128: DV4(9) = 8200
+DV4(10) = 8192: DV4(11) = 8: DV4(12) = 128
+DIM DV5(20)
+DV5(0) = 26: DV5(1) = 9: DV5(2) = 8: DV5(3) = 8: DV5(4) = 32: DV5(5) = 2: DV5(6) = 128: DV5(7) = -32768!: DV5(8) = 128: DV5(9) = -32768!
+DV5(10) = -21846: DV5(11) = -32598: DV5(12) = 128: DV5(13) = -32768!: DV5(14) = 128: DV5(15) = -32768!: DV5(16) = 32: DV5(17) = 2: DV5(18) = 8: DV5(19) = 8
+DIM DV6(32)
+DV6(0) = 30: DV6(1) = 15: DV6(2) = -22528: DV6(4) = 2: DV6(6) = 8: DV6(8) = 34: DV6(10) = -32640: DV6(12) = 8320: DV6(14) = 2176: DV6(16) = 512
+DV6(19) = 2176: DV6(21) = 2080: DV6(23) = 2056: DV6(25) = 8194: DV6(27) = -32768!: DV6(29) = 2: DV6(31) = 168
+DIM DV7(44)
+DV7(0) = 32: DV7(1) = 21: DV7(2) = 10752: DV7(3) = -24406: DV7(4) = -32768!: DV7(5) = -30720: DV7(6) = -22014: DV7(7) = 682: DV7(8) = 520: DV7(9) = -30688
+DV7(10) = 544: DV7(11) = 8224: DV7(12) = 512: DV7(13) = 32: DV7(14) = 512: DV7(15) = 32: DV7(16) = 512: DV7(17) = 32: DV7(18) = 512: DV7(19) = 32
+DV7(20) = 512: DV7(21) = 136: DV7(22) = 512: DV7(23) = 32: DV7(24) = 2048: DV7(25) = 160: DV7(26) = 512: DV7(27) = 32: DV7(28) = 512: DV7(29) = 32
+DV7(30) = 512: DV7(31) = 32: DV7(32) = 512: DV7(33) = 32: DV7(34) = 520: DV7(35) = 544: DV7(36) = 546: DV7(37) = 2080: DV7(38) = -21888: DV7(39) = -24534
+DV7(40) = 546: DV7(41) = -32640: DV7(42) = -22006: DV7(43) = 170
+DIM DV8(76)
+DV8(0) = 46: DV8(1) = 25: DV8(3) = 10752: DV8(4) = 128: DV8(6) = -32768!: DV8(7) = 32: DV8(9) = -22526: DV8(10) = 8: DV8(12) = 512: DV8(13) = 2
+DV8(16) = -32640: DV8(18) = 512: DV8(19) = 8224: DV8(21) = 2048: DV8(22) = 2056: DV8(24) = 8192: DV8(25) = 2082: DV8(27) = -32766: DV8(28) = -30592: DV8(30) = -32248
+DV8(31) = 10240: DV8(32) = 128: DV8(33) = -30712: DV8(34) = 2048: DV8(35) = 128: DV8(36) = -24536: DV8(37) = 2048: DV8(38) = 128: DV8(39) = -32630: DV8(40) = 2048
+DV8(41) = 672: DV8(42) = -32760: DV8(44) = 2184: DV8(45) = 10: DV8(47) = 8322: DV8(48) = 32: DV8(50) = -32640: DV8(51) = 128: DV8(53) = -32224: DV8(56) = -30712
+DV8(59) = -24062: DV8(62) = -32768!: DV8(63) = 168: DV8(65) = 8192: DV8(66) = 136: DV8(68) = 2048: DV8(69) = 136: DV8(71) = 512: DV8(72) = 136: DV8(75) = 168
+LOCATE 12, 1: PRINT "DEATH STAR : ": DRAW2$ = "C3;BM145,91;M+0,0;BM+11,-1;M-1,1;M+2,0;M-1,1;BM+12,-3;M+1,0;M+1,1;M-3,0;M+0,1;M+3,0;M-1,1;M-1,0": GOSUB DRAW2
+DRAW2$ = "C3;BM+12,-5;M+2,0;M+1,1;M-4,0;M-1,1;M+6,0;M+0,1;M-6,0;M+0,1;M+6,0;M-1,1;M-4,0;M+1,1;M+2,0": GOSUB DRAW2
+DIM DS(8): DIM DS1(8): DIM DS2(8): DIM DS3(8): DIM DS4(8): GET (145, 91)-(145, 91), DS: GET (145, 91)-(145, 91), DS1: GET (155, 90)-(157, 92), DS2: GET (167, 89)-(170, 92), DS3: GET (178, 87)-(184, 93), DS4
+DIM EXPL3(18): DIM EXPL4(18): DIM EXPL5(18): DIM EXPL6(18): DIM EXPL7(18): DIM EXPL8(18)
+DATA 22,11,0,0,0,8194,0,-32608,-22006,2560,-32598,-22006,128,168,8706,0,0,0,0
+FOR i = 0 TO 18: READ EXPL3(i): NEXT i
+DATA 22,11,-30720,2048,136,-30718,-24544,-32608,-22006,-21848,-22358,-22006,-23936,10274,-30206,2048,-32632,-30720,0
+FOR i = 0 TO 18: READ EXPL4(i): NEXT i
+DATA 22,11,-30712,512,136,8194,-32760,-24416,-21974,-21976,-22358,-21974,-32608,2216,-30206,512,138,-30712,128
+FOR i = 0 TO 18: READ EXPL5(i): NEXT i
+DATA 22,11,-30712,2048,136,8194,-24536,-32608,-22006,-21976,-22358,-22006,-24448,10408,8706,2048,-32632,-30712,128
+FOR i = 0 TO 18: READ EXPL6(i): NEXT i
+DATA 22,11,-30688,2048,2080,8194,-32736,-32608,-21974,-22008,-22358,-22006,-24448,10408,8706,2048,-32632,-30688,32
+FOR i = 0 TO 18: READ EXPL7(i): NEXT i
+DATA 22,11,-30688,2048,2184,-30718,-24544,-32608,-22006,-21848,-22358,-22006,-23936,10274,-30206,2048,-32632,-30688,32
+FOR i = 0 TO 18: READ EXPL8(i): NEXT i
+1920 LOCATE 17, 1: PRINT "SELECT SKILL LEVEL FROM 0 TO 3"
+S$ = INKEY$: IF S$ <> "0" AND S$ <> "1" AND S$ <> "2" AND S$ <> "3" GOTO 1920
+SKILL = VAL(S$): CLS
+DIM LASAR(381)
+LASAR(0) = 148: LASAR(1) = 40: LASAR(2) = 64: LASAR(11) = 5136: LASAR(20) = 16385: LASAR(21) = 16385: LASAR(29) = 5120: LASAR(31) = 20: LASAR(38) = 256: LASAR(39) = 64: LASAR(40) = 256: LASAR(41) = 64: LASAR(48) = 20
+LASAR(50) = 5120: LASAR(57) = 16385: LASAR(60) = 16385: LASAR(66) = 5120: LASAR(70) = 20: LASAR(75) = 256: LASAR(76) = 64: LASAR(79) = 256: LASAR(85) = 4: LASAR(89) = 20480: LASAR(94) = 20480: LASAR(99) = 5
+LASAR(103) = 1280: LASAR(109) = 80: LASAR(113) = 80: LASAR(118) = 1280: LASAR(122) = 5: LASAR(128) = 20480: LASAR(131) = 20480: LASAR(138) = 5: LASAR(140) = 1280: LASAR(148) = 80: LASAR(150) = 80
+LASAR(157) = 1024: LASAR(159) = 1: LASAR(167) = 16385: LASAR(168) = 5120: LASAR(177) = 276: LASAR(178) = 64: LASAR(186) = 256: LASAR(187) = 84: LASAR(196) = 21505: LASAR(205) = 5120: LASAR(206) = 16385
+LASAR(214) = 256: LASAR(215) = 64: LASAR(216) = 20: LASAR(224) = 4: LASAR(225) = 256: LASAR(233) = 20480: LASAR(235) = 20480: LASAR(242) = 1280: LASAR(245) = 5: LASAR(252) = 80: LASAR(255) = 80
+LASAR(261) = 5: LASAR(264) = 1280: LASAR(270) = 20480: LASAR(274) = 20480: LASAR(279) = 1280: LASAR(284) = 5: LASAR(289) = 80: LASAR(294) = 80: LASAR(298) = 1: LASAR(303) = 1024: LASAR(307) = 5120
+LASAR(313) = 16385: LASAR(316) = 256: LASAR(317) = 64: LASAR(323) = 20: LASAR(326) = 20: LASAR(332) = 256: LASAR(333) = 64: LASAR(335) = 16385: LASAR(342) = 5120: LASAR(344) = 5120: LASAR(352) = 16385
+LASAR(353) = 256: LASAR(354) = 64: LASAR(362) = 20: LASAR(363) = 20: LASAR(371) = 256: LASAR(372) = 16448: LASAR(381) = 4096
+REM * INITIALIZE VARIABLES *
+M = INT(RND * 61) + 10: N = INT(RND * 21) + 10: O = INT(RND * 32001) + 70000!
+E = INT(RND * 61) + 10: F = INT(RND * 21) + 10: G = 25000
+H = INT(RND * 61) + 10: i = INT(RND * 21) + 10: J = INT(RND * 32001) + 40000!
+Q = 5: Z = 3
+IMX = 38: IMY = 21: IMR1 = 1: IMR2 = 1
+DVX = 38: DVY = 21: DVR1 = 1: DVR2 = 1
+IF SKILL = 0 THEN A1 = 5: A2 = 0: BYPASS = 3
+IF SKILL = 1 THEN A1 = 3: A2 = 0: BYPASS = 2
+IF SKILL = 2 THEN A1 = 2: A2 = 45: BYPASS = 1
+IF SKILL = 3 THEN A1 = 2: A2 = 30
+K$ = "5"
+LINE (1, 1)-(76, 42), 3, B
+DRAW2$ = "C3;BM2,21;M+0,0;BM+6,0;M+0,0;BM+6,0;M+0,0;BM+6,0;M+0,0;BM+6,0;M+0,0;BM+6,0;M+0,0;BM+12,0;M+0,0;BM+6,0;M+0,0;BM+6,0;M+0,0;BM+6,0;M+0,0;BM+6,0;M+0,0;BM+6,0;M+0,0": GOSUB DRAW2
+DRAW2$ = "C3;BM38,3;M+0,0;BM+0,3;M+0,0;BM+0,3;M+0,0;BM+0,3;M+0,0;BM+0,3;M+0,0;BM+0,3;M+0,0;BM+0,6;M+0,0;BM+0,3;M+0,0;BM+0,3;M+0,0;BM+0,3;M+0,0;BM+0,3;M+0,0;BM+0,3;M+0,0": GOSUB DRAW2
+LOCATE 8, 1: PRINT "REPUBLIC X-WING STAR FIGHTER"
+LOCATE 10, 5: PRINT "TORPEDOES"
+LOCATE 12, 1: PRINT "HOR. VERT. DIRECTION"
+LOCATE 15, 1: PRINT "SPEED MACH"
+LOCATE 17, 1: PRINT "RADAR TARGETS"
+LOCATE 18, 8: PRINT "KM TO IMPERIAL FIGHTER"
+LOCATE 19, 8: PRINT "KM TO DARTH VADER"
+LOCATE 20, 8: PRINT "KM TO DEATH STAR"
+LOCATE 22, 1: PRINT "TIME REMAINING"
+'PLAY "T250"
+SEC1 = VAL(RIGHT$(TIME$, 2))
+GOSUB 1180
+REM * MASTER CONTROL ROUTINE *
+2320 GOSUB 1190
+PUT (38, 21), DS1
+LOCATE 10, 1: PRINT Z
+LOCATE 13, 1: PRINT W; " "; -V
+LOCATE 15, 12: PRINT Q * 10
+GS = G - S: IF GS < 0 THEN GS = 0
+LOCATE 18, 1: PRINT GS
+JS = J - S: IF JS < 0 THEN JS = 0
+LOCATE 19, 1: PRINT JS
+OS = O - S: IF OS < 0 THEN OS = 0
+LOCATE 20, 1: PRINT OS
+LOCATE 22, 16: PRINT A1; ":"; A2NEW
+SOUND 37 * Q, 1
+PUT (38, 21), DS1
+GOSUB 1180
+REM * DISPLAY DEATH STAR *
+IF O - S = 30000 OR O - S > 30000 GOTO 2840
+IF O - S < 20000 AND DSTAR2 = 0 THEN DSTAR2 = 1: DSFLAG = 1: DS(0) = DS2(0): DS(1) = DS2(1): DS(2) = DS2(2): DS(3) = DS2(3)
+IF O - S < 10000 AND DSTAR3 = 0 THEN DSTAR3 = 1: DSFLAG = 2: DS(0) = DS3(0): DS(1) = DS3(1): DS(2) = DS3(2): DS(3) = DS3(3)
+IF O - S < 5000 AND DSTAR4 = 0 THEN DSTAR4 = 1: DSFLAG = 3: DS(0) = DS4(0): DS(1) = DS4(1): DS(2) = DS4(2): DS(3) = DS4(3): DS(4) = DS4(4): DS(5) = DS4(5): DS(6) = DS4(6): DS(7) = DS4(7): DS(8) = DS4(8)
+IF FLAG1 <> BYPASS THEN FLAG1 = FLAG1 + 1: GOTO 2550
+FLAG1 = 0
+M = M + INT(RND * 5) - 2: N = N + INT(RND * 5) - 2
+2550 M = M - W: N = N - V
+IF M < 2 THEN M = 2 + INT(RND * 3)
+IF M > 69 THEN M = 69 - INT(RND * 3)
+IF N < 2 THEN N = 2 + INT(RND * 3)
+IF N > 35 THEN N = 35 - INT(RND * 3)
+GOSUB 1190
+PUT (M, N), DS
+IF DSNEW = 0 THEN DSNEW = 1: GOTO 2680
+IF DSFLAG = 0 GOTO 2670
+IF DSFLAG = 1 THEN DSFLAG = 0: PUT (MP, NP), DS1: GOTO 2680
+IF DSFLAG = 2 THEN DSFLAG = 0: PUT (MP, NP), DS2: GOTO 2680
+IF DSFLAG = 3 THEN DSFLAG = 0: PUT (MP, NP), DS3: GOTO 2680
+2670 PUT (MP, NP), DS
+2680 GOSUB 1180
+MP = M: NP = N
+IF O - S > 10000 OR FLAG = 1 GOTO 2840
+GOSUB 1190
+FOR K = 1 TO 2
+LOCATE 24, 1: PRINT "*** DEATH STAR WITHIN TORPEDO RANGE ***";
+DELAYPERIOD% = 2: GOSUB DELAY 'PLAY "L2 N0"
+LOCATE 24, 1: PRINT " ";
+DELAYPERIOD% = 16: GOSUB DELAY 'PLAY "L16 N0"
+NEXT K
+LOCATE 24, 1: PRINT "*** DEATH STAR WITHIN TORPEDO RANGE ***";
+DELAYPERIOD% = 1: GOSUB DELAY: GOSUB DELAY 'PLAY "L1 N0": PLAY "L1 N0"
+LOCATE 24, 1: PRINT " ";
+GOSUB 1180
+FLAG = 1
+REM * DISPLAY IMPERIAL FIGHTER *
+2840 GOSUB 1190
+IF G - S > 26000 THEN GOSUB 1180: GOTO 3910
+IF G - S < 20000 AND IMPFIGH2 = 0 THEN IMPFIGH2 = 1: IMFLAG = 1: IM(0) = IM2(0): IM(1) = IM2(1): IM(2) = IM2(2): IM(3) = IM2(3): IMX = 37: IMY = 20: IMR1 = 2: IMR2 = 2
+IF G - S < 10000 AND IMPFIGH3 = 0 THEN IMPFIGH3 = 1: IMFLAG = 2: IM(0) = IM3(0): IM(1) = IM3(1): IM(2) = IM3(2): IM(3) = IM3(3): IM(4) = IM3(4): IM(5) = IM3(5): IM(6) = IM3(6): IMX = 35: IMY = 19: IMR1 = 4: IMR2 = 3
+IF FLAG2 <> BYPASS THEN FLAG2 = FLAG2 + 1: GOTO 2910
+FLAG2 = 0
+E = E + INT(RND * 5) - 2: F = F + INT(RND * 5) - 2
+2910 E = E - W: F = F - V
+IF E < 2 THEN E = 2 + INT(RND * 3)
+IF E > 69 THEN E = 69 - INT(RND * 3)
+IF F < 2 THEN F = 2 + INT(RND * 3)
+IF F > 37 THEN F = 37 - INT(RND * 3)
+PUT (E, F), IM
+IF IMNEW = 0 THEN IMNEW = 1: GOTO 3020
+IF IMFLAG = 0 GOTO 3010
+IF IMFLAG = 1 THEN IMFLAG = 0: PUT (EP, FP), IM1: GOTO 3020
+IF IMFLAG = 2 THEN IMFLAG = 0: PUT (EP, FP), IM2: GOTO 3020
+3010 PUT (EP, FP), IM
+3020 GOSUB 1180
+EP = E: FP = F
+IF G - S > 5000 OR FLAG3 = 1 GOTO 3170
+GOSUB 1190
+FOR K = 1 TO 2
+LOCATE 24, 1: PRINT "**** IMPERIAL FIGHTER ATTACKS ****";
+DELAYPERIOD% = 2: GOSUB DELAY 'PLAY "L2 N0"
+LOCATE 24, 1: PRINT " ";
+DELAYPERIOD% = 16: GOSUB DELAY 'PLAY "L16 N0"
+NEXT K
+LOCATE 24, 1: PRINT "**** IMPERIAL FIGHTER ATTACKS ****";
+DELAYPERIOD% = 1: GOSUB DELAY: GOSUB DELAY 'PLAY "L1 N0": PLAY "L1 N0"
+LOCATE 24, 1: PRINT " ";
+GOSUB 1180
+FLAG3 = 1
+3170 IF G > S THEN GOTO 3910
+REM * IMPERIAL FIGHTER ATTACKS *
+FLAG3 = 0: IMNEW = 0: IMNEW1 = 0: IMPFIGH2 = 0: IMPFIGH3 = 0: PUT (E, F), IM
+GOSUB 1190
+3210 DELTAX = 29 - E: DELTAY = 19 - F
+IF DELTAX > 0 THEN E = E + 1
+IF DELTAX < 0 THEN E = E - 1
+IF DELTAY > 0 THEN F = F + 1
+IF DELTAY < 0 THEN F = F - 1
+IF DELTAX = 0 AND DELTAY = 0 GOTO 3320
+PUT (E, F), IM: IF IMNEW1 = 0 THEN IMNEW1 = 1: GOTO 3290
+PUT (EP, FP), IM
+3290 EP = E: FP = F
+DELAYPERIOD% = 32: GOSUB DELAY 'PLAY "P32"
+GOTO 3210
+3320 PUT (EP - 4, FP - 1), IM4
+PUT (EP, FP), IM
+DELAYPERIOD% = 4: GOSUB DELAY 'PLAY "P4"
+PUT (EP - 9, FP - 2), IM5
+PUT (EP - 4, FP - 1), IM4
+DELAYPERIOD% = 4: GOSUB DELAY 'PLAY "P4"
+PUT (EP - 12, FP - 6), IM6
+PUT (EP - 9, FP - 2), IM5
+DELAYPERIOD% = 4: GOSUB DELAY 'PLAY "P4"
+PUT (EP - 9, FP - 7), IM7
+PUT (EP - 12, FP - 6), IM6
+DELAYPERIOD% = 4: GOSUB DELAY 'PLAY "P4"
+PUT (EP - 20, FP - 14), IM8
+PUT (EP - 9, FP - 7), IM7
+DELAYPERIOD% = 4: GOSUB DELAY 'PLAY "P4"
+PUT (EP - 20, FP - 14), IM8
+FOR J2 = 10000 TO 100 STEP -500
+SOUND J2, .001 * 18.2
+NEXT J2
+FOR A = 1 TO 50: NEXT A
+FOR J2 = 10000 TO 100 STEP -500
+SOUND J2, .001 * 18.2
+NEXT J2
+G = G + 25000
+E = INT(RND * 61) + 10: F = INT(RND * 21) + 10
+K = INT(RND * 10)
+IF K > SKILL THEN 3790
+'KEY(1) OFF: KEY(2) OFF: KEY(11) OFF: KEY(12) OFF: KEY(13) OFF: KEY(14) OFF
+3600 CLS
+PRINT "BLAM!"
+FOR J2 = 1000 TO 37 STEP -10
+SOUND J2, .01 * 18.2
+NEXT J2
+PRINT
+DELAYPERIOD% = 1: GOSUB DELAY: GOSUB DELAY: GOSUB DELAY 'PLAY "L1 N0": PLAY "L1 N0": PLAY "L1 N0"
+PRINT "YOU HAVE JUST BEEN SHOT DOWN BY AN";
+PRINT "IMPERIAL SKY FIGHTER!"
+PRINT
+DELAYPERIOD% = 1: GOSUB DELAY: GOSUB DELAY: GOSUB DELAY 'PLAY "L1 N0": PLAY "L1 N0": PLAY "L1 N0"
+PRINT "YOU ARE A HERO!"
+PRINT
+PRINT "UNFORTUNATELY, YOU ARE A DEAD HERO AND";
+PRINT "DEAD HEROES DON'T WIN WARS. DARTH VADER";
+PRINT "WINS!"
+PRINT
+PRINT "********* YOU LOSE!! *********"
+GOTO 5310
+3790 FOR K = 1 TO 2
+LOCATE 24, 1: PRINT "**** IMPERIAL FIGHTER MISSED ****";
+DELAYPERIOD% = 2: GOSUB DELAY 'PLAY "L2 N0"
+LOCATE 24, 1: PRINT " ";
+DELAYPERIOD% = 16: GOSUB DELAY 'PLAY "L16 N0"
+NEXT K
+LOCATE 24, 1: PRINT "**** IMPERIAL FIGHTER MISSED ****";
+DELAYPERIOD% = 1: GOSUB DELAY: GOSUB DELAY 'PLAY "L1 N0": PLAY "L1 N0"
+LOCATE 24, 1: PRINT " ";
+IM(0) = IM1(0): IM(1) = IM1(1): IM(2) = IM1(2): IM(3) = IM1(3): IM(4) = IM1(4): IM(5) = IM1(5): IM(6) = IM1(6)
+GOSUB 1180
+REM * DISPLAY DARTH VADER *
+3910 GOSUB 1190
+IF J - S > 26000 THEN GOSUB 1180: GOTO 5140
+IF J - S < 20000 AND DVADER2 = 0 THEN DVADER2 = 1: DVFLAG = 1: DV(0) = DV2(0): DV(1) = DV2(1): DV(2) = DV2(2): DV(3) = DV2(3): DVX = 37: DVY = 20: DVR1 = 2: DVR2 = 2
+IF J - S < 10000 AND DVADER3 = 0 THEN DVADER3 = 1: DVFLAG = 2: DV(0) = DV3(0): DV(1) = DV3(1): DV(2) = DV3(2): DV(3) = DV3(3): DV(4) = DV3(4): DV(5) = DV3(5): DV(6) = DV3(6): DVX = 35: DVY = 19: DVR1 = 4: DVR2 = 3
+IF FLAG2 <> BYPASS THEN FLAG2 = FLAG2 + 1: GOTO 3980
+FLAG2 = 0
+H = H + INT(RND * 5) - 2: i = i + INT(RND * 5) - 2
+3980 H = H - W: i = i - V
+IF H < 2 THEN H = 2 + INT(RND * 3)
+IF H > 69 THEN H = 69 - INT(RND * 3)
+IF i < 2 THEN i = 2 + INT(RND * 3)
+IF i > 37 THEN i = 37 - INT(RND * 3)
+PUT (H, i), DV
+IF DVNEW = 0 THEN DVNEW = 1: GOTO 4090
+IF DVFLAG = 0 GOTO 4080
+IF DVFLAG = 1 THEN DVFLAG = 0: PUT (HP, IP), DV1: GOTO 4090
+IF DVFLAG = 2 THEN DVFLAG = 0: PUT (HP, IP), DV2: GOTO 4090
+4080 PUT (HP, IP), DV
+4090 GOSUB 1180
+HP = H: IP = i
+IF J - S > 5000 OR FLAG4 = 1 GOTO 4350
+GOSUB 1190
+IF DVGONE = 0 GOTO 4240
+FOR K = 1 TO 2
+LOCATE 24, 1: PRINT "**** IMPERIAL FIGHTER ATTACKS ****";
+DELAYPERIOD% = 2: GOSUB DELAY 'PLAY "L2 N0"
+LOCATE 24, 1: PRINT " ";
+DELAYPERIOD% = 16: GOSUB DELAY 'PLAY "L16 N0"
+NEXT K
+LOCATE 24, 1: PRINT "**** IMPERIAL FIGHTER ATTACKS ****";
+DELAYPERIOD% = 1: GOSUB DELAY: GOSUB DELAY 'PLAY "L1 N0": PLAY "L1 N0"
+LOCATE 24, 1: PRINT " ";
+GOTO 4330
+4240 FOR K = 1 TO 2
+LOCATE 24, 1: PRINT "**** DARTH VADER ATTACKS ****";
+DELAYPERIOD% = 2: GOSUB DELAY 'PLAY "L2 N0"
+LOCATE 24, 1: PRINT " ";
+DELAYPERIOD% = 16: GOSUB DELAY 'PLAY "L16 N0"
+NEXT K
+LOCATE 24, 1: PRINT "**** DARTH VADER ATTACKS ****";
+DELAYPERIOD% = 1: GOSUB DELAY: GOSUB DELAY 'PLAY "L1 N0": PLAY "L1 N0"
+LOCATE 24, 1: PRINT " ";
+4330 FLAG4 = 1
+GOSUB 1180
+4350 IF J > S THEN GOTO 5140
+REM * DARTH VADER ATTACKS *
+FLAG4 = 0: DVNEW = 0: DVNEW1 = 0: DVADER2 = 0: DVADER3 = 0: PUT (H, i), DV
+GOSUB 1190
+4390 DELTAX = 41 - H: DELTAY = 19 - i
+IF DELTAX > 0 THEN H = H + 1
+IF DELTAX < 0 THEN H = H - 1
+IF DELTAY > 0 THEN i = i + 1
+IF DELTAY < 0 THEN i = i - 1
+IF DELTAX = 0 AND DELTAY = 0 GOTO 4500
+PUT (H, i), DV: IF DVNEW1 = 0 THEN DVNEW1 = 1: GOTO 4470
+PUT (HP, IP), DV
+4470 HP = H: IP = i
+DELAYPERIOD% = 32: GOSUB DELAY 'PLAY "P32"
+GOTO 4390
+4500 IF DVGONE = 0 THEN PUT (HP, IP - 1), DV4 ELSE PUT (HP, IP - 1), IM4
+PUT (HP, IP), DV
+DELAYPERIOD% = 4: GOSUB DELAY 'PLAY "P4"
+IF DVGONE = 0 THEN PUT (HP + 3, IP - 2), DV5 ELSE PUT (HP + 3, IP - 2), IM5
+IF DVGONE = 0 THEN PUT (HP, IP - 1), DV4 ELSE PUT (HP, IP - 1), IM4
+DELAYPERIOD% = 4: GOSUB DELAY 'PLAY "P4"
+IF DVGONE = 0 THEN PUT (HP + 2, IP - 6), DV6 ELSE PUT (HP + 2, IP - 6), IM6
+IF DVGONE = 0 THEN PUT (HP + 3, IP - 2), DV5 ELSE PUT (HP + 3, IP - 2), IM5
+DELAYPERIOD% = 4: GOSUB DELAY 'PLAY "P4"
+IF DVGONE = 0 THEN PUT (HP + 1, IP - 6), DV7 ELSE PUT (HP + 1, IP - 6), IM7
+IF DVGONE = 0 THEN PUT (HP + 2, IP - 6), DV6 ELSE PUT (HP + 2, IP - 6), IM6
+DELAYPERIOD% = 4: GOSUB DELAY 'PLAY "P4"
+IF DVGONE = 0 THEN PUT (HP + 2, IP - 6), DV8 ELSE PUT (HP + 2, IP - 6), IM8
+IF DVGONE = 0 THEN PUT (HP + 1, IP - 6), DV7 ELSE PUT (HP + 1, IP - 6), IM7
+DELAYPERIOD% = 4: GOSUB DELAY 'PLAY "P4"
+IF DVGONE = 0 THEN PUT (HP + 2, IP - 6), DV8 ELSE PUT (HP + 2, IP - 6), IM8
+FOR J2 = 10000 TO 100 STEP -500
+SOUND J2, .001 * 18.2
+NEXT J2
+FOR A = 1 TO 50: NEXT A
+FOR J2 = 10000 TO 100 STEP -500
+SOUND J2, .001 * 18.2
+NEXT J2
+J = J + 25000
+H = INT(RND * 61) + 10: i = INT(RND * 21) + 10
+K = INT(RND * 10)
+IF K > SKILL + 1 THEN 4910
+'KEY(1) OFF: KEY(2) OFF: KEY(11) OFF: KEY(12) OFF: KEY(13) OFF: KEY(14) OFF
+4780 CLS : PRINT "**** B O O M ! ****"
+FOR J2 = 1000 TO 37 STEP -10
+SOUND J2, .01 * 18.2
+NEXT J2
+PRINT
+DELAYPERIOD% = 1: GOSUB DELAY: GOSUB DELAY: GOSUB DELAY 'PLAY "L1 N0": PLAY "L1 N0": PLAY "L1 N0"
+IF DVGONE = 1 THEN PRINT "TOO BAD. YOU HAVE BEEN SHOT DOWN.": GOTO 4880
+PRINT "YOU HAVE JUST BEEN PERSONALLY SHOT DOWN";
+PRINT "BY DARTH VADER. THE FORCE WAS NOT WITH";
+PRINT "YOU."
+4880 PRINT
+PRINT "********* YOU LOSE!! *********"
+GOTO 5310
+4910 IF DVGONE = 0 GOTO 5030
+FOR K = 1 TO 2
+LOCATE 24, 1: PRINT "**** IMPERIAL FIGHTER MISSED ****";
+DELAYPERIOD% = 2: GOSUB DELAY 'PLAY "L2 N0"
+LOCATE 24, 1: PRINT " ";
+DELAYPERIOD% = 16: GOSUB DELAY 'PLAY "L16 N0"
+NEXT K
+LOCATE 24, 1: PRINT "**** IMPERIAL FIGHTER MISSED ****";
+DELAYPERIOD% = 1: GOSUB DELAY: GOSUB DELAY 'PLAY "L1 N0": PLAY "L1 N0"
+LOCATE 24, 1: PRINT " ";
+DV(0) = DV1(0): DV(1) = DV1(1): DV(2) = DV1(2): DV(3) = DV1(3)
+GOTO 5140
+5030 FOR K = 1 TO 2
+LOCATE 24, 1: PRINT "**** DARTH VADER MISSED ****";
+DELAYPERIOD% = 2: GOSUB DELAY 'PLAY "L2 N0"
+LOCATE 24, 1: PRINT " ";
+DELAYPERIOD% = 16: GOSUB DELAY 'PLAY "L16 N0"
+NEXT K
+LOCATE 24, 1: PRINT "**** DARTH VADER MISSED ****";
+DELAYPERIOD% = 1: GOSUB DELAY: GOSUB DELAY 'PLAY "L1 N0": PLAY "L1 N0"
+LOCATE 24, 1: PRINT " ";
+DV(0) = DV1(0): DV(1) = DV1(1): DV(2) = DV1(2): DV(3) = DV1(3): DV(4) = DV1(4): DV(5) = DV1(5): DV(6) = DV1(6)
+REM * X - WING FIGHTER ROUTINE *
+5140 GOSUB 1180
+Z$ = INKEY$
+
+IF LEN(Z$) = 1 THEN
+IF ASC(Z$) > 48 AND ASC(Z$) <= 57 THEN Q = ASC(Z$) - 48
+IF Z$ = " " THEN GOSUB 5350
+IF Z$ = CHR$(13) THEN GOSUB 5750
+END IF
+IF LEN(Z$) = 2 THEN
+IF Z$ = CHR$(0) + "H" THEN GOSUB 1100 'UP
+IF Z$ = CHR$(0) + "K" THEN GOSUB 1120 'LEFT
+IF Z$ = CHR$(0) + "M" THEN GOSUB 1140 'RIGHT
+IF Z$ = CHR$(0) + "P" THEN GOSUB 1160 'DOWN
+END IF
+
+S = S + Q * 100
+IF S > O GOTO 6410
+REM * TIME ROUTINE *
+SEC2 = VAL(RIGHT$(TIME$, 2))
+SECNEW = SEC2
+IF SECNEW = SECOLD GOTO 5280
+IF SECNEW < SECOLD THEN N8 = N8 + 1
+SECOLD = SEC2
+A2NEW = A2 - (SEC2 + (60 * N8) - SEC1)
+IF A2NEW < 0 THEN A2NEW = A2NEW + 60: A1 = A1 - 1: A2 = A2 + 60
+IF A1 < 0 GOTO 6760
+5280 GOTO 2320
+REM * DISPLAY SKY FIGHTER *
+IF J - S < 10000 THEN A = 3
+5310 REM * NEW GAME *
+PRINT
+PRINT "HIT ENTER TO PLAY AGAIN, ESC TO GIVE UP"
+'5340 B$ = INKEY$: IF B$ = CHR$(13) THEN GOTO 1300 ELSE IF B$ = CHR$(27) THEN CLS : WIDTH 80: SCREEN 0: KEY ON: GOTO 9911 ELSE GOTO 5340
+5340 B$ = INKEY$: IF B$ = CHR$(13) THEN GOTO 1300 ELSE IF B$ = CHR$(27) THEN CLS : WIDTH 80: SCREEN 0: GOTO 9911 ELSE GOTO 5340
+5350 REM * FIRE CANNON *
+'KEY(2) STOP: KEY(11) STOP: KEY(12) STOP: KEY(13) STOP: KEY(14) STOP
+PUT (2, 2), LASAR
+FOR J2 = 5000 TO 100 STEP -250
+SOUND J2, .01 * 18.2
+NEXT J2
+PUT (2, 2), LASAR
+IF G - S < 26000 AND ABS(IMX - E) < IMR1 AND ABS(IMY - F) < IMR2 GOTO 5450
+IF J - S < 26000 AND ABS(DVX - H) < DVR1 AND ABS(DVY - i) < DVR2 GOTO 5580
+GOTO 5730
+5450 FOR I9 = 1 TO 2: PUT (E - 2, F - 3), EXPL3: DELAYPERIOD% = 64: GOSUB DELAY: PUT (E - 2, F - 3), EXPL3: NEXT I9
+FOR I9 = 1 TO 2: PUT (E - 2, F - 3), EXPL4: DELAYPERIOD% = 64: GOSUB DELAY: PUT (E - 2, F - 3), EXPL4: NEXT I9
+PUT (E, F), IM
+IF IMR2 = 1 GOTO 5540
+FOR I9 = 1 TO 2: PUT (E - 2, F - 3), EXPL5: DELAYPERIOD% = 64: GOSUB DELAY: PUT (E - 2, F - 3), EXPL5: NEXT I9
+FOR I9 = 1 TO 2: PUT (E - 2, F - 3), EXPL6: DELAYPERIOD% = 64: GOSUB DELAY: PUT (E - 2, F - 3), EXPL6: NEXT I9
+IF IMR2 = 2 GOTO 5540
+FOR I9 = 1 TO 2: PUT (E - 2, F - 3), EXPL7: DELAYPERIOD% = 64: GOSUB DELAY: PUT (E - 2, F - 3), EXPL7: NEXT I9
+FOR I9 = 1 TO 2: PUT (E - 2, F - 3), EXPL8: DELAYPERIOD% = 64: GOSUB DELAY: PUT (E - 2, F - 3), EXPL8: NEXT I9
+5540 G = G + 25000: E = INT(RND * 61) + 10: F = INT(RND * 21) + 10: FLAG3 = 0: IMNEW = 0: IMPFIGH2 = 0: IMPFIGH3 = 0
+IMX = 38: IMY = 21: IMR1 = 1: IMR2 = 1
+IM(0) = IM1(0): IM(1) = IM1(1): IM(2) = IM1(2): IM(3) = IM1(3): IM(4) = IM1(4): IM(5) = IM1(5): IM(6) = IM1(6)
+GOTO 5730
+5580 FOR I9 = 1 TO 2: PUT (H - 2, i - 3), EXPL3: DELAYPERIOD% = 64: GOSUB DELAY: PUT (H - 2, i - 3), EXPL3: NEXT I9
+FOR I9 = 1 TO 2: PUT (H - 2, i - 3), EXPL4: DELAYPERIOD% = 64: GOSUB DELAY: PUT (H - 2, i - 3), EXPL4: NEXT I9
+PUT (H, i), DV
+IF DVR2 = 1 GOTO 5670
+FOR I9 = 1 TO 2: PUT (H - 2, i - 3), EXPL5: DELAYPERIOD% = 64: GOSUB DELAY: PUT (H - 2, i - 3), EXPL5: NEXT I9
+FOR I9 = 1 TO 2: PUT (H - 2, i - 3), EXPL6: DELAYPERIOD% = 64: GOSUB DELAY: PUT (H - 2, i - 3), EXPL6: NEXT I9
+IF DVR2 = 2 GOTO 5670
+FOR I9 = 1 TO 2: PUT (H - 2, i - 3), EXPL7: DELAYPERIOD% = 64: GOSUB DELAY: PUT (H - 2, i - 3), EXPL7: NEXT I9
+FOR I9 = 1 TO 2: PUT (H - 2, i - 3), EXPL8: DELAYPERIOD% = 64: GOSUB DELAY: PUT (H - 2, i - 3), EXPL8: NEXT I9
+5670 J = J + 25000: H = INT(RND * 61) + 10: i = INT(RND * 21) + 10: FLAG4 = 0: LOCATE 19, 8: PRINT "KM TO IMPERIAL FIGHTER";
+DVNEW = 0: DVADER2 = 0: DVADER3 = 0
+DVX = 38: DVY = 21: DVR1 = 1: DVR2 = 1
+IF DVGONE = 0 THEN DV3(0) = IM3(0): DV3(1) = IM3(1): DV3(2) = IM3(2): DV3(3) = IM3(3): DV3(4) = IM3(4): DV3(5) = IM3(5): DV3(6) = IM3(6)
+DV(0) = DV1(0): DV(1) = DV1(1): DV(2) = DV1(2): DV(3) = DV1(3): DV(4) = DV1(4): DV(5) = DV1(5): DV(6) = DV1(6)
+DVGONE = 1
+5730 'KEY(2) ON: KEY(11) ON: KEY(12) ON: KEY(13) ON: KEY(14) ON
+RETURN
+5750 REM * FIRE TORPEDO *
+'KEY(1) STOP: KEY(11) STOP: KEY(12) STOP: KEY(13) STOP: KEY(14) STOP
+IF Z = 0 THEN 3600
+FOR J2 = 1500 TO 100 STEP -20
+SOUND J2, .01 * 18.2
+SOUND 3600 - J2, .01 * 18.2
+NEXT J2
+Z = Z - 1
+IF O - S > 10000 THEN 5990
+IF POINT(38, 21) <> 3 THEN 5880
+IF SKILL = 0 GOTO 6100
+K = INT(RND * 10)
+IF K > SKILL + 1 THEN 6100
+5880 FOR K = 1 TO 2
+LOCATE 24, 1: PRINT "**** TORPEDO MISSED ****";
+DELAYPERIOD% = 2: GOSUB DELAY 'PLAY "L2 N0"
+LOCATE 24, 1: PRINT " ";
+DELAYPERIOD% = 16: GOSUB DELAY 'PLAY "L16 N0"
+NEXT K
+LOCATE 24, 1: PRINT "**** TORPEDO MISSED ****";
+DELAYPERIOD% = 1: GOSUB DELAY: GOSUB DELAY 'PLAY "L1 N0": PLAY "L1 N0"
+LOCATE 24, 1: PRINT " ";
+IF Z <= 0 THEN 4780
+GOTO 6080
+5990 FOR K = 1 TO 2
+LOCATE 24, 1: PRINT "**** OUT OF RANGE ****";
+DELAYPERIOD% = 2: GOSUB DELAY 'PLAY "L2 N0"
+LOCATE 24, 1: PRINT " ";
+DELAYPERIOD% = 16: GOSUB DELAY 'PLAY "L16 N0"
+NEXT K
+LOCATE 24, 1: PRINT "**** OUT OF RANGE ****";
+DELAYPERIOD% = 1: GOSUB DELAY: GOSUB DELAY 'PLAY "L1 N0": PLAY "L1 N0"
+LOCATE 24, 1: PRINT " ";
+6080 'KEY(1) ON: KEY(11) ON: KEY(12) ON: KEY(13) ON: KEY(14) ON
+RETURN
+6100 REM * GAME WON *
+'KEY(1) OFF: KEY(2) OFF: KEY(11) OFF: KEY(12) OFF: KEY(13) OFF: KEY(14) OFF
+FOR SCALE = 1 TO 24
+'DRAW "C3;S=SCALE;BM38,21;NM+6,0;NM-6,0;NM+0,-3;NM+0,3;NM-6,3;NM+6,-3;NM-6,-3;NM+6,3;NM+3,-3;NM-3,3;NM+3,3;NM-3,-3;NM+6,2;NM-6,-2;NM-6,1;NM+6,-1;NM+1,3;NM-1,-3"
+D2S = SCALE
+DRAW2$ = "C3;BM38,21;NM+6,0;NM-6,0;NM+0,-3;NM+0,3;NM-6,3;NM+6,-3;NM-6,-3;NM+6,3;NM+3,-3;NM-3,3;NM+3,3;NM-3,-3;NM+6,2;NM-6,-2;NM-6,1;NM+6,-1;NM+1,3;NM-1,-3": GOSUB DRAW2
+D2S = 0
+NEXT SCALE
+CLS
+FOR K = 1 TO 5
+SOUND 37, .1 * 18.2
+SCREEN 0: WIDTH 40
+FOR A = 1 TO 10: NEXT A
+SCREEN 1: WIDTH 80
+NEXT K
+WIDTH 40
+CLS : PRINT : PRINT : PRINT
+PRINT "* * * * * * * * * * * * * * * * * * * *";
+PRINT "* *";
+PRINT "* *";
+PRINT "* THE FORCE IS WITH YOU !! *";
+PRINT "* *";
+PRINT "* YOU HAVE DESTROYED THE DEATH STAR ! *";
+PRINT "* *";
+PRINT "* YOU HAVE SAVED THE REPUBLIC ! *";
+PRINT "* *";
+PRINT "* PRINCESS LEAH WILL LOVE YOU ALWAYS! *";
+PRINT "* *";
+PRINT "* * * * * * * * * * * * * * * * * * * *"
+SOUND 525.25, 18.2: SOUND 783.99, 18.2 / 2: SOUND 698.46, 18.2 / 6: SOUND 659.26, 18.2 / 6: SOUND 587.33, 18.2 / 6: SOUND 1046.6, 18.2: SOUND 783.99, 18.2 / 2: SOUND 698.46, 18.2 / 6: SOUND 659.26, 18.2 / 6: SOUND 587.33, 18.2 / 6
+SOUND 1046.5, 18.2: SOUND 783.99, 18.2 / 2: SOUND 698.46, 18.2 / 6: SOUND 659.26, 18.2 / 6: SOUND 698.46, 18.2 / 6: SOUND 587.33, 18.2
+PRINT
+GOTO 5310
+REM * COLLISION WITH DEATH STAR *
+6410 'KEY(1) OFF: KEY(2) OFF: KEY(11) OFF: KEY(12) OFF: KEY(13) OFF: KEY(14) OFF
+6420 DELTAX = 35 - M: DELTAY = 18 - N
+IF DELTAX > 0 THEN M = M + 1
+IF DELTAX < 0 THEN M = M - 1
+IF DELTAY > 0 THEN N = N + 1
+IF DELTAY < 0 THEN N = N - 1
+IF DELTAX = 0 AND DELTAY = 0 GOTO 6530
+PUT (M, N), DS
+PUT (MP, NP), DS
+MP = M: NP = N
+DELAYPERIOD% = 32: GOSUB DELAY 'PLAY "P32"
+GOTO 6420
+6530 FOR RAD = 4 TO 20
+CIRCLE (38, 21), RAD, 3
+DELAYPERIOD% = 32: GOSUB DELAY 'PLAY "P32"
+NEXT RAD
+CLS : PRINT "CRASH"
+FOR J2 = 1000 TO 37 STEP -10
+SOUND J2, .01 * 18.2
+NEXT J2
+DELAYPERIOD% = 1: GOSUB DELAY: GOSUB DELAY: GOSUB DELAY 'PLAY "L1 N0": PLAY "L1 N0": PLAY "L1 N0"
+PRINT
+PRINT "DARTH VADER IS LAUGHING AT YOU."
+DELAYPERIOD% = 1: GOSUB DELAY: GOSUB DELAY: GOSUB DELAY 'PLAY "L1 N0": PLAY "L1 N0": PLAY "L1 N0"
+PRINT
+PRINT "YOU HAVE JUST COLLIDED WITH THE DEATH";
+PRINT "STAR. THEY DID NOT EVEN HEAR THE";
+PRINT "COLLISION. YOU DID NOT EVEN SCRATCH";
+PRINT "THE DEATH STAR'S PAINT, BUT YOU ARE ";
+PRINT "DEAD!"
+PRINT
+PRINT "********* YOU LOSE!! *********"
+PRINT
+GOTO 5310
+REM * OUT OF TIME *
+6760 'KEY(1) OFF: KEY(2) OFF: KEY(11) OFF: KEY(12) OFF: KEY(13) OFF: KEY(14) OFF
+CLS : PRINT "TOO LATE!"
+FOR J2 = 1000 TO 37 STEP -10
+SOUND J2, .01 * 18.2
+NEXT J2
+DELAYPERIOD% = 1: GOSUB DELAY: GOSUB DELAY: GOSUB DELAY 'PLAY "L1 N0": PLAY "L1 N0": PLAY "L1 N0"
+PRINT
+PRINT "DARTH VADER IS LAUGHING AT YOU."
+DELAYPERIOD% = 1: GOSUB DELAY: GOSUB DELAY: GOSUB DELAY 'PLAY "L1 N0": PLAY "L1 N0": PLAY "L1 N0"
+PRINT
+PRINT "THE DEATH STAR HAS JUST DESTROYED";
+PRINT "PRINCESS LEAH AND THE ENTIRE REBEL";
+PRINT "STRONGHOLD";
+PRINT
+PRINT "********* YOU LOSE!! *********"
+PRINT
+GOTO 5310
+6930 CLS
+PRINT " STAR PILOT INSTRUCTIONS"
+PRINT
+PRINT " THE DEATH STAR SPACE STATION, UNDER";
+PRINT "THE COMMAND OF DARTH VADER, IS THE MOST";
+PRINT "POWERFUL WEAPON THE UNIVERSE HAS EVER";
+PRINT "KNOWN. A FRONTAL ATTACK BY ANY OTHER";
+PRINT "CRAFT WOULD BE ABSOLUTE SUICIDE. HOWEVER";
+PRINT "INTELLIGENCE DELIVERED TO OUR REPUBLIC";
+PRINT "HEADQUARTERS BY THE ANDROIDS R2D2 AND";
+PRINT "C3PO GIVES A FAINT HOPE OF A SUCCESSFUL";
+PRINT "ATTACK BY A SMALL ONE OR TWO PASSENGER";
+PRINT "X-WING FIGHTER."
+PRINT
+PRINT " THERE IS A SMALL, UNSHIELDED EXHAUST";
+PRINT "PORT ON THE SURFACE OF THE DEATH STAR";
+PRINT "THAT LEADS DIRECTLY TO THE MAIN REACTOR.";
+PRINT "SINCE IT IS AN EMERGENCY THERMAL PORT IN";
+PRINT "CASE THE REACTOR OVERHEATS, IT COULD NOT";
+PRINT "BE SHIELDED."
+PRINT
+INPUT " (PRESS ENTER TO CONTINUE)", B$
+CLS
+PRINT
+PRINT " IF YOU CAN SLIP YOUR SMALL FIGHTER";
+PRINT "PAST THE DEATH STAR'S DEFENSES AND MAKE";
+PRINT "A DIRECT HIT ON THE THERMAL EXHAUST PORT";
+PRINT "WITH A TORPEDO, THERE IS A CHANCE THAT";
+PRINT "THE TORPEDO WILL PENETRATE TO THE";
+PRINT "MAIN REACTOR AND START A CHAIN REACTION,";
+PRINT "DESTROYING THE DEATH STAR."
+PRINT
+PRINT " IT IS A SLIM CHANCE, BUT IT IS THE";
+PRINT "ONLY HOPE THE REPUBLIC HAS. OBI-WAN";
+PRINT "KENOBI GAVE HIS LIFE TO GET THE MESSAGE";
+PRINT "HERE, SO HE CONSIDERED IT IMPORTANT."
+PRINT : PRINT : PRINT : PRINT
+PRINT "PRESS ENTER FOR X-WING FIGHTER ";
+INPUT " FAMILIARIZATION", B$
+CLS
+PRINT " REPUBLIC X-WING FIGHTER "
+PRINT
+PRINT " THE X-WING FIGHTER IS A SMALL ONE";
+PRINT "MAN SPACESHIP THAT IS, QUITE FRANKLY,";
+PRINT "OBSOLETE. IT IS ARMED ONLY WITH A LASER";
+PRINT "CANNON AND THREE TORPEDOES. USE THE";
+PRINT "LASER CANNON TO FIGHT OFF ANY IMPERIAL";
+PRINT "FIGHTERS AND SAVE THE TORPEDOES FOR THE";
+PRINT "DEATH STAR."
+PRINT
+PRINT " THE TARGET ACQUISITION RADAR CAN";
+PRINT "DETECT IN EXCESS OF 100,000 KILOMETERS";
+PRINT "AWAY, BUT CAN ONLY DISPLAY TARGETS WITH-";
+PRINT "IN 20,000 KM. THEREFORE, YOU WILL BE";
+PRINT "WARNED OF APPROACHING TARGETS ON YOUR";
+PRINT "CONTROL PANEL BEFORE THEY ARE DISPLAYED";
+PRINT "ON THE RADAR SCREEN."
+PRINT
+INPUT " (PRESS ENTER TO CONTINUE)", B$
+CLS
+PRINT
+PRINT " THE LASER CANNON IS AN ANTIQUATED";
+PRINT "WEAPON. TO HIT AN ENEMY, YOU MUST HAVE";
+PRINT "HIM IN THE EXACT CENTER OF THE CROSS";
+PRINT "HAIRS ON YOUR RADAR SCREEN. THEN YOU MAY";
+PRINT "FIRE THE LASER CANNON BY PRESSING THE";
+PRINT "SPACE BAR ON YOUR CONTROL PANEL."
+PRINT
+PRINT " YOUR THREE TORPEDOES ARE COMPUTER";
+PRINT "GUIDED, BUT ALSO QUITE LIMITED. MAKE";
+PRINT "SURE THAT YOU ARE WITHIN 10000 KM OF THE";
+PRINT "DEATH STAR AND THAT YOU HAVE SOME PART";
+PRINT "OF THE SPACE STATION IN THE CENTER OF";
+PRINT "THE CROSS HAIRS ON YOUR RADAR SCREEN.";
+PRINT "EVEN THEN, SINCE IT TAKES A PERFECT HIT";
+PRINT "ON THE EXHAUST PORT TO DESTROY THE DEATH";
+PRINT "STAR, YOU MAY REQUIRE MORE THAN ONE";
+PRINT "TORPEDO. PRESS THE ENTER KEY TO FIRE THE";
+PRINT "TORPEDO."
+PRINT
+INPUT " (PRESS ENTER TO CONTINUE)", B$
+CLS
+PRINT
+PRINT " THE SPEED OF YOUR SHIP IS CONTROLLED";
+PRINT "BY TYPING THE NUMBERS 1 THROUGH 9 (FOR";
+PRINT "MACH 10 THROUGH 90 RESPECTIVELY). THE";
+PRINT "MOVEMENT OF YOUR SHIP IS CONTROLLED BY";
+PRINT "THE CURSOR CONTROLS. SINCE THESE INPUTS";
+PRINT "MOVE YOUR SHIP AND NOT THE TARGETS, THE";
+PRINT "TARGETS APPEAR TO MOVE IN THE OPPOSITE";
+PRINT "DIRECTION. ALSO, YOU CAN EXPECT THE";
+PRINT "ENEMY TO TAKE EVASIVE ACTION."
+PRINT
+PRINT " WHEN SELECTING THE SKILL LEVEL, 0 IS";
+PRINT "THE EASIEST GAME AND 3 IS THE HARDEST.";
+PRINT "SKILL LEVEL 0 PROVIDES THE BEST CHANCE";
+PRINT "OF BEING MISSED BY THE FIGHTERS AND OF";
+PRINT "HITTING THE DEATH STAR. LEVEL 0 ALSO";
+PRINT "PROVIDES THE LARGEST TIME LIMIT BEFORE";
+PRINT "THE DEATH STAR DESTROYS THE REBEL BASE."
+PRINT
+PRINT
+INPUT "PRESS ENTER FOR TAKE-OFF", B$
+CLS
+PRINT "****************************************"
+PRINT
+PRINT " MAY THE FORCE BE WITH YOU"
+PRINT
+PRINT "****************************************"
+DELAYPERIOD% = 1: GOSUB DELAY: GOSUB DELAY 'PLAY "L1 N0": PLAY "L1 N0"
+GOTO 1300
+9911 CLS
+END
+
+'PAUSES FOR THE DURATION OF PLAY "P?" WHERE DELAYPERIOD%=?
+'EG. DELAYPERIOD%=1: GOSUB DELAY
+DELAY:
+TIMERTICKS% = 1 / DELAYPERIOD% * 18.2
+IF TIMERTICKS% = 0 THEN TIMERTICKS% = 1
+LASTTIMERVALUE! = TIMER
+FOR TIMERTICK% = 1 TO TIMERTICKS%
+DO: TIMERVALUE! = TIMER: LOOP WHILE TIMERVALUE! = LASTTIMERVALUE!
+LASTTIMERVALUE! = TIMERVALUE!
+NEXT
+RETURN
+
+'DRAW2 IS A WORKAROUND FOR THE DRAW STATEMENT USING STRING DRAW2$
+'*VERY LIMITED FUNCTIONALITY*
+DRAW2:
+IF D2S = 0 THEN D2S2! = 1 ELSE D2S2! = D2S / 4
+D2D$ = ""
+DO WHILE LEN(DRAW2$)
+D2$ = LEFT$(DRAW2$, 1): DRAW2$ = RIGHT$(DRAW2$, LEN(DRAW2$) - 1)
+IF D2$ = "C" THEN
+D2V = VAL(DRAW2$): D2L = LEN(LTRIM$(RTRIM$(STR$(D2V)))): DRAW2$ = RIGHT$(DRAW2$, LEN(DRAW2$) - D2L)
+D2COL = D2V
+D2D$ = D2D$ + "C" + STR$(D2COL)
+END IF
+IF D2$ = "B" THEN D2NODRAW = 1: D2D$ = D2D$ + "B"
+IF D2$ = "N" THEN D2NOMOVE = 1: D2D$ = D2D$ + "N"
+IF D2$ = "M" THEN
+D2D$ = D2D$ + "M"
+D2$ = LEFT$(DRAW2$, 1)
+IF D2$ = "+" OR D2$ = "-" THEN
+D2RELATIVE = 1
+IF D2$ = "+" THEN DRAW2$ = RIGHT$(DRAW2$, LEN(DRAW2$) - 1): D2D$ = D2D$ + "+"
+END IF
+D2V = VAL(DRAW2$): D2L = LEN(LTRIM$(RTRIM$(STR$(D2V)))): DRAW2$ = RIGHT$(DRAW2$, LEN(DRAW2$) - D2L)
+D2X = D2V
+D2D$ = D2D$ + STR$(D2X) + ","
+DRAW2$ = RIGHT$(DRAW2$, LEN(DRAW2$) - 1) 'SKIP COMMA
+D2V = VAL(DRAW2$): D2L = LEN(LTRIM$(RTRIM$(STR$(D2V)))): DRAW2$ = RIGHT$(DRAW2$, LEN(DRAW2$) - D2L)
+D2Y = D2V
+D2D$ = D2D$ + STR$(D2Y)
+'ASSUME NODRAW AND NOMOVE ARE USED EXCLUSIVELY
+IF D2NOMOVE = 0 AND D2NODRAW = 0 THEN
+IF D2RELATIVE THEN LINE -STEP(D2X * D2S2!, D2Y * D2S2!), D2COL ELSE LINE -(D2X, D2Y), D2COL
+END IF
+IF D2NODRAW THEN
+IF D2RELATIVE THEN PSET STEP(D2X * D2S2!, D2Y * D2S2!), D2COL ELSE PSET (D2X, D2Y), D2COL
+END IF
+IF D2NOMOVE THEN
+'ASSUME RELATIVE
+LINE -STEP(D2X * D2S2!, D2Y * D2S2!), D2COL: LINE -STEP(-D2X * D2S2!, -D2Y * D2S2!), D2COL
+END IF
+D2RELATIVE = 0: D2NODRAW = 0: D2NOMOVE = 0
+END IF
+LOOP
+RETURN
+
diff --git a/samples/xe-hex-editor/index.md b/samples/xe-hex-editor/index.md
index b0a131be..085d3486 100644
--- a/samples/xe-hex-editor/index.md
+++ b/samples/xe-hex-editor/index.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [Inform](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
## SAMPLE: XE HEX EDITOR
diff --git a/samples/yu.md b/samples/yu.md
index f362751c..beee5a09 100644
--- a/samples/yu.md
+++ b/samples/yu.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY YU
diff --git a/samples/zack-johnson.md b/samples/zack-johnson.md
index 73fb6c72..17484fc9 100644
--- a/samples/zack-johnson.md
+++ b/samples/zack-johnson.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY ZACK JOHNSON
diff --git a/samples/zen.md b/samples/zen.md
index 862101ae..7b77ee55 100644
--- a/samples/zen.md
+++ b/samples/zen.md
@@ -1,7 +1,13 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES: ZEN
+**[Fall Foliage](fall-foliage/index.md)**
+
+[🐝 bplus](bplus.md) 🔗 [zen](zen.md)
+
+Where were we? Oh Ashish was doing fractals and his last was a marvelous 3D Tree but I thought it...
+
**[Parabolas](parabolas/index.md)**
[🐝 STxAxTIC](stxaxtic.md) 🔗 [zen](zen.md)
diff --git a/samples/zodiac/img/screenshot.png b/samples/zodiac/img/screenshot.png
new file mode 100644
index 00000000..7b5f2910
Binary files /dev/null and b/samples/zodiac/img/screenshot.png differ
diff --git a/samples/zodiac/index.md b/samples/zodiac/index.md
new file mode 100644
index 00000000..33ab5dac
--- /dev/null
+++ b/samples/zodiac/index.md
@@ -0,0 +1,36 @@
+[Home](https://qb64.com) • [News](../../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../../samples.md) • [InForm](../../inform.md) • [GX](../../gx.md) • [QBjs](../../qbjs.md) • [Community](../../community.md) • [More...](../../more.md)
+
+## SAMPLE: ZODIAC
+
+![screenshot.png](img/screenshot.png)
+
+### Author
+
+[🐝 Paulunknown](../paulunknown.md)
+
+### Description
+
+```text
+PRINT "Game created by Paulunknown"
+PRINT "Thanks for playing. Please give me some comments on this."
+PRINT " "
+PRINT "Also, I wish I could get some graphics in this game but I barely know"
+PRINT "the basics of creating pictures. I really need some help on that."
+PRINT " "
+PRINT "Feel free to tell a friend about this or send it to them. This is "
+PRINT "probably my first game."
+```
+
+### QBjs
+
+> Please note that QBjs is still in early development and support for these examples is extremely experimental (meaning will most likely not work). With that out of the way, give it a try!
+
+* [LOAD "zodiac4.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?src=https://qb64.com/samples/zodiac/src/zodiac4.bas)
+* [RUN "zodiac4.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?mode=auto&src=https://qb64.com/samples/zodiac/src/zodiac4.bas)
+* [PLAY "zodiac4.bas"](https://v6p9d9t4.ssl.hwcdn.net/html/5963335/index.html?mode=play&src=https://qb64.com/samples/zodiac/src/zodiac4.bas)
+
+### File(s)
+
+* [zodiac4.bas](src/zodiac4.bas)
+
+🔗 [game](../game.md), [legacy](../legacy.md)
diff --git a/samples/zodiac/src/zodiac4.bas b/samples/zodiac/src/zodiac4.bas
new file mode 100644
index 00000000..21fdd53b
--- /dev/null
+++ b/samples/zodiac/src/zodiac4.bas
@@ -0,0 +1,1314 @@
+SCREEN 7
+WIDTH 80
+CLS
+not$ = "Not enough magic"
+title:
+DO
+CLS
+RANDOMIZE TIMER
+LOCATE 20, 20
+PRINT "Zodiac Battles"
+PRINT "Press 'i' for instructions"
+PRINT "Press 's' to start game"
+PRINT "Press 'z' to view animal data"
+PRINT "Press 'w' to view weapon info"
+PRINT "Press 'x' to quit now(you cannot quit during a game)"
+DO
+key$ = INKEY$
+LOOP UNTIL key$ = "i" OR key$ = "s" OR key$ = "z" OR key$ = "w" OR key$ = "x"
+SELECT CASE key$
+ CASE IS = "s"
+ GOSUB options
+ CASE IS = "i"
+ GOSUB instructions
+ CASE IS = "z"
+ GOSUB animaldata
+ CASE IS = "w"
+ GOSUB weapond
+ CASE IS = "x"
+ GOSUB endsection
+END SELECT
+
+options:
+DO
+CLS
+DIM r$(13)
+RESTORE rDATA
+FOR count = 1 TO 13
+READ r$(count)
+NEXT count
+DIM weapon$(7)
+RESTORE weaponDATA
+FOR count = 1 TO 7
+READ weapon$(count)
+NEXT count
+DO
+INPUT "Weapons ON/OFF(y/n):", weaponanswer$
+LOOP UNTIL weaponanswer$ = "y" OR weaponanswer$ = "n"
+CLS
+INPUT "Enter code:", rnumber
+IF rnumber < 13 THEN
+rname$ = LEFT$(r$(rnumber), 4)
+END IF
+LOOP WHILE rnumber > 12
+IF rnumber <= 0 THEN
+rnumber = INT(RND * 13 + 1)
+rname$ = LEFT$(r$(rnumber), 4)
+END IF
+LOCATE 10, 1
+PRINT rname$
+LOCATE 1, 1
+PRINT SPACE$(79)
+DO
+LOCATE 1, 10
+INPUT "Enter code:", rnumber2
+IF rnumber2 < 13 THEN
+rname2$ = LEFT$(r$(rnumber2), 4)
+END IF
+LOOP WHILE rnumber2 > 12
+IF rnumber2 <= 0 THEN
+rnumber2 = INT(RND * 13 + 1)
+rname2$ = LEFT$(r$(rnumber2), 4)
+END IF
+LOCATE 10, 10
+PRINT rname2$
+LOCATE 1, 1
+PRINT SPACE$(79)
+LOCATE 10, 6.5
+PRINT "vs."
+SLEEP
+CLS
+DO
+INPUT "P1 Enter weapon number:", weaponnumber
+LOOP UNTIL weaponnumber >= 1 AND weaponnumber <= 7
+DO
+INPUT "P2 Enter weapon number:", weaponnumber2
+LOOP UNTIL weaponnumber2 >= 1 AND weaponnumber2 <= 7
+CLS
+LOCATE 10, 1
+PRINT SPACE$(79)
+LOCATE 5, 5
+PRINT rname$
+LOCATE 5, 20
+PRINT rname2$
+IF weaponanswer$ = "y" THEN
+weaponname$ = LEFT$(weapon$(weaponnumber), 5)
+weaponlife = VAL(MID$(weapon$(weaponnumber), 7, 2))
+weaponmagic = VAL(MID$(weapon$(weaponnumber), 10, 2))
+weaponattack1 = VAL(MID$(weapon$(weaponnumber), 13, 2))
+weapondefense = VAL(MID$(weapon$(weaponnumber), 16, 2))
+weaponmagdef = VAL(MID$(weapon$(weaponnumber), 19, 2))
+weaponname2$ = LEFT$(weapon$(weaponnumber2), 5)
+weaponlife2 = VAL(MID$(weapon$(weaponnumber2), 7, 2))
+weaponmagic2 = VAL(MID$(weapon$(weaponnumber2), 10, 2))
+weaponattack2 = VAL(MID$(weapon$(weaponnumber2), 13, 2))
+weapondefense2 = VAL(MID$(weapon$(weaponnumber2), 16, 2))
+weaponmagdef2 = VAL(MID$(weapon$(weaponnumber2), 19, 2))
+ELSE
+weaponname$ = "None"
+weaponlife = 0
+weaponmagic = 0
+weaponattack1 = 0
+weapondefense = 0
+weaponmagdef = 0
+weaponname2$ = "None"
+weaponlife2 = 0
+weaponmagic2 = 0
+weaponattack2 = 0
+weapondefense2 = 0
+weaponmagdef2 = 0
+END IF
+
+LOCATE 1, 1
+PRINT "Player 1 use q/w/e/r.............Player 2 use u/i/o/p"
+
+
+LOCATE 6, 5
+PRINT "Weapon:", weaponname$
+LOCATE 6, 20
+PRINT "Weapon:", weaponname2$
+
+rhp1 = VAL(MID$(r$(rnumber), 5, 3)) + weaponlife
+rhp2 = VAL(MID$(r$(rnumber2), 5, 3)) + weaponlife2
+magic1 = VAL(MID$(r$(rnumber), 9, 2)) + weaponmagic
+magic2 = VAL(MID$(r$(rnumber2), 9, 2)) + weaponmagic2
+hattack1 = VAL(MID$(r$(rnumber), 12, 2)) + weaponattack1
+hattack2 = VAL(MID$(r$(rnumber2), 12, 2)) + weaponattack2
+lattack1 = VAL(MID$(r$(rnumber), 15, 2))
+lattack2 = VAL(MID$(r$(rnumber2), 15, 2))
+phydef1 = VAL(MID$(r$(rnumber), 18, 1)) + weapondefense
+phydef2 = VAL(MID$(r$(rnumber2), 18, 1)) + weapondefense2
+magdef1 = VAL(MID$(r$(rnumber), 20, 1)) + weaponmagdef
+magdef2 = VAL(MID$(r$(rnumber2), 20, 1)) + weaponmagdef2
+
+IF rname$ = "hors" AND weaponname$ = "bow " THEN
+lattack1 = lattack1 + 1
+END IF
+IF rname2$ = "hors" AND weaponname2$ = "bow " THEN
+lattack2 = lattack2 + 1
+END IF
+
+
+PLAY "f8 f8 f8 e2"
+SELECT CASE rname$
+ CASE IS = "ram "
+ attack20$ = "/Highrage /Rest /Normal attack"
+ CASE IS = "drag"
+ attack20$ = "/Rage /DragonCall /Fireball"
+ CASE IS = "hors"
+ attack20$ = "/Heal /Restore /Race"
+ CASE IS = "rat "
+ attack20$ = "/Supercharge /Rattack1 /Rattack2"
+ CASE IS = "ox "
+ attack20$ = "/Charge /Restore /Highrage"
+ CASE IS = "snak"
+ attack20$ = "/Venombite /WeakeningPoison /Poison"
+ CASE IS = "mnky"
+ attack20$ = "/Defend /Defensetrick /Dodge"
+ CASE IS = "dog "
+ attack20$ = "/Defend /Bark /Followup"
+ CASE IS = "tigr"
+ attack20$ = "/Rage /Highrage /Catrest"
+ CASE IS = "boar"
+ attack20$ = "/Rage /Eat /FatSlam"
+ CASE IS = "roos"
+ attack20$ = "/Call /HyperRoos /Sunrise"
+ CASE IS = "hare"
+ attack20$ = "/LS1 /LS2 /LS3"
+ CASE IS = "ZodM"
+ attack20$ = "/Zodiac's Power /Skip Turn /Skip Turn"
+
+END SELECT
+SELECT CASE rname2$
+ CASE IS = "ram "
+ attack21$ = "/Highrage /Rest /Normal attack"
+ CASE IS = "drag"
+ attack21$ = "/Rage /DragonCall /Fireball"
+ CASE IS = "hors"
+ attack21$ = "/Heal /Restore /Race"
+ CASE IS = "rat "
+ attack21$ = "/Supercharge /Rattack1 /Rattack2"
+ CASE IS = "ox "
+ attack21$ = "/Charge /Restore /Highrage"
+ CASE IS = "snak"
+ attack21$ = "/Venombite /WeakeningPoison /Poison"
+ CASE IS = "mnky"
+ attack21$ = "/Defend /Defensetrick /Dodge"
+ CASE IS = "dog "
+ attack21$ = "/Defend /Bark /Followup"
+ CASE IS = "tigr"
+ attack21$ = "/Rage /Highrage /Catrest"
+ CASE IS = "boar"
+ attack21$ = "/Rage /Eat /FatSlam"
+ CASE IS = "roos"
+ attack21$ = "/Call /HyperRoos /Sunrise"
+ CASE IS = "hare"
+ attack21$ = "/LS1 /LS2 /LS3"
+ CASE IS = "ZodM"
+ attack21$ = "/Zodiac's Power /SkipTurn /SkipTurn"
+ END SELECT
+
+DO UNTIL rhp1 < 1 OR rhp2 < 1
+
+LOCATE 20, 5
+PRINT "PLAYER 1:normal attack", attack20$
+DO
+key$ = INKEY$
+LOOP UNTIL key$ = "q" OR key$ = "w" OR key$ = "e" OR key$ = "r"
+LOCATE 17, 1
+PRINT SPACE$(120)
+
+SELECT CASE key$
+ CASE IS = "q"
+ rhp2 = rhp2 - INT(RND * hattack1 + lattack1 - phydef2)
+ LOCATE 17, 1
+ PRINT "Normal attack"
+ CASE IS = "w"
+ SELECT CASE rname$
+ CASE IS = "ram "
+ hattack1 = hattack1 + 2
+ LOCATE 17, 1
+ PRINT "Max attack + 2"
+ CASE IS = "drag"
+ IF magic1 < 4 THEN
+ rhp2 = rhp2 - 1
+ LOCATE 17, 1
+ PRINT "Not enough magic"
+ ELSE
+ hattack1 = hattack1 + 1
+ rhp1 = rhp1 - 3
+ magic1 = magic1 - 4
+ LOCATE 17, 1
+ PRINT "Max atttack + 1"
+
+ IF weaponname$ = "wand " THEN
+ rhp1 = rhp1 + 4
+ END IF
+
+ END IF
+ CASE IS = "hors"
+ IF magic1 < 5 THEN
+ rhp2 = rhp2 - 1
+ LOCATE 17, 1
+ PRINT "Not enough magic"
+ ELSE
+ rhp1 = rhp1 + 7
+ magic1 = magic1 - 5
+ IF weaponname$ = "cape " THEN
+ rhp1 = rhp1 + 3
+ END IF
+ LOCATE 17, 1
+ PRINT "Recover 7"
+ END IF
+ CASE IS = "rat "
+ IF magic1 < 50 THEN
+ rhp2 = rhp2 - 1
+ LOCATE 17, 1
+ PRINT "Not enough magic"
+ ELSE
+ LOCATE 17, 1
+ PRINT "Super charge: max attack + 3 and min. attack + 1"
+ hattack1 = hattack1 + 3
+ lattack1 = lattack1 + 1
+ magic1 = magic1 - 50
+ END IF
+ CASE IS = "ox "
+ IF magic1 < 5 THEN
+ rhp2 = rhp2 - 1
+ LOCATE 17, 1
+ PRINT "Not enough magic"
+ ELSE
+ LOCATE 17, 1
+ PRINT "Min. attack + 1"
+ magic1 = magic1 - 5
+ lattack1 = lattack1 + 1
+ IF weaponname$ = "shiel" THEN
+ magic1 = magic1 + 5
+ END IF
+ END IF
+ CASE IS = "snak"
+ IF magic1 < 20 THEN
+ rhp2 = rhp2 - 1
+ LOCATE 17, 1
+ PRINT "Not enough magic"
+ ELSE
+ LOCATE 17, 1
+ PRINT "Venom bite. -1 max and min. attack to itself"
+ magic1 = magic1 - 20
+ lattack1 = lattack1 - 1
+ hattack1 = hattack1 - 1
+ rhp2 = rhp2 - 15 + magdef2
+ IF weaponname$ = "cape " THEN
+ hattack1 = hattack1 + 1
+ END IF
+ END IF
+ CASE IS = "mnky"
+ IF magic1 < 5 THEN
+ rhp2 = rhp2 - 1
+ LOCATE 17, 1
+ PRINT "Not enough magic"
+ ELSE
+ magic1 = magic1 - 5
+ phydef1 = phydef1 + 1
+ rhp1 = rhp1 + 7 - magdef2
+ LOCATE 17, 1
+ PRINT "Defense +1; Recovers 7 - ", magdef2
+ IF weaponname$ = "glove" THEN
+ rhp1 = rhp1 + magdef2
+ END IF
+
+ END IF
+ CASE IS = "dog "
+ phydef1 = phydef1 + 2
+ LOCATE 17, 1
+ PRINT "Defense +2"
+ CASE IS = "tigr"
+ IF magic1 < 5 THEN
+ rhp2 = rhp2 - 1
+ LOCATE 17, 1
+ PRINT "Not enough magic"
+ ELSE
+ magic1 = magic1 - 5
+ hattack1 = hattack1 + 1
+ LOCATE 17, 1
+ PRINT "Max attack + 1"
+ END IF
+ CASE IS = "boar"
+ IF magic1 < 2 THEN
+ rhp2 = rhp2 - 1
+ LOCATE 17, 1
+ PRINT "Not enough magic"
+ ELSE
+ magic1 = magic1 - 2
+ hattack1 = hattack1 + 1
+ LOCATE 17, 1
+ PRINT "Max attack + 1"
+ END IF
+ CASE IS = "roos"
+ IF magic1 < 2 THEN
+ rhp2 = rhp2 - 1
+ LOCATE 17, 1
+ PRINT "Not enough magic"
+ ELSE
+ magic1 = magic1 - 2
+ hattack1 = hattack1 + 1
+ phydef1 = phydef1 + 1
+ LOCATE 17, 1
+ PRINT "Max attack + 1; Defense +1"
+ END IF
+ CASE IS = "hare"
+ IF magic1 < 7 THEN
+ rhp2 = rhp2 - 1
+ LOCATE 17, 1
+ PRINT "Not enough magic"
+ ELSE
+ magic1 = magic1 - 7
+ rhp2 = rhp2 - 7 + magdef2
+ LOCATE 17, 1
+ END IF
+ PRINT "Lucky Strike"
+ CASE IS = "ZodM"
+ IF magic1 < 10 THEN
+ rhp2 = rhp2 - 1
+ LOCATE 17, 1
+ PRINT "Not enough magic"
+ ELSE
+ magic1 = magic1 - 10
+ e = INT(RND * 4 + 1)
+ SELECT CASE e
+ CASE IS = 1
+ rhp2 = rhp2 - 17 + magdef1
+ LOCATE 17, 1
+ PRINT "Thunder strikes enemy"
+ CASE IS = 2
+ IF magdef2 > hattack1 THEN
+ LOCATE 17, 1
+ PRINT "Opponent's magic defense is too high. Need higher max attack."
+ ELSE
+ magic1 = magic1 - 10
+ rhp2 = rhp2 - hattack1 + magdef2
+ phydef1 = phydef1 + 1
+ phydef2 = phydef2 - 1
+ rhp1 = rhp1 + (hattack1 - magdef2) * 2
+ LOCATE 17, 1
+ PRINT "Stole defense. Stole hp."
+ END IF
+ CASE IS = 3
+ rhp1 = rhp1 + 12
+ LOCATE 17, 1
+ PRINT "Recover 12"
+ CASE IS = 4
+ phydef1 = phydef1 + 2
+ PRINT "Defense +2"
+ END SELECT
+ END IF
+ END SELECT
+
+
+ CASE IS = "e"
+ SELECT CASE rname$
+ CASE IS = "ram "
+ hattack1 = hattack1 - 1
+ rhp1 = rhp1 + 10
+ LOCATE 17, 1
+ PRINT "Recover 10 hp but -1 max attack"
+ CASE IS = "drag"
+ IF magic1 < 5 THEN
+ rhp2 = rhp2 - 1
+ LOCATE 17, 1
+ PRINT not$
+ ELSE
+ rhp1 = rhp1 - 10
+ magic1 = magic1 - 8
+ rain = INT(RND * 3)
+ SELECT CASE rain
+ CASE IS = 0
+ rhp2 = rhp2 + 10 + magdef2
+ LOCATE 17, 1
+ PRINT "Rain heals opponent"
+ CASE IS = 1
+ rhp1 = rhp1 + 25 - magdef2
+ LOCATE 17, 1
+ PRINT "Dragon recovers life"
+ CASE IS = 2
+ rhp2 = rhp2 - 17 + magdef2
+ LOCATE 17, 1
+ PRINT "Thunder strikes opponent"
+ END SELECT
+ END IF
+ CASE IS = "hors"
+ IF magic1 = 0 THEN
+ magic1 = magic1 + 10
+ ELSE magic1 = magic1 + 1
+ END IF
+ LOCATE 17, 1
+ PRINT "Magic restore"
+ CASE IS = "rat "
+ IF magic1 < 10 THEN
+ rhp2 = rhp2 - 1
+ LOCATE 17, 1
+ PRINT not$
+ ELSE
+ IF magdef2 > hattack1 THEN
+ LOCATE 17, 1
+ PRINT "Opponent's magic defense is too high. Need higher max attack."
+ ELSE
+ magic1 = magic1 - 10
+ rhp2 = rhp2 - hattack1 + magdef2
+ phydef1 = phydef1 + 1
+ phydef2 = phydef2 - 1
+ rhp1 = rhp1 + (hattack1 - magdef2) * 2
+ LOCATE 17, 1
+ PRINT "Rat attack 1: Stole defense. Stole hp."
+ END IF
+ END IF
+ CASE IS = "ox "
+ IF magic1 = 0 THEN
+ magic1 = magic1 + 5
+ LOCATE 17, 1
+ PRINT "Magic restore"
+ ELSE
+ LOCATE 17, 1
+ PRINT "Magic restore best works when magic is 0"
+ END IF
+ CASE IS = "snak"
+ IF magic1 < 6 THEN
+ LOCATE 17, 1
+ PRINT not$
+ ELSE
+ magic2 = magic2 - 10
+ rhp2 = rhp2 - 1
+ magic1 = magic1 - 6
+ LOCATE 17, 1
+ PRINT "Weakening poison"
+ END IF
+ CASE IS = "mnky"
+ IF magic1 < 5 THEN
+ LOCATE 17, 1
+ PRINT not$
+ ELSE
+ magic1 = magic1 - 5
+ rhp2 = rhp2 - phydef2 - phydef1
+ LOCATE 17, 1
+ PRINT "Defense trick"
+ END IF
+ CASE IS = "dog "
+ phydef2 = phydef2 - 2
+ LOCATE 17, 1
+ PRINT "Bark: Opponent's defense drop by 2"
+ CASE IS = "tigr"
+ IF magic1 < 15 THEN
+ LOCATE 17, 1
+ PRINT not$
+ ELSE
+ magic1 = magic1 - 15
+ hattack1 = hattack1 + 2
+ LOCATE 17, 1
+ PRINT "High rage: max attack + 2"
+ END IF
+ CASE IS = "boar"
+ LOCATE 17, 1
+ PRINT "EAT"
+ rhp1 = rhp1 + 5
+ magic1 = magic1 + 5
+ CASE IS = "roos"
+ IF magic1 < 20 THEN
+ LOCATE 17, 1
+ PRINT not$
+ ELSE
+ hattack1 = hattack1 * 2
+ LOCATE 17, 1
+ PRINT "Hyper Rooster: max attack * 2"
+ magic1 = magic1 - 20
+ END IF
+ CASE IS = "hare"
+ IF magic1 < 7 THEN
+ LOCATE 17, 1
+ PRINT not$
+ ELSE
+ IF magdef2 < 4 THEN
+ LOCATE 17, 1
+ PRINT "Lucky Strike2"
+ magic1 = magic1 - 7
+ rhp2 = rhp2 - 3 + magdef2
+ SLEEP 1
+ rhp2 = rhp2 - 3 + magdef2
+ SLEEP 1
+ rhp2 = rhp2 - 3 + magdef2
+ ELSE
+ LOCATE 17, 1
+ PRINT "Opponent's magic defense is too high"
+ END IF
+ END IF
+ END SELECT
+ CASE IS = "r"
+ SELECT CASE rname$
+ CASE IS = "ram "
+ LOCATE 17, 1
+ PRINT "Normal attack"
+ rhp2 = rhp2 - INT(RND * hattack1 + lattack1 - phydef2)
+ CASE IS = "drag"
+ LOCATE 17, 1
+ PRINT "Fireball"
+ rhp2 = rhp2 - 9 + magdef2
+ rhp1 = rhp1 - 5
+ CASE IS = "hors"
+ IF magic1 < 10 THEN
+ LOCATE 17, 1
+ PRINT not$
+ ELSE
+ LOCATE 17, 1
+ PRINT "Race"
+ magic1 = magic1 - 10
+ rhp2 = rhp2 - 13 + magdef2
+ END IF
+ CASE IS = "rat "
+ IF magic2 < 10 THEN
+ LOCATE 17, 1
+ PRINT "Opponent have too little magic."
+ ELSE
+ rhp1 = rhp1 - 10
+ magic2 = magic2 - 10 + magdef2
+ magic1 = magic1 + 10 - magdef2
+ magdef2 = magdef2 - 1
+ LOCATE 17, 1
+ PRINT "Stole magic; Lower opponent's magic defense"
+ END IF
+ CASE IS = "ox "
+ IF magic1 < 5 THEN
+ LOCATE 17, 1
+ PRINT not$
+ ELSE
+ magic1 = magic1 - 5
+ hattack1 = hattack1 + 2
+ LOCATE 17, 1
+ PRINT "Max attack +2"
+ END IF
+ CASE IS = "snak"
+ IF magic1 < 4 THEN
+ LOCATE 17, 1
+ PRINT not$
+ ELSE
+ magic1 = magic1 - 4
+ poison = INT(RND * 2 + 1)
+ IF poison = 1 THEN
+ phydef2 = phydef2 - 1
+ LOCATE 17, 1
+ PRINT "Poison: Opponent's defense -1"
+ ELSE
+ magdef2 = magdef2 - 1
+ LOCATE 17, 1
+ PRINT "Poison: Opponent's magic defense -1"
+ END IF
+ END IF
+ CASE IS = "mnky"
+ IF magic1 < 5 THEN
+ LOCATE 17, 1
+ PRINT not$
+ ELSE
+ magic1 = magic1 - 5
+ LOCATE 17, 1
+ PRINT "Dodge: Defense +1; Magic defense +1; Max attack -1"
+ phydef1 = phydef1 + 1
+ magdef1 = magdef1 + 1
+ hattack1 = hattack1 - 1
+ END IF
+ CASE IS = "dog "
+ LOCATE 17, 1
+ PRINT "Follower: Copy opponent's normal attack"
+ rhp2 = rhp2 - INT(RND * hattack2 + lattack2 - phydef2)
+ CASE IS = "tigr"
+ hattack1 = hattack1 - 1
+ magic1 = magic1 + 8
+ LOCATE 17, 1
+ PRINT "Cat rest: -1 max attack to itself"
+ CASE IS = "boar"
+ IF magic1 < 2 THEN
+ LOCATE 17, 1
+ PRINT not$
+ ELSE
+ LOCATE 17, 1
+ PRINT "Fat Slam: magic cut in half and damage = half of magic"
+ rhp2 = rhp2 - INT(magic1 / 2) + magdef2
+ magic1 = INT(magic1 / 2)
+ END IF
+ CASE IS = "roos"
+ IF magic1 < 5 THEN
+ LOCATE 17, 1
+ PRINT not$
+ ELSE
+ IF rhp1 > 10 THEN
+ LOCATE 17, 1
+ PRINT "Not sunrise time yet"
+ ELSE
+ LOCATE 17, 1
+ PRINT "Sunrise"
+ magic1 = magic1 - 5
+ rhp1 = rhp1 - rhp1 + 25
+ END IF
+ END IF
+ CASE IS = "hare"
+ luck = INT(RND * 8 + 5)
+ IF luck > magic1 THEN
+ LOCATE 17, 1
+ PRINT not$
+ ELSE
+ magic1 = magic1 - luck
+ rhp2 = rhp2 - luck + magdef2
+ END IF
+
+ END SELECT
+END SELECT
+
+
+ LOCATE 10, 1
+ PRINT SPACE$(120)
+ LOCATE 10, 20
+ PRINT "Hp", rhp2
+ LOCATE 10, 5
+ PRINT "Hp", rhp1
+ LOCATE 15, 5
+ PRINT "Magic", magic1
+ LOCATE 15, 20
+ PRINT "Magic", magic2
+ IF rhp1 <= 0 OR rhp2 <= 0 THEN EXIT DO
+
+
+LOCATE 20, 5
+PRINT "PLAYER 2:normal attack", attack21$
+DO
+key2$ = INKEY$
+LOOP UNTIL key2$ = "u" OR key2$ = "i" OR key2$ = "o" OR key2$ = "p"
+LOCATE 17, 1
+PRINT SPACE$(99)
+
+SELECT CASE key2$
+ CASE IS = "u"
+ rhp1 = rhp1 - INT(RND * hattack2 + lattack2 - phydef1)
+ LOCATE 17, 1
+ PRINT "Normal attack"
+ CASE IS = "i"
+ SELECT CASE rname2$
+ CASE IS = "ram "
+ hattack2 = hattack2 + 2
+ LOCATE 17, 1
+ PRINT "Max attack + 2"
+ CASE IS = "drag"
+ IF magic2 < 4 THEN
+ rhp1 = rhp1 - 1
+ LOCATE 17, 1
+ PRINT "Not enough magic"
+ ELSE
+ hattack2 = hattack2 + 1
+ rhp2 = rhp2 - 3
+ magic2 = magic2 - 4
+ LOCATE 17, 1
+ PRINT "Max atttack + 1"
+ IF weaponname2$ = "wand " THEN
+ rhp2 = rhp2 + 4
+ END IF
+ END IF
+ CASE IS = "hors"
+ IF magic2 < 5 THEN
+ rhp1 = rhp1 - 1
+ LOCATE 17, 1
+ PRINT "Not enough magic"
+ ELSE
+ rhp2 = rhp2 + 7
+ magic2 = magic2 - 5
+ IF weaponname2$ = "cape " THEN
+ rhp1 = rhp1 + 3
+ END IF
+
+ LOCATE 17, 1
+ PRINT "Recover 7"
+ END IF
+ CASE IS = "rat "
+ IF magic2 < 50 THEN
+ rhp1 = rhp1 - 1
+ LOCATE 17, 1
+ PRINT "Not enough magic"
+ ELSE
+ LOCATE 17, 1
+ PRINT "Super charge: max attack + 3 and min. attack + 1"
+ hattack2 = hattack2 + 3
+ lattack2 = lattack2 + 1
+ magic2 = magic2 - 50
+ END IF
+ CASE IS = "ox "
+ IF magic2 < 5 THEN
+ rhp1 = rhp1 - 1
+ LOCATE 17, 1
+ PRINT "Not enough magic"
+ ELSE
+ LOCATE 17, 1
+ PRINT "Min. attack + 1"
+ magic2 = magic2 - 5
+ lattack2 = lattack2 + 1
+ IF weaponname$ = "shiel" THEN
+ magic1 = magic1 + 5
+ END IF
+
+ END IF
+ CASE IS = "snak"
+ IF magic2 < 20 THEN
+ rhp1 = rhp1 - 1
+ LOCATE 17, 1
+ PRINT "Not enough magic"
+ ELSE
+ LOCATE 17, 1
+ PRINT "Venom bite. -1 max and min. attack to itself"
+ magic2 = magic2 - 20
+ lattack2 = lattack2 - 1
+ hattack2 = hattack2 - 1
+ rhp1 = rhp1 - 15 + magdef2
+ IF weaponname2$ = "cape " THEN
+ hattack2 = hattack2 + 1
+ END IF
+
+ END IF
+ CASE IS = "mnky"
+ IF magic2 < 5 THEN
+ rhp1 = rhp1 - 1
+ LOCATE 17, 1
+ PRINT "Not enough magic"
+ ELSE
+ magic2 = magic2 - 5
+ phydef2 = phydef2 + 1
+ rhp2 = rhp2 + 7 - magdef1
+ LOCATE 17, 1
+ PRINT "Defense +1;Recovers 7 -", magdef1
+ IF weaponname2$ = "glove" THEN
+ rhp2 = rhp2 + magdef1
+ END IF
+ END IF
+ CASE IS = "dog "
+ phydef2 = phydef2 + 2
+ LOCATE 17, 1
+ PRINT "Defense +2"
+ CASE IS = "tigr"
+ IF magic2 < 5 THEN
+ rhp1 = rhp1 - 1
+ LOCATE 17, 1
+ PRINT "Not enough magic"
+ ELSE
+ magic2 = magic2 - 5
+ hattack2 = hattack2 + 1
+ LOCATE 17, 1
+ PRINT "Max attack + 1"
+ END IF
+ CASE IS = "boar"
+ IF magic2 < 2 THEN
+ rhp1 = rhp1 - 1
+ LOCATE 17, 1
+ PRINT "Not enough magic"
+ ELSE
+ magic2 = magic2 - 2
+ hattack2 = hattack2 + 1
+ LOCATE 17, 1
+ PRINT "Max attack + 1"
+ END IF
+ CASE IS = "roos"
+ IF magic2 < 2 THEN
+ rhp1 = rhp1 - 1
+ LOCATE 17, 1
+ PRINT "Not enough magic"
+ ELSE
+ magic2 = magic2 - 2
+ hattack2 = hattack2 + 1
+ phydef2 = phydef2 + 1
+ LOCATE 17, 1
+ PRINT "Max attack + 1;Defense +1"
+ END IF
+ CASE IS = "hare"
+ IF magic2 < 7 THEN
+ rhp1 = rhp1 - 1
+ LOCATE 17, 1
+ PRINT "Not enough magic"
+ ELSE
+ magic2 = magic2 - 7
+ rhp1 = rhp1 - 7 + magdef1
+ LOCATE 17, 1
+ PRINT "Lucky Strike"
+ END IF
+ CASE IS = "ZodM"
+ IF magic2 < 10 THEN
+ rhp1 = rhp1 - 1
+ LOCATE 17, 1
+ PRINT "Not enough magic"
+ ELSE
+ magic2 = magic2 - 10
+ e = INT(RND * 4 + 1)
+ SELECT CASE e
+ CASE IS = 1
+ rhp1 = rhp1 - 17 + magdef1
+ LOCATE 17, 1
+ PRINT "Thunder strikes enemy"
+ CASE IS = 2
+ IF magdef1 > hattack2 THEN
+ LOCATE 17, 1
+ PRINT "Opponent's magic defense is too high. Need higher max attack."
+ ELSE
+ magic2 = magic2 - 10
+ rhp1 = rhp1 - hattack2 + magdef1
+ phydef2 = phydef2 + 1
+ phydef1 = phydef1 - 1
+ rhp2 = rhp2 + (hattack2 - magdef1) * 2
+ LOCATE 17, 1
+ PRINT "Stole defense. Stole hp."
+ END IF
+ CASE IS = 3
+ rhp2 = rhp2 + 12
+ LOCATE 17, 1
+ PRINT "Recover 12"
+ CASE IS = 4
+ phydef1 = phydef1 + 2
+ PRINT "Defense +2"
+ END SELECT
+ END IF
+
+
+ END SELECT
+
+ CASE IS = "o"
+ SELECT CASE rname2$
+ CASE IS = "ram "
+ hattack2 = hattack2 - 1
+ rhp2 = rhp2 + 10
+ LOCATE 17, 1
+ PRINT "Recover 10 hp but -1 max attack"
+ CASE IS = "drag"
+ IF magic2 < 5 THEN
+ rhp1 = rhp1 - 1
+ LOCATE 17, 1
+ PRINT not$
+ ELSE
+ rhp2 = rhp2 - 10
+ magic2 = magic2 - 8
+ rain = INT(RND * 3)
+ SELECT CASE rain
+ CASE IS = 0
+ rhp1 = rhp1 + 10 + magdef1
+ LOCATE 17, 1
+ PRINT "Rain heals opponent"
+ CASE IS = 1
+ rhp2 = rhp2 + 25 - magdef1
+ LOCATE 17, 1
+ PRINT "Dragon recovers life"
+ CASE IS = 2
+ rhp1 = rhp1 - 17 + magdef1
+ LOCATE 17, 1
+ PRINT "Thunder strikes opponent"
+ END SELECT
+ END IF
+ CASE IS = "hors"
+ IF magic2 = 0 THEN
+ magic2 = magic2 + 10
+ ELSE magic2 = magic2 + 1
+ END IF
+ LOCATE 17, 1
+ PRINT "Magic restore"
+ CASE IS = "rat "
+ IF magic2 < 10 THEN
+ rhp1 = rhp1 - 1
+ LOCATE 17, 1
+ PRINT not$
+ ELSE
+ IF magdef1 > hattack2 THEN
+ LOCATE 17, 1
+ PRINT "Opponent's magic defense is too high. Need higher max attack."
+ ELSE
+ magic2 = magic2 - 10
+ rhp1 = rhp1 - hattack2 + magdef1
+ phydef2 = phydef2 + 1
+ phydef1 = phydef1 - 1
+ rhp2 = rhp2 + (hattack2 - magdef1) * 2
+ LOCATE 17, 1
+ PRINT "Rat attack 1: Stole defense. Stole hp."
+ END IF
+ END IF
+ CASE IS = "ox "
+ IF magic2 = 0 THEN
+ magic2 = magic2 + 5
+ LOCATE 17, 1
+ PRINT "Magic restore"
+ ELSE
+ LOCATE 17, 1
+ PRINT "Magic restore best works when magic is 0"
+ END IF
+ CASE IS = "snak"
+ IF magic2 < 6 THEN
+ LOCATE 17, 1
+ PRINT not$
+ ELSE
+ magic1 = magic1 - 10
+ rhp1 = rhp1 - 1
+ magic2 = magic2 - 6
+ LOCATE 17, 1
+ PRINT "Weakening poison"
+ END IF
+ CASE IS = "mnky"
+ IF magic2 < 5 THEN
+ LOCATE 17, 1
+ PRINT not$
+ ELSE
+ magic2 = magic2 - 5
+ rhp1 = rhp1 - phydef1 - phydef2
+ LOCATE 17, 1
+ PRINT "Defense trick"
+ END IF
+ CASE IS = "dog "
+ phydef1 = phydef1 - 1
+ LOCATE 17, 1
+ PRINT "Bark: Opponent's defense drop by 2"
+ CASE IS = "tigr"
+ IF magic2 < 15 THEN
+ LOCATE 17, 1
+ PRINT not$
+ ELSE
+ magic2 = magic2 - 15
+ hattack2 = hattack2 + 2
+ LOCATE 17, 1
+ PRINT "High rage: max attack + 2"
+ END IF
+ CASE IS = "boar"
+ LOCATE 17, 1
+ PRINT "EAT"
+ rhp2 = rhp2 + 5
+ magic2 = magic2 + 5
+ CASE IS = "roos"
+ IF magic2 < 20 THEN
+ LOCATE 17, 1
+ PRINT not$
+ ELSE
+ hattack2 = hattack2 * 2
+ LOCATE 17, 1
+ PRINT "Hyper Rooster: max attack * 2"
+ magic2 = magic2 - 20
+ END IF
+ CASE IS = "hare"
+ IF magic2 < 7 THEN
+ LOCATE 17, 1
+ PRINT not$
+ ELSE
+ IF magdef1 < 4 THEN
+ LOCATE 17, 1
+ PRINT "Lucky Strike2"
+ magic2 = magic2 - 7
+ rhp1 = rhp1 - 3 + magdef1
+ SLEEP 1
+ rhp1 = rhp1 - 3 + magdef1
+ SLEEP 1
+ rhp1 = rhp1 - 3 + magdef1
+ ELSE
+ LOCATE 17, 1
+ PRINT "Opponent's magic defense is too high"
+ END IF
+ END IF
+ END SELECT
+ CASE IS = "p"
+ SELECT CASE rname2$
+ CASE IS = "ram "
+ LOCATE 17, 1
+ PRINT "Normal attack"
+ rhp1 = rhp1 - INT(RND * hattack2 + lattack2 - phydef1)
+ CASE IS = "drag"
+ LOCATE 17, 1
+ PRINT "Fireball"
+ rhp1 = rhp1 - 9 + magdef1
+ rhp2 = rhp2 - 5
+ CASE IS = "hors"
+ IF magic2 < 10 THEN
+ LOCATE 17, 1
+ PRINT not$
+ ELSE
+ LOCATE 17, 1
+ PRINT "Race"
+ magic2 = magic2 - 10
+ rhp1 = rhp1 - 13 + magdef1
+ END IF
+ CASE IS = "rat "
+ IF magic1 < 10 THEN
+ LOCATE 17, 1
+ PRINT "Opponent have too little magic."
+ ELSE
+
+ rhp2 = rhp2 - 10
+ magic1 = magic1 - 10 + magdef1
+ magic2 = magic2 + 10 - magdef1
+ magdef1 = magdef1 - 1
+ LOCATE 17, 1
+ PRINT "Stole magic; Lower opponent's magic defense"
+ END IF
+ CASE IS = "ox "
+ IF magic2 < 5 THEN
+ LOCATE 17, 1
+ PRINT not$
+ ELSE
+ magic2 = magic2 - 5
+ hattack2 = hattack2 + 2
+ LOCATE 17, 1
+ PRINT "Max attack +2"
+ END IF
+ CASE IS = "snak"
+ IF magic2 < 4 THEN
+ LOCATE 17, 1
+ PRINT not$
+ ELSE
+ magic2 = magic2 - 4
+ poison = INT(RND * 2 + 1)
+ IF poison = 1 THEN
+ phydef1 = phydef1 - 1
+ LOCATE 17, 1
+ PRINT "Poison: Opponent's defense -1"
+ ELSE
+ magdef1 = magdef1 - 1
+ LOCATE 17, 1
+ PRINT "Poison: Opponent's magic defense -1"
+ END IF
+ END IF
+ CASE IS = "mnky"
+ IF magic2 < 5 THEN
+ LOCATE 17, 1
+ PRINT not$
+ ELSE
+ magic2 = magic2 - 5
+ LOCATE 17, 1
+ PRINT "Dodge: Defense +1; Magic defense +1; Max attack -1"
+ phydef2 = phydef2 + 1
+ magdef2 = magdef2 + 1
+ hattack2 = hattack2 - 1
+ END IF
+ CASE IS = "dog "
+ LOCATE 17, 1
+ PRINT "Follower: Copy opponent's normal attack"
+ rhp1 = rhp1 - INT(RND * hattack1 + lattack1 - phydef1)
+ CASE IS = "tigr"
+ hattack2 = hattack2 - 1
+ magic2 = magic2 + 8
+ LOCATE 17, 1
+ PRINT "Cat rest: -1 max attack to itself"
+ CASE IS = "boar"
+ IF magic2 < 2 THEN
+ LOCATE 17, 1
+ PRINT not$
+ ELSE
+ LOCATE 17, 1
+ PRINT "Fat Slam: magic cut in half and damage = half of magic"
+ rhp1 = rhp1 - INT(magic2 / 2) + magdef1
+ magic2 = INT(magic2 / 2)
+ END IF
+ CASE IS = "roos"
+ IF magic2 < 5 THEN
+ LOCATE 17, 1
+ PRINT not$
+ ELSE
+ IF rhp2 > 10 THEN
+ LOCATE 17, 1
+ PRINT "Not sunrise time yet"
+ ELSE
+ LOCATE 17, 1
+ PRINT "Sunrise"
+ magic2 = magic2 - 5
+ rhp2 = rhp2 - rhp2 + 25
+ END IF
+ END IF
+ CASE IS = "hare"
+ luck = INT(RND * 8 + 5)
+ IF luck > magic2 THEN
+ LOCATE 17, 1
+ PRINT not$
+ ELSE
+ magic2 = magic2 - luck
+ rhp1 = rhp1 - luck + magdef1
+ END IF
+
+ END SELECT
+
+END SELECT
+ LOCATE 10, 1
+ PRINT SPACE$(120)
+ LOCATE 10, 20
+ PRINT "Hp", rhp2
+ LOCATE 10, 5
+ PRINT "Hp", rhp1
+ LOCATE 15, 5
+ PRINT "Magic", magic1
+ LOCATE 15, 20
+ PRINT "Magic", magic2
+LOOP
+IF rhp1 < 1 THEN
+LOCATE 18, 1
+PRINT "PLAYER 2 wins with", rname2$
+ELSE
+IF rhp2 < 1 THEN
+LOCATE 18, 1
+PRINT "PLAYER 1 wins with", rname$
+END IF
+END IF
+SLEEP
+LOOP
+rDATA:
+DATA "ram 40 00 03 04 1 3"
+DATA "drag 90 40 02 02 1 1"
+DATA "hors 40 10 05 03 1 1"
+DATA "rat 20 90 04 02 0 5"
+DATA "ox 60 5 07 02 2 1"
+DATA "snak 30 30 05 05 0 1"
+DATA "mnky 25 50 03 02 3 2"
+DATA "dog 35 00 04 04 0 0"
+DATA "tigr 50 40 02 06 0 1"
+DATA "boar 55 10 03 05 2 0"
+DATA "roos 25 40 03 02 1 2"
+DATA "hare 22 77 11 00 3 3"
+DATA "ZodM 60 50 17 05 2 2"
+
+
+instructions:
+CLS
+PLAY "MB<>"
+LOCATE 2, 2
+PRINT "INSTRUCTIONS"
+PRINT " SELECT animal"
+PRINT " Enter a number from 0 to 12 (0 = random)"
+PRINT " Player 2 select animal"
+PRINT " Battling"
+PRINT " For Player 1, use q,w,e,r to select a move for your animal"
+PRINT " For Player 2, use u,i,o,p to select a move for your animal"
+PRINT " q and u is the normal attack for all animals"
+PRINT " Damage Calculations"
+PRINT " Normal attack: max. attack * random number(0-1) + min.attack"
+PRINT " - opponent's defense"
+PRINT " Special attacks depend on the move subtract opponent's magic defense"
+PRINT " Most specials cost magic. If not enough magic, does nothing or does"
+PRINT " 1 damage"
+PRINT " Weapons"
+PRINT " You can select weapons using the numbers 1 - 7. Go to weapon section"
+PRINT " for more details."
+PRINT " Winning"
+PRINT " Lower your opponents hp to 0 or less"
+PRINT " To Quit"
+PRINT " Press 'x'"
+DO
+key$ = INKEY$
+LOOP UNTIL key$ <> ""
+IF key$ <> "" THEN
+GOSUB title
+END IF
+
+weapond:
+CLS
+PRINT "WEAPONS"
+PRINT " Here is the weapon data chart:"
+PRINT "sword 00 -5 04 02 00"
+PRINT "mace 00 -5 03 03 00"
+PRINT "wand 10 10 00 00 03"
+PRINT "glove 05 05 02 02 02"
+PRINT "shiel 05 -9 00 04 02"
+PRINT "cape 20 05 00 01 01"
+PRINT "bow 10 05 02 01 01"
+PRINT " Here is how you read the chart:"
+PRINT "name,+life,+magic,+max attack,+defense,+magicdefense"
+PRINT "Weapons don't just do what you see here. There are more secrets"
+PRINT "that'll be kept hidden. See if you could NOTICE some of the secrets"
+PRINT "during battle. Secrets only work to certain animals and certain weapons"
+PRINT "Clue: Usually a secret ativates when you use the first special move(w or i)"
+DO
+wkey$ = INKEY$
+LOOP UNTIL wkey$ <> ""
+GOSUB title
+animaldata:
+DO
+DO
+CLS
+RESTORE rDATA
+FOR count = 1 TO 13
+READ r$(count)
+NEXT count
+
+LOCATE 2, 2
+INPUT "Enter Code:", dnumber
+LOOP UNTIL 0 < dnumber AND dnumber < 14
+
+dname$ = LEFT$(r$(dnumber), 4)
+rhp = VAL(MID$(r$(dnumber), 5, 3))
+
+magic = VAL(MID$(r$(dnumber), 9, 2))
+
+hattack = VAL(MID$(r$(dnumber), 12, 2))
+
+lattack = VAL(MID$(r$(dnumber), 15, 2))
+
+phydef = VAL(MID$(r$(dnumber), 18, 1))
+
+magdef = VAL(MID$(r$(dnumber), 20, 1))
+
+SELECT CASE dname$
+ CASE IS = "ram "
+ description$ = "Can charge up max attack fast and could heal too."
+ CASE IS = "dragon"
+ description$ = "Have highest life but low attack. Wide range of magic but hurts itself."
+ CASE IS = "hors"
+ description$ = "Have good healing skills and a powerful move too."
+ CASE IS = "rat "
+ description$ = "Really low life but could steal life and stats from opponent."
+ CASE IS = "ox "
+ description$ = "High life and depend only on its normal attack."
+ CASE IS = "snak"
+ description$ = "Great range of poisonous attacks that'll surprise the opponent."
+ CASE IS = "mnky"
+ description$ = "Very defensive and could use the opponents' defense against them."
+ CASE IS = "dog "
+ description$ = "Lots of moves that changes defense."
+ CASE IS = "tigr"
+ description$ = "Start out strong but could get stronger."
+ CASE IS = "boar"
+ description$ = "The more you eat, the better is your Fat Slam!"
+ CASE IS = "roos"
+ description$ = "Start out weak but could charge up and could restore full life."
+ CASE IS = "hare"
+ description$ = "Highest defense and depends on luck"
+ CASE IS = "ZodM"
+ description$ = "Can only be used if you chose random. Have the strongest moves from animals."
+ END SELECT
+
+
+LOCATE 3, 3
+PRINT "Name of animal:", dname$
+PRINT " Max life:", rhp
+PRINT " Max magic:", magic
+PRINT " Max attack:", hattack
+PRINT " Min attack:", lattack
+PRINT " Defense:", phydef
+PRINT " Magic Defense:", magdef
+PRINT " "
+PRINT description$
+LOCATE 20, 10
+PRINT "Press 'd' to check another animal"
+PRINT "Press 'x' to exit"
+SLEEP
+key$ = INKEY$
+LOOP WHILE key$ = "d"
+GOSUB title
+
+weaponDATA:
+DATA "sword 00 -5 04 02 00"
+DATA "mace 00 -5 03 03 00"
+DATA "wand 10 10 00 00 03"
+DATA "glove 05 05 02 02 02"
+DATA "shiel 05 -9 00 04 02"
+DATA "cape 20 05 00 01 01"
+DATA "bow 10 05 02 01 01"
+
+endsection:
+CLS
+PRINT "Game created by Paulunknown"
+PRINT "Thanks for playing. Please give me some comments on this."
+PRINT " "
+PRINT "Also, I wish I could get some graphics in this game but I barely know"
+PRINT "the basics of creating pictures. I really need some help on that."
+PRINT " "
+PRINT "Feel free to tell a friend about this or send it to them. This is "
+PRINT "probably my first game."
+SLEEP
+END
\ No newline at end of file
diff --git a/samples/zom-b.md b/samples/zom-b.md
index 8220f550..68974409 100644
--- a/samples/zom-b.md
+++ b/samples/zom-b.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [Inform](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
+[Home](https://qb64.com) • [News](../news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](../samples.md) • [InForm](../inform.md) • [GX](../gx.md) • [QBjs](../qbjs.md) • [Community](../community.md) • [More...](../more.md)
## SAMPLES BY ZOM-B
diff --git a/tcpip.md b/tcpip.md
new file mode 100644
index 00000000..3305c9bb
--- /dev/null
+++ b/tcpip.md
@@ -0,0 +1,203 @@
+[Home](https://qb64.com) • [News](news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](samples.md) • [InForm](inform.md) • [GX](gx.md) • [QBjs](qbjs.md) • [Community](community.md) • [More...](more.md)
+
+## Articles - TCP/IP communications
+
+*by Luke*
+
+```text
+
+QB64 - TCP/IP Communications
+
+Conceptual overview
+-------------------
+
+TCP is a protocol for communicating over a network. It guarantees that:
+
+ - Data will arrive
+ - It will arrive in order
+ - It will arrive error-free
+
+Obviously, if someone cuts the cable, nothing can be done.
+
+A TCP connection is established between two parties, a client and server. When
+started, the server will listen on a specific port. By listening on different
+ports, multiple servers can be run on the same machine. When a client wishes to
+connect, it requests a connection to the server, specifying its IP address (or a
+text equivalent like www.google.com) and the port the server is on. The server
+then accepts the connection request, and the connection is established.
+
+Aside on ports: ports are numbers between 1 and 65535, and their use allows
+multiple servers to run on the same machine. The client needs to know the port
+the server is using beforehand - luckily, common services have standard ports:
+HTTP (for internet pages): 80
+SSH (secure remote access): 22
+Telnet (insecure remote access): 23
+SMTP (Send email): 25
+On some systems, ports below 1024 may be protected, meaning a server can't
+listen on them without administrator/superuser privliges.
+
+TCP structures the data sent as a stream. This has many consequences:
+ - Individual send operations do not mean data will arrive as separate chunks at
+ the other end. You cannot tell where one chunk ends and the next starts.
+ - But one send operation does not guarantee only one read operation will be
+ needed. TCP may split the data, and it may arrive bit by bit, meaning more
+ than one read operation is needed to collect it all.
+Although this may sound limiting, the associated issues can be solved by either
+sending a special signal to note the end of the data (NUL and Linefeed are popular
+choices), or by first sending the size of the data as a pre-agreed numeric
+data type, then sending the data itself.
+
+TCP is full-duplex, meaning both parties can send and receive data. It is not
+necessary to read all data before you can send any yourself.
+
+-------------------------------------------------------
+
+_OPENCLIENT - Connect to a listening server
+-----------
+handle& = _OPENCLIENT("TCP/IP:1234:host")
+Where 1234 can be any port number, and host can be any IPv4 address or any domain
+name, upon which DNS resolution will be performed.
+
+If you are connecting to a server, this is typically the first command used. It
+establishes the connection, and returns a handle to refer to the connection by
+later on. If handle& = 0, this indicates an error occurred connecting.
+
+
+_OPENHOST - Begin listening on a specific port
+---------
+server& = _OPENHOST("TCP/IP:1234")
+Where 1234 can be any port number, but may be subject to Operating System
+permission restrictions.
+
+This is typically the first command a server will call, in the startup phase.
+The program is then ready to accept connections to port 1234, by use of
+_OPENCONNECTION.
+
+server& is a handle that refers to listening on a particular port, and does not
+relate to any particular client. If server& = 0, an error occured.
+
+
+_OPENCONNECTION - Accept incoming connection from a client
+handle& = _OPENCONNECTION(server&)
+Where server& is a handle returned by _OPENHOST.
+
+Checks for any connection requests from clients, and accepts the next waiting
+one, if any. If a new connection is established, handle& is non-zero, and is
+a handle& used to refer to that particular connection. That is, each client
+connection will have a different handle&.
+
+If server& = 0 there are no clients attempting to connect, or establishing a
+connection failed.
+
+If clients attempt to connect faster than a server can accept their connections,
+they will be queued. The size of the queue is limited by the Operating System -
+if it is exceeded, clients will likely be refused a connection straight away.
+
+In typical operation, a server will repeatedly call this function to check for
+any new clients.
+
+
+_CONNECTIONADDRESS$ - Get address information about a connection
+-------------------
+info$ = _CONNECTIONADDRESS$(h&)
+Where h& is a handle returned by any of _OPENCLIENT, _OPENHOST, _OPENCONNECTION.
+
+In all three cases, the string returned as the format "TCP/IP:1234:address",
+where 1234 is any port number and address is a IPv4 address or textual domain
+name.
+
+_OPENCLIENT handles: Returns the same string passed to _OPENCLIENT
+_OPENHOST handles: Returns the listening port, and the public IP address of the
+machine. _CONNECTIONADDRESS$ knows about NAT, so if a machine is behind a router
+performing NAT, the address returned is the public address of the router, not
+the local address of the machine.
+_OPENCONNECTION handles: Returns the port from which the client is connecting,
+and their IP address. In many cases, a client will be connecting from a randomly
+assigned port number, usually towards the upper end of the range.
+
+_CONNECTED - Check if a connection is still active
+----------
+bool& = CONNECTED(h&)
+Where h& is a handle returned by _OPENCLIENT, _OPENHOST, _OPENCONNECTION, and
+bool& is a boolean value (-1 = true, 0 = false).
+
+Returns the state of the connection, as far as the program can tell. _CONNECTED
+will only notice a disconnection when a read or write (GET or PUT) operation
+does not succeed due to the connection being closed or otherwise broken. Thus:
+ - Simply calling _CONNECTED in a loop without any I/O is useless.
+ - Even if the connection is closed, GET may still succeed if there is data
+ in the incoming buffer. In this case, _CONNECTED will still return true.
+
+Since GET and PUT do not raise any errors, or return a value indicating
+success/failure, _CONNECTED can be called after them to get an idea of what
+happened.
+
+If h& has already been closed with CLOSE, an error is raised. A connection that
+is found to be disconnected with _CONNECTED must still be closed with CLOSE.
+
+Handles returned by _OPENHOST are always considered connected, since they are
+not true connections.
+
+
+CLOSE - Close a connection
+-----
+CLOSE #h& 'The # is optional
+
+Like with a file, this is how one shuts down a connection or listen. h& may be
+a handle returned by _OPENCLIENT, _OPENHOST, _OPENCONNECTION. Depending on the
+application, it may be useful to arrange for one end to send a 'acknowledge'
+signal, to confirm the connection is ready to close.
+
+Especially in longrunning server programs, closing used connections is important
+for preventing memory leaks.
+
+
+GET - Read data from a connection
+---
+GET #h&, , fixed_len
+GET #h&, , text$
+Where h& is a handle returned by _OPENCLIENT, _OPENCONNECTION (not _OPENHOST),
+and fixed_len/text$ is the variable to hold the data.
+
+Receives data from the connection, if any is present. The behaviour differs
+depending on whether the receiving variable is fixed length (numbers, UDT's
+including _MEM, arrays, fixed-length strings) or a variable length string.
+
+If the data type is fixed, GET checks if there is sufficient data available to
+fill it. If there is, the appropriate number of bytes are read from the stream,
+and EOF(h) is set to 0. If insufficient (or no) data is available, no bytes are
+read from the stream, and EOF(h) is set to -1. The value of the receiving
+variable may or may not be changed, so don't count on either.
+
+If the data type is a variable length string, GET will read all available bytes
+from the stream and return them in the string. EOF(h) is always set to 0, even
+if no bytes are read (an empty string is returned in that case). However, you
+should be prepared to accept fragmented or joined-together data, due to the
+nature of TCP.
+
+In all cases, GET is non-blocking, meaning it does not wait for data to arrive.
+(Some programming languages have blocking network functions, which will not
+return until data arrives). Consequentially, the following code is common to
+read a piece of data:
+
+DO
+ GET #h, , num&&
+LOOP WHILE EOF(h&)
+
+EOF(h) will return -1 (true) if the GET cannot retrieve a sufficient number of
+bytes (in this case, 8) from the stream, and 0 (false) when it succeeds.
+
+
+PUT - Send data on a connection
+---
+PUT #h&, , var
+Where h& is a handle returned by _OPENCLIENT, _OPENCONNECTION (not _OPENHOST),
+and var is the variable to send (a numeric type, string, array of fixed length
+data, or UDT including _MEM).
+
+The counterpart to GET, PUT sends data to the other party. Usage is straght
+forward, although note that:
+ - You cannot send an array of variable strings.
+ - Sending a _MEM block sends the _MEM header itself, not the data it refers to.
+
+```
diff --git a/vwatch.md b/vwatch.md
new file mode 100644
index 00000000..c4dfe6f4
--- /dev/null
+++ b/vwatch.md
@@ -0,0 +1,29 @@
+[Home](https://qb64.com) • [News](news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](samples.md) • [InForm](inform.md) • [GX](gx.md) • [QBjs](qbjs.md) • [Community](community.md) • [More...](more.md)
+
+## [vWATCH64](https://github.com/FellippeHeitor/vWATCH64)
+
+**FIND THOSE HARD-TO-SQUASH BUGS**
+
+You wrote your own code, you know what’s going on behind the scenes. But do you, really? What about those unexpected results you keep getting? What about the eventual crashing? Don’t you wish you could have a better way to debug it?
+
+### Well, pal, here’s vWATCH64!
+
+[vWATCH64](https://github.com/FellippeHeitor/vWATCH64) is a real-time debug/variable watch utility to help with **programs written in QB64**. [vWATCH64](https://github.com/FellippeHeitor/vWATCH64) generates a modified version of your source file, allowing for breakpoints and real-time variable watch.
+
+[vWATCH64](https://github.com/FellippeHeitor/vWATCH64) is compatible with Windows, OS X and Linux.
+
+### With [vWATCH64](https://github.com/FellippeHeitor/vWATCH64) you can:
+
+* See your source code while your program is running. If ‘Trace’ is ON, the screen will automatically scroll to the next line that will be run.
+* Step through your code line by line with the F8 key. Follow the execution of your code to help you find those hard to squash bugs.
+* Set breakpoints with the F9 key.
+* In ‘Variables’ view, see the values of your variables as they’re changed in your program. The variables are highlighted as they’re used in your program.
+* Change variables from [vWATCH64](https://github.com/FellippeHeitor/vWATCH64), so you can test your program in many different scenarios.
+* Set watchpoints and run your program until a variable holds a certain value (can use relational operators =, <, >, <>, <=, >=)
+* Resume execution after a breakpoint with the F5 key.
+
+***NOTE**: This tool has been made effectively obsolete as of QB64 v2.0 with the addition of built-in debugging features (incidentially, contributed to QB64 by the same author a [vWATCH64](https://github.com/FellippeHeitor/vWATCH64)).*
+
+### Download
+
+- [Official vWATCH64 Releases](https://github.com/FellippeHeitor/vWATCH64/releases)
diff --git a/wiki.md b/wiki.md
index feb1d427..98f0af0a 100644
--- a/wiki.md
+++ b/wiki.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](samples.md) • [Inform](inform.md) • [GX](gx.md) • [QBjs](qbjs.md) • [Community](community.md) • [More...](more.md)
+[Home](https://qb64.com) • [News](news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](samples.md) • [InForm](inform.md) • [GX](gx.md) • [QBjs](qbjs.md) • [Community](community.md) • [More...](more.md)
## Wiki
diff --git a/youtube.md b/youtube.md
index 3a1489b7..2021992d 100644
--- a/youtube.md
+++ b/youtube.md
@@ -1,4 +1,4 @@
-[Home](https://qb64.com) • [News](news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](samples.md) • [Inform](inform.md) • [GX](gx.md) • [QBjs](qbjs.md) • [Community](community.md) • [More...](more.md)
+[Home](https://qb64.com) • [News](news.md) • [GitHub](https://github.com/QB64Official/qb64) • [Wiki](https://github.com/QB64Official/qb64/wiki) • [Samples](samples.md) • [InForm](inform.md) • [GX](gx.md) • [QBjs](qbjs.md) • [Community](community.md) • [More...](more.md)
![YouTube](images/youtube.png)