Index

Function Name: C64MODE

Purpose: Reconfigure system as a C64
Call address: $FF4D (hex) 65357 (decimal)
Preparation:

	Registers:	none
	Memory:		system map
	Flags:		none
	Calls:		none
Results:
	Registers:	none
	Memory:		none
	Flags:		none

Description: There is no returnfrom this routine. The 8502 DDR and port are initialized, and the VIC is set to 1MHz (slow) mode. Control is passed to code in common (shared) RAM, which sets the MMU mode register (#5) to C64 mode. From this point on, the MMU and C128 ROMs are not accessible. The routine exits via an indirect jump through the C64 RESET vector.
Since C64 operation does not allow for MMU access, all MMU registers must be configured for proper operation before the C64 mode bit is set. Similarly, because the start-up of the C64 operating system is not from a true hardware reset, there is the possibility that unusual I/O states in effect prior to C64MODE calls can cause unpredictable and presumably undesirable situations once in C64 mode.
There is no way to switch from C64 mode back to C128 mode; only a hardware reset or power off/on will restore the C128 mode of operation. A reset will always initiate C128 mode, although altering the SYSTEM vector beforehand is one way to automatically "throw" a system back to C64 mode.

EXAMPLE:

	JMP	$FF4D	;switch to C64 mode