summaryrefslogtreecommitdiff
path: root/dis88/dishand.c
diff options
context:
space:
mode:
authorRobert de Bath <rdebath@poboxes.com>1996-11-03 22:33:35 +0100
committerLubomir Rintel <lkundrak@v3.sk>2013-10-23 23:33:35 +0200
commitc218c617b5be443b7968308506969ad2b726d73c (patch)
tree0051f396af56133d24fcf2ab757fabc78c1a09bf /dis88/dishand.c
parent0936b9aeab611665645a4e6bafaded7ca76dd189 (diff)
parent0d2fbe9b1bd284ce2cad55be17e8f2c896031a25 (diff)
downloaddev86-c218c617b5be443b7968308506969ad2b726d73c.tar.gz
Import Dev86src-0.0.8.tar.gzv0.0.8
Diffstat (limited to 'dis88/dishand.c')
-rw-r--r--dis88/dishand.c83
1 files changed, 63 insertions, 20 deletions
diff --git a/dis88/dishand.c b/dis88/dishand.c
index 5983972..833fa2c 100644
--- a/dis88/dishand.c
+++ b/dis88/dishand.c
@@ -82,8 +82,8 @@ badseq(j,k) /* Invalid-sequence routine */
register int j, k;
{
- printf("\t.byte\t0x%02.2x\t\t| invalid code sequence\n",j);
- printf("\t.byte\t0x%02.2x\n",k);
+ printf("\t.byte\t$%02.2x\t\t| invalid code sequence\n",j);
+ printf("\t.byte\t$%02.2x\n",k);
}
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
@@ -107,7 +107,7 @@ dfhand(j)
segflg = 0;
- printf("\t.byte\t0x%02.2x",j);
+ printf("\t.byte\t$%02.2x",j);
if (optab[j].min || optab[j].max)
putchar('\n');
@@ -178,7 +178,10 @@ aohand(j)
break;
case 4 :
FETCH(k);
- printf("%s\tal,*0x%02.2x\n",optab[j].text,k);
+ if( k < 16 )
+ printf("%s\tal,*%d\n",optab[j].text,k);
+ else
+ printf("%s\tal,*$%02.2x\n",optab[j].text,k);
break;
case 5 :
FETCH(m);
@@ -187,7 +190,12 @@ aohand(j)
if (lookext((long)(k),(PC - 1),b))
printf("%s\tax,#%s\n",optab[j].text,b);
else
- printf("%s\tax,#0x%04.4x\n",optab[j].text,k);
+ {
+ if( k < 100 || k > 65436 )
+ printf("%s\tax,#%d\n",optab[j].text, (short)k);
+ else
+ printf("%s\tax,#$%04x\n",optab[j].text,k);
+ }
break;
default :
dfhand(j);
@@ -214,6 +222,7 @@ sjhand(j)
register int k;
int m;
+ unsigned short dest;
objini(j);
@@ -225,10 +234,11 @@ sjhand(j)
k = 0;
k |= m;
+ dest = (PC + k + 1);
printf("%s\t%s\t\t| loc %05.5lx\n",optab[j].text,
- lookup((PC + k + 1L),N_TEXT,LOOK_REL,-1L),
- (PC + k + 1L));
+ lookup((long) dest,N_TEXT,LOOK_REL,-1L),
+ (long) dest);
objout();
@@ -305,7 +315,7 @@ imhand(j)
{
FETCH(m);
if (m & 0x80)
- n = 0xff00;
+ n = -0xFF;
else
n = 0;
offset = n | m;
@@ -349,10 +359,18 @@ imhand(j)
case 1 :
case 2 :
if (mod == 1)
+ {
strcat(a,"*");
+ sprintf(b,"%d(", (short)offset);
+ }
else
+ {
strcat(a,"#");
- sprintf(b,"%d(",offset);
+ if( offset < 100 || offset > 65436 )
+ sprintf(b,"%d(", (short)offset);
+ else
+ sprintf(b,"$%04x(",offset);
+ }
strcat(a,b);
strcat(a,REGS1[rm]);
strcat(a,")");
@@ -364,10 +382,18 @@ imhand(j)
strcat(a,",");
if (iflag)
+ {
strcat(a,"#");
+ if( immed < 100 || immed > 65436 )
+ sprintf(b,"%d", (short)immed);
+ else
+ sprintf(b,"$%04x",immed);
+ }
else
+ {
strcat(a,"*");
- sprintf(b,"%d",immed);
+ sprintf(b,"%d",immed);
+ }
strcat(a,b);
printf("%s\n",a);
@@ -514,12 +540,12 @@ cihand(j)
FETCH(m);
FETCH(n);
- printf("#0x%04.4x,",((n << 8) | m));
+ printf("#$%04.4x,",((n << 8) | m));
FETCH(m);
FETCH(n);
- printf("#0x%04.4x\n",((n << 8) | m));
+ printf("#$%04.4x\n",((n << 8) | m));
objout();
@@ -555,7 +581,12 @@ mihand(j)
if (lookext((long)(k),(PC - 1),b))
printf("#%s\n",b);
else
- printf("#%d\n",k);
+ {
+ if( k < 100 || k > 65436 )
+ printf("#%d\n",(short)k);
+ else
+ printf("#$%04x\n",k);
+ }
}
else
{
@@ -637,12 +668,17 @@ tqhand(j)
if (lookext((long)(k),(PC - 1),b))
printf("#%s\n",b);
else
- printf("#%d\n",k);
+ {
+ if( k < 100 || k > 65436 )
+ printf("#%d\n",(short)k);
+ else
+ printf("#$%04x\n",k);
+ }
}
else
{
if (m & 80)
- m |= 0xff00;
+ m |= -0xFF;
printf("*%d\n",m);
}
@@ -733,7 +769,12 @@ mmhand(j)
if (lookext((long)(k),(PC - 1),b))
printf("#%s\n",b);
else
- printf("#%d\n",k);
+ {
+ if( k < 100 || k > 65436 )
+ printf("#%d\n",(short)k);
+ else
+ printf("#$%04x\n",k);
+ }
}
else
{
@@ -843,7 +884,7 @@ iohand(j)
FETCH(k);
- printf("%s\t0x%02.2x\n",optab[j].text,k);
+ printf("%s\t$%02.2x\n",optab[j].text,k);
objout();
@@ -865,6 +906,7 @@ ljhand(j)
register int k;
int m, n;
+ unsigned short dest;
objini(j);
@@ -872,10 +914,11 @@ ljhand(j)
FETCH(n);
k = (n << 8) | m;
+ dest = PC + k + 1;
printf("%s\t%s\t\t| loc %05.5lx\n",optab[j].text,
- lookup((PC + k + 1L),N_TEXT,LOOK_LNG,(PC - 1L)),
- (PC + k + 1L));
+ lookup((long)dest,N_TEXT,LOOK_LNG,(PC - 1L)),
+ (long)dest);
objout();
@@ -952,7 +995,7 @@ mahand(j)
if (lookext((long)(k),(PC - 1),b))
printf(",#%s\n",b);
else
- printf(",#%d\n",k);
+ printf(",#$%04x\n",k);
}
else
{