home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 10
/
aminetcdnumber101996.iso
/
Aminet
/
misc
/
math
/
MCalc17.lha
/
MCalc
/
Source
/
MCalcASM.Asm
< prev
next >
Wrap
Assembly Source File
|
1995-11-29
|
4KB
|
236 lines
NOLIST
*AUTO: smake MCalc
opt o+,ow-,o6+,DEBUG,NOLIST,ALINK
;* $Revision Header built automatically *************** (do not edit) ************
;*
;* © Copyright by GuntherSoft
;*
;* File : SnakeSYS:CPrgs/MUICalc/MCalc.asm
;* Created on : Sunday, 03.10.93 23:16:55
;* Created by : Kai Iske
;* Current revision : V1.0
;*
;*
;* Purpose
;* -------
;* - Small (very very small) support routines for MCalc ;)
;*
;* Revision V1.0
;* --------------
;* created on Sunday, 03.10.93 23:16:55 by Kai Iske. LogMessage :
;* --- Initial release ---
;*
;*********************************************************************************
XDEF _MyASL
XDEF _MyASR
XDEF _MyLSL
XDEF _MyLSR
XDEF _MyROL
XDEF _MyROR
XDEF _MyXOR
XDEF _MyNAND
XDEF _MyNOR
XDEF _MyNXOR
XDEF _DoCreatePool
XDEF _DoDeletePool
XDEF _AllocVecPool
XDEF _FreeVecPool
XREF _IntBase
XREF _AsmCreatePool
XREF _AsmDeletePool
XREF _AsmAllocPooled
XREF _AsmFreePooled
_MyASL tst.l d1
beq.s .End
subq.l #1,d1
.Loop cmp.w #7,_IntBase(a4)
bne.s .Try16
asl.b #1,d0
bra.s .LoopEnd
.Try16 cmp.w #8,_IntBase(a4)
bne.s .Try32
asl.w #1,d0
bra.s .LoopEnd
.Try32 asl.l #1,d0
.LoopEnd dbf d1,.Loop
.End rts
_MyASR tst.l d1
beq.s .End
subq.l #1,d1
.Loop cmp.w #7,_IntBase(a4)
bne.s .Try16
asr.b #1,d0
bra.s .LoopEnd
.Try16 cmp.w #8,_IntBase(a4)
bne.s .Try32
asr.w #1,d0
bra.s .LoopEnd
.Try32 asr.l #1,d0
.LoopEnd dbf d1,.Loop
.End rts
_MyLSL tst.l d1
beq.s .End
subq.l #1,d1
.Loop cmp.w #7,_IntBase(a4)
bne.s .Try16
lsl.b #1,d0
bra.s .LoopEnd
.Try16 cmp.w #8,_IntBase(a4)
bne.s .Try32
lsl.w #1,d0
bra.s .LoopEnd
.Try32 lsl.l #1,d0
.LoopEnd dbf d1,.Loop
.End rts
_MyLSR tst.l d1
beq.s .End
subq.l #1,d1
.Loop cmp.w #7,_IntBase(a4)
bne.s .Try16
lsr.b #1,d0
bra.s .LoopEnd
.Try16 cmp.w #8,_IntBase(a4)
bne.s .Try32
lsr.w #1,d0
bra.s .LoopEnd
.Try32 lsr.l #1,d0
.LoopEnd dbf d1,.Loop
.End rts
_MyROL tst.l d1
beq.s .End
subq.l #1,d1
.Loop cmp.w #7,_IntBase(a4)
bne.s .Try16
rol.b #1,d0
bra.s .LoopEnd
.Try16 cmp.w #8,_IntBase(a4)
bne.s .Try32
rol.w #1,d0
bra.s .LoopEnd
.Try32 rol.l #1,d0
.LoopEnd dbf d1,.Loop
.End rts
_MyROR tst.l d1
beq.s .End
subq.l #1,d1
.Loop cmp.w #7,_IntBase(a4)
bne.s .Try16
ror.b #1,d0
bra.s .LoopEnd
.Try16 cmp.w #8,_IntBase(a4)
bne.s .Try32
ror.w #1,d0
bra.s .LoopEnd
.Try32 ror.l #1,d0
.LoopEnd dbf d1,.Loop
.End rts
_MyXOR cmp.w #7,_IntBase(a4)
bne.s .Try16
eor.b d1,d0
bra.s .End
.Try16 cmp.w #8,_IntBase(a4)
bne.s .Try32
eor.w d1,d0
bra.s .End
.Try32 eor.l d1,d0
.End rts
_MyNAND cmp.w #7,_IntBase(a4)
bne.s .Try16
not.b d1
and.b d1,d0
bra.s .End
.Try16 cmp.w #8,_IntBase(a4)
bne.s .Try32
not.w d1
and.w d1,d0
bra.s .End
.Try32 not.l d1
and.l d1,d0
.End rts
_MyNOR cmp.w #7,_IntBase(a4)
bne.s .Try16
not.b d1
or.b d1,d0
bra.s .End
.Try16 cmp.w #8,_IntBase(a4)
bne.s .Try32
not.w d1
or.w d1,d0
bra.s .End
.Try32 not.l d1
or.l d1,d0
.End rts
_MyNXOR cmp.w #7,_IntBase(a4)
bne.s .Try16
not.b d1
eor.b d1,d0
bra.s .End
.Try16 cmp.w #8,_IntBase(a4)
bne.s .Try32
not.w d1
eor.w d1,d0
bra.s .End
.Try32 not.l d1
eor.l d1,d0
.End rts
_DoCreatePool move.l a6,-(sp)
move.l $4.w,a6
jsr _AsmCreatePool
move.l (sp)+,a6
rts
_DoDeletePool move.l a6,-(sp)
move.l $4.w,a6
jsr _AsmDeletePool
move.l (sp)+,a6
rts
_AllocVecPool movem.l d1/a0/a6,-(sp)
addq.l #4,d0
move.l d0,-(sp)
move.l $4.w,a6
jsr _AsmAllocPooled
move.l (sp)+,d1
tst.l d0
beq.s .Error
move.l d0,a0
move.l d1,(a0)+
move.l a0,d0
.Error movem.l (sp)+,d1/a0/a6
rts
_FreeVecPool move.l a6,-(sp)
move.l -(a1),d0
move.l $4.w,a6
jsr _AsmFreePooled
move.l (sp)+,a6
rts