Batch Index du Forum
S’enregistrerRechercherFAQMembresGroupesConnexion
Répondre au sujet Page 1 sur 1
[Expérimental] tcs_o - Tiny Console Server (Output) - TSnake
Auteur Message
Répondre en citant
Message [Expérimental] tcs_o - Tiny Console Server (Output) - TSnake 
Bonjour, je viens ici vous présenter un travail expérimental (c'est plus une preuve de concept).
C'est une commande externe en assembleur reprenant le concept de serveur de darkbox.
En réalité, faire une telle commande n'est pas facile du tout, car il faut réussir à mettre en place un tel concept en assembleur, et comment dire, bah, des bugs, j'en ai eu des tonnes Laughing.

La commande est un peu un mélange de darkbox et batbox, car on reprends le concept de darkbox (serveur) et la technologie de batbox (fasm, astuces pour faire des switch avec fasm).

Sinon, partons sur la commande :
- taille très faible (1.5ko)
- vitesse comparable à darkbox

Cependant, il y a quelques limitations :
- nombre assez limité de commandes
- pas de gestion de l'entrée console (considérez darkbox_i ou batbox ou encore le serveur d'entrée console de darkbox pour ça)
- chaînes de caractères limités à 256 octets (vs 1024 par defaut pour darkbox) (déjà pas mal tout de même) maintenant, la limite de caractère est la même que pour darkbox.

La syntaxe de cette commande est la même que celle de darkbox, SAUF que le concept de factorisation des commandes ou de multiples commandes n'est pas supporté et que seul le '-' est accepté.

Commandes supportés :
    * -c color : Changer la couleur
    * -a n : Affiche le caractère ASCII n
    * -d text : Affiche "text"
    * -n : Va à la ligne suivante
    * -q : Quitte correctement tcs_o
    * -s : Efface l'écran
    * -w t : Attends internalement t milisecondes
    * -g x y : Déplace le curseur vers (x;y) (prends en compte -o)
    * -o x y : Change l'origine des goto (de -g)


Code:
@Echo off
if defined __ goto :nuancier
set __=.
call %0 %* | tcs_o
set __=
pause>NUL
goto :eof

:nuancier
setlocal enabledelayedexpansion
for %%A in (0 1 2 3 4 5 6 7 8 9 A B C D E F) do (
    for %%B in (0 1 2 3 4 5 6 7 8 9 A B C D E F) do (
        echo -c 0x%%A%%B -d tcs_o
    )
    echo -n
)
echo -c 0x07
echo -q
goto :eof

Assembleur fasm x86 pour win32, le même que batbox Mr. Green
Code:
[lang=asm]; TCS Output - A tiny graphical server-based command for Windows batch.
; Output Server
; Copyright (c) 2017 Teddy ASTIE (TSnake41)
; Copyright (c) 2014, Romain GARBI (Darkbatcher)
;
; All rights reserved.
; Redistribution and use in source and binary forms, with or without
; modification, are permitted provided that the following conditions are met:
;
; * Redistributions of source code must retain the above copyright
;   notice, this list of conditions and the following disclaimer.
; * 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.
; * Neither the name of the name of Teddy ASTIE (TSnake41) nor the
;   names of its contributors may be used to endorse or promote products
;   derived from this software without specific prior written permission.
;
; THIS SOFTWARE IS PROVIDED BY ROMAIN GARBI AND CONTRIBUTORS ``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 THE REGENTS AND 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.
 
format PE CONSOLE 4.0
 
include 'win32a.inc'
 
struc db [data]
{
   common
   . db data
   .size = $ - .
}

struct COORD
     X dw ?
     Y dw ?
ends
 
NULL = 0
EOF = -1

STR_BUF_SIZE = 1024

; Entry point
; Get hOut
invoke GetStdHandle, STD_OUTPUT_HANDLE
mov [hOut],eax
 
; Allocate str_buf on stack
sub esp, STR_BUF_SIZE
mov [str_buf], esp
 
loop_:
call near read_char_
 
cmp eax,EOF
    ; No more characters to read.
    je near quit_
 
cmp eax,'-'
    jne near loop_
 
; Get command char
call near read_char_
 
; Search char (eax) in jump_chr
mov ecx,jump_chr.size
; Clear edi
mov edi,0
 
label_loop_:
    cmp al,[jump_chr + edi]
        je near label_found_
 
    inc edi
    dec ecx
 
    test ecx,ecx
        ; Label not found
        jz near loop_
 
    jmp near label_loop_
 
label_found_:
    jmp near [jump_table+edi*4]
 
ascii_:
    call near read_number_
    invoke putchar,eax
    jmp near loop_
 
color_:
    call near read_number_
    invoke SetConsoleTextAttribute,[hOut],eax
    jmp near loop_
 
disp_:
    call near read_str_
    invoke write,1,str_buf,ebx
    jmp near loop_
 
new_line_:
    invoke putchar,0xA
    jmp near loop_
 
clear_:
    ; Well
    invoke system,clear_cmd
    jmp near loop_

goto_:
    call near read_number_
    add ax,[origin_x]
    mov [p.X],ax

    call near read_number_
    add ax,[origin_y]
    mov [p.Y],ax

    invoke SetConsoleCursorPosition,[hOut],dword [p]
    jmp near loop_

origin_:
    call near read_number_
    mov [origin_x],ax
   
    call near read_number_
    mov [origin_y],ax
   
    jmp near loop_

wait_:
    call near read_number_
    invoke Sleep,eax
    jmp near loop_
 
quit_:
    invoke exit,0
 
read_str_:
    ; Skip all spaces
    call read_char_
 
    call is_space_
        jz near read_str_
 
    cmp eax,'"'
        je near read_str_quote_
 
    mov ebx,1 ; Offset in str_buf
    mov byte [str_mode],byte 1 ; Reading mode: space
 
    mov byte [str_buf],byte al
 
    read_str_loop_:
        cmp ebx,STR_BUF_SIZE
            je near read_str_end_
 
        call near read_char_
 
        cmp al,'\'
            je near read_str_escape_
 
        call read_str_cmp_
            je near read_str_end_
 
        read_str_escape_end_:
        cmp ebx,STR_BUF_SIZE
            je near read_str_end_
 
        mov byte [str_buf + ebx],byte al
        inc ebx
        jmp near read_str_loop_
 
    read_str_cmp_:
        cmp byte [str_mode],byte 1
            je near is_space_
 
        ; Quote mode
        cmp al,'"'
        ret
 
        is_space_:
            cmp byte al,' ' ; Space
                je near is_space_end_
 
            cmp byte al,0xA ; LF
                je near is_space_end_
 
            cmp byte al,0xD ; CR
                je near is_space_end_
 
            cmp byte al,0x9 ; TAB
                ; Useless jump
                ; je near is_space_end_
 
            is_space_end_:
                ret
 
    read_str_escape_:
        ; Read next char (skip "\)"
        call near read_char_
        jmp near read_str_escape_end_
 
    read_str_quote_:
        mov ebx,0 ; Offset is 0
        mov byte [str_mode],byte 2 ; Reading mode: quote
        jmp near read_str_loop_
 
    read_str_end_:
        ret
 
read_number_:
    call near read_str_
    ; Add '\0' to get a Null-terminated string.
    mov byte [str_buf + ebx], 0
    cinvoke strtol, str_buf, NULL, 0
    ret
 
read_char_:
    cinvoke getchar
 
    cmp eax,EOF
        jz near quit_
 
    ret
 
; Constants
jump_chr db 'acdnswgoq'
jump_table dd \
    ascii_, color_, disp_, \
    new_line_, clear_, wait_, \
    goto_, origin_, quit_
 
clear_cmd db 'cls', 0
 
; Variables
hOut dd ?
str_mode db ?
str_buf dd ?

origin_x dw 0
origin_y dw 0

p COORD ?
 
; Imports
data import
 
library \
    msvcrt, 'MSVCRT.DLL', \
    kernel32, 'KERNEL32.DLL'
 
import msvcrt, \
    exit, 'exit', \
    putchar, 'putchar', \
    getchar, 'getchar', \
    write, '_write', \
    strtol, 'strtol', \
    system, 'system', \
    puts, 'puts'
 
import kernel32, \
    SetConsoleTextAttribute,'SetConsoleTextAttribute', \
    SetConsoleCursorPosition, 'SetConsoleCursorPosition', \
    GetStdHandle, 'GetStdHandle', \
    Sleep, 'Sleep'
 
end data
Code:
echo using System;using System.IO;class P{static void Main(string[]a){FileStream s=File.OpenWrite(a[0]);byte[]d=Convert.FromBase64String(Console.In.ReadToEnd());s.Write(d,0,d.Length);}}>_.cs
%windir%\Microsoft.NET\Framework\v4.0.30319\csc /out:_.exe  _.cs>nul
set/p =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>_ <nul
_ tcs_o.exe<_
del _*
Voilà, c'est tout, il est possible que j'ajoute le goto dans le futur (car sinon, vous allez me tuer Mort de Rire).



Dernière édition par TSnake41 le Mar 9 Jan 2018 - 23:04; édité 3 fois

______________________________________________________
Partager permet le savoir. Le savoir permet de partager de nouveau savoirs.
Message Publicité 
PublicitéSupprimer les publicités ?


Répondre en citant
Message [Expérimental] tcs_o - Tiny Console Server (Output) - TSnake 
Un bébé darkbox/batbox *w*
Si c'est pas meugnons =3

Pour ma part sa marche bien Okay
Avantage :
Léger, rapide,

Désavantage :
Commande Limiter, Nécessite un lanceur.

pour des script qui ont besoin de batbox mais en rapide sans passer par darkbox (qui est un peut moins pratique) bébé tsc_o est la pour nous sauver *w* Okay

Sinon encore une alternative a db =3

Edit :

J'ai créer un léger script pour lire des sprites :
[spooiler=SpriteEngine]
Code:
@Echo off
setlocal EnableDelayedExpansion
cd %~dp0
if defined __ goto :SpriteEngine
set __=.
call %0 %* | tcs_o
set __=
pause>NUL
goto :eof
 
:SpriteEngine
echo -d "Your sprite > "
set /p "$_inputfile="
if not exist "!$_inputfile!.spr" goto :SpriteEngine
echo -s

for /f "delims=" %%a in ('type "!$_inputfile!.spr"') do (
   for %%b in (%%a) do (
      set $_spr=%%b
      rem echo -d "-c 0x!$_spr:~0,2! -a !$_spr:~2! " -n
      echo -c 0x!$_spr:~0,2! -a !$_spr:~2!
   )
   echo -n
)
goto :SpriteEngine
[/hide]

Condition pour que sa marche :
enregistrer le sprite sous l'extension ".spr"

pour tester voici deux sprite Okay

Code:
0f000 0f000 0f000 0f000 0f000 0f220 0f220 0f223 0f223 0f223 0f223 0f223 0f223 0f223 0f223 0f223 0f220 0f220 0f000 0f000 0f000 0f000 0f000
0f000 0f000 0f000 0f000 0f219 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f219 0f000 0f000 0f000 0f000
0f000 0f000 0f000 0f219 0f000 0f000 0f220 0f220 0f220 0f000 0f000 0f000 0f000 0f000 0f220 0f220 0f220 0f000 0f000 0f219 0f000 0f000 0f000
0f000 0f000 0f000 0f219 0f000 0f000 0f219 0f219 0f219 0f000 0f000 0f220 0f000 0f000 0f219 0f219 0f219 0f000 0f000 0f219 0f000 0f000 0f000
0f000 0f000 0f000 0f220 0f219 0f000 0f220 0f000 0f000 0f000 0f223 0f223 0f223 0f000 0f000 0f000 0f220 0f000 0f219 0f220 0f000 0f000 0f000
0f000 0f000 0f000 0f219 0f000 0f000 0f223 0f219 0f223 0f219 0f223 0f219 0f223 0f219 0f223 0f219 0f223 0f000 0f000 0f219 0f000 0f000 0f000
0f000 0f000 0f000 0f220 0f219 0f219 0f220 0f220 0f223 0f223 0f223 0f223 0f223 0f223 0f223 0f220 0f220 0f219 0f219 0f220 0f000 0f000 0f000
0f000 0f220 0f219 0f000 0f219 0f223 0f223 0f219 0f223 0f223 0f223 0f219 0f223 0f223 0f223 0f219 0f223 0f223 0f219 0f000 0f219 0f220 0f000
0f220 0f223 0f000 0f220 0f220 0f223 0f220 0f220 0f219 0f223 0f223 0f220 0f223 0f223 0f219 0f220 0f220 0f223 0f220 0f220 0f000 0f223 0f220
0f219 0f000 0f000 0f000 0f000 0f223 0f220 0f000 0f219 0f220 0f000 0f000 0f000 0f220 0f219 0f000 0f220 0f223 0f000 0f000 0f000 0f000 0f219
0f000 0f223 0f220 0f220 0f000 0f219 0f000 0f000 0f219 0f220 0f220 0f220 0f220 0f220 0f219 0f000 0f000 0f219 0f000 0f220 0f220 0f223 0f000
0f000 0f000 0f000 0f223 0f219 0f219 0f220 0f220 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f220 0f220 0f219 0f219 0f223 0f000 0f000 0f000
0f000 0f000 0f000 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f223 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f000 0f000 0f000
0f000 0f000 0f220 0f220 0f219 0f223 0f223 0f223 0f223 0f219 0f000 0f000 0f000 0f219 0f223 0f223 0f223 0f223 0f219 0f220 0f220 0f000 0f000
0f000 0f000 0f223 0f220 0f220 0f220 0f220 0f220 0f223 0f223 0f000 0f000 0f000 0f223 0f223 0f220 0f220 0f220 0f220 0f220 0f223 0f000 0f000


Code:
0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219
0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f219 0f219 0f219 0f219 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f219 0f219
0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f219 0f219 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f219 0f219
0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f219 0f219 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f219 0f219
0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f219 0f219 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f219 0f219 0f000 0f000 0f000 0f000 0f219 0f219 0f219 0f219
0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f219 0f219 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f219 0f219 0f219 0f219 0f219 0f219 0f000 0f000 0f219 0f219 0f000 0f000 0f219 0f219
0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f219 0f219 0f000 0f000 0f000 0f000 0f219 0f219 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f219 0f219
0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f219 0f219 0f000 0f000 0f000 0f000 0f219 0f219 0f219 0f219 0f219 0f219 0f000 0f000 0f000 0f000 0f219 0f219 0f219 0f219 0f219 0f219
0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f219 0f219 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f219 0f219 0f000 0f000 0f219 0f219 0f219 0f219
0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f219 0f219 0f219 0f219 0f219 0f219 0f000 0f000 0f219 0f219 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f219 0f219
0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f219 0f219 0f219 0f219 0f219 0f219 0f000 0f000 0f000 0f000 0f000 0f000 0f219 0f219 0f000 0f000 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219
0f219 0f219 0f000 0f000 0f000 0f000 0f219 0f219 0f000 0f000 0f000 0f000 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f000 0f000 0f219 0f219 0f219 0f219 0f000 0f000 0f219 0f219 0f000 0f000 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219
0f219 0f219 0f219 0f219 0f219 0f219 0f000 0f000 0f000 0f000 0f219 0f219 0f000 0f000 0f000 0f000 0f000 0f000 0f219 0f219 0f000 0f000 0f219 0f219 0f000 0f000 0f219 0f219 0f000 0f000 0f219 0f219 0f000 0f000 0f219 0f219 0f219 0f219 0f000 0f000 0f000 0f000 0f219 0f219
0f219 0f219 0f000 0f000 0f000 0f000 0f000 0f000 0f219 0f219 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f219 0f219 0f000 0f000 0f219 0f219 0f000 0f000 0f219 0f219 0f219 0f219 0f000 0f000 0f219 0f219 0f219 0f219 0f000 0f000 0f000 0f000 0f000 0f000 0f219 0f219
0f219 0f219 0f000 0f000 0f000 0f000 0f000 0f000 0f219 0f219 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f219 0f219 0f000 0f000 0f000 0f000 0f219 0f219 0f000 0f000 0f000 0f000 0f219 0f219 0f000 0f000 0f219 0f219 0f000 0f000 0f000 0f000 0f000 0f000 0f219 0f219
0f000 0f000 0f219 0f219 0f000 0f000 0f000 0f000 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f000 0f000 0f000 0f000 0f000 0f000 0f219 0f219 0f000 0f000 0f000 0f000 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f000 0f000 0f219 0f219 0f000 0f000 0f219 0f219
0f000 0f000 0f000 0f000 0f219 0f219 0f000 0f000 0f219 0f219 0f000 0f000 0f000 0f000 0f000 0f000 0f219 0f219 0f219 0f219 0f000 0f000 0f000 0f000 0f219 0f219 0f219 0f219 0f219 0f219 0f000 0f000 0f000 0f000 0f000 0f000 0f219 0f219 0f000 0f000 0f219 0f219 0f000 0f000 0f219 0f219
0f000 0f000 0f000 0f000 0f000 0f000 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f000 0f000 0f219 0f219 0f000 0f000 0f000 0f000 0f000 0f000 0f219 0f219 0f000 0f000 0f000 0f000 0f000 0f000 0f219 0f219 0f000 0f000 0f219 0f219 0f000 0f000 0f219 0f219 0f219 0f219
0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f000 0f000 0f000 0f000 0f000 0f000 0f219 0f219 0f000 0f000 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f000 0f000 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219
0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f219 0f219 0f219 0f219 0f000 0f000 0f219 0f219 0f000 0f000 0f000 0f000 0f000 0f000 0f219 0f219 0f219 0f219 0f219 0f219 0f000 0f000 0f000 0f000 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219
0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f219 0f219 0f219 0f219 0f000 0f000 0f000 0f000 0f219 0f219 0f219 0f219 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f219 0f219 0f000 0f000 0f219 0f219 0f219 0f219 0f219 0f219
0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f000 0f000 0f219 0f219 0f219 0f219 0f219 0f219 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f219 0f219
0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f219 0f219 0f219 0f219 0f000 0f000 0f000 0f000 0f219 0f219 0f000 0f000 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219
0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f219 0f219 0f000 0f000 0f219 0f219 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f219 0f219 0f000 0f000 0f219 0f219 0f000 0f000 0f219 0f219
0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f219 0f219 0f219 0f219 0f219 0f219 0f000 0f000 0f000 0f000 0f000 0f000 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219
0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f219 0f219 0f219 0f219 0f000 0f000 0f000 0f000 0f219 0f219 0f219 0f219 0f219 0f219
0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f219 0f219 0f000 0f000 0f000 0f000 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219
0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f219 0f219 0f219 0f219 0f000 0f000 0f219 0f219 0f219 0f219 0f219 0f219 0f000 0f000 0f219 0f219
0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f219 0f219 0f000 0f000 0f219 0f219 0f000 0f000 0f000 0f000 0f000 0f000 0f219 0f219 0f219 0f219
0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f219 0f219 0f000 0f000 0f000 0f000 0f219 0f219 0f219 0f219 0f219 0f219 0f000 0f000 0f219 0f219
0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f219 0f219 0f219 0f219 0f000 0f000 0f000 0f000 0f000 0f000 0f219 0f219
0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219
0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f219 0f219 0f219 0f219 0f219 0f219 0f000 0f000 0f000 0f000 0f219 0f219 0f219 0f219
0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f219 0f219 0f219 0f219 0f000 0f000 0f000 0f000 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219
0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f219 0f219 0f219 0f219 0f219 0f219 0f000 0f000 0f000 0f000 0f219 0f219 0f000 0f000 0f000 0f000 0f219 0f219
0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f219 0f219 0f000 0f000 0f000 0f000 0f219 0f219 0f000 0f000 0f000 0f000 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219
0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f000 0f000 0f000 0f000 0f219 0f219 0f000 0f000 0f000 0f000 0f219 0f219
0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f219 0f219 0f219 0f219 0f000 0f000 0f219 0f219 0f000 0f000 0f000 0f000 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219
0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f219 0f219 0f219 0f219 0f000 0f000 0f000 0f000 0f219 0f219 0f219 0f219 0f000 0f000 0f000 0f000 0f219 0f219 0f000 0f000 0f000 0f000 0f219 0f219 0f219 0f219 0f219 0f219
0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f219 0f219 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f219 0f219 0f000 0f000 0f000 0f000 0f219 0f219 0f000 0f000 0f219 0f219 0f000 0f000 0f000 0f000 0f000 0f000 0f219 0f219
0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f219 0f219 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f219 0f219 0f219 0f219 0f000 0f000 0f000 0f000 0f219 0f219 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f219 0f219
0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f000 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219



j'ai d’ailleurs trouver un petit pb :
mon script lis ligne par ligne, ensuite il lis "mot" par "mot" (séparer donc par des espaces)
Ensuite Chaque "mot" contient les info du pixel
ex: 0f219 > 0f = la couleur et 219 = le caractère
sauf que les caractères inférieur a 100 ne fonctionnent pas bien =/
donc pour mettre un espace, je ne peut pas mettre 32 ni 0 mais 000 sa marche =/ (j'ai pas compris pourquoi)

Edit II :

Encore mieux, ce sprite génère un bug avec le couleur XD
Code:
0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f223 0f223 0f223 0f223 0f223 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f223 0f223 0f223 0f223 0f223 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219
0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f223 0f176 0f176 0f223 0f223 0f219 0f220 0f220 0f220 0f220 0f220 0f220 0f219 0f219 0f220 0f220 0f220 0f220 0f220 0f220 0f219 0f223 0f176 0f176 0f223 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219
0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f220 0f176 0f176 0f220 0f220 0f219 0f219 0f219 0f219 0f223 0f223 0f223 0f223 0f223 0f223 0f223 0f223 0f223 0f219 0f219 0f219 0f219 0f220 0f220 0f176 0f176 0f220 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219
0f219 0f219 0f219 0f219 0f223 0f223 0f223 0f223 0f219 0f219 0f219 0f219 0f219 0f223 0f176 0f176 0f176 0f176 0f176 0f176 0f176 0f176 0f176 0f176 0f176 0f176 0f176 0f176 0f176 0f223 0f219 0f219 0f219 0f219 0f219 0f223 0f223 0f223 0f223 0f219 0f219 0f219 0f219
0f219 0f219 0f223 0f176 0f176 0f176 0f176 0f176 0f176 0f219 0f219 0f223 0f176 0f176 0f176 0f176 0f176 0f176 0f219 0f219 0f176 0f176 0f176 0f219 0f219 0f176 0f176 0f176 0f176 0f176 0f176 0f223 0f219 0f219 0f176 0f176 0f176 0f176 0f176 0f176 0f223 0f219 0f219
0f219 0f176 0f176 0f176 0f223 0f223 0f223 0f223 0f219 0f219 0f219 0f176 0f176 0f176 0f176 0f176 0f176 0f176 0f219 0f219 0f176 0f176 0f176 0f219 0f219 0f176 0f176 0f176 0f176 0f176 0f176 0f176 0f219 0f219 0f219 0f223 0f223 0f223 0f223 0f176 0f176 0f176 0f219
0f219 0f220 0f220 0f176 0f176 0f176 0f176 0f176 0f176 0f219 0f219 0f176 0f176 0f176 0f176 0f220 0f176 0f176 0f223 0f223 0f176 0f176 0f176 0f223 0f223 0f176 0f176 0f220 0f176 0f176 0f176 0f176 0f219 0f219 0f176 0f176 0f176 0f176 0f176 0f176 0f220 0f220 0f219
0f219 0f219 0f219 0f219 0f220 0f176 0f176 0f176 0f176 0f223 0f219 0f219 0f176 0f176 0f176 0f176 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f176 0f176 0f176 0f176 0f219 0f219 0f223 0f176 0f176 0f176 0f176 0f220 0f219 0f219 0f219 0f219
0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f223 0f219 0f219 0f220 0f176 0f176 0f176 0f223 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f223 0f176 0f176 0f176 0f220 0f219 0f219 0f223 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219
0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f223 0f176 0f176 0f176 0f219 0f219 0f219 0f219 0f220 0f220 0f176 0f176 0f176 0f176 0f176 0f176 0f176 0f176 0f176 0f220 0f220 0f219 0f219 0f219 0f219 0f176 0f176 0f176 0f223 0f219 0f219 0f219 0f219 0f219 0f219 0f219
0f219 0f219 0f219 0f219 0f219 0f219 0f176 0f176 0f176 0f220 0f223 0f176 0f176 0f223 0f223 0f223 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f223 0f223 0f223 0f176 0f176 0f223 0f220 0f176 0f176 0f176 0f219 0f219 0f219 0f219 0f219 0f219
0f219 0f219 0f219 0f219 0f219 0f219 0f176 0f176 0f176 0f223 0f176 0f176 0f176 0f176 0f176 0f176 0f176 0f176 0f220 0f220 0f220 0f219 0f220 0f220 0f220 0f176 0f176 0f176 0f176 0f176 0f176 0f176 0f176 0f223 0f176 0f176 0f176 0f219 0f219 0f219 0f219 0f219 0f219
0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f220 0f220 0f220 0f220 0f220 0f220 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f220 0f220 0f220 0f220 0f220 0f220 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219
0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f223 0f176 0f176 0f223 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219
0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f223 0f176 0f176 0f176 0f220 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219
0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f176 0f176 0f176 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219
0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f176 0f176 0f176 0f223 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219
0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f220 0f176 0f176 0f176 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219
0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f176 0f176 0f176 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219 0f219





______________________________________________________
Répondre en citant
Message [Expérimental] tcs_o - Tiny Console Server (Output) - TSnake 
Citation:
j'ai d’ailleurs trouver un petit pb :
mon script lis ligne par ligne, ensuite il lis "mot" par "mot" (séparer donc par des espaces)
Ensuite Chaque "mot" contient les info du pixel
ex: 0f219 > 0f = la couleur et 219 = le caractère
sauf que les caractères inférieur a 100 ne fonctionnent pas bien =/
donc pour mettre un espace, je ne peut pas mettre 32 ni 0 mais 000 sa marche =/ (j'ai pas compris pourquoi)
Encore un vilain bug Evil or Very Mad.
Je pensais tous les avoir exterminés mais, non Neutral.
Bon, je verrais quand je pourrais pour le fixer (au mur).




______________________________________________________
Partager permet le savoir. Le savoir permet de partager de nouveau savoirs.
Répondre en citant
Message [Expérimental] tcs_o - Tiny Console Server (Output) - TSnake 
C'est pas mal Okay , ça ressemble beaucoup à batbox/darbox, mais j'ai pas compris le principe de "Serveur". On pourrait avoir un lien de download pour que l'on puisse le télécharger depuis le batch plutôt que de mettre un code de génération (bug sur certains systèmes)

Tiens comme j'avais rien à faire je l'ai fait en batch (c'est moins fiable):

Code:
@echo off
title tcs_o sans tcs_o

 
call :tcs_o_WAIT 2000
call :tcs_o_DISPLAY "salut ca va"
call :tcs_o_WAIT 2000
call :tcs_o_NEXT
call :tcs_o_WAIT 2000
call :tcs_o_DISPLAY "salut ca va"
call :tcs_o_WAIT 2000
call :tcs_o_CLEAN
call :tcs_o_WAIT 2000
call :tcs_o_COLOR 0E "salut ca va"
call :tcs_o_WAIT 2000
call :tcs_o_COLOR 0F "Code ASCII 65="
call :tcs_o_ASCII 65
call :tcs_o_WAIT 2000
call :tcs_o_COLOR AF "salut ca va"
call :tcs_o_ASCII 175
call :tcs_o_WAIT 2000
exit
 

:tcs_o_ASCII
setlocal enabledelayedexpansion
cmd /c exit %1
set tcs_o_ASCII_var_1=!=exitcodeAscii!
echo;!tcs_o_ASCII_var_1!
endlocal
goto :eof
:tcs_o_COLOR
set "tcs_o_COLOR_var_1=%cd%"
cd "%tmp%"
for /f "delims=." %%a in ('"prompt $H. & for %%b in (1) do rem"') do set "tcs_o_COLOR_var_2=%%a"
( <nul set /p ".=%tcs_o_COLOR_var_2%">%2 & findstr /v /a:%1 /r "^$" %2 nul & del %2 2>&1 )
cd "%tcs_o_COLOR_var_1%"
goto :eof
:tcs_o_CLEAN
cls
goto :eof
:tcs_o_DISPLAY
set "tcs_o_DISPLAY_1=%cd%"
cd "%tmp%"
for /f "delims=." %%a in ('"prompt $H. & for %%b in (1) do rem"') do set "tcs_o_DISPLAY_2=%%a"
( <nul set /p ".=%tcs_o_DISPLAY_2%">%1 & findstr /v /r "^$" %1 nul & del %1 2>&1 )
cd "%tcs_o_DISPLAY_1%"
goto :eof
:tcs_o_NEXT
echo;
goto :eof
:tcs_o_WAIT
echo;On Error Resume Next >"%tmp%\_.vbs"
echo;Wscript.Sleep^(%1^) >>"%tmp%\_.vbs"
echo;CreateObject^("Scripting.FileSystemObject"^).DeleteFile^("%tmp%\_.vbs"^) >>"%tmp%\_.vbs"
"%tmp%\_.vbs"
goto :eof





______________________________________________________
C:\Ma chaine Youtube_
 
D:\Mon forum_
 
Répondre en citant
Message [Expérimental] tcs_o - Tiny Console Server (Output) - TSnake 
Mise à jour (v1.1) :
- Ajout de -g et -o (même syntaxe que batbox/darkbox) (goto_ et origin_ dans le code source)
- taille maximale des chaîne de caractère : 256 -> 1024 (notamment avec l'utilisation de l'allocation sur la pile)
- Correction du "bug des nombres" (signalé par Wolphwood) :
Code:
[lang=asm]; ligne 223
mov byte [str_buf + ebx], 0

Donc : sortez vos benchmark Mr. Green.




______________________________________________________
Partager permet le savoir. Le savoir permet de partager de nouveau savoirs.
Message [Expérimental] tcs_o - Tiny Console Server (Output) - TSnake 


Montrer les messages depuis:
Répondre au sujet Page 1 sur 1
  



Index | créer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Copyright 2008 - 2016 // Batch