Exemplo n.º 1
0
void srhand(register int j)
{				/* Pointer to optab[] entry   *//* * * * * * * * * *  START OF srhand()  * * * * * * * * * */

    char *a;
    register int k;

    objini(j);

    FETCH(k);

    if ((k & 0x38) == 0x30) {
	badseq(j, k);
	return;
    }

    printf("%s", OPFAM[((k & 0x38) >> 3) + 16]);

    if (!(j & 1))
	putchar('b');

    a = mtrans((j & 0xfd), (k & 0xc7), TR_STD);

    mtrunc(a);

    printf("\t%s", a);

    if (j & 2)
	printf(",cl\n");
    else
	printf(",*1\n");

    objout();

}				/* * * * * * * * * * * END OF srhand() * * * * * * * * * * */
Exemplo n.º 2
0
void pohand(register int j)
{				/* Pointer to optab[] entry   *//* * * * * * * * * *  START OF pohand()  * * * * * * * * * */

    char *a;
    register int k;

    objini(j);

    FETCH(k);

    if (k & 0x38) {
	badseq(j, k);
	return;
    }

    printf("%s\t", optab[j].text);

    a = mtrans((j & 0xfd), k, TR_STD);

    mtrunc(a);

    printf("%s\n", a);

    objout();

}				/* * * * * * * * * * * END OF pohand() * * * * * * * * * * */
Exemplo n.º 3
0
static inline mat truncate(const mat& m, const double threshold) {
  mat mtrunc;
  mtrunc.zeros(m.n_rows, m.n_cols);
  for (size_t i = 0; i < m.n_rows; i++)
    for (size_t j = 0; j < m.n_cols; j++)
      if (m(i, j) >= threshold)
        mtrunc(i, j) = m(i, j);
  return mtrunc;
}
Exemplo n.º 4
0
void mmhand(register int j)
{				/* Pointer to optab[] entry   *//* * * * * * * * * *  START OF mmhand()  * * * * * * * * * */

    char b[80];
    char *a;
    register int k;

    objini(j);

    FETCH(k);

    if (k & 0x38) {
	badseq(j, k);
	return;
    }

    printf("%s", optab[j].text);

    if (!(j & 1))
	putchar('b');

    a = mtrans((j & 0xfd), (k & 0xc7), TR_STD);

    mtrunc(a);

    printf("\t%s,", a);

    if (j & 1) {
	FETCH(j);
	FETCH(k);
	k = (k << 8) | j;
	if (lookext((long) (k), (PC - 1), b))
	    printf("#%s\n", b);
	else {
	    if (k < 100 || k > 65436)
		printf("#%d\n", (short) k);
	    else
		printf("#$%04x\n", k);
	}
    } else {
	FETCH(k);
	printf("*%d\n", k);
    }

    objout();

}				/* * * * * * * * * * * END OF mmhand() * * * * * * * * * * */
Exemplo n.º 5
0
void mjhand(register int j)
{				/* Pointer to optab[] entry   *//* * * * * * * * * *  START OF mjhand()  * * * * * * * * * */

    char *a;
    register int k;

    objini(j);

    FETCH(k);

    a = mtrans((j & 0xfd), (k & 0xc7), TR_STD);

    mtrunc(a);

    switch (((k = objbuf[1]) & 0x38) >> 3) {
    case 0:
	printf("\tinc");
	if (!(j & 1))
	    putchar('b');
	putchar('\t');
	break;
    case 1:
	printf("\tdec");
	if (!(j & 1))
	    putchar('b');
	putchar('\t');
	break;
    case 2:
	if (j & 1)
	    printf("\tcall\t@");
	else
	    goto BAD;
	break;
    case 3:
	if (j & 1)
	    printf("\tcalli\t@");
	else
	    goto BAD;
	break;
    case 4:
	if (j & 1)
	    printf("\tjmp\t@");
	else
	    goto BAD;
	break;
    case 5:
	if (j & 1)
	    printf("\tjmpi\t@");
	else
	    goto BAD;
	break;
    case 6:
	if (j & 1)
	    printf("\tpush\t");
	else
	    goto BAD;
	break;
    case 7:
      BAD:
	badseq(j, k);
	return;
    }

    printf("%s\n", a);

    objout();

}				/* * * * * * * * * * * END OF mjhand() * * * * * * * * * * */
Exemplo n.º 6
0
void mahand(register int j)
{				/* Pointer to optab[] entry   *//* * * * * * * * * *  START OF mahand()  * * * * * * * * * */

    char *a;
    register int k;
    char b[80];

    objini(j);

    FETCH(k);

    a = mtrans((j & 0xfd), (k & 0xc7), TR_STD);

    mtrunc(a);

    switch (((k = objbuf[1]) & 0x38) >> 3) {
    case 0:
	printf("\ttest");
	break;
    case 1:
	badseq(j, k);
	return;
    case 2:
	printf("\tnot");
	break;
    case 3:
	printf("\tneg");
	break;
    case 4:
	printf("\tmul");
	break;
    case 5:
	printf("\timul");
	break;
    case 6:
	printf("\tdiv");
	break;
    case 7:
	printf("\tidiv");
	break;
    }

    if (!(j & 1))
	putchar('b');

    printf("\t%s", a);

    if (k & 0x38)
	putchar('\n');
    else if (j & 1) {
	FETCH(j);
	FETCH(k);
	k = (k << 8) | j;
	if (lookext((long) (k), (PC - 1), b))
	    printf(",#%s\n", b);
	else
	    printf(",#$%04x\n", k);
    } else {
	FETCH(k);
	printf(",*%d\n", k);
    }

    objout();

}				/* * * * * * * * * * * END OF mahand() * * * * * * * * * * */