File 0003-Explain-how-to-get-a-disk-file.patch of Package exorsim

From 10e387423cdf2e83223c13beef15cc7cf112d526 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Klaus=20K=C3=A4mpf?= <kkaempf@gmail.com>
Date: Sat, 15 Jul 2023 13:49:07 +0200
Subject: [PATCH 3/3] Explain how to get a disk file
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Signed-off-by: Klaus Kämpf <kkaempf@gmail.com>
---
 exor.c | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

diff --git a/exor.c b/exor.c
index 6d6f5dd..7b523f1 100644
--- a/exor.c
+++ b/exor.c
@@ -25,6 +25,7 @@
 #include <sys/poll.h>
 #include <signal.h>
 #include <unistd.h>
+#include <errno.h>
 
 #include "sim6800.h"
 #include "exor.h"
@@ -854,8 +855,20 @@ int load_drive(int n)
         long t;
         f = fopen(drive[n].name, "r+");
         if (!f) {
-                fprintf(stderr, "Couldn't open '%s'\n", drive[n].name);
+            if (errno == ENOENT) {
+                fprintf(stderr, "*** Couldn't open '%s'\n", drive[n].name);
+                fprintf(stderr, "Copy it from /usr/share/exorsim/disks/%s\n", drive[n].name);
+                fprintf(stderr, "or get it from http://www.bitsavers.org/bits/Motorola/Exorcisor\n");
                 return -1;
+            }
+            else if (errno == EACCES) {
+                fprintf(stderr, "*** Disk file '%s' must be writable\n", drive[n].name);
+                return -1;
+            }
+            else {
+                fprintf(stderr, "*** Couldn't open '%s': %d/%s\n", drive[n].name, errno, strerror(errno));
+                return -1;
+            }
         }
         fseek(f, 0, SEEK_END);
         t = ftell(f);
-- 
2.41.0

openSUSE Build Service is sponsored by