1 - Improved line number updating when returning from library routines.

2 - Line 234, 0xD must be #0x1C, crashed at error handling for
    incorrect return size.
This commit is contained in:
keie 1984-12-18 17:07:23 +00:00
parent b544d3b401
commit 246f45c867

View file

@ -181,13 +181,13 @@ lblcal:
ret_l: adroff ; move.w (a1),d0 ret_l: adroff ; move.w (a1),d0
bra 1f bra 1f
ret_s0: move.l d6,d0 ; move.b (a3)+,d0 ret_s0: move.l #0,d0 ; move.b (a3)+,d0
bra 1f
ret_1W: move.w d6,d0 ; bra 5f
1: blt e_oddz ; beq ret_0 1: blt e_oddz ; beq ret_0
comp #32,d0 ; ble 2f comp #32,d0 ; ble 2f
bsr e_badlfr bsr e_badlfr
2: sub.w #1,d0 ; asr.w wmu,d0 2: sub.w #1,d0 ; asr.w wmu,d0
bra 5f
ret_1W: move.l #0,d0
5: move.w d0,retsize !RETSIZE CONTAINS 5: move.w d0,retsize !RETSIZE CONTAINS
3: mov (sp)+,(a1)+ ; dbra d0,3b ! #WORDS-1 3: mov (sp)+,(a1)+ ; dbra d0,3b ! #WORDS-1
lea retarea,a1 ; bra 4f lea retarea,a1 ; bra 4f
@ -200,8 +200,10 @@ ret_0: move.w #-1,retsize
move.l 8(a0),d0 !d0 IS COUNT move.l 8(a0),d0 !d0 IS COUNT
sub.l 12(a0),d0 !d0 IS COUNT-FIRST LINE sub.l 12(a0),d0 !d0 IS COUNT-FIRST LINE
move.l d0,countfld !RESTORE POINTER move.l d0,countfld !RESTORE POINTER
beq 1f !NO LINES IN CALLER
add.l (sp),d0 !ADD LINE NUMBER add.l (sp),d0 !ADD LINE NUMBER
move.l d0,countptr move.l d0,countptr
1:
#if prof #if prof
beq 5f beq 5f
asl.l #2,d0 asl.l #2,d0
@ -231,4 +233,4 @@ lfr_s0: move.l d6,d0 ; move.b (a3)+,d0
lfr_2W: move.l wrd,d1 ; add.l d1,d1 lfr_2W: move.l wrd,d1 ; add.l d1,d1
move.l #1,d0 ; bra 0b move.l #1,d0 ; bra 0b
e_badlfr: mov 0xD,-(sp) ; bra error e_badlfr: mov #0x1C,-(sp) ; bra error