Easy Code - Assemblador visual

Entorn visual de desenvolupament en llenguatge assemblador

Versió 1.09 Masm


INTRODUCCIÓ

Easy Code és una de les primeres Interfícies visuals d'Entorn de Desenvolupament (IDE) per als conjunts d'eines Masm32, basats en el Macro Assembler de 32 bits de Microsoft. L'Easy Code ha estat programat totalment en llenguatge assemblador, la qual cosa li dóna una sorprenent velocitat i rapidesa que es nota en dissenyar un projecte nou.

L'Easy Code necessita un entorn Windows de 32 bits per tal de poder funcionar, atès que no té cap suport de 16 bits. La programació d'aquest IDE es va dur a terme en Windows NT40 i, tot i que funciona correctament en Windows 95/98/ME, el seu major rendiment s'obté amb el sistema operatiu Windows NT40 de Microsoft o qualsevol altre comercialitzat posteriorment (Windows 2000/XP/2003/2008/VISTA/7/8).

IMPORTANT: L'Easy Code 1.07 treballa en mode Unicode quan s'executa en Windows NT i sistemes posteriors, o en mode ANSI quan s'executa en Windows 95/98/ME. Aquest nou format permet programar aplicacions Unicode d'una manera ràpida i fàcil (vegeu el tòpic Aplicacions ANSI / Unicode). En tots dos modes, ANSI o Unicode, l'editor de codi i tots els noms i fitxers relacionats amb els projectes (noms i fitxers de projectes, recursos, finestres i controls) es processen sempre com a text ANSI per motius de compatibilitat. Quan s'executa com a Unicode (és a dir, en Windows NT o posterior), el quadre de diàleg per obrir i desar fitxers també és una finestra Unicode. Tot i així, un cop s'ha seleccionat un fitxer, el seu nom i la seva ruta ("path") es converteixen sempre a ANSI, per tant, tingueu present aquesta qüestió a l'hora de seleccionar carpetes o posar nom als objectes i fitxers dels vostres projectes.

El conjunt d'eines Masm32 es troba disponible gratuïtament, i almenys un d'ells és necessari per la plena funcionalitat de l'Easy Code. Descarregueu i instal·leu la darrera versió del Masm32 a:

The MASM32 SDK


NOTA IMPORTANT: L'Easy Code 1.07 utilitza la funció de l'API wsprintfW a les seves llibreries visuals i les versions anteriors al Masm32 v10 no inclouen aquesta funció dins del seu fitxer User32.lib. Per tant, si utilitzeu el Masm32, haurieu de descarregar i instal·lar el Masm32 v10 (recomanat). Contràriament, és imprescindible substituir els fitxers User32.inc i User32.lib amb els que venen amb el Masm32 v10.

OBSERVACIONS: El Masm32 inclou els fitxers polink.exe (enllaçador), porc.exe (compilador de recursos) i polib.exe (compilador de llibreries). Per a tots aquells que desitgin utilitzar aquest excel·lent material de Pelle Orinius (vegeu la configuració de l'Easy Code al menú Eines->Configuració), cal tenir en compte que els exemples que vénen amb l'Easy Code només es compilen i s'enllacen correctament si s'utilitzen els fitxers ml.exe (compilador) i link.exe (enllaçador) de Microsoft, atès que ambdós suporten tota la sintaxi del Macro Assembler (Masm).


AGRAÏMENTS

Paul E. Brennick Per escriure l'ajuda en anglès de l'Editor de Recursos, programar GeneSys, EasyCalc, CardFile i altres bons exemples (tots inclosos), ajudar-me a provar i depurar l'Easy Code, i molt especialment per la seva constant ajuda i suport.
Phill Kahle Per traduir a l'anglès una bona part del fitxer d'ajuda de la primera versió de l'Easy Code i ajudar-me a provar-lo i depurar-lo.
Robert Bieber Per permetre'm incloure els seus excel·lents projectes File Shredder i RGG (una demostració del GDI) com a exemples de l'Easy Code.
Mark Jones Per permetre'm incloure el seu excel·lent projecte MIDI Player com un exemple de l'Easy Code.
Mark Wright Per la seva gran i constant ajuda i suport en provar i depurar l'Easy Code.
Josep Vallès Per traduir al castellà el fitxer d'ajuda de la primera versió de l'Easy Code.
Héctor A. Medina Per la seva enorme ajuda i constant esforç en provar i depurar l'Easy Code (especialment en Windows 95), per programar el mètode GetCPUInfo i per escriure tot el codi relacionat amb els drivers.
Jason Jiang Per traduir els fitxers d'idioma xinès, tant el simplificat com el tradicional.
Noteworthy Lord Per traduir el fitxer d'idioma francès.


INICIANT L'EASY CODE

Si executeu l'Easy Code sense cap paràmetre a la línia de comandes que indiqui un projecte, una finestra o un mòdul, us apareixerà un quadre de diàleg per tal de crear un projecte nou. D'altra banda, qualsevol paràmetre a la línia de comandes que no tingui una extensió ".ecp", ".ecw", ".ecr" o ".asm" serà ignorat i també farà aparèixer el quadre de diàleg que es mostra tot seguit:

Hi ha set opcions disponibles segons el tipus de projecte:

Fitxer executable visual (exe)
Fitxer executable clàssic (exe)
Llibreria dinàmica clàssica (dll)
Llibreria estàtica clàssica (lib)
Aplicació de consola clàssica (exe)
Fitxer objecte COFF clàssic (obj)
Driver NT clàssic (sys)

L'Easy Code té dos modes principals, el "Projecte Visual" i el "Projecte Clàssic". El mode clàssic és el més tradiconal i conegut, on el programador escriu el codi de tot el projecte i el configura manualment per tal que funcioni després de compilar-lo i enllaçar-lo com a la majoria dels IDE's. El mode visual és on l'Easy Code destaca per ell mateix i es converteix en únic. Aquest mode us permet crear tota mena de finestres, controls i recursos del Windows per tal de programar una potent i complexa aplicació d'una manera molt ràpida i fàcil.

El projecte Fitxer objecte COFF clàssic és útil per tal de generar un fitxer objecte, d'un o més mòduls, que després es pot enllaçar amb altres projectes. Aquesta opció evita haver de generar lliberies estàtiques (.lib) si no us agraden, i només genera un fitxer .obj (en format COFF) tot i que hi hagi diversos mòduls al projecte. El fitxer objecte generat tindrà el nom del projecte més l'extensió .obj.

Quan es crea un projecte nou cal especificar el tipus de fitxer final que es desitja. Les "Llibreries dinàmiques", "Llibreries estàtiques" i aplicacions de consola són considerats projectes clàssics de manera natural. Només quan trieu un fitxer "Executable", tindreu l'opció de generar un projecte tradicional (clàssic) o un projecte visual de l'Easy Code.

Si voleu utilitzar els 'Windows Common controls' i/o el control 'Rich edit', marqueu el quadre de verificació corresponent i els seus fitxers .inc i .lib seran afegits al projecte per l'Easy Code. D'altra banda, marcant/desmarcant aquests quadres, es mostraran o s'amagaran els botons corresponents a la caixa d'eines.

El quadre de verificació Fitxer Manifest.xml (només disponible per als projectes Fitxer executable visual i Fitxer executable clàssic) indica si s'ha de crear el fitxer necessari per activar els nous "common controls" als sistemes Windows XP i posteriors (vegeu Activant els temes XP). Si aquest quadre està marcat quan es crea el projecte, el fitxer Manifest.xml apareixerà dins del node "Miscel·lània" de l'Explorador del projecte, per tal que pugui ser editat a l'entorn de l'Easy Code. Si us plau, llegiu atentament el tòpic Incloent un Manifest al projecte.

El quadre de verificació Fitxer Macros.asm indica si el fitxer Macros.asm (que ve amb el conjunt d'eines Masm32) s'ha d'incloure al projecte o no.


OBSERVACIONS: A tots dos modes, visual i clàssic, la directiva .Code ha d'existir sempre (a cada Finestra o Mòdul) i estar definida després de les directives .Const, .Data? o .Data per tal que l'IDE treballi correctament (control dels procediments, macros, variables i estructures). Tot el codi que es trobi abans de la directiva .Code serà considerat com a dades. Si la directiva .Code no existeix, tot el text serà considerat com a dades i l'IDE treballarà molt lentament.


SUB-TÒPICS

Configurant l'Easy Code
Programació de serveis NT
Programació de controladors NT (drivers)
Compilant amb JWasm enlloc de Masm
Fitxers de configuració específics (fitxers INI)

Codi i Dades: Privat o Públic  Important!

Projectes visuals (mode potent de l'Easy Code)
Projectes clàssics (estil tradicional de l'IDE)
Propietats del projecte

Accedint a la funció 'WinMain' del Windows (només projectes visuals)

Modificant les opcions del compilador (tots els projectes)

Objecte Thread (només projectes visuals)

Afegint "tooltips" als projectes visuals

Marcadors (Bookmarks)

Suport multillengua
Els fitxers d'idioma (com fer-los)

Utilitzant el Masm32 v11 (tots els projectes)

Aplicacions ANSI / Unicode (només projectes visuals)

Incloent un Manifest al projecte (només projectes exe)

Activant els temes XP (tots els projectes)

Propietat "OwnerDraw" (només projectes visuals)

Compilació condicional (tots els projectes)

Processant el temps "idle" (només projectes visuals)

Objectes Control
Propietats dels objectes (només projectes visuals)
Llegint i escrivint propietats (només projectes visuals)
Personalitzant objectes (només projectes visuals)

Recursos - Editor de Recursos (tots els projectes)
Importació de fitxers de recursos (tots els projectes)
Icona de l'aplicació (tots els projectes)

Editor de l'Easy Code
Editor de Menús (tots els projectes)

Compilant i Generant Projectes
Manejant Errors en temps d'execució (només projectes visuals)
Objectes App i Error (només projectes visuals)

Macros de l'Easy Code Masm (tots els projectes)
Utilitzant el fitxer Macros.asm (tots els projectes)
Utilitzant els tipus de variables del Windows (tots els projectes)

Mètodes de l'Easy Code Masm (només projectes visuals)
Constants de l'Easy Code Masm (només projectes visuals)



FITXERS I CARPETES

L'Easy Code es distribueix en un fitxer zip que inclou els fitxers llistats a continuació. Les subcarpetes principals es mostren en lletra negreta.


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 vegada que l'Easy Code i el Masm32 s'ha instal·lat, assegureu-vos que la configuració de l'Easy Code és correcta. Aneu al menú Eines-->Configuració, seleccioneu la pestanya Compilació / Enllaç i indiqueu les ubicacions correctes pels diferents fitxers i directoris. Haurieu de poder carregar tots els projectes d'exemple i generar-los sense errors (sempre que s'utilitzin el compilador ml.exe i l'enllaçador link.exe). Si no teniu el Masm32 instal·lat, només podreu editar els projectes.


PRESTACIONS DE L'EASY CODE

Algunes de les prestacions d'aquest IDE són:


L'Easy Code és completament gratuït. Gaudïu-lo i feu grans i bones aplicacions en assemblador. Si us plau notifiqueu qualsevol errada o problema que trobeu en aquest IDE. Quan notifiqueu algun problema intenteu explicar com ha succeït per tal de poder corregir el més aviat possible (si adjunteu un projecte de mostra, molt millor). Estaré encantat de respondre-us personalment a través del correu electrònic.


SUPORT TÈCNIC

Per a qualsevol dubte, suport tècnic o notificació d'errors, si us plau adreceu--vos a una de les adreces electròniques indicades. Gràcies.

asm@easycode.cat
rsala@easycode.cat

http://www.easycode.cat

Copyright © 2004-2015 Ramon Sala

L'aplicació Easy Code ha estat desenvolupada utilitzant el MASM32 SDK (Macro Assembler de 32 bits de Microsoft)