Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
222 changes: 113 additions & 109 deletions ldmicro/Makefile
Original file line number Diff line number Diff line change
@@ -1,109 +1,113 @@
DEFINES = /D_WIN32_WINNT=0x400 /DISOLATION_AWARE_ENABLED /D_WIN32_IE=0x400 /DWIN32_LEAN_AND_MEAN /DWIN32 /D$(D)
CFLAGS = /W3 /nologo -I..\common\win32 /O2 /D_CRT_SECURE_NO_WARNINGS /D_DEBUG /Zi

HEADERS = ..\common\win32\freeze.h ldmicro.h mcutable.h intcode.h

OBJDIR = obj

COMPDIR = components

FREEZE = $(OBJDIR)\freeze.obj

LDOBJS = $(OBJDIR)\ldmicro.obj \
$(OBJDIR)\maincontrols.obj \
$(OBJDIR)\helpdialog.obj \
$(OBJDIR)\schematic.obj \
$(OBJDIR)\draw.obj \
$(OBJDIR)\draw_outputdev.obj \
$(OBJDIR)\circuit.obj \
$(OBJDIR)\undoredo.obj \
$(OBJDIR)\loadsave.obj \
$(OBJDIR)\simulate.obj \
$(OBJDIR)\commentdialog.obj \
$(OBJDIR)\contactsdialog.obj \
$(OBJDIR)\coildialog.obj \
$(OBJDIR)\simpledialog.obj \
$(OBJDIR)\resetdialog.obj \
$(OBJDIR)\lutdialog.obj \
$(OBJDIR)\confdialog.obj \
$(OBJDIR)\iolist.obj \
$(OBJDIR)\miscutil.obj \
$(OBJDIR)\lang.obj \
$(OBJDIR)\intcode.obj \
$(OBJDIR)\compilecommon.obj \
$(OBJDIR)\ansic.obj \
$(OBJDIR)\interpreted.obj \
$(OBJDIR)\pic16.obj \
$(OBJDIR)\avr.obj \
$(OBJDIR)\arduino.obj \
$(OBJDIR)\advanceddialog.obj \
$(OBJDIR)\componentlist.obj \
$(OBJDIR)\componentimages.obj \
$(OBJDIR)\naminglist.obj


COMPOBJS = $(OBJDIR)\components.obj \
$(OBJDIR)\switch.obj \
$(OBJDIR)\relay.obj


HELPOBJ = $(OBJDIR)\helptext.obj

CLEANOBJ = $(OBJDIR)\helptext.cpp \
$(OBJDIR)\helptext.obj \
$(OBJDIR)\lang-tables.h \
$(OBJDIR)\ldmicro.exe \
$(OBJDIR)\ldmicro.obj \
$(OBJDIR)\ldmicro.res \
$(OBJDIR)\freeze.obj \
$(OBJDIR)\ldinterpret.exe \
$(OBJDIR)\ldmicro.ilk \
$(OBJDIR)\ldmicro.pdb \
ldinterpret.exe \
ldinterpret.obj \
ldmicro.exe \
vc100.pdb \
reg\results

LIBS = user32.lib gdi32.lib comctl32.lib advapi32.lib windowscodecs.lib ole32.lib

all: $(OBJDIR)/ldmicro.exe $(OBJDIR)/ldinterpret.exe
@cp $(OBJDIR)/ldmicro.exe .
@cp $(OBJDIR)/ldinterpret.exe .
@cd reg
@go.bat
@cd ..

clean:
rm -rf $(LDOBJS) $(COMPOBJS) $(CLEANOBJ)
rmdir reg\results

lang.cpp: $(OBJDIR)/lang-tables.h

$(OBJDIR)/lang-tables.h: lang*.txt
perl lang-tables.pl > $(OBJDIR)/lang-tables.h

$(OBJDIR)/ldinterpret.exe: ldinterpret.c
@$(CC) -Fe$(OBJDIR)/ldinterpret.exe $(LIBS) ldinterpret.c

$(OBJDIR)/ldmicro.exe: $(LDOBJS) $(COMPOBJS) $(FREEZE) $(HELPOBJ) $(OBJDIR)/ldmicro.res
@$(CC) $(DEFINES) $(CFLAGS) -Fe$(OBJDIR)/ldmicro.exe $(LDOBJS) $(COMPOBJS) $(FREEZE) $(HELPOBJ) $(OBJDIR)/ldmicro.res $(LIBS)

$(OBJDIR)/ldmicro.res: ldmicro.rc ldmicro.ico
@rc ldmicro.rc
@mv ldmicro.res $(OBJDIR)

$(LDOBJS): $(@B).cpp $(HEADERS)
@$(CC) $(CFLAGS) $(DEFINES) -c -Fo$(OBJDIR)/$(@B).obj $(@B).cpp

$(COMPOBJS): $(COMPDIR)/$(@B).cpp $(HEADERS)
@$(CC) $(CFLAGS) $(DEFINES) -c -Fo$(OBJDIR)/$(@B).obj $(COMPDIR)/$(@B).cpp

$(FREEZE): ..\common\win32\$(@B).cpp $(HEADERS)
@$(CC) $(CFLAGS) $(DEFINES) -c -Fo$(OBJDIR)/$(@B).obj ..\common\win32\$(@B).cpp

$(HELPOBJ): $(OBJDIR)/helptext.cpp
@$(CC) $(CFLAGS) $(DEFINES) -c -Fo$(OBJDIR)/helptext.obj $(OBJDIR)/helptext.cpp

$(OBJDIR)/helptext.cpp: manual.txt manual-*.txt
perl txt2c.pl > $(OBJDIR)/helptext.cpp
DEFINES = /D_WIN32_WINNT=0x400 /DISOLATION_AWARE_ENABLED /D_WIN32_IE=0x400 /DWIN32_LEAN_AND_MEAN /DWIN32 /D$(D)
CFLAGS = /W3 /nologo -I..\common\win32 /O2 /D_CRT_SECURE_NO_WARNINGS /D_DEBUG /Zi

HEADERS = ..\common\win32\freeze.h ldmicro.h mcutable.h intcode.h

OBJDIR = obj

COMPDIR = components

FREEZE = $(OBJDIR)\freeze.obj

LDOBJS = $(OBJDIR)\ldmicro.obj \
$(OBJDIR)\maincontrols.obj \
$(OBJDIR)\helpdialog.obj \
$(OBJDIR)\schematic.obj \
$(OBJDIR)\draw.obj \
$(OBJDIR)\draw_outputdev.obj \
$(OBJDIR)\circuit.obj \
$(OBJDIR)\undoredo.obj \
$(OBJDIR)\loadsave.obj \
$(OBJDIR)\simulate.obj \
$(OBJDIR)\commentdialog.obj \
$(OBJDIR)\contactsdialog.obj \
$(OBJDIR)\coildialog.obj \
$(OBJDIR)\simpledialog.obj \
$(OBJDIR)\resetdialog.obj \
$(OBJDIR)\lutdialog.obj \
$(OBJDIR)\confdialog.obj \
$(OBJDIR)\iolist.obj \
$(OBJDIR)\miscutil.obj \
$(OBJDIR)\lang.obj \
$(OBJDIR)\intcode.obj \
$(OBJDIR)\compilecommon.obj \
$(OBJDIR)\ansic.obj \
$(OBJDIR)\interpreted.obj \
$(OBJDIR)\pic16.obj \
$(OBJDIR)\avr.obj \
$(OBJDIR)\arduino.obj \
$(OBJDIR)\advanceddialog.obj \
$(OBJDIR)\componentlist.obj \
$(OBJDIR)\componentimages.obj \
$(OBJDIR)\naminglist.obj


COMPOBJS = $(OBJDIR)\components.obj \
$(OBJDIR)\switch.obj \
$(OBJDIR)\relay.obj \
$(OBJDIR)\spdt.obj \
$(OBJDIR)\dpst.obj \
$(OBJDIR)\dpdt.obj \



HELPOBJ = $(OBJDIR)\helptext.obj

CLEANOBJ = $(OBJDIR)\helptext.cpp \
$(OBJDIR)\helptext.obj \
$(OBJDIR)\lang-tables.h \
$(OBJDIR)\ldmicro.exe \
$(OBJDIR)\ldmicro.obj \
$(OBJDIR)\ldmicro.res \
$(OBJDIR)\freeze.obj \
$(OBJDIR)\ldinterpret.exe \
$(OBJDIR)\ldmicro.ilk \
$(OBJDIR)\ldmicro.pdb \
ldinterpret.exe \
ldinterpret.obj \
ldmicro.exe \
vc100.pdb \
reg\results

LIBS = user32.lib gdi32.lib comctl32.lib advapi32.lib windowscodecs.lib ole32.lib

all: $(OBJDIR)/ldmicro.exe $(OBJDIR)/ldinterpret.exe
@cp $(OBJDIR)/ldmicro.exe .
@cp $(OBJDIR)/ldinterpret.exe .
@cd reg
@go.bat
@cd ..

clean:
rm -rf $(LDOBJS) $(COMPOBJS) $(CLEANOBJ)
rmdir reg\results

lang.cpp: $(OBJDIR)/lang-tables.h

$(OBJDIR)/lang-tables.h: lang*.txt
perl lang-tables.pl > $(OBJDIR)/lang-tables.h

$(OBJDIR)/ldinterpret.exe: ldinterpret.c
@$(CC) -Fe$(OBJDIR)/ldinterpret.exe $(LIBS) ldinterpret.c

$(OBJDIR)/ldmicro.exe: $(LDOBJS) $(COMPOBJS) $(FREEZE) $(HELPOBJ) $(OBJDIR)/ldmicro.res
@$(CC) $(DEFINES) $(CFLAGS) -Fe$(OBJDIR)/ldmicro.exe $(LDOBJS) $(COMPOBJS) $(FREEZE) $(HELPOBJ) $(OBJDIR)/ldmicro.res $(LIBS)

$(OBJDIR)/ldmicro.res: ldmicro.rc ldmicro.ico
@rc ldmicro.rc
@mv ldmicro.res $(OBJDIR)

$(LDOBJS): $(@B).cpp $(HEADERS)
@$(CC) $(CFLAGS) $(DEFINES) -c -Fo$(OBJDIR)/$(@B).obj $(@B).cpp

$(COMPOBJS): $(COMPDIR)/$(@B).cpp $(HEADERS)
@$(CC) $(CFLAGS) $(DEFINES) -c -Fo$(OBJDIR)/$(@B).obj $(COMPDIR)/$(@B).cpp

$(FREEZE): ..\common\win32\$(@B).cpp $(HEADERS)
@$(CC) $(CFLAGS) $(DEFINES) -c -Fo$(OBJDIR)/$(@B).obj ..\common\win32\$(@B).cpp

$(HELPOBJ): $(OBJDIR)/helptext.cpp
@$(CC) $(CFLAGS) $(DEFINES) -c -Fo$(OBJDIR)/helptext.obj $(OBJDIR)/helptext.cpp

$(OBJDIR)/helptext.cpp: manual.txt manual-*.txt
perl txt2c.pl > $(OBJDIR)/helptext.cpp
111 changes: 66 additions & 45 deletions ldmicro/components/componentfunctions.h
Original file line number Diff line number Diff line change
@@ -1,45 +1,66 @@
#ifndef _COMPONENT_FUNCTIONS
#define _COMPONENT_FUNCTIONS

//Few Prerequisites
extern HFONT MyNiceFont;
extern HFONT MyFixedFont;
extern HWND OkButton;
extern HWND CancelButton;
extern HINSTANCE* ComponentInstance;

extern BOOL DlgDone;
extern BOOL DlgCancel;
extern HWND ComponentDialog;

// Common Functions

void FontNice(HWND h);
void FontFixed(HWND h);
HWND* CreateDialogWindow(LPCTSTR title, int x, int y, int width, int height, int style);
void ShowDialogWindow(void);
BOOL ProcessDialogWindow(void);

/*Initialization Functions*/
int InitSwitch(void* ComponentAddress);
int InitRelay(void* ComponentAddress);

/*Event Handlers*/
void HandleSwitchEvent(void* ComponentAddress, int Event, BOOL SimulationStarted,
void* ImageLocation, UINT ImageId, HWND* h);
void HandleRelayEvent(void* ComponentAddress, int Event, BOOL SimulationStarted,
void* ImageLocation, UINT ImageId, HWND* h);

/*Request Handlers*/
double SwitchVoltChanged(void* ComponentAddress, BOOL SimulationStarted, int index,
double Volt, int Source, void* ImageLocation);
double RelayVoltChanged(void* ComponentAddress, BOOL SimulationStarted, int index,
double Volt, int Source, void* ImageLocation);

/*Program Reference Functions*/
void SetSwitchIds(int*, void*);
void SetRelayIds(int*, void*);

// Relay Functions

#endif
#ifndef _COMPONENT_FUNCTIONS
#define _COMPONENT_FUNCTIONS

//Few Prerequisites
extern HFONT MyNiceFont;
extern HFONT MyFixedFont;
extern HWND OkButton;
extern HWND CancelButton;
extern HINSTANCE* ComponentInstance;

extern BOOL DlgDone;
extern BOOL DlgCancel;
extern HWND ComponentDialog;

// Common Functions

void FontNice(HWND h);
void FontFixed(HWND h);
HWND* CreateDialogWindow(LPCTSTR title, int x, int y, int width, int height, int style);
void ShowDialogWindow(void);
BOOL ProcessDialogWindow(void);

/*Initialization Functions*/
int InitSwitch(void* ComponentAddress);
int InitRelay(void* ComponentAddress);
int InitSpdt(void* ComponentAddress);
int InitDpst(void* ComponentAddress);
int InitDpdt(void* ComponentAddress);


/*Event Handlers*/
void HandleSwitchEvent(void* ComponentAddress, int Event, BOOL SimulationStarted,
void* ImageLocation, UINT ImageId, HWND* h);
void HandleRelayEvent(void* ComponentAddress, int Event, BOOL SimulationStarted,
void* ImageLocation, UINT ImageId, HWND* h);
void HandleSpdtEvent(void* ComponentAddress, int Event, BOOL SimulationStarted,
void* ImageLocation, UINT ImageId, HWND* h);
void HandleDpstEvent(void* ComponentAddress, int Event, BOOL SimulationStarted,
void* ImageLocation, UINT ImageId, HWND* h);
void HandleDpdtEvent(void* ComponentAddress, int Event, BOOL SimulationStarted,
void* ImageLocation, UINT ImageId, HWND* h);


/*Request Handlers*/
double SwitchVoltChanged(void* ComponentAddress, BOOL SimulationStarted, int index,
double Volt, int Source, void* ImageLocation);
double RelayVoltChanged(void* ComponentAddress, BOOL SimulationStarted, int index,
double Volt, int Source, void* ImageLocation);
double SpdtVoltChanged(void* ComponentAddress, BOOL SimulationStarted, int index,
double Volt, int Source, void* ImageLocation);
double DpstVoltChanged(void* ComponentAddress, BOOL SimulationStarted, int index,
double Volt, int Source, void* ImageLocation);
double DpdtVoltChanged(void* ComponentAddress, BOOL SimulationStarted, int index,
double Volt, int Source, void* ImageLocation);



/*Program Reference Functions*/
void SetSwitchIds(int*, void*);
void SetRelayIds(int*, void*);
void SetSpdtIds(int*, void*);
void SetDpstIds(int*, void*);
void SetDpdtIds(int*, void*);
// Relay Functions

#endif
Loading