Trailing-Edge
-
PDP-10 Archives
-
decuslib20-03
-
decus/20-0078/libsim/match6.mac
There is 1 other file named match6.mac in the archive. Click here to see a list.
00100 COMMENT * match6, SIMULA specification;
00200 OPTIONS(/E:QUICK,match6);
00300 INTEGER PROCEDURE match6(id1,id2,mask); INTEGER id1,id2,mask;
00400 COMMENT ID1 (without wild characters) is tested against ID2
00500 with MASK showing wild card positions in ID2 if any.
00600 The result is 1 for an exact match, -1 for a wildcard match,
00700 0 for no match. ID1 and ID2 are in SIXBIT code.
00800 ;
00900
01000 !*;! MACRO-10 code !*;!
01100
01200 TITLE match6
01300 ENTRY match6
01400 SUBTTL SIMULA utility, Lars Enderin Jun 1978
01500
01600 ;!*** Copyright 1978 by the Swedish Defence Research Institute. ***
01700 ;!*** Copying is allowed. ***
01800
01900
02000 sall
02100 search simmac,simmcr,simrpa
02200 macinit
02300
02400 ;! Local definitions ;!
02500
02600 mask==<1+<id2==<1+<id1==0>>>>
02700
02800 match6: PROC
02900 LD X0,id1(XTAC)
03000 SETZM (XTAC) ;! No match assumed
03100 CAMN X0,X1
03200 GOTO match
03300
03400 SKIPN mask(XTAC)
03500 GOTO nomatch
03600
03700 ANDCM X0,mask(XTAC)
03800 ANDCM X1,mask(XTAC)
03900 SOS (XTAC)
04000 CAME X0,X1
04100 match: AOS (XTAC)
04200 nomatch:RET
04300 EPROC
04400 LIT
04500 END;