/* C64/C128 SuperCPU cartridge */
-extern unsigned char __fastcall__ set_scpu_speed (unsigned char speed);
+unsigned char __fastcall__ set_scpu_speed (unsigned char speed);
/* Set the speed of the SuperCPU cartridge, using SPEED_SLOW will switch to
* 1 Mhz mode, SPEED_20X or SPEED_FAST will switch to 20 Mhz mode.
* make sure you use 'detect_scpu();' before using.
*/
-extern unsigned char get_scpu_speed (void);
+unsigned char get_scpu_speed (void);
/* Get the speed of the SuperCPU cartridge.
*
* make sure you use 'detect_scpu();' before using.
*/
-extern unsigned char detect_scpu (void);
+unsigned char detect_scpu (void);
/* Check for the presence of the SuperCPU cartridge.
*
* 0x01 : SuperCPU cartridge present
*/
+
+/* C64DTV */
+
+unsigned char __fastcall__ set_c64dtv_speed (unsigned char speed);
+
+/* Set the speed of the C64DTV, using SPEED_SLOW will switch to
+ * slow mode, SPEED_2X or SPEED_FAST will switch to fast mode.
+ *
+ * Note that any value higher or equal to SPEED_2X will switch to fast mode.
+ *
+ * This function will return the actual speed the CPU is at after trying
+ * to set the requested speed, to my knowledge the switch should not fail.
+ *
+ * This function does not check for the presence of the C64DTV,
+ * make sure you use 'detect_c64dtv();' before using.
+ */
+
+unsigned char get_c64dtv_speed (void);
+
+/* Get the speed of the C64DTV.
+ *
+ * Possible return values:
+ * SPEED_1X : slow mode
+ * SPEED_2X : fast mode
+ *
+ * This function does not check for the presence of the C64DTV,
+ * make sure you use 'detect_c64dtv();' before using.
+ */
+
+unsigned char detect_c64dtv (void);
+
+/* Check for the presence of the C64DTV.
+ *
+ * Possible return values:
+ * 0x00 : C64DTV not present
+ * 0x01 : C64DTV present
+ */
+
+
+/* C128 8502 CPU */
+
+unsigned char __fastcall__ set_c128_speed (unsigned char speed);
+
+/* Set the speed of the C128 8502 CPU, using SPEED_SLOW will switch to
+ * 1 Mhz (slow) mode, SPEED_2X or SPEED_FAST will switch to 2Mhz (fast) mode.
+ *
+ * Note that any value higher or equal to SPEED_2X will switch to fast mode.
+ *
+ * This function will return the actual speed the CPU is at after trying
+ * to set the requested speed, to my knowledge the switching should not fail.
+ *
+ * This function does not check if the C128 CPU is the current CPU, make sure
+ * you use 'detect_c128();' before using.
+ */
+
+unsigned char get_c128_speed (void);
+
+/* Get the speed of the C128 8502 CPU.
+ *
+ * Possible return values:
+ * SPEED_SLOW : Slow mode
+ * SPEED_2X : Fast mode
+ *
+ * This function does not check if the C128 CPU is the current CPU, make sure
+ * you use 'detect_c128();' before using.
+ */
+
+unsigned char detect_c128 (void);
+
+/* Check if the C128 CPU is the current CPU.
+ *
+ * Possible return values:
+ * 0x00 : C128 CPU is not the current CPU
+ * 0x01 : C128 CPU is the current CPU
+ */
+
+
+/* C64 Chameleon cartridge */
+
+unsigned char __fastcall__ set_chameleon_speed (unsigned char speed);
+
+/* Set the speed of the C64 Chameleon cartridge, the following inputs
+ * are accepted:
+ * SPEED_SLOW : 1 Mhz mode
+ * SPEED_1X : 1 Mhz mode
+ * SPEED_2X : 2 Mhz mode
+ * SPEED_3X : 3 Mhz mode
+ * SPEED_4X : 4 Mhz mode
+ * SPEED_5X : 5 Mhz mode
+ * SPEED_6X : 6 Mhz mode
+ * SPEED_FAST : Maximum speed mode
+ *
+ * Note that any value higher or equal to SPEED_7X will switch to maximum
+ * speed mode.
+ *
+ * This function will return the actual speed the CPU is at after trying
+ * to set the requested speed, to my knowledge the switching should not fail.
+ *
+ * This function does not check for the presence of the C64 Chameleon cartridge,
+ * make sure you use 'detect_chameleon();' before using.
+ */
+
+unsigned char get_chameleon_speed (void);
+
+;/* Get the speed of the C64 Chameleon cartridge.
+; *
+; * Possible return values:
+; * SPEED_SLOW : Slow mode
+; * SPEED_2X : 2Mhz mode
+; * SPEED_3X : 3Mhz mode
+; * SPEED_4X : 4Mhz mode
+; * SPEED_5X : 5Mhz mode
+; * SPEED_6X : 6Mhz mode
+; * SPEED_FAST : Maximum speed mode
+; *
+; * This function does not check for the presence of the C64 Chameleon cartridge,
+; * make sure you use 'detect_chameleon();' before using.
+; */
+
+unsigned char detect_chameleon (void);
+
+/* Check for the presence of the C64 Chameleon cartridge.
+ *
+ * Possible return values:
+ * 0x00 : C64 Chameleon cartridge not present
+ * 0x01 : C64 Chameleon cartridge present
+ */
+
+
+/* C65/C64DX in C64 mode */
+
+unsigned char __fastcall__ set_c65_speed (unsigned char speed);
+
+/* Set the speed of the C65/C64DX CPU, using SPEED_SLOW will switch to
+ * 1 Mhz mode, SPEED_3X or SPEED_FAST will switch to 3.5 Mhz (fast) mode.
+ *
+ * Note that any value higher or equal to SPEED_3X will switch to fast mode.
+ *
+ * This function will return the actual speed the CPU is at after trying
+ * to set the requested speed, to my knowledge the switching should not fail.
+ *
+ * This function does not check for the presence of a C65/C64DX in C64 mode,
+ * make sure you use 'detect_c65();' before using.
+ */
+
+unsigned char get_c65_speed (void);
+
+/* Get the speed of the C65/C64DX CPU.
+ *
+ * Possible return values:
+ * SPEED_SLOW : Slow mode
+ * SPEED_3X : Fast mode
+ *
+ * This function does not check for the presence of a C65/C64DX in C64 mode,
+ * make sure you use 'detect_c65();' before using.
+ */
+
+unsigned char detect_c65 (void);
+
+/* Check for the presence of a C65/C64DX in C64 mode.
+ *
+ * Possible return values:
+ * 0x00 : C65/C64DX in C64 mode not present
+ * 0x01 : C65/C64DX in C64 mode present
+ */
+
+
+/* C64 Turbo Master cartridge */
+
+unsigned char __fastcall__ set_turbomaster_speed (unsigned char speed);
+
+/* Set the speed of the Turbo Master cartridge, using SPEED_SLOW will switch to
+ * 1 Mhz mode, SPEED_4X or SPEED_FAST will switch to 4 Mhz mode.
+ *
+ * Note that any value higher or equal to SPEED_4X will switch to 4 Mhz mode,
+ * any value lower than SPEED_4X will switch to 1 Mhz mode.
+ *
+ * This function will return the actual speed the CPU is at after trying
+ * to set the requested speed, if the speed is different it might indicate
+ * that the hardware switch has locked the speed.
+ *
+ * This function does not check for the presence of a Turbo Master cartridge,
+ * make sure you use 'detect_turbomaster();' before using.
+ */
+
+unsigned char get_turbomaster_speed (void);
+
+/* Get the speed of the Turbo Master cartridge.
+ *
+ * Possible return values:
+ * SPEED_SLOW : 1 Mhz mode
+ * SPEED_4X : 4 Mhz mode
+ *
+ * This function does not check for the presence of a Turbo Master cartridge,
+ * make sure you use 'detect_turbomaster();' before using.
+ */
+
+unsigned char detect_turbomaster (void);
+
+/* Check for the presence of a C64 Turbo Master cartridge.
+ *
+ * Possible return values:
+ * 0x00 : C64 Turbo Master cartridge not present
+ * 0x01 : C64 Turbo Master cartridge present
+ */
+
/* End of accelerator.h */
#endif
+