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

Subversion Repositories raptor64

[/] [raptor64/] [trunk/] [software/] [sample code/] [bootrom.s] - Blame information for rev 16

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 10 robfinch
 
2
        org 0xFFFF_FFFF_FFFF_F000
3
start:
4
        ori             r1,r0,#5117             ; test data
5
        sqrt    r4,r1
6
        sqrt    r4,r1
7
        ori             r2,r0,#1067
8
        mulu    r5,r1,r2
9
        ori             r1,r0,#0xFFFF_FFFF_FFD0_0000
10
        ori     r2,r0,#0x32
11
        ori     r3,r0,#1612
12
j1:
13
        sc              r2,[r1]
14
        addi    r1,r1,#2
15
        subi    r3,r3,#1
16
        bne             r3,r0,j1
17
        call    Getkey
18
        nop
19
        nop
20
        nop
21
        nop
22
 
23
Getkey:
24
        ori             r1,r0,#0xFFFF_FFFF_FFDC_0000
25
sr1:
26
        lb              r2,[r1]
27
        bge             r2,r0,sr1
28
        lb              r0,1[r1]                ; clear keyboard strobe
29
        ret
30
 
31
;==============================================================================
32
; Checkerboard RAM tester
33
;==============================================================================
34
;
35
ramtest:
36
        or              r8,r0,r0                ; r8 = 0
37
        ori             r1,r0,#0xAAAA5555AAAA5555       ; checkerboard pattern
38
ramtest2:
39
        sw              r1,[r8]                 ; save the checkerboard to memory
40
        lw              r2,[r8]                 ; read it back
41
        cmp             r3,r1,r2                ; is it the same ?
42
        bnez    r3,r0,ramtest1
43
        addi    r8,r8,#8                ; increment RAM pointer
44
        cmpi    r3,r8,#0x0000_0000_0100_0000
45
        bltz    r3,r0,ramtest2
46
ramtest1:
47
        or              r10,r8,r0               ; r10 = max ram address
48
        ; readback the checkerboard pattern
49
        or              r8,r0,r0                ; r8 = 0
50
ramtest4:
51
        lw              r2,[r8]
52
        cmpi    r3,r2,#0xAAAA5555AAAA5555
53
        bnez    r3,r0,ramtest3
54
        addi    r8,r8,#8
55
        cmpi    r3,r8,#0x0000_0000_0100_0000
56
        bltz    r3,r0,ramtest4
57
ramtest3:
58
        bne             r8,r10,ramtest8 ; check for equal maximum address
59
 
60
        ; perform ramtest again with inverted checkerboard
61
        or              r8,r0,r0                ; r8 = 0
62
        ori             r1,r0,#0x5555AAAA5555AAAA
63
ramtest5:
64
        sw              r1,[r8]
65
        lw              r2,[r8]
66
        cmp             r3,r1,r2
67
        bnez    r3,r0,ramtest6
68
        addi    r8,r8,#8
69
        cmpi    r3,r8,#0x0000_0000_0100_0000
70
        bltz    r3,r0,ramtest5
71
ramtest6:
72
        or              r11,r8,r0               ; r11 = max ram address
73
        ; readback checkerboard
74
        or              r8,r0,r0
75
ramtest7:
76
        lw              r2,[r8]
77
        cmpi    r3,r2,#0x5555AAAA5555AAAA
78
        bnez    r3,r0,ramtest8
79
        addi    r8,r8,#8
80
        cmpi    r3,r8,#0x0000_0000_0100_0000
81
        bltz    r3,r0,ramtest7
82
ramtest8:
83
        beq             r8,r11,ramtest9
84
        min             r8,r8,r11
85
ramtest9:
86
        beq             r8,r10,ramtest10
87
        min             r8,r8,r10
88
ramtest10:
89
        sw              r8,0x00000400   ;memend
90
 
91
        org             0xFFFF_FFFF_FFFF_FFC0
92
        nop
93
        nop
94
        nop
95
        nop
96
        nop
97
        nop
98
        nop
99
        nop
100
        nop
101
        org             0xFFFF_FFFF_FFFF_FFF0
102
        jmp             start

powered by: WebSVN 2.1.0

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