Difference between revisions of "Main Page"

From SizeCoding
Jump to: navigation, search
m
 
(31 intermediate revisions by 6 users not shown)
Line 1: Line 1:
 
== Welcome to SizeCoding.org! ==
 
== Welcome to SizeCoding.org! ==
  
'''SizeCoding.org is a wiki dedicated to the art of creating very tiny programs for the 80x86 family of CPUs. As sizecoding is also popular on other hardware we recently opened the website also for other plaforms, check the links below.''' By "very tiny programs", we mean programs that are '''256 bytes or less in size''', typically created by members of the [https://en.wikipedia.org/wiki/Demoscene demoscene] as a show of programming skill.  The size of these tiny programs is measured by their total size in opcode bytes, and are usually presented as executable .COM files to be run in pure DOS, a DOS VM running inside another operating system, or an emulator that can run DOS such as DOSBox.  
+
'''SizeCoding.org is a wiki dedicated to the art of creating very tiny programs for most popular types of CPUs. As sizecoding is also popular on other hardware, we recently opened the website for other platforms as well, check the links below.'''   
  
'''Despite their tiny size, these programs are able to produce amazing graphical displays, playable games, and sometimes music.''' There are even some surprisingly effective programs in under '''16 bytes''', such as [https://trixter.oldskool.org/2012/12/17/maze-generation-in-thirteen-bytes/ a maze generator in 10 bytes], a [[Paint16b|mouse-driven paint program in 16 bytes]], and an [[M8trix_8b|"Enter the Matrix" screensaver]] in only 8 bytes.  
+
By "very tiny programs", we mean programs that are '''256 bytes or less in size''', typically created by members of the [https://en.wikipedia.org/wiki/Demoscene demoscene] as a show of programming skill. The size of these tiny programs is measured by their total size in opcode bytes, and are usually presented as an executable binary.
  
'''The intent of this wiki is to teach x86 assembler programmers the various techniques used to create tiny demoscene intros.'''  While these techniques can be used for other applications (boot sectors, BIOS and firmware code, etc.), the information presented here is firmly oriented towards the demoscene. Practicality and common sense are sometimes thrown out the window just to shave a single byte -- consider yourself warned.
+
'''Despite their tiny size, these programs are able to produce amazing graphical displays, playable games, and sometimes music.'''  There are even some surprisingly effective programs in just '''16 bytes'''  [https://demozoo.org/productions/?platform=&production_type=55] or even '''8 bytes''' [https://demozoo.org/productions/?platform=&production_type=54].  
  
This wiki is divided into the following major sections for x86:
+
'''The intent of this wiki is to teach assembler programmers the various techniques used to create tiny demoscene intros.'''
 +
While these techniques can be used for other applications (boot sectors, ROM, BIOS and firmware code, etc.), the information presented here is firmly oriented towards the demoscene. Practicality and common sense are sometimes thrown out the window just to shave a single byte. Consider yourself warned.
  
*'''[[Getting Started]]''' - What do you need to know before starting your first tinyprog?
+
Here is the list of active platforms available on this wiki:
 
+
*'''[[DOS]]''' - Sizecoding for x86/DOS.
*'''[[Techniques|Tips, Tricks, and Techniques]]''' - The meat of the wiki.  Lists of small opcodes, default environment settings, size optimization basics, and a ton of random tips.
+
*'''[[Linux]]''' - Sizecoding for Linux.
 
+
*'''[[Fantasy consoles]]''' - Dedicated to Fantasy Consoles , Processing and other Virtual Machine languages (such as JavaScript).
*'''[[Case Studies]]''' - Analysis of existing award-winning tiny programs, with comments on what choices were made and why.
+
*'''[[ARM]]''' - ARM-based platforms (RISC OS, Game oy Advance, etc.)
 
+
*'''[[Motorola 68000]]''' - Start sizecoding for the Atari ST or Amiga.
*'''[[Resources|Additional Resources]]''' - Discussion threads, competitions, repositories, and other external references that can aid you in your quest.
+
*'''[[6502]]''' - Commodore 64, Atari XE/XL, Apple II, Atari 2600, Atari Lynx, etc.
 
+
*'''[[Z80]]''' - For all your ZX Spectrum, Amstrad CPC, etc. sizecoding needs.
For other platforms check out the sections here:
+
*'''[[PDP-11]]''' - Get your BK-0010 and BK-0011 kicks here.
 
+
*'''[[RISC-V]]''' - Mainly on cheap microcontrollers or QEMU for now, but first RISC−V micro-processors based board come since one year.
*'''[[Risc OS on ARM based CPUs]]''' - Tired of x86 ? Create your tiny intro on ARM hardware on Risc OS.
+
*'''[[Bytebeat]]''' - Tiny music created from mathematical expressions.
 +
*'''[[ReGIS]]''' - VT125, VT230, VT240/241 and more terminal display vector graphics language.

Latest revision as of 02:54, 15 February 2024

Welcome to SizeCoding.org!

SizeCoding.org is a wiki dedicated to the art of creating very tiny programs for most popular types of CPUs. As sizecoding is also popular on other hardware, we recently opened the website for other platforms as well, check the links below.

By "very tiny programs", we mean programs that are 256 bytes or less in size, typically created by members of the demoscene as a show of programming skill. The size of these tiny programs is measured by their total size in opcode bytes, and are usually presented as an executable binary.

Despite their tiny size, these programs are able to produce amazing graphical displays, playable games, and sometimes music. There are even some surprisingly effective programs in just 16 bytes [1] or even 8 bytes [2].

The intent of this wiki is to teach assembler programmers the various techniques used to create tiny demoscene intros. While these techniques can be used for other applications (boot sectors, ROM, BIOS and firmware code, etc.), the information presented here is firmly oriented towards the demoscene. Practicality and common sense are sometimes thrown out the window just to shave a single byte. Consider yourself warned.

Here is the list of active platforms available on this wiki:

  • DOS - Sizecoding for x86/DOS.
  • Linux - Sizecoding for Linux.
  • Fantasy consoles - Dedicated to Fantasy Consoles , Processing and other Virtual Machine languages (such as JavaScript).
  • ARM - ARM-based platforms (RISC OS, Game oy Advance, etc.)
  • Motorola 68000 - Start sizecoding for the Atari ST or Amiga.
  • 6502 - Commodore 64, Atari XE/XL, Apple II, Atari 2600, Atari Lynx, etc.
  • Z80 - For all your ZX Spectrum, Amstrad CPC, etc. sizecoding needs.
  • PDP-11 - Get your BK-0010 and BK-0011 kicks here.
  • RISC-V - Mainly on cheap microcontrollers or QEMU for now, but first RISC−V micro-processors based board come since one year.
  • Bytebeat - Tiny music created from mathematical expressions.
  • ReGIS - VT125, VT230, VT240/241 and more terminal display vector graphics language.