📄 start.asm
字号:
#if (CRYSTAL == FREQ_8MHZ) && (CLOCK_SPEED == CPU_4MHZ_PLL_CLKP2_4MHZ)
# if ((SERIES == MB96340) && (DEVICE < 3))
MOVW PLLCR, #0x0060
CLRB MFMCS:4
CLRB MFMCS:5
CLRB SFMCS:4
CLRB SFMCS:5
MOVW CKFCR, #0x1111
MOV CKSR, #0xFA
# else
MOVW PLLCR, #0x0060
MOVW CKFCR, #0x1111
MOVW MFMTC, #0x2128
# if SATELLITE_FLASH == ON
MOVW SFMTC, #0x2128
# endif ; SATELLITE_FLASH == ON
MOV CKSR, #0xFA
# endif ; ((SERIES == MB96340) && (DEVICE < 3))
#endif ; (CRYSTAL == FREQ_8MHZ) && (CLOCK_SPEED == CPU_4MHZ_PLL_CLKP2_4MHZ)
#if (CRYSTAL == FREQ_4MHZ) && (CLOCK_SPEED == CPU_8MHZ_CLKP2_8MHZ)
# if ((SERIES == MB96340) && (DEVICE < 3))
MOVW PLLCR, #0x00A1
MOV CKSR, #0xFA
# else
MOVW PLLCR, #0x0043
MOVW CKFCR, #0x1111
MOVW MFMTC, #0x2128
# if SATELLITE_FLASH == ON
MOVW SFMTC, #0x2128
# endif ; SATELLITE_FLASH == ON
MOV CKSR, #0xFA
# endif ; ((SERIES == MB96340) && (DEVICE < 3))
#endif ; (CRYSTAL == FREQ_4MHZ) && (CLOCK_SPEED == CPU_8MHZ_CLKP2_8MHZ)
#if (CRYSTAL == FREQ_8MHZ) && (CLOCK_SPEED == CPU_8MHZ_CLKP2_8MHZ)
# if ((SERIES == MB96340) && (DEVICE < 3))
MOVW PLLCR, #0x0060
MOV CKSR, #0xFA
# else
MOVW PLLCR, #0x0081
MOVW CKFCR, #0x1111
MOVW MFMTC, #0x2128
# if SATELLITE_FLASH == ON
MOVW SFMTC, #0x2128
# endif ; SATELLITE_FLASH == ON
MOV CKSR, #0xFA
# endif ; ((SERIES == MB96340) && (DEVICE < 3))
#endif ; (CRYSTAL == FREQ_8MHZ) && (CLOCK_SPEED == CPU_8MHZ_CLKP2_8MHZ)
#if (CRYSTAL == FREQ_4MHZ) && (CLOCK_SPEED == CPU_12MHZ_CLKP2_12MHZ)
# if ((SERIES == MB96340) && (DEVICE < 3))
MOVW PLLCR, #0x0062
MOV CKSR, #0xFA
# else
MOVW PLLCR, #0x0025
MOVW CKFCR, #0x1111
MOVW MFMTC, #0x2128
# if SATELLITE_FLASH == ON
MOVW SFMTC, #0x2128
# endif ; SATELLITE_FLASH == ON
MOV CKSR, #0xFA
# endif ; ((SERIES == MB96340) && (DEVICE < 3))
#endif ; (CRYSTAL == FREQ_4MHZ) && (CLOCK_SPEED == CPU_12MHZ_CLKP2_12MHZ)
#if (CRYSTAL == FREQ_8MHZ) && (CLOCK_SPEED == CPU_12MHZ_CLKP2_12MHZ)
# if ((SERIES == MB96340) && (DEVICE < 3))
MOVW PLLCR, #0x0082
CLRB MFMCS:4
CLRB MFMCS:5
CLRB SFMCS:4
CLRB SFMCS:5
MOVW CKFCR, #0x1111
MOV CKSR, #0xFA
# else
MOVW PLLCR, #0x0082
MOVW CKFCR, #0x1111
MOVW MFMTC, #0x2128
# if SATELLITE_FLASH == ON
MOVW SFMTC, #0x2128
# endif ; SATELLITE_FLASH == ON
MOV CKSR, #0xFA
# endif ; ((SERIES == MB96340) && (DEVICE < 3))
#endif ; (CRYSTAL == FREQ_8MHZ) && (CLOCK_SPEED == CPU_12MHZ_CLKP2_12MHZ)
#if (CRYSTAL == FREQ_4MHZ) && (CLOCK_SPEED == CPU_16MHZ_CLKP2_16MHZ)
# if ((SERIES == MB96340) && (DEVICE < 3))
MOVW PLLCR, #0x0043
MOV CKSR, #0xFA
# else
MOVW PLLCR, #0x0027
MOVW CKFCR, #0x1111
MOVW MFMTC, #0x2279
# if SATELLITE_FLASH == ON
MOVW SFMTC, #0x2279
# endif ; SATELLITE_FLASH == ON
MOV CKSR, #0xFA
# endif ; ((SERIES == MB96340) && (DEVICE < 3))
#endif ; (CRYSTAL == FREQ_4MHZ) && (CLOCK_SPEED == CPU_16MHZ_CLKP2_16MHZ)
#if (CRYSTAL == FREQ_8MHZ) && (CLOCK_SPEED == CPU_16MHZ_CLKP2_16MHZ)
# if ((SERIES == MB96340) && (DEVICE < 3))
MOVW PLLCR, #0x0081
MOV CKSR, #0xFA
# else
MOVW PLLCR, #0x0003
MOVW CKFCR, #0x1111
MOVW MFMTC, #0x2279
# if SATELLITE_FLASH == ON
MOVW SFMTC, #0x2279
# endif ; SATELLITE_FLASH == ON
MOV CKSR, #0xFA
# endif ; ((SERIES == MB96340) && (DEVICE < 3))
#endif ; (CRYSTAL == FREQ_8MHZ) && (CLOCK_SPEED == CPU_16MHZ_CLKP2_16MHZ)
#if (CRYSTAL == FREQ_4MHZ) && (CLOCK_SPEED == CPU_24MHZ_CLKP2_12MHZ)
# if ((SERIES == MB96340) && (DEVICE < 3))
MOVW PLLCR, #0x0025
MOVW CKFCR, #0x1001
MOV CKSR, #0xFA
# else
MOVW PLLCR, #0x000B
MOVW CKFCR, #0x3111
MOVW MFMTC, #0x4C09
# if SATELLITE_FLASH == ON
MOVW SFMTC, #0x4C09
# endif ; SATELLITE_FLASH == ON
MOV CKSR, #0xFA
# endif ; ((SERIES == MB96340) && (DEVICE < 3))
#endif ; (CRYSTAL == FREQ_4MHZ) && (CLOCK_SPEED == CPU_24MHZ_CLKP2_12MHZ)
#if (CRYSTAL == FREQ_8MHZ) && (CLOCK_SPEED == CPU_24MHZ_CLKP2_12MHZ)
# if ((SERIES == MB96340) && (DEVICE < 3))
MOVW PLLCR, #0x0082
MOVW CKFCR, #0x1001
MOV CKSR, #0xFA
# else
MOVW PLLCR, #0x0005
MOVW CKFCR, #0x3111
MOVW MFMTC, #0x4C09
# if SATELLITE_FLASH == ON
MOVW SFMTC, #0x4C09
# endif ; SATELLITE_FLASH == ON
MOV CKSR, #0xFA
# endif ; ((SERIES == MB96340) && (DEVICE < 3))
#endif ; (CRYSTAL == FREQ_8MHZ) && (CLOCK_SPEED == CPU_24MHZ_CLKP2_12MHZ)
#if (CRYSTAL == FREQ_4MHZ) && (CLOCK_SPEED == CPU_32MHZ_CLKP2_16MHZ)
# if ((SERIES == MB96340) && (DEVICE < 3))
# error Setting prohibited due to 16FXFL0014
# else
MOVW PLLCR, #0x000F
MOVW CKFCR, #0x3111
MOVW MFMTC, #0x4C09
# if SATELLITE_FLASH == ON
MOVW SFMTC, #0x4C09
# endif ; SATELLITE_FLASH == ON
MOV CKSR, #0xFA
# endif ; ((SERIES == MB96340) && (DEVICE < 3))
#endif ; (CRYSTAL == FREQ_4MHZ) && (CLOCK_SPEED == CPU_32MHZ_CLKP2_16MHZ)
#if (CRYSTAL == FREQ_8MHZ) && (CLOCK_SPEED == CPU_32MHZ_CLKP2_16MHZ)
# if ((SERIES == MB96340) && (DEVICE < 3))
# error Setting prohibited due to 16FXFL0014
# else
MOVW PLLCR, #0x0007
MOVW CKFCR, #0x3111
MOVW MFMTC, #0x4C09
# if SATELLITE_FLASH == ON
MOVW SFMTC, #0x4C09
# endif ; SATELLITE_FLASH == ON
MOV CKSR, #0xFA
# endif ; ((SERIES == MB96340) && (DEVICE < 3))
#endif ; (CRYSTAL == FREQ_8MHZ) && (CLOCK_SPEED == CPU_32MHZ_CLKP2_16MHZ)
#if (CRYSTAL == FREQ_4MHZ) && (CLOCK_SPEED == CPU_32MHZ_CLKP1_16MHZ_CLKP2_16MHZ)
# if ((SERIES == MB96340) && (DEVICE < 3))
# error Setting prohibited due to 16FXFL0014
# else
MOVW PLLCR, #0x000F
MOVW CKFCR, #0x3311
MOVW MFMTC, #0x4C09
# if SATELLITE_FLASH == ON
MOVW SFMTC, #0x4C09
# endif ; SATELLITE_FLASH == ON
MOV CKSR, #0xFA
# endif ; ((SERIES == MB96340) && (DEVICE < 3))
#endif ; (CRYSTAL == FREQ_4MHZ) && (CLOCK_SPEED == CPU_32MHZ_CLKP1_16MHZ_CLKP2_16MHZ)
#if (CRYSTAL == FREQ_8MHZ) && (CLOCK_SPEED == CPU_32MHZ_CLKP1_16MHZ_CLKP2_16MHZ)
# if ((SERIES == MB96340) && (DEVICE < 3))
# error Setting prohibited due to 16FXFL0014
# else
MOVW PLLCR, #0x0007
MOVW CKFCR, #0x3311
MOVW MFMTC, #0x4C09
# if SATELLITE_FLASH == ON
MOVW SFMTC, #0x4C09
# endif ; SATELLITE_FLASH == ON
MOV CKSR, #0xFA
# endif ; ((SERIES == MB96340) && (DEVICE < 3))
#endif ; (CRYSTAL == FREQ_8MHZ) && (CLOCK_SPEED == CPU_32MHZ_CLKP1_16MHZ_CLKP2_16MHZ)
#if (CRYSTAL == FREQ_4MHZ) && (CLOCK_SPEED == CPU_48MHZ_CLKP2_16MHZ)
MOVW PLLCR, #0x000B
MOVW CKFCR, #0x2001
MOVW MFMTC, #0x223A
# if SATELLITE_FLASH == ON
MOVW SFMTC, #0x223A
# endif ; SATELLITE_FLASH == ON
MOV CKSR, #0xFA
#endif ; (CRYSTAL == FREQ_4MHZ) && (CLOCK_SPEED == CPU_48MHZ_CLKP2_16MHZ)
#if (CRYSTAL == FREQ_8MHZ) && (CLOCK_SPEED == CPU_48MHZ_CLKP2_16MHZ)
MOVW PLLCR, #0x0005
MOVW CKFCR, #0x2001
MOVW MFMTC, #0x223A
# if SATELLITE_FLASH == ON
MOVW SFMTC, #0x223A
# endif ; SATELLITE_FLASH == ON
MOV CKSR, #0xFA
#endif ; (CRYSTAL == FREQ_8MHZ) && (CLOCK_SPEED == CPU_48MHZ_CLKP2_16MHZ)
#if (CRYSTAL == FREQ_4MHZ) && (CLOCK_SPEED == CPU_56MHZ_CLKP2_14MHZ)
MOVW PLLCR, #0x000D
MOVW CKFCR, #0x3001
MOVW MFMTC, #0x4B3B
# if SATELLITE_FLASH == ON
MOVW SFMTC, #0x4B3B
# endif ; SATELLITE_FLASH == ON
MOV CKSR, #0xFA
#endif ; (CRYSTAL == FREQ_4MHZ) && (CLOCK_SPEED == CPU_56MHZ_CLKP2_14MHZ)
#if (CRYSTAL == FREQ_8MHZ) && (CLOCK_SPEED == CPU_56MHZ_CLKP2_14MHZ)
MOVW PLLCR, #0x0006
MOVW CKFCR, #0x3001
MOVW MFMTC, #0x4B3B
MOV MFMCS, #0x70
# if SATELLITE_FLASH == ON
MOVW SFMTC, #0x4B3B
MOV SFMCS, #0x70
# endif ; SATELLITE_FLASH == ON
MOV VRCR, #0xF6
MOV CKSR, #0xFA
#endif ; (CRYSTAL == FREQ_8MHZ) && (CLOCK_SPEED == CPU_56MHZ_CLKP2_14MHZ)
;====================================================================
; 6.6 Set external bus configuaration
;====================================================================
#if BUSMODE != SINGLE_CHIP ; ext bus used
MOV EBCF, #((HOLD_REQ << 7) | (EXT_READY << 6) | (EXT_CLOCK_ENABLE << 5) | (EXT_CLOCK_INVERT << 4) | (EXT_CLOCK_SUSPEND << 3) | EXT_CLOCK_DIVISION)
MOV EBAE0,#ADDR_PINS_7_0
MOV EBAE1,#ADDR_PINS_15_8
MOV EBAE2,#ADDR_PINS_23_16
MOV EBCS, #((ADDRESS_STROBE_LVL << 6) | (ADDRESS_STROBE << 5) | (READ_STROBE << 4) | (HIGH_WRITE_STROBE << 3) | (LOW_WRITE_STROBE << 2) | (HIGH_BYTE_SIGNAL << 1) | LOW_BYTE_SIGNAL)
MOVW EACL0,#CS0_CONFIG
MOVW EACL1,#CS1_CONFIG
MOVW EACL2,#CS2_CONFIG
MOVW EACL3,#CS3_CONFIG
MOVW EACL4,#CS4_CONFIG
MOVW EACL5,#CS5_CONFIG
MOV EAS2, #CS2_START
MOV EAS3, #CS3_START
MOV EAS4, #CS4_START
MOV EAS5, #CS5_START
MOV EBM, #((ADDRESSMODE << 7) | ((BUSMODE-1) << 6) | (CHIP_SELECT5 << 5) | (CHIP_SELECT4 << 4) | (CHIP_SELECT3 << 3) | (CHIP_SELECT2 << 2) | (CHIP_SELECT1 << 1) | CHIP_SELECT0) ; set address mode, ROM access
# if SERIES == MB96320 || SERIES == MB96340 || SERIES == MB96350
MOV PIER00,#0xFF
# if (CS0_CONFIG & 0x0080) == 0 || (CS1_CONFIG & 0x0080) == 0 || (CS2_CONFIG & 0x0080) == 0 || (CS3_CONFIG & 0x0080) == 0 || (CS4_CONFIG & 0x0080) == 0 || (CS5_CONFIG & 0x0080) == 0
MOV PIER01,#0xFF
# endif
# if HOLD_REQ == ON
SETB PIER03:4
# endif
# if EXT_READY == ON
SETB PIER03:6
# endif
# else if SERIES == MB96380
MOV PIER01,#0xFF
# if (CS0_CONFIG & 0x0080) == 0 || (CS1_CONFIG & 0x0080) == 0 || (CS2_CONFIG & 0x0080) == 0 || (CS3_CONFIG & 0x0080) == 0 || (CS4_CONFIG & 0x0080) == 0 || (CS5_CONFIG & 0x0080) == 0
MOV PIER02,#0xFF
# endif
# if HOLD_REQ == ON
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -