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

Subversion Repositories eco32

[/] [eco32/] [trunk/] [simtest/] [rom/] [rom06.s] - Diff between revs 9 and 25

Go to most recent revision | Only display areas with differences | Details | Blame | View Log

Rev 9 Rev 25
;
;
; rom06.s -- "crossed" echo with two terminals, polled
; rom06.s -- "crossed" echo with two terminals, polled
;
;
 
 
        .set    tba,0xF0300000  ; terminal base address
        .set    tba0,0xF0300000 ; terminal base address 0
 
        .set    tba1,0xF0301000 ; terminal base address 1
 
 
        add     $8,$0,tba        ; set terminal base address
        add     $8,$0,tba0       ; set $8 to terminal base address 0
 
        add     $9,$0,tba1       ; set $9 to terminal base address 1
L1:
L1:
        ldw     $9,$8,0          ; load receiver status into $9
        ldw     $10,$8,0 ; load receiver status into $10
        and     $9,$9,1         ; check receiver ready
        and     $10,$10,1       ; check receiver ready
        beq     $9,$0,L3 ; not ready - check other terminal
        beq     $10,$0,L3        ; not ready - check other terminal
        ldw     $10,$8,4        ; load receiver data into $10
        ldw     $11,$8,4        ; load receiver data into $11
L2:
L2:
        ldw     $9,$8,24        ; load transmitter status into $9
        ldw     $10,$9,8        ; load transmitter status into $10
        and     $9,$9,1         ; check transmitter ready
        and     $10,$10,1       ; check transmitter ready
        beq     $9,$0,L2 ; loop while not ready
        beq     $10,$0,L2        ; loop while not ready
        stw     $10,$8,28       ; load char into transmitter data
        stw     $11,$9,12       ; load char into transmitter data
L3:
L3:
        ldw     $9,$8,16        ; load receiver status into $9
        ldw     $10,$9,0 ; load receiver status into $10
        and     $9,$9,1         ; check receiver ready
        and     $10,$10,1       ; check receiver ready
        beq     $9,$0,L1 ; not ready - check other terminal
        beq     $10,$0,L1        ; not ready - check other terminal
        ldw     $10,$8,20       ; load receiver data into $10
        ldw     $11,$9,4        ; load receiver data into $11
L4:
L4:
        ldw     $9,$8,8         ; load transmitter status into $9
        ldw     $10,$8,8        ; load transmitter status into $10
        and     $9,$9,1         ; check transmitter ready
        and     $10,$10,1       ; check transmitter ready
        beq     $9,$0,L4 ; loop while not ready
        beq     $10,$0,L4        ; loop while not ready
        stw     $10,$8,12       ; load char into transmitter data
        stw     $11,$8,12       ; load char into transmitter data
        j       L1              ; all over again
        j       L1              ; all over again
 
 

powered by: WebSVN 2.1.0

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