• Keine Ergebnisse gefunden

OLD PARAMETER RESTORE

Im Dokument 200/205) (Seite 140-149)

FORMULA POINtER POP

OPERATOR STACK

RESTORE ORIGINAL

TEMPORARy STACK POINTER LOAD fUNCTION RESULT

PRl.DEFINEO FUNCTIONS RETURN TO THIS POINT wITH THEIR 42630 "64056 42631 044355 42632 fi'74056 42633 035611

RETURN ADDRESS RECORD LOCATION

OF RESULT

PAGE 0139 1#11 FORMULA EVALUATION ROUTINES

~54J

0544*

0b45.·

0546.

,,547

~548

0549 0550 0f)Sl 0552 0553 05b4 0555 0556 0551 0558 0559 io1560 0561 0562 0563*

0564 ••

0565*

0566*

0567*

1d568*

0569*

0570*

ViS71*

0572*

0573*

0574*

0575*

0576*

0571.

0518.

rd579*

0580 0581

~b82

0583

42635 026447 JMP FORM2 OPERAND STACK f'VALlJATE 'LEN'

•• •

42636 fd1540'1 FOR12 JSB RSCHK

*

CREATE SPACE ON TEMPORARV STACK

42631 161611 LOA TEMPI,! FIND

42640 010566 AND OPOMK STRING'S

42641 040356 ADA .-1 SYMBOL.

42642 001000 Al.S

TABLE

42643 041513 ADA syMTB ENTRY

42644 002004 INA LOAD ADDRESS

42645 1600100 LOA 0;1 OF STRING

42646 ~40356 ADA ,-1 EXTRACT

42647 160000 LOA 0,1 STRING

4265A 010500 AND 8377 L.ENGTH

42651 105120 OCT 105120. STACK

42652 104400 OST TMPST,I STRING L.ENGTH

42653 101330

42654 061330 LOA TMPST STACK ADDRESS

42655 111332 STA OPOST,I OF RESULT

42656 026633 JMP FOR12-J

PRoCESS STRING CONSTANT

** •

WHEN STRING CONSTANTS ARE STACKED, AN APPROPRIATE ENTRY 15 PLACED ON THE TEMPORARY STACK SO THAT ALL STRING OPlRANDS HAVf THE SAM~ FORMa A NEGATED BASE

AODR~SS ON THF OPERAND STACK AND A TWO WORD ENTRY ON THE TEMPORARy STACK CONTAINING THE START.Of.STRING ANO ENO-OF-STRING DESIGNATORS BIASED BY .1 (DEfAULT START-of-STRING DEsIGNATORS HAVE A STACK VALUE of I, DEFAULT ENO.OF.STRING DESIGNATORS HAVE A STACK VALUE OF -1). IN THE CASE OF SUBSCRIPTED STRING vARIABLES, THE TEMPORARY IS CREATED. WHEN THE

'1'

IS SCANNED' TME ENTRY fOR NQ.N-SUBSCR IpTED STRl NG o-pERANDS IS CREATED WHEN THEY ARf SCANNED.

42657 002404 42660 051470 42661 015340 42662 026465

FOR13 CLA,INA CpA EOl JSB STSTR JMP FORM3

PRINT STATEMENT STRING CONSTANT?

NO, STACK STRING CONSTANT EXECUTE END-Of-FORMULA

PAGE ~140 #11 FORMULA EVALUATION ROUTINES 0585*

0586 •• RECO~O RESUlT Of OPERATION

•• •

0587.

0588.

~589.

0590.

05 9 1 0b 9 2 0593

OPERATORS CRlATING IN1ERM~DIAT~ ~ESULTS RETURN TO HfR~.

0594 0595 0596 0597.

0598 ••

4266j 42664 42665

~2666

42667 42670 42671

~353J2

035332 104400 101330

~61330

171332 026500

FURt4 ISl OPDST lSZ OPDST 08T THPST,l LOA TMPST STA OPOST,I JHP FORM4 EXIT FORMULA EVALUATOR

•• •

STACK

TEMPORARY REsULT

SAVE

ADDRESS ON

OFERAND STACK 0599*

0600*

0601*

~602·

0603*

0604.

0605*

THIS wORD IS ACTUALLY PART OF THE FORMULA OPERATOR JUMP TASLl. THE WORDS BETWEEN IT AND FOJT CORRESPOND TO

opERATORS WHICH ARE NoT EXECUTEO, So

CoDE IS INSERTED

HERE TO UTILIZE THIS SPACE.

0606 42672 101336 OEF FORMX,1

0607.·

••

0608... SET LOGICAL VALUES •••

06((19 ••

0610 42673 0611 42674 0612 42675 0613 42676 rtt614 42671 0615 42700 0616 ••

el0240~

006400 026663 061031 064361 026663

FALSE TRUE

CLA

(LB JMP

l DA LDB JMP

.*

0617... EXECUTE UNARV. • ••

0618*.

.*

.*

FOR14

HALF

.... 2 FOR14

0619 42701 015374 EUHIN JSB STrOp 0620 42702 ~15370 JSB ARINV 0621 42703 026663 JMP FOR14 0622.*

0623**· fORMULA OPERATOR .JUMP T ABLt:.

0624 ••

0625 42704 ~42734 FOJT OfF ELBRC 0626 427~5 042402 ofF FORMi 0627 42706 042500 DfF FORM~

0628 427~7 042701 DfF EUMIN 0629 4271'" 042743 OfF ESCMA 0630 42711 043017 OfF f:STR ,,631 42712 043125 OfF EFAO

0632 42713 043131 DfF EFSB

~633 42714 043134 DfF EFMP

0634 42715 043137 OEF FFDV

0635 42716 C'J43142 DEF E.PWR

~b36 42717 043243 OEF EGTRT

10637 4272(.1 ~43247 OEF ELST 0638 4,2721 '043265 DEF ENEQL 0639 42722 ~43255 OEf" EEQL

LOAD

ZERO

LoAD

1.0

UNSTACK AND LOAD TOP OF STACK NEGATE IT

STORE IT

.*. •• ••

[ (

UNARY +

UNARY •

SUBSCRIPT COMMA ASSIGNMENT OPERATOR

+

I t

>

<

'.

#

PAGE ~141 #11 FORMULA EVALUATION ROUTINES

SECOND SUBSCRIPT JSB SSFIX ROUND TO INTEGER JSe RERRS+17,1 UNSUITABLE RESULT LOA PBPTR UN8TACK JSB RERRS+17,I UNSUITABLE RESULT

STB TMPST,I STORE IN TEMPORARY STACK LDA OPOST,I STRING

SSA,RSS VARIABLE?

JMP ESCM2 NO, ARRAY VARIABLE LOA TMPST yES,

INA SAVE

LOB TEMP4 SECOND SUBSCRIPT IN STB 0,1 TEMPORARY STACK

pAGE 0142 #11 FORMULA fVALUATION ROUTINES

43006 0rd1272 430((t7 041256

~pY TEMP5 DISPLACEMENT AOA TEMP4

ADD COLUMN DISPLACEMENT DOUBLE FOR CORE WORDS STORE ACTUAL

ELEMENT ADDRESS

POP UNUSED SOURCE STRING.

43017

DESTINATION ADDRESS TRANSFER

PAGE 0143 #12 FORMULA EVALUATION ROUTINES

0031 43040 "'27044 .JMP ESTR3 yES

0032 43~41 A15376 ,J8B OPCHK NO, UNSTAC~ SOURCE

0033 43042 075254 5T8 TEMP3 AND SAVE VALUE ADDRESS 161634 43043 021024 JMP ESTRI

0~35 43044 060355 fSTR3 LDA •• 2 PREPARE 0036 43t'145 015344 JSB PSTR SOURCE

"037 43~46 ",,71256 STA TEMP4 STRING

0~38 43047 075410 ST8 TPRMf

0039 4305'" ~03400 CCA PREPARE

0040 43051 015344 JSB PSTR DESTINATION STRING 0041 43052 06 4056 LDB PBPTR SAVE CORE

0042 43053 075436 5TB EST1 POINTER

0043 43054 061256 LOA TEMP4 TRANSFER

0044 43055 003000 eMA TO

0045 43~56 04 1272 ADA TEMP5 HIGHER

0046 43057 0B2a20 SSA CORE?

0047 43060 027113 JHP ESTR4 NO

1d048 43061 041410 ADA TPRME YES,

0049 43062 040361 ADA .+2 OVERLAPPING

0050 43063 002021 SSA,RSS TR4NSFER1

0051 43064 021113 JMP ESTR4 NO

0052 43065 c;,61272 LOA TEMP5 YES, SAVE

0053 43066 071440 STA EST2 DESTINATION ADDRESS 0054 43067 006004 INS SET DESTINATION

0055 43~70 005000 Bls ADDRESS TO START 0056 43071 ",75272 5T8 TEMP5 Of' FREE CORE 0057 43012 061406 LOA TNUlL SAVE TRANSFER 0058 43073 071442 STA EST3 LENGTH

0059 43074 003004 CMA,INA ALLOCATE

~060 43075 ~01100 ARS SPACE FOR

0eJ61 43",76 015326 .}S8 CUSP INTERMEDIATE

0062 43071 070056 STA PBPTR STRING

0063 43100 060664 LOA FSCHA

0064 43101 015350 JSB THSTR TRANSfER STRING TO FREE CORE 0065 43102 061442 LOA ESTJ RESTORE TRANSFER

0066 43103 0714~6

srA

TNULl LENGTH

0061 43104 071410 STA TPRME RESET ACTUAL SOURCE LENGTH 0068 43105 061436 l.OA EST! SET SOURCE

0ft169 43106 002004 INA ADDRESS TO

007121 43107 001000 ALS INTERMEDIATE

0071 43110 071256 STA TEMP4 STRING 0072 43111 061440 LOA EST2 RESTORE ORIGINAL.

0073 43112 071272 STA TEMP5 DESTINATION STRING 13074 43113 060664 ESTR4 LDA FSCHA

0075 43114 015350 JSB TRSTR COMPLETE TRANSFER 0076 43115 061436 LDA EST1 RESTORE

FREE

0077 4311 6 07 005 6 STA PBPTR CORE POINTER

0078 43117 026515 JMP FORM5 lXECUTE END.OF.FORMUlA 00 7 9 4312~ 034056 fSTR5 ISZ PS-PTR OEFER

0080 43121 (1)34056 ISZ PBPTR EXECUTION

1(1081 43122 063125 LOA BASSO 0082 43123 170056 STA PBPTR,l 0083 43124 0265~6 JMP FORM4+6 0084.

0085 43125 0~7402 BASSO OCT 7402

0086··

**

PAGE 0144 #12 FORMULA EVALUATION ~OUTINES

0087... EXECUTE + 0088*·

~~89 43126 015J72

~~90 43127 ~1S402

0091 431J~ ~2666J

0092*·

0093*.. EXlCUTE-0094*.

009S 43131 015372 0096 43132 015404 0091 43133 ~26663

0098 ••

0099*.. EXEcUTE.

0100*.

0101 43134 ~15372

0102 43135 0154~6

0103 43136 026663 0104.·

0105*.* EXlCUTE I 0106 ••

0107 4 3 137 015372 0108 43140 015410 0109 43141 026663 0110*.

0111*.. EXECUTE f 0112.*

0113.

0114*. REAL POWER

0115*

0116*

••• ••

E-f-AD

***

••

.*

EFSB

• •• ••

EFMP

••

••• ••

EFDV **

*.

*.*

.*

**

JSB RINOP JSB .FAD JMP FOR14

,JSB BINOP JSB .FSB JMP F OR14

JSB BINOP JSB .FMP JMP FOR14

.JS8 BINOP JSB .FDV JMP fOR14

0117* EXIT TO ERROR IF RASE IS NEGATIVE. E.l.SE COMPUTE

0118* RESULT AS EtCPOWER.LNCBASE)),

0119.

1£1120 0121 0122 0123

~124

0125

43142 43143 43144 43145 43146 43147 43150 43151 43152 43153 43154

·43155 43156 43157 43160 d3161 43162 43163

~126

0127 0128 0129 0130

~131

0132 Vl133 0134 01 35 0136 0137.

~lJ8.*

0139*

0140*

0141*

165332 104200 100001 015414 027151 11212301 027164 015372 002001 015354 LJl02020 115135 065640 015434 015406 101641 01543 2 026663

EPwR

•• ..

....

LOB OPDST,I OLD 1,1

LOAD POWER JSB

JMP SOS JMP JSB

RSS

JSB

SSA

JSB LOB JSB DEF JSB JSB JMP

IFIX

IPWR BINOP PCHK

1NTEGE.R?

NO

yES, 16 .. 81T1 YES

NO, UNSTACK ARGUMENTS CHECK ARGUMENTS

NEGATIVE 8ASE?

RERRS+30,1 YES

BINOI NO, LOAD BASE ADDRESS .LOG TAKE NATUAL LOG

,FMP MULTIPLY BIN02,I BY POWER ,EX? EXPONENTIATE FOR14

PAGE 0145 #12 FORMULA EVALUATION ROUTINES

0142* TO SPEED PROCESS. IF POWER IS NEGATIVE., TAKE RECIPROCAL 0143* FOR ~INAL RESULT.

·0144*

0145 43164 ,,75264 IPWR STB TTl SAVE SIGN 0146 43165 00602~ SSB FORM ABSOLUTE.

0147 43166 007004 CMB,INB VALUE OF POWER 0148 43167 ~75266 STB TT2 SAVE IT

0149 43170 015372 JSB BINOP UNSTACK

015e 43171 002001 RSS ARGUMENTS

0151 43172 015354 .1SB PCHK CHECK ARGUMENTS 0152 43173 065640 LOB BINOI STORE

0153 43174 071640 ST. BINot

0154 43175 075641 STB BIN02 BAsE

0155 43176 061031 LOA HALF INITIALIZE

0156 43177 071614 STA TT3 RESULT

rl'157 43200 060361

LO.

.+2 TO

0158 43201 ~716t5 STA 1T4 t .0

0159 43202 065266 IPWRt LOB TT2 DIVIDE POWER 0160 43203 004031 SlB,BRS BY 2

0161 43204 027223 JMP IPWR4 ODD POWER 0162 43205 075266 STB TT2 EVEN POWER 0163 43206 006e102 IP

w

R2 SZB ZERO?

0164 43207 027234 JMP IPWR5 NO 0165 43210 061264 LDA TTl YES

0166 43211 002020 55A POSITIVE POwER?

0167 43212 027216 JMP IPWR3 NO

0168 43213 061614 LDA TT3 YES, RETURN 0169 43214 065615 LDB TT4 WITH

l£1170 43215 026663 JMP FOR14 RESULT 0171 43216 ~610Jl IPwR3 LOA HALF TAKE

~172 43217 ~64361 LDB .+2 REC'IPROCAL k117J 43220 015410 JSB .FDV FOR

0174 43221 001614 OEF TT3 FINAL

0175 43222 026663 JMP FOR14 RESULT

0176 43223 075266 IPWR4 STS TT2 SAVE POWER

0177 43224 061640 LOA BINOl LOAD

0178 43225 065641 LOB BI N0 2 BASE

~179 43226 015406 JSB .FMP MULTIPLY BY

0180 43227 001614 OfF TT3 RESULT SO FAR

0181 4323~ 071614 STA TT3 SAVE NEW 0182 43231 075615 STB TT4 PARTIAL

0183 43232 ~65266 LOB TT2 RESULT

0184 43233 027206 JMP IPWR2

0185 4323 4 06164 0 IPWR5 LOA BINOI SQUARE

01 8 6 43235 065641 LOB BIN02

0187 43236 0154e16 JSB .FMP BASE 0188 43237 001640 OEF BINOl

0189 43240 071640 STA BINOi RECORD 0190 43241 "'756 4 1 STB BIN02 NEW 13191 43242 027202 JHP IPWRl BASE

pAGE ~146 #12 FORMULA EVALUATION RoUTINES

0193**

0194... EX~CUTE >

0195.*

0196 43243 015352 0197 43244 002020 0198 43245 A26673 0199 43246 027266 0200 ••

0201**. EXECUTE <

0202 ••

0203 43247 015352 0204 4325~ 0030~1

0205 ••

0206.** EXECUTE >c

0207 ••

0208 43251 015352 0209 43252 002020 0210 43253 026673 0211 43254 026616 0212 ••

0213... EXECUTE.

0214 ••

0215 43255 015352 0216 43256 002002 0217 43257 026613 0218 43260 026676 0219.*

0220*.. EXECUTE <.

0221*·

0222 43261 015352 0223 43262 002020 0224 43263 026676 0225 43264 027256 0226**

••• *.

EGTRT JSB COMPR

••

••• ••

*.

SSA

JMP FALSE JMP ENEQL+l

ElST .158 COMPR

••• .*

*.

CMA,RSS

EGQRE JSB COMPR

• •• ••

••

55A

.]MP FALSE

.IMP TRUE

EEQL JSB COMPR

• •• ••

*.

SZA

JMP FALSE JMP TRUE

ElORE JSB COMPR

SSA

JMP TRUE JMP EEQL"'l

*.

0227... EXECUTE # OR <>

•• *

0228**

0229 43265 015352 0230 43266 002002 0231 43267 026676 0232 43270 026673 0233.*

ENEQL JSB COMPR

••

SZA

JHP TRUE JHP FALSE

0234.*. EXECUTE 'MAX'

.-- ••

0235.*

0236 43271 0237 43272 023a 43273 0239 43274 0240 43275 43276 0241 43277

015372

015404 002021 027304 104 2 00 101641 026663

EMAX

-.

JSB BINOP

JaB .Fsa

SSA,RSS JMP ARGI OLD BIN02,I JMP FOR14

0242·* ••

0243... ExECUTE 'MIN'

* ••

0244 ••

0245 43300 015372 0246 43301 015404 0247 43302 002021

EMIN

••

.1SB BINOP

JSB ,FsB SSA,RSS

COMPARE OPERANDS

c ?

YES NO

COMPARE OPERANDS

REVERSE COMPARISON SENSE

COMPARE OPERANDS c 1

YES NO

COMPARE OPERANDS

• ?

NO YES

COMPARE OPERANDS

>-

?

NO YES

COMPARE OPERANDS

II ? NO YES

SUBTRACT THE

ToP TWo opERANDS TOP OPERAND LARGER?

NO

YES, RETRIEVE

ITS VALUE

SUBTRACT THE

TOP TWO OPERANDS

iTOP~OPERAND: LARGER!

PAGE 0147 #12 FORMULA EVALUATION ROUTINES

NEXT-TO·TOP OPERAND

0263.* **

NEXT~TO~TOP OPERAND 0273... EXECUTE 'NOT' •••

Im Dokument 200/205) (Seite 140-149)