- added main_sim
- added docs git-svn-id: http://moon:8086/svn/vhdl/trunk@1575 cc03376c-175c-47c8-b038-4cd826a8556b
This commit is contained in:
@@ -0,0 +1,212 @@
|
||||
; -------------------------------------------------
|
||||
; Constants
|
||||
; -------------------------------------------------
|
||||
|
||||
; C-register
|
||||
cpu_revision: equ 0x00 ; RO
|
||||
cpu_control: equ 0x01 ; R/W
|
||||
cpu_status: equ 0x02 ; RO
|
||||
cpu_int_ctrl: equ 0x03 ; R/W
|
||||
|
||||
; X-registers
|
||||
reg_btn: equ 0x00 ; RO
|
||||
reg_led: equ 0x01 ; RW
|
||||
reg_dip: equ 0x05 ; RO
|
||||
reg_hwstat: equ 0x0B ; RO
|
||||
|
||||
reg_cred: equ 0x02 ; RW
|
||||
reg_cgrn: equ 0x03 ; RW
|
||||
reg_cblu: equ 0x04 ; RW
|
||||
reg_cg_char_addr: equ 0x08 ; RW
|
||||
reg_cg_line_addr: equ 0x09 ; RW
|
||||
reg_cg_data: equ 0x0A ; RW
|
||||
reg_cg_ctrl: equ 0x0B ; WO
|
||||
|
||||
; External RAM/ROM
|
||||
xmem
|
||||
crlf: dc 13, 10, 0
|
||||
msg_txt1: dc "J-CPU V1.", 0
|
||||
msg_txt2: dc "Ready.", 13, 10, 0
|
||||
msg_txt3: dc "Mimi ist eine liebe Katze !!!", 13, 10, 0
|
||||
|
||||
; -------------------------------------------------
|
||||
; Program
|
||||
; -------------------------------------------------
|
||||
code
|
||||
reset: jmp init
|
||||
|
||||
org 0x001
|
||||
; nop
|
||||
reti
|
||||
|
||||
; -------------------------------------------------
|
||||
; Main
|
||||
; -------------------------------------------------
|
||||
init: xin R0, (reg_hwstat)
|
||||
xout (reg_led), R0
|
||||
and R0, 0x01
|
||||
jz init
|
||||
|
||||
xin R0, (reg_hwstat)
|
||||
xout (reg_led), R0
|
||||
|
||||
loop: call cg_wait_rdy
|
||||
call cg_clr_screen
|
||||
|
||||
mov R0, 0
|
||||
mov R1, 0
|
||||
call cg_set_addr
|
||||
|
||||
; Delay 1s
|
||||
mov R0, 0xE8
|
||||
mov R1, 0x03
|
||||
call delay_ms
|
||||
|
||||
; Print line 0
|
||||
mov R1, msg_txt1
|
||||
call cg_clr_puts
|
||||
cin R0, (cpu_revision)
|
||||
add R0, 0x30
|
||||
call cg_putchar
|
||||
mov R1, crlf
|
||||
call cg_puts
|
||||
|
||||
; Delay 2s
|
||||
mov R0, 0xD0
|
||||
mov R1, 0x07
|
||||
call delay_ms
|
||||
|
||||
; Print line 1
|
||||
mov R1, msg_txt2
|
||||
call cg_clr_puts
|
||||
|
||||
; Delay 0.1s
|
||||
mov R0, 0x64
|
||||
mov R1, 0x00
|
||||
call delay_ms
|
||||
|
||||
; Print line 3
|
||||
mov R0, 0
|
||||
mov R1, 3
|
||||
call cg_set_addr
|
||||
|
||||
mov R1, msg_txt3
|
||||
call cg_clr_puts
|
||||
|
||||
; Delay 1s
|
||||
mov R0, 0xE8
|
||||
mov R1, 0x03
|
||||
call delay_ms
|
||||
|
||||
mov R0, 0
|
||||
mov R1, 10
|
||||
call cg_set_addr
|
||||
|
||||
mov R15, 160
|
||||
fill_lp: tst R15
|
||||
jz ex_fill
|
||||
dec R15
|
||||
mov R1, 48
|
||||
ct_loop: cmp R1, 58
|
||||
jeq ex_ct
|
||||
mov R0, R1
|
||||
inc R1
|
||||
call cg_putchar
|
||||
jmp ct_loop
|
||||
ex_ct: jmp fill_lp
|
||||
ex_fill:
|
||||
; Delay 1s
|
||||
mov R0, 0xE8
|
||||
mov R1, 0x03
|
||||
call delay_ms
|
||||
|
||||
; Clear line at (R1)
|
||||
mov R0, 0
|
||||
mov R1, 12
|
||||
call cg_set_addr
|
||||
call cg_clr_line
|
||||
|
||||
mov R0, 0
|
||||
mov R1, 30
|
||||
call cg_set_addr
|
||||
|
||||
; Print line 1
|
||||
mov R1, msg_txt2
|
||||
call cg_clr_puts
|
||||
|
||||
; Delay 0.1s
|
||||
mov R0, 0x64
|
||||
mov R1, 0x00
|
||||
call delay_ms
|
||||
|
||||
; Print line 1
|
||||
mov R1, msg_txt2
|
||||
call cg_clr_puts
|
||||
|
||||
; Delay 0.1s
|
||||
mov R0, 0x64
|
||||
mov R1, 0x00
|
||||
call delay_ms
|
||||
|
||||
; Print line 1
|
||||
mov R1, msg_txt2
|
||||
call cg_clr_puts
|
||||
|
||||
; Delay 0.1s
|
||||
mov R0, 0x64
|
||||
mov R1, 0x00
|
||||
call delay_ms
|
||||
|
||||
; Print line 1
|
||||
mov R1, msg_txt2
|
||||
call cg_clr_puts
|
||||
|
||||
; Delay 0.1s
|
||||
mov R0, 0x64
|
||||
mov R1, 0x00
|
||||
call delay_ms
|
||||
|
||||
; Print line 1
|
||||
mov R1, msg_txt2
|
||||
call cg_clr_puts
|
||||
|
||||
; Delay 0.1s
|
||||
mov R0, 0x64
|
||||
mov R1, 0x00
|
||||
call delay_ms
|
||||
|
||||
; Print line 1
|
||||
mov R1, msg_txt2
|
||||
call cg_clr_puts
|
||||
|
||||
; Delay 0.1s
|
||||
mov R0, 0x64
|
||||
mov R1, 0x00
|
||||
call delay_ms
|
||||
|
||||
; Print line 1
|
||||
mov R1, msg_txt2
|
||||
call cg_clr_puts
|
||||
|
||||
; Delay 0.1s
|
||||
mov R0, 0x64
|
||||
mov R1, 0x00
|
||||
call delay_ms
|
||||
|
||||
; Print line 1
|
||||
mov R1, msg_txt2
|
||||
call cg_clr_puts
|
||||
|
||||
; Delay 1s
|
||||
mov R0, 0xe8
|
||||
mov R1, 0x03
|
||||
call delay_ms
|
||||
|
||||
jmp loop
|
||||
|
||||
delay_ms: nop
|
||||
ret
|
||||
|
||||
; -------------------------------------------------
|
||||
include "../../../lib/jasm/delays.inc.jsm"
|
||||
include "../../../lib/jasm/cg.inc.jsm"
|
||||
Reference in New Issue
Block a user