S Register Flags ================ s0 = key pressed s1 = input_started (number keys or EEX or dot, have been pressed) s3 = w/prgm (0=in run mode) s5 = (in run mode) error (1 causes flashing display) s5 = (in w/prgm mode) prgm mem full (1 causes trailing minus) s8 = running (1= get key from prgm mem) s9 = display_input (show what has been keyed in) s10= dont-interupt. Ignores keypress during running program. s11= last f flag went from 1->0 s2 = (input) dot_pressed s7 = (input) eex_pressed s4 = ? s6 = ? F Flags ======= f1 = auto_enter. data entry lifts stack. 0 after CLx and ENTER. f5 = ready (0 when prgm mem busy) f3 = display_x (0= skip the display process, A & B are already set. 1= show stack X (C register value)) f4 = f SF 1 f6 = f SF 2 f7 = special mode. (key->prgm mem, computed gotos, ...) f0 = ? f2 = step100. "- 35 01- ". Set if prg pointer is after (at) step 100 M Register Flags ================ M[13]: 1= in main routine, 0= in sub routine M[12]: 1= DSP was pressed, 2= DSP . pressed M[11]: 1= GTO was pressed. M[10]: 1= LBL was pressed. M[ 9]: ??? M[ 8]: ??? M[ 7]: 1= f was pressed. M[ 6]: 1= f-1 was pressed. M[ 5]: 1= STO was pressed, 2-5= STO {-+*/} pressed. M[ 4]: 1= RCL was pressed. M[ 3]: 1= g was pressed. M[ 2]: precision (2 if DSP . 2, 5 if DSP 5) M[ 1]: mode (0=SCI, 2=FIX) M[ 0]: angle mode (0=RAD, 1=DEG, 2=GRD) Key Parts of the Microcode ========================== 00000 Power up 00726 - 00777. The wait loop. 00726 waitloop1 00622 waitloop2 (checks for interrupt) 00764 waitloop3 00774 waitloop4 00625 a key has been pressed 01316 switch (key) - uses 01000 jump table 00531 display 00554 setup A & B for display 00616 display X in SCI notation 04164 display X in FIX notation 02127 MCIRC0 - subroutine to wait for prgm mem to be ready (last action to complete) 00750 if running get next prgm step