#
# @(#)awkprog 1.1 86/02/03 SMI
#
BEGIN{
	flavor = "AS"
	FS = " "
}
{
	if (NF == 0){
		printf("\n")
		next
	}
	if ($1 == "FLAVOR"){
		flavor = $2
		next
	}
	if ($1 == "##"){
		next
	}
	if ($9 == "" ){
	    $9 = 0
	} else if ( $9 == "68020"){
	    $9 = "I20"
	} else if ( $9 == "68881"){
	    $9 = "I81"
	} else {
		next
	}
	nop = split( $2, op, "," )
	noperand = split( $5, touch, ",")
	if (flavor == "C2"){
		if ( nop == 2){
		    $2 = op[2]
		}
		printf( "I(\"%s\", OP_%s, SUBOP_%s, ", $1, $2, $3 )
		if (touch[1] == "X"){
		    printf("T_X, ")
		} else {
		    if (noperand == 1){
			printf("T_ONE(%s),", $5)
		    } else if (noperand == 2){
			printf("T_TWO(%s),", $5)
		    } else {
			printf("T_THREE(%s),",$5)
		    }
		}
		print " {" $6 "}, " $7 ", " $8 ")"
	} else if (flavor == "AS"){
	    if ( $2 == "PSEUDO"){
		nop = split( $3, op, "," )
		if ($8 == "") $8 = "0"
		naccess = split( $8, access, ",")
		printf( "P(\"%s\", %s, OP_%s, SUBOP_%s, %d, %d, %d, ", $1, op[1], op[2], $4, $5, $6, $7 )
		if (naccess==1){
		    printf("A_ONE( %s )", $8 )
		} else if (naccess==2){
		    printf("A_TWO( %s )", $8 )
		} else printf("help")
		print ")\n"
		next
	    }
	    naccess = split( $6, access, ",")
	    ncode = split( $4, code, "," )
	    if (touch[1] == "X"){
		noperand = 0
		$6 = 0
	    }
	    if (op[1] == "BRANCH" ){
		if ($1 ~ /b..s/ ){
		    op[1] = "BRNCHS"
		} else if ( $1 ~ /b..l/){
		    op[1] = "BRNCHL"
		}
		if (op[2]==""){
		    op[2] = "BRANCH"
		}
	    }
	    if (op[2] == "") op[2] = "OTHER"
	    if (length($3) == 1) $3 = "SUBOP_" $3
	    printf("I(\"%s\", %s, OP_%s, %s, ", $1, op[1], op[2], $3 )
	    printf("%d, ", noperand)
	    if (touch[1] == "X"){
		printf("T_X, ")
	    } else {
		if (noperand == 1){
		    printf("T_ONE(%s),", $5)
		} else if (noperand == 2){
		    printf("T_TWO(%s),", $5)
		} else {
		    printf("T_THREE(%s),",$5)
		}
	    }
	    if (ncode==1) {
		printf("A_ONE(%s), ",$4)
	    } else if (ncode==2){
		printf("A_TWO(%s, %s), ",code[1], code[2])
	    } else if (ncode==3){
		printf("A_TH3(%s, %s, %s), ",code[1], code[2], code[3] )
	    } else if (ncode==4){
		printf("A_4R(%s, %s, %s, %s), ", code[1], code[2], code[3], code[4] )
	    } else {
		printf("A_5V(%s, %s, %s, %s, %s), ", code[1], code[2], code[3], code[4], code[5] )
	    }
	    if (naccess == 1){
		printf("A_ONE(%s) ", access[1] )
	    } else if (naccess==2){
		printf("A_TWO(%s, %s) ", access[1], access[2] )
	    } else if (naccess==3){
		printf("A_TH3(%s, %s, %s) ", access[1], access[2], access[3] )
	    } else if (naccess==4){
		printf("A_4R(%s, %s, %s, %s) ", access[1], access[2], access[3], access[4] )
	    } else if (naccess==5){
		printf("A_5V(%s, %s, %s, %s, %s) ", access[1], access[2], access[3], access[4], access[5] )
	    } else if (naccess==6){
		printf("A_6X(%s, %s, %s, %s, %s, %s) ", access[1], access[2], access[3], access[4], access[5], access[6] )
	    } else if (naccess==7){
		printf("A_SEVEN(%s, %s, %s, %s, %s, %s, %s) ", access[1], access[2], access[3], access[4], access[5], access[6], access[7] )
	    } else if (naccess==8){
		printf("A_EIGHT(%s, %s, %s, %s, %s, %s, %s, %s) ", access[1], access[2], access[3], access[4], access[5], access[6], access[7], access[8] )
	    } 
	    printf(  ", %s )\n", $9 )
	} else {
	    print "FLAVOR IS " flavor
	    exit
	}
	next

}
