<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://fantasyconsoles.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=BILLPC2684</id>
	<title>Fantasy Console Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://fantasyconsoles.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=BILLPC2684"/>
	<link rel="alternate" type="text/html" href="https://fantasyconsoles.org/wiki/Special:Contributions/BILLPC2684"/>
	<updated>2026-04-22T15:09:32Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://fantasyconsoles.org/w/index.php?title=TheGameRazer&amp;diff=269</id>
		<title>TheGameRazer</title>
		<link rel="alternate" type="text/html" href="https://fantasyconsoles.org/w/index.php?title=TheGameRazer&amp;diff=269"/>
		<updated>2024-03-14T05:30:43Z</updated>

		<summary type="html">&lt;p&gt;BILLPC2684: fixed up the OAM diagram&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:TGR_Logo.png|thumb|TheGameRazer&#039;s Logo]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TheGameRazer&#039;&#039;&#039;(CodeName: &#039;Taylor&#039;) is a Modern, Retro-styled 16-BIT GameSystem inspired by the SegaGenesis and SuperNintendo.&amp;lt;br&amp;gt;&lt;br /&gt;
Designed and created by [https://fantasyconsoles.org/wiki/User:BILLPC2684 BILLPC2684] over on [https://github.com/BILLPC2684 Github]&lt;br /&gt;
&lt;br /&gt;
==Official Github Repos==&lt;br /&gt;
* [https://github.com/BILLPC2684/TGR-PRTO-RAYLIB TGR-PRTO-RAYLIB ⟦Current⟧] from 2023&lt;br /&gt;
* [https://github.com/BILLPC2684/TGR-PRTO-JS TGR-PRTO-JS ⟦Archived⟧] from 2022&lt;br /&gt;
* [https://github.com/BILLPC2684/TGR-PRTO-PYGAME TGR-PRTO-PYGAME ⟦Archived⟧] from 2019&lt;br /&gt;
* [https://github.com/BILLPC2684/TGR-PRTO-Love2D TGR-PRTO-Love2D ⟦Archived⟧] from 2018&lt;br /&gt;
* [https://github.com/BILLPC2684/TGR-PRTO-C TGR-PRTO-C ⟦Archived⟧] from 2017&lt;br /&gt;
&lt;br /&gt;
==Specs==&lt;br /&gt;
&#039;&#039;&#039;ROM Size&#039;&#039;&#039;: 16 to 256 MB&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Number of ROM Banks&#039;&#039;&#039;: 2 (16 MB seekable in total)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;RAM Size&#039;&#039;&#039;: 64 MB of RAM (expandable to 128 MB)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Video RAM Size&#039;&#039;&#039;: 32 MB of RAM (expandable to 64 MB)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Video FrameBuffers&#039;&#039;&#039;: Layers 5, 5th is for final rendering&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Video Resolutions&#039;&#039;&#039;: &#039;&#039;480x360&#039;&#039;, &#039;&#039;800x600&#039;&#039;, &#039;&#039;852x480&#039;&#039; and &#039;&#039;1280x720&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Audio&#039;&#039;&#039;: None at the moment.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Assembly Instruction Set for Taylor using CustomASM==&lt;br /&gt;
* REGs are A, B, C, D, E, F, G, and H (0-7 respecitvely)&lt;br /&gt;
not to be confused with&lt;br /&gt;
* Instruction A, B, and C, which can represent &amp;quot;:REG&amp;quot; or a &amp;quot;:FLAG&amp;quot;, their value can range from 0x0 to 0xF(15)&lt;br /&gt;
* IMM is a Intermediate Value, can be anything from 0x0000000 to 0x7FFFFFF&lt;br /&gt;
* / means continue reading same spot 1 line up&lt;br /&gt;
&lt;br /&gt;
 HEADER0 -&amp;gt; generates DummyData for 16-char ROM Name and 12-char ROM Version.&lt;br /&gt;
 HEADER1 -&amp;gt; generates DummyData for 16-char ROM Name, 12-char ROM Version and 32-char ROM Author.&lt;br /&gt;
 HEADER2 -&amp;gt; generates DummyData for 16-char ROM Name, 12-char ROM Version, 32-char ROM Author and 32-char Checksum.&lt;br /&gt;
 &lt;br /&gt;
 mov  A:REG, B:REG -&amp;gt; moves B:REG to A:REG&lt;br /&gt;
 load A:REG, IMM   -&amp;gt; loads  IMM  to A:REG&lt;br /&gt;
 &lt;br /&gt;
 add  A:REG, B:REG, C:REG -&amp;gt; adds A and  B,  to C&lt;br /&gt;
 addi A:REG, IMM,   C:REG -&amp;gt; adds A and IMM, to C&lt;br /&gt;
 &lt;br /&gt;
 sub  A:REG, B:REG, C:REG -&amp;gt; subtracts A and  B,  to C&lt;br /&gt;
 subi A:REG, IMM,   C:REG -&amp;gt; subtracts A and IMM, to C&lt;br /&gt;
 &lt;br /&gt;
 mul  A:REG, B:REG, C:REG -&amp;gt; multiplies A and  B,  to C&lt;br /&gt;
 muli A:REG, IMM,   C:REG -&amp;gt; multiplies A and IMM, to C&lt;br /&gt;
 &lt;br /&gt;
 div  A:REG, B:REG, C:REG -&amp;gt; divides A and  B,  to C&lt;br /&gt;
 divi A:REG, IMM,   C:REG -&amp;gt; divides A and IMM, to C&lt;br /&gt;
 &lt;br /&gt;
 mod  A:REG               -&amp;gt; return last division&#039;s remander to A&lt;br /&gt;
 mod  A:REG, B:REG, C:REG -&amp;gt; divides A and  B,  and return remander to C&lt;br /&gt;
 modi A:REG, IMM,   C:REG -&amp;gt; divides A and IMM, /&lt;br /&gt;
 &lt;br /&gt;
 and  A:REG, B:REG, C:REG -&amp;gt; bitwise ands A and  B  togther, into C&lt;br /&gt;
 andi A:REG, IMM,   C:REG -&amp;gt; bitwise ands A and IMM togther, /&lt;br /&gt;
 &lt;br /&gt;
 or   A:REG, B:REG, C:REG -&amp;gt; bitwise ors A and  B  togther, into C&lt;br /&gt;
 ori  A:REG, IMM,   C:REG -&amp;gt; bitwise ors A and IMM togther, /&lt;br /&gt;
 &lt;br /&gt;
 xor  A:REG, B:REG, C:REG -&amp;gt; bitwise xors A and  B  togther, into C&lt;br /&gt;
 xori A:REG, IMM,   C:REG -&amp;gt; bitwise xors A and IMM togther, /&lt;br /&gt;
 &lt;br /&gt;
 bsl  A:REG, B:REG, C:REG -&amp;gt; bitshifts A to the left by  B,  into C&lt;br /&gt;
 bsli A:REG, IMM,   C:REG -&amp;gt; bitshifts A to the left by IMM, /&lt;br /&gt;
 &lt;br /&gt;
 bsr  A:REG, B:REG, C:REG -&amp;gt; bitshifts A to the right by  B,  into C&lt;br /&gt;
 bsri A:REG, IMM,   C:REG -&amp;gt; bitshifts A to the right by IMM, /&lt;br /&gt;
 &lt;br /&gt;
 not  A:REG -&amp;gt; inverts A&lt;br /&gt;
 &lt;br /&gt;
 flag A:REG -&amp;gt; read the CPU&#039;s Flags into A&lt;br /&gt;
 &lt;br /&gt;
 jmp  A:REG,   B:REG -&amp;gt; jumps to A..B&lt;br /&gt;
 jmp  IMM            -&amp;gt; jumps to the given Address&lt;br /&gt;
 jmp  .Label         -&amp;gt; jumps to the .Label&#039;s address&lt;br /&gt;
 &lt;br /&gt;
 cmpeq  A:REG, B:REG, C -&amp;gt; if A ==  B  &amp;gt;-/-&amp;gt; then continue, else skip 1 or C instruction&lt;br /&gt;
 cmpeqi A:REG, IMM,   C -&amp;gt; if A == IMM &amp;gt;-/&lt;br /&gt;
                                         |&lt;br /&gt;
 cmplt  A:REG, B:REG, C -&amp;gt; if A &amp;lt;   B  &amp;gt;-/&lt;br /&gt;
 cmplti A:REG, IMM,   C -&amp;gt; if A &amp;lt;  IMM &amp;gt;-/&lt;br /&gt;
                                         |&lt;br /&gt;
 cmpgt  A:REG, B:REG, C -&amp;gt; if A  &amp;gt;  B  &amp;gt;-/&lt;br /&gt;
 cmpgti A:REG, IMM,   C -&amp;gt; if A  &amp;gt; IMM &amp;gt;-/&lt;br /&gt;
 &lt;br /&gt;
 split  A:REG, B:REG, C:REG, 8 -&amp;gt; splits   A into B and  C | 8-bit (16b -&amp;gt; 8b,8b)&lt;br /&gt;
 split  A:REG, B:REG, C:REG, 4 -&amp;gt; splits   A into B and  C | 4-bit ( 8b -&amp;gt; 4b,4b)&lt;br /&gt;
 &lt;br /&gt;
 comb   A:REG, B:REG, C:REG, 8 -&amp;gt; combines A and  B into C | 8-bit (8b,8b -&amp;gt; 16b)&lt;br /&gt;
 comb   A:REG, B:REG, C:REG, 4 -&amp;gt; combines A and  B into C | 4-bit (4b,4b -&amp;gt;  8b)&lt;br /&gt;
 &lt;br /&gt;
 wmem  A:REG, B:REG, C:REG -&amp;gt; Writes A at B..C to Memory&lt;br /&gt;
 wmem  A:REG, IMM          -&amp;gt; Writes A at IMM  to Memory&lt;br /&gt;
 &lt;br /&gt;
 rmem  A:REG, B:REG, C:REG -&amp;gt; Reads B..C from Memory to A&lt;br /&gt;
 rmem  A:REG, IMM          -&amp;gt; Reads IMM  from Memory to A&lt;br /&gt;
 &lt;br /&gt;
 halt  A:FLAG -&amp;gt; Halts or Restarts the System/Device&lt;br /&gt;
 hlt___A:FLAG -&amp;gt; /&lt;br /&gt;
 |HALT_TYPES|______________.&lt;br /&gt;
 |0:&amp;quot;Halt&amp;quot;current&amp;quot;CPU&amp;quot;Core&amp;quot;|&lt;br /&gt;
 |1: Halt All CPU Cores    |&lt;br /&gt;
 |2: Shutdown Everything   |&lt;br /&gt;
 |3: Reset Everything      |&lt;br /&gt;
 |_________________________|&lt;br /&gt;
 &lt;br /&gt;
 disp  A:REG               -&amp;gt; Displays A ------- (FOR DEBUG ONLY)&lt;br /&gt;
 disp  A:REG, B:REG        -&amp;gt; Displays A,  and B /&lt;br /&gt;
 disp  A:REG, B:REG, C:REG -&amp;gt; Displays A,B and C /&lt;br /&gt;
 &lt;br /&gt;
 ipout A:REG, B:REG -&amp;gt; returns Instuction Pointer to A..B | example with 0x17F39: A would be 0x0001 and B would be 0x7F39&lt;br /&gt;
 &lt;br /&gt;
 page  A:FLAG, IMM    -&amp;gt; selects ROMBANK(IMM) from CART into MemoryMap[BANKSLOT(A)] | theres only 2 Bank Slots&lt;br /&gt;
 &lt;br /&gt;
 core  A:FLAG, B:FLAG, IMM -&amp;gt; Starts(B==1)/Stops(B==0) core A at IMM Address of memory&lt;br /&gt;
 &lt;br /&gt;
 push A:REG -&amp;gt; pushes A, into Stack&lt;br /&gt;
 pop  A:REG -&amp;gt; pops Stack, into A&lt;br /&gt;
 swap       -&amp;gt; swaps the first 2 Items in Stack&lt;br /&gt;
 &lt;br /&gt;
 call A:REG, B:REG -&amp;gt; calls A..B --------------- as a Function [uses Stack]&lt;br /&gt;
 call IMM          -&amp;gt; calls the IMM ---- address /&lt;br /&gt;
 call .Label       -&amp;gt; calls the .Label&#039;s /&lt;br /&gt;
 &lt;br /&gt;
 ret  -&amp;gt; returns from a Function [uses Stack]&lt;br /&gt;
  &lt;br /&gt;
 led IMM                 -&amp;gt; sets the System&#039;s LED color with IMM as #RRGGBB&lt;br /&gt;
 led A:REG, B:REG, C:REG -&amp;gt; sets the System&#039;s LED color with A,B,C as R,G,B&lt;br /&gt;
 &lt;br /&gt;
 clk A:REG, IMM -&amp;gt; grabs the system&#039;s clock in MicroSecond to A (IMM&amp;gt;0 will Reset the clock)&lt;br /&gt;
 &lt;br /&gt;
 wait  A:REG -&amp;gt; waits for a [A]mount of MicroSecond&lt;br /&gt;
 waiti IMM   -&amp;gt; waits for a IMM amount of MicroSecond&lt;br /&gt;
 &lt;br /&gt;
 break IMM -&amp;gt; Debugs for IMM amount of instructions (FOR DEBUG ONLY)&lt;br /&gt;
 &lt;br /&gt;
 nop -&amp;gt; what you expected me to do something? NOPe!&lt;br /&gt;
&lt;br /&gt;
==TGR MEMORY MAP==&lt;br /&gt;
&lt;br /&gt;
 ####################################################&lt;br /&gt;
 ## TGR MEMORY MAP ##################################&lt;br /&gt;
 # ROM[0]   $0800000 [$0000000 - $07FFFFF]   8   MB #&lt;br /&gt;
 # ROM[1]   $0800000 [$0800000 - $0FFFFFF]   8   MB #&lt;br /&gt;
 # SAV      $0800000 [$1000000 - $17FFFFF]   8   MB #&lt;br /&gt;
 # WRAM     $3FBFE00 [$1800000 - $57BFDFF]  63.7 MB #&lt;br /&gt;
 # STACK#0  $0020000 [$57BFE00 - $57DFDFF] 128   KB #&lt;br /&gt;
 # STACK#1  $0020000 [$57DFE00 - $57FFDFF] 128   KB #&lt;br /&gt;
 # I/O      $0000200 [$57FFE00 - $57FFFFF] 512   BY #&lt;br /&gt;
 # SRAMEXT  $4000000 [$5800000 - $97FFFFF]  64   MB #&lt;br /&gt;
 # VRAM     $1F80000 [$9800000 - $B77FFFF]  31.5 MB #&lt;br /&gt;
 # VSTACK#0 $0020000 [$B780000 - $B79FFFF] 128   KB #&lt;br /&gt;
 # VSTACK#1 $0020000 [$B7A0000 - $B7BFFFF] 128   KB #&lt;br /&gt;
 # VSTACK#2 $0020000 [$B7C0000 - $B7DFFFF] 128   KB #&lt;br /&gt;
 # VSTACK#3 $0020000 [$B7E0000 - $B7FFFFF] 128   KB #&lt;br /&gt;
 # VRAMEXT  $2000000 [$B800000 - $D7FFFFF]  32   MB #&lt;br /&gt;
 ## 216 MB [0xD800000] ##############################&lt;br /&gt;
 ####################################################&lt;br /&gt;
 ## TGR VIDEO MEMORY MAP ############################&lt;br /&gt;
 # VRAM     $1F80000 [$0000000 - $1F7FFFF]  31.5 MB #&lt;br /&gt;
 # VSTACK#0 $0020000 [$1F80000 - $1F9FFFF] 128   KB #&lt;br /&gt;
 # VSTACK#1 $0020000 [$1FA0000 - $1FBFFFF] 128   KB #&lt;br /&gt;
 # VSTACK#2 $0020000 [$1FC0000 - $1FDFFFF] 128   KB #&lt;br /&gt;
 # VSTACK#3 $0020000 [$1FE0000 - $1FFFFFF] 128   KB #&lt;br /&gt;
 # VRAMEXT  $2000000 [$2000000 - $3FFFFFF]  32   MB #&lt;br /&gt;
 ##  64 MB [0x4000000] ##############################&lt;br /&gt;
 ####################################################&lt;br /&gt;
 #### ROM can be up to 16 MB split into 2 Banks! ####&lt;br /&gt;
 ## exROM can be up to 128 MB split into 16 Banks! ##&lt;br /&gt;
 ####################################################&lt;br /&gt;
&lt;br /&gt;
==GPU&#039;s OAM Sprite Objects==&lt;br /&gt;
            .__________________.&lt;br /&gt;
 .==========|OAM_Sprite_Objects|__________________________.&lt;br /&gt;
 |Byte[1].&amp;quot;.&amp;quot;Byte[0]&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;|_________________.&lt;br /&gt;
 |\7654 3210 \7654 3210                                   \&amp;quot;-&amp;quot;BIT&amp;quot;Not&amp;quot;Used&amp;quot;&amp;quot;|&lt;br /&gt;
 |\XXXX XXXX \XXXX XXXX . Sprite Address [____0-67108863] \ X BIT Used      |&lt;br /&gt;
 |Byte[3]. . Byte[2]     /  Local GPU Address (0x3FFFFFF) \ = BIT Unavaible |&lt;br /&gt;
 |\---- -XXX \XXXX XXXX /                                 \_________________|&lt;br /&gt;
 |\XXXX X--- \---- ---- ColorPallet [____0-___31] (0x001F)|&lt;br /&gt;
 |                                                        |&lt;br /&gt;
 |Byte[4]                                                 |&lt;br /&gt;
 |\7654 3210                                              |&lt;br /&gt;
 |\---- XXXX Alpha. . . . . . . . . [____0-___15] (0x000F)|&lt;br /&gt;
 |\XXXX ---- Layer. . . . . . . . . [____0-___15] (0x000F)|&lt;br /&gt;
 |                                                        |&lt;br /&gt;
 |Byte[6]. . Byte[5]                                      |&lt;br /&gt;
 |\7654 3210 \7654 3210                                   |&lt;br /&gt;
 |\---- ---- \XXXX XXXX Width . . . [____0-  255] (0x00FF)|&lt;br /&gt;
 |\XXXX XXXX \---- ---- Height. . . [____0-__255] (0x00FF)|&lt;br /&gt;
 |                                                        |&lt;br /&gt;
 |Byte[8]. . Byte[7]                                      |&lt;br /&gt;
 |\7654 3210 \7654 3210 Resized (0 = Ignore)              |&lt;br /&gt;
 |\---- ---- \XXXX XXXX \Width  . . [____0-  255] (0x00FF)|&lt;br /&gt;
 |\XXXX XXXX \---- ---- \Height . . [____0-__255] (0x00FF)|&lt;br /&gt;
 |                                                        |&lt;br /&gt;
 |Byte[A]. . Byte[9]                                      |&lt;br /&gt;
 |\7654 3210 \7654 3210                                   |&lt;br /&gt;
 |\-+XX XXXX \XXXX XXXX X Cords . . [____0-16383] (0x7FFF)|&lt;br /&gt;
 |\X--- ---- \---- ---- Flip X. . . [____0-___15] (0x000F)|______________.&lt;br /&gt;
 |                                                        |&amp;quot;&amp;quot;&amp;quot;1280&amp;quot;is&amp;quot;&amp;quot;&amp;quot;|&lt;br /&gt;
 |Byte[C]. . Byte[B]                                      | the highest |&lt;br /&gt;
 |\7654 3210 \7654 3210                                   |_____________|&lt;br /&gt;
 |\-+XX XXXX \XXXX XXXX Y Cords . . [____0-16383] (0x7FFF)|&lt;br /&gt;
 |\X--- ---- \---- ---- Flip Y. . . [____0-___15] (0x000F)|&lt;br /&gt;
 |________________________________________________________|._______________________________________.&lt;br /&gt;
     |&amp;quot;0x9800000.&amp;quot;//GPU&amp;quot;MEMORY&amp;quot;LOCATION&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;|    | Layers&#039; PtrLength                     |&lt;br /&gt;
     | +32*15*3 . //CPLength (32 Color Pallets)       |    | Address = 32-bits (actually 28-bit)   |&lt;br /&gt;
     | +40. . . . //PtrLength [Address,Width,Height]  |    | Width..Height = 32-bits (16-bit each) |&lt;br /&gt;
     | +OAM Objects(MAX:0xFFFF)*13                    |    | Total 64-bits 8 bytes per Layer       |&lt;br /&gt;
     | = SpriteData Area                              |    | 8*5 layers = 40                       |&lt;br /&gt;
     |________________________________________________|    |_______________________________________|&lt;br /&gt;
&lt;br /&gt;
[[Category:Fantasy consoles]]&lt;br /&gt;
[[Category:16 bit consoles]]&lt;br /&gt;
[[Category:Memory-mapped systems]]&lt;/div&gt;</summary>
		<author><name>BILLPC2684</name></author>
	</entry>
	<entry>
		<id>https://fantasyconsoles.org/w/index.php?title=TheGameRazer&amp;diff=268</id>
		<title>TheGameRazer</title>
		<link rel="alternate" type="text/html" href="https://fantasyconsoles.org/w/index.php?title=TheGameRazer&amp;diff=268"/>
		<updated>2024-03-04T23:37:17Z</updated>

		<summary type="html">&lt;p&gt;BILLPC2684: fixed small error with github links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:TGR_Logo.png|thumb|TheGameRazer&#039;s Logo]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TheGameRazer&#039;&#039;&#039;(CodeName: &#039;Taylor&#039;) is a Modern, Retro-styled 16-BIT GameSystem inspired by the SegaGenesis and SuperNintendo.&amp;lt;br&amp;gt;&lt;br /&gt;
Designed and created by [https://fantasyconsoles.org/wiki/User:BILLPC2684 BILLPC2684] over on [https://github.com/BILLPC2684 Github]&lt;br /&gt;
&lt;br /&gt;
==Official Github Repos==&lt;br /&gt;
* [https://github.com/BILLPC2684/TGR-PRTO-RAYLIB TGR-PRTO-RAYLIB ⟦Current⟧] from 2023&lt;br /&gt;
* [https://github.com/BILLPC2684/TGR-PRTO-JS TGR-PRTO-JS ⟦Archived⟧] from 2022&lt;br /&gt;
* [https://github.com/BILLPC2684/TGR-PRTO-PYGAME TGR-PRTO-PYGAME ⟦Archived⟧] from 2019&lt;br /&gt;
* [https://github.com/BILLPC2684/TGR-PRTO-Love2D TGR-PRTO-Love2D ⟦Archived⟧] from 2018&lt;br /&gt;
* [https://github.com/BILLPC2684/TGR-PRTO-C TGR-PRTO-C ⟦Archived⟧] from 2017&lt;br /&gt;
&lt;br /&gt;
==Specs==&lt;br /&gt;
&#039;&#039;&#039;ROM Size&#039;&#039;&#039;: 16 to 256 MB&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Number of ROM Banks&#039;&#039;&#039;: 2 (16 MB seekable in total)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;RAM Size&#039;&#039;&#039;: 64 MB of RAM (expandable to 128 MB)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Video RAM Size&#039;&#039;&#039;: 32 MB of RAM (expandable to 64 MB)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Video FrameBuffers&#039;&#039;&#039;: Layers 5, 5th is for final rendering&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Video Resolutions&#039;&#039;&#039;: &#039;&#039;480x360&#039;&#039;, &#039;&#039;800x600&#039;&#039;, &#039;&#039;852x480&#039;&#039; and &#039;&#039;1280x720&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Audio&#039;&#039;&#039;: None at the moment.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Assembly Instruction Set for Taylor using CustomASM==&lt;br /&gt;
* REGs are A, B, C, D, E, F, G, and H (0-7 respecitvely)&lt;br /&gt;
not to be confused with&lt;br /&gt;
* Instruction A, B, and C, which can represent &amp;quot;:REG&amp;quot; or a &amp;quot;:FLAG&amp;quot;, their value can range from 0x0 to 0xF(15)&lt;br /&gt;
* IMM is a Intermediate Value, can be anything from 0x0000000 to 0x7FFFFFF&lt;br /&gt;
* / means continue reading same spot 1 line up&lt;br /&gt;
&lt;br /&gt;
 HEADER0 -&amp;gt; generates DummyData for 16-char ROM Name and 12-char ROM Version.&lt;br /&gt;
 HEADER1 -&amp;gt; generates DummyData for 16-char ROM Name, 12-char ROM Version and 32-char ROM Author.&lt;br /&gt;
 HEADER2 -&amp;gt; generates DummyData for 16-char ROM Name, 12-char ROM Version, 32-char ROM Author and 32-char Checksum.&lt;br /&gt;
 &lt;br /&gt;
 mov  A:REG, B:REG -&amp;gt; moves B:REG to A:REG&lt;br /&gt;
 load A:REG, IMM   -&amp;gt; loads  IMM  to A:REG&lt;br /&gt;
 &lt;br /&gt;
 add  A:REG, B:REG, C:REG -&amp;gt; adds A and  B,  to C&lt;br /&gt;
 addi A:REG, IMM,   C:REG -&amp;gt; adds A and IMM, to C&lt;br /&gt;
 &lt;br /&gt;
 sub  A:REG, B:REG, C:REG -&amp;gt; subtracts A and  B,  to C&lt;br /&gt;
 subi A:REG, IMM,   C:REG -&amp;gt; subtracts A and IMM, to C&lt;br /&gt;
 &lt;br /&gt;
 mul  A:REG, B:REG, C:REG -&amp;gt; multiplies A and  B,  to C&lt;br /&gt;
 muli A:REG, IMM,   C:REG -&amp;gt; multiplies A and IMM, to C&lt;br /&gt;
 &lt;br /&gt;
 div  A:REG, B:REG, C:REG -&amp;gt; divides A and  B,  to C&lt;br /&gt;
 divi A:REG, IMM,   C:REG -&amp;gt; divides A and IMM, to C&lt;br /&gt;
 &lt;br /&gt;
 mod  A:REG               -&amp;gt; return last division&#039;s remander to A&lt;br /&gt;
 mod  A:REG, B:REG, C:REG -&amp;gt; divides A and  B,  and return remander to C&lt;br /&gt;
 modi A:REG, IMM,   C:REG -&amp;gt; divides A and IMM, /&lt;br /&gt;
 &lt;br /&gt;
 and  A:REG, B:REG, C:REG -&amp;gt; bitwise ands A and  B  togther, into C&lt;br /&gt;
 andi A:REG, IMM,   C:REG -&amp;gt; bitwise ands A and IMM togther, /&lt;br /&gt;
 &lt;br /&gt;
 or   A:REG, B:REG, C:REG -&amp;gt; bitwise ors A and  B  togther, into C&lt;br /&gt;
 ori  A:REG, IMM,   C:REG -&amp;gt; bitwise ors A and IMM togther, /&lt;br /&gt;
 &lt;br /&gt;
 xor  A:REG, B:REG, C:REG -&amp;gt; bitwise xors A and  B  togther, into C&lt;br /&gt;
 xori A:REG, IMM,   C:REG -&amp;gt; bitwise xors A and IMM togther, /&lt;br /&gt;
 &lt;br /&gt;
 bsl  A:REG, B:REG, C:REG -&amp;gt; bitshifts A to the left by  B,  into C&lt;br /&gt;
 bsli A:REG, IMM,   C:REG -&amp;gt; bitshifts A to the left by IMM, /&lt;br /&gt;
 &lt;br /&gt;
 bsr  A:REG, B:REG, C:REG -&amp;gt; bitshifts A to the right by  B,  into C&lt;br /&gt;
 bsri A:REG, IMM,   C:REG -&amp;gt; bitshifts A to the right by IMM, /&lt;br /&gt;
 &lt;br /&gt;
 not  A:REG -&amp;gt; inverts A&lt;br /&gt;
 &lt;br /&gt;
 flag A:REG -&amp;gt; read the CPU&#039;s Flags into A&lt;br /&gt;
 &lt;br /&gt;
 jmp  A:REG,   B:REG -&amp;gt; jumps to A..B&lt;br /&gt;
 jmp  IMM            -&amp;gt; jumps to the given Address&lt;br /&gt;
 jmp  .Label         -&amp;gt; jumps to the .Label&#039;s address&lt;br /&gt;
 &lt;br /&gt;
 cmpeq  A:REG, B:REG, C -&amp;gt; if A ==  B  &amp;gt;-/-&amp;gt; then continue, else skip 1 or C instruction&lt;br /&gt;
 cmpeqi A:REG, IMM,   C -&amp;gt; if A == IMM &amp;gt;-/&lt;br /&gt;
                                         |&lt;br /&gt;
 cmplt  A:REG, B:REG, C -&amp;gt; if A &amp;lt;   B  &amp;gt;-/&lt;br /&gt;
 cmplti A:REG, IMM,   C -&amp;gt; if A &amp;lt;  IMM &amp;gt;-/&lt;br /&gt;
                                         |&lt;br /&gt;
 cmpgt  A:REG, B:REG, C -&amp;gt; if A  &amp;gt;  B  &amp;gt;-/&lt;br /&gt;
 cmpgti A:REG, IMM,   C -&amp;gt; if A  &amp;gt; IMM &amp;gt;-/&lt;br /&gt;
 &lt;br /&gt;
 split  A:REG, B:REG, C:REG, 8 -&amp;gt; splits   A into B and  C | 8-bit (16b -&amp;gt; 8b,8b)&lt;br /&gt;
 split  A:REG, B:REG, C:REG, 4 -&amp;gt; splits   A into B and  C | 4-bit ( 8b -&amp;gt; 4b,4b)&lt;br /&gt;
 &lt;br /&gt;
 comb   A:REG, B:REG, C:REG, 8 -&amp;gt; combines A and  B into C | 8-bit (8b,8b -&amp;gt; 16b)&lt;br /&gt;
 comb   A:REG, B:REG, C:REG, 4 -&amp;gt; combines A and  B into C | 4-bit (4b,4b -&amp;gt;  8b)&lt;br /&gt;
 &lt;br /&gt;
 wmem  A:REG, B:REG, C:REG -&amp;gt; Writes A at B..C to Memory&lt;br /&gt;
 wmem  A:REG, IMM          -&amp;gt; Writes A at IMM  to Memory&lt;br /&gt;
 &lt;br /&gt;
 rmem  A:REG, B:REG, C:REG -&amp;gt; Reads B..C from Memory to A&lt;br /&gt;
 rmem  A:REG, IMM          -&amp;gt; Reads IMM  from Memory to A&lt;br /&gt;
 &lt;br /&gt;
 halt  A:FLAG -&amp;gt; Halts or Restarts the System/Device&lt;br /&gt;
 hlt___A:FLAG -&amp;gt; /&lt;br /&gt;
 |HALT_TYPES|______________.&lt;br /&gt;
 |0:&amp;quot;Halt&amp;quot;current&amp;quot;CPU&amp;quot;Core&amp;quot;|&lt;br /&gt;
 |1: Halt All CPU Cores    |&lt;br /&gt;
 |2: Shutdown Everything   |&lt;br /&gt;
 |3: Reset Everything      |&lt;br /&gt;
 |_________________________|&lt;br /&gt;
 &lt;br /&gt;
 disp  A:REG               -&amp;gt; Displays A ------- (FOR DEBUG ONLY)&lt;br /&gt;
 disp  A:REG, B:REG        -&amp;gt; Displays A,  and B /&lt;br /&gt;
 disp  A:REG, B:REG, C:REG -&amp;gt; Displays A,B and C /&lt;br /&gt;
 &lt;br /&gt;
 ipout A:REG, B:REG -&amp;gt; returns Instuction Pointer to A..B | example with 0x17F39: A would be 0x0001 and B would be 0x7F39&lt;br /&gt;
 &lt;br /&gt;
 page  A:FLAG, IMM    -&amp;gt; selects ROMBANK(IMM) from CART into MemoryMap[BANKSLOT(A)] | theres only 2 Bank Slots&lt;br /&gt;
 &lt;br /&gt;
 core  A:FLAG, B:FLAG, IMM -&amp;gt; Starts(B==1)/Stops(B==0) core A at IMM Address of memory&lt;br /&gt;
 &lt;br /&gt;
 push A:REG -&amp;gt; pushes A, into Stack&lt;br /&gt;
 pop  A:REG -&amp;gt; pops Stack, into A&lt;br /&gt;
 swap       -&amp;gt; swaps the first 2 Items in Stack&lt;br /&gt;
 &lt;br /&gt;
 call A:REG, B:REG -&amp;gt; calls A..B --------------- as a Function [uses Stack]&lt;br /&gt;
 call IMM          -&amp;gt; calls the IMM ---- address /&lt;br /&gt;
 call .Label       -&amp;gt; calls the .Label&#039;s /&lt;br /&gt;
 &lt;br /&gt;
 ret  -&amp;gt; returns from a Function [uses Stack]&lt;br /&gt;
  &lt;br /&gt;
 led IMM                 -&amp;gt; sets the System&#039;s LED color with IMM as #RRGGBB&lt;br /&gt;
 led A:REG, B:REG, C:REG -&amp;gt; sets the System&#039;s LED color with A,B,C as R,G,B&lt;br /&gt;
 &lt;br /&gt;
 clk A:REG, IMM -&amp;gt; grabs the system&#039;s clock in MicroSecond to A (IMM&amp;gt;0 will Reset the clock)&lt;br /&gt;
 &lt;br /&gt;
 wait  A:REG -&amp;gt; waits for a [A]mount of MicroSecond&lt;br /&gt;
 waiti IMM   -&amp;gt; waits for a IMM amount of MicroSecond&lt;br /&gt;
 &lt;br /&gt;
 break IMM -&amp;gt; Debugs for IMM amount of instructions (FOR DEBUG ONLY)&lt;br /&gt;
 &lt;br /&gt;
 nop -&amp;gt; what you expected me to do something? NOPe!&lt;br /&gt;
&lt;br /&gt;
==TGR MEMORY MAP==&lt;br /&gt;
&lt;br /&gt;
 ####################################################&lt;br /&gt;
 ## TGR MEMORY MAP ##################################&lt;br /&gt;
 # ROM[0]   $0800000 [$0000000 - $07FFFFF]   8   MB #&lt;br /&gt;
 # ROM[1]   $0800000 [$0800000 - $0FFFFFF]   8   MB #&lt;br /&gt;
 # SAV      $0800000 [$1000000 - $17FFFFF]   8   MB #&lt;br /&gt;
 # WRAM     $3FBFE00 [$1800000 - $57BFDFF]  63.7 MB #&lt;br /&gt;
 # STACK#0  $0020000 [$57BFE00 - $57DFDFF] 128   KB #&lt;br /&gt;
 # STACK#1  $0020000 [$57DFE00 - $57FFDFF] 128   KB #&lt;br /&gt;
 # I/O      $0000200 [$57FFE00 - $57FFFFF] 512   BY #&lt;br /&gt;
 # SRAMEXT  $4000000 [$5800000 - $97FFFFF]  64   MB #&lt;br /&gt;
 # VRAM     $1F80000 [$9800000 - $B77FFFF]  31.5 MB #&lt;br /&gt;
 # VSTACK#0 $0020000 [$B780000 - $B79FFFF] 128   KB #&lt;br /&gt;
 # VSTACK#1 $0020000 [$B7A0000 - $B7BFFFF] 128   KB #&lt;br /&gt;
 # VSTACK#2 $0020000 [$B7C0000 - $B7DFFFF] 128   KB #&lt;br /&gt;
 # VSTACK#3 $0020000 [$B7E0000 - $B7FFFFF] 128   KB #&lt;br /&gt;
 # VRAMEXT  $2000000 [$B800000 - $D7FFFFF]  32   MB #&lt;br /&gt;
 ## 216 MB [0xD800000] ##############################&lt;br /&gt;
 ####################################################&lt;br /&gt;
 ## TGR VIDEO MEMORY MAP ############################&lt;br /&gt;
 # VRAM     $1F80000 [$0000000 - $1F7FFFF]  31.5 MB #&lt;br /&gt;
 # VSTACK#0 $0020000 [$1F80000 - $1F9FFFF] 128   KB #&lt;br /&gt;
 # VSTACK#1 $0020000 [$1FA0000 - $1FBFFFF] 128   KB #&lt;br /&gt;
 # VSTACK#2 $0020000 [$1FC0000 - $1FDFFFF] 128   KB #&lt;br /&gt;
 # VSTACK#3 $0020000 [$1FE0000 - $1FFFFFF] 128   KB #&lt;br /&gt;
 # VRAMEXT  $2000000 [$2000000 - $3FFFFFF]  32   MB #&lt;br /&gt;
 ##  64 MB [0x4000000] ##############################&lt;br /&gt;
 ####################################################&lt;br /&gt;
 #### ROM can be up to 16 MB split into 2 Banks! ####&lt;br /&gt;
 ## exROM can be up to 128 MB split into 16 Banks! ##&lt;br /&gt;
 ####################################################&lt;br /&gt;
&lt;br /&gt;
==GPU&#039;s OAM Sprite Objects==&lt;br /&gt;
            .__________________.&lt;br /&gt;
 .==========|OAM_Sprite_Objects|__________________________.&lt;br /&gt;
 |Byte[1].&amp;quot;.&amp;quot;Byte[0]&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;|_________________.&lt;br /&gt;
 |\7654 3210 \7654 3210                                   \&amp;quot;-&amp;quot;BIT&amp;quot;Not&amp;quot;Used&amp;quot;&amp;quot;|&lt;br /&gt;
 |\XXXX XXXX \XXXX XXXX . Sprite Address [____0-67108863] \ X BIT Used      |&lt;br /&gt;
 |Byte[3]. . Byte[2]     /  Local GPU Address (0x3FFFFFF) \ = BIT Unavaible |&lt;br /&gt;
 |\---- -XXX \XXXX XXXX /                                 \_________________|&lt;br /&gt;
 |\XXXX X--- \---- ---- ColorPallet [____0-___31] (0x001F)|&lt;br /&gt;
 |                                                        |&lt;br /&gt;
 |Byte[4]                                                 |&lt;br /&gt;
 |\7654 3210                                              |&lt;br /&gt;
 |\---- XXXX Alpha. . . . . . . . . [____0-___15] (0x000F)|&lt;br /&gt;
 |\XXXX ---- Layer. . . . . . . . . [____0-___15] (0x000F)|&lt;br /&gt;
 |                                                        |&lt;br /&gt;
 |Byte[6]. . Byte[5]                                      |&lt;br /&gt;
 |\7654 3210 \7654 3210                                   |&lt;br /&gt;
 |\---- ---- \XXXX XXXX Width . . . [____0-  255] (0x00FF)|&lt;br /&gt;
 |\XXXX XXXX \---- ---- Height. . . [____0-__255] (0x00FF)|&lt;br /&gt;
 |                                                        |&lt;br /&gt;
 |Byte[8]. . Byte[7]                                      |&lt;br /&gt;
 |\7654 3210 \7654 3210                                   |&lt;br /&gt;
 |\-+XX XXXX \XXXX XXXX X Cords . . [____0-16383] (0x7FFF)|&lt;br /&gt;
 |\X--- ---- \---- ---- Flip X. . . [____0-___15] (0x000F)|______________.&lt;br /&gt;
 |                                                        |&amp;quot;&amp;quot;&amp;quot;1280&amp;quot;is&amp;quot;&amp;quot;&amp;quot;|&lt;br /&gt;
 |Byte[A]. . Byte[9]                                      | the highest |&lt;br /&gt;
 |\7654 3210 \7654 3210                                   |_____________|&lt;br /&gt;
 |\-+XX XXXX \XXXX XXXX X Cords . . [____0-16383] (0x7FFF)|&lt;br /&gt;
 |\X--- ---- \---- ---- Flip X. . . [____0-___15] (0x000F)|&lt;br /&gt;
 |________________________________________________________|._______________________________________.&lt;br /&gt;
     |&amp;quot;0x9800000.&amp;quot;//GPU&amp;quot;MEMORY&amp;quot;LOCATION&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;|    | Layers&#039; PtrLength                     |&lt;br /&gt;
     | +32*15*3 . //CPLength (32 Color Pallets)       |    | Address = 32-bits (actually 28-bit)   |&lt;br /&gt;
     | +40. . . . //PtrLength [Address,Width,Height]  |    | Width..Height = 32-bits (16-bit each) |&lt;br /&gt;
     | +OAM Objects(MAX:0xFFFF)*11                    |    | Total 64-bits 8 bytes per Layer       |&lt;br /&gt;
     | = SpriteData Area                              |    | 8*5 layers = 40                       |&lt;br /&gt;
     |________________________________________________|    |_______________________________________|&lt;br /&gt;
&lt;br /&gt;
[[Category:Fantasy consoles]]&lt;br /&gt;
[[Category:16 bit consoles]]&lt;br /&gt;
[[Category:Memory-mapped systems]]&lt;/div&gt;</summary>
		<author><name>BILLPC2684</name></author>
	</entry>
	<entry>
		<id>https://fantasyconsoles.org/w/index.php?title=TheGameRazer&amp;diff=267</id>
		<title>TheGameRazer</title>
		<link rel="alternate" type="text/html" href="https://fantasyconsoles.org/w/index.php?title=TheGameRazer&amp;diff=267"/>
		<updated>2024-03-04T23:13:12Z</updated>

		<summary type="html">&lt;p&gt;BILLPC2684: Inital post for TheGameRazer&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:TGR_Logo.png|thumb|TheGameRazer&#039;s Logo]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TheGameRazer&#039;&#039;&#039;(CodeName: &#039;Taylor&#039;) is a Modern, Retro-styled 16-BIT GameSystem inspired by the SegaGenesis and SuperNintendo.&amp;lt;br&amp;gt;&lt;br /&gt;
Designed and created by [https://fantasyconsoles.org/wiki/User:BILLPC2684 BILLPC2684] over on [https://github.com/BILLPC2684 Github]&lt;br /&gt;
&lt;br /&gt;
==Official Github Repos==&lt;br /&gt;
* [https://github.com/BILLPC2684/TGR-PRTO-RAYLIB TGR-PRTO-RAYLIB ⟦Current⟧ from 2023]&lt;br /&gt;
* [https://github.com/BILLPC2684/TGR-PRTO-JS TGR-PRTO-JS ⟦Archived⟧ 2022]&lt;br /&gt;
* [https://github.com/BILLPC2684/TGR-PRTO-PYGAME TGR-PRTO-PYGAME ⟦Archived⟧ 2019]&lt;br /&gt;
* [https://github.com/BILLPC2684/TGR-PRTO-Love2D TGR-PRTO-Love2D ⟦Archived⟧ from 2018]&lt;br /&gt;
* [https://github.com/BILLPC2684/TGR-PRTO-C TGR-PRTO-C ⟦Archived⟧ from 2017]&lt;br /&gt;
&lt;br /&gt;
==Specs==&lt;br /&gt;
&#039;&#039;&#039;ROM Size&#039;&#039;&#039;: 16 to 256 MB&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Number of ROM Banks&#039;&#039;&#039;: 2 (16 MB seekable in total)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;RAM Size&#039;&#039;&#039;: 64 MB of RAM (expandable to 128 MB)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Video RAM Size&#039;&#039;&#039;: 32 MB of RAM (expandable to 64 MB)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Video FrameBuffers&#039;&#039;&#039;: Layers 5, 5th is for final rendering&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Video Resolutions&#039;&#039;&#039;: &#039;&#039;480x360&#039;&#039;, &#039;&#039;800x600&#039;&#039;, &#039;&#039;852x480&#039;&#039; and &#039;&#039;1280x720&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Audio&#039;&#039;&#039;: None at the moment.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Assembly Instruction Set for Taylor using CustomASM==&lt;br /&gt;
* REGs are A, B, C, D, E, F, G, and H (0-7 respecitvely)&lt;br /&gt;
not to be confused with&lt;br /&gt;
* Instruction A, B, and C, which can represent &amp;quot;:REG&amp;quot; or a &amp;quot;:FLAG&amp;quot;, their value can range from 0x0 to 0xF(15)&lt;br /&gt;
* IMM is a Intermediate Value, can be anything from 0x0000000 to 0x7FFFFFF&lt;br /&gt;
* / means continue reading same spot 1 line up&lt;br /&gt;
&lt;br /&gt;
 HEADER0 -&amp;gt; generates DummyData for 16-char ROM Name and 12-char ROM Version.&lt;br /&gt;
 HEADER1 -&amp;gt; generates DummyData for 16-char ROM Name, 12-char ROM Version and 32-char ROM Author.&lt;br /&gt;
 HEADER2 -&amp;gt; generates DummyData for 16-char ROM Name, 12-char ROM Version, 32-char ROM Author and 32-char Checksum.&lt;br /&gt;
 &lt;br /&gt;
 mov  A:REG, B:REG -&amp;gt; moves B:REG to A:REG&lt;br /&gt;
 load A:REG, IMM   -&amp;gt; loads  IMM  to A:REG&lt;br /&gt;
 &lt;br /&gt;
 add  A:REG, B:REG, C:REG -&amp;gt; adds A and  B,  to C&lt;br /&gt;
 addi A:REG, IMM,   C:REG -&amp;gt; adds A and IMM, to C&lt;br /&gt;
 &lt;br /&gt;
 sub  A:REG, B:REG, C:REG -&amp;gt; subtracts A and  B,  to C&lt;br /&gt;
 subi A:REG, IMM,   C:REG -&amp;gt; subtracts A and IMM, to C&lt;br /&gt;
 &lt;br /&gt;
 mul  A:REG, B:REG, C:REG -&amp;gt; multiplies A and  B,  to C&lt;br /&gt;
 muli A:REG, IMM,   C:REG -&amp;gt; multiplies A and IMM, to C&lt;br /&gt;
 &lt;br /&gt;
 div  A:REG, B:REG, C:REG -&amp;gt; divides A and  B,  to C&lt;br /&gt;
 divi A:REG, IMM,   C:REG -&amp;gt; divides A and IMM, to C&lt;br /&gt;
 &lt;br /&gt;
 mod  A:REG               -&amp;gt; return last division&#039;s remander to A&lt;br /&gt;
 mod  A:REG, B:REG, C:REG -&amp;gt; divides A and  B,  and return remander to C&lt;br /&gt;
 modi A:REG, IMM,   C:REG -&amp;gt; divides A and IMM, /&lt;br /&gt;
 &lt;br /&gt;
 and  A:REG, B:REG, C:REG -&amp;gt; bitwise ands A and  B  togther, into C&lt;br /&gt;
 andi A:REG, IMM,   C:REG -&amp;gt; bitwise ands A and IMM togther, /&lt;br /&gt;
 &lt;br /&gt;
 or   A:REG, B:REG, C:REG -&amp;gt; bitwise ors A and  B  togther, into C&lt;br /&gt;
 ori  A:REG, IMM,   C:REG -&amp;gt; bitwise ors A and IMM togther, /&lt;br /&gt;
 &lt;br /&gt;
 xor  A:REG, B:REG, C:REG -&amp;gt; bitwise xors A and  B  togther, into C&lt;br /&gt;
 xori A:REG, IMM,   C:REG -&amp;gt; bitwise xors A and IMM togther, /&lt;br /&gt;
 &lt;br /&gt;
 bsl  A:REG, B:REG, C:REG -&amp;gt; bitshifts A to the left by  B,  into C&lt;br /&gt;
 bsli A:REG, IMM,   C:REG -&amp;gt; bitshifts A to the left by IMM, /&lt;br /&gt;
 &lt;br /&gt;
 bsr  A:REG, B:REG, C:REG -&amp;gt; bitshifts A to the right by  B,  into C&lt;br /&gt;
 bsri A:REG, IMM,   C:REG -&amp;gt; bitshifts A to the right by IMM, /&lt;br /&gt;
 &lt;br /&gt;
 not  A:REG -&amp;gt; inverts A&lt;br /&gt;
 &lt;br /&gt;
 flag A:REG -&amp;gt; read the CPU&#039;s Flags into A&lt;br /&gt;
 &lt;br /&gt;
 jmp  A:REG,   B:REG -&amp;gt; jumps to A..B&lt;br /&gt;
 jmp  IMM            -&amp;gt; jumps to the given Address&lt;br /&gt;
 jmp  .Label         -&amp;gt; jumps to the .Label&#039;s address&lt;br /&gt;
 &lt;br /&gt;
 cmpeq  A:REG, B:REG, C -&amp;gt; if A ==  B  &amp;gt;-/-&amp;gt; then continue, else skip 1 or C instruction&lt;br /&gt;
 cmpeqi A:REG, IMM,   C -&amp;gt; if A == IMM &amp;gt;-/&lt;br /&gt;
                                         |&lt;br /&gt;
 cmplt  A:REG, B:REG, C -&amp;gt; if A &amp;lt;   B  &amp;gt;-/&lt;br /&gt;
 cmplti A:REG, IMM,   C -&amp;gt; if A &amp;lt;  IMM &amp;gt;-/&lt;br /&gt;
                                         |&lt;br /&gt;
 cmpgt  A:REG, B:REG, C -&amp;gt; if A  &amp;gt;  B  &amp;gt;-/&lt;br /&gt;
 cmpgti A:REG, IMM,   C -&amp;gt; if A  &amp;gt; IMM &amp;gt;-/&lt;br /&gt;
 &lt;br /&gt;
 split  A:REG, B:REG, C:REG, 8 -&amp;gt; splits   A into B and  C | 8-bit (16b -&amp;gt; 8b,8b)&lt;br /&gt;
 split  A:REG, B:REG, C:REG, 4 -&amp;gt; splits   A into B and  C | 4-bit ( 8b -&amp;gt; 4b,4b)&lt;br /&gt;
 &lt;br /&gt;
 comb   A:REG, B:REG, C:REG, 8 -&amp;gt; combines A and  B into C | 8-bit (8b,8b -&amp;gt; 16b)&lt;br /&gt;
 comb   A:REG, B:REG, C:REG, 4 -&amp;gt; combines A and  B into C | 4-bit (4b,4b -&amp;gt;  8b)&lt;br /&gt;
 &lt;br /&gt;
 wmem  A:REG, B:REG, C:REG -&amp;gt; Writes A at B..C to Memory&lt;br /&gt;
 wmem  A:REG, IMM          -&amp;gt; Writes A at IMM  to Memory&lt;br /&gt;
 &lt;br /&gt;
 rmem  A:REG, B:REG, C:REG -&amp;gt; Reads B..C from Memory to A&lt;br /&gt;
 rmem  A:REG, IMM          -&amp;gt; Reads IMM  from Memory to A&lt;br /&gt;
 &lt;br /&gt;
 halt  A:FLAG -&amp;gt; Halts or Restarts the System/Device&lt;br /&gt;
 hlt___A:FLAG -&amp;gt; /&lt;br /&gt;
 |HALT_TYPES|______________.&lt;br /&gt;
 |0:&amp;quot;Halt&amp;quot;current&amp;quot;CPU&amp;quot;Core&amp;quot;|&lt;br /&gt;
 |1: Halt All CPU Cores    |&lt;br /&gt;
 |2: Shutdown Everything   |&lt;br /&gt;
 |3: Reset Everything      |&lt;br /&gt;
 |_________________________|&lt;br /&gt;
 &lt;br /&gt;
 disp  A:REG               -&amp;gt; Displays A ------- (FOR DEBUG ONLY)&lt;br /&gt;
 disp  A:REG, B:REG        -&amp;gt; Displays A,  and B /&lt;br /&gt;
 disp  A:REG, B:REG, C:REG -&amp;gt; Displays A,B and C /&lt;br /&gt;
 &lt;br /&gt;
 ipout A:REG, B:REG -&amp;gt; returns Instuction Pointer to A..B | example with 0x17F39: A would be 0x0001 and B would be 0x7F39&lt;br /&gt;
 &lt;br /&gt;
 page  A:FLAG, IMM    -&amp;gt; selects ROMBANK(IMM) from CART into MemoryMap[BANKSLOT(A)] | theres only 2 Bank Slots&lt;br /&gt;
 &lt;br /&gt;
 core  A:FLAG, B:FLAG, IMM -&amp;gt; Starts(B==1)/Stops(B==0) core A at IMM Address of memory&lt;br /&gt;
 &lt;br /&gt;
 push A:REG -&amp;gt; pushes A, into Stack&lt;br /&gt;
 pop  A:REG -&amp;gt; pops Stack, into A&lt;br /&gt;
 swap       -&amp;gt; swaps the first 2 Items in Stack&lt;br /&gt;
 &lt;br /&gt;
 call A:REG, B:REG -&amp;gt; calls A..B --------------- as a Function [uses Stack]&lt;br /&gt;
 call IMM          -&amp;gt; calls the IMM ---- address /&lt;br /&gt;
 call .Label       -&amp;gt; calls the .Label&#039;s /&lt;br /&gt;
 &lt;br /&gt;
 ret  -&amp;gt; returns from a Function [uses Stack]&lt;br /&gt;
  &lt;br /&gt;
 led IMM                 -&amp;gt; sets the System&#039;s LED color with IMM as #RRGGBB&lt;br /&gt;
 led A:REG, B:REG, C:REG -&amp;gt; sets the System&#039;s LED color with A,B,C as R,G,B&lt;br /&gt;
 &lt;br /&gt;
 clk A:REG, IMM -&amp;gt; grabs the system&#039;s clock in MicroSecond to A (IMM&amp;gt;0 will Reset the clock)&lt;br /&gt;
 &lt;br /&gt;
 wait  A:REG -&amp;gt; waits for a [A]mount of MicroSecond&lt;br /&gt;
 waiti IMM   -&amp;gt; waits for a IMM amount of MicroSecond&lt;br /&gt;
 &lt;br /&gt;
 break IMM -&amp;gt; Debugs for IMM amount of instructions (FOR DEBUG ONLY)&lt;br /&gt;
 &lt;br /&gt;
 nop -&amp;gt; what you expected me to do something? NOPe!&lt;br /&gt;
&lt;br /&gt;
==TGR MEMORY MAP==&lt;br /&gt;
&lt;br /&gt;
 ####################################################&lt;br /&gt;
 ## TGR MEMORY MAP ##################################&lt;br /&gt;
 # ROM[0]   $0800000 [$0000000 - $07FFFFF]   8   MB #&lt;br /&gt;
 # ROM[1]   $0800000 [$0800000 - $0FFFFFF]   8   MB #&lt;br /&gt;
 # SAV      $0800000 [$1000000 - $17FFFFF]   8   MB #&lt;br /&gt;
 # WRAM     $3FBFE00 [$1800000 - $57BFDFF]  63.7 MB #&lt;br /&gt;
 # STACK#0  $0020000 [$57BFE00 - $57DFDFF] 128   KB #&lt;br /&gt;
 # STACK#1  $0020000 [$57DFE00 - $57FFDFF] 128   KB #&lt;br /&gt;
 # I/O      $0000200 [$57FFE00 - $57FFFFF] 512   BY #&lt;br /&gt;
 # SRAMEXT  $4000000 [$5800000 - $97FFFFF]  64   MB #&lt;br /&gt;
 # VRAM     $1F80000 [$9800000 - $B77FFFF]  31.5 MB #&lt;br /&gt;
 # VSTACK#0 $0020000 [$B780000 - $B79FFFF] 128   KB #&lt;br /&gt;
 # VSTACK#1 $0020000 [$B7A0000 - $B7BFFFF] 128   KB #&lt;br /&gt;
 # VSTACK#2 $0020000 [$B7C0000 - $B7DFFFF] 128   KB #&lt;br /&gt;
 # VSTACK#3 $0020000 [$B7E0000 - $B7FFFFF] 128   KB #&lt;br /&gt;
 # VRAMEXT  $2000000 [$B800000 - $D7FFFFF]  32   MB #&lt;br /&gt;
 ## 216 MB [0xD800000] ##############################&lt;br /&gt;
 ####################################################&lt;br /&gt;
 ## TGR VIDEO MEMORY MAP ############################&lt;br /&gt;
 # VRAM     $1F80000 [$0000000 - $1F7FFFF]  31.5 MB #&lt;br /&gt;
 # VSTACK#0 $0020000 [$1F80000 - $1F9FFFF] 128   KB #&lt;br /&gt;
 # VSTACK#1 $0020000 [$1FA0000 - $1FBFFFF] 128   KB #&lt;br /&gt;
 # VSTACK#2 $0020000 [$1FC0000 - $1FDFFFF] 128   KB #&lt;br /&gt;
 # VSTACK#3 $0020000 [$1FE0000 - $1FFFFFF] 128   KB #&lt;br /&gt;
 # VRAMEXT  $2000000 [$2000000 - $3FFFFFF]  32   MB #&lt;br /&gt;
 ##  64 MB [0x4000000] ##############################&lt;br /&gt;
 ####################################################&lt;br /&gt;
 #### ROM can be up to 16 MB split into 2 Banks! ####&lt;br /&gt;
 ## exROM can be up to 128 MB split into 16 Banks! ##&lt;br /&gt;
 ####################################################&lt;br /&gt;
&lt;br /&gt;
==GPU&#039;s OAM Sprite Objects==&lt;br /&gt;
            .__________________.&lt;br /&gt;
 .==========|OAM_Sprite_Objects|__________________________.&lt;br /&gt;
 |Byte[1].&amp;quot;.&amp;quot;Byte[0]&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;|_________________.&lt;br /&gt;
 |\7654 3210 \7654 3210                                   \&amp;quot;-&amp;quot;BIT&amp;quot;Not&amp;quot;Used&amp;quot;&amp;quot;|&lt;br /&gt;
 |\XXXX XXXX \XXXX XXXX . Sprite Address [____0-67108863] \ X BIT Used      |&lt;br /&gt;
 |Byte[3]. . Byte[2]     /  Local GPU Address (0x3FFFFFF) \ = BIT Unavaible |&lt;br /&gt;
 |\---- -XXX \XXXX XXXX /                                 \_________________|&lt;br /&gt;
 |\XXXX X--- \---- ---- ColorPallet [____0-___31] (0x001F)|&lt;br /&gt;
 |                                                        |&lt;br /&gt;
 |Byte[4]                                                 |&lt;br /&gt;
 |\7654 3210                                              |&lt;br /&gt;
 |\---- XXXX Alpha. . . . . . . . . [____0-___15] (0x000F)|&lt;br /&gt;
 |\XXXX ---- Layer. . . . . . . . . [____0-___15] (0x000F)|&lt;br /&gt;
 |                                                        |&lt;br /&gt;
 |Byte[6]. . Byte[5]                                      |&lt;br /&gt;
 |\7654 3210 \7654 3210                                   |&lt;br /&gt;
 |\---- ---- \XXXX XXXX Width . . . [____0-  255] (0x00FF)|&lt;br /&gt;
 |\XXXX XXXX \---- ---- Height. . . [____0-__255] (0x00FF)|&lt;br /&gt;
 |                                                        |&lt;br /&gt;
 |Byte[8]. . Byte[7]                                      |&lt;br /&gt;
 |\7654 3210 \7654 3210                                   |&lt;br /&gt;
 |\-+XX XXXX \XXXX XXXX X Cords . . [____0-16383] (0x7FFF)|&lt;br /&gt;
 |\X--- ---- \---- ---- Flip X. . . [____0-___15] (0x000F)|______________.&lt;br /&gt;
 |                                                        |&amp;quot;&amp;quot;&amp;quot;1280&amp;quot;is&amp;quot;&amp;quot;&amp;quot;|&lt;br /&gt;
 |Byte[A]. . Byte[9]                                      | the highest |&lt;br /&gt;
 |\7654 3210 \7654 3210                                   |_____________|&lt;br /&gt;
 |\-+XX XXXX \XXXX XXXX X Cords . . [____0-16383] (0x7FFF)|&lt;br /&gt;
 |\X--- ---- \---- ---- Flip X. . . [____0-___15] (0x000F)|&lt;br /&gt;
 |________________________________________________________|._______________________________________.&lt;br /&gt;
     |&amp;quot;0x9800000.&amp;quot;//GPU&amp;quot;MEMORY&amp;quot;LOCATION&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;|    | Layers&#039; PtrLength                     |&lt;br /&gt;
     | +32*15*3 . //CPLength (32 Color Pallets)       |    | Address = 32-bits (actually 28-bit)   |&lt;br /&gt;
     | +40. . . . //PtrLength [Address,Width,Height]  |    | Width..Height = 32-bits (16-bit each) |&lt;br /&gt;
     | +OAM Objects(MAX:0xFFFF)*11                    |    | Total 64-bits 8 bytes per Layer       |&lt;br /&gt;
     | = SpriteData Area                              |    | 8*5 layers = 40                       |&lt;br /&gt;
     |________________________________________________|    |_______________________________________|&lt;br /&gt;
&lt;br /&gt;
[[Category:Fantasy consoles]]&lt;br /&gt;
[[Category:16 bit consoles]]&lt;br /&gt;
[[Category:Memory-mapped systems]]&lt;/div&gt;</summary>
		<author><name>BILLPC2684</name></author>
	</entry>
	<entry>
		<id>https://fantasyconsoles.org/w/index.php?title=File:TGR_Logo.png&amp;diff=266</id>
		<title>File:TGR Logo.png</title>
		<link rel="alternate" type="text/html" href="https://fantasyconsoles.org/w/index.php?title=File:TGR_Logo.png&amp;diff=266"/>
		<updated>2024-03-04T21:18:16Z</updated>

		<summary type="html">&lt;p&gt;BILLPC2684: TheGameRazer&amp;#039;s Logo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
TheGameRazer&#039;s Logo&lt;/div&gt;</summary>
		<author><name>BILLPC2684</name></author>
	</entry>
</feed>