Thanks for using Compiler Explorer
Sponsors
Jakt
C++
Ada
Analysis
Assembly
C
Carbon
C++ (Circle)
CIRCT
Clean
CMake
COBOL
C++ for OpenCL
MLIR
Cppx
Cppx-Blue
Cppx-Gold
Cpp2-cppfront
Crystal
C#
CUDA C++
D
Dart
Erlang
Fortran
F#
Go
Haskell
HLSL
Hook
ispc
Java
Julia
Kotlin
LLVM IR
LLVM MIR
Modula-2
Nim
Objective-C
Objective-C++
OCaml
OpenCL C
Pascal
Pony
Python
Racket
Ruby
Rust
Scala
Solidity
Swift
Toit
TypeScript Native
Visual Basic
Zig
c source #1
Output
Compile to binary object
Link to binary
Execute the code
Intel asm syntax
Demangle identifiers
Filters
Unused labels
Library functions
Directives
Comments
Horizontal whitespace
Compiler
6502 cc65 2.17
6502 cc65 2.18
6502 cc65 2.19
6502 cc65 trunk
ARM gcc 10.2 (linux)
ARM gcc 10.2.1 (none)
ARM gcc 10.3 (linux)
ARM gcc 10.3.1 (2021.07 none)
ARM gcc 10.3.1 (2021.10 none)
ARM gcc 11.1 (linux)
ARM gcc 11.2 (linux)
ARM gcc 11.2.1 (none)
ARM gcc 11.3 (linux)
ARM gcc 12.1 (linux)
ARM gcc 12.2 (linux)
ARM gcc 4.5.4 (linux)
ARM gcc 4.6.4 (linux)
ARM gcc 5.4 (linux)
ARM gcc 5.4.1 (none)
ARM gcc 6.3.0 (linux)
ARM gcc 6.4 (linux)
ARM gcc 7.2.1 (none)
ARM gcc 7.3 (linux)
ARM gcc 7.5 (linux)
ARM gcc 8.2 (WinCE)
ARM gcc 8.2 (linux)
ARM gcc 8.3.1 (none)
ARM gcc 8.5 (linux)
ARM gcc 9.2.1 (none)
ARM gcc 9.3 (linux)
ARM msvc v19.0 (WINE)
ARM msvc v19.10 (WINE)
ARM msvc v19.14 (WINE)
ARM64 Morello gcc 10.1 Alpha 1
ARM64 Morello gcc 10.1 Alpha 2
ARM64 gcc 10.2
ARM64 gcc 10.3
ARM64 gcc 10.4
ARM64 gcc 11.1
ARM64 gcc 11.2
ARM64 gcc 11.3
ARM64 gcc 12.1
ARM64 gcc 12.2
ARM64 gcc 5.4
ARM64 gcc 6.3
ARM64 gcc 6.4
ARM64 gcc 7.3
ARM64 gcc 7.5
ARM64 gcc 8.2
ARM64 gcc 8.5
ARM64 gcc 9.3
ARM64 gcc 9.4
ARM64 gcc 9.5
ARM64 gcc trunk
ARM64 msvc v19.14 (WINE)
AVR gcc 10.3.0
AVR gcc 11.1.0
AVR gcc 12.2.0
AVR gcc 4.5.4
AVR gcc 4.6.4
AVR gcc 5.4.0
AVR gcc 9.2.0
AVR gcc 9.3.0
Arduino Mega (1.8.9)
Arduino Uno (1.8.9)
BPF clang (trunk)
BPF clang 13.0.0
BPF clang 14.0.0
BPF clang 15.0.0
BPF clang 16.0.0
BPF gcc trunk
Chibicc 2020-12-07
FRC 2019
FRC 2020
K1C gcc 7.4
K1C gcc 7.5
KVX ACB 4.1.0 (GCC 7.5.0)
KVX ACB 4.1.0-cd1 (GCC 7.5.0)
KVX ACB 4.10.0 (GCC 10.3.1)
KVX ACB 4.11.1 (GCC 10.3.1)
KVX ACB 4.2.0 (GCC 7.5.0)
KVX ACB 4.3.0 (GCC 7.5.0)
KVX ACB 4.4.0 (GCC 7.5.0)
KVX ACB 4.6.0 (GCC 9.4.1)
KVX ACB 4.8.0 (GCC 9.4.1)
KVX ACB 4.9.0 (GCC 9.4.1)
MIPS64 gcc 5.4 (el)
MRISC32 gcc (trunk)
MSP430 gcc 12.2.0
MSP430 gcc 4.5.3
MSP430 gcc 5.3.0
MSP430 gcc 6.2.1
MinGW clang 14.0.3
MinGW clang 14.0.6
MinGW clang 15.0.7
MinGW gcc 11.3.0
MinGW gcc 12.1.0
MinGW gcc 12.2.0
RISC-V rv32gc clang (trunk)
RISC-V rv32gc clang 10.0.0
RISC-V rv32gc clang 10.0.1
RISC-V rv32gc clang 11.0.0
RISC-V rv32gc clang 11.0.1
RISC-V rv32gc clang 12.0.0
RISC-V rv32gc clang 12.0.1
RISC-V rv32gc clang 13.0.0
RISC-V rv32gc clang 13.0.1
RISC-V rv32gc clang 14.0.0
RISC-V rv32gc clang 15.0.0
RISC-V rv32gc clang 16.0.0
RISC-V rv32gc clang 9.0.0
RISC-V rv32gc clang 9.0.1
RISC-V rv32gc gcc 10.2.0
RISC-V rv32gc gcc 10.3.0
RISC-V rv32gc gcc 11.2.0
RISC-V rv32gc gcc 11.3.0
RISC-V rv32gc gcc 12.1.0
RISC-V rv32gc gcc 12.2.0
RISC-V rv32gc gcc 8.2.0
RISC-V rv32gc gcc 8.5.0
RISC-V rv32gc gcc 9.4.0
RISC-V rv64gc clang (trunk)
RISC-V rv64gc clang 10.0.0
RISC-V rv64gc clang 10.0.1
RISC-V rv64gc clang 11.0.0
RISC-V rv64gc clang 11.0.1
RISC-V rv64gc clang 12.0.0
RISC-V rv64gc clang 12.0.1
RISC-V rv64gc clang 13.0.0
RISC-V rv64gc clang 13.0.1
RISC-V rv64gc clang 14.0.0
RISC-V rv64gc clang 15.0.0
RISC-V rv64gc clang 16.0.0
RISC-V rv64gc clang 9.0.0
RISC-V rv64gc clang 9.0.1
RISC-V rv64gc gcc 10.2.0
RISC-V rv64gc gcc 10.3.0
RISC-V rv64gc gcc 11.2.0
RISC-V rv64gc gcc 11.3.0
RISC-V rv64gc gcc 12.1.0
RISC-V rv64gc gcc 12.2.0
RISC-V rv64gc gcc 8.2.0
RISC-V rv64gc gcc 8.5.0
RISC-V rv64gc gcc 9.4.0
Raspbian Buster
Raspbian Stretch
SDCC 4.0.0
SDCC 4.1.0
SPARC LEON gcc 12.2.0
SPARC gcc 12.2.0
SPARC64 gcc 12.2.0
TCC (trunk)
TCC 0.9.27
TI C6x gcc 12.2.0
TI CL430 21.6.1
WebAssembly clang (trunk)
Xtensa ESP32 gcc 8.2.0 (2019r2)
Xtensa ESP32 gcc 8.2.0 (2020r1)
Xtensa ESP32 gcc 8.2.0 (2020r2)
Xtensa ESP32 gcc 8.4.0 (2020r3)
Xtensa ESP32 gcc 8.4.0 (2021r1)
Xtensa ESP32 gcc 8.4.0 (2021r2)
Xtensa ESP32-S2 gcc 8.2.0 (2019r2)
Xtensa ESP32-S2 gcc 8.2.0 (2020r1)
Xtensa ESP32-S2 gcc 8.2.0 (2020r2)
Xtensa ESP32-S2 gcc 8.4.0 (2020r3)
Xtensa ESP32-S2 gcc 8.4.0 (2021r1)
Xtensa ESP32-S2 gcc 8.4.0 (2021r2)
Xtensa ESP32-S3 gcc 8.4.0 (2020r3)
Xtensa ESP32-S3 gcc 8.4.0 (2021r1)
Xtensa ESP32-S3 gcc 8.4.0 (2021r2)
arm64 msvc v19.28 VS16.9
arm64 msvc v19.29 VS16.10
arm64 msvc v19.29 VS16.11
arm64 msvc v19.30
arm64 msvc v19.31
arm64 msvc v19.32
arm64 msvc v19.33
arm64 msvc v19.latest
armv7-a clang (trunk)
armv7-a clang 10.0.0
armv7-a clang 10.0.1
armv7-a clang 11.0.0
armv7-a clang 11.0.1
armv7-a clang 12.0.0
armv7-a clang 12.0.1
armv7-a clang 13.0.0
armv7-a clang 13.0.1
armv7-a clang 14.0.0
armv7-a clang 15.0.0
armv7-a clang 16.0.0
armv7-a clang 9.0.0
armv7-a clang 9.0.1
armv8-a clang (trunk)
armv8-a clang (trunk, all architectural features)
armv8-a clang 10.0.0
armv8-a clang 10.0.1
armv8-a clang 11.0.0
armv8-a clang 11.0.1
armv8-a clang 12.0.0
armv8-a clang 12.0.1
armv8-a clang 13.0.0
armv8-a clang 13.0.1
armv8-a clang 14.0.0
armv8-a clang 15.0.0
armv8-a clang 16.0.0
armv8-a clang 9.0.0
armv8-a clang 9.0.1
cproc-master
llvm-mos atari 8-bit
llvm-mos commander X16
llvm-mos commodore 64
llvm-mos mega65
llvm-mos nes-cnrom
llvm-mos nes-mmc1
llvm-mos nes-mmc3
llvm-mos nes-nrom
llvm-mos osi-c1p
loongarch64 gcc 12.2.0
mips (el) gcc 12.1.0
mips (el) gcc 12.2.0
mips (el) gcc 5.4
mips clang 13.0.0
mips clang 14.0.0
mips clang 15.0.0
mips clang 16.0.0
mips gcc 11.2.0
mips gcc 12.1.0
mips gcc 12.2.0
mips gcc 5.4
mips gcc 9.3.0 (codescape)
mips64 (el) gcc 12.1.0
mips64 (el) gcc 12.2.0
mips64 clang 13.0.0
mips64 clang 14.0.0
mips64 clang 15.0.0
mips64 clang 16.0.0
mips64 gcc 11.2.0
mips64 gcc 12.1.0
mips64 gcc 12.2.0
mips64 gcc 5.4
mips64el clang 13.0.0
mips64el clang 14.0.0
mips64el clang 15.0.0
mips64el clang 16.0.0
mipsel clang 13.0.0
mipsel clang 14.0.0
mipsel clang 15.0.0
mipsel clang 16.0.0
nanoMIPS gcc 6.3.0
power gcc 11.2.0
power gcc 12.1.0
power gcc 12.2.0
power gcc 4.8.5
power64 AT12.0 (gcc8)
power64 AT13.0 (gcc9)
power64 gcc 11.2.0
power64 gcc 12.1.0
power64 gcc 12.2.0
power64le AT12.0 (gcc8)
power64le AT13.0 (gcc9)
power64le clang (trunk)
power64le gcc 11.2.0
power64le gcc 12.1.0
power64le gcc 12.2.0
power64le gcc 6.3.0
powerpc64 clang (trunk)
ppci 0.5.5
s390x gcc 11.2.0
s390x gcc 12.1.0
s390x gcc 12.2.0
sh gcc 12.2.0
sh gcc 4.9.4
sh gcc 9.5.0
x64 msvc v19.0 (WINE)
x64 msvc v19.10 (WINE)
x64 msvc v19.14
x64 msvc v19.14 (WINE)
x64 msvc v19.15
x64 msvc v19.16
x64 msvc v19.20
x64 msvc v19.21
x64 msvc v19.22
x64 msvc v19.23
x64 msvc v19.24
x64 msvc v19.25
x64 msvc v19.26
x64 msvc v19.27
x64 msvc v19.28
x64 msvc v19.28 VS16.9
x64 msvc v19.29 VS16.10
x64 msvc v19.29 VS16.11
x64 msvc v19.30
x64 msvc v19.31
x64 msvc v19.32
x64 msvc v19.33
x64 msvc v19.latest
x86 CompCert 3.10
x86 CompCert 3.11
x86 CompCert 3.12
x86 CompCert 3.9
x86 gcc 1.27
x86 msvc v19.0 (WINE)
x86 msvc v19.10 (WINE)
x86 msvc v19.14
x86 msvc v19.14 (WINE)
x86 msvc v19.15
x86 msvc v19.16
x86 msvc v19.20
x86 msvc v19.21
x86 msvc v19.22
x86 msvc v19.23
x86 msvc v19.24
x86 msvc v19.25
x86 msvc v19.26
x86 msvc v19.27
x86 msvc v19.28
x86 msvc v19.28 VS16.9
x86 msvc v19.29 VS16.10
x86 msvc v19.29 VS16.11
x86 msvc v19.30
x86 msvc v19.31
x86 msvc v19.32
x86 msvc v19.33
x86 msvc v19.latest
x86 tendra (trunk)
x86-64 clang (assertions trunk)
x86-64 clang (thephd.dev)
x86-64 clang (trunk)
x86-64 clang (widberg)
x86-64 clang 10.0.0
x86-64 clang 10.0.1
x86-64 clang 11.0.0
x86-64 clang 11.0.1
x86-64 clang 12.0.0
x86-64 clang 12.0.1
x86-64 clang 13.0.0
x86-64 clang 13.0.1
x86-64 clang 14.0.0
x86-64 clang 15.0.0
x86-64 clang 16.0.0
x86-64 clang 3.0.0
x86-64 clang 3.1
x86-64 clang 3.2
x86-64 clang 3.3
x86-64 clang 3.4.1
x86-64 clang 3.5
x86-64 clang 3.5.1
x86-64 clang 3.5.2
x86-64 clang 3.6
x86-64 clang 3.7
x86-64 clang 3.7.1
x86-64 clang 3.8
x86-64 clang 3.8.1
x86-64 clang 3.9.0
x86-64 clang 3.9.1
x86-64 clang 4.0.0
x86-64 clang 4.0.1
x86-64 clang 5.0.0
x86-64 clang 5.0.1
x86-64 clang 5.0.2
x86-64 clang 6.0.0
x86-64 clang 6.0.1
x86-64 clang 7.0.0
x86-64 clang 7.0.1
x86-64 clang 7.1.0
x86-64 clang 8.0.0
x86-64 clang 8.0.1
x86-64 clang 9.0.0
x86-64 clang 9.0.1
x86-64 gcc (trunk)
x86-64 gcc 10.1
x86-64 gcc 10.2
x86-64 gcc 10.3
x86-64 gcc 10.4
x86-64 gcc 11.1
x86-64 gcc 11.2
x86-64 gcc 11.3
x86-64 gcc 12.1
x86-64 gcc 12.2
x86-64 gcc 4.1.2
x86-64 gcc 4.4.7
x86-64 gcc 4.5.3
x86-64 gcc 4.6.4
x86-64 gcc 4.7.1
x86-64 gcc 4.7.2
x86-64 gcc 4.7.3
x86-64 gcc 4.7.4
x86-64 gcc 4.8.1
x86-64 gcc 4.8.2
x86-64 gcc 4.8.3
x86-64 gcc 4.8.4
x86-64 gcc 4.8.5
x86-64 gcc 4.9.0
x86-64 gcc 4.9.1
x86-64 gcc 4.9.2
x86-64 gcc 4.9.3
x86-64 gcc 4.9.4
x86-64 gcc 5.1
x86-64 gcc 5.2
x86-64 gcc 5.3
x86-64 gcc 5.4
x86-64 gcc 6.1
x86-64 gcc 6.2
x86-64 gcc 6.3
x86-64 gcc 7.1
x86-64 gcc 7.2
x86-64 gcc 7.3
x86-64 gcc 7.4
x86-64 gcc 8.1
x86-64 gcc 8.2
x86-64 gcc 8.3
x86-64 gcc 8.4
x86-64 gcc 8.5
x86-64 gcc 9.1
x86-64 gcc 9.2
x86-64 gcc 9.3
x86-64 gcc 9.4
x86-64 gcc 9.5
x86-64 icc 13.0.1
x86-64 icc 16.0.3
x86-64 icc 17.0.0
x86-64 icc 18.0.0
x86-64 icc 19.0.0
x86-64 icc 19.0.1
x86-64 icc 2021.1.2
x86-64 icc 2021.2.0
x86-64 icc 2021.3.0
x86-64 icc 2021.4.0
x86-64 icc 2021.5.0
x86-64 icc 2021.6.0
x86-64 icc 2021.7.0
x86-64 icc 2021.7.1
x86-64 icx 2021.1.2
x86-64 icx 2021.2.0
x86-64 icx 2021.3.0
x86-64 icx 2021.4.0
x86-64 icx 2022.0.0
x86-64 icx 2022.1.0
x86-64 icx 2022.2.0
x86-64 icx 2022.2.1
x86_64 CompCert 3.10
x86_64 CompCert 3.11
x86_64 CompCert 3.12
x86_64 CompCert 3.9
z88dk 2.2
zig cc 0.10.0
zig cc 0.6.0
zig cc 0.7.0
zig cc 0.7.1
zig cc 0.8.0
zig cc 0.9.0
zig cc trunk
Options
Source code
// original can be found at: // https://github.com/z88dk/z88dk/blob/master/examples/console/dstar_gencon.c /* * DStar converted to use generic console/conio for drawing * * Program history is in other versions of dstar * * -DUSE_JOYSTICK switches to using the joystick * -DUSE_UDGS uses UDGs for the characters * -DSWITCH_MODE=x switches to screenmode x for display * -DSOUND or -DSOUNDB adds bells and whistles if available */ #include <conio.h> #include <ctype.h> #include <games.h> #include <stdio.h> #include <stdlib.h> #include <sys/ioctl.h> #ifdef SOUND #include <sound.h> #endif #ifdef SOUNDB #include <sound.h> #endif /* Key definitions, change these to define your keys! */ #ifndef USE_JOYSTICK #define K_UP 'W' #define K_DOWN 'S' #define K_LEFT 'A' #define K_RIGHT 'D' #define K_SWITCH ' ' #define K_EXIT 'P' #define K_CLEAR 'H' #endif #define MAXLEVEL 25 #define STARTLEV 0 /* Start level -1 */ #define WALL 1 #define BUBB 2 #define BALL 3 #define BOX 4 /* Mapping between block numbers and ascii characters */ #ifdef USE_UDGS static const unsigned char blocks[] = {' ', 128, 129, 130, 131}; #else static const unsigned char blocks[] = {' ', 'X', 'o', '@', '#'}; #endif static unsigned char balloffset; /* Ball position */ static unsigned char boxoffset; /* Box position */ static unsigned char ballorbox; /* 1 if box, 0 if ball */ static unsigned char level; /* Take a guess! */ static unsigned char x_offset; static unsigned char y_offset; static unsigned char board[144]; /* Level internal map thing */ #include "bitmaps.h" #include "levels.h" static void playgame(); static void setupgame(); static void gamekeys(); static void left(unsigned char *ptr); static void right(unsigned char *ptr); static void down(unsigned char *ptr); static void up(unsigned char *ptr); static void setuplevel(); static void drawboard(); static int checkfinish(); static int standardmiddle(unsigned char nextpos); int main() { int maxx, maxy; #ifdef USE_UDGS void *param = &udgs; console_ioctl(IOCTL_GENCON_SET_UDGS, ¶m); #endif #ifdef SWITCH_MODE maxy = SWITCH_MODE; console_ioctl(IOCTL_GENCON_SET_MODE, &maxy); #endif #ifdef __SPECTRUM cputs("\x01 "); #endif screensize(&maxx, &maxy); x_offset = (maxx - 16) / 2; y_offset = (maxy - 9) / 2; clrscr(); gotoxy(0, 0); cputs("DSTAR TERMINAL"); playgame(); /* Play the game */ return 0; } static void playgame() { setupgame(); /* Set level to 1, get level etc */ /* Loop while checkfinish() says we haven't finished! */ while (checkfinish()) { gamekeys(); /* Scan keys */ } } /* Set some variables up at the start.. */ static void setupgame() { ballorbox = 0; level = STARTLEV; setuplevel(); } #ifndef USE_JOYSTICK static void gamekeys() { unsigned char *charptr; if (ballorbox) charptr = &boxoffset; else charptr = &balloffset; switch (toupper(getk())) { case K_DOWN: down(charptr); break; case K_UP: up(charptr); break; case K_RIGHT: right(charptr); break; case K_LEFT: left(charptr); break; case K_SWITCH: ballorbox ^= 1; /* Toggle ball/box */ #ifdef SOUND bit_fx4(5); #endif #ifdef SOUNDB bit_fx6(6); #endif break; case K_EXIT: #ifdef SOUNDB bit_fx6(4); #endif exit(0); case K_CLEAR: #ifdef SOUND bit_fx4(3); #endif #ifdef SOUNDB bit_fx6(1); #endif setuplevel(); } } #else static void gamekeys() { unsigned char *charptr; unsigned char joy; if (ballorbox) charptr = &boxoffset; else charptr = &balloffset; joy = joystick(1); if (joy & MOVE_DOWN) { down(charptr); } else if (joy & MOVE_UP) { up(charptr); } else if (joy & MOVE_RIGHT) { right(charptr); } else if (joy & MOVE_LEFT) { left(charptr); } else if (joy & MOVE_FIRE) { ballorbox ^= 1; /* Toggle ball/box */ } else if (joy & MOVE_FIRE2) { setuplevel(); } } #endif /* Movement functions - all of these are pretty well similar so I * will only comment the first one - it's fairly obvious what is * happening though */ static void left(unsigned char *ptr) { unsigned char *locn; while (1) { locn = *(ptr) + board; if (standardmiddle(*(locn - 1))) return; *(locn - 1) = *locn; *locn = 0; (*ptr)--; /* ptr is the location of blob */ drawboard(); /* Draw screen */ } } static void right(unsigned char *ptr) { unsigned char *locn; while (1) { locn = *(ptr) + board; if (standardmiddle(*(locn + 1))) return; *(locn + 1) = *locn; *locn = 0; (*ptr)++; drawboard(); } } static void down(unsigned char *ptr) { unsigned char *locn; while (1) { locn = *(ptr) + board; if (standardmiddle(*(locn + 16))) return; *(locn + 16) = *locn; *locn = 0; (*ptr) += 16; drawboard(); } } static void up(unsigned char *ptr) { unsigned char *locn; while (1) { locn = *(ptr) + board; if (standardmiddle(*(locn - 16))) return; *(locn - 16) = *locn; *locn = 0; (*ptr) -= 16; drawboard(); } } /* Check to see if we're running into anything, if box is set then * if we hit anything we want to stop, if we're ball then if we * hit anything except for bubble we wanna stop */ static int standardmiddle(unsigned char nextpos) { if (ballorbox) return (nextpos); /* For box */ else if (nextpos == BUBB || nextpos == 0) return (0); return (1); } /* Check to see if a level is finished * There are 144 squares in each level, note the use of != instead of * </<= - this is quicker to execute on the Z80! */ static int checkfinish() { unsigned char *ptr; int i; ptr = board; for (i = 1; i != 144; i++) { if (*ptr++ == BUBB) return (1); } if (++level == MAXLEVEL) return (0); /* Done all the levels!! */ setuplevel(); return (1); } /* Setup a level..the level is stored compressed, taking up 38 bytes a * time. * byte 0 - position of ball * byte 1 - position of box * 2-37 - level data * * Level data is stored as two bits per square, so we have to shift our * picked up byte round to get it */ static void setuplevel() { int y; const unsigned char *ptr; unsigned char *ptr2; ptr2 = board; ptr = &levels[level][0]; /* ptr points to start of level now */ /* First two bytes are the ball and the boxes position */ balloffset = *ptr++; boxoffset = *ptr++; /* Now, decompress level into board */ for (y = 0; y != 36; y++) { *ptr2++ = ((*ptr) >> 6) & 3; *ptr2++ = ((*ptr) >> 4) & 3; *ptr2++ = ((*ptr) >> 2) & 3; *ptr2++ = (*ptr) & 3; ptr++; } /* Now, plot the ball and box into the internal map */ ptr2 = board; *(ptr2 + balloffset) = BALL; *(ptr2 + boxoffset) = BOX; drawboard(); #ifdef SOUND bit_fx4(1); #endif #ifdef SOUNDB bit_fx6(0); #endif } static void drawboard() { unsigned char x, y; unsigned char *ptr; ptr = board; for (y = 0; y != 9; y++) { for (x = 0; x != 16; x++) { gotoxy(x + x_offset, y + y_offset); putch(blocks[*ptr++]); } } #ifdef SOUND bit_open(); bit_click(); bit_close(); #endif #ifdef SOUNDB bit_open(); bit_click(); bit_close(); #endif }
c source #2
Output
Compile to binary object
Link to binary
Execute the code
Intel asm syntax
Demangle identifiers
Filters
Unused labels
Library functions
Directives
Comments
Horizontal whitespace
Compiler
6502 cc65 2.17
6502 cc65 2.18
6502 cc65 2.19
6502 cc65 trunk
ARM gcc 10.2 (linux)
ARM gcc 10.2.1 (none)
ARM gcc 10.3 (linux)
ARM gcc 10.3.1 (2021.07 none)
ARM gcc 10.3.1 (2021.10 none)
ARM gcc 11.1 (linux)
ARM gcc 11.2 (linux)
ARM gcc 11.2.1 (none)
ARM gcc 11.3 (linux)
ARM gcc 12.1 (linux)
ARM gcc 12.2 (linux)
ARM gcc 4.5.4 (linux)
ARM gcc 4.6.4 (linux)
ARM gcc 5.4 (linux)
ARM gcc 5.4.1 (none)
ARM gcc 6.3.0 (linux)
ARM gcc 6.4 (linux)
ARM gcc 7.2.1 (none)
ARM gcc 7.3 (linux)
ARM gcc 7.5 (linux)
ARM gcc 8.2 (WinCE)
ARM gcc 8.2 (linux)
ARM gcc 8.3.1 (none)
ARM gcc 8.5 (linux)
ARM gcc 9.2.1 (none)
ARM gcc 9.3 (linux)
ARM msvc v19.0 (WINE)
ARM msvc v19.10 (WINE)
ARM msvc v19.14 (WINE)
ARM64 Morello gcc 10.1 Alpha 1
ARM64 Morello gcc 10.1 Alpha 2
ARM64 gcc 10.2
ARM64 gcc 10.3
ARM64 gcc 10.4
ARM64 gcc 11.1
ARM64 gcc 11.2
ARM64 gcc 11.3
ARM64 gcc 12.1
ARM64 gcc 12.2
ARM64 gcc 5.4
ARM64 gcc 6.3
ARM64 gcc 6.4
ARM64 gcc 7.3
ARM64 gcc 7.5
ARM64 gcc 8.2
ARM64 gcc 8.5
ARM64 gcc 9.3
ARM64 gcc 9.4
ARM64 gcc 9.5
ARM64 gcc trunk
ARM64 msvc v19.14 (WINE)
AVR gcc 10.3.0
AVR gcc 11.1.0
AVR gcc 12.2.0
AVR gcc 4.5.4
AVR gcc 4.6.4
AVR gcc 5.4.0
AVR gcc 9.2.0
AVR gcc 9.3.0
Arduino Mega (1.8.9)
Arduino Uno (1.8.9)
BPF clang (trunk)
BPF clang 13.0.0
BPF clang 14.0.0
BPF clang 15.0.0
BPF clang 16.0.0
BPF gcc trunk
Chibicc 2020-12-07
FRC 2019
FRC 2020
K1C gcc 7.4
K1C gcc 7.5
KVX ACB 4.1.0 (GCC 7.5.0)
KVX ACB 4.1.0-cd1 (GCC 7.5.0)
KVX ACB 4.10.0 (GCC 10.3.1)
KVX ACB 4.11.1 (GCC 10.3.1)
KVX ACB 4.2.0 (GCC 7.5.0)
KVX ACB 4.3.0 (GCC 7.5.0)
KVX ACB 4.4.0 (GCC 7.5.0)
KVX ACB 4.6.0 (GCC 9.4.1)
KVX ACB 4.8.0 (GCC 9.4.1)
KVX ACB 4.9.0 (GCC 9.4.1)
MIPS64 gcc 5.4 (el)
MRISC32 gcc (trunk)
MSP430 gcc 12.2.0
MSP430 gcc 4.5.3
MSP430 gcc 5.3.0
MSP430 gcc 6.2.1
MinGW clang 14.0.3
MinGW clang 14.0.6
MinGW clang 15.0.7
MinGW gcc 11.3.0
MinGW gcc 12.1.0
MinGW gcc 12.2.0
RISC-V rv32gc clang (trunk)
RISC-V rv32gc clang 10.0.0
RISC-V rv32gc clang 10.0.1
RISC-V rv32gc clang 11.0.0
RISC-V rv32gc clang 11.0.1
RISC-V rv32gc clang 12.0.0
RISC-V rv32gc clang 12.0.1
RISC-V rv32gc clang 13.0.0
RISC-V rv32gc clang 13.0.1
RISC-V rv32gc clang 14.0.0
RISC-V rv32gc clang 15.0.0
RISC-V rv32gc clang 16.0.0
RISC-V rv32gc clang 9.0.0
RISC-V rv32gc clang 9.0.1
RISC-V rv32gc gcc 10.2.0
RISC-V rv32gc gcc 10.3.0
RISC-V rv32gc gcc 11.2.0
RISC-V rv32gc gcc 11.3.0
RISC-V rv32gc gcc 12.1.0
RISC-V rv32gc gcc 12.2.0
RISC-V rv32gc gcc 8.2.0
RISC-V rv32gc gcc 8.5.0
RISC-V rv32gc gcc 9.4.0
RISC-V rv64gc clang (trunk)
RISC-V rv64gc clang 10.0.0
RISC-V rv64gc clang 10.0.1
RISC-V rv64gc clang 11.0.0
RISC-V rv64gc clang 11.0.1
RISC-V rv64gc clang 12.0.0
RISC-V rv64gc clang 12.0.1
RISC-V rv64gc clang 13.0.0
RISC-V rv64gc clang 13.0.1
RISC-V rv64gc clang 14.0.0
RISC-V rv64gc clang 15.0.0
RISC-V rv64gc clang 16.0.0
RISC-V rv64gc clang 9.0.0
RISC-V rv64gc clang 9.0.1
RISC-V rv64gc gcc 10.2.0
RISC-V rv64gc gcc 10.3.0
RISC-V rv64gc gcc 11.2.0
RISC-V rv64gc gcc 11.3.0
RISC-V rv64gc gcc 12.1.0
RISC-V rv64gc gcc 12.2.0
RISC-V rv64gc gcc 8.2.0
RISC-V rv64gc gcc 8.5.0
RISC-V rv64gc gcc 9.4.0
Raspbian Buster
Raspbian Stretch
SDCC 4.0.0
SDCC 4.1.0
SPARC LEON gcc 12.2.0
SPARC gcc 12.2.0
SPARC64 gcc 12.2.0
TCC (trunk)
TCC 0.9.27
TI C6x gcc 12.2.0
TI CL430 21.6.1
WebAssembly clang (trunk)
Xtensa ESP32 gcc 8.2.0 (2019r2)
Xtensa ESP32 gcc 8.2.0 (2020r1)
Xtensa ESP32 gcc 8.2.0 (2020r2)
Xtensa ESP32 gcc 8.4.0 (2020r3)
Xtensa ESP32 gcc 8.4.0 (2021r1)
Xtensa ESP32 gcc 8.4.0 (2021r2)
Xtensa ESP32-S2 gcc 8.2.0 (2019r2)
Xtensa ESP32-S2 gcc 8.2.0 (2020r1)
Xtensa ESP32-S2 gcc 8.2.0 (2020r2)
Xtensa ESP32-S2 gcc 8.4.0 (2020r3)
Xtensa ESP32-S2 gcc 8.4.0 (2021r1)
Xtensa ESP32-S2 gcc 8.4.0 (2021r2)
Xtensa ESP32-S3 gcc 8.4.0 (2020r3)
Xtensa ESP32-S3 gcc 8.4.0 (2021r1)
Xtensa ESP32-S3 gcc 8.4.0 (2021r2)
arm64 msvc v19.28 VS16.9
arm64 msvc v19.29 VS16.10
arm64 msvc v19.29 VS16.11
arm64 msvc v19.30
arm64 msvc v19.31
arm64 msvc v19.32
arm64 msvc v19.33
arm64 msvc v19.latest
armv7-a clang (trunk)
armv7-a clang 10.0.0
armv7-a clang 10.0.1
armv7-a clang 11.0.0
armv7-a clang 11.0.1
armv7-a clang 12.0.0
armv7-a clang 12.0.1
armv7-a clang 13.0.0
armv7-a clang 13.0.1
armv7-a clang 14.0.0
armv7-a clang 15.0.0
armv7-a clang 16.0.0
armv7-a clang 9.0.0
armv7-a clang 9.0.1
armv8-a clang (trunk)
armv8-a clang (trunk, all architectural features)
armv8-a clang 10.0.0
armv8-a clang 10.0.1
armv8-a clang 11.0.0
armv8-a clang 11.0.1
armv8-a clang 12.0.0
armv8-a clang 12.0.1
armv8-a clang 13.0.0
armv8-a clang 13.0.1
armv8-a clang 14.0.0
armv8-a clang 15.0.0
armv8-a clang 16.0.0
armv8-a clang 9.0.0
armv8-a clang 9.0.1
cproc-master
llvm-mos atari 8-bit
llvm-mos commander X16
llvm-mos commodore 64
llvm-mos mega65
llvm-mos nes-cnrom
llvm-mos nes-mmc1
llvm-mos nes-mmc3
llvm-mos nes-nrom
llvm-mos osi-c1p
loongarch64 gcc 12.2.0
mips (el) gcc 12.1.0
mips (el) gcc 12.2.0
mips (el) gcc 5.4
mips clang 13.0.0
mips clang 14.0.0
mips clang 15.0.0
mips clang 16.0.0
mips gcc 11.2.0
mips gcc 12.1.0
mips gcc 12.2.0
mips gcc 5.4
mips gcc 9.3.0 (codescape)
mips64 (el) gcc 12.1.0
mips64 (el) gcc 12.2.0
mips64 clang 13.0.0
mips64 clang 14.0.0
mips64 clang 15.0.0
mips64 clang 16.0.0
mips64 gcc 11.2.0
mips64 gcc 12.1.0
mips64 gcc 12.2.0
mips64 gcc 5.4
mips64el clang 13.0.0
mips64el clang 14.0.0
mips64el clang 15.0.0
mips64el clang 16.0.0
mipsel clang 13.0.0
mipsel clang 14.0.0
mipsel clang 15.0.0
mipsel clang 16.0.0
nanoMIPS gcc 6.3.0
power gcc 11.2.0
power gcc 12.1.0
power gcc 12.2.0
power gcc 4.8.5
power64 AT12.0 (gcc8)
power64 AT13.0 (gcc9)
power64 gcc 11.2.0
power64 gcc 12.1.0
power64 gcc 12.2.0
power64le AT12.0 (gcc8)
power64le AT13.0 (gcc9)
power64le clang (trunk)
power64le gcc 11.2.0
power64le gcc 12.1.0
power64le gcc 12.2.0
power64le gcc 6.3.0
powerpc64 clang (trunk)
ppci 0.5.5
s390x gcc 11.2.0
s390x gcc 12.1.0
s390x gcc 12.2.0
sh gcc 12.2.0
sh gcc 4.9.4
sh gcc 9.5.0
x64 msvc v19.0 (WINE)
x64 msvc v19.10 (WINE)
x64 msvc v19.14
x64 msvc v19.14 (WINE)
x64 msvc v19.15
x64 msvc v19.16
x64 msvc v19.20
x64 msvc v19.21
x64 msvc v19.22
x64 msvc v19.23
x64 msvc v19.24
x64 msvc v19.25
x64 msvc v19.26
x64 msvc v19.27
x64 msvc v19.28
x64 msvc v19.28 VS16.9
x64 msvc v19.29 VS16.10
x64 msvc v19.29 VS16.11
x64 msvc v19.30
x64 msvc v19.31
x64 msvc v19.32
x64 msvc v19.33
x64 msvc v19.latest
x86 CompCert 3.10
x86 CompCert 3.11
x86 CompCert 3.12
x86 CompCert 3.9
x86 gcc 1.27
x86 msvc v19.0 (WINE)
x86 msvc v19.10 (WINE)
x86 msvc v19.14
x86 msvc v19.14 (WINE)
x86 msvc v19.15
x86 msvc v19.16
x86 msvc v19.20
x86 msvc v19.21
x86 msvc v19.22
x86 msvc v19.23
x86 msvc v19.24
x86 msvc v19.25
x86 msvc v19.26
x86 msvc v19.27
x86 msvc v19.28
x86 msvc v19.28 VS16.9
x86 msvc v19.29 VS16.10
x86 msvc v19.29 VS16.11
x86 msvc v19.30
x86 msvc v19.31
x86 msvc v19.32
x86 msvc v19.33
x86 msvc v19.latest
x86 tendra (trunk)
x86-64 clang (assertions trunk)
x86-64 clang (thephd.dev)
x86-64 clang (trunk)
x86-64 clang (widberg)
x86-64 clang 10.0.0
x86-64 clang 10.0.1
x86-64 clang 11.0.0
x86-64 clang 11.0.1
x86-64 clang 12.0.0
x86-64 clang 12.0.1
x86-64 clang 13.0.0
x86-64 clang 13.0.1
x86-64 clang 14.0.0
x86-64 clang 15.0.0
x86-64 clang 16.0.0
x86-64 clang 3.0.0
x86-64 clang 3.1
x86-64 clang 3.2
x86-64 clang 3.3
x86-64 clang 3.4.1
x86-64 clang 3.5
x86-64 clang 3.5.1
x86-64 clang 3.5.2
x86-64 clang 3.6
x86-64 clang 3.7
x86-64 clang 3.7.1
x86-64 clang 3.8
x86-64 clang 3.8.1
x86-64 clang 3.9.0
x86-64 clang 3.9.1
x86-64 clang 4.0.0
x86-64 clang 4.0.1
x86-64 clang 5.0.0
x86-64 clang 5.0.1
x86-64 clang 5.0.2
x86-64 clang 6.0.0
x86-64 clang 6.0.1
x86-64 clang 7.0.0
x86-64 clang 7.0.1
x86-64 clang 7.1.0
x86-64 clang 8.0.0
x86-64 clang 8.0.1
x86-64 clang 9.0.0
x86-64 clang 9.0.1
x86-64 gcc (trunk)
x86-64 gcc 10.1
x86-64 gcc 10.2
x86-64 gcc 10.3
x86-64 gcc 10.4
x86-64 gcc 11.1
x86-64 gcc 11.2
x86-64 gcc 11.3
x86-64 gcc 12.1
x86-64 gcc 12.2
x86-64 gcc 4.1.2
x86-64 gcc 4.4.7
x86-64 gcc 4.5.3
x86-64 gcc 4.6.4
x86-64 gcc 4.7.1
x86-64 gcc 4.7.2
x86-64 gcc 4.7.3
x86-64 gcc 4.7.4
x86-64 gcc 4.8.1
x86-64 gcc 4.8.2
x86-64 gcc 4.8.3
x86-64 gcc 4.8.4
x86-64 gcc 4.8.5
x86-64 gcc 4.9.0
x86-64 gcc 4.9.1
x86-64 gcc 4.9.2
x86-64 gcc 4.9.3
x86-64 gcc 4.9.4
x86-64 gcc 5.1
x86-64 gcc 5.2
x86-64 gcc 5.3
x86-64 gcc 5.4
x86-64 gcc 6.1
x86-64 gcc 6.2
x86-64 gcc 6.3
x86-64 gcc 7.1
x86-64 gcc 7.2
x86-64 gcc 7.3
x86-64 gcc 7.4
x86-64 gcc 8.1
x86-64 gcc 8.2
x86-64 gcc 8.3
x86-64 gcc 8.4
x86-64 gcc 8.5
x86-64 gcc 9.1
x86-64 gcc 9.2
x86-64 gcc 9.3
x86-64 gcc 9.4
x86-64 gcc 9.5
x86-64 icc 13.0.1
x86-64 icc 16.0.3
x86-64 icc 17.0.0
x86-64 icc 18.0.0
x86-64 icc 19.0.0
x86-64 icc 19.0.1
x86-64 icc 2021.1.2
x86-64 icc 2021.2.0
x86-64 icc 2021.3.0
x86-64 icc 2021.4.0
x86-64 icc 2021.5.0
x86-64 icc 2021.6.0
x86-64 icc 2021.7.0
x86-64 icc 2021.7.1
x86-64 icx 2021.1.2
x86-64 icx 2021.2.0
x86-64 icx 2021.3.0
x86-64 icx 2021.4.0
x86-64 icx 2022.0.0
x86-64 icx 2022.1.0
x86-64 icx 2022.2.0
x86-64 icx 2022.2.1
x86_64 CompCert 3.10
x86_64 CompCert 3.11
x86_64 CompCert 3.12
x86_64 CompCert 3.9
z88dk 2.2
zig cc 0.10.0
zig cc 0.6.0
zig cc 0.7.0
zig cc 0.7.1
zig cc 0.8.0
zig cc 0.9.0
zig cc trunk
Options
Source code
// Level definition static const unsigned char levels[][38] = { { 17,30, //ball offset, box offset 0b01010101,0b01010101,0b01010101,0b01010101, 0b01000101,0b00000000,0b00000000,0b10010001, 0b01000000,0b00000000,0b00000010,0b00010101, 0b01000000,0b00000000,0b01011000,0b00000001, 0b01000000,0b01010010,0b00000000,0b00000101, 0b01010010,0b00001000,0b00000000,0b10000001, 0b01001000,0b00000000,0b00100101,0b00100001, 0b01000000,0b00000101,0b10000000,0b00001001, 0b01010101,0b01010101,0b01010101,0b01010101 }, { //.level2 30,86, 0b00010000,0b01000100,0b01000000,0b01000101, 0b01000000,0b10000000,0b00000000,0b00000001, 0b00000001,0b10000001,0b10000000,0b10000000, 0b01000100,0b10000000,0b00001000,0b00010001, 0b00000000,0b00000100,0b00001000,0b00000100, 0b01000000,0b00010001,0b00001000,0b00000001, 0b00000001,0b00000100,0b01000000,0b01101001, 0b01000000,0b00000000,0b00000000,0b00000100, 0b00010000,0b01000000,0b00000000,0b00010000 }, { //.level3 30,46, 0b01010101,0b01010101,0b01010101,0b01010101, 0b01000000,0b00000000,0b00000000,0b10010001, 0b01000000,0b01010000,0b00000000,0b01010001, 0b01000000,0b01100000,0b00000010,0b00000001, 0b01001000,0b00000000,0b10010100,0b00001001, 0b01000110,0b00001000,0b00100100,0b00100101, 0b01000101,0b10000110,0b00001000,0b10010101, 0b01100000,0b00000101,0b10000000,0b00000001, 0b01010101,0b01010101,0b01010101,0b01010101 }, { //.level4 125,30, 0b01010101,0b01010101,0b01010101,0b01010101, 0b01000000,0b00000000,0b00000000,0b00010001, 0b01000000,0b00000100,0b00000000,0b00000001, 0b01011001,0b10001001,0b10011001,0b10011001, 0b01000100,0b01100010,0b01000100,0b01000101, 0b01011001,0b10011000,0b10011001,0b10011001, 0b01000000,0b00000100,0b00000000,0b00000001, 0b01000000,0b01000000,0b00000000,0b01000001, 0b01010101,0b01010101,0b01010101,0b01010101 }, { //.level5 17,110, 0b00010101,0b01010101,0b01010101,0b01010100, 0b01000000,0b01000000,0b01000001,0b00000001, 0b01000001,0b10000100,0b10000010,0b00010001, 0b01010000,0b00000000,0b01000001,0b00000001, 0b01100001,0b10010000,0b00000000,0b00000101, 0b01010000,0b00000001,0b00100001,0b00000001, 0b01100100,0b00010001,0b00010000,0b00010001, 0b01000000,0b01000000,0b00100100,0b00011001, 0b00010101,0b01010101,0b01010101,0b01010100 }, { //.level6 65,113, 0b00000000,0b01010101,0b01010101,0b01010101, 0b00000001,0b00000010,0b00000001,0b10001001, 0b00000100,0b00000010,0b00000000,0b01000101, 0b00010000,0b00000010,0b00000000,0b00000001, 0b01000000,0b00000010,0b00000000,0b00000001, 0b01010000,0b00000010,0b00000100,0b00000101, 0b01000000,0b00000010,0b00000000,0b01000001, 0b01000001,0b00000010,0b00000101,0b10000001, 0b01010101,0b01010101,0b01010101,0b01010101 }, { //.level7 115,122, 0b01010101,0b01010101,0b01010101,0b01010101, 0b01000000,0b00000000,0b00000000,0b00000001, 0b00010100,0b01010100,0b00011000,0b01011001, 0b00011000,0b00011000,0b01000100,0b01000100, 0b00000100,0b00010000,0b01010100,0b01010000, 0b00010100,0b00010000,0b01100100,0b01100100, 0b01000000,0b00000000,0b00000000,0b00000001, 0b01000000,0b01100000,0b00000000,0b00011001, 0b01010101,0b01010101,0b01010101,0b01010101 }, { //.level8 108,98, 0b01010101,0b01010101,0b01010101,0b01010100, 0b01000010,0b01010000,0b00000000,0b00000101, 0b01000001,0b10000001,0b01001000,0b00000001, 0b01000010,0b01010001,0b00011000,0b00000001, 0b01010000,0b00000001,0b01000001,0b10010001, 0b01010001,0b00000000,0b00000010,0b01100001, 0b01100010,0b01000000,0b10000001,0b00010001, 0b01010000,0b00000000,0b00000000,0b00000001, 0b00010101,0b01010101,0b01010101,0b01010101 }, { //.level9 30,72, 0b00000100,0b01010101,0b01010101,0b01010100, 0b00011001,0b10000000,0b00000001,0b00000001, 0b01100010,0b01000000,0b00100000,0b00000100, 0b00010001,0b00001001,0b01000010,0b01000001, 0b01000001,0b10000110,0b00100000,0b00001001, 0b01000000,0b00001001,0b01000000,0b00000100, 0b01100110,0b00000000,0b00000000,0b00010000, 0b01000000,0b00000000,0b00000000,0b01000000, 0b01010101,0b01010101,0b01010101,0b00000000 }, { //.level10 93,36, 0b00000000,0b01010101,0b01010101,0b01010100, 0b01010101,0b00100000,0b00000000,0b00000001, 0b01000000,0b00000101,0b01100010,0b01001001, 0b01001000,0b00000110,0b00011000,0b00000100, 0b01000000,0b00000100,0b00100000,0b01001001, 0b01100110,0b00000100,0b10010000,0b01000100, 0b00011000,0b00000101,0b01000001,0b01010000, 0b01000000,0b00000000,0b00000100,0b01000100, 0b00010101,0b01010101,0b01010000,0b01000001 }, { //.level11 30,108, 0b01010101,0b01010101,0b01010101,0b01010101, 0b01000000,0b00000001,0b00000000,0b00000001, 0b01000001,0b10100000,0b00000010,0b10000101, 0b01010000,0b00100000,0b00010100,0b00001001, 0b01100000,0b00000110,0b01101000,0b00010101, 0b01010001,0b01000000,0b00010100,0b00000001, 0b01100000,0b10010010,0b00000000,0b00001001, 0b01011001,0b01010000,0b00000100,0b00000101, 0b00010100,0b01010101,0b01010101,0b01010100 }, { //.level12 17,92, 0b01010000,0b00000001,0b01000001,0b01010100, 0b01000101,0b01010110,0b00010101,0b00100101, 0b01000000,0b00101000,0b00000000,0b10000001, 0b01000101,0b00000101,0b10000001,0b10010001, 0b01000100,0b10000101,0b01100001,0b01000001, 0b01000101,0b00000101,0b00000001,0b00010001, 0b01000000,0b00001000,0b00000000,0b00000001, 0b01000000,0b00000000,0b00100000,0b00000001, 0b01010101,0b01010101,0b01010101,0b01010101 }, { //.level13 18,113, 0b00010101,0b01010101,0b01010101,0b01010100, 0b01000001,0b00000000,0b00000000,0b10000101, 0b01000100,0b00000110,0b00000010,0b01010001, 0b01000000,0b00000000,0b10000000,0b00010001, 0b01001000,0b00000000,0b00000000,0b00011001, 0b01000100,0b00000000,0b00100000,0b00000001, 0b01010000,0b00000000,0b10001000,0b00011001, 0b01000000,0b01000000,0b00100001,0b00010001, 0b00010101,0b01010101,0b01010101,0b01010100 }, { //.level14 36,50, 0b01010101,0b01010101,0b01010101,0b01010101, 0b01100110,0b00000000,0b00000000,0b10011001, 0b01001001,0b00000000,0b00000001,0b01000001, 0b01000000,0b00000000,0b00000010,0b00000001, 0b01000000,0b00000000,0b00100100,0b00000001, 0b01000000,0b00000010,0b00000000,0b00000001, 0b01001001,0b00000000,0b00000000,0b01000001, 0b01100110,0b00000000,0b00000000,0b10011001, 0b01010101,0b01010101,0b01010101,0b01010101 }, { //.level15 51,76, 0b00010101,0b01010100,0b01010101,0b01010100, 0b01000000,0b00001001,0b00000000,0b00100001, 0b01000100,0b10000100,0b00010000,0b00100001, 0b01000000,0b01000000,0b01101000,0b01100001, 0b00010001,0b00000001,0b00100000,0b00010001, 0b01100000,0b00000000,0b00010000,0b01100001, 0b00010000,0b00000000,0b10000000,0b00000100, 0b01100000,0b00000000,0b00000000,0b00001001, 0b00010101,0b01010101,0b01010101,0b01010100 }, { //.level16 35,19, 0b01010101,0b01010101,0b01010101,0b01010101, 0b01010000,0b01100010,0b00000000,0b00001001, 0b01100000,0b10011000,0b00000000,0b00000101, 0b01010001,0b01010000,0b00001000,0b00000101, 0b01010000,0b00000010,0b01100100,0b00000001, 0b01101000,0b00000000,0b00001001,0b10000001, 0b01010010,0b00000000,0b01010101,0b10000001, 0b01011001,0b00000100,0b00000000,0b00000001, 0b01010101,0b01010101,0b01010101,0b01010101 }, { //.level17 29,124, 0b01010101,0b01010101,0b01010101,0b01010101, 0b01001001,0b00000000,0b00000000,0b01000001, 0b01000100,0b00100110,0b10011000,0b00010001, 0b01000000,0b00011001,0b01100100,0b10000001, 0b01001001,0b00000000,0b00000010,0b01000001, 0b01000010,0b01100000,0b00001001,0b00000001, 0b01000100,0b00010001,0b01100100,0b00010001, 0b01000000,0b00100001,0b10000000,0b00000001, 0b01010101,0b01010101,0b01010101,0b01010101 }, { //.level18 115,26, 0b01010101,0b01010101,0b01010101,0b01010101, 0b01001000,0b00000010,0b00000001,0b00000001, 0b01000001,0b10011000,0b00000110,0b00000001, 0b01000000,0b01100100,0b00000001,0b10000001, 0b01000000,0b10000001,0b00000010,0b01100001, 0b01000110,0b01000000,0b01001001,0b00000001, 0b01001001,0b10000100,0b10000100,0b00000001, 0b01100100,0b00000100,0b00000000,0b01000001, 0b01010101,0b01010101,0b01010101,0b01010101 }, { //.level19 126,110, 0b01010101,0b01010101,0b01010101,0b01010101, 0b01100000,0b00010100,0b00000000,0b01011001, 0b01000100,0b00010000,0b00000000,0b01100001, 0b01001001,0b00000010,0b01010000,0b10000001, 0b01000100,0b00000001,0b10000000,0b00000001, 0b01000000,0b00010000,0b00100100,0b00000001, 0b01000101,0b00100100,0b01011000,0b00010001, 0b01001001,0b00011000,0b00000000,0b01010001, 0b01010101,0b01010101,0b01010101,0b01010101 }, { //.level20 77,66, 0b01010101,0b01010101,0b01010101,0b01010101, 0b01000000,0b10011000,0b00000000,0b00000001, 0b01011000,0b00100100,0b01011000,0b00000101, 0b01000100,0b01001000,0b00000100,0b00010001, 0b01000000,0b01000001,0b01000001,0b00001001, 0b01000100,0b00010000,0b00100001,0b00010001, 0b01010000,0b00100101,0b00011000,0b00100101, 0b01000000,0b00000000,0b00100110,0b00000001, 0b01010101,0b01010101,0b01010101,0b01010101 }, { //.level21 103,105, 0b01010101,0b01010101,0b01010101,0b01010101, 0b01000101,0b01000000,0b00001000,0b00000101, 0b01000000,0b01000000,0b00000000,0b01000101, 0b01000000,0b01011000,0b00000000,0b00100001, 0b01000010,0b00000000,0b10000000,0b10000101, 0b01000000,0b00010000,0b00000101,0b01100001, 0b01000010,0b00100000,0b00000010,0b00101001, 0b01010101,0b01010101,0b01010101,0b01010101, 0b00000000,0b00000000,0b00000000,0b00000000 }, { //.level22 103,105, 0b01010101,0b01010101,0b01010101,0b01010101, 0b01100100,0b00011001,0b00011000,0b00010001, 0b01000000,0b00010000,0b00000000,0b00000001, 0b01100000,0b00010000,0b01100000,0b10000001, 0b01010001,0b10000000,0b00000010,0b00010101, 0b01001000,0b01000000,0b01010110,0b00000001, 0b01000000,0b00000100,0b01000000,0b10000001, 0b01010101,0b01010101,0b01010101,0b01010101, 0b00000000,0b00000000,0b00000000,0b00000000 }, { //.level23 103,105, 0b00010101,0b01010101,0b01010101,0b01010100, 0b01000100,0b00011001,0b00011000,0b00010001, 0b01000000,0b00100000,0b01000000,0b00000001, 0b01010000,0b00010000,0b00100001,0b10000001, 0b01000001,0b10000001,0b00001010,0b00100001, 0b01011000,0b01000000,0b01010010,0b00000001, 0b01000000,0b00000100,0b01000000,0b10000001, 0b00010101,0b01010101,0b01010101,0b01010100, 0b00000000,0b00000000,0b00000000,0b00000000 }, { //.level24 103,105, 0b01010101,0b01010101,0b01010101,0b01010101, 0b01000000,0b00000100,0b00000000,0b00000101, 0b01000101,0b10001000,0b00000001,0b01100101, 0b01000110,0b00000000,0b00100100,0b00010101, 0b01001010,0b00001001,0b00010100,0b00000001, 0b01000110,0b00100001,0b00000000,0b01010001, 0b01000101,0b00000000,0b01000101,0b01101001, 0b01010101,0b01010101,0b01010101,0b01010101, 0b00000000,0b00000000,0b00000000,0b00000000 }, { //.level25 103,105, 0b01010101,0b01010101,0b01010101,0b01010101, 0b01000000,0b00000000,0b00000000,0b00010001, 0b01001000,0b01011000,0b00001000,0b00000001, 0b01000000,0b01100000,0b10000001,0b01000001, 0b01001000,0b00000001,0b01000001,0b10000001, 0b01000110,0b00000010,0b01000000,0b00100001, 0b01000101,0b10000100,0b00000000,0b00000001, 0b01010101,0b01010101,0b01010101,0b01010101, 0b00000000,0b00000000,0b00000000,0b00000000 } };
c source #3
Output
Compile to binary object
Link to binary
Execute the code
Intel asm syntax
Demangle identifiers
Filters
Unused labels
Library functions
Directives
Comments
Horizontal whitespace
Compiler
6502 cc65 2.17
6502 cc65 2.18
6502 cc65 2.19
6502 cc65 trunk
ARM gcc 10.2 (linux)
ARM gcc 10.2.1 (none)
ARM gcc 10.3 (linux)
ARM gcc 10.3.1 (2021.07 none)
ARM gcc 10.3.1 (2021.10 none)
ARM gcc 11.1 (linux)
ARM gcc 11.2 (linux)
ARM gcc 11.2.1 (none)
ARM gcc 11.3 (linux)
ARM gcc 12.1 (linux)
ARM gcc 12.2 (linux)
ARM gcc 4.5.4 (linux)
ARM gcc 4.6.4 (linux)
ARM gcc 5.4 (linux)
ARM gcc 5.4.1 (none)
ARM gcc 6.3.0 (linux)
ARM gcc 6.4 (linux)
ARM gcc 7.2.1 (none)
ARM gcc 7.3 (linux)
ARM gcc 7.5 (linux)
ARM gcc 8.2 (WinCE)
ARM gcc 8.2 (linux)
ARM gcc 8.3.1 (none)
ARM gcc 8.5 (linux)
ARM gcc 9.2.1 (none)
ARM gcc 9.3 (linux)
ARM msvc v19.0 (WINE)
ARM msvc v19.10 (WINE)
ARM msvc v19.14 (WINE)
ARM64 Morello gcc 10.1 Alpha 1
ARM64 Morello gcc 10.1 Alpha 2
ARM64 gcc 10.2
ARM64 gcc 10.3
ARM64 gcc 10.4
ARM64 gcc 11.1
ARM64 gcc 11.2
ARM64 gcc 11.3
ARM64 gcc 12.1
ARM64 gcc 12.2
ARM64 gcc 5.4
ARM64 gcc 6.3
ARM64 gcc 6.4
ARM64 gcc 7.3
ARM64 gcc 7.5
ARM64 gcc 8.2
ARM64 gcc 8.5
ARM64 gcc 9.3
ARM64 gcc 9.4
ARM64 gcc 9.5
ARM64 gcc trunk
ARM64 msvc v19.14 (WINE)
AVR gcc 10.3.0
AVR gcc 11.1.0
AVR gcc 12.2.0
AVR gcc 4.5.4
AVR gcc 4.6.4
AVR gcc 5.4.0
AVR gcc 9.2.0
AVR gcc 9.3.0
Arduino Mega (1.8.9)
Arduino Uno (1.8.9)
BPF clang (trunk)
BPF clang 13.0.0
BPF clang 14.0.0
BPF clang 15.0.0
BPF clang 16.0.0
BPF gcc trunk
Chibicc 2020-12-07
FRC 2019
FRC 2020
K1C gcc 7.4
K1C gcc 7.5
KVX ACB 4.1.0 (GCC 7.5.0)
KVX ACB 4.1.0-cd1 (GCC 7.5.0)
KVX ACB 4.10.0 (GCC 10.3.1)
KVX ACB 4.11.1 (GCC 10.3.1)
KVX ACB 4.2.0 (GCC 7.5.0)
KVX ACB 4.3.0 (GCC 7.5.0)
KVX ACB 4.4.0 (GCC 7.5.0)
KVX ACB 4.6.0 (GCC 9.4.1)
KVX ACB 4.8.0 (GCC 9.4.1)
KVX ACB 4.9.0 (GCC 9.4.1)
MIPS64 gcc 5.4 (el)
MRISC32 gcc (trunk)
MSP430 gcc 12.2.0
MSP430 gcc 4.5.3
MSP430 gcc 5.3.0
MSP430 gcc 6.2.1
MinGW clang 14.0.3
MinGW clang 14.0.6
MinGW clang 15.0.7
MinGW gcc 11.3.0
MinGW gcc 12.1.0
MinGW gcc 12.2.0
RISC-V rv32gc clang (trunk)
RISC-V rv32gc clang 10.0.0
RISC-V rv32gc clang 10.0.1
RISC-V rv32gc clang 11.0.0
RISC-V rv32gc clang 11.0.1
RISC-V rv32gc clang 12.0.0
RISC-V rv32gc clang 12.0.1
RISC-V rv32gc clang 13.0.0
RISC-V rv32gc clang 13.0.1
RISC-V rv32gc clang 14.0.0
RISC-V rv32gc clang 15.0.0
RISC-V rv32gc clang 16.0.0
RISC-V rv32gc clang 9.0.0
RISC-V rv32gc clang 9.0.1
RISC-V rv32gc gcc 10.2.0
RISC-V rv32gc gcc 10.3.0
RISC-V rv32gc gcc 11.2.0
RISC-V rv32gc gcc 11.3.0
RISC-V rv32gc gcc 12.1.0
RISC-V rv32gc gcc 12.2.0
RISC-V rv32gc gcc 8.2.0
RISC-V rv32gc gcc 8.5.0
RISC-V rv32gc gcc 9.4.0
RISC-V rv64gc clang (trunk)
RISC-V rv64gc clang 10.0.0
RISC-V rv64gc clang 10.0.1
RISC-V rv64gc clang 11.0.0
RISC-V rv64gc clang 11.0.1
RISC-V rv64gc clang 12.0.0
RISC-V rv64gc clang 12.0.1
RISC-V rv64gc clang 13.0.0
RISC-V rv64gc clang 13.0.1
RISC-V rv64gc clang 14.0.0
RISC-V rv64gc clang 15.0.0
RISC-V rv64gc clang 16.0.0
RISC-V rv64gc clang 9.0.0
RISC-V rv64gc clang 9.0.1
RISC-V rv64gc gcc 10.2.0
RISC-V rv64gc gcc 10.3.0
RISC-V rv64gc gcc 11.2.0
RISC-V rv64gc gcc 11.3.0
RISC-V rv64gc gcc 12.1.0
RISC-V rv64gc gcc 12.2.0
RISC-V rv64gc gcc 8.2.0
RISC-V rv64gc gcc 8.5.0
RISC-V rv64gc gcc 9.4.0
Raspbian Buster
Raspbian Stretch
SDCC 4.0.0
SDCC 4.1.0
SPARC LEON gcc 12.2.0
SPARC gcc 12.2.0
SPARC64 gcc 12.2.0
TCC (trunk)
TCC 0.9.27
TI C6x gcc 12.2.0
TI CL430 21.6.1
WebAssembly clang (trunk)
Xtensa ESP32 gcc 8.2.0 (2019r2)
Xtensa ESP32 gcc 8.2.0 (2020r1)
Xtensa ESP32 gcc 8.2.0 (2020r2)
Xtensa ESP32 gcc 8.4.0 (2020r3)
Xtensa ESP32 gcc 8.4.0 (2021r1)
Xtensa ESP32 gcc 8.4.0 (2021r2)
Xtensa ESP32-S2 gcc 8.2.0 (2019r2)
Xtensa ESP32-S2 gcc 8.2.0 (2020r1)
Xtensa ESP32-S2 gcc 8.2.0 (2020r2)
Xtensa ESP32-S2 gcc 8.4.0 (2020r3)
Xtensa ESP32-S2 gcc 8.4.0 (2021r1)
Xtensa ESP32-S2 gcc 8.4.0 (2021r2)
Xtensa ESP32-S3 gcc 8.4.0 (2020r3)
Xtensa ESP32-S3 gcc 8.4.0 (2021r1)
Xtensa ESP32-S3 gcc 8.4.0 (2021r2)
arm64 msvc v19.28 VS16.9
arm64 msvc v19.29 VS16.10
arm64 msvc v19.29 VS16.11
arm64 msvc v19.30
arm64 msvc v19.31
arm64 msvc v19.32
arm64 msvc v19.33
arm64 msvc v19.latest
armv7-a clang (trunk)
armv7-a clang 10.0.0
armv7-a clang 10.0.1
armv7-a clang 11.0.0
armv7-a clang 11.0.1
armv7-a clang 12.0.0
armv7-a clang 12.0.1
armv7-a clang 13.0.0
armv7-a clang 13.0.1
armv7-a clang 14.0.0
armv7-a clang 15.0.0
armv7-a clang 16.0.0
armv7-a clang 9.0.0
armv7-a clang 9.0.1
armv8-a clang (trunk)
armv8-a clang (trunk, all architectural features)
armv8-a clang 10.0.0
armv8-a clang 10.0.1
armv8-a clang 11.0.0
armv8-a clang 11.0.1
armv8-a clang 12.0.0
armv8-a clang 12.0.1
armv8-a clang 13.0.0
armv8-a clang 13.0.1
armv8-a clang 14.0.0
armv8-a clang 15.0.0
armv8-a clang 16.0.0
armv8-a clang 9.0.0
armv8-a clang 9.0.1
cproc-master
llvm-mos atari 8-bit
llvm-mos commander X16
llvm-mos commodore 64
llvm-mos mega65
llvm-mos nes-cnrom
llvm-mos nes-mmc1
llvm-mos nes-mmc3
llvm-mos nes-nrom
llvm-mos osi-c1p
loongarch64 gcc 12.2.0
mips (el) gcc 12.1.0
mips (el) gcc 12.2.0
mips (el) gcc 5.4
mips clang 13.0.0
mips clang 14.0.0
mips clang 15.0.0
mips clang 16.0.0
mips gcc 11.2.0
mips gcc 12.1.0
mips gcc 12.2.0
mips gcc 5.4
mips gcc 9.3.0 (codescape)
mips64 (el) gcc 12.1.0
mips64 (el) gcc 12.2.0
mips64 clang 13.0.0
mips64 clang 14.0.0
mips64 clang 15.0.0
mips64 clang 16.0.0
mips64 gcc 11.2.0
mips64 gcc 12.1.0
mips64 gcc 12.2.0
mips64 gcc 5.4
mips64el clang 13.0.0
mips64el clang 14.0.0
mips64el clang 15.0.0
mips64el clang 16.0.0
mipsel clang 13.0.0
mipsel clang 14.0.0
mipsel clang 15.0.0
mipsel clang 16.0.0
nanoMIPS gcc 6.3.0
power gcc 11.2.0
power gcc 12.1.0
power gcc 12.2.0
power gcc 4.8.5
power64 AT12.0 (gcc8)
power64 AT13.0 (gcc9)
power64 gcc 11.2.0
power64 gcc 12.1.0
power64 gcc 12.2.0
power64le AT12.0 (gcc8)
power64le AT13.0 (gcc9)
power64le clang (trunk)
power64le gcc 11.2.0
power64le gcc 12.1.0
power64le gcc 12.2.0
power64le gcc 6.3.0
powerpc64 clang (trunk)
ppci 0.5.5
s390x gcc 11.2.0
s390x gcc 12.1.0
s390x gcc 12.2.0
sh gcc 12.2.0
sh gcc 4.9.4
sh gcc 9.5.0
x64 msvc v19.0 (WINE)
x64 msvc v19.10 (WINE)
x64 msvc v19.14
x64 msvc v19.14 (WINE)
x64 msvc v19.15
x64 msvc v19.16
x64 msvc v19.20
x64 msvc v19.21
x64 msvc v19.22
x64 msvc v19.23
x64 msvc v19.24
x64 msvc v19.25
x64 msvc v19.26
x64 msvc v19.27
x64 msvc v19.28
x64 msvc v19.28 VS16.9
x64 msvc v19.29 VS16.10
x64 msvc v19.29 VS16.11
x64 msvc v19.30
x64 msvc v19.31
x64 msvc v19.32
x64 msvc v19.33
x64 msvc v19.latest
x86 CompCert 3.10
x86 CompCert 3.11
x86 CompCert 3.12
x86 CompCert 3.9
x86 gcc 1.27
x86 msvc v19.0 (WINE)
x86 msvc v19.10 (WINE)
x86 msvc v19.14
x86 msvc v19.14 (WINE)
x86 msvc v19.15
x86 msvc v19.16
x86 msvc v19.20
x86 msvc v19.21
x86 msvc v19.22
x86 msvc v19.23
x86 msvc v19.24
x86 msvc v19.25
x86 msvc v19.26
x86 msvc v19.27
x86 msvc v19.28
x86 msvc v19.28 VS16.9
x86 msvc v19.29 VS16.10
x86 msvc v19.29 VS16.11
x86 msvc v19.30
x86 msvc v19.31
x86 msvc v19.32
x86 msvc v19.33
x86 msvc v19.latest
x86 tendra (trunk)
x86-64 clang (assertions trunk)
x86-64 clang (thephd.dev)
x86-64 clang (trunk)
x86-64 clang (widberg)
x86-64 clang 10.0.0
x86-64 clang 10.0.1
x86-64 clang 11.0.0
x86-64 clang 11.0.1
x86-64 clang 12.0.0
x86-64 clang 12.0.1
x86-64 clang 13.0.0
x86-64 clang 13.0.1
x86-64 clang 14.0.0
x86-64 clang 15.0.0
x86-64 clang 16.0.0
x86-64 clang 3.0.0
x86-64 clang 3.1
x86-64 clang 3.2
x86-64 clang 3.3
x86-64 clang 3.4.1
x86-64 clang 3.5
x86-64 clang 3.5.1
x86-64 clang 3.5.2
x86-64 clang 3.6
x86-64 clang 3.7
x86-64 clang 3.7.1
x86-64 clang 3.8
x86-64 clang 3.8.1
x86-64 clang 3.9.0
x86-64 clang 3.9.1
x86-64 clang 4.0.0
x86-64 clang 4.0.1
x86-64 clang 5.0.0
x86-64 clang 5.0.1
x86-64 clang 5.0.2
x86-64 clang 6.0.0
x86-64 clang 6.0.1
x86-64 clang 7.0.0
x86-64 clang 7.0.1
x86-64 clang 7.1.0
x86-64 clang 8.0.0
x86-64 clang 8.0.1
x86-64 clang 9.0.0
x86-64 clang 9.0.1
x86-64 gcc (trunk)
x86-64 gcc 10.1
x86-64 gcc 10.2
x86-64 gcc 10.3
x86-64 gcc 10.4
x86-64 gcc 11.1
x86-64 gcc 11.2
x86-64 gcc 11.3
x86-64 gcc 12.1
x86-64 gcc 12.2
x86-64 gcc 4.1.2
x86-64 gcc 4.4.7
x86-64 gcc 4.5.3
x86-64 gcc 4.6.4
x86-64 gcc 4.7.1
x86-64 gcc 4.7.2
x86-64 gcc 4.7.3
x86-64 gcc 4.7.4
x86-64 gcc 4.8.1
x86-64 gcc 4.8.2
x86-64 gcc 4.8.3
x86-64 gcc 4.8.4
x86-64 gcc 4.8.5
x86-64 gcc 4.9.0
x86-64 gcc 4.9.1
x86-64 gcc 4.9.2
x86-64 gcc 4.9.3
x86-64 gcc 4.9.4
x86-64 gcc 5.1
x86-64 gcc 5.2
x86-64 gcc 5.3
x86-64 gcc 5.4
x86-64 gcc 6.1
x86-64 gcc 6.2
x86-64 gcc 6.3
x86-64 gcc 7.1
x86-64 gcc 7.2
x86-64 gcc 7.3
x86-64 gcc 7.4
x86-64 gcc 8.1
x86-64 gcc 8.2
x86-64 gcc 8.3
x86-64 gcc 8.4
x86-64 gcc 8.5
x86-64 gcc 9.1
x86-64 gcc 9.2
x86-64 gcc 9.3
x86-64 gcc 9.4
x86-64 gcc 9.5
x86-64 icc 13.0.1
x86-64 icc 16.0.3
x86-64 icc 17.0.0
x86-64 icc 18.0.0
x86-64 icc 19.0.0
x86-64 icc 19.0.1
x86-64 icc 2021.1.2
x86-64 icc 2021.2.0
x86-64 icc 2021.3.0
x86-64 icc 2021.4.0
x86-64 icc 2021.5.0
x86-64 icc 2021.6.0
x86-64 icc 2021.7.0
x86-64 icc 2021.7.1
x86-64 icx 2021.1.2
x86-64 icx 2021.2.0
x86-64 icx 2021.3.0
x86-64 icx 2021.4.0
x86-64 icx 2022.0.0
x86-64 icx 2022.1.0
x86-64 icx 2022.2.0
x86-64 icx 2022.2.1
x86_64 CompCert 3.10
x86_64 CompCert 3.11
x86_64 CompCert 3.12
x86_64 CompCert 3.9
z88dk 2.2
zig cc 0.10.0
zig cc 0.6.0
zig cc 0.7.0
zig cc 0.7.1
zig cc 0.8.0
zig cc 0.9.0
zig cc trunk
Options
Source code
#ifdef USE_UDGS static unsigned char udgs[] = { 0b01111110, // Wall 0b10101001, 0b11000111, 0b10110001, 0b11001011, 0b10100101, 0b10101001, 0b01111110, 0b00000000, // bubble 0b00000000, 0b00011000, 0b00100100, 0b00100100, 0b00011000, 0b00000000, 0b00000000, 0b00000000, // movable ball 0b00111100, 0b01110110, 0b01111010, 0b01111010, 0b01111110, 0b00111100, 0b00000000, 0b00000000, // movable block 0b01111110, 0b01000010, 0b01000010, 0b01000010, 0b01000010, 0b01111110, 0b00000000 }; #endif
Become a Patron
Sponsor on GitHub
Donate via PayPal
Source on GitHub
Mailing list
Installed libraries
Wiki
Report an issue
How it works
Contact the author
CE on Mastodon
About the author
Statistics
Changelog
Version tree