.sect .text
tst.l firstp
beq lhalt
+ pea emprof
+ bsr _Xunlink
+ testen (sp)+
+ blt 1f
mov #0x1B6,-(sp)
pea emprof
bsr _Xcreat
testen (sp)+
+ blt 1f
mov (sp)+,d0
move.l ltime,a4 !a4 points at bottem of prof table
bsr tabprint
+1:
#endif
#if flow
tst.l firstp
beq lhalt
+ pea emflow
+ bsr _Xunlink
+ testen (sp)+
+ blt 1f
mov #0x1B6,-(sp)
pea emflow
bsr _Xcreat
testen (sp)+
+ blt 1f
mov (sp)+,d0
move.l flowsiz,-(sp)
move.l lflow,-(sp)
mov d0,-(sp)
bsr _Xwrite
- add.l wrd+4,sp
+ testen (sp)+
+ blt 1f
+ add.l #4,sp
.sect .data
emflow: .asciz "em_flow\0"
.align 2
lflow: .space 4
flowsiz: .space 4
.sect .text
+1:
#endif
#if count
tst.l firstp
beq lhalt
+ pea emcount
+ bsr _Xunlink
+ testen (sp)+
+ blt 1f
mov #0x1B6,-(sp)
pea emcount
bsr _Xcreat
testen (sp)+
+ blt 1f
mov (sp)+,d0
move.l lcount,a4
bsr tabprint
+1:
.sect .data
emcount: .asciz "em_count\0"
.align 2
.sect .bss
counttab: .space 1884
.sect .text
+ pea emopf
+ bsr _Xunlink
+ testen (sp)+
+ blt 1f
mov #0x1B6,-(sp)
pea emopf
bsr _Xcreat
testen (sp)+
+ blt 1f
mov (sp)+,d0
move.l #1884,-(sp)
pea counttab
mov d0,-(sp)
bsr _Xwrite
- add.l wrd+4,sp
+ testen (sp)+
+ blt 1f
+ add.l #4,sp
+1:
#endif
#if count+flow+prof
.sect .bss
lhalt:
#if last
.sect .text
+ pea emlast
+ bsr _Xunlink
+ testen (sp)+
+ blt halt
mov #0x1B6,-(sp)
pea emlast
bsr _Xcreat
testen (sp)+
+ blt halt
mov (sp)+,d6 !d6 contains file descriptor
cmp.l #-1,linused-4 !test if buffer is fully used
beq 0f
pea mess1
mov d6,-(sp)
bsr _Xwrite
- add.l wrd+4,sp
+ testen (sp)+
+ blt halt
+ add.l #4,sp
bra 9f
2: move.l a1,-(sp)
move.l #7,-(sp) !announce new file name
pea mess2
mov d6,-(sp)
bsr _Xwrite
- add.l wrd+4,sp
+ testen (sp)+
+ blt halt
+ add.l #4,sp
move.l (sp)+,a1
move.l (a1),d7
move.l d7,a0 !keep file pointer in d7
pea mess3
mov d6,-(sp)
bsr _Xwrite
- add.l wrd+4,sp
+ testen (sp)+
+ blt halt
+ add.l #4,sp
move.l (sp)+,a1
bsr nexttab
tst.l (a1) !in case 0 no more lines
move.l a2,-(sp)
mov 8(sp),-(sp) !WRITE FILE NAME.
bsr _Xwrite
- add.l wrd+4,sp !CLEAN STACK.
+ testen (sp)+
+ blt 3f
+ add.l #4,sp !CLEAN STACK.
6: sub.l d6,d7 !IN d7 NUMBER OF LINES OF CURRENT PROC.
asl.l #2,d6
0: move.l a3,a0
pea buffer
mov 8(sp),-(sp)
bsr _Xwrite !PRINT LINE NUMBER AND INTEGER .
- add.l wrd+4,sp !CLEAN STACK.
+ testen (sp)+
+ blt 3f
+ add.l #4,sp !CLEAN STACK.
add.l #1,d5 !NEXT LINE NUMBER .
add.l #4,d6 !NEXT COUNT.
sub.l #1,d7 !ONE LINE LESS TO GO.
9: move.l maxcount,d7
move.l #0,a6 !NO NEXT PROCEDURE.
bra 8b
+3:
+ testen (sp)+
+ testen (sp)+
+ rts
.sect .data
buffer: .asciz " \n"