...
Code Block |
---|
[11:42:20.938773 Dbg cpu 03410@ka11.c:0412] EXEC [000726] MOV [11:42:20.938777 Dbg cpu 03410@ka11.c:0161] DATI [000730] => 000001 [11:42:20.938780 Dbg cpu 03410@ka11.c:0161] DATI [000732] => 000440 [11:42:20.938784 Dbg cpu 03410@ka11.c:0161] DATI [000440] => 000000 [11:42:20.938787 Dbg cpu 03410@ka11.c:0174] DATO [000440] <= 000001 [11:42:20.938793 Dbg cpu 03410@ka11.c:0161] DATI [000734] => 005037 [11:42:20.938797 Dbg cpu 03410@ka11.c:0639] EXEC [000734] CLR [11:42:20.938800 Dbg cpu 03410@ka11.c:0161] DATI [000736] => 000442 [11:42:20.938803 Dbg cpu 03410@ka11.c:0161] DATI [000442] => 000014 [11:42:20.938807 Dbg cpu 03410@ka11.c:0174] DATO [000442] <= 000000 [11:42:20.938814 Dbg cpu 03410@ka11.c:0161] DATI [000740] => 010701 [11:42:20.938817 Dbg cpu 03410@ka11.c:0412] EXEC [000740] MOV [11:42:20.938824 Dbg cpu 03410@ka11.c:0161] DATI [000742] => 013700 [11:42:20.938827 Dbg cpu 03410@ka11.c:0412] EXEC [000742] MOV [11:42:20.938831 Dbg cpu 03410@ka11.c:0161] DATI [000744] => 000434 [11:42:20.938834 Dbg cpu 03410@ka11.c:0161] DATI [000434] => 000001 [11:42:20.938840 Dbg cpu 03410@ka11.c:0161] DATI [000746] => 032737 [11:42:20.938843 Dbg cpu 03410@ka11.c:0423] EXEC [000746] BIT [11:42:20.938847 Dbg cpu 03410@ka11.c:0161] DATI [000750] => 000001 [11:42:20.938850 Dbg cpu 03410@ka11.c:0161] DATI [000752] => 000406 [11:42:20.938854 Dbg cpu 03410@ka11.c:0161] DATI [000406] => 000000 [11:42:20.938860 Dbg cpu 03410@ka11.c:0161] DATI [000754] => 001004 [11:42:20.938864 Dbg cpu 03410@ka11.c:0738] EXEC [000754] BNE [11:42:20.938870 Dbg cpu 03410@ka11.c:0161] DATI [000756] => 013701 [11:42:20.938873 Dbg cpu 03410@ka11.c:0412] EXEC [000756] MOV [11:42:20.938877 Dbg cpu 03410@ka11.c:0161] DATI [000760] => 000436 [11:42:20.938880 Dbg cpu 03410@ka11.c:0161] DATI [000436] => 000000 [11:42:20.938886 Dbg cpu 03410@ka11.c:0161] DATI [000762] => 072001 [11:42:20.938890 Dbg cpu 03410@ka11.c:0498] EXEC [000762] ASH [11:42:20.938897 Dbg cpu 03410@ka11.c:0161] DATI [000764] => 000402 [11:42:20.938900 Dbg cpu 03410@ka11.c:0737] EXEC [000764] BR [11:42:20.938907 Dbg cpu 03410@ka11.c:0161] DATI [000772] => 106737 [11:42:20.938911 Dbg cpu 03410@ka11.c:0715] EXEC [000772] MFPS [11:42:20.938914 Dbg cpu 03410@ka11.c:0174] DATOB [000772] <= 000000 [11:42:20.938920 Dbg cpu 03410@ka11.c:0161] DATI [000774] => 000432 [11:42:20.938924 Dbg cpu 03410@ka11.c:0737] EXEC [000774] BR [11:42:20.938930 Dbg cpu 03410@ka11.c:0161] DATI [001062] => 177354 [11:42:20.938933 Dbg cpu 03410@ka11.c:0815] TRAP 10 |
The FKAC test
Reading the fiche to understand the ASH part of it..
The test tests the ASH instruction for the registers R0..R5, where those registers are the ones to be shifted. On even passes, when we test Rn, the shift count (coming from temp2) is moved to R(n+1) and that register is used as the count. On odd passes it uses test2 directly.
The test loops 30x (36oct) though the same sets of code. Every EVEN run it
Variables:
temp1: current value to be shifted.
temp2: shift count. On even passes this gets moved to a register, and the register is used as the count source. On odd passes the ash instruction addresses temp2 directly (mode 67).
temp3 : the expected result of the shift operation expected in the shifted register
temp4: the expected PSW result
Debugging using Unibone and FKAC
...