Easy Code - Ensamblador visual

Entorno visual de desarrollo en lenguaje ensamblador

Versión 1.09 Masm


INTRODUCCIÓN

Easy Code es una de las primeras Interfaces visuales de Entorno de Desarrollo (IDE) para los conjuntos de herramientas Masm32, basado en el Macro Assembler de 32 bits de Microsoft. Easy Code ha sido programado totalmente en lenguaje ensamblador, lo cual le confiere una sorprendente velocidad y rapidez que se nota al diseñar un proyecto nuevo.

Easy Code necesita un entorno Windows de 32 bits para poder funcionar, puesto que no tiene ningún soporte de 16 bits. La programación de este IDE se llevó a cabo en Windows NT40 y, aunque también funciona correctamente en Windows 95/98/ME, su mayor rendimiento se obtiene con el sistema operativo Windows NT40 de Microsoft o cualquier otro comercializado posteriormente (Windows 2000/XP/2003/2008/VISTA/7/8).

IMPORTANTE: Easy Code 1.07 trabaja en modo Unicode cuando se ejecuta en Windows NT y sistemas posteriores, o en modo ANSI cuando se ejecuta en Windows 95/98/ME. Este nuevo formato permte programar aplicaciones Unicode de una manera rápida y fácil (vea el tópico Aplicaciones ANSI / Unicode). En ambos modos, ANSI o Unicode, el editor de código y todos los nombres y archivos relacionados con los proyectos (nombres y archivos de proyectos, recursos, ventanas y controles) se procesan siempre como texto ANSI por motivos de compatibilidad. Cuando se ejecuta como Unicode (es decir, en Windows NT o posterior), el cuadro de diálogo para abrir y guardar archivos también es una ventana Unicode. Aun así, una vez se ha seleccionado un archivo, su nombre y su ruta ("path") se convierten siempre a ANSI, por consiguiente, tenga presente esta cuestión a la hora de seleccionar carpetas o dar nombre a los objetos y archivos de sus proyectos.

El conjunto de herramientas Masm32 se encuentra disponible gratuitamente, y es necesario para la plena funcionalidad de Easy Code. Descargue e instale la última versión de Masm32 en:

The MASM32 SDK


NOTA IMPORTANTE: Easy Code 1.07 utiliza la función de la API wsprintfW en sus librerías visuales y las versiones anteriores a Masm32 v10 no incluyen esa función dentro de su archivo User32.lib. Por consiguiente, si utiliza Masm32, debería descargar e instalar Masm32 v10 (recomendado). De lo contrario, es imprescindible reemplazar los archivos User32.inc y User32.lib con los que vienen con Masm32 v10.

OBSERVACIONES: Masm32 incluye los archivos polink.exe (enlazador), porc.exe (compilador de recursos) y polib.exe (compilador de librerías). Para todos aquellos que deseen utilizar este excelente material de Pelle Orinius (vea la configuración de Easy Code en el menú Herramientas->Configuración), hay que tener presente que los ejemplos que vienen con Easy Code sólo se compilan y enlazan correctamente si se utilizan los archivos ml.exe (compilador) y link.exe (enlazador) de Microsoft, puesto que ambos soportan toda la sintaxis del Macro Assembler (Masm).


AGRADECIMIENTOS

Paul E. Brennick Por escribir la ayuda en inglés del Editor de Recursos, programar su editor GeneSys, EasyCalc, CardFile y otros buenos ejemplos (todos incluidos), ayudarme a probar y depurar Easy Code, y muy especialmente por su constante ayuda y soporte.
Phill Kahle Por traducir al inglés una buena parte del archivo de ayuda de la primera versión de Easy Code y ayudarme a probarlo y depurarlo.
Robert Bieber Por permitirme incluir sus excelentes proyectos File Shredder y RGG (una demostración del GDI) como ejemplos de Easy Code.
Mark Jones Por permitirme incluir su excelente proyecto MIDI Player como un ejemplo de Easy Code.
Mark Wright Por su gran ayuda y constante soporte en probar y depurar Easy Code.
Josep Vallès Por traducir al español el archivo de ayuda de la primera versión de Easy Code.
Héctor A. Medina Por su enorme ayuda y constante esfuerzo en probar y depurar Easy Code (especialmente en Windows 95), por programar el método GetCPUInfo y por escribir todo el código relacionado con los drivers.
Jason Jiang Por traducir los archivos de idioma chino, tanto el simplificado como el tradicional.
Noteworthy Lord Por traducir el archivo de idioma francés.


INICIANDO EASY CODE

Si se ejecuta Easy Code sin ningún parámetro en la linea de comandos que indique un proyecto, una ventana o un módulo, aparecerá un cuadro de diálogo para crear un proyecto nuevo. Por otra parte, cualquier parámetro en la linea de comandos que no tenga una extensión ".ecp", ".ecw", ".ecr" o ".asm" será ignorado y también aparecerá el cuadro de diálogo que se muestra a continuación:

Hay siete opciones disponibles según el tipo de proyecto:

Archivo ejecutable visual (exe)
Archivo ejecutable clásico (exe)
Librería dinámica clásica (dll)
Librería estática clásica (lib)
Aplicación de consola clásica (exe)
Archivo objeto COFF clásico (obj)
Driver NT clásico (sys)

Easy Code tiene dos modos principales, el "Proyecto Visual" y el "Proyecto Clásico". El modo clásico es el mas tradiconal y conocido, donde el programador escribe el código de todo el proyecto y lo configura manualmente para que funcione después de compilarlo y enlazarlo como en la mayoría de los IDE's. El modo visual es donde Easy Code destaca por sí mísmo y se convierte en único. Este modo le permite crear todo tipo de ventanas, controles y recursos de Windows para programar una potente y compleja aplicación de una manera muy rápida y fácil.

El proyecto Archivo objeto COFF clásico es útil para generar un archivo objeto, de uno o mas módulos, que después puede enlazarse con otros proyectos. Esta opción evita tener que generar liberías estáticas (.lib) si no le gustan, y solamente genera un archivo .obj (en formato COFF) aunque haya varios módulos en el proyecto. El archivo objeto generado tendrá el nombre del proyecto mas la extensión .obj.

Cuando se crea un proyecto nuevo hay que especificar el tipo de archivo final que se desea. Las "Librerías dinámicas", "Librerías estáticas" y aplicaciones de consola son consideradas proyectos clásicos de manera natural. Sólo cuando elija un archivo "Ejecutable", tendrá la opción de generar un proyecto tradicional (clásico) o un proyecto visual de Easy Code.

Si desea utilizar los 'Windows Common controls' y/o el control 'Rich edit', marque el cuadro de verificación correspondiente y sus archivos .inc y .lib serán agregados al proyecto por Easy Code. Por otra parte, marcando o desmarcando estos cuadros, se mostrarán o se ocultarán los botones correspondientes en la caja de herramientas.

El cuadro de verificación Archivo Manifest.xml (sólo disponible para los proyectos Archivo ejecutable visual y Archivo ejecutable clásico) indica si debe crearse el archivo necesario para activar los nuevos "common controls" en sistemas Windows XP y posteriores (vea Activando los temas XP). Si este cuadro está marcado cuando se crea el proyecto, el archivo Manifest.xml aparecerá dentro del nodo "Misceláneo" del Explorador del proyecto, para que pueda ser editado en el entorno de Easy Code. Por favor, lea atentamente el tópico Incluyendo un Manfiesto en el proyecto.

El cuadro de verificación Archivo Macros.asm indica si el archivo Macros.asm (que viene con los conjuntos de heramientas Masm32) debe incluirse en el proyecto o no.


OBSERVACIONES: En ambos modos, visual y clásico, la directiva .Code debe existir siempre (en cada Ventana o Módulo) y estar definida después de las directivas .Const, .Data? o .Data para que el IDE trabaje correctamente (control de los procedimientos, macros, variables y estructuras). Todo el código que se encuentre antes de la directiva .Code será considerado como datos. Si la directiva .Code no existe, todo el texto será considerado como datos y el IDE trabajará muy lentamente.


SUB-TÓPICOS

Configurando Easy Code
Programación de servicios NT
Programación de controladores NT (drivers)
Compilando con JWasm en lugar de Masm
Archivos de configuración específicos (archivos INI)

Código y Datos: Privado o Público  ¡Importante!

Proyectos visuales (modo potente de Easy Code)
Proyectos clásicos (estilo tradicional del IDE)
Propiedades del proyecto

Accediendo a la función 'WinMain' de Windows (sólo proyectos visuales)

Modificando las opciones del compilador (todos los proyectos)

Objeto Thread (sólo proyectos visuales)

Agregando "tooltips" a los proyectos visuales

Marcadores (Bookmarks)

Soporte multilengua
Los archivos de idioma (cómo hacerlos)

Utilizando Masm32 v11 (todos los proyectos)

Aplicaciones ANSI / Unicode (sólo proyectos visuales)

Incluyendo un Manifiesto en el proyecto (sólo proyectos exe)

Activando los temas XP (todos los proyectos)

Propiedad "OwnerDraw" (sólo proyectos visuales)

Compilación condicional (todos los proyectos)

Procesando el tiempo "idle" (sólo proyectos visuales)

Objetos Control
Propiedades de los objetos (sólo proyectos visuales)
Leyendo y escribiendo propiedades (sólo proyectos visuales)
Personalizando objetos (sólo proyectos visuales)

Recursos - El Editor de Recursos (todos los proyectos)
Importación de archivos de recursos (todos los proyectos)
Icono de la aplicación (todos los proyectos)

Editor de Easy Code
Editor de Menús (todos los proyectos)

Compilando y Generando Proyectos
Manejando Errores en tiempo de ejecución (sólo proyectos visuales)
Objetos App y Error (sólo proyectos visuales)

Macros de Easy Code Masm (todos los proyectos)
Utilizando el archivo Macros.asm (todos los proyectos)
Utilizando los tipos de variables de Windows (todos los proyectos)

Métodos de Easy Code Masm (sólo proyectos visuales)
Constantes de Easy Code Masm (sólo proyectos visuales)



ARCHIVOS Y CARPETAS

Easy Code se distribuye en un archivo zip que incluye los archivos listados a continuación. Las subcarpetas principales se muestran en letra negrita.


Bin

EasyCode.exe

Common

ECCalls.bin
ECConst.bin
ECStruct.bin
QuartzDB.ttf
M32Macro.bin
M32Types.bin
UPX.EXE

Examples

CardFile
Drives
EasyCalc
ECPDriver
ECPDrvTest
ECPlayer
File Shredder
GeneSys
MDI
Memory
MIDIPlay
NetMon
Reboot
Reserved
RGG
RSEditHelp
RSEditor
Splash
TabStrip
Theming

Help

EasyCode.hlp

Include

accctrl.inc
acpiioct.inc
bugcodes.inc
dbt.inc
devguid.inc
devioctl.inc
diskguid.inc
ECIncMs.inc
excpt.inc
guiddef.inc
ipfirewall.inc
macros.inc
mmsystem.inc
mountdev.inc
mountmgr.inc
ntddcdrm.inc
ntddcdvd.inc
ntddchgr.inc
ntdddisk.inc
ntddft.inc
ntddk.inc
ntddkbd.inc
ntddmou.inc
ntddpar.inc
ntddscsi.inc
ntddser.inc
ntddstor.inc
ntddtape.inc
ntddtdi.inc
ntdef.inc
ntdskreg.inc
ntifs.inc
ntiologc.inc
ntnls.inc
ntstatus.inc
parallel.inc
regstr.inc
stireg.inc
tvout.inc
undoc.inc
usb.inc
usb100.inc
usb200.inc
usbdi.inc
usbioctl.inc
usbiodef.inc
usbscan.inc
usbuser.inc
winioctl.inc
winsvc.inc
wtypes.inc

Language

ECCatCA.lge
ECChnPR.lge
ECChnTW.lge
ECEngIN.lge
ECEspES.lge

Lib

ECDllMsd.dll
ECDllMsd.lib
ECDllMsr.dll
ECDllMsr.lib
ECStcMsd.lib
ECStcMsr.lib

Macros

ECMacros.asm


Una vez que Easy Code y Masm32 se hayan instalado, asegúrese de que la configuración de Easy Code es correcta. Vaya al menú Herramientas-->Configuración, seleccione la pestaña Compilar / Enlazar e indique las ubicaciones correctas para los diferentes archivos y directorios. Debería poder cargar todos los proyectos de ejemplo y generarlos sin errores (siempre que se utilice el compilador ml.exe y el enlazador link.exe). Si no tiene Masm32 instalado, sólo podrá editar los proyectos.


PRESTACIONES DE EASY CODE

Algunas de las prestaciones de este IDE son:

  • Resaltado y colorización de las palabras reservadas
  • Declaración automática de Módulos, Variables y Procedimientos. No es preciso declarar los procedimientos ni las variables externas porque Easy Code se cuida de ello. Aun así, si es necesario, los Procedimientos se pueden declarar como privados y la opción de variables globales puede ser desactivada
  • Corrección automática de sintaxis, con supresión de los espacios del medio y del lado izquierdo
  • Ayuda contextual de las rutinas, estructuras y constantes de la API
  • Editor completo de alta velocidad con diversas funciones, como Buscar, Reemplazar, Deshacer, Rehacer, etc.

Easy Code es completamente gratuito. Disfrútelo y haga grandes y buenas aplicaciones en ensamblador. Por favor notifique cualquier error o problema que encuentre en este IDE. Cuando notifique algún problema intente explicar como ha sucedido para poder corregirlo lo antes posible (si adjunta un proyecto de muestra, mucho mejor). Estaré encantado de responderle personalmente a través del correo electrónico.


SOPORTE TÉCNICO

Para cualquier duda, soporte técnico o notificación de errores, por favor diríjase a una de las direcciones electrónicas indicadas. Gracias.

asm@easycode.cat
rsala@easycode.cat

http://www.easycode.cat

Copyright © 2004-2015 Ramon Sala

La aplicación Easy Code ha sido desarrollada utilizando el MASM32 SDK (Macro Assembler de 32 bits de Microsoft)