base:6502_6510_maths
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
base:6502_6510_maths [2018-02-11 22:59] – Added 24 bit multiplication neils | base:6502_6510_maths [2022-04-18 17:49] – [Trigonometrics] oswald | ||
---|---|---|---|
Line 11: | Line 11: | ||
* [[http:// | * [[http:// | ||
* [[8-Bit Ranged Comparison]] - By White Flame | * [[8-Bit Ranged Comparison]] - By White Flame | ||
+ | * [[16-Bit Absolute Comparison]] - By Skate & Eins | ||
+ | * [[16-Bit Comparison]] - TWW | ||
+ | |||
==== Addition/ | ==== Addition/ | ||
* [[16bit addition and subtraction]] - 16-bit addition and subtraction by FMan | * [[16bit addition and subtraction]] - 16-bit addition and subtraction by FMan | ||
- | * [[Inverse subtraction]] - .A = operand - .A, opposite of what SBC does - by White Flame | + | * [[Inverse subtraction]] - .A = operand - .A, opposite of what SBC does by White Flame |
- | * [[Signed 8bit + 16bit addition]] - by White Flame | + | * [[Signed 8bit + 16bit addition]] - Sign extension |
==== Multiplication ==== | ==== Multiplication ==== | ||
Line 21: | Line 24: | ||
* [[8bit multiplication (8bit product)]] - by White Flame | * [[8bit multiplication (8bit product)]] - by White Flame | ||
* [[8bit multiplication (16bit product)]] - also can be 16*8=16bit - by White Flame | * [[8bit multiplication (16bit product)]] - also can be 16*8=16bit - by White Flame | ||
+ | * [[Short 8bit multiplication (16bit product)]] - by Graham | ||
+ | * [[8bit multiplication (16bit product) fast no tables]] - by djmips | ||
* [[16bit multiplication (32-bit product)]] | * [[16bit multiplication (32-bit product)]] | ||
- | * [[Short 8bit multiplication (16bit product)]] - by Graham | ||
* [[Fast 8bit multiplication(16bit product)]] (signed multiplication) - by Oswald/ | * [[Fast 8bit multiplication(16bit product)]] (signed multiplication) - by Oswald/ | ||
* [[Seriously fast multiplication]] (8/16 bit signed/ | * [[Seriously fast multiplication]] (8/16 bit signed/ | ||
Line 33: | Line 37: | ||
* [[8bit divide (8bit product)]] | * [[8bit divide (8bit product)]] | ||
+ | * [[8bit divide by constant (8bit result)]] | ||
* [[16bit division (16-bit result) ]] | * [[16bit division (16-bit result) ]] | ||
* [[24bit division (24-bit result) ]] | * [[24bit division (24-bit result) ]] | ||
* [[signed 8bit divide by 2 (arithmetic shift right)]] - by Bitbreaker/ | * [[signed 8bit divide by 2 (arithmetic shift right)]] - by Bitbreaker/ | ||
+ | |||
+ | ==== Exponentiation ==== | ||
+ | * [[Exponentiation]] | ||
==== Square Root ==== | ==== Square Root ==== | ||
- | * [[Fast sqrt]] (extracted from CSDB forums)- Graham | + | * [[Fast sqrt]] (extracted from CSDB forums) - Graham |
+ | * [[16bit and 24bit sqrt]] (extracted from CSDB forums) | ||
==== Log ==== | ==== Log ==== | ||
Line 46: | Line 55: | ||
* [[8bit atan2 (8-bit angle)]] - by doynax | * [[8bit atan2 (8-bit angle)]] - by doynax | ||
+ | * [[8bit atan2 using the CORDIC algorithm]] - by Oswald | ||
* [[Generating Sines with BASIC]] - by Doynax | * [[Generating Sines with BASIC]] - by Doynax | ||
* [[Generating Approximate Sines in Assembly]] - by White Flame | * [[Generating Approximate Sines in Assembly]] - by White Flame | ||
Line 73: | Line 83: | ||
* [[Perspective]] | * [[Perspective]] | ||
* [[Backface Culling]] | * [[Backface Culling]] | ||
- | * [[Lighting]] | ||
- | * [[Flat Shading]] | ||
- | * [[Gouraud Shading]] | ||
- | Also I strongly advise you to read Stephen Judd's awesome series titled "A different perspective" | + | You may also want to read Stephen Judd's awesome series titled "A different perspective" |
* [[magazines: | * [[magazines: | ||
Line 101: | Line 108: | ||
===== Random Numbers ===== | ===== Random Numbers ===== | ||
+ | * [[Comparison of 6502 random generators]] | ||
+ | * [[16bit xorshift random generator]] | ||
+ | * [[X ABC Random Number Generator (8/16 bit)]] | ||
+ | * [[32bit Galois LFSR]] | ||
+ | * [[Two very fast 16bit pseudo random generators as LFSR]] - with nearly 2^31 period - by Hanno Behrens | ||
+ | * [[16bit pseudo random generator]] | ||
+ | * [[another 16bit pseudo random generator]] | ||
+ | * [[Small, fast 8-bit PRNG]] - with full 8-bit period - by White Flame | ||
+ | * [[Small, fast 16-bit PRNG]] - with full 16-bit period - by White Flame | ||
+ | * [[AX+ Tinyrand8]] - a fast 8-bit random generator with internal 16bit state - by Wil | ||
* [[BASIC RND routine]] - Stephen Judd | * [[BASIC RND routine]] - Stephen Judd | ||
* [[Fast 8bit ranged random numbers]] - by kerm1t | * [[Fast 8bit ranged random numbers]] - by kerm1t | ||
- | * [[16bit pseudo random generator]] | + | * [[Ranged Random Numbers with Even Distribution]] - by Kruthers |
- | * [[another 16bit pseudo random generator]] | + | |
- | * [[Two very fast 16bit pseudo random generators as LFSR]] - with nearly 2^31 period | + | |
- | * [[32bit Galois LFSR]] | + | |
* [[Flexible Galois LFSR]] - by gregg | * [[Flexible Galois LFSR]] - by gregg | ||
- | * [[Small, fast 8-bit PRNG]] - with full 8-bit period - by White Flame | + | |
- | * [[Small, fast 16-bit PRNG]] - with full 16-bit period - by White Flame | + | |
===== Number conversion ===== | ===== Number conversion ===== | ||
Line 116: | Line 130: | ||
* [[More Hexadecimal to Decimal Conversion]] - without lookup tables, by Andrew Jacobs - taken from [[http:// | * [[More Hexadecimal to Decimal Conversion]] - without lookup tables, by Andrew Jacobs - taken from [[http:// | ||
* [[Another Hexadecimal to Decimal Conversion]] - using lookup tables, to plain ASCII, by Mace | * [[Another Hexadecimal to Decimal Conversion]] - using lookup tables, to plain ASCII, by Mace | ||
+ | * [[Int16 and UInt16 conversion to String]] | ||
* [[Decimal to Hexadecimal Conversion]] - by Mace | * [[Decimal to Hexadecimal Conversion]] - by Mace | ||
* [[8 bit to Hexadecimal Conversion]] - by Abujok | * [[8 bit to Hexadecimal Conversion]] - by Abujok | ||
Line 123: | Line 138: | ||
===== Packing/ | ===== Packing/ | ||
+ | For actual crunching software and usage of crunching software, see [[https:// | ||
+ | * [[Streaming 1/2/4/8-bit Numbers Without Spanning Bytes]] - by White Flame | ||
* [[The Secret of Fast LZW Crunching]] - by Antitrack/ | * [[The Secret of Fast LZW Crunching]] - by Antitrack/ | ||
- | * [[RLE pack/unpack]] - Coded by MagerValp | + | * [[base: |
* [[2Mhz Time Crunch V5 disassembled]] - Disassembly of Stoat and Tim's Time Cruncher V5. Disassembled by Marko Makela. | * [[2Mhz Time Crunch V5 disassembled]] - Disassembly of Stoat and Tim's Time Cruncher V5. Disassembled by Marko Makela. | ||
* [[Decruncher for MDG-Packer/ | * [[Decruncher for MDG-Packer/ |
base/6502_6510_maths.txt · Last modified: 2023-08-21 00:49 by repose