📄 start_v2.a66
字号:
_RDPHF5 EQU 0 ; 0 = 0 clock cycles /Dave/
; : = :
; 3 = 3 clock cycles
;
; <o>WRPHF5: Phase F write clock cycle (TCONCS5.13 .. TCONCS5.14) <0-3>
_WRPHF5 EQU 0 ; 0 = 0 clock cycles /Dave/
; : = :
; 3 = 3 clock cycles
;</h> </e>
;
;<e>Configure External Bus Behaviour for CS6 Area
; =============================================
;
; --- Set CONFIG_CS6 = 1 to initialize the ADDRSEL6/FCONCS6/TCONCS6 registers
$SET (CONFIG_CS6 = 0) ; /Dave/
;
; <h>Definitions for Address Select register ADDRSEL6
; ===================================================
; <o> CS6 Start Address <0x0-0xFFFFFF:0x1000>
_ADDR6 EQU 0x0 ; Set CS2# Start Address (default 100000H) /Dave/
; <o> CS6 Size in KB
; <4=> 4KB <8=> 8KB <16=> 16KB <32=> 32KB
; <64=> 64KB <128=> 128KB <256=> 256KB <512=> 512KB
; <1024=> 1024KB <2048=> 2048KB <4096=> 4096KB <8192=> 8192KB
_SIZE6 EQU 4*KB ; Set CS6# Size (default 1024*KB = 1*MB) /Dave/
; possible values for _SIZE6 are:
; 4*KB (gives RGSZ6 = 0)
; 8*KB (gives RGSZ6 = 1)
; 16*KB (gives RGSZ6 = 2)
; 32*KB (gives RGSZ6 = 3)
; 64*KB (gives RGSZ6 = 4)
; 128*KB (gives RGSZ6 = 5)
; 256*KB (gives RGSZ6 = 6)
; 512*KB (gives RGSZ6 = 7)
; 1024*KB or 1*MB (gives RGSZ6 = 8)
; 2048*KB or 2*MB (gives RGSZ6 = 9)
; 4096*KB or 4*MB (gives RGSZ6 = 10)
; 8192*KB or 8*MB (gives RGSZ6 = 11)
; (RGSZ6 = 12 .. 15 reserved)
;</h>
;
; <h>Definitions for Function Configuration Register FCONCS6
; =======================================================
;
; <q> ENCS6: Enable Chip Select (FCONCS6.0)
_ENCS6 EQU 0 ; 0 = Chip Select 0 disabled /Dave/
; 1 = Chip Select 0 enabled
;
; <q> RDYEN6: Ready Enable (FCONCS6.1)
_RDYEN6 EQU 0 ; 0 = Access time controlled by TCONCS6.PHE1 /Dave/
; 1 = Access time cont. by TCONCS6.PHE1 and READY signal
;
; <o> RDYMOD6: Ready Mode (FCONCS6.2)
; <0=> Asynchronous <1=> Synchronous
_RDYMOD6 EQU 0 ; 0 = Asynchronous READY /Dave/
; 1 = Synchronous READY
;
; <o> BTYP6: Bus Type Selection (FCONCS6.4 .. FCONCS6.5)
; <0=> 8-bit Demultiplexed Bus <1=> 8-bit Multiplexed Bus
; <2=> 16-bit Demultiplexed Bus <3=> 16-bit Multiplexed Bus
_BTYP6 EQU 0 ; 0 = 8 bit Demultiplexed bus /Dave/
; 1 = 8 bit Multiplexed bus
; 2 = 16 bit Demultiplexed bus
; 3 = 16 bit Multiplexed bus
;</h>
;
; <h>TCONCS6: Definitions for the Timing Configuration register
; ==========================================================
;
; <o>PHA6: Phase A clock cycle (TCONCS6.0 .. TCONCS6.1) <0-3>
_PHA6 EQU 0 ; 0 = 0 clock cycles /Dave/
; : = :
; 3 = 3 clock cycles
;
; <o>PHB6: Phase B clock cycle (TCONCS6.2) <1-2> <#-1>
_PHB6 EQU 0 ; 0 = 1 clock cycle /Dave/
; 1 = 2 clock cycles
;
; <o>PHC6: Phase C clock cycle (TCONCS6.3 .. TCONCS6.4) <0-3>
_PHC6 EQU 0 ; 0 = 0 clock cycles /Dave/
; : = :
; 3 = 3 clock cycles
;
; <o>PHD6: Phase D clock cycle (TCONCS6.5) <0-1>
_PHD6 EQU 0 ; 0 = 0 clock cycles /Dave/
; 1 = 1 clock cycle
;
; <o> PHE6: Phase E clock cycle (TCONCS6.6 .. TCONCS6.10) <1-32> <#-1>
_PHE6 EQU 0 ; 0 = 1 clock cycle /Dave/
; : = :
; 31 = 32 clock cycles
;
; <o>RDPHF6: Phase F read clock cycle (TCONCS6.11 .. TCONCS6.12) <0-3>
_RDPHF6 EQU 0 ; 0 = 0 clock cycles /Dave/
; : = :
; 3 = 3 clock cycles
;
; <o>WRPHF6: Phase F write clock cycle (TCONCS6.13 .. TCONCS6.14) <0-3>
_WRPHF6 EQU 0 ; 0 = 0 clock cycles /Dave/
; : = :
; 3 = 3 clock cycles
;</h> </e>
;
;<e>Configure External Bus Behaviour for CS7 Area
; =============================================
;
; --- Set CONFIG_CS7 = 1 to initialize the ADDRSEL7/FCONCS7/TCONCS7 registers
$SET (CONFIG_CS7 = 0) ; /Dave/
;
; <h>Definitions for Address Select register ADDRSEL7
; ===================================================
; <o> CS7 Start Address <0x0-0xFFFFFF:0x1000>
_ADDR7 EQU 0x0 ; Set CS7# Start Address (default 100000H) /Dave/
; <o> CS7 Size in KB
; <4=> 4KB <8=> 8KB <16=> 16KB <32=> 32KB
; <64=> 64KB <128=> 128KB <256=> 256KB <512=> 512KB
; <1024=> 1024KB <2048=> 2048KB <4096=> 4096KB <8192=> 8192KB
_SIZE7 EQU 4*KB ; Set CS7# Size (default 1024*KB = 1*MB) /Dave/
; possible values for _SIZE7 are:
; 4*KB (gives RGSZ7 = 0)
; 8*KB (gives RGSZ7 = 1)
; 16*KB (gives RGSZ7 = 2)
; 32*KB (gives RGSZ7 = 3)
; 64*KB (gives RGSZ7 = 4)
; 128*KB (gives RGSZ7 = 5)
; 256*KB (gives RGSZ7 = 6)
; 512*KB (gives RGSZ7 = 7)
; 1024*KB or 1*MB (gives RGSZ7 = 8)
; 2048*KB or 2*MB (gives RGSZ7 = 9)
; 4096*KB or 4*MB (gives RGSZ7 = 10)
; 8192*KB or 8*MB (gives RGSZ7 = 11)
; (RGSZ7 = 12 .. 15 reserved)
;</h>
;
; <h>Definitions for Function Configuration Register FCONCS7
; =======================================================
;
; <q> ENCS7: Enable Chip Select (FCONCS7.0)
_ENCS7 EQU 0 ; 0 = Chip Select 0 disabled /Dave/
; 1 = Chip Select 0 enabled
;
; <q> RDYEN7: Ready Enable (FCONCS7.1)
_RDYEN7 EQU 0 ; 0 = Access time controlled by TCONCS7.PHE1 /Dave/
; 1 = Access time cont. by TCONCS7.PHE1 and READY signal
;
; <o> RDYMOD7: Ready Mode (FCONCS7.2)
; <0=> Asynchronous <1=> Synchronous
_RDYMOD7 EQU 0 ; 0 = Asynchronous READY /Dave/
; 1 = Synchronous READY
;
; <o> BTYP7: Bus Type Selection (FCONCS7.4 .. FCONCS7.5)
; <0=> 8-bit Demultiplexed Bus <1=> 8-bit Multiplexed Bus
; <2=> 16-bit Demultiplexed Bus <3=> 16-bit Multiplexed Bus
_BTYP7 EQU 0 ; 0 = 8 bit Demultiplexed bus /Dave/
; 1 = 8 bit Multiplexed bus
; 2 = 16 bit Demultiplexed bus
; 3 = 16 bit Multiplexed bus
;</h>
;
; <h>TCONCS7: Definitions for the Timing Configuration register
; ==========================================================
;
; <o>PHA7: Phase A clock cycle (TCONCS7.0 .. TCONCS7.1) <0-3>
_PHA7 EQU 0 ; 0 = 0 clock cycles /Dave/
; : = :
; 3 = 3 clock cycles
;
; <o>PHB7: Phase B clock cycle (TCONCS7.2) <1-2> <#-1>
_PHB7 EQU 0 ; 0 = 1 clock cycle /Dave/
; 1 = 2 clock cycles
;
; <o>PHC7: Phase C clock cycle (TCONCS7.3 .. TCONCS7.4) <0-3>
_PHC7 EQU 0 ; 0 = 0 clock cycles /Dave/
; : = :
; 3 = 3 clock cycles
;
; <o>PHD27 Phase D clock cycle (TCONCS2.5) <0-1>
_PHD7 EQU 0 ; 0 = 0 clock cycles /Dave/
; 1 = 1 clock cycle
;
; <o> PHE7: Phase E clock cycle (TCONCS7.6 .. TCONCS7.10) <1-32> <#-1>
_PHE7 EQU 0 ; 0 = 1 clock cycle /Dave/
; : = :
; 31 = 32 clock cycles
;
; <o>RDPHF7: Phase F read clock cycle (TCONCS7.11 .. TCONCS7.12) <0-3>
_RDPHF7 EQU 0 ; 0 = 0 clock cycles /Dave/
; : = :
; 3 = 3 clock cycles
;
; <o>WRPHF7: Phase F write clock cycle (TCONCS7.13 .. TCONCS7.14) <0-3>
_WRPHF7 EQU 0 ; 0 = 0 clock cycles /Dave/
; : = :
; 3 = 3 clock cycles
;</h> </e>
;
; </h>
; <<< end of configuration section >>>
$IF TINY
$SET (DPPUSE = 0)
$ENDIF
$IF NOT TINY
ASSUME DPP3:SYSTEM
ASSUME DPP2:NDATA
$ENDIF
NAME ?C_STARTUP
PUBLIC ?C_STARTUP
PUBLIC ?L?VECSC
?L?VECSC EQU _VECSC ; Interrupt Vector Spacing for L166
$IF MEDIUM OR LARGE OR HLARGE OR XLARGE
Model LIT 'FAR'
$ELSE
Model LIT 'NEAR'
$ENDIF
EXTRN main:Model
PUBLIC ?C_USRSTKBOT
?C_USERSTACK SECTION DATA PUBLIC 'NDATA'
?C_USRSTKBOT:
DS USTSZ ; Size of User Stack
?C_USERSTKTOP:
?C_USERSTACK ENDS
IF UST1SZ > 0 ; Define User Stack 1 area
?C_USERSTACK1 SECTION DATA PUBLIC 'NDATA'
?C_USRSTKBOT1:
DS UST1SZ ; Size of User Stack 1
?C_USERSTKTOP1:
?C_USERSTACK1 ENDS
ENDIF
IF UST2SZ > 0 ; Define User Stack 2 area
?C_USERSTACK2 SECTION DATA PUBLIC 'NDATA'
?C_USRSTKBOT2:
DS UST2SZ ; Size of User Stack 2
?C_USERSTKTOP2:
?C_USERSTACK2 ENDS
ENDIF
$IF NOT TINY
IF (UST1SZ > 0) AND (UST2SZ > 0) ; Define User Stack 1 area
NDATA DGROUP ?C_USERSTACK, ?C_USERSTACK1, ?C_USERSTACK2
ENDIF
IF (UST1SZ > 0) AND (UST2SZ = 0)
NDATA DGROUP ?C_USERSTACK, ?C_USERSTACK1
ENDIF
IF (UST1SZ = 0) AND (UST2SZ > 0)
NDATA DGROUP ?C_USERSTACK, ?C_USERSTACK2
ENDIF
IF (UST1SZ = 0) AND (UST2SZ = 0)
NDATA DGROUP ?C_USERSTACK
ENDIF
$ENDIF
?C_MAINREGISTERS REGDEF R0 - R15
?C_SYSSTACK SECTION DATA PUBLIC '
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -