1 // SPDX-License-Identifier: MIT
3 #include "../pistorm-dev-enums.h"
4 #include "pistorm_dev.h"
6 #include <exec/resident.h>
7 #include <exec/errors.h>
8 #include <exec/memory.h>
9 #include <exec/lists.h>
10 #include <exec/alerts.h>
11 #include <exec/tasks.h>
13 #include <exec/execbase.h>
15 #include <libraries/expansion.h>
17 #include <devices/trackdisk.h>
18 #include <devices/timer.h>
19 #include <devices/scsidisk.h>
21 #include <dos/filehandler.h>
23 #include <proto/exec.h>
24 #include <proto/disk.h>
25 #include <proto/expansion.h>
31 #define LOADLIB(a, b) if ((a = (struct a*)OpenLibrary(b,0L))==NULL) { \
32 printf("Failed to load %s.\n", b); \
36 void print_usage(char *exe);
37 int get_command(char *cmd);
39 extern unsigned int pistorm_base_addr;
41 int __stdargs main (int argc, char *argv[]) {
47 int command = get_command(argv[1]);
49 printf("Unknown command %s.\n", argv[1]);
53 pistorm_base_addr = pi_find_pistorm();
55 if (pistorm_base_addr == 0xFFFFFFFF) {
56 printf ("Unable to find PiStorm autoconf device.\n");
60 printf ("PiStorm autoconf device found at $%.X\n", pistorm_base_addr);
63 unsigned int tmpvalue = 0;
64 unsigned short tmpshort = 0;
71 tmpshort = (unsigned short)atoi(argv[2]);
72 pi_reset_amiga(tmpshort);
75 printf ("PiStorm ----------------------------\n");
76 printf ("Hardware revision: %d.%d\n", (pi_get_hw_rev() >> 8), (pi_get_hw_rev() & 0xFF));
77 printf ("Software revision: %d.%d\n", (pi_get_sw_rev() >> 8), (pi_get_sw_rev() & 0xFF));
78 printf ("RTG: %s - %s\n", (pi_get_rtg_status() & 0x01) ? "Enabled" : "Disabled", (pi_get_rtg_status() & 0x02) ? "In use" : "Not in use");
79 printf ("NET: %s\n", pi_get_net_status() ? "Enabled" : "Disabled");
82 printf ("Unhandled command %s.\n", argv[1]);
90 int get_command(char *cmd) {
91 if (strcmp(cmd, "--restart") == 0 || strcmp(cmd, "--reboot") == 0 || strcmp(cmd, "--reset") == 0) {
94 if (strcmp(cmd, "--check") == 0 || strcmp(cmd, "--find") == 0 || strcmp(cmd, "--info") == 0) {
101 void print_usage(char *exe) {
102 printf ("Usage: %s --[command] (arguments)\n", exe);
103 printf ("Example: %s --restart, --reboot or --reset\n", exe);
104 printf (" Restarts the Amiga.\n");
105 printf (" %s --check, --find or --info\n", exe);
106 printf (" Finds the PiStorm device and prints some data.\n");