]> git.unchartedbackwaters.co.uk Git - francis/winuae.git/commitdiff
imported winuaesrc1200b4.zip
authorToni Wilen <twilen@winuae.net>
Tue, 20 Dec 2005 16:44:43 +0000 (18:44 +0200)
committerToni Wilen <twilen@winuae.net>
Mon, 22 Feb 2010 19:27:39 +0000 (21:27 +0200)
15 files changed:
blitter.c
compemu_raw_x86.c
compemu_support.c
custom.c
drawing.c
fpp.c
gencpu.c
include/compemu.h
memory.c
od-win32/direct3d.c
od-win32/opengl.c
od-win32/resources/resource.h
od-win32/resources/winuae.rc
od-win32/win32.h
od-win32/win32gui.c

index e787f13564cdc55b457936ffcd69444fb3fd9a75..b6363505dbb2ba51b1dc92f21239e2b505a9afd7 100755 (executable)
--- a/blitter.c
+++ b/blitter.c
@@ -60,7 +60,7 @@ static int blit_cyclecounter, blit_maxcyclecounter, blit_slowdown;
 static int blit_linecyclecounter, blit_misscyclecounter;
 
 #ifdef CPUEMU_6
-extern int cycle_line[];
+extern uae_u8 cycle_line[];
 #endif
 
 static long blit_firstline_cycles;
@@ -170,7 +170,7 @@ static int blit_cycle_diagram_fill[][10] =
 
 /*
 
-    line draw takes 4 cycles (two 2-cycle blits combined)
+    line draw takes 4 cycles (-X-X)
     it also have real idle cycles and only 2 dma fetches
     (read from C, write to D, but see below)
 
@@ -186,7 +186,7 @@ static int blit_cycle_diagram_fill[][10] =
 
 static int blit_cycle_diagram_line[] =
 {
-    0, 4, 3,5,4,5  /* guessed */
+    0, 4, 0,3,0,4, 0,0,0,0,0,0,0,0,0,0  /* guessed */
 };
 
 static int blit_cycle_diagram_finald[] =
@@ -258,7 +258,7 @@ STATIC_INLINE int canblit (int hpos)
        return 0;
     if (cycle_line[hpos] == 0)
        return 1;
-    if (cycle_line[hpos] & (CYCLE_REFRESH | CYCLE_SPRITE | CYCLE_MISC))
+    if (cycle_line[hpos] & CYCLE_REFRESH)
        return -1;
     return 0;
 }
@@ -526,6 +526,10 @@ static void blitter_line(void)
        blitahold = 0;
     blitonedot = 1;
     blt_info.bltddat = blit_func(blitahold, blitbhold, blitchold, bltcon0 & 0xFF);
+}
+
+static void blitter_line_proc(void)
+{
     if (!blitsign){
        if (bltcon0 & 0x800)
            bltapt += (uae_s16)blt_info.bltamod;
@@ -581,35 +585,31 @@ static void decide_blitter_line (int hpos)
        while (blit_last_hpos < hpos) {
            int c = channel_state (blit_cyclecounter);
            for (;;) {
-
-               if (c == 5) {
-                   blit_cyclecounter++;
-                   break;
+               if (c) {
+                   if (!canblit(blit_last_hpos))
+                       break;
                }
-#if 1
-               if (c && canblit(blit_last_hpos) <= 0)
-                   break;
-#endif
-#if 1
-               if (c != 0)
-                   cycle_line[blit_last_hpos] |= CYCLE_BLITTER;
-#endif
                blit_cyclecounter++;
-               if (c == 4) {
-                   /* believe it or not but try Cardamon or Cardamom without this.. */
-                   if (ddat1use)
-                       bltdpt = bltcpt;
+               if (c == 3) {
                    blitter_read();
+                   cycle_line[blit_last_hpos] |= CYCLE_BLITTER;
+               } else if (c == 4) {
+                   if (ddat1use) {
+                       bltdpt = bltcpt;
+                   }
+                   ddat1use = 1;
                    blitter_line();
-                   blitter_write();
+                   blitter_line_proc();
                    blitter_nxline();
-                   ddat1use = 1;
+                   blitter_write();
+                   cycle_line[blit_last_hpos] |= CYCLE_BLITTER;
                    if (blt_info.vblitsize == 0) {
-                       blitter_done();
-                       return;
+                       bltdpt = bltcpt;
+                       blitter_done();
+                       return;
                    }
                }
-               break;
+               break;
            }
            blit_last_hpos++;
        }
@@ -628,6 +628,7 @@ static void actually_do_blit(void)
        do {
            blitter_read();
            blitter_line();
+           blitter_line_proc();
            blitter_write();
            bltdpt = bltcpt;
            blitter_nxline();
index 950bc61f0310779fd536671dd59e00b251f5a9ed..80eaa4cfc788f3db139df717f340f671cc2b0708 100755 (executable)
@@ -97,7 +97,7 @@ static uae_u32 swap32(uae_u32 x)
 
 static __inline__ int isbyte(uae_s32 x)
 {
-  return (x>=-128 && x<=127);
+    return (x>=-128 && x<=127);
 }
 
 LOWFUNC(NONE,WRITE,1,raw_push_l_r,(R4 r))
@@ -573,8 +573,12 @@ LENDFUNC(NONE,NONE,2,raw_imul_32_32,(RW4 d, R4 s))
 
 LOWFUNC(NONE,NONE,2,raw_imul_64_32,(RW4 d, RW4 s))
 {
-    if (d!=MUL_NREG1 || s!=MUL_NREG2)
+#ifdef JIT_DEBUG
+    if (d!=MUL_NREG1 || s!=MUL_NREG2) {
+       printf("Bad register in IMUL: d=%d, s=%d\n",d,s);
        abort();
+    }
+#endif
     emit_byte(0xf7);
     emit_byte(0xea);
 }
@@ -582,24 +586,17 @@ LENDFUNC(NONE,NONE,2,raw_imul_64_32,(RW4 d, RW4 s))
 
 LOWFUNC(NONE,NONE,2,raw_mul_64_32,(RW4 d, RW4 s))
 {
+#ifdef JIT_DEBUG
     if (d!=MUL_NREG1 || s!=MUL_NREG2) {
        printf("Bad register in MUL: d=%d, s=%d\n",d,s);
        abort();
     }
+#endif
     emit_byte(0xf7);
     emit_byte(0xe2);
 }
 LENDFUNC(NONE,NONE,2,raw_mul_64_32,(RW4 d, RW4 s))
 
-LOWFUNC(NONE,NONE,2,raw_mul_32_32,(RW4 d, R4 s))
-{
-    abort(); /* %^$&%^$%#^ x86! */
-    emit_byte(0x0f);
-    emit_byte(0xaf);
-    emit_byte(0xc0+8*d+s);
-}
-LENDFUNC(NONE,NONE,2,raw_mul_32_32,(RW4 d, R4 s))
-
 LOWFUNC(NONE,NONE,2,raw_mov_b_rr,(W1 d, R1 s))
 {
     emit_byte(0x88);
@@ -615,307 +612,118 @@ LOWFUNC(NONE,NONE,2,raw_mov_w_rr,(W2 d, R2 s))
 }
 LENDFUNC(NONE,NONE,2,raw_mov_w_rr,(W2 d, R2 s))
 
-LOWFUNC(NONE,READ,4,raw_mov_l_rrm_indexed,(W4 d,R4 baser, R4 index, IMM factor))
+LOWFUNC(NONE,READ,3,raw_mov_l_rrm_indexed,(W4 d, R4 baser, R4 index))
 {
-    int isebp=(baser==5)?0x40:0;
-    int fi;
-
-    switch(factor) {
-     case 1: fi=0; break;
-     case 2: fi=1; break;
-     case 4: fi=2; break;
-     case 8: fi=3; break;
-     default: abort();
-    }
-
-
     emit_byte(0x8b);
-    emit_byte(0x04+8*d+isebp);
-    emit_byte(baser+8*index+0x40*fi);
-    if (isebp)
-       emit_byte(0x00);
-}
-LENDFUNC(NONE,READ,4,raw_mov_l_rrm_indexed,(W4 d,R4 baser, R4 index, IMM factor))
-
-LOWFUNC(NONE,READ,4,raw_mov_w_rrm_indexed,(W2 d, R4 baser, R4 index, IMM factor))
-{
-    int fi;
-    int isebp;
-
-    switch(factor) {
-     case 1: fi=0; break;
-     case 2: fi=1; break;
-     case 4: fi=2; break;
-     case 8: fi=3; break;
-     default: abort();
+    if (baser==5) {
+       emit_byte(0x44+8*d);
+       emit_byte(8*index+baser);
+       emit_byte(0);
+       return;
     }
-    isebp=(baser==5)?0x40:0;
-
-    emit_byte(0x66);
-    emit_byte(0x8b);
-    emit_byte(0x04+8*d+isebp);
-    emit_byte(baser+8*index+0x40*fi);
-    if (isebp)
-       emit_byte(0x00);
-}
-LENDFUNC(NONE,READ,4,raw_mov_w_rrm_indexed,(W2 d, R4 baser, R4 index, IMM factor))
-
-LOWFUNC(NONE,READ,4,raw_mov_b_rrm_indexed,(W1 d, R4 baser, R4 index, IMM factor))
-{
-   int fi;
-  int isebp;
-
-  switch(factor) {
-  case 1: fi=0; break;
-  case 2: fi=1; break;
-  case 4: fi=2; break;
-  case 8: fi=3; break;
-  default: abort();
-  }
-  isebp=(baser==5)?0x40:0;
-
-   emit_byte(0x8a);
-    emit_byte(0x04+8*d+isebp);
-    emit_byte(baser+8*index+0x40*fi);
-    if (isebp)
-       emit_byte(0x00);
-}
-LENDFUNC(NONE,READ,4,raw_mov_b_rrm_indexed,(W1 d, R4 baser, R4 index, IMM factor))
-
-LOWFUNC(NONE,WRITE,4,raw_mov_l_mrr_indexed,(R4 baser, R4 index, IMM factor, R4 s))
-{
-  int fi;
-  int isebp;
-
-  switch(factor) {
-  case 1: fi=0; break;
-  case 2: fi=1; break;
-  case 4: fi=2; break;
-  case 8: fi=3; break;
-  default: abort();
-  }
-
-
-  isebp=(baser==5)?0x40:0;
-
-    emit_byte(0x89);
-    emit_byte(0x04+8*s+isebp);
-    emit_byte(baser+8*index+0x40*fi);
-    if (isebp)
-       emit_byte(0x00);
+    emit_byte(0x04+8*d);
+    emit_byte(8*index+baser);
 }
-LENDFUNC(NONE,WRITE,4,raw_mov_l_mrr_indexed,(R4 baser, R4 index, IMM factor, R4 s))
+LENDFUNC(NONE,READ,3,raw_mov_l_rrm_indexed,(W4 d, R4 baser, R4 index))
 
-LOWFUNC(NONE,WRITE,4,raw_mov_w_mrr_indexed,(R4 baser, R4 index, IMM factor, R2 s))
+LOWFUNC(NONE,READ,3,raw_mov_w_rrm_indexed,(W2 d, R4 baser, R4 index))
 {
-  int fi;
-  int isebp;
-
-  switch(factor) {
-  case 1: fi=0; break;
-  case 2: fi=1; break;
-  case 4: fi=2; break;
-  case 8: fi=3; break;
-  default: abort();
-  }
-  isebp=(baser==5)?0x40:0;
-
     emit_byte(0x66);
-    emit_byte(0x89);
-    emit_byte(0x04+8*s+isebp);
-    emit_byte(baser+8*index+0x40*fi);
-    if (isebp)
-       emit_byte(0x00);
+    emit_byte(0x8b);
+    if (baser==5) {
+       emit_byte(0x44+8*d);
+       emit_byte(8*index+baser);
+       emit_byte(0);
+       return;
+    }
+    emit_byte(0x04+8*d);
+    emit_byte(8*index+baser);
 }
-LENDFUNC(NONE,WRITE,4,raw_mov_w_mrr_indexed,(R4 baser, R4 index, IMM factor, R2 s))
+LENDFUNC(NONE,READ,3,raw_mov_w_rrm_indexed,(W2 d, R4 baser, R4 index))
 
-LOWFUNC(NONE,WRITE,4,raw_mov_b_mrr_indexed,(R4 baser, R4 index, IMM factor, R1 s))
+LOWFUNC(NONE,READ,3,raw_mov_b_rrm_indexed,(W1 d, R4 baser, R4 index))
 {
-  int fi;
-  int isebp;
-
-  switch(factor) {
-  case 1: fi=0; break;
-  case 2: fi=1; break;
-  case 4: fi=2; break;
-  case 8: fi=3; break;
-  default: abort();
-  }
-  isebp=(baser==5)?0x40:0;
-
-    emit_byte(0x88);
-    emit_byte(0x04+8*s+isebp);
-    emit_byte(baser+8*index+0x40*fi);
-    if (isebp)
-       emit_byte(0x00);
+    emit_byte(0x8a);
+    if (baser==5) {
+       emit_byte(0x44+8*d);
+       emit_byte(8*index+baser);
+       emit_byte(0);
+       return;
+    }
+    emit_byte(0x04+8*d);
+    emit_byte(8*index+baser);
 }
-LENDFUNC(NONE,WRITE,4,raw_mov_b_mrr_indexed,(R4 baser, R4 index, IMM factor, R1 s))
+LENDFUNC(NONE,READ,3,raw_mov_b_rrm_indexed,(W1 d, R4 baser, R4 index))
 
-LOWFUNC(NONE,WRITE,5,raw_mov_l_bmrr_indexed,(IMM base, R4 baser, R4 index, IMM factor, R4 s))
+LOWFUNC(NONE,WRITE,3,raw_mov_l_mrr_indexed,(R4 baser, R4 index, R4 s))
 {
-  int fi;
-
-  switch(factor) {
-  case 1: fi=0; break;
-  case 2: fi=1; break;
-  case 4: fi=2; break;
-  case 8: fi=3; break;
-  default: abort();
-  }
-
     emit_byte(0x89);
-    emit_byte(0x84+8*s);
-    emit_byte(baser+8*index+0x40*fi);
-    emit_long(base);
+    if (baser==5) {
+       emit_byte(0x44+8*s);
+       emit_byte(8*index+baser);
+       emit_byte(0);
+       return;
+    }
+    emit_byte(0x04+8*s);
+    emit_byte(8*index+baser);
 }
-LENDFUNC(NONE,WRITE,5,raw_mov_l_bmrr_indexed,(IMM base, R4 baser, R4 index, IMM factor, R4 s))
+LENDFUNC(NONE,WRITE,3,raw_mov_l_mrr_indexed,(R4 baser, R4 index, R4 s))
 
-LOWFUNC(NONE,WRITE,5,raw_mov_w_bmrr_indexed,(IMM base, R4 baser, R4 index, IMM factor, R2 s))
+LOWFUNC(NONE,WRITE,3,raw_mov_w_mrr_indexed,(R4 baser, R4 index, R2 s))
 {
-  int fi;
-
-  switch(factor) {
-  case 1: fi=0; break;
-  case 2: fi=1; break;
-  case 4: fi=2; break;
-  case 8: fi=3; break;
-  default: abort();
-  }
-
     emit_byte(0x66);
     emit_byte(0x89);
-    emit_byte(0x84+8*s);
-    emit_byte(baser+8*index+0x40*fi);
-    emit_long(base);
+    if (baser==5) {
+       emit_byte(0x44+8*s);
+       emit_byte(8*index+baser);
+       emit_byte(0);
+       return;
+    }
+    emit_byte(0x04+8*s);
+    emit_byte(8*index+baser);
 }
-LENDFUNC(NONE,WRITE,5,raw_mov_w_bmrr_indexed,(IMM base, R4 baser, R4 index, IMM factor, R2 s))
+LENDFUNC(NONE,WRITE,3,raw_mov_w_mrr_indexed,(R4 baser, R4 index, R2 s))
 
-LOWFUNC(NONE,WRITE,5,raw_mov_b_bmrr_indexed,(IMM base, R4 baser, R4 index, IMM factor, R1 s))
+LOWFUNC(NONE,WRITE,3,raw_mov_b_mrr_indexed,(R4 baser, R4 index, R1 s))
 {
-  int fi;
-
-  switch(factor) {
-  case 1: fi=0; break;
-  case 2: fi=1; break;
-  case 4: fi=2; break;
-  case 8: fi=3; break;
-  default: abort();
-  }
-
     emit_byte(0x88);
-    emit_byte(0x84+8*s);
-    emit_byte(baser+8*index+0x40*fi);
-    emit_long(base);
-}
-LENDFUNC(NONE,WRITE,5,raw_mov_b_bmrr_indexed,(IMM base, R4 baser, R4 index, IMM factor, R1 s))
-
-LOWFUNC(NONE,READ,5,raw_mov_l_brrm_indexed,(W4 d, IMM base, R4 baser, R4 index, IMM factor))
-{
-  int fi;
-
-  switch(factor) {
-  case 1: fi=0; break;
-  case 2: fi=1; break;
-  case 4: fi=2; break;
-  case 8: fi=3; break;
-  default: abort();
-  }
-
-    emit_byte(0x8b);
-    emit_byte(0x84+8*d);
-    emit_byte(baser+8*index+0x40*fi);
-    emit_long(base);
-}
-LENDFUNC(NONE,READ,5,raw_mov_l_brrm_indexed,(W4 d, IMM base, R4 baser, R4 index, IMM factor))
-
-LOWFUNC(NONE,READ,5,raw_mov_w_brrm_indexed,(W2 d, IMM base, R4 baser, R4 index, IMM factor))
-{
-  int fi;
-
-  switch(factor) {
-  case 1: fi=0; break;
-  case 2: fi=1; break;
-  case 4: fi=2; break;
-  case 8: fi=3; break;
-  default: abort();
-  }
-
-    emit_byte(0x66);
-    emit_byte(0x8b);
-    emit_byte(0x84+8*d);
-    emit_byte(baser+8*index+0x40*fi);
-    emit_long(base);
-}
-LENDFUNC(NONE,READ,5,raw_mov_w_brrm_indexed,(W2 d, IMM base, R4 baser, R4 index, IMM factor))
-
-LOWFUNC(NONE,READ,5,raw_mov_b_brrm_indexed,(W1 d, IMM base, R4 baser, R4 index, IMM factor))
-{
-  int fi;
-
-  switch(factor) {
-  case 1: fi=0; break;
-  case 2: fi=1; break;
-  case 4: fi=2; break;
-  case 8: fi=3; break;
-  default: abort();
-  }
-
-    emit_byte(0x8a);
-    emit_byte(0x84+8*d);
-    emit_byte(baser+8*index+0x40*fi);
-    emit_long(base);
+    if (baser==5) {
+       emit_byte(0x44+8*s);
+       emit_byte(8*index+baser);
+       emit_byte(0);
+       return;
+    }
+    emit_byte(0x04+8*s);
+    emit_byte(8*index+baser);
 }
-LENDFUNC(NONE,READ,5,raw_mov_b_brrm_indexed,(W1 d, IMM base, R4 baser, R4 index, IMM factor))
+LENDFUNC(NONE,WRITE,3,raw_mov_b_mrr_indexed,(R4 baser, R4 index, R1 s))
 
-LOWFUNC(NONE,READ,4,raw_mov_l_rm_indexed,(W4 d, IMM base, R4 index, IMM factor))
+LOWFUNC(NONE,READ,3,raw_mov_l_rm_indexed,(W4 d, IMM base, R4 index))
 {
-  int fi;
-  switch(factor) {
-  case 1: fi=0; break;
-  case 2: fi=1; break;
-  case 4: fi=2; break;
-  case 8: fi=3; break;
-  default:
-    fprintf(stderr,"Bad factor %d in mov_l_rm_indexed!\n",factor);
-    abort();
-  }
     emit_byte(0x8b);
     emit_byte(0x04+8*d);
-    emit_byte(0x05+8*index+64*fi);
+    emit_byte(0x85+8*index);
     emit_long(base);
 }
-LENDFUNC(NONE,READ,4,raw_mov_l_rm_indexed,(W4 d, IMM base, R4 index, IMM factor))
+LENDFUNC(NONE,READ,3,raw_mov_l_rm_indexed,(W4 d, IMM base, R4 index))
 
-LOWFUNC(NONE,READ,5,raw_cmov_l_rm_indexed,(W4 d, IMM base, R4 index, IMM factor, IMM cond))
+LOWFUNC(NONE,READ,4,raw_cmov_l_rm_indexed,(W4 d, IMM base, R4 index, IMM cond))
 {
-    int fi;
-    switch(factor) {
-     case 1: fi=0; break;
-     case 2: fi=1; break;
-     case 4: fi=2; break;
-     case 8: fi=3; break;
-     default:
-       fprintf(stderr,"Bad factor %d in mov_l_rm_indexed!\n",factor);
-       abort();
-    }
     if (have_cmov) {
        emit_byte(0x0f);
        emit_byte(0x40+cond);
-       emit_byte(0x04+8*d);
-       emit_byte(0x05+8*index+64*fi);
-       emit_long(base);
     }
     else { /* replacement using branch and mov */
        int uncc=(cond^1);
        emit_byte(0x70+uncc);
        emit_byte(7);  /* skip next 7 bytes if not cc=true */
        emit_byte(0x8b);
-       emit_byte(0x04+8*d);
-       emit_byte(0x05+8*index+64*fi);
-       emit_long(base);
     }
+    emit_byte(0x04+8*d);
+    emit_byte(0x85+8*index);
+    emit_long(base);
 }
-LENDFUNC(NONE,READ,5,raw_cmov_l_rm_indexed,(W4 d, IMM base, R4 index, IMM factor, IMM cond))
+LENDFUNC(NONE,READ,4,raw_cmov_l_rm_indexed,(W4 d, IMM base, R4 index, IMM cond))
 
 LOWFUNC(NONE,READ,3,raw_cmov_l_rm,(W4 d, IMM mem, IMM cond))
 {
@@ -1049,43 +857,37 @@ LENDFUNC(NONE,NONE,3,raw_lea_l_brr,(W4 d, R4 s, IMM offset))
 
 LOWFUNC(NONE,NONE,5,raw_lea_l_brr_indexed,(W4 d, R4 s, R4 index, IMM factor, IMM offset))
 {
-  int fi;
-
-  switch(factor) {
-  case 1: fi=0; break;
-  case 2: fi=1; break;
-  case 4: fi=2; break;
-  case 8: fi=3; break;
-  default: abort();
-  }
-
     emit_byte(0x8d);
+    if (!offset) {
+       if (s!=5) {
+           emit_byte(0x04+8*d);
+           emit_byte(0x40*factor+8*index+s);
+           return;
+       }
+       emit_byte(0x44+8*d);
+       emit_byte(0x40*factor+8*index+s);
+       emit_byte(0);
+       return;
+    }
     emit_byte(0x84+8*d);
-    emit_byte(0x40*fi+8*index+s);
+    emit_byte(0x40*factor+8*index+s);
     emit_long(offset);
 }
 LENDFUNC(NONE,NONE,5,raw_lea_l_brr_indexed,(W4 d, R4 s, R4 index, IMM factor, IMM offset))
 
-LOWFUNC(NONE,NONE,4,raw_lea_l_rr_indexed,(W4 d, R4 s, R4 index, IMM factor))
+LOWFUNC(NONE,NONE,3,raw_lea_l_rr_indexed,(W4 d, R4 s, R4 index))
 {
-  int isebp=(s==5)?0x40:0;
-  int fi;
-
-  switch(factor) {
-  case 1: fi=0; break;
-  case 2: fi=1; break;
-  case 4: fi=2; break;
-  case 8: fi=3; break;
-  default: abort();
-  }
-
     emit_byte(0x8d);
-    emit_byte(0x04+8*d+isebp);
-    emit_byte(0x40*fi+8*index+s);
-    if (isebp)
-      emit_byte(0);
+    if (s==5) {
+       emit_byte(0x44+8*d);
+       emit_byte(8*index+s);
+       emit_byte(0);
+       return;
+    }
+    emit_byte(0x04+8*d);
+    emit_byte(8*index+s);
 }
-LENDFUNC(NONE,NONE,4,raw_lea_l_rr_indexed,(W4 d, R4 s, R4 index, IMM factor))
+LENDFUNC(NONE,NONE,3,raw_lea_l_rr_indexed,(W4 d, R4 s, R4 index))
 
 LOWFUNC(NONE,WRITE,3,raw_mov_l_bRr,(R4 d, R4 s, IMM offset))
 {
@@ -1532,24 +1334,6 @@ LOWFUNC(WRITE,NONE,2,raw_cmp_b,(R1 d, R1 s))
 }
 LENDFUNC(WRITE,NONE,2,raw_cmp_b,(R1 d, R1 s))
 
-LOWFUNC(WRITE,READ,4,raw_cmp_l_rm_indexed,(R4 d, IMM offset, R4 index, IMM factor))
-{
-    int fi;
-
-    switch(factor) {
-     case 1: fi=0; break;
-     case 2: fi=1; break;
-     case 4: fi=2; break;
-     case 8: fi=3; break;
-     default: abort();
-    }
-    emit_byte(0x39);
-    emit_byte(0x04+8*d);
-    emit_byte(5+8*index+0x40*fi);
-    emit_long(offset);
-}
-LENDFUNC(WRITE,READ,4,raw_cmp_l_rm_indexed,(R4 d, IMM offset, R4 index, IMM factor))
-
 LOWFUNC(WRITE,NONE,2,raw_xor_l,(RW4 d, R4 s))
 {
     emit_byte(0x31);
@@ -1629,18 +1413,19 @@ static __inline__ void raw_jmp_r(R4 r)
 
 static __inline__ void raw_jmp_m_indexed(uae_u32 base, uae_u32 r, uae_u32 m)
 {
-    int mu;
-    switch(m) {
-     case 1: mu=0; break;
-     case 2: mu=1; break;
-     case 4: mu=2; break;
-     case 8: mu=3; break;
-     default: abort();
+    int sib;
+
+    switch (m) {
+       case 1: sib = 0x05; break;
+       case 2: sib = 0x45; break;
+       case 4: sib = 0x85; break;
+       case 8: sib = 0xC5; break;
+       default: abort();
     }
     lopt_emit_all();
     emit_byte(0xff);
     emit_byte(0x24);
-    emit_byte(0x05+8*r+0x40*mu);
+    emit_byte(8*r+sib);
     emit_long(base);
 }
 
@@ -1652,7 +1437,6 @@ static __inline__ void raw_jmp_m(uae_u32 base)
     emit_long(base);
 }
 
-
 static __inline__ void raw_call(uae_u32 t)
 {
     lopt_emit_all();
@@ -2011,7 +1795,7 @@ int EvalException ( LPEXCEPTION_POINTERS blah, int n_except )
                }
 #endif
                if (dir==SIG_READ) {
-                   switch(size) {
+                   switch (size) {
                    case 1: *((uae_u8*)pr)=get_byte(addr); break;
                    case 2: *((uae_u16*)pr)=swap16(get_word(addr)); break;
                    case 4: *((uae_u32*)pr)=swap32(get_long(addr)); break;
@@ -2019,7 +1803,7 @@ int EvalException ( LPEXCEPTION_POINTERS blah, int n_except )
                    }
                }
                else { /* write */
-                   switch(size) {
+                   switch (size) {
                    case 1: put_byte(addr,*((uae_u8*)pr)); break;
                    case 2: put_word(addr,swap16(*((uae_u16*)pr))); break;
                    case 4: put_long(addr,swap32(*((uae_u32*)pr))); break;
index 620c23f1b999b1975e622c7c19b38772e9dab1a0..cb9918f9fdc7c76232705e32f27db343306b41bb 100755 (executable)
@@ -126,7 +126,7 @@ static uae_u8 *popallspace;
 
 uae_u32 m68k_pc_offset;
 
-/* Some arithmetic ooperations can be optimized away if the operands
+/* Some arithmetic operations can be optimized away if the operands
    are known to be constant. But that's only a good idea when the
    side effects they would have on the flags are not important. This
    variable indicates whether we need the side effects or not
@@ -915,7 +915,7 @@ static  int alloc_reg_hinted(int r, int size, int willclobber, int hint)
            raw_zero_extend_16_rr(rr,rr);
            raw_zero_extend_16_rr(bestreg,bestreg);
            raw_bswap_32(bestreg);
-           raw_lea_l_brr_indexed(rr,rr,bestreg,1,0);
+           raw_lea_l_rr_indexed(rr,rr,bestreg);
            live.state[r].validsize=4;
            live.nat[rr].touched=touchcnt++;
            return rr;
@@ -2199,8 +2199,6 @@ MIDFUNC(2,shrl_b_rr,(RW1 d, R1 r))
 }
 MENDFUNC(2,shrl_b_rr,(RW1 d, R1 r))
 
-
-
 MIDFUNC(2,shll_l_ri,(RW4 r, IMM i))
 {
     if (!i && !needflags)
@@ -2368,7 +2366,6 @@ MIDFUNC(2,shra_b_rr,(RW1 d, R1 r))
 }
 MENDFUNC(2,shra_b_rr,(RW1 d, R1 r))
 
-
 MIDFUNC(2,setcc,(W1 d, IMM cc))
 {
     CLOBBER_SETCC;
@@ -2478,17 +2475,6 @@ MIDFUNC(2,mul_64_32,(RW4 d, RW4 s))
 }
 MENDFUNC(2,mul_64_32,(RW4 d, RW4 s))
 
-MIDFUNC(2,mul_32_32,(RW4 d, R4 s))
-{
-    CLOBBER_MUL;
-    s=readreg(s,4);
-    d=rmw(d,4,4);
-    raw_mul_32_32(d,s);
-    unlock(s);
-    unlock(d);
-}
-MENDFUNC(2,mul_32_32,(RW4 d, R4 s))
-
 MIDFUNC(2,sign_extend_16_rr,(W4 d, R2 s))
 {
     int isrmw;
@@ -2551,7 +2537,6 @@ MIDFUNC(2,sign_extend_8_rr,(W4 d, R1 s))
 }
 MENDFUNC(2,sign_extend_8_rr,(W4 d, R1 s))
 
-
 MIDFUNC(2,zero_extend_16_rr,(W4 d, R2 s))
 {
     int isrmw;
@@ -2649,52 +2634,50 @@ MIDFUNC(2,mov_w_rr,(W2 d, R2 s))
 }
 MENDFUNC(2,mov_w_rr,(W2 d, R2 s))
 
-
-MIDFUNC(4,mov_l_rrm_indexed,(W4 d,R4 baser, R4 index, IMM factor))
+MIDFUNC(3,mov_l_rrm_indexed,(W4 d,R4 baser, R4 index))
 {
     CLOBBER_MOV;
     baser=readreg(baser,4);
     index=readreg(index,4);
     d=writereg(d,4);
 
-    raw_mov_l_rrm_indexed(d,baser,index,factor);
+    raw_mov_l_rrm_indexed(d,baser,index);
     unlock(d);
     unlock(baser);
     unlock(index);
 }
-MENDFUNC(4,mov_l_rrm_indexed,(W4 d,R4 baser, R4 index, IMM factor))
+MENDFUNC(3,mov_l_rrm_indexed,(W4 d,R4 baser, R4 index))
 
-MIDFUNC(4,mov_w_rrm_indexed,(W2 d, R4 baser, R4 index, IMM factor))
+MIDFUNC(3,mov_w_rrm_indexed,(W2 d, R4 baser, R4 index))
 {
     CLOBBER_MOV;
     baser=readreg(baser,4);
     index=readreg(index,4);
     d=writereg(d,2);
 
-    raw_mov_w_rrm_indexed(d,baser,index,factor);
+    raw_mov_w_rrm_indexed(d,baser,index);
     unlock(d);
     unlock(baser);
     unlock(index);
 }
-MENDFUNC(4,mov_w_rrm_indexed,(W2 d, R4 baser, R4 index, IMM factor))
+MENDFUNC(3,mov_w_rrm_indexed,(W2 d, R4 baser, R4 index))
 
-MIDFUNC(4,mov_b_rrm_indexed,(W1 d, R4 baser, R4 index, IMM factor))
+MIDFUNC(3,mov_b_rrm_indexed,(W1 d, R4 baser, R4 index))
 {
     CLOBBER_MOV;
     baser=readreg(baser,4);
     index=readreg(index,4);
     d=writereg(d,1);
 
-    raw_mov_b_rrm_indexed(d,baser,index,factor);
+    raw_mov_b_rrm_indexed(d,baser,index);
 
     unlock(d);
     unlock(baser);
     unlock(index);
 }
-MENDFUNC(4,mov_b_rrm_indexed,(W1 d, R4 baser, R4 index, IMM factor))
-
+MENDFUNC(3,mov_b_rrm_indexed,(W1 d, R4 baser, R4 index))
 
-MIDFUNC(4,mov_l_mrr_indexed,(R4 baser, R4 index, IMM factor, R4 s))
+MIDFUNC(3,mov_l_mrr_indexed,(R4 baser, R4 index, R4 s))
 {
     CLOBBER_MOV;
     baser=readreg(baser,4);
@@ -2704,185 +2687,61 @@ MIDFUNC(4,mov_l_mrr_indexed,(R4 baser, R4 index, IMM factor, R4 s))
     Dif (baser==s || index==s)
        abort();
 
-
-    raw_mov_l_mrr_indexed(baser,index,factor,s);
+    raw_mov_l_mrr_indexed(baser,index,s);
     unlock(s);
     unlock(baser);
     unlock(index);
 }
-MENDFUNC(4,mov_l_mrr_indexed,(R4 baser, R4 index, IMM factor, R4 s))
+MENDFUNC(3,mov_l_mrr_indexed,(R4 baser, R4 index, R4 s))
 
-MIDFUNC(4,mov_w_mrr_indexed,(R4 baser, R4 index, IMM factor, R2 s))
+MIDFUNC(3,mov_w_mrr_indexed,(R4 baser, R4 index, R2 s))
 {
     CLOBBER_MOV;
     baser=readreg(baser,4);
     index=readreg(index,4);
     s=readreg(s,2);
 
-    raw_mov_w_mrr_indexed(baser,index,factor,s);
+    raw_mov_w_mrr_indexed(baser,index,s);
     unlock(s);
     unlock(baser);
     unlock(index);
 }
-MENDFUNC(4,mov_w_mrr_indexed,(R4 baser, R4 index, IMM factor, R2 s))
+MENDFUNC(3,mov_w_mrr_indexed,(R4 baser, R4 index, R2 s))
 
-MIDFUNC(4,mov_b_mrr_indexed,(R4 baser, R4 index, IMM factor, R1 s))
+MIDFUNC(3,mov_b_mrr_indexed,(R4 baser, R4 index, R1 s))
 {
     CLOBBER_MOV;
     s=readreg(s,1);
     baser=readreg(baser,4);
     index=readreg(index,4);
 
-    raw_mov_b_mrr_indexed(baser,index,factor,s);
-    unlock(s);
-    unlock(baser);
-    unlock(index);
-}
-MENDFUNC(4,mov_b_mrr_indexed,(R4 baser, R4 index, IMM factor, R1 s))
-
-
-MIDFUNC(5,mov_l_bmrr_indexed,(IMM base, R4 baser, R4 index, IMM factor, R4 s))
-{
-    int basereg=baser;
-    int indexreg=index;
-
-    CLOBBER_MOV;
-    s=readreg(s,4);
-    baser=readreg_offset(baser,4);
-    index=readreg_offset(index,4);
-
-    base+=get_offset(basereg);
-    base+=factor*get_offset(indexreg);
-
-    raw_mov_l_bmrr_indexed(base,baser,index,factor,s);
-    unlock(s);
-    unlock(baser);
-    unlock(index);
-}
-MENDFUNC(5,mov_l_bmrr_indexed,(IMM base, R4 baser, R4 index, IMM factor, R4 s))
-
-MIDFUNC(5,mov_w_bmrr_indexed,(IMM base, R4 baser, R4 index, IMM factor, R2 s))
-{
-    int basereg=baser;
-    int indexreg=index;
-
-    CLOBBER_MOV;
-    s=readreg(s,2);
-    baser=readreg_offset(baser,4);
-    index=readreg_offset(index,4);
-
-    base+=get_offset(basereg);
-    base+=factor*get_offset(indexreg);
-
-    raw_mov_w_bmrr_indexed(base,baser,index,factor,s);
-    unlock(s);
-    unlock(baser);
-    unlock(index);
-}
-MENDFUNC(5,mov_w_bmrr_indexed,(IMM base, R4 baser, R4 index, IMM factor, R2 s))
-
-MIDFUNC(5,mov_b_bmrr_indexed,(IMM base, R4 baser, R4 index, IMM factor, R1 s))
-{
-    int basereg=baser;
-    int indexreg=index;
-
-    CLOBBER_MOV;
-    s=readreg(s,1);
-    baser=readreg_offset(baser,4);
-    index=readreg_offset(index,4);
-
-    base+=get_offset(basereg);
-    base+=factor*get_offset(indexreg);
-
-    raw_mov_b_bmrr_indexed(base,baser,index,factor,s);
+    raw_mov_b_mrr_indexed(baser,index,s);
     unlock(s);
     unlock(baser);
     unlock(index);
 }
-MENDFUNC(5,mov_b_bmrr_indexed,(IMM base, R4 baser, R4 index, IMM factor, R1 s))
-
+MENDFUNC(3,mov_b_mrr_indexed,(R4 baser, R4 index, R1 s))
 
-
-/* Read a long from base+baser+factor*index */
-MIDFUNC(5,mov_l_brrm_indexed,(W4 d, IMM base, R4 baser, R4 index, IMM factor))
-{
-    int basereg=baser;
-    int indexreg=index;
-
-    CLOBBER_MOV;
-    baser=readreg_offset(baser,4);
-    index=readreg_offset(index,4);
-    base+=get_offset(basereg);
-    base+=factor*get_offset(indexreg);
-    d=writereg(d,4);
-    raw_mov_l_brrm_indexed(d,base,baser,index,factor);
-    unlock(d);
-    unlock(baser);
-    unlock(index);
-}
-MENDFUNC(5,mov_l_brrm_indexed,(W4 d, IMM base, R4 baser, R4 index, IMM factor))
-
-
-MIDFUNC(5,mov_w_brrm_indexed,(W2 d, IMM base, R4 baser, R4 index, IMM factor))
-{
-    int basereg=baser;
-    int indexreg=index;
-
-    CLOBBER_MOV;
-    remove_offset(d,-1);
-    baser=readreg_offset(baser,4);
-    index=readreg_offset(index,4);
-    base+=get_offset(basereg);
-    base+=factor*get_offset(indexreg);
-    d=writereg(d,2);
-    raw_mov_w_brrm_indexed(d,base,baser,index,factor);
-    unlock(d);
-    unlock(baser);
-    unlock(index);
-}
-MENDFUNC(5,mov_w_brrm_indexed,(W2 d, IMM base, R4 baser, R4 index, IMM factor))
-
-
-MIDFUNC(5,mov_b_brrm_indexed,(W1 d, IMM base, R4 baser, R4 index, IMM factor))
-{
-    int basereg=baser;
-    int indexreg=index;
-
-    CLOBBER_MOV;
-    remove_offset(d,-1);
-    baser=readreg_offset(baser,4);
-    index=readreg_offset(index,4);
-    base+=get_offset(basereg);
-    base+=factor*get_offset(indexreg);
-    d=writereg(d,1);
-    raw_mov_b_brrm_indexed(d,base,baser,index,factor);
-    unlock(d);
-    unlock(baser);
-    unlock(index);
-}
-MENDFUNC(5,mov_b_brrm_indexed,(W1 d, IMM base, R4 baser, R4 index, IMM factor))
-
-/* Read a long from base+factor*index */
-MIDFUNC(4,mov_l_rm_indexed,(W4 d, IMM base, R4 index, IMM factor))
+/* Read a long from base+4*index */
+MIDFUNC(3,mov_l_rm_indexed,(W4 d, IMM base, R4 index))
 {
     int indexreg=index;
 
     if (isconst(index)) {
-       COMPCALL(mov_l_rm)(d,base+factor*live.state[index].val);
+       COMPCALL(mov_l_rm)(d,base+4*live.state[index].val);
        return;
     }
 
     CLOBBER_MOV;
     index=readreg_offset(index,4);
-    base+=get_offset(indexreg)*factor;
+    base+=get_offset(indexreg)*4;
     d=writereg(d,4);
 
-    raw_mov_l_rm_indexed(d,base,index,factor);
+    raw_mov_l_rm_indexed(d,base,index);
     unlock(index);
     unlock(d);
 }
-MENDFUNC(4,mov_l_rm_indexed,(W4 d, IMM base, R4 index, IMM factor))
-
+MENDFUNC(3,mov_l_rm_indexed,(W4 d, IMM base, R4 index))
 
 /* read the long at the address contained in s+offset and store in d */
 MIDFUNC(3,mov_l_rR,(W4 d, R4 s, IMM offset))
@@ -3127,10 +2986,6 @@ MENDFUNC(3,lea_l_brr,(W4 d, R4 s, IMM offset))
 
 MIDFUNC(5,lea_l_brr_indexed,(W4 d, R4 s, R4 index, IMM factor, IMM offset))
 {
-    if (!offset) {
-       COMPCALL(lea_l_rr_indexed)(d,s,index,factor);
-       return;
-    }
     CLOBBER_LEA;
     s=readreg(s,4);
     index=readreg(index,4);
@@ -3143,20 +2998,6 @@ MIDFUNC(5,lea_l_brr_indexed,(W4 d, R4 s, R4 index, IMM factor, IMM offset))
 }
 MENDFUNC(5,lea_l_brr_indexed,(W4 d, R4 s, R4 index, IMM factor, IMM offset))
 
-MIDFUNC(4,lea_l_rr_indexed,(W4 d, R4 s, R4 index, IMM factor))
-{
-    CLOBBER_LEA;
-    s=readreg(s,4);
-    index=readreg(index,4);
-    d=writereg(d,4);
-
-    raw_lea_l_rr_indexed(d,s,index,factor);
-    unlock(d);
-    unlock(index);
-    unlock(s);
-}
-MENDFUNC(4,lea_l_rr_indexed,(W4 d, R4 s, R4 index, IMM factor))
-
 /* write d to the long at the address contained in s+offset */
 MIDFUNC(3,mov_l_bRr,(R4 d, R4 s, IMM offset))
 {
@@ -3452,7 +3293,6 @@ MIDFUNC(2,test_b_rr,(R1 d, R1 s))
 }
 MENDFUNC(2,test_b_rr,(R1 d, R1 s))
 
-
 MIDFUNC(2,and_l_ri,(RW4 d, IMM i))
 {
     if (isconst (d) && ! needflags) {
@@ -3985,7 +3825,6 @@ MIDFUNC(5,call_r_02,(R4 r, R4 in1, R4 in2, IMM isize1, IMM isize2))
 }
 MENDFUNC(5,call_r_02,(R4 r, R4 in1, R4 in2, IMM isize1, IMM isize2))
 
-
 MIDFUNC(1,forget_about,(W4 r))
 {
     if (isinreg(r))
@@ -4633,7 +4472,6 @@ void init_comp(void)
            live.fate[i].mem=(uae_u32*)(fscratch+i);
     }
 
-
     for (i=0;i<N_REGS;i++) {
        live.nat[i].touched=0;
        live.nat[i].nholds=0;
@@ -4664,7 +4502,6 @@ void init_comp(void)
     raw_fp_init();
 }
 
-
 static void vinton(int i, uae_s8* vton, int depth)
 {
     int n;
@@ -5056,7 +4893,6 @@ void register_branch(uae_u32 not_taken, uae_u32 taken, uae_u8 cond)
     branch_cc=cond;
 }
 
-
 static uae_u32 get_handler_address(uae_u32 addr)
 {
     uae_u32 cl=cacheline(addr);
@@ -5110,35 +4946,36 @@ static void writemem_real(int address, int source, int offset, int size, int tmp
 #endif
 
     mov_l_rr(f,address);
-    shrl_l_ri(f,16);   /* The index into the baseaddr table */
-    mov_l_rm_indexed(f,(uae_u32)(baseaddr),f,4);
-
-    if (address==source && size>1) { /* IBrowse does this! */
-       add_l(f,address); /* f now has the final address */
-       switch(size) {
-        case 2: bswap_16(source); mov_w_Rr(f,source,0); bswap_16(source); break;
-        case 4: bswap_32(source); mov_l_Rr(f,source,0); bswap_32(source); break;
+    shrl_l_ri(f,16);  /* The index into the baseaddr table */
+    mov_l_rm_indexed(f,(uae_u32)(baseaddr),f);
+
+    if (address==source) { /* IBrowse does this! */
+        if (size > 1) {
+           add_l(f,address); /* f now holds the final address */
+           switch (size) {
+               case 2: bswap_16(source); mov_w_Rr(f,source,0);
+                       bswap_16(source); return;
+               case 4: bswap_32(source); mov_l_Rr(f,source,0);
+                       bswap_32(source); return;
+           }
        }
     }
-    else {
-       /* f now holds the offset */
-       switch(size) {
-        case 1: mov_b_mrr_indexed(address,f,1,source); break;
-        case 2: bswap_16(source); mov_w_mrr_indexed(address,f,1,source); bswap_16(source); break;
-        case 4: bswap_32(source); mov_l_mrr_indexed(address,f,1,source); bswap_32(source); break;
-       }
+    switch (size) { /* f now holds the offset */
+       case 1: mov_b_mrr_indexed(address,f,source); break;
+       case 2: bswap_16(source); mov_w_mrr_indexed(address,f,source);
+               bswap_16(source); break;           /* base, index, source */
+       case 4: bswap_32(source); mov_l_mrr_indexed(address,f,source);
+               bswap_32(source); break;
     }
 }
 
-
-
 static __inline__ void writemem(int address, int source, int offset, int size, int tmp)
 {
     int f=tmp;
 
     mov_l_rr(f,address);
     shrl_l_ri(f,16);   /* The index into the mem bank table */
-    mov_l_rm_indexed(f,(uae_u32)mem_banks,f,4);
+    mov_l_rm_indexed(f,(uae_u32)mem_banks,f);
     /* Now f holds a pointer to the actual membank */
     mov_l_rR(f,f,offset);
     /* Now f holds the address of the b/w/lput function */
@@ -5146,7 +4983,6 @@ static __inline__ void writemem(int address, int source, int offset, int size, i
     forget_about(tmp);
 }
 
-
 void writebyte(int address, int source, int tmp)
 {
     int  distrust;
@@ -5247,13 +5083,13 @@ static void readmem_real(int address, int dest, int offset, int size, int tmp)
 
     mov_l_rr(f,address);
     shrl_l_ri(f,16);   /* The index into the baseaddr table */
-    mov_l_rm_indexed(f,(uae_u32)baseaddr,f,4);
+    mov_l_rm_indexed(f,(uae_u32)baseaddr,f);
     /* f now holds the offset */
 
     switch(size) {
-     case 1: mov_b_rrm_indexed(dest,address,f,1); break;
-     case 2: mov_w_rrm_indexed(dest,address,f,1); bswap_16(dest); break;
-     case 4: mov_l_rrm_indexed(dest,address,f,1); bswap_32(dest); break;
+     case 1: mov_b_rrm_indexed(dest,address,f); break;
+     case 2: mov_w_rrm_indexed(dest,address,f); bswap_16(dest); break;
+     case 4: mov_l_rrm_indexed(dest,address,f); bswap_32(dest); break;
     }
     forget_about(tmp);
 }
@@ -5266,7 +5102,7 @@ static __inline__ void readmem(int address, int dest, int offset, int size, int
 
     mov_l_rr(f,address);
     shrl_l_ri(f,16);   /* The index into the mem bank table */
-    mov_l_rm_indexed(f,(uae_u32)mem_banks,f,4);
+    mov_l_rm_indexed(f,(uae_u32)mem_banks,f);
     /* Now f holds a pointer to the actual membank */
     mov_l_rR(f,f,offset);
     /* Now f holds the address of the b/w/lget function */
@@ -5349,7 +5185,7 @@ static __inline__ void get_n_addr_real(int address, int dest, int tmp)
     mov_l_rr(f,address);
     mov_l_rr(dest,address); // gb-- nop if dest==address
     shrl_l_ri(f,16);
-    mov_l_rm_indexed(f, (uae_u32)baseaddr, f, 4);
+    mov_l_rm_indexed(f,(uae_u32)baseaddr,f);
     add_l(dest,f);
     forget_about(tmp);
 }
@@ -5382,16 +5218,14 @@ void get_n_addr_jmp(int address, int dest, int tmp)
        f=dest;
     mov_l_rr(f,address);
     shrl_l_ri(f,16);   /* The index into the baseaddr bank table */
-    mov_l_rm_indexed(dest,(uae_u32)baseaddr,f,4);
+    mov_l_rm_indexed(dest,(uae_u32)baseaddr,f);
     add_l(dest,address);
     and_l_ri (dest, ~1);
     forget_about(tmp);
 #endif
 }
 
-
-/* base is a register, but dp is an actual value.
-   target is a register, as is tmp */
+/* base, target and tmp are registers, but dp is the actual opcode extension word */
 void calc_disp_ea_020(int base, uae_u32 dp, int target, int tmp)
 {
     int reg = (dp >> 12) & 15;
@@ -5449,10 +5283,10 @@ void calc_disp_ea_020(int base, uae_u32 dp, int target, int tmp)
     else { /* 68000 version */
        if ((dp & 0x800) == 0) { /* Sign extend */
            sign_extend_16_rr(target,reg);
-           lea_l_brr_indexed(target,base,target,1<<regd_shift,(uae_s32)((uae_s8)dp));
+           lea_l_brr_indexed(target,base,target,regd_shift,(uae_s32)(uae_s8)dp);
        }
        else {
-           lea_l_brr_indexed(target,base,reg,1<<regd_shift,(uae_s32)((uae_s8)dp));
+           lea_l_brr_indexed(target,base,reg,regd_shift,(uae_s32)(uae_s8)dp);
        }
     }
     forget_about(tmp);
@@ -6195,12 +6029,11 @@ void compile_block(cpu_history* pc_hist, int blocklen, int totcycles)
 #if USE_NORMAL_CALLING_CONVENTION
                    raw_inc_sp(4);
 #endif
-                   if (needed_flags) {
-                       //raw_mov_l_mi((uae_u32)&foink3,(uae_u32)opcode+65536);
-                   }
-                   else {
-                       //raw_mov_l_mi((uae_u32)&foink3,(uae_u32)opcode);
-                   }
+                   /*if (needed_flags)
+                       raw_mov_l_mi((uae_u32)&foink3,(uae_u32)opcode+65536);
+                   else
+                       raw_mov_l_mi((uae_u32)&foink3,(uae_u32)opcode);
+                    */
 
                    if (i<blocklen-1) {
                        uae_s8* branchadd;
@@ -6318,7 +6151,7 @@ void compile_block(cpu_history* pc_hist, int blocklen, int totcycles)
                    raw_and_l_ri(r,TAGMASK);
                    raw_mov_l_ri(r2,(uae_u32)popall_do_nothing);
                    raw_sub_l_mi((uae_u32)&countdown,scaled_cycles(totcycles));
-                   raw_cmov_l_rm_indexed(r2,(uae_u32)cache_tags,r,4,9);
+                   raw_cmov_l_rm_indexed(r2,(uae_u32)cache_tags,r,9);
                    raw_jmp_r(r2);
                }
                else if (was_comp && isconst(PC_P)) {
@@ -6350,7 +6183,7 @@ void compile_block(cpu_history* pc_hist, int blocklen, int totcycles)
                    raw_and_l_ri(r,TAGMASK);
                    raw_mov_l_ri(r2,(uae_u32)popall_do_nothing);
                    raw_sub_l_mi((uae_u32)&countdown,scaled_cycles(totcycles));
-                   raw_cmov_l_rm_indexed(r2,(uae_u32)cache_tags,r,4,9);
+                   raw_cmov_l_rm_indexed(r2,(uae_u32)cache_tags,r,9);
                    raw_jmp_r(r2);
                }
            }
index 243c541dd9cb6deb051b5a5c5a169074ce7d0ffb..45329ce9dd7513eddb3ed207e11bfc1716ddfa87 100755 (executable)
--- a/custom.c
+++ b/custom.c
@@ -15,7 +15,7 @@
 #define SPR0_HPOS 0x15
 #define MAX_SPRITES 8
 #define SPRITE_COLLISIONS
-#define SPEEDUP
+//#define SPEEDUP
 
 #include "sysconfig.h"
 #include "sysdeps.h"
@@ -184,7 +184,7 @@ static int last_sprite_point, nr_armed;
 static int sprite_width, sprres, sprite_buffer_res;
 
 #ifdef CPUEMU_6
-int cycle_line[256];
+uae_u8 cycle_line[256];
 #endif
 
 static uae_u32 bpl1dat;
@@ -248,7 +248,7 @@ struct copper {
     /* The current instruction words.  */
     unsigned int i1, i2;
     unsigned int saved_i1, saved_i2;
-    enum copper_states state;
+    enum copper_states state, state_prev;
     /* Instruction pointer.  */
     uaecptr ip, saved_ip;
     int hpos, vpos;
@@ -2438,12 +2438,13 @@ static void VPOSW (uae_u16 v)
 
 STATIC_INLINE uae_u16 VHPOSR (void)
 {
-    uae_u16 v = GETVPOS() << 8;
+    uae_u16 vp = GETVPOS();
     uae_u16 hp = GETHPOS();
-    v |= hp;
+    vp <<= 8;
+    vp |= hp;
     if (currprefs.cpu_level >= 2)
        hsyncdelay();
-    return v;
+    return vp;
 }
 
 STATIC_INLINE void COP1LCH (uae_u16 v) { cop1lc = (cop1lc & 0xffff) | ((uae_u32)v << 16); }
@@ -2462,6 +2463,8 @@ static void COPJMP (int num)
 
     unset_special (SPCFLAG_COPPER);
     cop_state.ignore_next = 0;
+    if (!oldstrobe)
+       cop_state.state_prev = cop_state.state;
     cop_state.state = COP_read1;
     cop_state.vpos = vpos;
     cop_state.hpos = current_hpos () & ~1;
@@ -2471,8 +2474,8 @@ static void COPJMP (int num)
     if (dmaen (DMA_COPPER)) {
        copper_enabled_thisline = 1;
        set_special (SPCFLAG_COPPER);
-    } else if (oldstrobe > 0 && oldstrobe != num) {
-       /* dma disabled and accessing both COPxJMPs -> copper stops! */
+    } else if (oldstrobe > 0 && oldstrobe != num && cop_state.state_prev == COP_wait) {
+       /* dma disabled, copper idle and accessing both COPxJMPs -> copper stops! */
        cop_state.state = COP_stop;
     }
 }
@@ -3706,7 +3709,8 @@ void blitter_done_notify (void)
 
     cop_state.hpos = current_hpos () & ~1;
     cop_state.vpos = vpos;
-    cop_state.state = COP_wait;
+    /* apparently there is small delay until copper wakes up.. */
+    cop_state.state = COP_wait_in2;
     compute_spcflag_copper ();
 }
 
@@ -3891,7 +3895,7 @@ static void do_sprites (int hpos)
 
 #ifndef CUSTOM_SIMPLE
     maxspr = hpos;
-    minspr = last_sprite_hpos;
+    minspr = last_sprite_hpos + 1;
 
     if (minspr >= SPR0_HPOS + MAX_SPRITES * 4 || maxspr < SPR0_HPOS)
        return;
@@ -3901,7 +3905,7 @@ static void do_sprites (int hpos)
     if (minspr < SPR0_HPOS)
        minspr = SPR0_HPOS;
 
-    for (i = minspr; i < maxspr; i++) {
+    for (i = minspr; i <= maxspr; i++) {
        int cycle = -1;
        int num = (i - SPR0_HPOS) / 4;
        switch ((i - SPR0_HPOS) & 3)
@@ -4264,25 +4268,10 @@ static void hsync_handler (void)
     if (currprefs.cpu_cycle_exact || currprefs.blitter_cycle_exact) {
        decide_blitter (hpos);
        memset (cycle_line, 0, sizeof cycle_line);
-#if 1
-{
-       cycle_line[maxhpos - 1] = CYCLE_REFRESH;
        cycle_line[1] = CYCLE_REFRESH;
+       cycle_line[3] = CYCLE_REFRESH;
        cycle_line[5] = CYCLE_REFRESH;
        cycle_line[7] = CYCLE_REFRESH;
-}
-#endif
-#if 0
-{
-       int i;
-       for (i = 12; i < 0x16; i += 2)
-           cycle_line[i] = CYCLE_NOCPU;
-       //cycle_line[4] = CYCLE_REFRESH;
-       //cycle_line[6] = CYCLE_REFRESH;
-       //cycle_line[8] = CYCLE_REFRESH;
-       //cycle_line[10] = CYCLE_REFRESH;
-}
-#endif
     }
 #endif
     if ((currprefs.chipset_mask & CSMASK_AGA) || (!currprefs.chipset_mask & CSMASK_ECS_AGNUS))
index f0266b911812cb9a17a7b19081c60e7b77fbd8af..08910f97524ed176b88b628b75bc3bb49cbce8d0 100755 (executable)
--- a/drawing.c
+++ b/drawing.c
@@ -793,7 +793,7 @@ static void decode_ham (int pix, int stoppos)
 #endif
                ham_lastcolor = colors_for_drawing.color_regs_ecs[pv];
 
-           ham_linebuf[ham_decode_pixel++] = 0; //ham_lastcolor;
+           ham_linebuf[ham_decode_pixel++] = ham_lastcolor;
        }
 #ifdef AGA
     } else if (currprefs.chipset_mask & CSMASK_AGA) {
diff --git a/fpp.c b/fpp.c
index f1365d00bbbfdfd9f3b0d047c95438e23ab41e19..8d577c575e89967d879893253f07bab84f93ebec 100755 (executable)
--- a/fpp.c
+++ b/fpp.c
@@ -351,7 +351,6 @@ STATIC_INLINE int get_fp_value (uae_u32 opcode, uae_u16 extra, fptype *src)
            break;
        case 3:
            tmppc = m68k_getpc ();
-           write_log ("####### tpmpc %08lx\n", tmppc);
            tmp = next_iword ();
            ad = get_disp_ea_020 (tmppc, tmp);
            break;
@@ -1272,7 +1271,10 @@ void fpp_opp (uae_u32 opcode, uae_u16 extra)
            regs.fp[reg] = sinh (src);
            break;
        case 0x03: /* FINTRZ */
-           regs.fp[reg] = (int) src;
+           if (src >= 0.0)
+               regs.fp[reg] = floor (src);
+           else
+               regs.fp[reg] = ceil (src);
            break;
        case 0x04: /* FSQRT */
        case 0x41:
@@ -1298,7 +1300,7 @@ void fpp_opp (uae_u32 opcode, uae_u16 extra)
            break;
        case 0x0d: /* FATANH */
 #if 1  /* The BeBox doesn't have atanh, and it isn't in the HPUX libm either */
-           regs.fp[reg] = log ((1 + src) / (1 - src)) / 2;
+           regs.fp[reg] = 0.5 * log ((1 + src) / (1 - src));
 #else
            regs.fp[reg] = atanh (src);
 #endif
@@ -1371,7 +1373,14 @@ void fpp_opp (uae_u32 opcode, uae_u16 extra)
                fround (reg);
            break;
        case 0x21: /* FMOD */
-           regs.fp[reg] = regs.fp[reg] - (double) ((int) (regs.fp[reg] / src)) * src;
+           {
+             fptype divi = regs.fp[reg] / src;
+
+             if (divi >= 0.0)
+               regs.fp[reg] -= src * floor (divi);
+             else
+               regs.fp[reg] -= src * ceil (divi);
+           }
            break;
        case 0x22: /* FADD */
        case 0x62:
@@ -1391,10 +1400,14 @@ void fpp_opp (uae_u32 opcode, uae_u16 extra)
            regs.fp[reg] /= src;
            break;
        case 0x25: /* FREM */
-           regs.fp[reg] = regs.fp[reg] - (double) ((int) (regs.fp[reg] / src + 0.5)) * src;
+           regs.fp[reg] -= src * floor ((regs.fp[reg] / src) + 0.5);
            break;
        case 0x26: /* FSCALE */
+#ifdef ldexp
+           regs.fp[reg] = ldexp (regs.fp[reg], (int) src);
+#else
            regs.fp[reg] *= exp (*fp_ln_2 * (int) src);
+#endif
            break;
        case 0x27: /* FSGLMUL */
            regs.fp[reg] *= src;
index d49f03d3d58a062a85a0628ce4c6acd2ef76bc28..37f80b48ef878065a7d59cf8ceb0e043c4ad2488 100755 (executable)
--- a/gencpu.c
+++ b/gencpu.c
@@ -2012,13 +2012,15 @@ static void gen_opcode (unsigned long int opcode)
        fill_prefetch_next();
        start_brace ();
        printf ("\tuae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src;\n");
-       if (using_ce)
+       if (using_ce) {
            printf ("\tint cycles = 36 * %d, bits;\n", CYCLE_UNIT / 2);
+           printf ("\tuae_u32 usrc;\n");
+       }
        genflags (flag_logical, sz_long, "newv", "", "");
        if (using_ce) {
-           printf ("\tsrc <<= 1;\n");
-           printf ("\tfor(bits = 0; bits < 16 && src; bits++, src >>= 1)\n");
-           printf ("\t\tif ((src & 3) == 1 || (src & 3) == 2) cycles += 2 * %d;\n", CYCLE_UNIT / 2);
+           printf ("\tusrc = ((uae_u32)src) << 1;\n");
+           printf ("\tfor(bits = 0; bits < 16 && usrc; bits++, usrc >>= 1)\n");
+           printf ("\t\tif ((usrc & 3) == 1 || (usrc & 3) == 2) cycles += 2 * %d;\n", CYCLE_UNIT / 2);
            addcycles3 ("\t");
        }
        genastore ("newv", curi->dmode, "dstreg", sz_long, "dst");
index 93e1f2b1273e8a3664784eaed1ad2101e51c4ad5..0157dc68750d1c5552bf5eba88bac14df8145185 100755 (executable)
@@ -308,22 +308,15 @@ DECLARE(zero_extend_8_rr(W4 d, R1 s));
 DECLARE(imul_64_32(RW4 d, RW4 s));
 DECLARE(mul_64_32(RW4 d, RW4 s));
 DECLARE(imul_32_32(RW4 d, R4 s));
-DECLARE(mul_32_32(RW4 d, R4 s));
 DECLARE(mov_b_rr(W1 d, R1 s));
 DECLARE(mov_w_rr(W2 d, R2 s));
-DECLARE(mov_l_rrm_indexed(W4 d,R4 baser, R4 index, IMM factor));
-DECLARE(mov_w_rrm_indexed(W2 d, R4 baser, R4 index, IMM factor));
-DECLARE(mov_b_rrm_indexed(W1 d, R4 baser, R4 index, IMM factor));
-DECLARE(mov_l_mrr_indexed(R4 baser, R4 index, IMM factor, R4 s));
-DECLARE(mov_w_mrr_indexed(R4 baser, R4 index, IMM factor, R2 s));
-DECLARE(mov_b_mrr_indexed(R4 baser, R4 index, IMM factor, R1 s));
-DECLARE(mov_l_bmrr_indexed(IMM base, R4 baser, R4 index, IMM factor, R4 s));
-DECLARE(mov_w_bmrr_indexed(IMM base, R4 baser, R4 index, IMM factor, R2 s));
-DECLARE(mov_b_bmrr_indexed(IMM base, R4 baser, R4 index, IMM factor, R1 s));
-DECLARE(mov_l_brrm_indexed(W4 d, IMM base, R4 baser, R4 index, IMM factor));
-DECLARE(mov_w_brrm_indexed(W2 d, IMM base, R4 baser, R4 index, IMM factor));
-DECLARE(mov_b_brrm_indexed(W1 d, IMM base, R4 baser, R4 index, IMM factor));
-DECLARE(mov_l_rm_indexed(W4 d, IMM base, R4 index, IMM factor));
+DECLARE(mov_l_rrm_indexed(W4 d, R4 baser, R4 index));
+DECLARE(mov_w_rrm_indexed(W2 d, R4 baser, R4 index));
+DECLARE(mov_b_rrm_indexed(W1 d, R4 baser, R4 index));
+DECLARE(mov_l_mrr_indexed(R4 baser, R4 index, R4 s));
+DECLARE(mov_w_mrr_indexed(R4 baser, R4 index, R2 s));
+DECLARE(mov_b_mrr_indexed(R4 baser, R4 index, R1 s));
+DECLARE(mov_l_rm_indexed(W4 d, IMM base, R4 index));
 DECLARE(mov_l_rR(W4 d, R4 s, IMM offset));
 DECLARE(mov_w_rR(W2 d, R4 s, IMM offset));
 DECLARE(mov_b_rR(W1 d, R4 s, IMM offset));
@@ -338,7 +331,6 @@ DECLARE(mov_w_Rr(R4 d, R2 s, IMM offset));
 DECLARE(mov_b_Rr(R4 d, R1 s, IMM offset));
 DECLARE(lea_l_brr(W4 d, R4 s, IMM offset));
 DECLARE(lea_l_brr_indexed(W4 d, R4 s, R4 index, IMM factor, IMM offset));
-DECLARE(lea_l_rr_indexed(W4 d, R4 s, R4 index, IMM factor));
 DECLARE(mov_l_bRr(R4 d, R4 s, IMM offset));
 DECLARE(mov_w_bRr(R4 d, R2 s, IMM offset));
 DECLARE(mov_b_bRr(R4 d, R1 s, IMM offset));
index 8938d630ea1c23db2e495d7b9b799c8b80e6bc1b..40e89c0f932becbfc9c0eb33853c57ca2c729781 100755 (executable)
--- a/memory.c
+++ b/memory.c
@@ -522,7 +522,7 @@ uae_u32 REGPARAM2 dummy_wget (uaecptr addr)
 #ifdef JIT
     special_mem |= S_READ;
 #endif
-    if (currprefs.illegal_mem) {
+    if (currprefs.illegal_mem && addr < 0xf00000) {
        if (illegal_count < MAX_ILG) {
            illegal_count++;
            write_log ("Illegal wget at %08lx PC=%x\n", addr, m68k_getpc());
index 8ae547982b5192d471b083d5b34798efd4e895a5..8aa50cfedfec6b821f636367b304b2b681db7f75 100755 (executable)
@@ -424,36 +424,28 @@ static void BlitRect(LPDIRECT3DDEVICE9 dev, LPDIRECT3DTEXTURE9 src,
 
 static void calc (float *xp, float *yp, float *sxp, float *syp)
 {
-    int xm, ym;
-    int fx, fy;
     float x, y, sx, sy, tx, ty;
-    double mx, my;
+    double mx, my, fx, fy;
 
-    xm = currprefs.gfx_lores ? 2 : 1;
-    ym = currprefs.gfx_linedbl ? 1 : 2;
-#if 0
-    if (window_w >= 1024)
-       xm *= 2;
-    else if (window_w < 500)
-       xm /= 2;
-    if (window_h >= 960)
-       ym *= 2;
-    else if (window_h < 350)
-       ym /= 2;
-#endif
-    fx = (tin_w * xm - window_w) / 2;
-    fy = (tin_h * ym - window_h) / 2;
+    fx = (twidth * window_w / tin_w) / 2;
+    fy = (theight * window_h / tin_h) / 2;
+
+    tx = fx / ((currprefs.gfx_filter_horiz_zoom_mult + currprefs.gfx_filter_horiz_zoom / 4) / 1000.0);
+    ty = fy / ((currprefs.gfx_filter_vert_zoom_mult + currprefs.gfx_filter_vert_zoom / 4) / 1000.0);
+
+    mx = (currprefs.gfx_filter_horiz_offset / 1000.0) * fx;
+    my = (currprefs.gfx_filter_vert_offset / 1000.0) * fy;
 
-    mx = (currprefs.gfx_filter_horiz_zoom_mult * (currprefs.gfx_filter_horiz_zoom + 100)) / (100.0 * 1000.0);
-    my = (currprefs.gfx_filter_vert_zoom_mult * (currprefs.gfx_filter_vert_zoom + 100)) / (100.0 * 1000.0);
+    x = -tx;
+    y = -ty;
+    sx = tx;
+    sy = ty;
 
-    tx = x = (float)((window_w * currprefs.gfx_filter_horiz_offset / 100.0) * mx);
-    ty = y = (float)((window_h * currprefs.gfx_filter_vert_offset / 100.0) * my);
-    sx = x + (float)((twidth * window_w / tin_w) * mx);
-    sy = y + (float)((theight * window_h / tin_h) * my);
+    x += fx + mx;
+    y += fy + my;
+    sx += tx + mx;
+    sy += ty + my;
 
-    x -= fx; y -= fy;
-    sx += 2 * fx; sy += 2 * fy;
     *xp = x; *yp = y;
     *sxp = sx; *syp = sy;
 }
index 2f1452812386f32d56d39a5fb224cb6c1de9e116..390b9db9dd2a8fc21042918bb791ce1e786d6c00 100755 (executable)
@@ -459,22 +459,31 @@ void OGL_resize (int width, int height)
 
 static void OGL_dorender (int newtex)
 {
-    float x1, y1, x2, y2, tx, ty;
     uae_u8 *data = gfxvidinfo.bufmem;
-    int fx, fy, xm, ym;
+    float x1, y1, x2, y2, tx, ty;
+    double mx, my, fx, fy, xm, ym;
 
     xm = currprefs.gfx_lores ? 2 : 1;
     ym = currprefs.gfx_linedbl ? 1 : 2;
-    if (w_width >= 1024)
-       xm *= 2;
-    else if (w_width < 500)
-       xm /= 2;
-    if (w_height >= 960)
-       ym *= 2;
-    else if (w_height < 350)
-       ym /= 2;
-    fx = (t_width * xm - w_width) / 2;
-    fy = (t_height * ym - w_height) / 2;
+
+    fx = (required_texture_size * w_width / t_width) / 2.0;
+    fy = (required_texture_size * w_height / t_height) / 2.0;
+
+    tx = fx / ((currprefs.gfx_filter_horiz_zoom_mult + currprefs.gfx_filter_horiz_zoom / 4.0) / 1000.0);
+    ty = fy / ((currprefs.gfx_filter_vert_zoom_mult + currprefs.gfx_filter_vert_zoom / 4.0) / 1000.0);
+
+    mx = (currprefs.gfx_filter_horiz_offset / 1000.0) * fx;
+    my = (currprefs.gfx_filter_vert_offset / 1000.0) * fy;
+
+    x1 = -tx;
+    y1 = -ty;
+    x2 = tx;
+    y2 = ty;
+    x1 += fx + mx;
+    y1 += fy + my;
+    x2 += tx + mx;
+    y2 += ty + my;
+
 
 #ifdef FSAA
     glEnable (GL_MULTISAMPLE_ARB);
@@ -483,15 +492,6 @@ static void OGL_dorender (int newtex)
     glMatrixMode (GL_MODELVIEW);
     glLoadIdentity ();
 
-    tx = x1 = (float)(w_width * currprefs.gfx_filter_horiz_offset / 100.0);
-    ty = y1 = (float)(w_height * currprefs.gfx_filter_vert_offset / 100.0);
-    x2 = x1 + (float)((required_texture_size * w_width / t_width) * ((currprefs.gfx_filter_horiz_zoom_mult * (currprefs.gfx_filter_horiz_zoom + 100)) / (100.0 * 1000.0)));
-    y2 = y1 + (float)((required_texture_size * w_height / t_height) * ((currprefs.gfx_filter_vert_zoom_mult * (currprefs.gfx_filter_vert_zoom + 100)) / (100.0 * 1000.0)));
-    x1 += (x2 - tx) / 2;
-    y1 += (y2 - ty) / 2;
-    x1 -= fx; y1 -= fy;
-    x2 += 2 * fx; y2 += 2 * fy;
-
     glBindTexture (GL_TEXTURE_2D, tex[0]);
     if (newtex)
        glTexSubImage2D (GL_TEXTURE_2D, 0, 0, 0, t_width, t_height, ti2d_format, ti2d_type, data);
index bd28b00855ec3e430a66607887cbf5c7182012b1..30a024367de6b6f7c5b2782844308170c6a9884f 100755 (executable)
 #define IDC_CAPS                        1077
 #define IDC_ABIME                       1078
 #define IDC_AMIGASYS                    1079
+#define IDC_AMIGASYS2                   1080
+#define IDC_AMIKIT                      1080
 #define IDC_RICHEDIT1                   1091
 #define IDC_RICHEDIT2                   1092
 #define IDC_CONTRIBUTORS                1124
index a84020ade516d6f5e9eae4b7d78a31ffb7c11af6..e4167072718ff1468f38f3b27e2a4c1ab9c08a02 100755 (executable)
@@ -37,21 +37,21 @@ EXSTYLE WS_EX_CONTEXTHELP
 FONT 8, "MS Sans Serif", 0, 0, 0x1
 BEGIN
     GROUPBOX        "System ROM Settings",-1,5,0,290,74
-    RTEXT           "Main ROM File:",IDC_ROMTEXT,10,15,75,10
+    RTEXT           "Main ROM file:",IDC_ROMTEXT,10,15,75,10
     COMBOBOX        IDC_ROMFILE,89,12,186,75,CBS_DROPDOWN | CBS_AUTOHSCROLL | CBS_SORT | WS_VSCROLL | WS_TABSTOP
     PUSHBUTTON      "...",IDC_KICKCHOOSER,280,10,10,15
-    RTEXT           "Extended ROM File:",IDC_ROMFILE2TEXT,10,35,75,10
+    RTEXT           "Extended ROM file:",IDC_ROMFILE2TEXT,10,35,75,10
     COMBOBOX        IDC_ROMFILE2,89,31,186,75,CBS_DROPDOWN | CBS_AUTOHSCROLL | CBS_SORT | WS_VSCROLL | WS_TABSTOP
     PUSHBUTTON      "...",IDC_ROMCHOOSER2,280,30,10,15
-    CONTROL         "MapROM emulation [] Creates BlizKick-compatible memory area.",IDC_MAPROM,
+    CONTROL         "MapROM emulation [] Creates BlizKick-compatible memory area.",IDC_MAPROM,
                     "Button",BS_AUTOCHECKBOX | WS_TABSTOP,95,54,82,10
     CONTROL         "ShapeShifter support [] Patches the system ROM for ShapeShifter compatibility.",IDC_KICKSHIFTER,
                     "Button",BS_AUTOCHECKBOX | WS_TABSTOP,187,54,80,10
     GROUPBOX        "Miscellaneous",-1,5,76,290,57
-    RTEXT           "Cartridge ROM File:",IDC_FLASHTEXT2,8,93,75,10
+    RTEXT           "Cartridge ROM file:",IDC_FLASHTEXT2,8,93,75,10
     COMBOBOX        IDC_CARTFILE,89,90,186,75,CBS_DROPDOWN | CBS_AUTOHSCROLL | CBS_SORT | WS_VSCROLL | WS_TABSTOP
     PUSHBUTTON      "...",IDC_CARTCHOOSER,280,90,10,15
-    RTEXT           "Flash RAM File:",IDC_FLASHTEXT,8,112,75,10
+    RTEXT           "Flash RAM file:",IDC_FLASHTEXT,8,112,75,10
     EDITTEXT        IDC_FLASHFILE,89,110,185,13,ES_AUTOHSCROLL
     PUSHBUTTON      "...",IDC_FLASHCHOOSER,280,110,10,15
 END
@@ -87,7 +87,7 @@ BEGIN
     COMBOBOX        IDC_DA_MODE,35,183,58,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | NOT WS_VISIBLE | WS_VSCROLL | WS_TABSTOP
     CONTROL         "",IDC_DA_SLIDER,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | NOT WS_VISIBLE | WS_TABSTOP,99,179,101,20
     PUSHBUTTON      "Detect Pixel Format",IDC_TEST16BIT,210,181,73,14
-    LTEXT           "FPS Adj.:",IDC_REFRESH2TEXT,17,149,30,8
+    LTEXT           "FPS adj.:",IDC_REFRESH2TEXT,17,149,30,8
     CONTROL         "",IDC_FRAMERATE2,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,47,144,127,20
     EDITTEXT        IDC_RATE2TEXT,178,148,26,12,ES_CENTER | ES_READONLY
     COMBOBOX        IDC_RESOLUTIONDEPTH,112,27,32,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
@@ -131,7 +131,7 @@ BEGIN
     CONTROL         "68040",IDC_CPU6,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,10,108,66,10
     CONTROL         "More compatible [] Emulate 68000's prefetch registers. More compatible but slower.",IDC_COMPATIBLE,
                     "Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,10,130,70,10
-    CONTROL         "JIT [] Enable just-in-time CPU emulator. Significantly increases the speed of CPU emulation. Requires 68020 or 68040 CPU.",IDC_JITENABLE,
+    CONTROL         "JIT [] Enable just-in-time CPU emulator. Significantly increases the speed of the CPU emulation. Requires 68020 or 68040 CPU.",IDC_JITENABLE,
                     "Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,145,64,10
     GROUPBOX        "CPU Emulation Speed",IDC_STATIC,90,5,205,86
     CONTROL         "Fastest possible, but maintain chipset timing",IDC_CS_HOST,
@@ -192,8 +192,8 @@ BEGIN
     PUSHBUTTON      "...",IDC_DF3,287,109,10,15
     GROUPBOX        "New Floppy Disk Image",IDC_SETTINGSTEXT,5,183,289,35
     COMBOBOX        IDC_FLOPPYTYPE,16,196,51,50,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
-    PUSHBUTTON      "Create standard disk [] Creates a standard 880 KB ADF disk image.",IDC_CREATE,76,196,97,15
-    PUSHBUTTON      "Create custom disk [] Creates a low level (MFM) ADF disk image (about 2MB). Useful for programs that use non-standard disk formats (for example some save disks or DOS-formatted floppies)",IDC_CREATE_RAW,183,196,101,15
+    PUSHBUTTON      "Create Standard Disk [] Creates a standard 880 KB ADF disk image.",IDC_CREATE,76,196,97,15
+    PUSHBUTTON      "Create Custom Disk [] Creates a low level (MFM) ADF disk image (about 2MB). Useful for programs that use non-standard disk formats (for example some save disks or DOS-formatted floppies)",IDC_CREATE_RAW,183,196,101,15
     GROUPBOX        "Floppy Drive Emulation Speed",IDC_SETTINGSTEXT2,5,144,289,35
     CONTROL         "",IDC_FLOPPYSPD,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,32,152,116,20
     EDITTEXT        IDC_FLOPPYSPDTEXT,169,155,107,12,ES_CENTER | ES_READONLY
@@ -209,9 +209,9 @@ EXSTYLE WS_EX_CONTEXTHELP
 FONT 8, "MS Sans Serif", 0, 0, 0x1
 BEGIN
     CONTROL         "List1",IDC_VOLUMELIST,"SysListView32",LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_ALIGNLEFT | LVS_NOSORTHEADER | WS_BORDER | WS_TABSTOP,5,0,290,182
-    PUSHBUTTON      "Add &directory...",IDC_NEW_FS,5,186,60,15
-    PUSHBUTTON      "Add &hardfile...",IDC_NEW_HF,70,186,60,15
-    PUSHBUTTON      "Add ha&rd drive...",IDC_NEW_HD,135,186,60,15
+    PUSHBUTTON      "Add &Directory...",IDC_NEW_FS,5,186,60,15
+    PUSHBUTTON      "Add &Hardfile...",IDC_NEW_HF,70,186,60,15
+    PUSHBUTTON      "Add Ha&rd Drive...",IDC_NEW_HD,135,186,60,15
     PUSHBUTTON      "Remove",IDC_REMOVE,235,186,60,15
     PUSHBUTTON      "&Properties",IDC_EDIT,235,207,60,15
     CONTROL         "Add PC drives at startup",IDC_MAPDRIVES,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,5,205,100,10,0,HIDC_MAPDRIVES
@@ -234,7 +234,7 @@ BEGIN
     GROUPBOX        "Volume",IDC_STATIC,131,30,164,31
     CONTROL         "",IDC_SOUNDVOLUME,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,137,38,105,20
     EDITTEXT        IDC_SOUNDVOLUME2,247,41,40,12,ES_CENTER | ES_READONLY
-    GROUPBOX        "Sound buffer size",IDC_STATIC,132,67,164,31
+    GROUPBOX        "Sound Buffer Size",IDC_STATIC,132,67,164,31
     CONTROL         "Slider1",IDC_SOUNDBUFFERRAM,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,138,75,106,19
     EDITTEXT        IDC_SOUNDBUFFERMEM,248,78,40,12,ES_CENTER | ES_READONLY
     GROUPBOX        "Settings",IDC_SOUNDINTERPOLATION2,6,101,290,60
@@ -277,14 +277,14 @@ BEGIN
     CONTROL         "Ignore link",IDC_CONFIGNOLINK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,146,206,48,10
     EDITTEXT        IDC_EDITPATH,199,161,49,15,ES_AUTOHSCROLL | WS_DISABLED,0,HIDC_EDITPATH
     CONTROL         "Autoload",IDC_CONFIGAUTO,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,253,163,42,10
-    GROUPBOX        "Additional information",IDC_STATIC,199,179,96,38,BS_LEFT
+    GROUPBOX        "Additional Information",IDC_STATIC,199,179,96,38,BS_LEFT
     PUSHBUTTON      "View",IDC_VIEWINFO,210,195,35,15
     PUSHBUTTON      "Set",IDC_SETINFO,250,195,35,15
     PUSHBUTTON      "Load",IDC_QUICKLOAD,5,225,40,15
     PUSHBUTTON      "Save",IDC_QUICKSAVE,50,225,40,15
-    PUSHBUTTON      "Load from...",IDC_LOAD,125,225,45,15
-    PUSHBUTTON      "Save as...",IDC_SAVE,175,225,40,15
+    PUSHBUTTON      "Load From...",IDC_LOAD,125,225,45,15
     PUSHBUTTON      "Delete",IDC_DELETE,255,225,40,15
+    PUSHBUTTON      "Save As...",IDC_SAVE,175,225,40,15
 END
 
 IDD_PORTS DIALOGEX 0, 0, 300, 222
@@ -297,7 +297,7 @@ BEGIN
     PUSHBUTTON      "Flush print job",IDC_FLUSHPRINTER,220,14,58,12
     CONTROL         "PostScript detection",IDC_PSPRINTERDETECT,"Button",BS_AUTOCHECKBOX | BS_VCENTER | WS_TABSTOP,11,33,78,12
     CONTROL         "PostScript printer emulation",IDC_PSPRINTER,"Button",BS_AUTOCHECKBOX | BS_VCENTER | WS_TABSTOP,93,33,100,12
-    RTEXT           "Autoflush timeout [] Time in seconds after pending print job is automatically flushed.",IDC_PRINTERAUTOFLUSHTXT,202,32,57,15,SS_NOTIFY | SS_CENTERIMAGE
+    RTEXT           "Autoflush timeout [] Time in seconds after pending print job is automatically flushed.",IDC_PRINTERAUTOFLUSHTXT,202,32,57,15,SS_NOTIFY | SS_CENTERIMAGE
     EDITTEXT        IDC_PRINTERAUTOFLUSH,263,33,25,12,ES_NUMBER
     RTEXT           "Ghostscript extra parameters:",IDC_STATIC,12,49,91,15,SS_CENTERIMAGE
     EDITTEXT        IDC_PS_PARAMS,120,50,169,12,ES_AUTOHSCROLL
@@ -346,7 +346,8 @@ BEGIN
     CONTROL         "",IDC_CAPS,"RICHEDIT",TCS_SCROLLOPPOSITE | TCS_RAGGEDRIGHT | TCS_MULTISELECT | WS_DISABLED,200,145,80,15
     CONTROL         "",IDC_ABIME,"RICHEDIT",TCS_SCROLLOPPOSITE | TCS_RAGGEDRIGHT | TCS_MULTISELECT | WS_DISABLED,110,145,80,15
     CONTROL         "",IDC_CLOANTOHOME,"RICHEDIT",TCS_SCROLLOPPOSITE | TCS_RAGGEDRIGHT | TCS_MULTISELECT | WS_DISABLED,20,90,80,20
-    CONTROL         "",IDC_AMIGASYS,"RICHEDIT",TCS_SCROLLOPPOSITE | TCS_RAGGEDRIGHT | TCS_MULTISELECT | WS_DISABLED,110,169,80,15
+    CONTROL         "",IDC_AMIGASYS,"RICHEDIT",TCS_SCROLLOPPOSITE | TCS_RAGGEDRIGHT | TCS_MULTISELECT | WS_DISABLED,63,169,80,15
+    CONTROL         "",IDC_AMIKIT,"RICHEDIT",TCS_SCROLLOPPOSITE | TCS_RAGGEDRIGHT | TCS_MULTISELECT | WS_DISABLED,157,169,80,15
 END
 
 IDD_MISC1 DIALOGEX 0, 0, 300, 219
@@ -443,7 +444,7 @@ END
 
 IDD_SETINFO DIALOGEX 0, 0, 229, 85
 STYLE DS_SETFONT | DS_MODALFRAME | DS_SETFOREGROUND | DS_3DLOOK | DS_CENTER | DS_CENTERMOUSE | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
-CAPTION "Info Settings"
+CAPTION "Additional Information Settings"
 FONT 8, "MS Sans Serif", 0, 0, 0x0
 BEGIN
     RTEXT           "Path:",-1,5,20,24,15,SS_CENTERIMAGE
@@ -458,11 +459,11 @@ STYLE DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD
 FONT 8, "MS Sans Serif", 0, 0, 0x0
 BEGIN
     GROUPBOX        "Chipset",IDC_STATIC,14,11,145,82
-    CONTROL         "OCS [] Original Amiga chipset. A1000 and most A500s.",IDC_OCS,
+    CONTROL         "OCS [] Original chipset. A1000 and most A500s.",IDC_OCS,
                     "Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,38,31,51,10
-    CONTROL         "ECS Agnus [] Enhanced Chipset (ECS Agnus chip only). Later A500 and A2000 hardware revisions.",IDC_ECS_AGNUS,
+    CONTROL         "ECS Agnus [] Enhanced chipset (ECS Agnus chip only). Later A500 and A2000 hardware revisions.",IDC_ECS_AGNUS,
                     "Button",BS_AUTORADIOBUTTON | WS_TABSTOP,38,47,55,10
-    CONTROL         "Full ECS [] Full ECS Chipset (ECS Agnus and ECS Denise chips). A500+, A600, A3000.",IDC_ECS,
+    CONTROL         "Full ECS [] Full ECS chipset (ECS Agnus and ECS Denise chips). A500+, A600 and A3000.",IDC_ECS,
                     "Button",BS_AUTORADIOBUTTON | WS_TABSTOP,38,63,52,10
     CONTROL         "AGA [] Advanced Graphics Architecture chipset. A1200, A4000 and CD32.",IDC_AGA,
                     "Button",BS_AUTORADIOBUTTON | WS_TABSTOP,101,31,51,10
@@ -678,7 +679,7 @@ BEGIN
     RTEXT           "Best compatibility",IDC_STATIC,13,70,67,10,SS_CENTERIMAGE
     CONTROL         "",IDC_QUICKSTART_COMPATIBILITY,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,88,65,115,21
     RTEXT           "Low compatibility",IDC_STATIC,215,70,63,10,SS_CENTERIMAGE
-    GROUPBOX        "Host configuration",IDC_QUICKSTART_HOST,3,91,294,33
+    GROUPBOX        "Host Configuration",IDC_QUICKSTART_HOST,3,91,294,33
     RTEXT           "Configuration:",IDC_STATIC,5,105,55,10,SS_CENTERIMAGE
     COMBOBOX        IDC_QUICKSTART_HOSTCONFIG,65,103,225,50,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
     GROUPBOX        "Emulated Floppy Drives",IDC_QUICKSTART_DF,3,126,294,84
@@ -818,8 +819,8 @@ IDI_PATHS               ICON                    "paths.ico"
 //
 
 VS_VERSION_INFO VERSIONINFO
- FILEVERSION 1,1,1,0
- PRODUCTVERSION 1,1,1,0
+ FILEVERSION 1,2,0,0
+ PRODUCTVERSION 1,2,0,0
  FILEFLAGSMASK 0x3fL
 #ifdef _DEBUG
  FILEFLAGS 0x1L
@@ -835,12 +836,12 @@ BEGIN
         BLOCK "040904b0"
         BEGIN
             VALUE "FileDescription", "WinUAE"
-            VALUE "FileVersion", "1.1.1"
+            VALUE "FileVersion", "1.2"
             VALUE "InternalName", "WinUAE"
             VALUE "LegalCopyright", "© 1996-2005 under the GNU Public License (GPL)"
             VALUE "OriginalFilename", "WinUAE.exe"
             VALUE "ProductName", "WinUAE"
-            VALUE "ProductVersion", "1.1.1"
+            VALUE "ProductVersion", "1.2"
         END
     END
     BLOCK "VarFileInfo"
@@ -1071,7 +1072,7 @@ BEGIN
     IDS_AVIOUTPUT_NOCODEC   "no codec selected"
     IDS_DISK_IMAGENAME      "Disk image"
     IDS_DISK_DRIVENAME      "Drive"
-    IDS_AGA8BIT             "AGA emulation requires a 16 bit or higher display depth\nSwitching from 8-bit to 16-bit"
+    IDS_AGA8BIT             "AGA emulation requires a 16-bit or higher display depth.\nSwitching from 8-bit to 16-bit."
     IDS_UNSUPPORTEDSCREENMODE 
                             "The selected screen mode can't be displayed in a window, because %s\nSwitching to full-screen display."
     IDS_UNSUPPORTEDSCREENMODE_1 
@@ -1081,9 +1082,9 @@ END
 STRINGTABLE 
 BEGIN
     IDS_UNSUPPORTEDSCREENMODE_2 
-                            "the desktop is running in 8 bit color depth, which WinUAE can't use in windowed mode."
+                            "the desktop is running in 8-bit color depth, which WinUAE can't use in windowed mode."
     IDS_UNSUPPORTEDSCREENMODE_3 
-                            "the desktop is too small for the specified window size"
+                            "the desktop is too small for the specified window size."
     IDS_UNSUPPORTEDSCREENMODE_4 
                             "you selected an RTG (Picasso96) display with a color depth different from that of the desktop and an overlay was unavailable."
     IDS_FLOPPYTYPE35DD      "3.5"" DD"
@@ -1095,7 +1096,7 @@ BEGIN
     IDS_TREEVIEW_HOST       "Host"
     IDS_TREEVIEW_MISC       "Miscellaneous"
     IDS_TREEVIEW_SETTINGS   "Settings"
-    IDS_WINUAETITLE_MMB     "[Mouse active - press ALT+TAB or middle-button to cancel]"
+    IDS_WINUAETITLE_MMB     "[Mouse active - press ALT+TAB or middle mouse button to cancel]"
     IDS_WINUAETITLE_NORMAL  "[Mouse active - press ALT+TAB to cancel]"
     IDS_STARTEMULATION      "Start"
     IDS_TREEVIEW_ABOUT      "About"
@@ -1103,12 +1104,12 @@ END
 
 STRINGTABLE 
 BEGIN
-    IDS_NOHARDDRIVES        "No Amiga formatted or completely empty harddrives detected."
+    IDS_NOHARDDRIVES        "No hard disks detected that were either empty or RDB-partitioned."
     IDS_DEFAULT_HOST        "Default Configuration"
     IDS_SOUND_4CHANNEL      "4 Channels"
     IDS_HF_FS_CUSTOM        "Custom"
     IDS_SELECTFS            "Select file system handler (FastFileSystem, SmartFilesystem, etc.)"
-    IDS_KEYJOY              "Keyboard Layout A (Numeric keypad, 0 and 5 = fire)\nKeyboard Layout B (Cursor keys, right CTRL and ALT = fire)\nKeyboard Layout C (T=up B=down F=left H=right, left ALT = fire)\nX-Arcade (Left)\nX-Arcade (Right)"
+    IDS_KEYJOY              "Keyboard Layout A (Numeric keypad, 0 and 5 = Fire)\nKeyboard Layout B (Cursor keys, Right CTRL and ALT = Fire)\nKeyboard Layout C (T=Up B=Down F=Left H=Right, Left ALT = Fire)\nX-Arcade (Left)\nX-Arcade (Right)"
     IDS_STATEFILE_UNCOMPRESSED "Uncompressed"
     IDS_STATEFILE_RAMDUMP   "RAM dump"
     IDS_STATEFILE_WAVE      "Wave audio dump"
@@ -1128,20 +1129,20 @@ END
 STRINGTABLE 
 BEGIN
     IDS_NUMSG_NOEXTROM      "No extended ROM found."
-    IDS_NUMSG_MODRIP_NOTFOUND "No modules or compressed data found."
+    IDS_NUMSG_MODRIP_NOTFOUND "No music modules or packed data found."
     IDS_NUMSG_MODRIP_FINISHED "Scan finished."
-    IDS_NUMSG_MODRIP_SAVE   "Module/packed data found\n%s\nDo you want to save it?"
-    IDS_NUMSG_KS68020       "The selected system ROM requires a 68020 CPU or higher CPU."
+    IDS_NUMSG_MODRIP_SAVE   "Module/packed data found\n%s\nWould you like to save it?"
+    IDS_NUMSG_KS68020       "The selected system ROM requires a 68020 or higher CPU."
     IDS_NUMSG_ROMNEED       "One of the following system ROMs is required:\n\n%s\n\nCheck the System ROM path in the Paths panel and click Rescan ROMs."
-    IDS_NUMSG_STATEHD       "WARNING: State saves do not support hard drive emulation. This message does not appear again."
-    IDS_NUMSG_NOCAPS        "This disk image needs the SPS plugin\nwhich is available from\nhttp//www.softpres.org/"
+    IDS_NUMSG_STATEHD       "WARNING: State saves do not support hard drive emulation. This message will not appear again."
+    IDS_NUMSG_NOCAPS        "Selected disk image needs the SPS plugin\nwhich is available from\nhttp//www.softpres.org/"
     IDS_NUMSG_OLDCAPS       "You need an updated SPS plugin\nwhich is available from\nhttp//www.softpres.org/"
     IDS_IMGCHK_BOOTBLOCKCRCERROR 
-                            "Selected floppy disk image is not bootable (boot block checksum error)"
-    IDS_IMGCHK_BOOTBLOCKNO  "Selected floppy disk image is not bootable (no boot block)"
-    IDS_IMGCHK_DAMAGED      "Selected floppy disk image is damaged or unformatted"
-    IDS_IMGCHK_KS2          "Selected floppy disk image requires a 2.04 or later system ROM.\nThe configuration has been updated."
-    IDS_IMGCHK_KS3          "Selected floppy disk image requires a 3.0 or later system ROM.\nThe configuration has been updated."
+                            "The selected floppy disk image is not bootable (boot block checksum error)"
+    IDS_IMGCHK_BOOTBLOCKNO  "The selected floppy disk image is not bootable (no boot block)"
+    IDS_IMGCHK_DAMAGED      "The selected floppy disk image is damaged or unformatted"
+    IDS_IMGCHK_KS2          "The selected floppy disk image requires a 2.04 or later system ROM.\nThe configuration has been updated."
+    IDS_IMGCHK_KS3          "The selected floppy disk image requires a 3.0 or later system ROM.\nThe configuration has been updated."
     IDS_ROMSCANEND          "Scan of ROMs finished"
 END
 
@@ -1153,9 +1154,9 @@ BEGIN
                             "Warning: The safety test has been disabled, and non-empty hard disks were detected.\n\nHard disks marked with 'HD_*_' are not empty."
     IDS_NUMSG_KS68EC020     "The selected system ROM requires a 68EC020 or higher CPU."
     IDS_ROMSCANNOROMS       "No supported system ROMs detected."
-    IDS_NUMSG_KICKREP       "You need to have a floppy disk image file in DF0 to use the system ROM replacement."
-    IDS_NUMSG_KICKREPNO     "The floppy disk image file in DF0: is not compatible with the system ROM replacement functionality."
-    IDS_NUMSG_NOROM         "Could not load Kickstart ROM, trying Kickstart replacement."
+    IDS_NUMSG_KICKREP       "You need to have a floppy disk (image file) in DF0: to use the system ROM replacement."
+    IDS_NUMSG_KICKREPNO     "The floppy disk (image file) in DF0: is not compatible with the system ROM replacement functionality."
+    IDS_NUMSG_NOROM         "Could not load Kickstart ROM, trying system ROM replacement."
     IDS_HDCLONE_OK          "Hard drive image file created succesfully."
     IDS_HDCLONE_FAIL        "Hard drive image file creation failed, error code %d."
 END
index 3dbae2c1f5f6161a01264f6dc9b89595f0abec2e..a08369913f4831d701e60614617285ba8381ef54 100755 (executable)
@@ -22,7 +22,7 @@ extern int manual_palette_refresh_needed;
 extern int mouseactive, focus;
 extern int ignore_messages_all;
 #define WINUAEBETA 1
-#define WINUAEBETASTR " Beta 3"
+#define WINUAEBETASTR " Beta 4"
 
 extern char start_path_exe[MAX_DPATH];
 extern char start_path_data[MAX_DPATH];
index a60ac10eeb4631b4388b0b2222948c125d3f87a9..40fff4e168766e01a81d9c5d101bfd118ac993cd 100755 (executable)
@@ -2485,6 +2485,7 @@ static urlinfo urls[] =
     {IDC_ABIME, FALSE, "abime.net", "http://www.abime.net/"},
     {IDC_CAPS, FALSE, "SPS", "http://www.softpres.org/"},
     {IDC_AMIGASYS, FALSE, "AmigaSYS", "http://amigasys.fw.hu/"},
+    {IDC_AMIKIT, FALSE, "AmiKit", "http://amikit.amiga.sk/"},
     { -1, FALSE, NULL, NULL }
 };