|
|
1.1.1.3 ! root 1: ; This is the assembler source code for amiga 68000 ! 2: ; It assumes Lattice-C is used. (v5.04 or higher) ! 3: ; Written by S. Fishman ! 4: ! 5: SECTION text ! 6: ! 7: XREF _global_precision ! 8: XDEF _P_ADDC ;make the linker know we're here ! 9: ! 10: _P_ADDC: link a6,#0 ! 11: movem.l d4-d5/a0-a1,-(a7) ! 12: move.l 8(a6),a0 ! 13: move.l 12(a6),a1 ! 14: move.l 16(a6),d4 ! 15: sne d4 ! 16: moveq.l #0,d5 ! 17: move.w _global_precision,d5 ! 18: asl.l #2,d5 ! 19: add.l d5,a0 ! 20: add.l d5,a1 ! 21: asr.l #2,d5 ! 22: sub.l #1,d5 ! 23: asr.b #1,d4 ! 24: add_loop: addx.l -(a1),-(a0) ! 25: dbra d5,add_loop ! 26: scs d0 ! 27: ext.w d0 ! 28: ext.l d0 ! 29: movem.l (a7)+,d4-d5/a0-a1 ! 30: unlk a6 ;get A6 & A7 back ! 31: rts ! 32: ! 33: XDEF _P_SUBB ! 34: ! 35: _P_SUBB: link a6,#0 ! 36: movem.l d4-d5/a0-a1,-(a7) ! 37: move.l 8(a6),a0 ! 38: move.l 12(a6),a1 ! 39: move.l 16(a6),d4 ! 40: sne d4 ;fix old borrow bits ! 41: moveq.l #0,d5 ! 42: move.w _global_precision,d5 ! 43: asl.l #2,d5 ! 44: add.l d5,a0 ! 45: add.l d5,a1 ! 46: asr.l #2,d5 ! 47: sub.l #1,d5 ! 48: asr.b #1,d4 ! 49: sub_loop: subx.l -(a1),-(a0) ;come'n, let's do it !!! ! 50: dbra d5,sub_loop ! 51: scs d0 ! 52: ext.w d0 ! 53: ext.l d0 ! 54: movem.l (a7)+,d4-d5/a0-a1 ! 55: unlk a6 ! 56: rts ! 57: ! 58: XDEF _P_ROTL ! 59: ! 60: _P_ROTL: link a6,#0 ! 61: movem.l d4-d5/a0,-(a7) ! 62: move.l 8(a6),a0 ! 63: move.l 12(a6),d4 ! 64: moveq.l #0,d5 ! 65: move.w _global_precision,d5 ! 66: asl.l #1,d5 ! 67: ! 68: sub.l #2,d5 ! 69: asl (a0)+ ! 70: scs d0 ! 71: ext.w d0 ! 72: ext.l d0 ! 73: rotl_loop: asl (a0)+ ! 74: bcc rotl_no_carry ! 75: bset #0,-3(a0) ! 76: rotl_no_carry: dbra d5,rotl_loop ! 77: tst.l d4 ! 78: beq rotl_no_old_carry ! 79: bset #0,-1(a0) ! 80: rotl_no_old_carry: ! 81: movem.l (a7)+,d4-d5/a0 ! 82: unlk a6 ! 83: rts ! 84: ! 85: XDEF _P_SETP ! 86: ! 87: _P_SETP: rts ! 88: END ! 89:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.