| 1 |
10 |
robfinch |
|
| 2 |
|
|
FFFFFFFFFFFFF000.0 org 0xFFFF_FFFF_FFFF_F000
|
| 3 |
|
|
FFFFFFFFFFFFF000.0 start:
|
| 4 |
|
|
FFFFFFFFFFFFF000.0 048020013FD ori r1,r0,#5117 ; test data
|
| 5 |
|
|
FFFFFFFFFFFFF000.1 00848000018 sqrt r4,r1
|
| 6 |
|
|
FFFFFFFFFFFFF000.2 00848000018 sqrt r4,r1
|
| 7 |
|
|
FFFFFFFFFFFFF010.0 0480400042B ori r2,r0,#1067
|
| 8 |
|
|
FFFFFFFFFFFFF010.1 01044500018 mulu r5,r1,r2
|
| 9 |
|
|
FFFFFFFFFFFFF010.2 04803D00000 ori r1,r0,#0xFFFF_FFFF_FFD0_0000
|
| 10 |
|
|
FFFFFFFFFFFFF020.0 04804000032 ori r2,r0,#0x32
|
| 11 |
|
|
FFFFFFFFFFFFF020.1 0480600064C ori r3,r0,#1612
|
| 12 |
|
|
FFFFFFFFFFFFF020.2 j1:
|
| 13 |
|
|
FFFFFFFFFFFFF020.2 18844000000 sc r2,[r1]
|
| 14 |
|
|
FFFFFFFFFFFFF030.0 02042000002 addi r1,r1,#2
|
| 15 |
|
|
FFFFFFFFFFFFF030.1 028C6000001 subi r3,r3,#1
|
| 16 |
|
|
FFFFFFFFFFFFF030.2 288C1FFFFFE bne r3,r0,j1
|
| 17 |
|
|
FFFFFFFFFFFFF040.0 0C7FFFFFC16 call Getkey
|
| 18 |
|
|
FFFFFFFFFFFFF040.1 37800000000 nop
|
| 19 |
|
|
FFFFFFFFFFFFF040.2 37800000000 nop
|
| 20 |
|
|
FFFFFFFFFFFFF050.0 37800000000 nop
|
| 21 |
|
|
FFFFFFFFFFFFF050.1 37800000000 nop
|
| 22 |
|
|
|
| 23 |
|
|
FFFFFFFFFFFFF050.2 Getkey:
|
| 24 |
|
|
FFFFFFFFFFFFF050.2 04803DC0000 ori r1,r0,#0xFFFF_FFFF_FFDC_0000
|
| 25 |
|
|
FFFFFFFFFFFFF060.0 sr1:
|
| 26 |
|
|
FFFFFFFFFFFFF060.0 10044000000 lb r2,[r1]
|
| 27 |
|
|
FFFFFFFFFFFFF060.1 2A880000000 bge r2,r0,sr1
|
| 28 |
|
|
FFFFFFFFFFFFF060.2 10040000001 lb r0,1[r1] ; clear keyboard strobe
|
| 29 |
|
|
FFFFFFFFFFFFF070.0 0D83E000000 ret
|
| 30 |
|
|
|
| 31 |
|
|
;==============================================================================
|
| 32 |
|
|
; Checkerboard RAM tester
|
| 33 |
|
|
;==============================================================================
|
| 34 |
|
|
;
|
| 35 |
|
|
FFFFFFFFFFFFF070.1 ramtest:
|
| 36 |
|
|
FFFFFFFFFFFFF070.1 01000800009 or r8,r0,r0 ; r8 = 0
|
| 37 |
|
|
FFFFFFFFFFFFF070.2 3D5552AAAD5
|
| 38 |
|
|
FFFFFFFFFFFFF080.0 04802AA5555 ori r1,r0,#0xAAAA5555AAAA5555 ; checkerboard pattern
|
| 39 |
|
|
FFFFFFFFFFFFF080.1 ramtest2:
|
| 40 |
|
|
FFFFFFFFFFFFF080.1 19A02000000 sw r1,[r8] ; save the checkerboard to memory
|
| 41 |
|
|
FFFFFFFFFFFFF080.2 11A04000000 lw r2,[r8] ; read it back
|
| 42 |
|
|
FFFFFFFFFFFFF090.0 01044300006 cmp r3,r1,r2 ; is it the same ?
|
| 43 |
|
|
FFFFFFFFFFFFF090.1 080C2000008 bnez r3,r0,ramtest1
|
| 44 |
|
|
FFFFFFFFFFFFF090.2 02210000008 addi r8,r8,#8 ; increment RAM pointer
|
| 45 |
|
|
FFFFFFFFFFFFF0A0.0 38000000000
|
| 46 |
|
|
FFFFFFFFFFFFF0A0.1 03207000000 cmpi r3,r8,#0x0000_0000_0100_0000
|
| 47 |
|
|
FFFFFFFFFFFFF0A0.2 080C5FFFFF9 bltz r3,r0,ramtest2
|
| 48 |
|
|
FFFFFFFFFFFFF0B0.0 ramtest1:
|
| 49 |
|
|
FFFFFFFFFFFFF0B0.0 01200A00009 or r10,r8,r0 ; r10 = max ram address
|
| 50 |
|
|
; readback the checkerboard pattern
|
| 51 |
|
|
FFFFFFFFFFFFF0B0.1 01000800009 or r8,r0,r0 ; r8 = 0
|
| 52 |
|
|
FFFFFFFFFFFFF0B0.2 ramtest4:
|
| 53 |
|
|
FFFFFFFFFFFFF0B0.2 11A04000000 lw r2,[r8]
|
| 54 |
|
|
FFFFFFFFFFFFF0C0.0 3D5552AAAD5
|
| 55 |
|
|
FFFFFFFFFFFFF0C0.1 03086AA5555 cmpi r3,r2,#0xAAAA5555AAAA5555
|
| 56 |
|
|
FFFFFFFFFFFFF0C0.2 080C2000009 bnez r3,r0,ramtest3
|
| 57 |
|
|
FFFFFFFFFFFFF0D0.0 02210000008 addi r8,r8,#8
|
| 58 |
|
|
FFFFFFFFFFFFF0D0.1 38000000000
|
| 59 |
|
|
FFFFFFFFFFFFF0D0.2 03207000000 cmpi r3,r8,#0x0000_0000_0100_0000
|
| 60 |
|
|
FFFFFFFFFFFFF0E0.0 080C5FFFFF6 bltz r3,r0,ramtest4
|
| 61 |
|
|
FFFFFFFFFFFFF0E0.1 ramtest3:
|
| 62 |
|
|
FFFFFFFFFFFFF0E0.1 28A1400001E bne r8,r10,ramtest8 ; check for equal maximum address
|
| 63 |
|
|
|
| 64 |
|
|
; perform ramtest again with inverted checkerboard
|
| 65 |
|
|
FFFFFFFFFFFFF0E0.2 01000800009 or r8,r0,r0 ; r8 = 0
|
| 66 |
|
|
FFFFFFFFFFFFF0F0.0 3AAAAD5552A
|
| 67 |
|
|
FFFFFFFFFFFFF0F0.1 0480355AAAA ori r1,r0,#0x5555AAAA5555AAAA
|
| 68 |
|
|
FFFFFFFFFFFFF0F0.2 ramtest5:
|
| 69 |
|
|
FFFFFFFFFFFFF0F0.2 19A02000000 sw r1,[r8]
|
| 70 |
|
|
FFFFFFFFFFFFF100.0 11A04000000 lw r2,[r8]
|
| 71 |
|
|
FFFFFFFFFFFFF100.1 01044300006 cmp r3,r1,r2
|
| 72 |
|
|
FFFFFFFFFFFFF100.2 080C2000009 bnez r3,r0,ramtest6
|
| 73 |
|
|
FFFFFFFFFFFFF110.0 02210000008 addi r8,r8,#8
|
| 74 |
|
|
FFFFFFFFFFFFF110.1 38000000000
|
| 75 |
|
|
FFFFFFFFFFFFF110.2 03207000000 cmpi r3,r8,#0x0000_0000_0100_0000
|
| 76 |
|
|
FFFFFFFFFFFFF120.0 080C5FFFFF6 bltz r3,r0,ramtest5
|
| 77 |
|
|
FFFFFFFFFFFFF120.1 ramtest6:
|
| 78 |
|
|
FFFFFFFFFFFFF120.1 01200B00009 or r11,r8,r0 ; r11 = max ram address
|
| 79 |
|
|
; readback checkerboard
|
| 80 |
|
|
FFFFFFFFFFFFF120.2 01000800009 or r8,r0,r0
|
| 81 |
|
|
FFFFFFFFFFFFF130.0 ramtest7:
|
| 82 |
|
|
FFFFFFFFFFFFF130.0 11A04000000 lw r2,[r8]
|
| 83 |
|
|
FFFFFFFFFFFFF130.1 3AAAAD5552A
|
| 84 |
|
|
FFFFFFFFFFFFF130.2 0308755AAAA cmpi r3,r2,#0x5555AAAA5555AAAA
|
| 85 |
|
|
FFFFFFFFFFFFF140.0 080C2000006 bnez r3,r0,ramtest8
|
| 86 |
|
|
FFFFFFFFFFFFF140.1 02210000008 addi r8,r8,#8
|
| 87 |
|
|
FFFFFFFFFFFFF140.2 38000000000
|
| 88 |
|
|
FFFFFFFFFFFFF150.0 03207000000 cmpi r3,r8,#0x0000_0000_0100_0000
|
| 89 |
|
|
FFFFFFFFFFFFF150.1 080C5FFFFF8 bltz r3,r0,ramtest7
|
| 90 |
|
|
FFFFFFFFFFFFF150.2 ramtest8:
|
| 91 |
|
|
FFFFFFFFFFFFF150.2 28216000005 beq r8,r11,ramtest9
|
| 92 |
|
|
FFFFFFFFFFFFF160.0 01216800014 min r8,r8,r11
|
| 93 |
|
|
FFFFFFFFFFFFF160.1 ramtest9:
|
| 94 |
|
|
FFFFFFFFFFFFF160.1 28214000004 beq r8,r10,ramtest10
|
| 95 |
|
|
FFFFFFFFFFFFF160.2 01214800014 min r8,r8,r10
|
| 96 |
|
|
FFFFFFFFFFFFF170.0 ramtest10:
|
| 97 |
|
|
FFFFFFFFFFFFF170.0 19810000400 sw r8,0x00000400 ;memend
|
| 98 |
|
|
|
| 99 |
|
|
FFFFFFFFFFFFFFC0.0 org 0xFFFF_FFFF_FFFF_FFC0
|
| 100 |
|
|
FFFFFFFFFFFFFFC0.0 37800000000 nop
|
| 101 |
|
|
FFFFFFFFFFFFFFC0.1 37800000000 nop
|
| 102 |
|
|
FFFFFFFFFFFFFFC0.2 37800000000 nop
|
| 103 |
|
|
FFFFFFFFFFFFFFD0.0 37800000000 nop
|
| 104 |
|
|
FFFFFFFFFFFFFFD0.1 37800000000 nop
|
| 105 |
|
|
FFFFFFFFFFFFFFD0.2 37800000000 nop
|
| 106 |
|
|
FFFFFFFFFFFFFFE0.0 37800000000 nop
|
| 107 |
|
|
FFFFFFFFFFFFFFE0.1 37800000000 nop
|
| 108 |
|
|
FFFFFFFFFFFFFFE0.2 37800000000 nop
|
| 109 |
|
|
FFFFFFFFFFFFFFF0.0 org 0xFFFF_FFFF_FFFF_FFF0
|
| 110 |
|
|
FFFFFFFFFFFFFFF0.0 0CFFFFFFC00 jmp start
|
| 111 |
|
|
|
| 112 |
|
|
FFFFFFFFFFFFFFF0.1 00000000000
|
| 113 |
|
|
FFFFFFFFFFFFFFF0.2 00000000000
|