]> git.sur5r.net Git - cc65/commitdiff
Add issues from pull request #307.
authorChristian Groessler <chris@groessler.org>
Tue, 7 Jun 2016 10:05:28 +0000 (12:05 +0200)
committerChristian Groessler <chris@groessler.org>
Tue, 7 Jun 2016 10:07:38 +0000 (12:07 +0200)
doc/funcref.sgml
include/apple2.h
include/atari.h
include/cc65.h
libsrc/atari/targetutil/w2cas.c
libsrc/common/doesclrscr.s [new file with mode: 0644]
testcode/lib/atari/defdev.c
testcode/lib/atari/mem.c

index 5b529b8224398cb959f70b7a7265dfbcef2391bf..ff32a29600f7eade09c386440b5fe1f4a8e8c8a1 100644 (file)
@@ -2552,8 +2552,8 @@ used in presence of a prototype.
 <descrip>
 <tag/Function/Divide two ints and return quotient and remainder.
 <tag/Header/<tt/<ref id="stdlib.h" name="stdlib.h">/
-<tag/Declaration/<tt/div_t __fastcall__ div (int number, int denom);/
-<tag/Description/<tt/div/ divides <tt/number/ by <tt/denom/ and returns the
+<tag/Declaration/<tt/div_t __fastcall__ div (int numer, int denom);/
+<tag/Description/<tt/div/ divides <tt/numer/ by <tt/denom/ and returns the
 quotient and remainder in a <tt/div_t/ structure.
 <tag/Notes/<itemize>
 <item>The function is only available as fastcall function, so it may only
@@ -2574,8 +2574,8 @@ ldiv
 <tag/Function/Determines whether the screen is going to be cleared after program exit.
 <tag/Header/<tt/<ref id="atari.h" name="atari.h">, <ref id="apple2.h" name="apple2.h">/
 <tag/Declaration/<tt/unsigned char doesclrscrafterexit (void);/
-<tag/Description/The function returns 0 if the screen won't be cleared immediately after
-program termination. It returns 1 if it will.
+<tag/Description/The function returns zero if the screen won't be cleared immediately after
+program termination. It returns a non-zero value if it will.
 <tag/Notes/<itemize>
 <item>Some systems, maybe depending on configuration, immediately clear the screen
 after a program exits. Therefore it might be difficult to read
@@ -2583,12 +2583,12 @@ the last messages printed by the program prior to its exit. This function can be
 to decide if a delay or wait for a key press should be executed when then program
 exits.
 </itemize>
-<tag/Availability/cc65 (<tt/atari/, <tt/atarixl/, <tt/apple2/, and <tt/apple2enh/ platforms)
+<tag/Availability/cc65
 <tag/Example/<verb>
 /* Hello World */
 #include <stdio.h>
 #include <unistd.h>
-#include <atari.h>
+#include <cc65.h>
 int main(void)
 {
     printf("Hello World\n");
index 97a2f124f9dffabe5a34898b516dc4b002740616..a1b094d4d3d8073941e72be2ca7d2bf22b02755d 100644 (file)
@@ -177,9 +177,6 @@ unsigned char get_ostype (void);
 void rebootafterexit (void);
 /* Reboot machine after program termination has completed. */
 
-unsigned char doesclrscrafterexit (void);
-/* Will the screen automatically be cleared after program termination. */
-
 #define ser_apple2_slot(num)  ser_ioctl (0, (void*) (num))
 /* Select a slot number from 1 to 7 prior to ser_open.
 ** The default slot number is 2.
index 76684c624acde8be2cafc69d1e0834991bd8d5dd..eedd814e07a9a74c5dd27b92297b7a65d3667b23 100644 (file)
@@ -167,7 +167,6 @@ extern void _save_vecs(void);                     /* save system vectors */
 extern void _rest_vecs(void);                     /* restore system vectors */
 extern char *_getdefdev(void);                    /* get default floppy device */
 extern unsigned char _is_cmdline_dos(void);       /* does DOS support command lines */
-extern unsigned char doesclrscrafterexit (void);  /* will DOS clear the screen after program termination */
 
 /* global variables */
 extern unsigned char _dos_type;         /* the DOS flavour */
index 4f9f3067fe88c1c95127440b5c0dbbcc5f667ddb..9b7b69a0e177bb8f253987be437df2147e576880 100644 (file)
@@ -85,6 +85,11 @@ int __fastcall__ cc65_cos (unsigned x);
 ** is in 8.8 fixed point format, which means that 1.0 = $100 and -1.0 = $FF00.
 */
 
+unsigned char doesclrscrafterexit (void);
+/* Indicates whether the screen automatically be cleared after program
+** termination.
+*/
+
 
 
 /* End of cc65.h */
index c1dd0cfccbf3120519302fb3a217955449bda164..1381a49a02162f0bdd6a527a2426ce71141a9c0e 100644 (file)
@@ -14,6 +14,7 @@
 #include <errno.h>
 #include <6502.h>
 #include <atari.h>
+#include <cc65.h>
 #include <conio.h>
 
 static int verbose = 1;
@@ -32,13 +33,6 @@ static struct __iocb *findfreeiocb(void)
     return NULL;
 }
 
-static void exitfn(void)
-{
-    /* if DOS will automatically clear the screen, after the program exits, wait for a keypress... */
-    if (doesclrscrafterexit())
-        cgetc();
-}
-
 int main(int argc, char **argv)
 {
     char *filename, *x;
@@ -50,7 +44,9 @@ int main(int argc, char **argv)
     struct __iocb *iocb = findfreeiocb();
     int iocb_num;
 
-    atexit(exitfn);
+    /* if DOS will automatically clear the screen after the program exits, wait for a keypress... */
+    if (doesclrscrafterexit())
+        atexit((void (*)(void))cgetc);
 
     if (! iocb) {
         fprintf(stderr, "couldn't find a free iocb\n");
diff --git a/libsrc/common/doesclrscr.s b/libsrc/common/doesclrscr.s
new file mode 100644 (file)
index 0000000..71f7ab7
--- /dev/null
@@ -0,0 +1,14 @@
+;
+; Christian Groessler, June-2016
+;
+; unsigned char doesclrscr(void);
+;
+; returns 0/1 if after program termination the screen isn't/is cleared
+;
+
+        .export  _doesclrscrafterexit
+
+_doesclrscrafterexit:
+        ldx     #$00
+        txa
+        rts
index 851d87106ef63ae270baf6b73814c17c13f01028..9b14e97fcfddac05b468f2eb8e7b2bcbb762c14a 100644 (file)
@@ -7,6 +7,7 @@
 #include <stdio.h>
 #include <conio.h>
 #include <atari.h>
+#include <cc65.h>
 
 extern char _defdev[];
 
index 04978c77e3d04bc04a611ae822e601d358a1c04c..bc70aded6422e76ab2920a8eef9cc5a303d6e61f 100644 (file)
@@ -8,6 +8,7 @@
 #include <stdlib.h>
 #include <conio.h>
 #include <atari.h>
+#include <cc65.h>
 
 extern int getsp(void);                         /* comes from ../getsp.s */