bson@rice-chex.ai.mit.edu (Jan Brittenson) (04/07/91)
I had grep(1) extract the undocumented PMCs (Prefixed Machine Code) out of Jake's list. I then reformatted the extract into a shell script that would (using sed(1)) look up of these that I have documented. So here is a list of ~200 additional PMC addresses, roughly 1/4 of the undocumented addresses. Some of these are weak, by which I mean that they only document what bit is set where, or which word in memory is cleared, not the effect it has. However, since weak documentation is just as *correct*, I have included it here. It makes it easier to see what role a specific bit or word has if it appears as a symbol rather than a hex constant. The weak symbols look somewhat like follows: Get_xxxxx Puts the contents of xxxxx on the stack as a short Get_any_xxxxx Puts the contents of xxxxx on the stack as an object Store_xxxxx Stores the value on TOS in xxxxx Set_xxxxx Same, but retains the value on TOS Store_any_xxxxx Set_any_xxxxx Clr_xxxxx Clears the contents of xxxxx Test_xxxxx Tests if contents are nonzero Set_y_xxxxx The contents of xxxxx is ORed with y Clr_y_xxxxx The contents of xxxxx is ANDed with the complement of y (aka BIC, bit clear) Test_y_xxxxx True if the contents of xxxxx AND y is nonzero Some other variants may occur. Sometimes the "_any" infix is missing; but implicit by the context, which is why I haven't bothered adding it. (At the dawn, objects and shorts were created equal. :-)) Sometimes there's a "_nib" infix, in which case only one nybble is affected, as opposed to a 5-nybble word. Strcat is different from the string +, in that it appends one string to the other, and expects there to have been enough space allocated to hold the resulting string. d71:Flush_kbd /Flushes keyboard buffer 4708:Peek_lastkey /Predicate: examine next key in buffer 5068:Clear_ATTN_flag /Flush ATTN flag/counter 65e5:Userobjectp /Predicate: is object a user object? 6b4e:System_RAMobjectp /Predicate: is object system obj in RAM? 6eeb:Eval_next /Eval next token in previous context 6f66:Eval_next_nopush 8207:Function_to_global /Pred:Function (built-in XLIB) to global name 821f:Xlib_to_name_p /Predicate: XLIB to global name e248:Set_706b8 e26d:Get_706b8 e27d:Get_706bd e630:Assert_date /Assert TOS is a valid date e66a:Assert_time /Assert TOS is a valid time e693:Assert_repeat /Assert TOS is a valid repeat factor e7ce:Nonzerop_7079dh 113c2:Get_stacksize /Get size of stack, in nybbles 113d2:Store_stacksize /Update stack size, in nybbles 113e2:Store_nib_706f6 113f2:Get_nib_706f6 11402:Inc_nib_706f6 11412:Dec_nib_706f6 11422:Inc_nib_706ec 11432:Get_nib_706e7 11442:Clr_nib_706e7 11452:Dec_nib_706e7 11462:Inc_nib_706e7 11501:Delayed_alock_p /Predicate: Delayed alpha lock 11511:Prg_on_p /Turn on PRG mode 1155c:Prg_off /Turn off PRG mode 1156c:Delayed_alpha_lock_off /Turn of delayed alpha lock 1192f=Sub_grob /GROB-specific SUB 11a6d:Erase_in_grob /Erase region of GROB 13043:Purge_PICT_viewed /Purge scroll-mode PICT 13061:Purge_PICT /Purge PICT 13167:Scroll_mode_p /Predicate: Scroll mode? 137b6:Get_curRowCol 18308:Recalc_tos_and_gc /Do GC and recalculate stack 1884d:Short0_End /0 END 18a15:No_args /Set error reference, no args checked 2534a:If_nullstr_then /IF "" == THEN 268c2:Get_XlibBits01 269db:XlibMajor_lt700h_p_func /Predicate: XLIB Library Number > #700? 26c1c:If_false_then_End /END if False 27224:If_not_backup_then_eval_prev_context /If not Backup, then Eval_prev_context 27234:If_not_library_then_eval_prev_context /If not Library, then Eval_prev_context 27244:If_not_list_then_eval_prev_context /If not List, then Eval_prev_context 27254:If_not_prg_then_eval_prev_context /If not Program, then Eval_prev_context 27264:If_not_func_then_eval_prev_context /If not XLIB, then Eval_prev_context 2b07b:Store_rand_seed /Set Random Seed 30805:Nthchar /Nth char of string as short 31608:Config_IO /Reconfigure I/O according to stack data [1] 324c8=Serial_CR /Transmit CR on Wire 37e73:RDM_array_size_nelem_dims_ndims /RDM an array 38c08:Store_any_70605 38c18:Get_any_70605 38c28:Clr_70605 38c38:Store_any_7060a 38c48:Get_any_7060a 38c58:Clr_7060a 38c68:Store_any_7060f 38c78:Get_any_7060f 38c88:Clr_7060f 38c98:Store_any_70614 38cab:Get_any_70614 38cbe:Clr_70614 38cd1:Test_4_70688 38cdf:Set_4_70688 38ced:Clr_4_70688 38cfb:Test_8_7068c 38d09:Set_8_7068c 38d17:Clr_8_7068c 38d25:Test_2_7068c 38d33:Set_2_7068c 38d41:Clr_2_7068c 38d4f:Test_8_7068d 38d5d:Set_8_7068d 38d6b:Clr_8_7068d 38d79:Halts_enabled_p /Predicate: Are HALTs enabled? 38d8a:Enable_Halt /Enable HALTs 38d9b:Disable_Halt /Disable HALTs 39275:Frozen_status_alt3 39283:Freeze_status_alt3 39291:Unfreeze_status_alt3 3929f:Frozen_stack_p_alt 392ad:Freeze_stack_alt 392bb:Unfreeze_stack_alt 392c9:Test_2_70689 392d7:Set_2_70689 392e5:Clr_2_70689 392f3:Frozen_menu_p_alt 39301:Freeze_menu_p_alt 3930f:Unfreeze_menu_p_alt 3931d:Frozen_status_alt2 3932b:Freeze_status_alt2 39339:Unfreeze_status_alt2 39347:Frozen_stack_p_alt2 39355:Freeze_stack_alt2 39363:Unfreeze_stack_alt2 39371:Test_2_70686 3937f:Set_2_70686 3938d:Clr_2_70686 3939b:Frozen_menu_p_alt3 393a9:Freeze_menu_alt3 393b7:Unfreeze_menu_alt3 393c5:Frozen_status_p 393e1:Unfreeze_status 393ef:Frozen_stack_p 3940b:Unfreeze_stack 39419:Test_4_7068a 39427:Set_4_7068a 39435:Clr_4_7068a 39443:Menu_frozen_p 3945f:Unfreeze_menu 3946d:Test_1_7068b 3947b:Set_1_7068b 39489:Clr_1_7068b 39497:Test_2_7068b 394a5:Set_2_7068b 394b3:Clr_2_7068b 394c1:Test_4_7068b 394cf:Set_4_7068b 394dd:Clr_4_7068b 394eb:Test_8_7068b 394f9:Set_8_7068b 39507:Clr_8_7068b 39515:Clock_marked_on_p /Predicate: Saved clock displayed state (on/off) 39523:Mark_clock_on /Set saved clock displayed state to ON 39531:Mark_clock_off /Set saved clock displayed state to OFF 3953f:Test_4_70683 3954d:Set_4_70683 3955b:Clr_4_70683 39569:Test_1_70683 3957a:Set_1_70683 3958b:Clr_1_70683 39fb0:Test_2_70683 39fc1:Set_2_70683 39fd2:Clr_2_70683 3ff75:Test_4_7068c 3ff86:Set_4_7068c 3ff97:Clr_4_7068c 3ffa8:Test_1_70688 3ffb9:Set_1_70688 3ffca:Clr_1_70688 417af:Clr_4_70684 417c0:Set_4_70684 417d1:Test_4_70684 417e2:Clr_8_60686 417f3:Set_8_70686 41804:Test_8_70686 41815:Clr_8_70684 41826:Set_8_70684 41837:Test_8_70684 4248e:Store_70619 424a1:Get_70619 424b4:Test_70619 424c7:Clear_70619 44407:Get_nth_edit_char 515cd:Set_type_to_grob /Set object type to GROB 51a4a:Conj_Swap_re_im /CONJ, then swap RE, IM parts 51a5f:Swap_re_im_conj /Swap RE, IM parts, then CONJ 51b2a:Zerop_lcmplx /Predicate: Long Complex == (0,0)? 51b43:Zerop_cmplx /Predicate: Complex == (0,0)? 51b91:Neg_lcmplx /NEG Long Complex 51bc1:Conj_lcmplx /CONJ Long Complex 538c0:Laststack_enabled_p /Predicate: LAST STACK enabled? 53930:Print_format_on_p /Predicate: string conversion in print fmt? 5393e:Setbit_8_70685 5394c:Clrbit_8_70685 5395a:Testbit_8_70685 53968:ALGmodep /Predicate: ALG mode on? 53976:ALGmode_on /Turn ALG mode on 53984:ALGmode_off /Turn ALG mode off 53992:Marked_Istk /Predicate: In Interactive Stack? 539a0:Toggle_marked_Istk /Toggle Interactive Stack 539ae:Mark_Istk_off /Exit Interactive Stack 539bc:Testbit_2_7068d 539ca:Setbit_2_7068d 539d8:Clrbit_2_7068d 53a12:Toggle_INS_mode /Toggle INS mode 53a20:INS_Mode_off /Turn INS mode off 53a2e:INS_mode_on /Turn INS mode on 53a3c:INS_mode_p /Predicate: INS mode? 53a4a:ImmedEntry_p /Predicate: Immediate Entry? 53a66:ImmedEntry_off /Turn Immediate Entry off 53a74:Testbit_4_7068d 53a82:Setbit_4_7068d 53a90:Clrbit_4_7068d 53a9e:Clock_on_p /Clock displayed? 53ac8:Testbit_8_70683 53ad6:Setbit_8_70683 53ae4:Clrbit_8_70683 54050:Get_bin_base /Binary base as short (<10>) 61910:If_not_true_then_drop_end /IF NOT.TRUE THEN DROP END 619cb:Continue_at /Chain to address 61a6d:End_Eval 61fa9:Dup_Builtin_xlib_p /DUP, Predicate: True if XLIB is built-in 61fb6:Builtin_xlib_p /Predicate: True if XLIB is built-in 62001:Roll4_Roll4 /Swap level 1 with 3 and 2 with 4 62289:Dup_Eq3p /DUP, Predicate: == Short 3? 6229a:Equal2p /Predicate: == Short 2? 622a7:Equal1p /Predicate: == Short 1? 622b6:NotEqual1p /Predicate: != Short 1? 622c5:Dup_Equal1p /DUP, Predicate: != Short 1? 622d4:Dup_Nonzerop /DUP, Predicate: != Short 0? 62394:Swap_Strcat /SWAP, Strcat 623a0:Strcat /Add level 1 to level 2 string 624fb:Sub_Div2 /- Short 2 / 64127:Is_Lev1_insideLev2p /Predicate: is level 1 obj part of level 2 obj? -- Jan Brittenson bson@ai.mit.edu