From 9ffc4e7252258d10dffa767499e8b070cb08e832 Mon Sep 17 00:00:00 2001 From: David Date: Wed, 26 Aug 2015 17:36:46 -0700 Subject: [PATCH 01/25] IBM1401 punch card --- i/ibm1401 | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 i/ibm1401 diff --git a/i/ibm1401 b/i/ibm1401 new file mode 100644 index 0000000..bc28641 --- /dev/null +++ b/i/ibm1401 @@ -0,0 +1,2 @@ +,008015,022029,036043,050054,055062,063065,066077/333/M0762502F1.HELLO +WORLD From 806f356071446e6adae6d56c05c15818e8cad443 Mon Sep 17 00:00:00 2001 From: David Date: Wed, 26 Aug 2015 17:37:21 -0700 Subject: [PATCH 02/25] Create 4thdimension.4dd --- #/4thdimension.4dd | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 #/4thdimension.4dd diff --git a/#/4thdimension.4dd b/#/4thdimension.4dd new file mode 100644 index 0000000..4f84b79 --- /dev/null +++ b/#/4thdimension.4dd @@ -0,0 +1,4 @@ +OPEN WINDOW (10;45;500;330;0;"Hello Window") +While (True) + MESSAGE ("Hello World!") +End while From 4cc2c8e712d6a39ad2f65b3abb9831e305793002 Mon Sep 17 00:00:00 2001 From: David Date: Wed, 26 Aug 2015 17:38:18 -0700 Subject: [PATCH 03/25] Create assembler_atari2600.asm --- a/assembler_atari2600.asm | 194 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 194 insertions(+) create mode 100644 a/assembler_atari2600.asm diff --git a/a/assembler_atari2600.asm b/a/assembler_atari2600.asm new file mode 100644 index 0000000..12fa519 --- /dev/null +++ b/a/assembler_atari2600.asm @@ -0,0 +1,194 @@ +; +; hello.asm +; +; A "Hello, World!" which illustrates an Atari 2600 programming +; introduction talk (slides at http://slideshare.net/chesterbr). +; +; This is free software (see license below). Build it with DASM +; (http://dasm-dillon.sourceforge.net/), by running: +; +; dasm hello.asm -ohello.bin -f3 +; + + PROCESSOR 6502 + INCLUDE "vcs.h" + + ORG $F000 ; Start of "cart area" (see Atari memory map) + +StartFrame: + lda #%00000010 ; Vertical sync is signaled by VSYNC's bit 1... + sta VSYNC + REPEAT 3 ; ...and lasts 3 scanlines + sta WSYNC ; (WSYNC write => wait for end of scanline) + REPEND + lda #0 + sta VSYNC ; Signal vertical sync by clearing the bit + +PreparePlayfield: ; We'll use the first VBLANK scanline for setup + lda #$00 ; (could have done it before, just once) + sta ENABL ; Turn off ball, missiles and players + sta ENAM0 + sta ENAM1 + sta GRP0 + sta GRP1 + sta COLUBK ; Background color (black) + sta PF0 ; PF0 and PF2 will be "off" (we'll focus on PF1)... + sta PF2 + lda #$FF ; Playfield collor (yellow-ish) + sta COLUPF + lda #$00 ; Ensure we will duplicate (and not reflect) PF + sta CTRLPF + ldx #0 ; X will count visible scanlines, let's reset it + REPEAT 37 ; Wait until this (and the other 36) vertical blank + sta WSYNC ; scanlines are finished + REPEND + lda #0 ; Vertical blank is done, we can "turn on" the beam + sta VBLANK + +Scanline: + cpx #174 ; "HELLO WORLD" = (11 chars x 8 lines - 1) x 2 scanlines = + bcs ScanlineEnd ; 174 (0 to 173). After that, skip drawing code + txa ; We want each byte of the hello world phrase on 2 scanlines, + lsr ; which means Y (bitmap counter) = X (scanline counter) / 2. + tay ; For division by two we use (A-only) right-shift + lda Phrase,y ; "Phrase,Y" = mem(Phrase+Y) (Y-th address after Phrase) + sta PF1 ; Put the value on PF bits 4-11 (0-3 is PF0, 12-15 is PF2) +ScanlineEnd: + sta WSYNC ; Wait for scanline end + inx ; Increase counter; repeat untill we got all kernel scanlines + cpx #191 + bne Scanline + +Overscan: + lda #%01000010 ; "turn off" the beam again... + sta VBLANK ; + REPEAT 30 ; ...for 30 overscan scanlines... + sta WSYNC + REPEND + jmp StartFrame ; ...and start it over! + +Phrase: + .BYTE %00000000 ; H + .BYTE %01000010 + .BYTE %01111110 + .BYTE %01000010 + .BYTE %01000010 + .BYTE %01000010 + .BYTE %00000000 + .BYTE %00000000 ; E + .BYTE %01111110 + .BYTE %01000000 + .BYTE %01111100 + .BYTE %01000000 + .BYTE %01000000 + .BYTE %01111110 + .BYTE %00000000 + .BYTE %00000000 ; L + .BYTE %01000000 + .BYTE %01000000 + .BYTE %01000000 + .BYTE %01000000 + .BYTE %01000000 + .BYTE %01111110 + .BYTE %00000000 + .BYTE %00000000 ; L + .BYTE %01000000 + .BYTE %01000000 + .BYTE %01000000 + .BYTE %01000000 + .BYTE %01000000 + .BYTE %01111110 + .BYTE %00000000 ; O + .BYTE %00000000 + .BYTE %00111100 + .BYTE %01000010 + .BYTE %01000010 + .BYTE %01000010 + .BYTE %01000010 + .BYTE %00111100 + .BYTE %00000000 + .BYTE %00000000 ; white space + .BYTE %00000000 + .BYTE %00000000 + .BYTE %00000000 + .BYTE %00000000 + .BYTE %00000000 + .BYTE %00000000 + .BYTE %00000000 + .BYTE %00000000 ; W + .BYTE %01000010 + .BYTE %01000010 + .BYTE %01000010 + .BYTE %01000010 + .BYTE %01011010 + .BYTE %00100100 + .BYTE %00000000 + .BYTE %00000000 ; O + .BYTE %00111100 + .BYTE %01000010 + .BYTE %01000010 + .BYTE %01000010 + .BYTE %01000010 + .BYTE %00111100 + .BYTE %00000000 + .BYTE %00000000 ; R + .BYTE %01111100 + .BYTE %01000010 + .BYTE %01000010 + .BYTE %01111100 + .BYTE %01000100 + .BYTE %01000010 + .BYTE %00000000 + .BYTE %00000000 ; L + .BYTE %01000000 + .BYTE %01000000 + .BYTE %01000000 + .BYTE %01000000 + .BYTE %01000000 + .BYTE %01111110 + .BYTE %00000000 + .BYTE %00000000 ; D + .BYTE %01111000 + .BYTE %01000100 + .BYTE %01000010 + .BYTE %01000010 + .BYTE %01000100 + .BYTE %01111000 + .BYTE %00000000 ; Last byte written to PF1 (important, ensures lower tip + ; of letter "D" won't "bleeed") + + ORG $FFFA ; Cart config (so 6502 can start it up) + + .WORD StartFrame ; NMI + .WORD StartFrame ; RESET + .WORD StartFrame ; IRQ + + END + +; +; Copyright 2011-2013 Carlos Duarte do Nascimento (Chester). All rights reserved. +; +; Redistribution and use in source and binary forms, with or without modification, are +; permitted provided that the following conditions are met: +; +; 1. Redistributions of source code must retain the above copyright notice, this list of +; conditions and the following disclaimer. +; +; 2. Redistributions in binary form must reproduce the above copyright notice, this list +; of conditions and the following disclaimer in the documentation and/or other materials +; provided with the distribution. +; +; THIS SOFTWARE IS PROVIDED BY CHESTER ''AS IS'' AND ANY EXPRESS OR IMPLIED +; WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +; FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL OR +; CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +; CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +; SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +; ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +; NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +; ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +; +; The views and conclusions contained in the software and documentation are those of the +; authors and should not be interpreted as representing official policies, either expressed +; or implied, of Chester. +; From 96f48cbcf1bc095a781cc727b5ee4ce2b2befa87 Mon Sep 17 00:00:00 2001 From: David Date: Wed, 26 Aug 2015 17:39:04 -0700 Subject: [PATCH 04/25] cgi written in c --- c/cgi.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 c/cgi.c diff --git a/c/cgi.c b/c/cgi.c new file mode 100644 index 0000000..526351d --- /dev/null +++ b/c/cgi.c @@ -0,0 +1,16 @@ +#include + +main () +{ + printf ("Content-type: text/html\n"); + printf ("\n"); + printf ("\n"); + printf ("\n"); + printf ("Hello, world\n"); + printf ("\n"); + printf ("\n"); + printf ("\n"); + printf ("

Hello, world

\n"); + printf ("\n"); + printf ("\n"); +} From 7280cd9774d4977b4718031e0fe77dbf6abfad49 Mon Sep 17 00:00:00 2001 From: David Date: Wed, 26 Aug 2015 17:41:33 -0700 Subject: [PATCH 05/25] Create z80stealth_ti83calculator.z80 --- z/z80stealth_ti83calculator.z80 | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 z/z80stealth_ti83calculator.z80 diff --git a/z/z80stealth_ti83calculator.z80 b/z/z80stealth_ti83calculator.z80 new file mode 100644 index 0000000..339e1ee --- /dev/null +++ b/z/z80stealth_ti83calculator.z80 @@ -0,0 +1,20 @@ +.NOLIST +#define EQU .equ +#define equ .equ +#define END .end +#define end .end +#include "ti83plus.inc" +.LIST + .org 9D93h + .db $BB,$6D + ld a,0 + ld (CURCOL),a + ld (CURROW),a + ld hl,text + B_CALL(_PutS) + B_CALL(_NewLine) + ret +text: + .db "Hello, World",0 +.end +end From ef7fc4b456a1f4ca61f8ca392176300761c35982 Mon Sep 17 00:00:00 2001 From: David Date: Wed, 26 Aug 2015 17:43:17 -0700 Subject: [PATCH 06/25] Create irc --- i/irc | 1 + 1 file changed, 1 insertion(+) create mode 100644 i/irc diff --git a/i/irc b/i/irc new file mode 100644 index 0000000..184320d --- /dev/null +++ b/i/irc @@ -0,0 +1 @@ +/timer 1 9999 1 Hello World From 501c3cde74510aa9118951d39bffb0a83634beab Mon Sep 17 00:00:00 2001 From: David Date: Wed, 26 Aug 2015 17:47:40 -0700 Subject: [PATCH 07/25] sas macro --- s/sas.sas | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 s/sas.sas diff --git a/s/sas.sas b/s/sas.sas new file mode 100644 index 0000000..dadfa69 --- /dev/null +++ b/s/sas.sas @@ -0,0 +1,5 @@ +%macro putit( string= ); + %put &string; + %mend; + +%putit(string=Hello World!) From e56c94ff1e2a01f41e7e14327d4c77fe0d055e80 Mon Sep 17 00:00:00 2001 From: David Date: Wed, 26 Aug 2015 17:50:26 -0700 Subject: [PATCH 08/25] SemWare Application Language --- s/sal.s | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 s/sal.s diff --git a/s/sal.s b/s/sal.s new file mode 100644 index 0000000..b608c71 --- /dev/null +++ b/s/sal.s @@ -0,0 +1,5 @@ +proc main() + loop + WriteLine("Hello, World!") + endloop +end From 99a9e47561798989ef60ecd5585461e355891357 Mon Sep 17 00:00:00 2001 From: David Date: Wed, 26 Aug 2015 17:52:16 -0700 Subject: [PATCH 09/25] Sather --- s/sather.sa | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 s/sather.sa diff --git a/s/sather.sa b/s/sather.sa new file mode 100644 index 0000000..ea7c57b --- /dev/null +++ b/s/sather.sa @@ -0,0 +1,7 @@ +class MAIN is + main is + loop + #OUT + "Hello World!\n" + end + end +end From ca035fb0b0fc3f2886c28b2976b97200012a6b3f Mon Sep 17 00:00:00 2001 From: David Date: Wed, 26 Aug 2015 17:54:14 -0700 Subject: [PATCH 10/25] Create scilab.scilab --- s/scilab.scilab | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 s/scilab.scilab diff --git a/s/scilab.scilab b/s/scilab.scilab new file mode 100644 index 0000000..6e5f251 --- /dev/null +++ b/s/scilab.scilab @@ -0,0 +1,3 @@ +while(1) + printf("hello world"); +end From 4d338828184a377882e5975f410f406764bd8843 Mon Sep 17 00:00:00 2001 From: David Date: Wed, 26 Aug 2015 17:55:03 -0700 Subject: [PATCH 11/25] Create sql.sql --- s/sql.sql | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 s/sql.sql diff --git a/s/sql.sql b/s/sql.sql new file mode 100644 index 0000000..c694c76 --- /dev/null +++ b/s/sql.sql @@ -0,0 +1,4 @@ +CREATE TABLE HELLO (HELLO CHAR(12)) +UPDATE HELLO + SET HELLO = 'HELLO WORLD!' +SELECT * FROM HELLO From dcae728c0e893c0e877c4080ef4c66bfacb91794 Mon Sep 17 00:00:00 2001 From: David Date: Wed, 26 Aug 2015 18:04:09 -0700 Subject: [PATCH 12/25] duplicate of mirc.mirc --- m/MSL.mrc | 1 - 1 file changed, 1 deletion(-) delete mode 100644 m/MSL.mrc diff --git a/m/MSL.mrc b/m/MSL.mrc deleted file mode 100644 index 1e6a2d0..0000000 --- a/m/MSL.mrc +++ /dev/null @@ -1 +0,0 @@ -echo -a Hello, world! From 6b14ab2aeba1ce1ca47fc72a25eb741dca51a4d4 Mon Sep 17 00:00:00 2001 From: David Date: Wed, 26 Aug 2015 18:05:47 -0700 Subject: [PATCH 13/25] Create xbase.dbf --- x/xbase.dbf | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 x/xbase.dbf diff --git a/x/xbase.dbf b/x/xbase.dbf new file mode 100644 index 0000000..2d06138 --- /dev/null +++ b/x/xbase.dbf @@ -0,0 +1,3 @@ +do while .t. + ? 'Hello World' +enddo From 8161a26d0969911d9049a962b538737cb13da96f Mon Sep 17 00:00:00 2001 From: David Date: Wed, 26 Aug 2015 18:08:11 -0700 Subject: [PATCH 14/25] Create vms.vms --- v/vms.vms | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 v/vms.vms diff --git a/v/vms.vms b/v/vms.vms new file mode 100644 index 0000000..fef9c5c --- /dev/null +++ b/v/vms.vms @@ -0,0 +1,4 @@ +$top: +$write sys$output "Hello world!" +$wait 00:00:10 +$goto top From af942f457c6ea34512b6b7f4d6033eff1e50a17d Mon Sep 17 00:00:00 2001 From: David Date: Wed, 26 Aug 2015 18:09:39 -0700 Subject: [PATCH 15/25] Create vi --- v/vi | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 v/vi diff --git a/v/vi b/v/vi new file mode 100644 index 0000000..3783715 --- /dev/null +++ b/v/vi @@ -0,0 +1,15 @@ +The following tab indented lines will cause a true vi with modelines +activated to infinitely loop puting "Hello World" in the buffer. Hit + to abort the loop and see the output. None of the vi clones +support modelines this powerful, and modelines are diabled by default. +Set the environment variable EXINIT to "set ml" to activate modelines. + + vi: $ y a : + vi: $-1y b : + vi: @b : + put a |@b + Hello World + +Whitespace is largely insignificant, but these must be the last five +lines in the file to work properly. Unless it is in "vi: ... :" or +"ex: ... :" format, any preceeding text will be ignored. From 9a960e9032f1f402958f3edd97e137d9a72ebfa9 Mon Sep 17 00:00:00 2001 From: David Date: Wed, 26 Aug 2015 18:28:41 -0700 Subject: [PATCH 16/25] Create 4test --- #/4test | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 #/4test diff --git a/#/4test b/#/4test new file mode 100644 index 0000000..c41502e --- /dev/null +++ b/#/4test @@ -0,0 +1,2 @@ +testcase printHelloWorld() + print("Hello World!") From 27c59a0c4b1a0483fa3ca170686670d9673df332 Mon Sep 17 00:00:00 2001 From: David Date: Wed, 26 Aug 2015 18:29:17 -0700 Subject: [PATCH 17/25] Create acpi --- a/acpi | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 a/acpi diff --git a/a/acpi b/a/acpi new file mode 100644 index 0000000..8151c2c --- /dev/null +++ b/a/acpi @@ -0,0 +1,6 @@ +Scope(\) { + Method(_WAK) { + Store ("Hello World", Debug) + Return(Package(2){0x00000000,0}) + } +} From aecd22806a600fddb29b88d7962b5ee4260e3f72 Mon Sep 17 00:00:00 2001 From: David Date: Wed, 26 Aug 2015 18:30:09 -0700 Subject: [PATCH 18/25] Create actionscript_flashmx --- a/actionscript_flashmx | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 a/actionscript_flashmx diff --git a/a/actionscript_flashmx b/a/actionscript_flashmx new file mode 100644 index 0000000..4e08a7a --- /dev/null +++ b/a/actionscript_flashmx @@ -0,0 +1,12 @@ +_root.createTextField("mytext",1,100,100,300,100); +mytext.multiline = true; +mytext.wordWrap = true; +mytext.border = false; + +myformat = new TextFormat(); +myformat.color = 0xff0000; +myformat.bullet = false; +myformat.underline = true; + +mytext.text = "Hello World!"; +mytext.setTextFormat(myformat); From 2c62a161c261d74324b0dfba6e9f96e9638c98c6 Mon Sep 17 00:00:00 2001 From: David Date: Wed, 26 Aug 2015 18:30:19 -0700 Subject: [PATCH 19/25] Rename actionscript_flashmx to actionscript_flashmx.as --- a/{actionscript_flashmx => actionscript_flashmx.as} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename a/{actionscript_flashmx => actionscript_flashmx.as} (100%) diff --git a/a/actionscript_flashmx b/a/actionscript_flashmx.as similarity index 100% rename from a/actionscript_flashmx rename to a/actionscript_flashmx.as From 4e7b06b68f119aa0e21e8a29f54718aa216156e2 Mon Sep 17 00:00:00 2001 From: David Date: Wed, 26 Aug 2015 18:30:39 -0700 Subject: [PATCH 20/25] Create advpl --- a/advpl | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 a/advpl diff --git a/a/advpl b/a/advpl new file mode 100644 index 0000000..12a66f0 --- /dev/null +++ b/a/advpl @@ -0,0 +1,5 @@ +User Function Hello() +Local cMsg := "Hello, world!" +conout(cMsg) +MsgInfo(cMsg) +Return From 570b0697025e05f0d5d4abce2b092fb3a23214b2 Mon Sep 17 00:00:00 2001 From: David Date: Wed, 26 Aug 2015 18:31:14 -0700 Subject: [PATCH 21/25] Create amos --- a/amos | 1 + 1 file changed, 1 insertion(+) create mode 100644 a/amos diff --git a/a/amos b/a/amos new file mode 100644 index 0000000..59114d1 --- /dev/null +++ b/a/amos @@ -0,0 +1 @@ +Print "Hello world!" From 960243b3bc905ef2fda798c97310b6bc339e0cfa Mon Sep 17 00:00:00 2001 From: David Date: Wed, 26 Aug 2015 18:32:54 -0700 Subject: [PATCH 22/25] Create angelscript --- a/angelscript | 1 + 1 file changed, 1 insertion(+) create mode 100644 a/angelscript diff --git a/a/angelscript b/a/angelscript new file mode 100644 index 0000000..129fe22 --- /dev/null +++ b/a/angelscript @@ -0,0 +1 @@ +void main() { print("Hello world\n"); } From d8db63ee7f2b39967e5e28ba50b3bd08e85cace6 Mon Sep 17 00:00:00 2001 From: David Date: Wed, 26 Aug 2015 18:34:11 -0700 Subject: [PATCH 23/25] Create assembler_6502appleII.asm --- a/assembler_6502appleII.asm | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 a/assembler_6502appleII.asm diff --git a/a/assembler_6502appleII.asm b/a/assembler_6502appleII.asm new file mode 100644 index 0000000..12c0a71 --- /dev/null +++ b/a/assembler_6502appleII.asm @@ -0,0 +1,6 @@ +STROUT EQU $DB3A ;OUTPUTS AY-POINTED NULL TERMINATED STRING + LDY #>HELLO + LDA # Date: Wed, 26 Aug 2015 18:34:38 -0700 Subject: [PATCH 24/25] Create assembler_6502c64.asm --- a/assembler_6502c64.asm | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 a/assembler_6502c64.asm diff --git a/a/assembler_6502c64.asm b/a/assembler_6502c64.asm new file mode 100644 index 0000000..16d4b92 --- /dev/null +++ b/a/assembler_6502c64.asm @@ -0,0 +1,11 @@ +ldy #0 +beq in +loop: +jsr $ffd2 +iny +in: +lda hello,y +bne loop +rts +hello: .tx "Hello World!" + .by 13,10,0 From b4cc06b0c51c61e09904f9bef96dbd15cf1c5cf7 Mon Sep 17 00:00:00 2001 From: David Date: Thu, 27 Aug 2015 17:56:21 -0700 Subject: [PATCH 25/25] Create whirl.wr --- w/whirl.wr | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 w/whirl.wr diff --git a/w/whirl.wr b/w/whirl.wr new file mode 100644 index 0000000..2a18665 --- /dev/null +++ b/w/whirl.wr @@ -0,0 +1,12 @@ +110001100111000111110000010001111100011000000000110000011100000110000010000 +011000111100000111110000011100001111100100011001110000111111100001001111100 +011000000000110000011000111110001000000000000000000001001111110000111111000 +100000000000000000000000000011111000100100000000111111000100000000000001001 +000011111000001110000111110010001100011000000100010000011000000000000000001 +100000111001111100111111000100111001111000011100010011111110000111000110000 +000000000000000000000000000001000100001111100000111000011111001100011100000 +111000000010001111100000111110001000000000111000110000000000000000000000000 +000000100100001111100000111000011100010000000000000100010000111110001110001 +111100111111000011100001100111000111000000000001111100000111000110000110110 +001000000000010000001111100000111000011111000000010001110000000000000000000 +000000000000100000011111000001100