'******************************************************************************
'* 
'* CENTRAL PROCESSOR UNIT Motorola 68000 (16/32-bit) (PROCESSOR)
'*
'* !!! Correct amount of cycles per instruction is not implemented yet (always 3)
'*
'* PROCESSOR interface (common to all processors):
'*  - Name as string(15) - name of processor (15 chars max length)
'*  - Frequency as dword - can be changed by user on emulation start only (Hz)
'*  - CoreID as dword - identifier of CPU core (0-68000)
'*  - Cycles as int64 - count of cycles, passed from start of execution (read only)
'*
'* m68000 interface (specific to this processor):
'*  - PC - 32-bit "program counter" register
'*  - SP - 32-bit stack pointer register (supervisor or user - depends on CPU mode)
'*  - D(0)..D(7) - 32-bit data registers
'*  - A(0)..A(7) - 32-bit address registers
'*  - FLAGS or F - 16-bit register of flags (SR,CCR)
'*  - FLAGS.CF (OF/VF,ZF,SF,XF,SVF,TF) - separate flags as boolean values
'*  - FLAGS.INTF - 3-bit interrupt mask flags
'*
'* WARNING: This CPU on reset take stack pointer (SP) and code address (PC)
'*      from memory addresses 0 and 4 (both size of 32 bit = 4 byte). 
'*      Internally this is not implemented to allow more flexibility.
'*      You must load them by script code in suitable place (cpu creation or mboard init)
'*
'* Version history:
'*  2008-2009 - initial emulation (by WadiM)
'*
'* Note: - implementation currently is completly internal ("interpreter")
'*       - processor devices different from ordinary devices and implement
'*         special PROCESSOR interface, which is mostly hidden (temporary)
'*       - currently processors auto-registered in system after object created
'*         (by "use"), but at this moment supported only single-CPU emulation
'*
'****************************************************************************** 

public use internal "CPU_M68K" 'internal implementation

//default starting values
Name="m68000" : Frequency=1000000  '1Mhz

