2 ; Marco van den Heuvel, 2018-04-27
5 ; unsigned char __fastcall__ set_c65_speed (unsigned char speed);
7 ;/* Set the speed of the C65 CPU, using SPEED_SLOW will switch to
8 ; * 1 Mhz mode, SPEED_3X or SPEED_FAST will switch to 3.5 Mhz (fast) mode.
10 ; * Note that any value higher or equal to SPEED_3X will switch to fast mode.
12 ; * This function will return the actual speed the CPU is at after trying
13 ; * to set the requested speed, to my knowledge the switching should not fail.
15 ; * This function does not check for the presence of a C65/C64DX in C64 mode,
16 ; * make sure you use 'detect_c65();' before using.
19 ; unsigned char get_c65_speed (void);
21 ;/* Get the speed of the C65 CPU.
23 ; * Possible return values:
24 ; * SPEED_SLOW : 1 Mhz mode
25 ; * SPEED_3X : 3.5 Mhz mode
27 ; * This function does not check for the presence of a C65/C64DX in C64 mode,
28 ; * make sure you use 'detect_c65();' before using.
31 .export _set_c65_speed
32 .export _get_c65_speed
34 .include "accelerator.inc"
38 jsr activate_new_vic_mode
53 jsr activate_new_vic_mode
57 beq speed_is_slow ; when this branch is taken then register A is already set to SPEED_SLOW
63 activate_new_vic_mode:
64 lda #C65_VICIII_UNLOCK_1
66 lda #C65_VICIII_UNLOCK_2