| 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
 |