2:
move.l d2, -(sp)
pea (fmt)
- jsr (_printf)
+ jsr (printf)
lea (12, sp), sp
movem.l (sp)+, d0/d1/d2/a0
- jmp (_printf)
+ jmp (printf)
rts
1:
bra 2b
.sect .bss
-_getal:
+getal:
.space 12
-_char:
+char:
.space 1
.align 4
.sect .data
.ascii "0123456789abcdef"
.align 4
.sect .text
-_printf:
+printf:
movem.l d0/d1/d2/a0/a1/a2/a3/a4/a5/a6, -(sp)
lea (44, sp), a6 ! a6 <- address of arguments
move.l (a6)+, a5 ! a5 <- address of format
cmp.b #'%', d0
beq procnt
put: move.l d0, -(sp)
- jsr (_putchar) ! long argument on stack
+ jsr (putchar) ! long argument on stack
tst.l (sp)+
bra next
sloop: move.b (a2)+, d0
beq next
move.l d0, -(sp)
- jsr (_putchar) ! long argument on stack
+ jsr (putchar) ! long argument on stack
tst.l (sp)+
bra sloop
digit: move.l (a6)+, d1 ! d1 <- integer
- move.l #_getal+12, a2 ! a2 <- ptr to last part of buf
+ move.l #getal+12, a2 ! a2 <- ptr to last part of buf
clr.b -(a2) ! stringterminator
1: divul.l #10, d2:d1 ! d1 <- qotient; d2 <- remainder
add.l #'0', d2
bra sloop ! print digitstring.
hex: move.l (a6)+, d1 ! d1 <- integer
- move.l #_getal+12, a2 ! a2 <- ptr to last part of buf
+ move.l #getal+12, a2 ! a2 <- ptr to last part of buf
clr.b -(a2) ! stringterminator
move.l #7, d2 ! loop control
1: move.l d1, d0
rts
-_putchar:
+putchar:
move.l #1, -(sp)
pea (11,sp)
move.l #1, -(sp)