OpenCores
URL https://opencores.org/ocsvn/tv80/tv80/trunk

Subversion Repositories tv80

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /
    from Rev 33 to Rev 34
    Reverse comparison

Rev 33 → Rev 34

/trunk/tests/otir.asm
0,0 → 1,118
; basic test of OTIR block-transfer instruction
;
; initializes a memory region and then transfers that region
; to an accumulator
 
.module otir
 
;--------------------------------------------------------
; special function registers
;--------------------------------------------------------
_sim_ctl_port = 0x0080
_msg_port = 0x0081
_timeout_port = 0x0082
_max_timeout_low = 0x0083
_max_timeout_high = 0x0084
_intr_cntdwn = 0x0090
_cksum_value = 0x0091
_cksum_accum = 0x0092
_inc_on_read = 0x0093
 
.area INIT (ABS)
.org 0
 
jp init
 
 
init:
ld sp, #0xffff
 
;; initialize dbuf memory area with regular pattern
;; pattern starts with 1 and increments
 
ld hl, #dbuf
ld b, #255
ld c, #1
 
dbuf_init:
ld (hl), c
inc hl
inc c
djnz dbuf_init
 
call reset_timeout
ld b, #16
call xfer_test
 
call reset_timeout
ld b, #63
call xfer_test
 
call reset_timeout
ld b, #127
call xfer_test
 
call reset_timeout
ld b, #128
call xfer_test
 
call reset_timeout
ld b, #254
call xfer_test
 
call reset_timeout
ld b, #255
call xfer_test
 
;; finish simulation with test passed
ld a, #1
out (_sim_ctl_port), a
ret
;; test sending X amount of data from the buffer to the
;; accumulator. Amount of data to transfer is in B.
;; After tranferring data to checksummer, perform
;; checksum and compare
xfer_test:
push bc
ld hl, #dbuf
ld a, #0
out (_cksum_value), a
 
ld c, #_cksum_accum
otir
 
;; do checksum over same region
pop bc
ld hl, #dbuf
ld a, #0
xfer_test_cksum:
add a, (hl)
inc hl
djnz xfer_test_cksum
;; store calc'ed checksum in D and read out cksum register
ld d, a
in a, (_cksum_value)
 
;; compare two values and fail test if not equal
cp d
jp nz, xfer_fail
ret
 
xfer_fail:
ld a, #2
out (_sim_ctl_port), a
ret
 
reset_timeout:
ld a, #2
out (_timeout_port), a
ret
.org 0x8000
 
dbuf:
.ds 256
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.