Apple II manual RTLOG1, Mdend, Normx

Models: II

1 257
Download 257 pages 49.17 Kb
Page 99
Image 99

335

1F41

45

09

 

 

EOR M1

 

336

1F43

30

04

 

 

BMI RTS1

YES,RETURN WITH MANT1 NORMALIZED

337

1F45

A5

08

 

 

LDA X1

EXP1 ZERO?

338

1F47

D0

ED

 

 

BNE NORM1

NO, CONTINUE NORMALIZING

339

1F49

60

 

 

RTS1

RTS

RETURN

340

 

 

 

 

*

 

 

341

 

 

 

 

*

 

 

342

 

 

 

 

*

EXP/MANT2-EXP/MANT1 RESULT IN EXP/MANT1

343

 

 

 

 

*

 

 

344

1F4A

20

8F

1F

FSUB

JSR FCOMPL

CMPL MANT1 CLEARS CARRY UNLESS ZERO

345

1F4D

20

5D

1F

SWPALG

JSR ALGNSW

RIGHT SHIFT MANT1 OR SWAP WITH MANT2 ON CARRY

346

 

 

 

 

*

 

 

347

 

 

 

 

*

ADD EXP/MANT1

AND EXP/MANT2 RESULT IN EXP/MANT1

348

 

 

 

 

*

 

 

349

1F50

A5

04

 

FADD

LDA X2

 

350

1F52

C5

08

 

 

CMP X1

COMPARE EXP1 WITH EXP2

351

1F54

D0

F7

 

 

BNE SWPALG

IF UNEQUAL, SWAP ADDENDS OR ALIGN MANTISSAS

352

1F56

20

00

1F

 

JSR ADD

ADD ALIGNED MANTISSAS

353

1F59

50

E3

 

ADDEND

BVC NORM

NO OVERFLOW, NORMALIZE RESULTS

354

1F5B

70

05

 

 

BVS RTLOG

OV: SHIFT MANT1 RIGHT. NOTE CARRY IS CORRECT

SIGN

 

 

 

 

 

 

 

355

1F5D

90

BD

 

ALGNSW

BCC SWAP

SWAP IF CARRY CLEAR, ELSE SHIFT RIGHT ARITH.

356

1F5F

A5

09

 

RTAR

LDA M1

SIGN OF MANT1 INTO CARRY FOR

357

1F61

0A

 

 

 

ASL

RIGHT ARITH SHIFT

358

1F62

E6

08

 

RTLOG

INC X1

INCR EXP1 TO COMPENSATE FOR RT SHIFT

359

1F64

F0

7E

 

 

BEQ OVFL

EXP1 OUT OF RANGE.

360

1F66

A2

FA

 

RTLOG1

LDX =$FA

INDEX FOR 6 BYTE RIGHT SHIFT

361

1F68

A9

80

 

ROR1

LDA =$80

 

362

1F6A

B0

01

 

 

BCS ROR2

 

363

1F6C

0A

 

 

 

ASL

 

364

1F6D

56

0F

 

ROR2

LSR E+3,X

SIMULATE ROR E+3,X

365

1F6F

15

0F

 

 

ORA E+3,X

 

366

1F71

95

0F

 

 

STA E+3,X

 

367

1F73

E8

 

 

 

INX

NEXT BYTE OF SHIFT

368

1F74

D0

F2

 

 

BNE ROR1

LOOP UNTIL DONE

369

1F76

60

 

 

 

RTS

RETURN

370

 

 

 

 

*

 

 

371

 

 

 

 

*

 

 

372

 

 

 

 

*

EXP/MANT1 X EXP/MANT2 RESULT IN EXP/MANT1

373

 

 

 

 

*

 

 

374

1F77

20

0D

1F

FMUL

JSR MD1

ABS. VAL OF MANT1, MANT2

375

1F7A

65

08

 

 

ADC X1

ADD EXP1 TO EXP2 FOR PRODUCT EXPONENT

376

1F7C

20

CD 1F

 

JSR MD2

CHECK PRODUCT EXP AND PREPARE FOR MUL

377

1F7F

18

 

 

 

CLC

CLEAR CARRY

378

1F80

20

66

1F

MUL1

JSR RTLOG1

MANT1 AND E RIGHT.(PRODUCT AND MPLIER)

379

1F83

90

03

 

 

BCC MUL2

IF CARRY CLEAR, SKIP PARTIAL PRODUCT

380

1F85

20

00

1F

 

JSR ADD

ADD MULTIPLICAN TO PRODUCT

381

1F88

88

 

 

MUL2

DEY

NEXT MUL ITERATION

382

1F89

10

F5

 

 

BPL MUL1

LOOP UNTIL DONE

383

1F8B

46

03

 

MDEND

LSR SIGN

TEST SIGN (EVEN/ODD)

384

1F8D

90

AF

 

NORMX

BCC NORM

IF EXEN, NORMALIZE PRODUCT, ELSE COMPLEMENT

385

1F8F

38

 

 

FCOMPL SEC

SET CARRY FOR SUBTRACT

386

1F90

A2

03

 

 

LDX =$03

INDEX FOR 3 BYTE SUBTRACTION

387

1F92

A9

00

 

COMPL1

LDA =$00

CLEAR A

388

1F94

F5

08

 

 

SBC X1,X

SUBTRACT BYTE OF EXP1

389

1F96

95

08

 

 

STA X1,X

RESTORE IT

390

1F98

CA

 

 

 

DEX

NEXT MORE SIGNIFICANT BYTE

391

1F99

D0

F7

 

 

BNE COMPL1

LOOP UNTIL DONE

392

1F9B

F0

BC

 

 

BEQ ADDEND

NORMALIZE (OR SHIFT RIGHT IF OVERFLOW)

393

 

 

 

 

*

 

 

394

 

 

 

 

*

 

 

395

 

 

 

 

*

EXP/MANT2 / EXP/MANT1 RESULT IN EXP/MANT1

 

 

 

 

 

 

 

 

Page 99
Image 99
Apple II manual RTLOG1, Mdend, Normx