.title print disallows block ; VERB Version 1.0 June 1st, 1985 ; Written by Joe Meadows Jr., with thanks to the ; Fred Hutchinson Cancer Research Center for kindly ; allowing me to use their computing resources. ; ; If you have any questions, comments, ideas, or ; whatever, feel free to contact me via US Mail : ; Joe Meadows Jr. ; 4841 268th Ave. N.E. ; Redmond Wa. 98052 ; or via phone : (206) 827-7296 .library 'clexlib' _clex_l_bracket: string '<' _clex_r_bracket: string '>' .psect _clex_code rd,nowrt,exe .entry clex_print_disallows,^m ; 4(ap) = address of disallows block movl 4(ap),r6 movzwl exp_w_tro_count(r6),r3 moval exp_l_operand_list(r6),r2 case cmd_b_subtype(r6),type=b,limit=#1,<- _path,- _not,- _any2,- _and,- _or,- _xor,- _neg> _path: clrl r4 tstl _clex_handler_flag beql _path2 addl3 clex_table,(r2)[r4],-(sp) ; this entity calls #1,g^clex_find_entity cmpl r0,8(ap) beql _path2 movl r0,r7 beql _path2 ; hmm... How strange, it couldn't find it.. movl r7,r1 cmpb #block_k_command,cmd_b_type(r1) bneq 10$ movzwl cmd_w_name(r1),r7 cmpb #cmd_k_verb,cmd_b_subtype(r1) bneq 20$ incl r7 brb 20$ 10$: cmpb #block_k_type,type_b_type(r1) ; let's assume this is true bneq _path2 movzwl type_w_name(r1),r7 20$: addl r1,r7 add_ascic _clex_l_bracket add_ascic r7 add_ascic _clex_r_bracket brb _path2 _path1: add_string <'.'> _path2: addl3 clex_table,(r2)[r4],r5 movzwl ent_w_label(r5),r1 addl r5,r1 add_ascic r1 aoblss r3,r4,_path1 brw _dis_end _and: clrl r4 add_string <'('> brb _and2 _and1: add_string <' and '> _and2: pushl 8(ap) addl3 clex_table,(r2)[r4],-(sp) calls #2,clex_print_disallows aoblss r3,r4,_and1 add_string <')'> brw _dis_end _or: clrl r4 cmpl r3,#1 beql _or2 add_string <'('> brb _or2 _or1: add_string <' or '> _or2: pushl 8(ap) addl3 clex_table,(r2)[r4],-(sp) calls #2,clex_print_disallows aoblss r3,r4,_or1 cmpl r3,#1 beql _or3 add_string <')'> _or3: brw _dis_end _xor: clrl r4 add_string <'('> brb _xor2 _xor1: add_string <' xor '> _xor2: pushl 8(ap) addl3 clex_table,(r2)[r4],-(sp) calls #2,clex_print_disallows aoblss r3,r4,_xor1 add_string <')'> brw _dis_end _not: clrl r4 add_string <'not'> _not1: add_string <' '> pushl 8(ap) addl3 clex_table,(r2)[r4],-(sp) calls #2,clex_print_disallows aoblss r3,r4,_not1 ; add_string <')'> brw _dis_end _neg: clrl r4 add_string <'(neg'> _neg1: add_string <' '> _neg2: pushl 8(ap) addl3 clex_table,(r2)[r4],-(sp) calls #2,clex_print_disallows aoblss r3,r4,_neg1 add_string <')'> brw _dis_end _any2: clrl r4 add_string <'any2('> brb _any22 _any21: add_string <','> _any22: pushl 8(ap) addl3 clex_table,(r2)[r4],-(sp) calls #2,clex_print_disallows aoblss r3,r4,_any21 add_string <')'> brw _dis_end _dis_end: ret .end