]> git.sur5r.net Git - cc65/commitdiff
Merge pull request #620 from blackystardust/master
authorOliver Schmidt <ol.sc@web.de>
Sat, 31 Mar 2018 09:57:27 +0000 (11:57 +0200)
committerGitHub <noreply@github.com>
Sat, 31 Mar 2018 09:57:27 +0000 (11:57 +0200)
Added c16/plus4 fast(), isfast() and slow() functions, and updated the documentation accordingly.

12 files changed:
asminc/plus4.inc
doc/c128.sgml
doc/c16.sgml
doc/funcref.sgml
doc/plus4.sgml
include/plus4.h
libsrc/c16/fast.s [new file with mode: 0644]
libsrc/c16/isfast.s [new file with mode: 0644]
libsrc/c16/slow.s [new file with mode: 0644]
libsrc/plus4/fast.s [new file with mode: 0644]
libsrc/plus4/isfast.s [new file with mode: 0644]
libsrc/plus4/slow.s [new file with mode: 0644]

index 3b2f08c54db306ac222ea890db31ff47e54f0e3f..5ea4dcf88a2dcfc6453461ced8c0fc2c7ce1a960 100644 (file)
@@ -73,6 +73,7 @@ TED_CURSLO      := $FF0D
 TED_V1FRQLO     := $FF0E
 TED_V2FRQLO     := $FF0F
 TED_V2FRQHI     := $FF10
+TED_CLK         := $FF13
 TED_BGCOLOR     := $FF15
 TED_COLOR1      := $FF16
 TED_COLOR2      := $FF17
index 14c874998d5e46cc84863ebe210fe3c84e53a1c9..2bfb37a3db38dbcb7ff6b72cacf596e8a1fe4c5c 100644 (file)
@@ -85,9 +85,6 @@ url="funcref.html" name="function reference"> for declaration and usage.
 <itemize>
 <item>videomode
 <item>c64mode
-<item>fast
-<item>slow
-<item>isfast
 </itemize>
 
 
@@ -123,6 +120,19 @@ declaration and usage.
 </itemize>
 
 
+<sect1>CBM specific CPU functions<p>
+
+Some CPU related functions are available for some of the Commodore
+machines. See the <url url="funcref.html" name="function reference"> for
+declaration and usage.
+
+<itemize>
+<item>fast
+<item>slow
+<item>isfast
+</itemize>
+
+
 <sect1>Hardware access<p>
 
 The following pseudo variables declared in the <tt/c128.h/ header file do
index 1614516b7275114f4dbf91351f430431bd284dcf..27938ff1e456795b2b88536733dff1a24d43603c 100644 (file)
@@ -126,6 +126,18 @@ declaration and usage.
 </itemize>
 
 
+<sect1>CBM specific CPU functions<p>
+
+Some CPU related functions are available for some of the Commodore
+machines. See the <url url="funcref.html" name="function reference"> for
+declaration and usage.
+
+<itemize>
+<item>fast
+<item>slow
+<item>isfast
+</itemize>
+
 <sect1>Hardware access<p>
 
 The following pseudo variables declared in the <tt/c16.h/ header file do
index 193a10c52abfe75f5d773f6b671a6c2cbabf8f86..5f90cfd3e0c2cb14cb9a557453b83eea1549c612 100644 (file)
@@ -140,6 +140,12 @@ function.
 
 <sect1><tt/c16.h/<label id="c16.h"><p>
 
+<itemize>
+<item><ref id="fast" name="fast">
+<item><ref id="isfast" name="isfast">
+<item><ref id="slow" name="slow">
+</itemize>
+
 (incomplete)
 
 
@@ -502,6 +508,12 @@ It does not declare any functions.
 
 <sect1><tt/plus4.h/<label id="plus4.h"><p>
 
+<itemize>
+<item><ref id="fast" name="fast">
+<item><ref id="isfast" name="isfast">
+<item><ref id="slow" name="slow">
+</itemize>
+
 (incomplete)
 
 
@@ -3292,21 +3304,21 @@ program, it may not be able to read it.
 
 <quote>
 <descrip>
-<tag/Function/Switch the C128 into 2MHz mode.
-<tag/Header/<tt/<ref id="c128.h" name="c128.h">/
+<tag/Function/Switch the CPU into fast mode (C128: 2MHz mode, C16/Plus4: double clock mode).
+<tag/Header/<tt/<ref id="c128.h" name="c128.h">,
+<ref id="c16.h" name="c16.h">, <ref id="plus4.h" name="plus4.h">/
 <tag/Declaration/<tt/void fast (void);/
-<tag/Description/The function will switch the clock of the C128 to 2MHz. This
-will nearly double the speed compared to slow mode.
+<tag/Description/The function will switch the clock of the CPU to fast mode. For the C128
+target it means switching the CPU into 2MHz mode. For the C16/Plus4 target it means
+switching the CPU into double clock mode.
 <tag/Notes/<itemize>
-<item>The function is specific to the C128.
-<item>2MHz clock will not work in 40 column mode.
+<item>The function is specific to the C128, C16 and Plus4.
+<item>On the C128 the 2MHz clock will not work in 40 column mode.
 </itemize>
-<tag/Availability/C128
+<tag/Availability/cc65 (not all platforms)
 <tag/See also/
 <ref id="isfast" name="isfast">,
 <ref id="slow" name="slow">,
-<ref id="toggle_videomode" name="toggle_videomode">,
-<ref id="videomode" name="videomode">
 <tag/Example/None.
 </descrip>
 </quote>
@@ -3960,19 +3972,18 @@ fastcall function, so it may only be used in presence of a prototype.
 
 <quote>
 <descrip>
-<tag/Function/Check if the C128 is in 2MHz mode.
-<tag/Header/<tt/<ref id="c128.h" name="c128.h">/
+<tag/Function/Check if the CPU is in fast mode (C128: 2MHz mode, C16/Plus4: double clock mode).
+<tag/Header/<tt/<ref id="c128.h" name="c128.h">,
+<ref id="c16.h" name="c16.h">, <ref id="plus4.h" name="plus4.h">/
 <tag/Declaration/<tt/unsigned char isfast (void);/
-<tag/Description/The function returns a 1 if the C128 is in 2MHz mode.
+<tag/Description/The function returns a 1 if the CPU is in fast mode (C128: 2MHz mode, C16/Plus4: double clock mode).
 <tag/Notes/<itemize>
-<item>The function is specific to the C128.
+<item>The function is specific to the C128, C16 and Plus4.
 </itemize>
-<tag/Availability/C128
+<tag/Availability/cc65 (not all platforms)
 <tag/See also/
 <ref id="fast" name="fast">,
 <ref id="slow" name="slow">,
-<ref id="toggle_videomode" name="toggle_videomode">,
-<ref id="videomode" name="videomode">
 <tag/Example/None.
 </descrip>
 </quote>
@@ -6086,20 +6097,20 @@ be used in presence of a prototype.
 
 <quote>
 <descrip>
-<tag/Function/Switch the C128 into 1MHz mode.
-<tag/Header/<tt/<ref id="c128.h" name="c128.h">/
+<tag/Function/Switch the CPU into slow mode (C128: 1MHz mode, C16/Plus4: single clock mode).
+<tag/Header/<tt/<ref id="c128.h" name="c128.h">,
+<ref id="c16.h" name="c16.h">, <ref id="plus4.h" name="plus4.h">/
 <tag/Declaration/<tt/void slow (void);/
-<tag/Description/The function will switch the clock of the C128 to 1MHz. This
-will halve the speed compared to fast mode.
+<tag/Description/The function will switch the clock of the CPU to slow mode. for the C128
+target it means switching the CPU into 1MHz mode. for the C16/Plus4 target it means
+switching the CPU into single clock mode.
 <tag/Notes/<itemize>
-<item>The function is specific to the C128.
+<item>The function is specific to the C128, C16 and Plus4.
 </itemize>
-<tag/Availability/C128
+<tag/Availability/cc65 (not all platforms)
 <tag/See also/
 <ref id="fast" name="fast">,
 <ref id="isfast" name="isfast">,
-<ref id="toggle_videomode" name="toggle_videomode">,
-<ref id="videomode" name="videomode">
 <tag/Example/None.
 </descrip>
 </quote>
index 36d53e753f9c03f34c8bd75db7b24b4dc9b90717..c1b6165f6732d484b94f865c0f577adadfa658f7 100644 (file)
@@ -124,6 +124,19 @@ declaration and usage.
 </itemize>
 
 
+<sect1>CBM specific CPU functions<p>
+
+Some CPU related functions are available for some of the Commodore
+machines. See the <url url="funcref.html" name="function reference"> for
+declaration and usage.
+
+<itemize>
+<item>fast
+<item>slow
+<item>isfast
+</itemize>
+
+
 <sect1>Hardware access<p>
 
 The following pseudo variables declared in the <tt/plus4.h/ header file do
index 81e3c5286588027f30aa4982904a0774e81e36ad..6edb947e55a33ba5a6e01a697b410b089ce31c67 100644 (file)
 extern void plus4_stdjoy_joy[];   /* Referred to by joy_static_stddrv[] */
 extern void plus4_stdser_ser[];
 
+void fast (void);
+/* Switch the CPU into double clock mode. */
+
+void slow (void);
+/* Switch the CPU into single clock mode. */
+
+unsigned char isfast (void);
+/* Returns 1 if the CPU is in double clock mode. */
 
 
 /* End of plus4.h */
diff --git a/libsrc/c16/fast.s b/libsrc/c16/fast.s
new file mode 100644 (file)
index 0000000..e488139
--- /dev/null
@@ -0,0 +1,22 @@
+;
+; Marco van den Heuvel, 2018-03-20
+;
+; void fast (void);
+; /* Switch the CPU into double clock mode. */
+;
+
+        .export         _fast
+
+        .include        "plus4.inc"
+
+
+.proc   _fast
+
+        lda     TED_CLK
+        and     #%11111101
+        sta     TED_CLK
+        rts
+
+.endproc
+
+
diff --git a/libsrc/c16/isfast.s b/libsrc/c16/isfast.s
new file mode 100644 (file)
index 0000000..ff104d9
--- /dev/null
@@ -0,0 +1,22 @@
+;
+; Marco van den Heuvel, 2018-03-20
+;
+; unsigned char isfast (void);
+; /* Returns 1 if the CPU is in double clock mode. */
+;
+
+        .export         _isfast
+
+        .include        "plus4.inc"
+
+
+.proc   _isfast
+
+        lda     TED_CLK
+        lsr
+        and     #$01
+        ldx     #$00
+        rts
+
+.endproc
+
diff --git a/libsrc/c16/slow.s b/libsrc/c16/slow.s
new file mode 100644 (file)
index 0000000..18b8c23
--- /dev/null
@@ -0,0 +1,22 @@
+;
+; Marco van den Heuvel, 2018-03-28
+;
+; void slow (void);
+; /* Switch the CPU into single clock mode. */
+;
+
+        .export         _slow
+
+        .include        "plus4.inc"
+
+
+.proc   _slow
+
+        lda     TED_CLK
+        ora     #%00000010
+        sta     TED_CLK
+        rts
+
+.endproc
+
+
diff --git a/libsrc/plus4/fast.s b/libsrc/plus4/fast.s
new file mode 100644 (file)
index 0000000..e488139
--- /dev/null
@@ -0,0 +1,22 @@
+;
+; Marco van den Heuvel, 2018-03-20
+;
+; void fast (void);
+; /* Switch the CPU into double clock mode. */
+;
+
+        .export         _fast
+
+        .include        "plus4.inc"
+
+
+.proc   _fast
+
+        lda     TED_CLK
+        and     #%11111101
+        sta     TED_CLK
+        rts
+
+.endproc
+
+
diff --git a/libsrc/plus4/isfast.s b/libsrc/plus4/isfast.s
new file mode 100644 (file)
index 0000000..ff104d9
--- /dev/null
@@ -0,0 +1,22 @@
+;
+; Marco van den Heuvel, 2018-03-20
+;
+; unsigned char isfast (void);
+; /* Returns 1 if the CPU is in double clock mode. */
+;
+
+        .export         _isfast
+
+        .include        "plus4.inc"
+
+
+.proc   _isfast
+
+        lda     TED_CLK
+        lsr
+        and     #$01
+        ldx     #$00
+        rts
+
+.endproc
+
diff --git a/libsrc/plus4/slow.s b/libsrc/plus4/slow.s
new file mode 100644 (file)
index 0000000..18b8c23
--- /dev/null
@@ -0,0 +1,22 @@
+;
+; Marco van den Heuvel, 2018-03-28
+;
+; void slow (void);
+; /* Switch the CPU into single clock mode. */
+;
+
+        .export         _slow
+
+        .include        "plus4.inc"
+
+
+.proc   _slow
+
+        lda     TED_CLK
+        ora     #%00000010
+        sta     TED_CLK
+        rts
+
+.endproc
+
+