; ; %' TRIM and ARG are utility macros %' %' TRIM(a) - returns the input parameter trimmed of leading and %' trailing blanks. %*DEFINE(TRIM(a)) LOCAL x y (%MATCH( x y)(%a)%x)%' %' %' ARG - gets the next comma-delimited arg from variable named TAIL, %' stripped and trimmed. Any macro that has a valid type of NONE %' uses this macro so that the other parameters are not needed. %*DEFINE(ARG) LOCAL a (%MATCH(a,tail)(%tail)%TRIM(%a))%' %' %SET (is_bist,0) %*DEFINE(bist(bist_base_p:bist_offset_p)) (%' %SET(is_bist,-1) %DEFINE(bist_base) (%bist_base_p)%' %DEFINE(bist_offset) (%bist_offset_p)%' ) %SET (is_copy,0) %*DEFINE(copy(src_lo_p,src_hi_p,dest_lo_p,dest_hi_p,count_lo_p,count_hi_p)) (%' %SET(is_copy,-1) src_lo equ %src_lo_p src_hi equ %src_hi_p dest_lo equ %dest_lo_p dest_hi equ %dest_hi_p count_lo equ %count_lo_p count_hi equ %count_hi_p ) %SET (is_auto_config_mem,0) %*DEFINE(auto_configure_memory(parameters)) (%DEFINE(tail) (%parameters)%' %SET(is_auto_config_mem,-1) %DEFINE(btype) (%ARG)%' %DEFINE(start_address) (%ARG)%' %SET(mode,0) %SET(saddr,0) %IF ((%EQS(%btype,LBX)) OR (%EQS(%btype,lbx)) ) THEN (%' %SET(mode,1) %SET(saddr,0) %IF (%LEN(%start_address) ne 0) THEN (%' ERROR -- invalid parameter combination ) FI ) ELSE (%' %IF ((%EQS(%btype,PSB)) OR (%EQS(%btype,psb)) ) THEN (%' %SET(mode,2) %IF (%LEN(%start_address) eq 0) THEN (%' ERROR -- invalid parameter combination ) ELSE (%' %SET(saddr,%start_address) ) FI ) ELSE (%' %IF ((%EQS(%btype,LBX+PSB)) OR (%EQS(%btype,lbx+psb)) ) THEN (%' %SET(mode,3) %SET(saddr,0) %IF (%LEN(%start_address) ne 0) THEN (%' ERROR -- invalid parameter combination ) FI ) ELSE(%' ERROR -- %btype, invalid interface type ) FI ) FI ) FI )%' end auto_configure_memory definition %SET(dynamic_second_true, 0) ;set to false %*DEFINE(system_support)( %SET(dynamic_second_true, -1) %'set to true' %SET(min_seg,0200h)%' hard wire the start and end address %SET(max_seg,0c000h) )