Skip to content

Commit 03398d9

Browse files
committed
Add -DBUILD_SMALL_DFLAT for small version, make SMALL=y creates smallpad
Now capable of compiling small model for ELKS Default use new EDITOR control instead of EDITBOX Remove color hack in ansi screen conversion Don't turn on cursor exiting tty_output_screen
1 parent c72e5b6 commit 03398d9

17 files changed

+374
-117
lines changed

Makefile

+48-24
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,15 @@
22
# D - F L A T M A K E F I L E - GCC
33
#-------------------------------------------------------------------
44

5-
AR = ar
5+
SMALL=
6+
FULL=
67

8+
ifeq ($(SMALL),y)
9+
PRGS = smallpad
10+
else
711
PRGS = memopad huffc fixhelp memopad.hlp
12+
endif
13+
814
LIBS = libdflat.a
915

1016
all: $(LIBS) $(PRGS)
@@ -13,52 +19,70 @@ elks:
1319
make -f Makefile.elks
1420

1521
clean:
16-
rm -f *.o *.a memopad huffc fixhelp memopad.hlp
22+
rm -f *.o *.a memopad smallpad huffc fixhelp memopad.hlp
1723

18-
# This macro builds the full D-Flat system with all options enabled.
19-
# Comment it out for a minimum system or selectively
20-
# comment out the #defines at the top of dflat.h.
21-
FULL = -DBUILD_FULL_DFLAT
24+
ifeq ($(SMALL),y)
25+
BUILDOPTS = -DBUILD_SMALL_DFLAT
26+
endif
2227

23-
#------------------------------------------------
24-
CFLAGS += $(FULL) -DMACOS=1 -c -g
28+
ifeq ($(FULL),y)
29+
BUILDOPTS = -DBUILD_FULL_DFLAT
30+
endif
31+
32+
AR = ar
33+
CFLAGS += $(BUILDOPTS) -DMACOS=1
34+
CFLAGS += -g
2535
CFLAGS += -Wno-pointer-sign
2636
CFLAGS += -Wno-compare-distinct-pointer-types
2737
CFLAGS += -Wno-invalid-source-encoding
28-
#------------------------------------------------
2938

3039
OBJS = memopad.o dialogs.o menus.o
31-
3240
memopad: $(OBJS) $(LIBS)
33-
$(CC) $(LDFLAGS) -o memopad $(OBJS) -L. -ldflat
41+
$(CC) $(LDFLAGS) -o $@ $(OBJS) -L. -ldflat
42+
43+
SMALLOBJS = smallpad.o
44+
smallpad: $(SMALLOBJS) $(LIBS)
45+
$(CC) $(LDFLAGS) -o $@ $(SMALLOBJS) -L. -ldflat
3446

3547
CONSOBJS = cons.o runes.o kcp437.o
3648
cons: $(CONSOBJS)
37-
$(CC) $(LDFLAGS) -o cons $(CONSOBJS)
49+
$(CC) $(LDFLAGS) -o $@ $(CONSOBJS)
3850

3951
TTYOBJS = ttyinfo.o runes.o unikey.o tty.o
4052
ttyinfo: $(TTYOBJS)
41-
$(CC) $(LDFLAGS) -o ttyinfo $(TTYOBJS)
53+
$(CC) $(LDFLAGS) -o $@ $(TTYOBJS)
4254

4355
MATRIXOBJS = matrix.o tty.o tty-cp437.o runes.o kcp437.o
4456
matrix: $(MATRIXOBJS)
4557
$(CC) $(LDFLAGS) -o $@ $(MATRIXOBJS)
4658

47-
DFLATOBJS = \
4859
TESTOBJS = test.o
4960
test: $(TESTOBJS)
50-
$(CC) $(LDFLAGS) -o test $(TESTOBJS)
61+
$(CC) $(LDFLAGS) -o $@ $(TESTOBJS)
5162

5263
DFLATOBJS = \
53-
window.o textbox.o listbox.o \
54-
normal.o config.o menu.o menubar.o popdown.o \
55-
rect.o applicat.o keys.o sysmenu.o editbox.o \
56-
dialbox.o button.o fileopen.o msgbox.o \
57-
helpbox.o log.o lists.o statbar.o decomp.o \
58-
combobox.o pictbox.o calendar.o barchart.o \
59-
clipbord.o search.o dfalloc.o checkbox.o \
60-
text.o radio.o box.o spinbutt.o watch.o \
61-
slidebox.o direct.o editor.o message.o
64+
message.o keys.o \
65+
config.o dfalloc.o \
66+
window.o rect.o lists.o \
67+
normal.o applicat.o textbox.o \
68+
menubar.o menu.o popdown.o listbox.o \
69+
editbox.o editor.o \
70+
sysmenu.o \
71+
statbar.o
72+
73+
ifneq ($(SMALL),y)
74+
DFLATOBJS += \
75+
dialbox.o msgbox.o \
76+
box.o text.o \
77+
button.o radio.o checkbox.o spinbutt.o \
78+
combobox.o slidebox.o \
79+
fileopen.o direct.o \
80+
pictbox.o calendar.o barchart.o \
81+
search.o clipbord.o \
82+
helpbox.o decomp.o \
83+
log.o \
84+
watch.o
85+
endif
6286

6387
DFLATOBJS += \
6488
video.o events-unix.o mouse-ansi.o console-unix.o \

Makefile.elks

+54-27
Original file line numberDiff line numberDiff line change
@@ -41,70 +41,97 @@ AR = ia16-elf-ar
4141
#-------------------------------------------------------------------
4242

4343
TOPDIR = /Users/greg/net/elks-gh
44+
SMALL=
45+
FULL=
4446

47+
ifeq ($(SMALL),y)
48+
PRGS = smallpad
49+
else
4550
PRGS = memopad
4651
#PRGS = memopad huffc fixhelp memopad.hlp
52+
endif
53+
4754
LIBS = libdflat.a
4855

4956
all: $(LIBS) $(PRGS)
5057

5158
clean:
52-
rm -f *.o *.a memopad
59+
rm -f *.o *.a memopad smallpad huffc fixhelp memopad.hlp
5360

54-
#all : memopad.exe memopad.hlp
61+
ifeq ($(SMALL),y)
62+
BUILDOPTS = -DBUILD_SMALL_DFLAT
63+
endif
5564

56-
# This macro builds the full D-Flat system with all options enabled.
57-
# Comment it out for a minimum system or selectively
58-
# comment out the #defines at the top of dflat.h.
59-
#FULL = -DBUILD_FULL_DFLAT
65+
ifeq ($(FULL),y)
66+
BUILDOPTS = -DBUILD_FULL_DFLAT
67+
endif
6068

61-
CFLAGS += $(FULL) -DELKS=1
69+
CFLAGS += $(BUILDOPTS) -DELKS=1
6270
CFLAGS += -Wno-pointer-sign
6371
CFLAGS += -Wno-misleading-indentation -Wno-unused-function -Wno-unused-variable
6472
#CFLAGS += -Wno-compare-distinct-pointer-types
6573
#CFLAGS += -Wno-invalid-source-encoding
6674
LDFLAGS += -maout-heap=0xffff
6775

6876
OBJS = memopad.o dialogs.o menus.o
69-
7077
memopad: $(OBJS) $(LIBS)
71-
$(LD) $(LDFLAGS) -o memopad $(OBJS) -L. -ldflat
72-
cp memopad $(TOPDIR)/elkscmd/rootfs_template/root
78+
$(LD) $(LDFLAGS) -o $@ $(OBJS) -L. -ldflat
79+
cp $@ $(TOPDIR)/elkscmd/rootfs_template/root
80+
81+
SMALLOBJS = smallpad.o
82+
smallpad: $(SMALLOBJS) $(LIBS)
83+
$(CC) $(LDFLAGS) -o $@ $(SMALLOBJS) -L. -ldflat
84+
cp $@ $(TOPDIR)/elkscmd/rootfs_template/root
7385

7486
CONSOBJS = cons.o runes.o kcp437.o
7587
cons: $(CONSOBJS)
76-
$(LD) $(LDFLAGS) -o cons $(CONSOBJS)
88+
$(LD) $(LDFLAGS) -o $@ $(CONSOBJS)
7789
cp cons $(TOPDIR)/elkscmd/rootfs_template/root
7890

7991
TTYOBJS = ttyinfo.o peekpoke.o runes.o unikey.o tty.o
8092
ttyinfo: $(TTYOBJS)
81-
$(LD) $(LDFLAGS) -o ttyinfo $(TTYOBJS)
93+
$(LD) $(LDFLAGS) -o $@ $(TTYOBJS)
8294
cp ttyinfo $(TOPDIR)/elkscmd/rootfs_template/root
8395

84-
TESTOBJS = test.o peekpoke.o
85-
test: $(TESTOBJS)
86-
$(LD) $(LDFLAGS) -o test $(TESTOBJS)
87-
cp test $(TOPDIR)/elkscmd/rootfs_template/root
88-
8996
MATRIXOBJS = matrix.o tty.o tty-cp437.o runes.o kcp437.o
9097
matrix: $(MATRIXOBJS)
9198
$(CC) $(LDFLAGS) -o $@ $(MATRIXOBJS)
9299
cp $@ $(TOPDIR)/elkscmd/rootfs_template/root
93100

101+
TESTOBJS = test.o peekpoke.o
102+
test: $(TESTOBJS)
103+
$(LD) $(LDFLAGS) -o $@ $(TESTOBJS)
104+
cp test $(TOPDIR)/elkscmd/rootfs_template/root
105+
94106
DFLATOBJS = \
95-
window.o textbox.o listbox.o \
96-
normal.o config.o menu.o menubar.o popdown.o \
97-
rect.o applicat.o keys.o sysmenu.o editbox.o \
98-
dialbox.o button.o fileopen.o msgbox.o \
99-
helpbox.o log.o lists.o statbar.o decomp.o \
100-
combobox.o pictbox.o calendar.o barchart.o \
101-
clipbord.o search.o dfalloc.o checkbox.o \
102-
text.o radio.o box.o spinbutt.o watch.o \
103-
slidebox.o direct.o editor.o message.o
107+
message.o keys.o \
108+
config.o dfalloc.o \
109+
window.o rect.o lists.o \
110+
normal.o applicat.o textbox.o \
111+
menubar.o menu.o popdown.o listbox.o \
112+
editbox.o editor.o \
113+
sysmenu.o \
114+
statbar.o
115+
116+
ifneq ($(SMALL),y)
117+
DFLATOBJS += \
118+
dialbox.o msgbox.o \
119+
box.o text.o \
120+
button.o radio.o checkbox.o spinbutt.o \
121+
combobox.o slidebox.o \
122+
fileopen.o direct.o \
123+
pictbox.o calendar.o barchart.o \
124+
search.o clipbord.o \
125+
helpbox.o decomp.o \
126+
log.o \
127+
watch.o
128+
endif
104129

105130
DFLATOBJS += \
106131
video.o events-unix.o mouse-ansi.o console-unix.o \
107-
kcp437.o runes.o unikey.o tty.o tty-cp437.o runshell.o v7malloc.o
132+
kcp437.o runes.o unikey.o tty.o tty-cp437.o runshell.o
133+
134+
DFLATOBJS += v7malloc.o
108135

109136
$(LIBS): $(DFLATOBJS)
110137
$(AR) rcs $(LIBS) $(DFLATOBJS)

applicat.c

+25-15
Original file line numberDiff line numberDiff line change
@@ -68,13 +68,13 @@ static int CreateWindowMsg(WINDOW wnd)
6868
SetCheckBox(&Display, ID_STATUSBAR);
6969
if (cfg.Texture)
7070
SetCheckBox(&Display, ID_TEXTURE);
71-
#endif
7271
if (cfg.mono == 1)
7372
PushRadioButton(&Display, ID_MONO);
7473
else if (cfg.mono == 2)
7574
PushRadioButton(&Display, ID_REVERSE);
7675
else
7776
PushRadioButton(&Display, ID_COLOR);
77+
#endif
7878
if (SCREENHEIGHT != cfg.ScreenLines) {
7979
SetScreenHeight(cfg.ScreenLines);
8080
if (WindowHeight(wnd) == ScreenHeight ||
@@ -183,6 +183,11 @@ static void ShiftChangedMsg(WINDOW wnd, PARAM p1)
183183
static void CommandMsg(WINDOW wnd, PARAM p1, PARAM p2)
184184
{
185185
switch ((int)p1) {
186+
case ID_EXIT:
187+
case ID_SYSCLOSE:
188+
PostMessage(wnd, CLOSE_WINDOW, 0, 0);
189+
break;
190+
#ifdef INCLUDE_HELP
186191
case ID_HELP:
187192
DisplayHelp(wnd, DFlatApplication);
188193
break;
@@ -198,6 +203,7 @@ static void CommandMsg(WINDOW wnd, PARAM p1, PARAM p2)
198203
case ID_HELPINDEX:
199204
DisplayHelp(wnd, "HelpIndex");
200205
break;
206+
#endif
201207
#ifdef INCLUDE_LOGGING
202208
case ID_LOG:
203209
MessageLog(wnd);
@@ -208,10 +214,7 @@ static void CommandMsg(WINDOW wnd, PARAM p1, PARAM p2)
208214
ShellDOS(wnd);
209215
break;
210216
#endif
211-
case ID_EXIT:
212-
case ID_SYSCLOSE:
213-
PostMessage(wnd, CLOSE_WINDOW, 0, 0);
214-
break;
217+
#ifdef INCLUDE_WINDOWMENU
215218
case ID_DISPLAY:
216219
if (DialogBox(wnd, &Display, TRUE, NULL)) {
217220
if (inFocus == wnd->MenuBarWnd || inFocus == wnd->StatusBar)
@@ -233,10 +236,6 @@ static void CommandMsg(WINDOW wnd, PARAM p1, PARAM p2)
233236
SendMessage(oldFocus, SETFOCUS, TRUE, 0);
234237
}
235238
break;
236-
case ID_SAVEOPTIONS:
237-
SaveConfig();
238-
break;
239-
#ifdef INCLUDE_MULTI_WINDOWS
240239
case ID_WINDOW:
241240
ChooseWindow(wnd, CurrentMenuSelection-2);
242241
break;
@@ -247,17 +246,22 @@ static void CommandMsg(WINDOW wnd, PARAM p1, PARAM p2)
247246
MoreWindows(wnd);
248247
break;
249248
#endif
249+
#ifdef INCLUDE_FILE_OPENSAVE
250+
case ID_SAVEOPTIONS:
251+
SaveConfig();
252+
break;
253+
#endif
250254
#ifdef INCLUDE_RESTORE
251255
case ID_SYSRESTORE:
252256
#endif
253-
case ID_SYSMOVE:
254-
case ID_SYSSIZE:
255257
#ifdef INCLUDE_MINIMIZE
256258
case ID_SYSMINIMIZE:
257259
#endif
258260
#ifdef INCLUDE_MAXIMIZE
259261
case ID_SYSMAXIMIZE:
260262
#endif
263+
case ID_SYSMOVE:
264+
case ID_SYSSIZE:
261265
BaseWndProc(APPLICATION, wnd, COMMAND, p1, p2);
262266
break;
263267
default:
@@ -271,15 +275,17 @@ static void CommandMsg(WINDOW wnd, PARAM p1, PARAM p2)
271275
static int CloseWindowMsg(WINDOW wnd)
272276
{
273277
int rtn;
274-
#ifdef INCLUDE_MULTI_WINDOWS
278+
#ifdef INCLUDE_WINDOWMENU
275279
CloseAll(wnd, TRUE);
276280
WindowSel = 0;
277281
#endif
278282
PostMessage(NULL, STOP, 0, 0);
279283
rtn = BaseWndProc(APPLICATION, wnd, CLOSE_WINDOW, 0, 0);
280284
if (ScreenHeight != SCREENHEIGHT)
281285
SetScreenHeight(ScreenHeight);
286+
#ifdef INCLUDE_HELP
282287
UnLoadHelpFile();
288+
#endif
283289
ApplicationWindow = NULL;
284290
return rtn;
285291
}
@@ -406,7 +412,7 @@ static void CreateStatusBar(WINDOW wnd)
406412
}
407413
}
408414

409-
#ifdef INCLUDE_MULTI_WINDOWS
415+
#ifdef INCLUDE_WINDOWMENU
410416
/* -------- return the name of a document window ------- */
411417
static char *WindowName(WINDOW wnd)
412418
{
@@ -569,7 +575,7 @@ static void CloseAll(WINDOW wnd, int closing)
569575
SendMessage(wnd, PAINT, 0, 0);
570576
}
571577

572-
#endif /* #ifdef INCLUDE_MULTI_WINDOWS */
578+
#endif /* #ifdef INCLUDE_WINDOWMENU */
573579

574580
static void DoWindowColors(WINDOW wnd)
575581
{
@@ -578,15 +584,18 @@ static void DoWindowColors(WINDOW wnd)
578584
cwnd = FirstWindow(wnd);
579585
while (cwnd != NULL) {
580586
DoWindowColors(cwnd);
587+
#ifndef BUILD_SMALL_DFLAT
581588
if (GetClass(cwnd) == TEXT && GetText(cwnd) != NULL)
582589
SendMessage(cwnd, CLEARTEXT, 0, 0);
590+
#endif
583591
cwnd = NextWindow(cwnd);
584592
}
585593
}
586594

587595
/* ----- set up colors for the application window ------ */
588596
static void SelectColors(WINDOW wnd)
589597
{
598+
#ifdef INCLUDE_WINDOWMENU
590599
if (RadioButtonSetting(&Display, ID_MONO))
591600
cfg.mono = 1; /* mono */
592601
else if (RadioButtonSetting(&Display, ID_REVERSE))
@@ -599,6 +608,7 @@ static void SelectColors(WINDOW wnd)
599608
else if (cfg.mono == 2)
600609
memcpy(cfg.clr, reverse, sizeof reverse);
601610
else
611+
#endif
602612
memcpy(cfg.clr, color, sizeof color);
603613
DoWindowColors(wnd);
604614
}
@@ -641,7 +651,7 @@ static void SetScreenHeight(int height)
641651
#endif
642652
}
643653

644-
#ifdef INCLUDE_WINDOWOPTIONS
654+
#ifdef INCLUDE_WINDOWMENU
645655

646656
/* ----- select the screen texture ----- */
647657
static void SelectTexture(void)

0 commit comments

Comments
 (0)