Apple II Manuel D’Utilisation

Page de 257
  39  0003  EA         SIGN   NOP
  40  0004  EA         X2     NOP          EXPONENT 2
  41  0005  00 00 00   M2     BSS 3        MANTISSA 2
  42  0008  EA         X1     NOP          EXPONENT 1
  43  0009  00 00 00   M1     BSS 3        MANTISSA 1
  44  000C             E      BSS 4        SCRATCH
  45  0010             Z      BSS 4
  46  0014             T      BSS 4
  47  0018             SEXP   BSS 4
  48  001C  00         INT    BSS 1
  49                   *
  50  1D00                    ORG $1D00    STARTING LOCATION FOR LOG
  51                   *
  52                   *     NATURAL LOG OF MANT/EXP1 WITH RESULT IN MANT/EXP1
  53                   *
  54  1D00  A5 09      LOG    LDA M1
  55  1D02  F0 02             BEQ ERROR
  56  1D04  10 01             BPL CONT     IF ARG>0 OK
  57  1D06  00         ERROR  BRK          ERROR ARG<=0
  58                   *
  59  1D07  20 1C 1F   CONT   JSR SWAP     MOVE ARG TO EXP/MANT2
  60  1D0A  A2 00             LDX =0       MOD 9/76: LOAD X FOR LATER
  61  1D0C  A5 04             LDA X2       HOLD EXPONENT
  62  1D0E  A0 80             LDY =$80
  63  1D10  84 04             STY X2       SET EXPONENT 2 TO 0 ($80)
  64  1D12  49 80             EOR =$80     COMPLIMENT SIGN BIT OF ORIGINAL EXPONENT
  65  1D14  85 0A             STA M1+1     SET EXPONENT INTO MANTISSA 1 FOR FLOAT
  66  1D16  10 01             BPL *+3      MOD 9/76: IS EXPONENT ZERO?
  67  1D18  CA                DEX          MOD 9/76: YES SET X TO $FF
  68  1D19  86 09             STX M1       MOD 9/76: SET UPPER BYTE OF EXPONENT
  69  1D1B  20 2C 1F          JSR FLOAT    CONVERT TO FLOATING POINT
  70  1D1E  A2 03             LDX =3       4 BYTE TRANSFERS
  71  1D20  B5 04      SEXP1  LDA X2,X
  72  1D22  95 10             STA Z,X      COPY MANTISSA TO Z
  73  1D24  B5 08             LDA X1,X
  74  1D26  95 18             STA SEXP,X   SAVE EXPONENT IN SEXP
  75  1D28  BD D4 1D          LDA R22,X    LOAD EXP/MANT1 WITH SQRT(2)
  76  1D2B  95 08             STA X1,X
  77  1D2D  CA                DEX
  78  1D2E  10 F0             BPL SEXP1
  79  1D30  20 4A 1F          JSR FSUB     Z-SQRT(2)
  80  1D33  A2 03             LDX =3       4 BYTE TRANSFER
  81  1D35  B5 08      SAVET  LDA X1,X     SAVE EXP/MANT1 AS T
  82  1D37  95 14             STA T,X
  83  1D39  B5 10             LDA Z,X      LOAD EXP/MANT1 WITH Z
  84  1D3B  95 08             STA X1,X
  85  1D3D  BD D4 1D          LDA R22,X    LOAD EXP/MANT2 WITH SQRT(2)
  86  1D40  95 04             STA X2,X
  87  1D42  CA                DEX
  88  1D43  10 F0             BPL SAVET
  89  1D45  20 50 1F          JSR FADD     Z+SQRT(2)
  90  1D48  A2 03             LDX =3       4 BYTE TRANSFER
  91  1D4A  B5 14      TM2    LDA T,X
  92  1D4C  95 04             STA X2,X     LOAD T INTO EXP/MANT2
  93  1D4E  CA                DEX
  94  1D4F  10 F9             BPL TM2
  95  1D51  20 9D 1F          JSR FDIV     T=(Z-SQRT(2))/(Z+SQRT(2))
  96  1D54  A2 03             LDX =3       4 BYTE TRANSFER
  97  1D56  B5 08      MIT    LDA X1,X
  98  1D58  95 14             STA T,X      COPY EXP/MANT1 TO T AND
  99  1D5A  95 04             STA X2,X     LOAD EXP/MANT2 WITH T
 100  1D5C  CA                DEX