* Make the uba interrupt file ubglue.s
* mkubglue.c 1.5 82/06/16
register struct device
*dp
, *mp
;
fp
= fopen(path("ubglue.s"), "w");
perror(path("ubglue.s"));
for (dp
= dtab
; dp
!= NULL
; dp
= dp
->d_next
)
if (mp
!= NULL
&& mp
!= -1 && !eq(mp
->d_name
, "mba"))
for (id
= dp
->d_vec
; id
; id
= id
->id_next
) {
for (id2
= dp
->d_vec
; id2
; id2
= id2
->id_next
) {
dump_vec(fp
, id
->id
, dp
->d_unit
);
if (!strcmp(id
->id
, id2
->id
))
* Print an interrupt vector
dump_vec(fp
, vector
, number
)
sprintf(v
, "%s%d", vector
, number
);
fprintf(fp
, "\t.globl\t_X%s\n\t.align\t2\n_X%s:\n\tpushr\t$0x3f\n", v
, v
);
if (strncmp(vector
, "dzx", 3) == 0)
fprintf(fp
, "\tmovl\t$%d,r0\n\tjmp\t_dzdma\n\n", number
);
fprintf(fp
, "\tpushl\t$%d\n", number
);
fprintf(fp
, "\tcalls\t$1,_%s\n\tpopr\t$0x3f\n\trei\n\n", vector
);