mad_string ScanCall( void ) { char *p; char *q; const mad_string *type; char buff[NAM_LEN]; type = MADCallTypeList(); for( ;; ) { if( *type == MAD_MSTR_NIL ) return( MAD_MSTR_NIL ); MADCliString( *type, sizeof( buff ), buff ); q = buff; p = TokenStart; for( ;; ) { if( !isalnum( *p ) ) { if( p == TokenStart ) return( MAD_MSTR_NIL ); ReScan( p ); return( *type ); } if( tolower( *p ) != tolower( *q ) ) break; ++p; ++q; } ++type; } }
bool PerformCall( address start, bool far_rtn, unsigned num_parms ) { const mad_string *list; list = MADCallTypeList(); if( far_rtn && list[0] != MAD_MSTR_NIL ) ++list; return( PerformExplicitCall( start, list[0], num_parms ) ); }