home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Syzygy Magazine 4
/
Syzygy_Magazine_4_1998_08_07___pl_Disk_2_of_3_Side_B.atr
/
lekcja3.arc
/
INTOP.ASM
next >
Wrap
Assembly Source File
|
1988-09-01
|
3KB
|
1 lines
* Integer operations¢* by Charlie/AR/AwS¢¢ints equ $f9¢inta equ $fa (2)¢intb equ $fc (2)¢intc equ $fe (2)¢¢* Register:¢* iadd,isub,imul,idiv¢* imod,ineg,iabs,isqr¢¢*--------------*¢¢* c:=a+b¢¢iadd clc¢ lda inta¢ adc intb¢ sta intc¢ lda inta+1¢ adc intb+1¢ sta intc+1¢ rts¢¢* c:=a-b¢¢isub sec¢ lda inta¢ sbc intb¢ sta intc¢ lda inta+1¢ sbc intb+1¢ sta intc+1¢ rts¢¢* c:=a*b¢¢imul jsr isig¢ ldx #0¢ ldy #0¢_ml1 lsr intb+1¢ ror intb¢ bcc _ml2¢ txa¢ clc¢ adc inta¢ tax¢ tya¢ adc inta+1¢ tay¢_ml2 lda intb¢ ora intb+1¢ beq _ml3¢ asl inta¢ rol inta+1¢ jmp _ml1¢_ml3 stx intc¢ sty intc+1¢ lda ints¢ bmi ineg¢ rts¢¢* c:=a div b¢¢idiv jsr isig¢ ldx inta¢ ldy inta+1¢_dv1 sec¢ txa¢ sbc intb¢ tax¢ tya¢ sbc intb+1¢ tay¢ bcc _dv2¢ inc intc¢ bne _dv1¢ inc intc+1¢ bne _dv1 (jmp)¢_dv2 stx inta¢ sty inta+1¢ lda ints¢ bmi ineg¢ rts¢¢* c:=a mod b¢¢imod lda inta+1¢ php¢ jsr idiv¢ jsr iadd¢ plp¢ bmi ineg¢ rts¢¢* c:=-c¢¢ineg sec¢ lda #0¢ sbc intc¢ sta intc¢ lda #0¢ sbc intc+1¢ sta intc+1¢ rts¢¢* c:=abs(c)¢¢iabs lda intc+1¢ bmi ineg¢ rts¢¢* a:=int(sqr(abs(a)))¢¢isqr lda inta+1¢ bpl _sq8¢ sec¢ lda #0¢ sbc inta¢ sta inta¢ lda #0¢ sbc inta+1¢ sta inta+1¢_sq8 bne _sq0¢ lda inta¢ cmp #2¢ bcc _sq5¢_sq0 sec¢ lda inta¢ sbc #1¢ sta intc¢ sta _sq2+1¢ lda inta+1¢ sbc #0¢ sta intc+1¢ sta _sq3+1¢ lda #1¢ sta intb¢ lda #0¢ sta intb+1¢ beq _sq4 (jmp)¢_sq1 lda inta¢ sta intb¢ sta _sq6+1¢ lda inta+1¢ sta intb+1¢ sta _sq7+1¢_sq2 lda #$ff¢ sta inta¢_sq3 lda #$ff¢ sta inta+1¢ jsr idiv¢_sq6 lda #$ff¢ sta intb¢_sq7 lda #$ff¢ sta intb+1¢_sq4 clc¢ lda intc¢ adc intb¢ sta inta¢ lda intc+1¢ adc intb+1¢ lsr @¢ sta inta+1¢ ror inta¢ jsr isub¢ bne _sq1¢ lda intc¢ cmp #2¢ bcs _sq1¢_sq5 rts¢¢*--------------*¢¢isig lda #0¢ sta intc¢ sta intc+1¢ lda inta¢ ora inta+1¢ bne _sg0¢ sta intb¢ sta intb+1¢_sg1 pla¢ pla¢ rts¢_sg0 lda intb¢ ora intb+1¢ beq _sg1¢ lda inta+1¢ eor intb+1¢ sta ints¢ lda inta+1¢ bpl _sg2¢ sec¢ lda #0¢ sbc inta¢ sta inta¢ lda #0¢ sbc inta+1¢ sta inta+1¢_sg2 lda intb+1¢ bpl _sg3¢ sec¢ lda #0¢ sbc intb¢ sta intb¢ lda #0¢ sbc intb+1¢ sta intb+1¢_sg3 rts¢¢