
S1C88348/317/316/308 TECHNICAL SOFTWARE
EPSON
II-3
1 SYSTEM INITIALIZATION
Source List
Initialization for S1C88316 single chip mode
external
initialize,watchdog_reset
external
user_program
public
mainrt
;
reset_vector
equ
000000h
;reset vector address
main
equ
000100h
;program start address offset
;
br_io
equ
0ffh
;base reg. address (set i/o area)
mcu
equ
00ff00h
;mcu mode system control address
spp
equ
00ff01h
;stack pointer page address
mode
equ
00ff02h
;mpu//mcu mode control address
;
sp_316
equ
00f800h
;e0c88316 stack pointer top address
;
internal_ram
equ
00f000h
;e0c88316 internal ram top address
;
lcdram_top
equ
00f800h
;lcd ram top address
lcdram_end
equ
00fd43h
;lcd ram end address
;
code
intr_vectors:
org
intr_vectors+reset_vector
dw
mainrt
;initial reset program address
;
org
intr_vectors+main
;************************************************************************
;*
*
;*
s1c88316 mcu single-chip mode initialize
*
;*
*
;************************************************************************
mainrt:
ld
br,#br_io
;set br reg. address to 0ffxxh
ld
[br:low mcu],#00110000b
;single chip mode, /ce3-/ce0 disable
ld
[br:low spp],#00h
;set stack pointer page to 0
ld
sp,#lod sp_316
;satck pointer top address set
ld
[br:low mode],#00000000b
;set mode reg.
ld
ba,#0000h
;internal reg. clear
ld
hl,#0000h
ld
ix,#0000h
;internal ram clear
carl
watchdog_reset
;watchdog timer reset ***
ld
iy,#lod internal_ram
;e0c88316 internal ram top address
mainrt00:
ld
[iy],a
;clear data set
inc
iy
;poniter increment
cp
iy,#lod internal_ram+0800h
;internal ram end ?
jrs
nz,mainrt00
;lcd ram clear including ignore area
carl
watchdog_reset
;watchdog timer reset ***
ld
iy,#lod lcdram_top
;lcd ram top address
mainrt01:
ld
[iy],a
;clear data set
inc
iy
;pointer increment
cp
iy,#lod lcdram_end
;lcd rasm end ?
jrs
nz,mainrt01
;
carl
initialize
;initialize i/o area ***
jrl
user_program
;jump user program
;
;start user program
;
end