;
;CONVERT 2 BYTE UNSIGNED INTEGER IX2 TO FLOAT
LDA #$00
STA FAC+1
STA FAC+2
LDA IX2
STA FAC+3
LDA IX2+1
STA FAC+4
JSR FLOAT
;
;MOVE TO "ARG"
JSR TOARG
;
;CONVERT 2 BYTE UNSIGNED INTEGER IX1 TO FLOAT
LDA #$00
STA FAC+1
STA FAC+2
LDA IX1
STA FAC+3
LDA IX1+1
STA FAC+4
JSR FLOAT
;
;SAVE FLOATING POINT NUMBER FX1
LDX #$06
L0 LDA FAC-1,X
STA FX1-1,X
DEX
BNE L0
;
;COMPUTE FX2-FX1
JSR FSUB
;
;SAVE FX2-FX1 ON STACK FOR LATER USE
LDX #$06
L1 LDA FAC-1,X
PHA
DEX
BNE L1
;
;CONVERT 2 BYTE UNSIGNED INTEGER IY2 TO FLOAT
LDA #$00
STA FAC+1
STA FAC+2
LDA IY2
STA FAC+3
LDA IY2+1
STA FAC+4
JSR FLOAT
;
JSR TOARG ;MOVE TO "ARG"
;
;CONVERT 2 BYTE UNSIGNED INTEGER IY1 TO FLOAT
LDA #$00
STA FAC
STA FAC+1
STA FAC+2
LDA IY1
STA FAC+3
LDA IY1+1
STA FAC+4
JSR FLOAT
;
;SAVE FLOATING POINT NUMBER FY1
LDX #$06
L2 LDA FAC-1,X
STA FY1-1,X
DEX
BNE L2
;
;COMPUTE FY2-FY1
JSR FSUB
;
JSR TOARG ;MOVE TO "ARG"
;
;RETRIEVE FX2-FX1 FROM STACK
LDX #$FA
L3 PLA
STA FAC+6,X
INX
BNE L3
;
;COMPUTE (FY2-FY1)/(FX2-FX1)
JSR FDIV
;
;SAVE FLOATING POINT NUMBER (FY2-FY1)/(FX2-FX1)
LDX #$06
L4 LDA FAC-1,X
STA CO-1,X
DEX
BNE L4
;
;CONVERT 2 BYTE UNSIGNED INTEGER IX TO FLOAT
LDA #$00
STA FAC+1
STA FAC+2
LDA IX
STA FAC+3
LDA IX+1
STA FAC+4
JSR FLOAT
;
;MOVE TO "ARG"
JSR TOARG
;
;RETRIEVE FX1
LDX #$06
L5 LDA FX1-1,X
STA FAC-1,X
DEX
BNE L5
;
;COMPUTE FX-FX1
JSR FSUB
;
;MOVE TO "ARG"
JSR TOARG
;
;RETRIEVE FLOATING POINT NUMBER (FY2-FY1)/(FX2-FX1)
LDX #$06
L6 LDA CO-1,X
STA FAC-1,X
DEX
BNE L6
;
;COMPUTE (FX-FX1)*(FY2-FY1)/(FX2-FX1)
JSR FMUL
;
;MOVE TO "ARG"
JSR TOARG
;
;RETRIEVE FLOATING POINT NUMBER FY1
LDX #$06
L7 LDA FY1-1,X
STA FAC-1,X
DEX
BNE L7
;
;COMPUTE FY+(FX-FX1)*(FY2-FY1)/(FX2-FX1)
JSR FADD
;
;CONVERT TO 32 BIT INTEGER
JSR FIX
;
;SAVE THE 2 LEAST SIGNIFICANT BYTES
LDA FAC+3
STA IY
LDA FAC+4
STA IY+1
BRK
IX .DB $61 ;X =25000
.DB $A8
IX1 .DB $00 ;X1=231
.DB $E7
IX2 .DB $72 ;X2=29239
.DB $37
IY1 .DB $01 ;Y1=499
.DB $F3
IY2 .DB $7F ;Y2=32767
.DB $FF
;IY SHOULD BE $6D93 28051.6
FX1 *=*+6
FY1 *=*+6
CO *=*+6
IY *=*+2
Text file Source (historic): geocities.com/matsr2007
(to report bad content: archivehelp @ gmail)
|
|
|
|
|