From b77d5692892fe5e42e6751552083fa70fe355347 Mon Sep 17 00:00:00 2001 From: Andrew Hutchings Date: Tue, 27 Apr 2021 08:09:37 +0100 Subject: [PATCH] A whole bunch of GUI changes * Buttons and boxes height reduced * Almost everything moved around a bit to make space * Added shutdown button * Added kickstart switch gadgets * Switched from AutoRequest to rtEZRequest for most things (apart from the error where we couldn't load reqtools) * Text fixes --- .../pistorm-dev/pistorm_dev_amiga/PiStorm | Bin 15444 -> 15552 bytes .../pistorm_dev_amiga/gui_interact.c | 220 ++++++++++++------ .../pistorm_dev_amiga/pistorm_dev.h | 3 + 3 files changed, 154 insertions(+), 69 deletions(-) diff --git a/platforms/amiga/pistorm-dev/pistorm_dev_amiga/PiStorm b/platforms/amiga/pistorm-dev/pistorm_dev_amiga/PiStorm index 71cff1ec584eaa43a1609b5562a48e9c9064c7b4..4150c041b279b8f85832e9b8e3a4ccc66b2f04dc 100755 GIT binary patch delta 6494 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 A@Bjb+ delta 6616 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 QZf&JG+*s#gdpPd=H+BzF`Tzg` diff --git a/platforms/amiga/pistorm-dev/pistorm_dev_amiga/gui_interact.c b/platforms/amiga/pistorm-dev/pistorm_dev_amiga/gui_interact.c index 668e27d..789f4d8 100644 --- a/platforms/amiga/pistorm-dev/pistorm_dev_amiga/gui_interact.c +++ b/platforms/amiga/pistorm-dev/pistorm_dev_amiga/gui_interact.c @@ -19,19 +19,19 @@ extern unsigned int pistorm_base_addr; struct ReqToolsBase *ReqToolsBase; -#define VERSION "v0.2" +#define VERSION "v0.3" #define button1w 54 -#define button1h 20 +#define button1h 11 #define button2w 87 -#define button2h 20 +#define button2h 11 #define button3w 100 -#define button3h 20 +#define button3h 11 #define tbox1w 130 -#define tbox1h 18 +#define tbox1h 10 #define statusbarw 507 #define statusbarh 10 @@ -115,19 +115,79 @@ struct Border SharedBordersInvert[] = 0, 0, 2, 0, JAM2, 5, (SHORT *) &SharedBordersPairs10[0], NULL, }; +struct IntuiText KickstartCommit_text = +{ + 1, 0, JAM2, 2, 2, NULL, (UBYTE *)"Commit", NULL +}; + +#define GADKICKSTARTCOMMIT 14 + +struct Gadget KickstartCommit = +{ + NULL, 406, 49, button1w, button1h, + GADGHIMAGE, + RELVERIFY, + BOOLGADGET, + (APTR) &SharedBorders[0], (APTR) &SharedBordersInvert[0], + &KickstartCommit_text, 0, NULL, GADKICKSTARTCOMMIT, NULL +}; + + +UBYTE KickstartFileValue_buf[255]; + +struct StringInfo KickstartFileValue = +{ + KickstartFileValue_buf, NULL, 0, 255, 0, 0, 0, 0, 4, 4, NULL, 0, NULL +}; + +struct IntuiText KickstartFile_text = +{ + 1, 0, JAM2, 0, -10, NULL, "Kickstart file:", NULL +}; + +#define GADKICKSTARTFILE 13 + +struct Gadget KickstartFile = +{ + &KickstartCommit, 266, 50, tbox1w, tbox1h, + GADGHIMAGE, + 0, + STRGADGET, + (APTR) &SharedBorders[6], NULL, + &KickstartFile_text, 0, (APTR)&KickstartFileValue, GADKICKSTARTFILE, NULL +}; + +struct IntuiText ShutdownButton_text = +{ + 1, 0, JAM2, 2, 2, NULL, (UBYTE *)"Shutdown Pi", NULL +}; + +#define GADSHUTDOWN 12 + +struct Gadget ShutdownButton = +{ + &KickstartFile, 60, 166, button3w, button3h, + GADGHIMAGE, + RELVERIFY, + BOOLGADGET, + (APTR) &SharedBorders[2], (APTR) &SharedBordersInvert[2], + &ShutdownButton_text, 0, NULL, GADSHUTDOWN, NULL +}; + + UBYTE DestinationValue_buf[255]; struct IntuiText Destination_text[] = { - 1, 0, JAM2, -98, 6, NULL, "Destination:", &Destination_text[1], - 1, 0, JAM2, 4, 4, NULL, DestinationValue_buf, NULL, + 1, 0, JAM2, -97, 1, NULL, "Destination:", &Destination_text[1], + 1, 0, JAM2, 1, 1, NULL, DestinationValue_buf, NULL, }; #define GADGETDESTINATION 11 struct Gadget GetDestination = { - NULL, 108, 117, tbox1w, tbox1h, + &ShutdownButton, 106, 105, tbox1w, tbox1h, GADGHIMAGE, RELVERIFY, BOOLGADGET, @@ -137,7 +197,7 @@ struct Gadget GetDestination = struct IntuiText RebootButton_text = { - 1, 0, JAM2, 2, 6, NULL, (UBYTE *)"Reboot", NULL + 1, 0, JAM2, 2, 2, NULL, (UBYTE *)"Reboot", NULL }; #define GADREBOOT 10 @@ -174,14 +234,14 @@ struct Gadget StatusBar = struct IntuiText RetrieveButton_text = { - 1, 0, JAM2, 10, 6, NULL, (UBYTE *)"Retrieve", NULL + 1, 0, JAM2, 10, 2, NULL, (UBYTE *)"Retrieve", NULL }; #define GADRETRIEVEBUTTON 8 struct Gadget RetrieveButton = { - &StatusBar, 244, 117, button2w, button2h, + &StatusBar, 244, 105, button2w, button2h, GADGHIMAGE, RELVERIFY, BOOLGADGET, @@ -198,8 +258,8 @@ struct StringInfo GetFileValue = struct IntuiText GetFile_text[] = { - 1, 0, JAM2, -98, -15, NULL, "Get file", &GetFile_text[1], - 1, 0, JAM2, -98, 4, NULL, "Source:", NULL, + 1, 0, JAM2, -98, -10, NULL, "Get file from PiStorm:", &GetFile_text[1], + 1, 0, JAM2, -59, 1, NULL, "Source:", NULL, }; #define GADGETFILE 7 @@ -216,14 +276,14 @@ struct Gadget GetFile = struct IntuiText ConfigDefault_text = { - 1, 0, JAM2, 2, 6, NULL, (UBYTE *)"Load Default", NULL + 1, 0, JAM2, 2, 2, NULL, (UBYTE *)"Load Default", NULL }; #define GADCONFIGDEFAULT 6 struct Gadget ConfigDefault = { - &GetFile, 304, 39, button3w, button3h, + &GetFile, 9, 62, button3w, button3h, GADGHIMAGE, RELVERIFY, BOOLGADGET, @@ -233,14 +293,14 @@ struct Gadget ConfigDefault = struct IntuiText ConfigCommit_text = { - 1, 0, JAM2, 2, 6, NULL, (UBYTE *)"Commit", NULL + 1, 0, JAM2, 2, 2, NULL, (UBYTE *)"Commit", NULL }; #define GADCONFIGCOMMIT 5 struct Gadget ConfigCommit = { - &ConfigDefault, 244, 39, button1w, button1h, + &ConfigDefault, 144, 49, button1w, button1h, GADGHIMAGE, RELVERIFY, BOOLGADGET, @@ -258,14 +318,14 @@ struct StringInfo ConfigFileValue = struct IntuiText ConfigFile_text = { - 1, 0, JAM2, -98, 4, NULL, "Config file:", NULL + 1, 0, JAM2, 0, -10, NULL, "Config file:", NULL }; #define GADCONFIGFILE 4 struct Gadget ConfigFile = { - &ConfigCommit, 108, 41, tbox1w, tbox1h, + &ConfigCommit, 10, 50, tbox1w, tbox1h, GADGHIMAGE, 0, STRGADGET, @@ -277,7 +337,7 @@ UBYTE RTGStatus_buf[64] = "RTG status"; struct IntuiText RTGStatus_text = { - 1, 0, JAM2, 4, 4, NULL, (UBYTE *)RTGStatus_buf, NULL + 1, 0, JAM2, 1, 1, NULL, (UBYTE *)RTGStatus_buf, NULL }; #define GADRTGSTATUS 3 @@ -296,14 +356,14 @@ UBYTE RTG_buf[64] = "RTG Enable"; struct IntuiText RTG_text = { - 1, 0, JAM2, 8, 6, NULL, (UBYTE *)RTG_buf, NULL + 1, 0, JAM2, 8, 2, NULL, (UBYTE *)RTG_buf, NULL }; #define GADRTGBUTTON 2 struct Gadget RTGButton = { - &RTGStatus, 150, 13, button3w, button3h, + &RTGStatus, 150, 14, button3w, button3h, GADGHIMAGE, RELVERIFY, BOOLGADGET, @@ -313,7 +373,7 @@ struct Gadget RTGButton = struct IntuiText AboutButton_text = { - 1, 0, JAM2, 8, 6, NULL, (UBYTE *)"About", NULL + 1, 0, JAM2, 8, 2, NULL, (UBYTE *)"About", NULL }; #define GADABOUT 1 @@ -331,7 +391,7 @@ struct Gadget AboutButton = struct IntuiText QuitButton_text = { - 1, 0, JAM2, 12, 6, NULL, (UBYTE *)"Quit", NULL + 1, 0, JAM2, 12, 2, NULL, (UBYTE *)"Quit", NULL }; #define GADQUIT 0 @@ -431,6 +491,13 @@ static char *GetSavePath() return fullpath; } +int questionReboot() +{ + int res = rtEZRequest("This will restart the emulator, rebooting the Amiga\n" + "Continue anyway?", + "Yes|No", NULL, NULL); + return res; +} int main() { @@ -461,10 +528,8 @@ int main() if (pistorm_base_addr == 0xFFFFFFFF) { - static struct IntuiText msg, pos; - msg.IText = "Unable to find PiStorm autoconf device."; - pos.IText = "OK"; - AutoRequest(myWindow, &msg, NULL, &pos, 0, 0, 0, 0); + rtEZRequest("Unable to find PiStorm autoconf device.", + "OK", NULL, NULL); no_board = TRUE; WriteGadgetText("PiStorm not found", StatusBar_buf, myWindow, &StatusBar); } @@ -503,29 +568,23 @@ int main() case GADABOUT: { static struct IntuiText pos; - UBYTE buf[64], buf2[64], buf3[64]; + char buf2[64], buf3[64]; if (!no_board) { unsigned short hw_rev = pi_get_hw_rev(); unsigned short sw_rev = pi_get_sw_rev(); - snprintf((char*)buf2, 64, "PiStorm hardware: %d.%d", (hw_rev >> 8), (hw_rev & 0xFF)); - snprintf((char*)buf3, 64, "PiStorm software: %d.%d", (sw_rev >> 8), (sw_rev & 0xFF)); + snprintf(buf2, 64, "PiStorm hardware: %d.%d", (hw_rev >> 8), (hw_rev & 0xFF)); + snprintf(buf3, 64, "PiStorm software: %d.%d", (sw_rev >> 8), (sw_rev & 0xFF)); } else { - snprintf((char*)buf2, 64, "PiStorm hardware not found!"); + snprintf(buf2, 64, "PiStorm hardware not found!"); } - struct IntuiText msg[] = - { - 1, 0, JAM2, 0, 0, NULL, (UBYTE *)buf, &msg[1], - 1, 0, JAM2, 0, 10, NULL, "Tool written by beeanyew and LinuxJedi", &msg[2], - 1, 0, JAM2, 0, 20, NULL, (UBYTE*)buf2, &msg[3], - 1, 0, JAM2, 0, 30, NULL, (UBYTE*)buf3, &msg[4], - 1, 0, JAM2, 0, 50, NULL, "Now with 53% more Nibbles!", NULL, - }; - snprintf(buf, 64, "PiStorm Interaction Tool %s", VERSION); - pos.IText = "OK"; - AutoRequest(myWindow, msg, NULL, &pos, 0, 0, 0, 0); + rtEZRequest("PiStorm Interaction Tool %s\n" + "Tool written by beeanyew and LinuxJedi\n" + "%s\n%s\n\n" + "Now with 53%% more Nibbles!", + "More Nibbles!", NULL, NULL, VERSION, buf2, buf3); break; } case GADRTGBUTTON: @@ -537,18 +596,24 @@ int main() } case GADCONFIGCOMMIT: { + if (!questionReboot()) + { + break; + } unsigned short ret = pi_handle_config(PICFG_LOAD, ConfigFileValue_buf); if (ret == PI_RES_FILENOTFOUND) { - static struct IntuiText msg, pos; - msg.IText = "PiStorm says: \"file not found\""; - pos.IText = "OK"; - AutoRequest(myWindow, &msg, NULL, &pos, 0, 0, 0, 0); + rtEZRequest("PiStorm says: \"file not found\"", + "OK", NULL, NULL); } break; } case GADCONFIGDEFAULT: { + if (!questionReboot()) + { + break; + } pi_handle_config(PICFG_DEFAULT, NULL); break; } @@ -560,28 +625,22 @@ int main() if (pi_get_filesize(GetFileValue_buf, &filesize) == PI_RES_FILENOTFOUND) { - static struct IntuiText msg, pos; - msg.IText = "PiStorm says: \"file not found\""; - pos.IText = "OK"; - AutoRequest(myWindow, &msg, NULL, &pos, 0, 0, 0, 0); + rtEZRequest("PiStorm says: \"file not found\"", + "OK", NULL, NULL); break; } buf = malloc(filesize); if (buf == NULL) { - static struct IntuiText msg, pos; - msg.IText = "Could not allocate enough memory to transfer file"; - pos.IText = "OK"; - AutoRequest(myWindow, &msg, NULL, &pos, 0, 0, 0, 0); + rtEZRequest("Could not allocate enough memory to transfer file", + "OK", NULL, NULL); break; } WriteGadgetText("Retrieving file...", StatusBar_buf, myWindow, &StatusBar); if (pi_transfer_file(GetFileValue_buf, buf) != PI_RES_OK) { - static struct IntuiText msg, pos; - msg.IText = "PiStorm says: \"something went wrong with the file transfer\""; - pos.IText = "OK"; - AutoRequest(myWindow, &msg, NULL, &pos, 0, 0, 0, 0); + rtEZRequest("PiStorm says: \"something went wrong with the file transfer\"", + "OK", NULL, NULL); WriteGadgetText("File transfer failed", StatusBar_buf, myWindow, &StatusBar); free(buf); break; @@ -610,15 +669,9 @@ int main() { char errbuf[64]; snprintf(errbuf, 64, "Error code: %ld", IoErr()); - struct IntuiText msg[] = - { - 1, 0, JAM2, 0, 0, NULL, "Could not open file for writing", &msg[1], - 1, 0, JAM2, 0, 10, NULL, destfile, &msg[2], - 1, 0, JAM2, 0, 20, NULL, (UBYTE*)errbuf, NULL, - }; - static struct IntuiText pos; - pos.IText = "OK"; - AutoRequest(myWindow, msg, NULL, &pos, 0, 0, 0, 0); + rtEZRequest("Could not open file for writing\n" + "%s\n%s", + "OK", NULL, NULL, destfile, errbuf); WriteGadgetText("File transfer failed", StatusBar_buf, myWindow, &StatusBar); free(buf); free(destfile); @@ -633,7 +686,7 @@ int main() } case GADREBOOT: { - WriteGadgetText("Rebooting PiStorm", StatusBar_buf, myWindow, &StatusBar); + WriteGadgetText("Rebooting Amiga", StatusBar_buf, myWindow, &StatusBar); pi_reset_amiga(0); break; } @@ -645,6 +698,35 @@ int main() WriteGadgetText(fileName, DestinationValue_buf, myWindow, &GetDestination); free(fileName); } + break; + } + case GADSHUTDOWN: + { + int res = rtEZRequest("This will shutdown the Pi and cause the Amiga to freeze\n" + "Continue anyway?", + "Yes|No", NULL, NULL); + if (!res) + { + break; + } + WriteGadgetText("Shuttting down PiStorm...", StatusBar_buf, myWindow, &StatusBar); + int confirm = pi_shutdown_pi(0); + pi_confirm_shutdown(confirm); + break; + } + case GADKICKSTARTCOMMIT: + { + if (!questionReboot()) + { + break; + } + unsigned short ret = pi_remap_kickrom(KickstartFileValue_buf); + if (ret == PI_RES_FILENOTFOUND) + { + rtEZRequest("PiStorm says: \"file not found\"", + "OK", NULL, NULL); + } + break; } } } diff --git a/platforms/amiga/pistorm-dev/pistorm_dev_amiga/pistorm_dev.h b/platforms/amiga/pistorm-dev/pistorm_dev_amiga/pistorm_dev.h index a8f4993..30d019a 100644 --- a/platforms/amiga/pistorm-dev/pistorm_dev_amiga/pistorm_dev.h +++ b/platforms/amiga/pistorm-dev/pistorm_dev_amiga/pistorm_dev.h @@ -31,3 +31,6 @@ void pi_load_default_config(); unsigned short pi_remap_kickrom(char *filename); unsigned short pi_remap_extrom(char *filename); + +unsigned short pi_shutdown_pi(unsigned short shutdown_code); +unsigned short pi_confirm_shutdown(unsigned short shutdown_code); -- 2.39.2