summaryrefslogtreecommitdiffstats
path: root/patches/cbmbasic/add_iobase.diff
diff options
context:
space:
mode:
authorRobert Schwebel <r.schwebel@pengutronix.de>2009-12-10 21:37:51 +0100
committerRobert Schwebel <r.schwebel@pengutronix.de>2009-12-10 21:37:51 +0100
commit25c7762a7bb29c7d3cf5ed8b298575cf46a5a0a7 (patch)
tree01c0dd520efc3515d7f2c7e855f78260117f094d /patches/cbmbasic/add_iobase.diff
parent770325ab4f082d408f8177a55a57f5c443fbb89f (diff)
downloadptxdist-25c7762a7bb29c7d3cf5ed8b298575cf46a5a0a7.tar.gz
ptxdist-25c7762a7bb29c7d3cf5ed8b298575cf46a5a0a7.tar.xz
[cbmbasic] improve patch comment and name
Signed-off-by: Robert Schwebel <r.schwebel@pengutronix.de>
Diffstat (limited to 'patches/cbmbasic/add_iobase.diff')
-rw-r--r--patches/cbmbasic/add_iobase.diff47
1 files changed, 47 insertions, 0 deletions
diff --git a/patches/cbmbasic/add_iobase.diff b/patches/cbmbasic/add_iobase.diff
new file mode 100644
index 000000000..55e86adf1
--- /dev/null
+++ b/patches/cbmbasic/add_iobase.diff
@@ -0,0 +1,47 @@
+Subject: Add IOBASE and pseudo-timer (will give RND-functionality)
+From: Wolfram Sang <ninja@the-dreams.de>
+
+Signed-off-by: Wolfram Sang <ninja@the-dreams.de>
+
+# ---
+# Already sent mainline and accepted.
+
+Index: basic/runtime.c
+===================================================================
+--- basic.orig/runtime.c 2008-11-17 05:16:31.000000000 +0100
++++ basic/runtime.c 2008-11-17 05:43:31.000000000 +0100
+@@ -29,6 +29,7 @@
+ #include <stdlib.h>
+ #include <stdio.h>
+ #include <string.h>
++#include <time.h>
+
+ unsigned char RAM[65536];
+
+@@ -155,6 +156,7 @@
+ interactive = 1;
+ f = NULL;
+ }
++ srand(time(NULL));
+ }
+
+ static void
+@@ -565,8 +567,16 @@
+ /* IOBASE */
+ static void
+ IOBASE() {
+- printf("UNIMPL: IOBASE\n");
+- exit(1);
++ /*
++ * IOBASE is just used inside RND to get a timer value.
++ * So, let's fake this here, too.
++ */
++ int pseudo_timer = rand();
++ RAM[0xDC04] = pseudo_timer&0xff;
++ RAM[0xDC05] = pseudo_timer>>8;
++
++ X = 0x00;
++ Y = 0xDC;
+ }
+
+ int