Previous File Previous Page Single Page Next Page Next File

* NAME BASIC-MTHPAK DOC. 70181832000 REV. A PAGE 5

0128 * 0129 * 0130 * RANDOM NUMBER ROUTINE 0131 * 0132 * CALLING SEQUENCE: 0133 * 0134 * JST RNDF 0135 * DAC ARG ADDRESS OF ARGUMENT 0136 * ......RETURN RANDOM NUMBER RETURNED IN A AND B REGISTERS 0137 * 0138 * 0139 * THR ARGUMENT IS LOADED, AND IF POSITIVE, THE HIGH PART OF THE 0140 * ARGUMENT IS SAVED TO INITIALIZE A SEQUENCE, AND THE ARGUMENT IS 0141 * RETURNED AS A RANDOM NUMBER. IF THE ARGUMENT IS NEGATIVE, ITS SIGN 0142 * IS SET POSITIVE. IF ZERO, THE LAST NUMBER GENERATED IN THE 0143 * SEQUENCE IS LOADED. THE A REGISTER IS MULTIPLIED BY 5**5, AND THE 0144 * RESULT IS SAVED TO GENERATE THE NEXT NUMBER IN THE SEQUENCE. THE 0145 * EXPONENT IS INITIALIZED TO ZERO PLUS THE BIAS, AND THE RESULT IS 0146 * PACKED INTO FLOATING POINT FORMAT. 0147 * 0148 * 0149 00022 0 000000 RNDF DAC ** ENTRY 0150 * 0151 * LOAD AND TEST SIGN OF ARGUMENT 0152 * 0153 00023 0 02 00022 LDA RNDF LOAD THE ARGUMENT 0154 00024 0 10 00070 JST LARG 0155 00025 0 11 01060 CAS F0 TEST SIGN OF ARGUMENT 0156 00026 0 01 00042 JMP RN03 POSITIVE - INITIALIZE A SEQUENCE 0157 00027 0 02 00045 LDA RND1 ZERO - LOAD LAST NUMBER GENERATED 0158 * 0159 * HERE IF NEGATIVE OR ZERO 0160 * 0161 00030 140100 SSP NEGATIVE - SET SIGN POSITIVE 0162 00031 0 10 00507 JST M$11 MULTIPLY BY 0163 00032 0 000044 DAC K5E5 5**5 0164 00033 0 04 00045 STA RND1 SAVE TO GENERATE NEXT NUMBER IN SEQUENCE 0165 00034 0 04 00152 STA EXPT 0166 00035 0 02 00572 LDA C200 INITIALIZE EXPONENT TO BIAS 0167 00036 0 13 00152 IMA EXPT 0168 00037 0 10 00202 JST NORM FORM FLOATING POINT NUMBER 0169 00040 0 12 00022 IRS RNDF INCREMENT FOR RETURN 0170 00041 -0 01 00022 JMP* RNDF EXIT 0171 * 0172 * HERE IF POSITIVE 0173 * 0174 00042 0 04 00045 RN03 STA RND1 SAVE TO INITIALIZE A SEQUENCE 0175 00043 -0 01 00120 JMP* LHTS+1 EXIT WITH ORIGINAL ARGUMENT 0176 * 0177 *
Previous File Previous Page Single Page Next Page Next File