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

Subversion Repositories raptor64

[/] [raptor64/] [trunk/] [software/] [sample code/] [bootrom.lst] - Rev 16

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

                                                
FFFFFFFFFFFFF000.0                                      org 0xFFFF_FFFF_FFFF_F000
FFFFFFFFFFFFF000.0                               start:
FFFFFFFFFFFFF000.0      048020013FD                     ori             r1,r0,#5117             ; test data
FFFFFFFFFFFFF000.1      00848000018                     sqrt    r4,r1
FFFFFFFFFFFFF000.2      00848000018                     sqrt    r4,r1
FFFFFFFFFFFFF010.0      0480400042B                     ori             r2,r0,#1067
FFFFFFFFFFFFF010.1      01044500018                     mulu    r5,r1,r2
FFFFFFFFFFFFF010.2      04803D00000                     ori             r1,r0,#0xFFFF_FFFF_FFD0_0000
FFFFFFFFFFFFF020.0      04804000032                     ori     r2,r0,#0x32
FFFFFFFFFFFFF020.1      0480600064C                     ori     r3,r0,#1612
FFFFFFFFFFFFF020.2                               j1:
FFFFFFFFFFFFF020.2      18844000000                     sc              r2,[r1]
FFFFFFFFFFFFF030.0      02042000002                     addi    r1,r1,#2
FFFFFFFFFFFFF030.1      028C6000001                     subi    r3,r3,#1
FFFFFFFFFFFFF030.2      288C1FFFFFE                     bne             r3,r0,j1
FFFFFFFFFFFFF040.0      0C7FFFFFC16                     call    Getkey
FFFFFFFFFFFFF040.1      37800000000                     nop
FFFFFFFFFFFFF040.2      37800000000                     nop
FFFFFFFFFFFFF050.0      37800000000                     nop
FFFFFFFFFFFFF050.1      37800000000                     nop
                                                        
FFFFFFFFFFFFF050.2                               Getkey:
FFFFFFFFFFFFF050.2      04803DC0000                     ori             r1,r0,#0xFFFF_FFFF_FFDC_0000
FFFFFFFFFFFFF060.0                               sr1:
FFFFFFFFFFFFF060.0      10044000000                     lb              r2,[r1]
FFFFFFFFFFFFF060.1      2A880000000                     bge             r2,r0,sr1
FFFFFFFFFFFFF060.2      10040000001                     lb              r0,1[r1]                ; clear keyboard strobe
FFFFFFFFFFFFF070.0      0D83E000000                     ret
                                                 
                                                 ;==============================================================================
                                                 ; Checkerboard RAM tester
                                                 ;==============================================================================
                                                 ;
FFFFFFFFFFFFF070.1                               ramtest:
FFFFFFFFFFFFF070.1      01000800009                     or              r8,r0,r0                ; r8 = 0
FFFFFFFFFFFFF070.2      3D5552AAAD5     
FFFFFFFFFFFFF080.0      04802AA5555                     ori             r1,r0,#0xAAAA5555AAAA5555       ; checkerboard pattern
FFFFFFFFFFFFF080.1                               ramtest2:
FFFFFFFFFFFFF080.1      19A02000000                     sw              r1,[r8]                 ; save the checkerboard to memory
FFFFFFFFFFFFF080.2      11A04000000                     lw              r2,[r8]                 ; read it back
FFFFFFFFFFFFF090.0      01044300006                     cmp             r3,r1,r2                ; is it the same ?
FFFFFFFFFFFFF090.1      080C2000008                     bnez    r3,r0,ramtest1
FFFFFFFFFFFFF090.2      02210000008                     addi    r8,r8,#8                ; increment RAM pointer
FFFFFFFFFFFFF0A0.0      38000000000     
FFFFFFFFFFFFF0A0.1      03207000000                     cmpi    r3,r8,#0x0000_0000_0100_0000
FFFFFFFFFFFFF0A0.2      080C5FFFFF9                     bltz    r3,r0,ramtest2
FFFFFFFFFFFFF0B0.0                               ramtest1:
FFFFFFFFFFFFF0B0.0      01200A00009                     or              r10,r8,r0               ; r10 = max ram address
                                                        ; readback the checkerboard pattern
FFFFFFFFFFFFF0B0.1      01000800009                     or              r8,r0,r0                ; r8 = 0
FFFFFFFFFFFFF0B0.2                               ramtest4:
FFFFFFFFFFFFF0B0.2      11A04000000                     lw              r2,[r8]
FFFFFFFFFFFFF0C0.0      3D5552AAAD5     
FFFFFFFFFFFFF0C0.1      03086AA5555                     cmpi    r3,r2,#0xAAAA5555AAAA5555
FFFFFFFFFFFFF0C0.2      080C2000009                     bnez    r3,r0,ramtest3
FFFFFFFFFFFFF0D0.0      02210000008                     addi    r8,r8,#8
FFFFFFFFFFFFF0D0.1      38000000000     
FFFFFFFFFFFFF0D0.2      03207000000                     cmpi    r3,r8,#0x0000_0000_0100_0000
FFFFFFFFFFFFF0E0.0      080C5FFFFF6                     bltz    r3,r0,ramtest4
FFFFFFFFFFFFF0E0.1                               ramtest3:
FFFFFFFFFFFFF0E0.1      28A1400001E                     bne             r8,r10,ramtest8 ; check for equal maximum address
                                                 
                                                        ; perform ramtest again with inverted checkerboard
FFFFFFFFFFFFF0E0.2      01000800009                     or              r8,r0,r0                ; r8 = 0
FFFFFFFFFFFFF0F0.0      3AAAAD5552A     
FFFFFFFFFFFFF0F0.1      0480355AAAA                     ori             r1,r0,#0x5555AAAA5555AAAA
FFFFFFFFFFFFF0F0.2                               ramtest5:
FFFFFFFFFFFFF0F0.2      19A02000000                     sw              r1,[r8]
FFFFFFFFFFFFF100.0      11A04000000                     lw              r2,[r8]
FFFFFFFFFFFFF100.1      01044300006                     cmp             r3,r1,r2
FFFFFFFFFFFFF100.2      080C2000009                     bnez    r3,r0,ramtest6
FFFFFFFFFFFFF110.0      02210000008                     addi    r8,r8,#8
FFFFFFFFFFFFF110.1      38000000000     
FFFFFFFFFFFFF110.2      03207000000                     cmpi    r3,r8,#0x0000_0000_0100_0000
FFFFFFFFFFFFF120.0      080C5FFFFF6                     bltz    r3,r0,ramtest5
FFFFFFFFFFFFF120.1                               ramtest6:
FFFFFFFFFFFFF120.1      01200B00009                     or              r11,r8,r0               ; r11 = max ram address
                                                        ; readback checkerboard
FFFFFFFFFFFFF120.2      01000800009                     or              r8,r0,r0
FFFFFFFFFFFFF130.0                               ramtest7:
FFFFFFFFFFFFF130.0      11A04000000                     lw              r2,[r8]
FFFFFFFFFFFFF130.1      3AAAAD5552A     
FFFFFFFFFFFFF130.2      0308755AAAA                     cmpi    r3,r2,#0x5555AAAA5555AAAA
FFFFFFFFFFFFF140.0      080C2000006                     bnez    r3,r0,ramtest8
FFFFFFFFFFFFF140.1      02210000008                     addi    r8,r8,#8
FFFFFFFFFFFFF140.2      38000000000     
FFFFFFFFFFFFF150.0      03207000000                     cmpi    r3,r8,#0x0000_0000_0100_0000
FFFFFFFFFFFFF150.1      080C5FFFFF8                     bltz    r3,r0,ramtest7
FFFFFFFFFFFFF150.2                               ramtest8:
FFFFFFFFFFFFF150.2      28216000005                     beq             r8,r11,ramtest9
FFFFFFFFFFFFF160.0      01216800014                     min             r8,r8,r11
FFFFFFFFFFFFF160.1                               ramtest9:
FFFFFFFFFFFFF160.1      28214000004                     beq             r8,r10,ramtest10
FFFFFFFFFFFFF160.2      01214800014                     min             r8,r8,r10
FFFFFFFFFFFFF170.0                               ramtest10:
FFFFFFFFFFFFF170.0      19810000400                     sw              r8,0x00000400   ;memend
                                                        
FFFFFFFFFFFFFFC0.0                                      org             0xFFFF_FFFF_FFFF_FFC0
FFFFFFFFFFFFFFC0.0      37800000000                     nop
FFFFFFFFFFFFFFC0.1      37800000000                     nop
FFFFFFFFFFFFFFC0.2      37800000000                     nop
FFFFFFFFFFFFFFD0.0      37800000000                     nop
FFFFFFFFFFFFFFD0.1      37800000000                     nop
FFFFFFFFFFFFFFD0.2      37800000000                     nop
FFFFFFFFFFFFFFE0.0      37800000000                     nop
FFFFFFFFFFFFFFE0.1      37800000000                     nop
FFFFFFFFFFFFFFE0.2      37800000000                     nop
FFFFFFFFFFFFFFF0.0                                      org             0xFFFF_FFFF_FFFF_FFF0
FFFFFFFFFFFFFFF0.0      0CFFFFFFC00                     jmp             start
                                                 
FFFFFFFFFFFFFFF0.1      00000000000              
FFFFFFFFFFFFFFF0.2      00000000000              

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

powered by: WebSVN 2.1.0

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