; MMU Testprogram 00000000 7FAAD0000010 jump @x'10000010 ; Enable DRAM at address 0 .align 16 ; Build up 00000010 6FA600000AFF lprd cfg,x'AFF 00000016 EFA4000001FC lprd sp,x'1FC ; System Stackpointer 0000001C D7A50B0051D0 movd x'B0051D0,TOS ; PSR and Module 00000022 D7A501807FF0 movd x'1807FF0,TOS ; Jump to USER program 00000028 E7DD80A7 addr procexit,tos 0000002C 57A5001234568600 movd x'123456,@x'600 ; Data ... 00000034 6FA700000200 lprd intbase,x'200 0000003A DFAB00 movqd 7,@0 ; Level 1 USER MOD 0000003D DFAB14 movqd 7,@x'14 ; Level 2 USER MOD 00000040 DFAB18 movqd 7,@x'18 ; Level 1 USER Programm 00000043 DFAB1C movqd 7,@x'1C ; Level 2 USER Programm 00000046 5FA820 movqd 0,@x'20 ; next Page not there ! 00000049 57A50000100780EC movd x'1007,@x'EC ; Level 1 USER Data 00000051 CE43DD808F80F008 movmd zero,@x'F0,3 ; Level 2 User Data set to 0 00000059 57A50000218780FC movd x'2187,@x'FC ; Level 2 USER Data : Stack 00000061 1E8BA400000005 lmr mcr,5 ; DS and TU 00000068 1E8BA6000A2000 lmr ptb1,x'A2000 ; does not matter ... but better visible 0000006F 57A50001238081D0 movd x'12380,@x'1D0 ; SB USER Modul 00000077 57A5000002308208 movd x'000230,@x'208 ; ABORT Vector 0000007F 57A5002002308200 movd x'200230,@x'200 ; Interrupt Vector 00000087 57A5000537C08230 movd x'537C0,@x'230 ; SB Supervisor Modul 0000008F 57A5000000808238 movd x'80,@x'238 ; Program Base 00000097 5FA880E0 movqd 0,@x'E0 ; Page-Table Pointer ; load programcode in RAM : 0000009B 67D88055 addr pages,r1 0000009F CE99A00070 movzwd x'70,r2 000000A4 CE18A00A movzbd 10,r0 000000A8 0E0300 movsd 000000AB CE43DD80658FF00C movmd use,@x'FF0,4 000000B3 DFAF80E8 movqd -1,@x'E8 ; for writing ... 000000B7 1200 ret 0 .align 16 000000C0 00 .byte 0 .align 8 000000C8 00000000000000 .byte 0,0,0,0,0,0,0 procexit: 000000CF 4204 rett 4 ; now start the test .align 16 000000E0 0000000000000000 zero: .double 0,0,0,0 0000000000000000 ; ABORT Service Routine at x'80 000000F0 0720000007300000 pages: .double x'2007,x'3007,x'4007,x'5007 0740000007500000 00000100 6207 abo: save [r0,r1,r2] 00000102 57C80C movd 12(sp),r1 always: 00000105 8F00 addqd 1,r0 00000107 EA7E br always ; User Program at x'FF0 .align 16 00000110 D7A112345678 use: movd x'12345678,r7 00000116 95A10064 movw 100,r6 0000011A 14A021 movb '!',r0 0000011D 67D0BCE0 addr -800(sb),r1 .align 16 ; only for example 00000130 00000000F0B34A41 .long 3.5e6