mirror of
https://github.com/adtools/clib2.git
synced 2025-12-08 14:59:05 +00:00
Moved __CXV54 into sas_cxv.asm
sas_cxv54.asm is no longer needed.
This commit is contained in:
@ -37,6 +37,7 @@
|
||||
|
||||
xdef __CXV25
|
||||
xdef __CXV35
|
||||
xdef __CXV45
|
||||
xdef __CXNRM5
|
||||
xdef __CXTAB5
|
||||
|
||||
@ -74,6 +75,43 @@ L44: MOVE.W D0,D1
|
||||
MOVEM.L (SP)+,D2-D5/A1
|
||||
RTS
|
||||
|
||||
__CXV45:
|
||||
|
||||
MOVE.L D0,D1
|
||||
SWAP D1
|
||||
AND.W #$7FFF,D1
|
||||
CMP.W #$80,D1
|
||||
BLT .1
|
||||
CMP.W #$7F80,D1
|
||||
BGE .3
|
||||
ASR.L #3,D0
|
||||
AND.L #$8FFFFFFF,D0
|
||||
ADD.L #$38000000,D0
|
||||
SWAP D1
|
||||
AND.L #7,D1
|
||||
ROR.L #3,D1
|
||||
.2 RTS
|
||||
|
||||
.1 TST.L D1
|
||||
BEQ.S .2
|
||||
MOVEM.L D2-D5,-(SP)
|
||||
SWAP D0
|
||||
MOVE.W D0,D4
|
||||
AND.W #$8000,D4
|
||||
MOVE.W #$39D0,D5
|
||||
MOVEQ #0,D0
|
||||
SWAP D1
|
||||
JSR __CXNRM5(PC)
|
||||
MOVEM.L (SP)+,D2-D5
|
||||
RTS
|
||||
|
||||
.3 ASR.L #3,D0
|
||||
OR.L #$7FF00000,D0
|
||||
SWAP D1
|
||||
AND.L #7,D1
|
||||
ROR.L #3,D1
|
||||
RTS
|
||||
|
||||
__CXNRM5:
|
||||
|
||||
CMP.L #$20,D0
|
||||
|
||||
@ -1,6 +1,4 @@
|
||||
*
|
||||
* $Id: sas_cxv54.asm,v 1.1.1.1 2004-07-26 16:31:04 obarthel Exp $
|
||||
*
|
||||
* :ts=8
|
||||
*
|
||||
* Adapted from reassembled SAS/C runtime library code.
|
||||
@ -38,7 +36,8 @@
|
||||
xdef __CXV54
|
||||
xref __CXFERR
|
||||
|
||||
__CXV54
|
||||
__CXV54:
|
||||
|
||||
MOVEM.L A0/A1,-(SP)
|
||||
MOVE.L D4,A0
|
||||
SWAP D0
|
||||
@ -47,11 +46,11 @@ __CXV54
|
||||
EOR.W D4,D0
|
||||
SUB.W #$3800,D0
|
||||
CMP.W #$10,D0
|
||||
BLT lbC000098
|
||||
BLT lab098
|
||||
CMP.W #$FEF,D0
|
||||
BLT lbC000102
|
||||
BLT lab102
|
||||
CMP.W #$47F0,D0
|
||||
BLT lbC000058
|
||||
BLT lab058
|
||||
SWAP D0
|
||||
LSL.L #3,D0
|
||||
ROL.L #3,D1
|
||||
@ -59,17 +58,16 @@ __CXV54
|
||||
EOR.L D1,D0
|
||||
SWAP D0
|
||||
OR.W #$7F80,D0
|
||||
BRA lbC000112
|
||||
BRA lab112
|
||||
|
||||
lbC000058
|
||||
CMP.W #$FF0,D0
|
||||
BGE lbC000074
|
||||
lab058: CMP.W #$FF0,D0
|
||||
BGE lab074
|
||||
CMP.L #$FFFF0FEF,D0
|
||||
BNE lbC000102
|
||||
BNE lab102
|
||||
CMP.L #$F0000000,D1
|
||||
BCS lbC000102
|
||||
lbC000074
|
||||
MOVEM.L D0/D1/A0/A1,-(SP)
|
||||
BCS lab102
|
||||
|
||||
lab074: MOVEM.L D0/D1/A0/A1,-(SP)
|
||||
PEA 2.L
|
||||
JSR __CXFERR
|
||||
ADDQ.W #4,SP
|
||||
@ -78,63 +76,56 @@ lbC000074
|
||||
EOR.W D4,D0
|
||||
SWAP D0
|
||||
MOVEQ #0,D1
|
||||
BRA lbC000116
|
||||
BRA lab116
|
||||
|
||||
lbC000098
|
||||
CMP.W #$FE90,D0
|
||||
BGE lbC0000C4
|
||||
lab098: CMP.W #$FE90,D0
|
||||
BGE lab0C4
|
||||
ADD.W #$3800,D0
|
||||
OR.L D1,D0
|
||||
BEQ lbC000112
|
||||
BEQ lab112
|
||||
MOVEM.L D0/D1/A0/A1,-(SP)
|
||||
PEA 1.L
|
||||
JSR __CXFERR
|
||||
ADDQ.W #4,SP
|
||||
MOVEM.L (SP)+,D0/D1/A0/A1
|
||||
MOVEQ #0,D0
|
||||
BRA lbC000112
|
||||
BRA lab112
|
||||
|
||||
lbC0000C4
|
||||
MOVE.L D5,A1
|
||||
lab0C4: MOVE.L D5,A1
|
||||
MOVE.W D0,D5
|
||||
AND.W #15,D0
|
||||
EOR.W #$10,D0
|
||||
SWAP D0
|
||||
ASR.W #4,D5
|
||||
ADDQ.W #2,D5
|
||||
BGE lbC0000E6
|
||||
BGE lab0E6
|
||||
NEG.W D5
|
||||
LSR.L D5,D0
|
||||
MOVEQ #0,D5
|
||||
ADDX.L D5,D0
|
||||
BRA lbC0000F6
|
||||
BRA lab0F6
|
||||
|
||||
lbC0000E6
|
||||
CLR.W D1
|
||||
lab0E6: CLR.W D1
|
||||
LSL.L D5,D0
|
||||
ADDQ.W #1,D5
|
||||
ROXL.L D5,D1
|
||||
AND.L #15,D1
|
||||
ADDX.L D1,D0
|
||||
lbC0000F6
|
||||
MOVE.L A1,D5
|
||||
lab0F6: MOVE.L A1,D5
|
||||
SWAP D0
|
||||
EOR.W D4,D0
|
||||
SWAP D0
|
||||
BRA lbC000116
|
||||
BRA lab116
|
||||
|
||||
lbC000102
|
||||
SWAP D0
|
||||
lab102: SWAP D0
|
||||
LSL.L #3,D0
|
||||
ROXL.L #4,D1
|
||||
AND.L #7,D1
|
||||
ADDX.L D1,D0
|
||||
SWAP D0
|
||||
lbC000112
|
||||
EOR.W D4,D0
|
||||
lab112: EOR.W D4,D0
|
||||
SWAP D0
|
||||
lbC000116
|
||||
MOVE.L A0,D4
|
||||
lab116: MOVE.L A0,D4
|
||||
MOVEM.L (SP)+,A0/A1
|
||||
RTS
|
||||
|
||||
|
||||
Reference in New Issue
Block a user