| Data

32D7: THE TABLE OF ADDRESSES

Used by the routine at CALCULATE. This table is a look-up table of the addresses of the sixty-six operational subroutines of the calculator. The offsets used to index into the table are derived either from the operation codes used in the routine at SCANNING (see S_LOOP, etc.) or from the literals that follow a 'RST $28' instruction.
CALCADDR | 32D7 | DEFW jump_true | +00
| 32D9 | DEFW exchange | +01
| 32DB | DEFW delete | +02
| 32DD | DEFW subtract | +03
| 32DF | DEFW multiply | +04
| 32E1 | DEFW division | +05
| 32E3 | DEFW to_power | +06
| 32E5 | DEFW no_or_no | +07
| 32E7 | DEFW no_and_no | +08
| 32E9 | DEFW compare | +09: <= (numbers)
| 32EB | DEFW compare | +0A: >= (numbers)
| 32ED | DEFW compare | +0B: <> (numbers)
| 32EF | DEFW compare | +0C: > (numbers)
| 32F1 | DEFW compare | +0D: < (numbers)
| 32F3 | DEFW compare | +0E: = (numbers)
| 32F5 | DEFW addition | +0F
| 32F7 | DEFW str_no | +10
| 32F9 | DEFW compare | +11: <= (strings)
| 32FB | DEFW compare | +12: >= (strings)
| 32FD | DEFW compare | +13: <> (strings)
| 32FF | DEFW compare | +14: > (strings)
| 3301 | DEFW compare | +15: < (strings)
| 3303 | DEFW compare | +16: = (strings)
| 3305 | DEFW strs_add | +17
| 3307 | DEFW val | +18 (VAL$)
| 3309 | DEFW usr | +19
| 330B | DEFW read_in | +1A
| 330D | DEFW negate | +1B
| 330F | DEFW code | +1C
| 3311 | DEFW val | +1D (VAL)
| 3313 | DEFW len | +1E
| 3315 | DEFW sin | +1F
| 3317 | DEFW cos | +20
| 3319 | DEFW tan | +21
| 331B | DEFW asn | +22
| 331D | DEFW acs | +23
| 331F | DEFW atn | +24
| 3321 | DEFW ln | +25
| 3323 | DEFW exp | +26
| 3325 | DEFW int | +27
| 3327 | DEFW sqr | +28
| 3329 | DEFW sgn | +29
| 332B | DEFW abs | +2A
| 332D | DEFW peek | +2B
| 332F | DEFW f_in | +2C
| 3331 | DEFW usr_no | +2D
| 3333 | DEFW str | +2E
| 3335 | DEFW chrs | +2F
| 3337 | DEFW f_not | +30
| 3339 | DEFW duplicate | +31
| 333B | DEFW n_mod_m | +32
| 333D | DEFW jump | +33
| 333F | DEFW stk_data | +34
| 3341 | DEFW dec_jr_nz | +35
| 3343 | DEFW less_0 | +36
| 3345 | DEFW greater_0 | +37
| 3347 | DEFW end_calc | +38
| 3349 | DEFW get_argt | +39
| 334B | DEFW truncate | +3A
| 334D | DEFW fp_calc_2 | +3B
| 334F | DEFW e_to_fp | +3C
| 3351 | DEFW re_stack | +3D
| 3353 | DEFW series | +3E
| 3355 | DEFW stk_con | +3F
| 3357 | DEFW st_mem | +40
| 3359 | DEFW get_mem | +41
Note: the last four subroutines are multi-purpose subroutines and are entered with a parameter that is a copy of the right hand five bits of the original literal. The full set follows: Offset +3E: series-06, series-08 and series-0C; literals +86, +88 and +8C. Offset +3F: stk-zero, stk-one, stk-half, stk-pi/2 and stk-ten; literals +A0 to +A4. Offset +40: st-mem-0, st-mem-1, st-mem-2, st-mem-3, st-mem-4 and st-mem-5; literals +C0 to +C5. Offset +41: get-mem-0, get-mem-1, get-mem-2, get-mem-3, get-mem-4 and get-mem-5; literals +E0 to +E5.