; Test program for prfs and grfs ; The test is successful (no errors) if the output is 0s. #ifdef cpu0 #def NXT=0xA22 #def ITS=0xA20 #endif #ifdef cpu1 #def NXT=0xA24 #def ITS=0xA22 #endif #ifdef cpu2 #def NXT=0xA26 #def ITS=0xA24 #endif nop #ifdef cpu0 mov c0 r0 sgio r0 0xC00 ; error indicator for r0 -g0 pare jmpr cc_busy 0 sgio r0 0xC01 ; error indicator for r1 -g1 pare jmpr cc_busy 0 sgio r0 0xC02 ; error indicator for r2 -g2 pare jmpr cc_busy 0 sgio r0 0xC03 ; error indicator for r3 -g3 pare jmpr cc_busy 0 sgio r0 0xC08 ; error indicator for r4 -g4 pare jmpr cc_busy 0 sgio r0 0xC09 ; error indicator for r5 -g5 pare jmpr cc_busy 0 sgio r0 0xC0A ; error indicator for r6 -g6 pare jmpr cc_busy 0 sgio r0 0xC0B ; error indicator for r7 -g7 pare jmpr cc_busy 0 sgio r0 0xC10 ; error indicator for r8 -g8 pare jmpr cc_busy 0 sgio r0 0xC11 ; error indicator for r9 -g9 pare jmpr cc_busy 0 sgio r0 0xC12 ; error indicator for r10 -g10 pare jmpr cc_busy 0 sgio r0 0xC13 ; error indicator for r11 -g11 pare jmpr cc_busy 0 sgio r0 0xC18 ; error indicator for r12 -g12 pare jmpr cc_busy 0 sgio r0 0xC19 ; error indicator for r13 -g13 pare jmpr cc_busy 0 sgio r0 0xC1A ; error indicator for r14 -g14 pare jmpr cc_busy 0 sgio r0 0xC1B ; error indicator for r15 -g15 pare jmpr cc_busy 0 #else nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop #endif mov c1 g0 shl 1 c1 g1 shl 2 c1 g2 shl 3 c1 g3 shl 4 c1 g4 shl 5 c1 g5 shl 6 c1 g6 shl 7 c1 g7 shl 8 c1 g8 shl 9 c1 g9 shl 10 c1 g10 shl 11 c1 g11 shl 12 c1 g12 shl 13 c1 g13 shl 14 c1 g14 shl 15 c1 g15 mov c1 r0 shl 1 c1 r1 shl 2 c1 r2 shl 3 c1 r3 shl 4 c1 r4 shl 5 c1 r5 shl 6 c1 r6 shl 7 c1 r7 shl 8 c1 r8 shl 9 c1 r9 shl 10 c1 r10 shl 11 c1 r11 shl 12 c1 r12 shl 13 c1 r13 shl 14 c1 r14 shl 15 c1 r15 comp: cmp r0 g0 jmpr cc_zero 2 sgio r0 0xC00 com r0 r0 com g0 g0 cmp r0 g0 jmpr cc_busy 0 jmpr cc_zero 2 sgio r0 0xC00 com r0 r0 com g0 g0 cmp r1 g1 jmpr cc_busy 0 jmpr cc_zero 2 sgio r1 0xC01 com r1 r1 com g1 g1 cmp r1 g1 jmpr cc_busy 0 jmpr cc_zero 2 sgio r1 0xC01 com r1 r1 com g1 g1 cmp r2 g2 jmpr cc_busy 0 jmpr cc_zero 2 sgio r2 0xC02 com r2 r2 com g2 g2 cmp r2 g2 jmpr cc_busy 0 jmpr cc_zero 2 sgio r2 0xC02 com r2 r2 com g2 g2 cmp r3 g3 jmpr cc_busy 0 jmpr cc_zero 2 sgio r3 0xC03 com r3 r3 com g3 g3 cmp r3 g3 jmpr cc_busy 0 jmpr cc_zero 2 sgio r3 0xC03 com r3 r3 com g3 g3 cmp r4 g4 jmpr cc_busy 0 jmpr cc_zero 2 sgio r4 0xC08 com r4 r4 com g4 g4 cmp r4 g4 jmpr cc_busy 0 jmpr cc_zero 2 sgio r4 0xC08 com r4 r4 com g4 g4 cmp r5 g5 jmpr cc_busy 0 jmpr cc_zero 2 sgio r5 0xC09 com r5 r5 com g5 g5 cmp r5 g5 jmpr cc_busy 0 jmpr cc_zero 2 sgio r5 0xC09 com r5 r5 com g5 g5 cmp r6 g6 jmpr cc_busy 0 jmpr cc_zero 2 sgio r6 0xC0A com r6 r6 com g6 g6 cmp r6 g6 jmpr cc_busy 0 jmpr cc_zero 2 sgio r6 0xC0A com r6 r6 com g6 g6 cmp r7 g7 jmpr cc_busy 0 jmpr cc_zero 2 sgio r7 0xC0B com r7 r7 com g7 g7 cmp r7 g7 jmpr cc_busy 0 jmpr cc_zero 2 sgio r7 0xC0B com r7 r7 com g7 g7 cmp r8 g8 jmpr cc_busy 0 jmpr cc_zero 2 sgio r8 0xC10 com r8 r8 com g8 g8 cmp r8 g8 jmpr cc_busy 0 jmpr cc_zero 2 sgio r8 0xC10 com r8 r8 com g8 g8 cmp r9 g9 jmpr cc_busy 0 jmpr cc_zero 2 sgio r9 0xC11 com r9 r9 com g9 g9 cmp r9 g9 jmpr cc_busy 0 jmpr cc_zero 2 sgio r9 0xC11 com r9 r9 com g9 g9 cmp r10 g10 jmpr cc_busy 0 jmpr cc_zero 2 sgio r10 0xC12 com r10 r10 com g10 g10 cmp r10 g10 jmpr cc_busy 0 jmpr cc_zero 2 sgio r10 0xC12 com r10 r10 com g10 g10 cmp r11 g11 jmpr cc_busy 0 jmpr cc_zero 2 sgio r11 0xC13 com r11 r11 com g11 g11 cmp r11 g11 jmpr cc_busy 0 jmpr cc_zero 2 sgio r11 0xC13 com r11 r11 com g11 g11 cmp r12 g12 jmpr cc_busy 0 jmpr cc_zero 2 sgio r12 0xC18 com r12 r12 com g12 g12 cmp r12 g12 jmpr cc_busy 0 jmpr cc_zero 2 sgio r12 0xC18 com r12 r12 com g12 g12 cmp r13 g13 jmpr cc_busy 0 jmpr cc_zero 2 sgio r13 0xC19 com r13 r13 com g13 g13 cmp r13 g13 jmpr cc_busy 0 jmpr cc_zero 2 sgio r13 0xC19 com r13 r13 com g13 g13 cmp r14 g14 jmpr cc_busy 0 jmpr cc_zero 2 sgio r14 0xC1A com r14 r14 com g14 g14 cmp r14 g14 jmpr cc_busy 0 jmpr cc_zero 2 sgio r14 0xC1A com r14 r14 com g14 g14 cmp r15 g15 jmpr cc_busy 0 jmpr cc_zero 2 sgio r15 0xC1B com r15 r15 com g15 g15 cmp r15 g15 jmpr cc_busy 0 jmpr cc_zero 2 sgio r15 0xC1B com r15 r15 com g15 g15 shl 1 g0 g0 shl 1 r0 r0 jmp cc_carry izh shl 1 g1 g1 shl 1 r1 r1 jmpr cc_ncarry 3 mov c1 g1 mov c1 r1 shl 1 g2 g2 shl 1 r2 r2 jmpr cc_ncarry 3 mov c1 g2 mov c1 r2 shl 1 g3 g3 shl 1 r3 r3 jmpr cc_ncarry 3 mov c1 g3 mov c1 r3 shl 1 g4 g4 shl 1 r4 r4 jmpr cc_ncarry 3 mov c1 g4 mov c1 r4 shl 1 g5 g5 shl 1 r5 r5 jmpr cc_ncarry 3 mov c1 g5 mov c1 r5 shl 1 g6 g6 shl 1 r6 r6 jmpr cc_ncarry 3 mov c1 g6 mov c1 r6 shl 1 g7 g7 shl 1 r7 r7 jmpr cc_ncarry 3 mov c1 g7 mov c1 r7 shl 1 g8 g8 shl 1 r8 r8 jmpr cc_ncarry 3 mov c1 g8 mov c1 r8 shl 1 g9 g9 shl 1 r9 r9 jmpr cc_ncarry 3 mov c1 g9 mov c1 r9 shl 1 g10 g10 shl 1 r10 r10 jmpr cc_ncarry 3 mov c1 g10 mov c1 r10 shl 1 g11 g11 shl 1 r11 r11 jmpr cc_ncarry 3 mov c1 g11 mov c1 r11 shl 1 g12 g12 shl 1 r12 r12 jmpr cc_ncarry 3 mov c1 g12 mov c1 r12 shl 1 g13 g13 shl 1 r13 r13 jmpr cc_ncarry 3 mov c1 g13 mov c1 r13 shl 1 g14 g14 shl 1 r14 r14 jmpr cc_ncarry 3 mov c1 g14 mov c1 r14 shl 1 g15 g15 shl 1 r15 r15 jmpr cc_ncarry 3 mov c1 g15 mov c1 r15 jmp cc_uncond comp izh: nop mov c1 g0 shl 1 c1 g1 shl 2 c1 g2 shl 3 c1 g3 shl 4 c1 g4 shl 5 c1 g5 shl 6 c1 g6 shl 7 c1 g7 mov c1 r0 shl 1 c1 r1 shl 2 c1 r2 shl 3 c1 r3 shl 4 c1 r4 shl 5 c1 r5 shl 6 c1 r6 shl 7 c1 r7 cmpm: cmp r0 g0 jmpr cc_busy 0 jmpr cc_zero 2 sgio r0 0xC00 com r0 r0 com g0 g0 cmp r0 g0 jmpr cc_busy 0 jmpr cc_zero 2 sgio r0 0xC00 com r0 r0 com g0 g0 cmp r1 g1 jmpr cc_busy 0 jmpr cc_zero 2 sgio r1 0xC01 com r1 r1 com g1 g1 cmp r1 g1 jmpr cc_busy 0 jmpr cc_zero 2 sgio r1 0xC01 com r1 r1 com g1 g1 cmp r2 g2 jmpr cc_busy 0 jmpr cc_zero 2 sgio r2 0xC02 com r2 r2 com g2 g2 cmp r2 g2 jmpr cc_busy 0 jmpr cc_zero 2 sgio r2 0xC02 com r2 r2 com g2 g2 cmp r3 g3 jmpr cc_busy 0 jmpr cc_zero 2 sgio r3 0xC03 com r3 r3 com g3 g3 cmp r3 g3 jmpr cc_busy 0 jmpr cc_zero 2 sgio r3 0xC03 com r3 r3 com g3 g3 cmp r4 g4 jmpr cc_busy 0 jmpr cc_zero 2 sgio r4 0xC08 com r4 r4 com g4 g4 cmp r4 g4 jmpr cc_busy 0 jmpr cc_zero 2 sgio r4 0xC08 com r4 r4 com g4 g4 cmp r5 g5 jmpr cc_busy 0 jmpr cc_zero 2 sgio r5 0xC09 com r5 r5 com g5 g5 cmp r5 g5 jmpr cc_busy 0 jmpr cc_zero 2 sgio r5 0xC09 com r5 r5 com g5 g5 cmp r6 g6 jmpr cc_busy 0 jmpr cc_zero 2 sgio r6 0xC0A com r6 r6 com g6 g6 cmp r6 g6 jmpr cc_busy 0 jmpr cc_zero 2 sgio r6 0xC0A com r6 r6 com g6 g6 cmp r7 g7 jmpr cc_busy 0 jmpr cc_zero 2 sgio r7 0xC0B com r7 r7 com g7 g7 cmp r7 g7 jmpr cc_busy 0 jmpr cc_zero 2 sgio r7 0xC0B com r7 r7 com g7 g7 shl 1 g0 g0 mul r0 c2 r0 nop or r13 r13 r13 jmp cc_nzero kraj shl 1 g1 g1 mul r1 c2 r1 nop or r13 r13 r13 jmpr cc_zero 3 mov c1 g1 mov c1 r1 shl 1 g2 g2 mul r2 c2 r2 nop or r13 r13 r13 jmpr cc_zero 3 mov c1 g2 mov c1 r2 shl 1 g3 g3 mul r3 c2 r3 nop or r13 r13 r13 jmpr cc_zero 3 mov c1 g3 mov c1 r3 shl 1 g4 g4 mul r4 c2 r4 nop or r13 r13 r13 jmpr cc_zero 3 mov c1 g4 mov c1 r4 shl 1 g5 g5 mul r5 c2 r5 nop or r13 r13 r13 jmpr cc_zero 3 mov c1 g5 mov c1 r5 shl 1 g6 g6 mul r6 c2 r6 nop or r13 r13 r13 jmpr cc_zero 3 mov c1 g6 mov c1 r6 shl 1 g7 g7 mul r7 c2 r7 nop or r13 r13 r13 jmpr cc_zero 3 mov c1 g7 mov c1 r7 jmp cc_uncond cmpm kraj: nop #ifdef cpu3 ; mov c5 r0 ; sgio r0 0xC00 jmpr cc_busy 0 mov b0_0111 r0 sgio r0 0xA26 jmpr cc_busy 0 sgio r0 0xA20 jmpr cc_busy 0 mov 0x012 r0 sgio r0 0xA04 jmpr cc_uncond 0 #else jmpr cc_busy 0 mov c1 r0 sgio r0 NXT jmpr cc_busy 0 mov c0 r0 sgio r0 ITS jmpr cc_uncond 0 #endif