From 81ef2e06f8a3ef9674896f587486a68c21d06279 Mon Sep 17 00:00:00 2001 From: Chris Young Date: Thu, 18 Nov 2021 16:30:08 +0000 Subject: [PATCH 1/3] Changes required to build with vbcc Fixes: Missing includes Missing OpenLibrarys Wrong types (mostly BPTR=NULL changed to 0) Bug in UnlockPubScreen Added makefile for vbcc The semicolon at the start of main.c needs to be removed for the makefile to work. --- functionsLib/Makefile.vbcc | 14 +++++ functionsLib/functions.c | 2 +- functionsLib/functions.lib | Bin 1008 -> 0 bytes functionsLib/functions.o | Bin 920 -> 0 bytes src/Makefile.vbcc | 14 +++++ src/functions.h | 19 ++++++ src/functions.lib | Bin 1008 -> 0 bytes src/includes.h | 121 ++++++++++++++++++++----------------- src/main.c | 24 +++++--- src/menu.h | 106 ++++++++++++++++---------------- 10 files changed, 183 insertions(+), 117 deletions(-) create mode 100644 functionsLib/Makefile.vbcc delete mode 100644 functionsLib/functions.lib delete mode 100644 functionsLib/functions.o create mode 100644 src/Makefile.vbcc create mode 100644 src/functions.h delete mode 100644 src/functions.lib diff --git a/functionsLib/Makefile.vbcc b/functionsLib/Makefile.vbcc new file mode 100644 index 0000000..209b3e8 --- /dev/null +++ b/functionsLib/Makefile.vbcc @@ -0,0 +1,14 @@ +CC := vc +aos68k +CFLAGS := +AR := join + +OBJS := functions.o +DEPS := functions.h + +all: functions.lib + +%.o: %.c $(DEPS) + $(CC) $(CFLAGS) -c -o $@ $< + +functions.lib: $(OBJS) + $(AR) $^ AS $@ diff --git a/functionsLib/functions.c b/functionsLib/functions.c index 4f58d84..b286496 100644 --- a/functionsLib/functions.c +++ b/functionsLib/functions.c @@ -26,7 +26,7 @@ void RunDAControl(char parameter[BUFFERSIZE]) char dacontrolPATH[BUFFERSIZE]; strcpy(dacontrolPATH, "SYS:C/DAControl "); strcat(dacontrolPATH, parameter); - Execute(dacontrolPATH, NULL, NULL); + Execute(dacontrolPATH, 0, 0); } /*=============================== diff --git a/functionsLib/functions.lib b/functionsLib/functions.lib deleted file mode 100644 index f1e63783fa3097487dcc8eca9bfee9e5a9ad51c8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1008 zcmYjQ-)mBF6hHTBYEILIEE$7tQe)K6(OALQ!~9hun{Ha+BDgv?Zx`;=?!AJA45Qj0 z2qFl2i2VgI_EHZKwZ}d7xQA#Xf>9LKo}vc!`Fg!$>gW4C=leb9bI#{{k;w9wh~5)f zzF}7d&unw!711J`#NHX(`3m_0?qP-K>;z(drqV9PW^#5e{glg(UO>bpm8R}|N&*Y$ReGEXv(^1mXZITCuN zc7}FSwGZgRP-d|r-@DvyP*vC%yGpP;?k=WyW(CdfZUg-5yttYol53p|2EpjbW@^alLUG!p2 zG!vW1;2a}F4w6ooXR7e=e%@hvr<-+OW;MSB77ySzbkC%P9?5FH!%!1bbEIl`t3N1Y z0XY0_0ZG_50emd26+DzEit`1H&4Z5N{u1_G;0166us!I+t%Qm-Uhn$1QX?MX{*gt+M7= z{|%E5l-*ozof**bn=Q;r&s@url_uft1K)9E&(3AXqoG(hS}E&lMG+`iSSZmsjm3B4 z{=pchH7eE0MP06xwP2C-#kx)+im`f_lhKQ)bsH7CDp&+lD4G)xMPpp%Xhm6Ll?!rN z3on%7jI>l!6kU~eij0y7OCKdlv2lY}v o1?U2e(gek58gFx*8^)w0`i%7sJ;U0-9Y>F$j-%&f@63b#1HJDI!^DDp6`4Xqxx)O}_ zLjG)U72cqky~>lkBZZ%TAmT&a{MSc3IL5%ii^-ov={7}TJKmETNc3mHUBy1hHbr9r zwueo_JXmA11u%wok_cwZ)R^~Kks}*6<%k85BZVR&I%dQ=J8{O`K0T@gy4v|xQ!K7mw!snxqF&##1*uQ* zb?;%Mg;NXU9o*GlY$O02-g`g}@?8K!Xs_X-WLaLQTI@Wi2mWhV_kowd4Z#1{jVY%K zcbMwNOkn*AyaE_s(B+vflu{lM58Db5b#pD-tX1)8xiygK+Lo)D)~I!D@4Ps}RCT-V z#c_)+r!3d(2L>yS)xXl^1Lgl*ZUYWMuB+Norm0%)Hg2#_E;{;jGTqQ^vw@F_jY&7w zau$%U>WXW7;pID;2HUc0qFvZ}WYuEHRaLi=i}eiqIWV|UFGTo*RbX;q_I8PUGzIk# mVE+=%^j4;LGcyhS2lU?3d}$(`IIc#bcy+N(mn`@&gu{Pi#oapq diff --git a/src/Makefile.vbcc b/src/Makefile.vbcc new file mode 100644 index 0000000..84df2e1 --- /dev/null +++ b/src/Makefile.vbcc @@ -0,0 +1,14 @@ +CC := vc +aos68k +CFLAGS := -c99 +LIBS := -lfunctions -lamiga -lreaction + +OBJS := main.o +DEPS := menu.h includes.h version.h + +all: DAControlGUI + +%.o: %.c $(DEPS) + $(CC) $(CFLAGS) -c -o $@ $< + +DAControlGUI: $(OBJS) + $(CC) $(CFLAGS) -o $@ $^ $(LIBS) diff --git a/src/functions.h b/src/functions.h new file mode 100644 index 0000000..0cbd2fe --- /dev/null +++ b/src/functions.h @@ -0,0 +1,19 @@ +#ifndef FUNCTIONS_H +#define FUNCTIONS_H + +#include +#include +#include +#include +#include +#include + +#define BUFFERSIZE 0X200 + +extern BOOL fileExist(STRPTR filePath); +extern void RunDAControl(char parameter[BUFFERSIZE]); +extern char* fulltrim(char* str); +extern char* substring(char*, int , int); +extern BOOL isContainsAdfExt(STRPTR filePath); + +#endif diff --git a/src/functions.lib b/src/functions.lib deleted file mode 100644 index f1e63783fa3097487dcc8eca9bfee9e5a9ad51c8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1008 zcmYjQ-)mBF6hHTBYEILIEE$7tQe)K6(OALQ!~9hun{Ha+BDgv?Zx`;=?!AJA45Qj0 z2qFl2i2VgI_EHZKwZ}d7xQA#Xf>9LKo}vc!`Fg!$>gW4C=leb9bI#{{k;w9wh~5)f zzF}7d&unw!711J`#NHX(`3m_0?qP-K>;z(drqV9PW^#5e{glg(UO>bpm8R}|N&*Y$ReGEXv(^1mXZITCuN zc7}FSwGZgRP-d|r-@DvyP*vC%yGpP;?k=WyW(CdfZUg-5yttYol53p|2EpjbW@^alLUG!p2 zG!vW1;2a}F4w6ooXR7e=e%@hvr<-+OW;MSB77ySzbkC%P9?5FH!%!1bbEIl`t3N1Y z0XY0_0ZG_50emd26+DzEit`1H&4Z5N{u1_G;0166us!I+t%Qm-Uhn$1QX?MX{*gt+M7= z{|%E5l-*ozof**bn=Q;r&s@url_uft1K)9E&(3AXqoG(hS}E&lMG+`iSSZmsjm3B4 z{=pchH7eE0MP06xwP2C-#kx)+im`f_lhKQ)bsH7CDp&+lD4G)xMPpp%Xhm6Ll?!rN z3on%7jI>l!6kU~eij0y7OCKdlv2lY}v o1?U2e(gek58gFx*8^)w0`i%7sJ;U0-9Y>F$j-%&f@63b#1HJ -#include - -#include -#include -#include -#include - -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include - -#define ALL_REACTION_MACROS -#define ALL_REACTION_CLASSES -#include -#include - -#define ASM __asm -#define REG(x) register __ ## x - -#define BASEDEF(base) struct Library *base##Base = NULL -#define OPENLIB(base,name) if (!((base##Base) = OpenLibrary ((name),0))) CloseLibs() -#define CLOSELIB(base) if (base##Base) {CloseLibrary (base##Base); base##Base=NULL;} - -#define NAME_MAX 0X020 -#define PATH_MAX 0X100 -#define MAX_LISTED_ADF 0X200 -#define BUFFERSIZE 0X200 - -#include - +#ifndef INCLUDES_H +#define INCLUDES_H + +#define STREQUAL(s1, s2) (strcmp(s1, s2) == 0) + +#include +#include + +#include +#include +#include +#include + +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +#define ALL_REACTION_MACROS +#define ALL_REACTION_CLASSES +#include +#include + +#define ASM __asm +#define REG(x) register __ ## x + +#define BASEDEF(base) struct Library *base##Base = NULL +#define OPENLIB(base,name) if (!((base##Base) = OpenLibrary ((name),0))) CloseLibs() +#define CLOSELIB(base) if (base##Base) {CloseLibrary (base##Base); base##Base=NULL;} + +#define NAME_MAX 0X020 +#define PATH_MAX 0X100 +#define MAX_LISTED_ADF 0X200 +#define BUFFERSIZE 0X200 + +#include + #endif \ No newline at end of file diff --git a/src/main.c b/src/main.c index 7882f63..63ae1ba 100644 --- a/src/main.c +++ b/src/main.c @@ -42,8 +42,12 @@ NOSTanDardIO #include "includes.h" #include "menu.h" +#include "functions.h" #include "version.h" +BASEDEF(Intuition); +BASEDEF(Utility); +BASEDEF(GadTools); BASEDEF(Icon); BASEDEF(Workbench); BASEDEF(Window); @@ -174,6 +178,9 @@ int main(void) OPENLIB(Dos, "dos.library"); OPENLIB(Icon, "icon.library"); OPENLIB(Workbench, "workbench.library"); + OPENLIB(GadTools, "gadtools.library"); + OPENLIB(Intuition, "intuition.library"); + OPENLIB(Utility, "utility.library"); ret = appMain(); @@ -194,7 +201,7 @@ int appMain() UWORD code; ScreenPtr = LockPubScreen(NULL); - VisualInfoPtr = GetVisualInfo(ScreenPtr, NULL); + VisualInfoPtr = GetVisualInfoA(ScreenPtr, NULL); //InitHook(&HookStruct, HookFunc, NULL); @@ -211,7 +218,7 @@ int appMain() dobj=GetDiskObject(appPath); if(dobj!=0) { - dobj->do_Type=NULL; + dobj->do_Type=0; } if (!(WindowObjectPtr = NewObject @@ -316,7 +323,7 @@ int appMain() done=TRUE; } - UnlockPubScreen(ScreenPtr); + UnlockPubScreen(NULL, ScreenPtr); ScreenPtr = NULL; if (!(WindowPtr = (struct Window *) DoMethod(WindowObjectPtr, WM_OPEN, NULL))) @@ -413,7 +420,7 @@ int appMain() FreeVisualInfo(VisualInfoPtr); // delete log file - Execute("Delete RAM:dacgui.log >NIL:", NULL, NULL); + Execute("Delete RAM:dacgui.log >NIL:", 0, 0); return 0; } @@ -467,7 +474,7 @@ void CloseLibs(void) { if (ScreenPtr) { - UnlockPubScreen(NULL); + UnlockPubScreen(NULL, ScreenPtr); ScreenPtr = NULL; } @@ -481,6 +488,9 @@ void CloseLibs(void) if (AppPort) DeleteMsgPort(AppPort); + CLOSELIB(Intuition); + CLOSELIB(Utility); + CLOSELIB(GadTools); CLOSELIB(Workbench); CLOSELIB(Icon); CLOSELIB(Layout); @@ -553,7 +563,7 @@ void ProcessMenuIDCMPdacMenu(UWORD MenuNumber) break; case HelpMenuManual : - Execute(manualPath, NULL, NULL); + Execute(manualPath, 0, 0); break; } break; @@ -1270,4 +1280,4 @@ void iconify(void) { done = TRUE; } -} \ No newline at end of file +} diff --git a/src/menu.h b/src/menu.h index 4855fef..435b328 100644 --- a/src/menu.h +++ b/src/menu.h @@ -1,54 +1,54 @@ -#ifndef MENU_H -#define MENU_H - -//------------------------------- -#define DAControlGUIMenu 0 -#define DAControlGUIMenuAbout 0 -#define DAControlGUIMenuBar1 1 -#define DAControlGUIMenuIconify 2 -#define DAControlGUIMenuBar2 3 -#define DAControlGUIMenuQuit 4 -//------------------------------- -#define Controls 1 -#define ControlsLoadChange 0 -#define ControlsCreate 1 -#define ControlsBar2 2 -#define ControlsEject 3 -#define ControlsEjectAll 4 -#define ControlsBar3 5 -#define ControlsRefresh 6 -//------------------------------- -#define HelpMenu 2 -#define HelpMenuManual 0 - -struct NewMenu dacMenuNewMenu[] = -{ - NM_TITLE, (STRPTR)"DAControlGUI" , NULL , 0, NULL, (APTR)~0, - NM_ITEM , (STRPTR)"About" , NULL , 0, 0L, (APTR)~0, - NM_ITEM , NM_BARLABEL , NULL , 0, 0L, (APTR)~0, - NM_ITEM , (STRPTR)"Iconify" , "I" , 0, 0L, (APTR)~0, - NM_ITEM , NM_BARLABEL , NULL , 0, 0L, (APTR)~0, - NM_ITEM , (STRPTR)"Quit" , "Q" , 0, 0L, (APTR)~0, - - NM_TITLE, (STRPTR)"Controls" , NULL , 0, NULL, (APTR)~0, - NM_ITEM , (STRPTR)"Load / Change ADF" , "L" , 0, 0L, (APTR)~0, - NM_ITEM , (STRPTR)"Create ADF" , "C" , 0, 0L, (APTR)~0, - NM_ITEM , NM_BARLABEL , NULL , 0, 0L, (APTR)~0, - NM_ITEM , (STRPTR)"Eject ADF" , "E" , 0, 0L, (APTR)~0, - NM_ITEM , (STRPTR)"Eject All" , "A" , 0, 0L, (APTR)~0, - NM_ITEM , NM_BARLABEL , NULL , 0, 0L, (APTR)~0, - NM_ITEM , (STRPTR)"Refresh" , "R" , 0, 0L, (APTR)~0, - - NM_TITLE, (STRPTR)"Help" , NULL , 0, NULL, (APTR)~0, - NM_ITEM , (STRPTR)"Manual" , "M" , 0, 0L, (APTR)~0, - - NM_END , NULL , NULL , 0, 0L, (APTR)~0 -}; - -ULONG dacMenuTags[] = -{ - (GT_TagBase+67), TRUE, - (TAG_DONE) -}; - +#ifndef MENU_H +#define MENU_H + +//------------------------------- +#define DAControlGUIMenu 0 +#define DAControlGUIMenuAbout 0 +#define DAControlGUIMenuBar1 1 +#define DAControlGUIMenuIconify 2 +#define DAControlGUIMenuBar2 3 +#define DAControlGUIMenuQuit 4 +//------------------------------- +#define Controls 1 +#define ControlsLoadChange 0 +#define ControlsCreate 1 +#define ControlsBar2 2 +#define ControlsEject 3 +#define ControlsEjectAll 4 +#define ControlsBar3 5 +#define ControlsRefresh 6 +//------------------------------- +#define HelpMenu 2 +#define HelpMenuManual 0 + +struct NewMenu dacMenuNewMenu[] = +{ + NM_TITLE, (STRPTR)"DAControlGUI" , NULL , 0, 0L, (APTR)~0, + NM_ITEM , (STRPTR)"About" , NULL , 0, 0L, (APTR)~0, + NM_ITEM , NM_BARLABEL , NULL , 0, 0L, (APTR)~0, + NM_ITEM , (STRPTR)"Iconify" , "I" , 0, 0L, (APTR)~0, + NM_ITEM , NM_BARLABEL , NULL , 0, 0L, (APTR)~0, + NM_ITEM , (STRPTR)"Quit" , "Q" , 0, 0L, (APTR)~0, + + NM_TITLE, (STRPTR)"Controls" , NULL , 0, 0L, (APTR)~0, + NM_ITEM , (STRPTR)"Load / Change ADF" , "L" , 0, 0L, (APTR)~0, + NM_ITEM , (STRPTR)"Create ADF" , "C" , 0, 0L, (APTR)~0, + NM_ITEM , NM_BARLABEL , NULL , 0, 0L, (APTR)~0, + NM_ITEM , (STRPTR)"Eject ADF" , "E" , 0, 0L, (APTR)~0, + NM_ITEM , (STRPTR)"Eject All" , "A" , 0, 0L, (APTR)~0, + NM_ITEM , NM_BARLABEL , NULL , 0, 0L, (APTR)~0, + NM_ITEM , (STRPTR)"Refresh" , "R" , 0, 0L, (APTR)~0, + + NM_TITLE, (STRPTR)"Help" , NULL , 0, 0L, (APTR)~0, + NM_ITEM , (STRPTR)"Manual" , "M" , 0, 0L, (APTR)~0, + + NM_END , NULL , NULL , 0, 0L, (APTR)~0 +}; + +ULONG dacMenuTags[] = +{ + (GT_TagBase+67), TRUE, + (TAG_DONE) +}; + #endif \ No newline at end of file From a44b4ec6b8ba3d29465af7e4016b16b94592621d Mon Sep 17 00:00:00 2001 From: Chris Young Date: Thu, 18 Nov 2021 17:48:14 +0000 Subject: [PATCH 2/3] Fix free() of unallocated memory --- functionsLib/functions.c | 6 +++--- functionsLib/functions.h | 2 +- src/functions.h | 2 +- src/main.c | 4 ++-- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/functionsLib/functions.c b/functionsLib/functions.c index b286496..91bc50b 100644 --- a/functionsLib/functions.c +++ b/functionsLib/functions.c @@ -21,7 +21,7 @@ BOOL fileExist(STRPTR filePath) /*=============================== RunDAControl ===============================*/ -void RunDAControl(char parameter[BUFFERSIZE]) +void RunDAControl(char *parameter) { char dacontrolPATH[BUFFERSIZE]; strcpy(dacontrolPATH, "SYS:C/DAControl "); @@ -79,7 +79,7 @@ char* fulltrim(char* str) return str; } -extern BOOL isContainsAdfExt(STRPTR filePath) +BOOL isContainsAdfExt(STRPTR filePath) { int i; char * isPointAdfStr; @@ -92,4 +92,4 @@ extern BOOL isContainsAdfExt(STRPTR filePath) isPointAdfStr = strstr(fPath, padf); if(isPointAdfStr) return 1; else return 0; -} \ No newline at end of file +} diff --git a/functionsLib/functions.h b/functionsLib/functions.h index 0cbd2fe..845c90b 100644 --- a/functionsLib/functions.h +++ b/functionsLib/functions.h @@ -11,7 +11,7 @@ #define BUFFERSIZE 0X200 extern BOOL fileExist(STRPTR filePath); -extern void RunDAControl(char parameter[BUFFERSIZE]); +extern void RunDAControl(char *parameter); extern char* fulltrim(char* str); extern char* substring(char*, int , int); extern BOOL isContainsAdfExt(STRPTR filePath); diff --git a/src/functions.h b/src/functions.h index 0cbd2fe..845c90b 100644 --- a/src/functions.h +++ b/src/functions.h @@ -11,7 +11,7 @@ #define BUFFERSIZE 0X200 extern BOOL fileExist(STRPTR filePath); -extern void RunDAControl(char parameter[BUFFERSIZE]); +extern void RunDAControl(char *parameter); extern char* fulltrim(char* str); extern char* substring(char*, int , int); extern BOOL isContainsAdfExt(STRPTR filePath); diff --git a/src/main.c b/src/main.c index 63ae1ba..58ded29 100644 --- a/src/main.c +++ b/src/main.c @@ -672,7 +672,7 @@ void createADFList(void) if(fp) { - UBYTE buffer[BUFFERSIZE]; + char *buffer = AllocVec(BUFFERSIZE, MEMF_CLEAR); while(FGets(fp, buffer, BUFFERSIZE)) { if((count>0)&&(strlen(buffer)>0)) @@ -682,7 +682,7 @@ void createADFList(void) col2[count-1]= fulltrim(substring(buffer, 18, 32)); // volume name col4[count-1]= fulltrim(substring(buffer, 79, 11)); // access col5[count-1]= fulltrim(substring(buffer, 91, strlen(buffer)-90)); // file - free(buffer); + FreeVec(buffer); } count++; } From b047f0630914232de39728d465428eef5eb62de4 Mon Sep 17 00:00:00 2001 From: Chris Young Date: Tue, 23 Nov 2021 16:49:21 +0000 Subject: [PATCH 3/3] Add newline to end of file --- src/includes.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/includes.h b/src/includes.h index 9b90300..9268c39 100644 --- a/src/includes.h +++ b/src/includes.h @@ -63,4 +63,4 @@ #include -#endif \ No newline at end of file +#endif