3T4P ...[??? CHECKUNI SECT DIAG FGN 11 DOC 3T4S ...#MAC CHECKUNI [M. DRUKKER 3T4X ...[ 3T52 ...[ 3T55 ...[ ************** 3T58 ...[ * CHECKUNI * 3T5? ...[ ************** 3T5B ...[ 3T5F ...[ 3T5J ...[ CHECKUNI - THIS MACRO CHECKS THE EXISTENCE, SETTING, 3T5M ...[ AND VALUE OF EACH (UNIVERSAL) PARAMETER 3T5Q ...[ 3T5T ...[ THIS MACRO CAN ONLY BE USED WITH GIN 513 ONWARDS. 3T5Y ...[ 3T63 ...[ THIS MACRO WILL NOT CHANGE %A, ETC. 3T66 ...[ NO ERRORS WILL BE MARKED OR LOGGED HOWEVER THE PARAMETERS ARE WRITTEN 3T69 ...[ PARAMETERS ARE TERMINATED BY , OR [ 3T6# ...[ THE MACRO CHECKS WHETHER %A IS (A) UNIVERSAL 3T6C ...[ (B) EXISTS 3T6G ...[ (C) FULLY SET 3T6K ...[ THE FOLLOWING ACTIONS ARE TAKEN: 3T6N ...[ IDENTIFIER = DISPLAY 93? 94? 3T6R ...[ ====================================================================== 3T6W ...[ INCORRECT NAME = INVALID FORMAT 1 1 3T6^ ...[ DOESN'T EXIST = NOT EXISTING 1 2 3T74 ...[ TOTALLY UNSET = UNSET TOTALLY 1 3 3T77 ...[ PARTIALLY SET = PARTIALLY SET 1 4 3T7= ...[ FULLY SET = VALUE IN DECIMAL 0 VALUE IN BINARY 3T7* ...[ ====================================================================== 3T7D ...[ 3T7H ...[ %A,%B,...,%V ARE THE UNIVERSAL IDENTIFIERS TO BE CHECKED. 3T7L ...[ 3T7P ...#DEF 19?+1=1?>19?+1 [SAVE CURRENT OR OUTSIDE LISTNG LEVEL 3T7S ...#LIS 0 3T7X ...#DEF 19?+0=3? [SAVE COMPILATION MODE 3T82 ...#FRL 3T85 ...#ORD 3T88 ...#INT 3T8? ...NAME 16H%A [LEGAL MAX 11 CHARS 3T8B ...SPACE 20H 3T8F ...NUNI 4H: 3T8J ... 16HINVALID FORMAT 3T8M ...NFND 4H: 3T8Q ... 16HNOT EXISTING 3T8T ...UNST 4H: 3T8Y ... 16HPARTIALLY SET 3T93 ...TTUN 4H: 3T96 ... 16HUNSET TOTALLY 3T99 ...VALU 20H= 3T9# ...N12 #12 [: 3T9C ...N20 #20 [SP 3T9G ...N41 #41 [A 3T9K ...N55 #55 [M 3T9N ...N73 #73 [[ 3T9R ...MASK #777777 [B6-23 3T9W ...NTRY STO 0 19?+2 [SAVE THE INTERLUDE LINK 3T9^ ...[ TEST FOR UNIVERSAL 3T=4 ... LDN 5 12 3T=7 ... LDN 3 0 3T== ... LDCH 7 NAME(3) 3T=* ... BXL 7 N41,NTUN [NOT ALPHA START 3T=D ... BXGE 7 N55,NTUN [LOCAL 3T=H ...NXT LDCH 7 NAME(3) 3T=L ... BXL 7 N12,NUMB [NUMBER 3T=P ... BXGE 7 N73,NTUN [NOT ALPHA 3T=S ... BXGE 7 N41,NUMB [ALPHA 3T=X ... BXU 7 N20,NTUN [NOT ALPHA/SPACE 3T?2 ... BRN SPC2 [SPACE TEST 3T?5 ...NUMB BCHX 3 £ [NEXT CHAR 3T?8 ... '066 5 NXT [BCT 3T?? ...[ TEST FOR LENGTH 3T?B ...[ X7 SHLD ALREADY CONTAIN 12TH CHAR 3T?F ... BXU 7 N20,NTUN [TOO LONG 3T?J ... BRN TEXI [NEXT TEST 3T?M ...[ CHECK NO INTERMEDIATE SPACES 3T?Q ...SPC1 LDCH 7 NAME(3) 3T?T ... BXU 7 N20,NTUN [NOT SPACES TO END 3T?Y ...SPC2 BCHX 3 £ [NEXT CHAR 3T#3 ... '066 5 SPC1 [BCT 3T#6 ...[ TEST FOR EXISTENCE 3T#9 ...TEXI LDN 6 3 3T## ... LDN 2 0 3T#C ...NEXT LDX 7 NAME(2) [FIND NO. OF WHOLE WORDS 3T#G ... BXE 7 SPACE,SPFD [FOR COMPARISON BY "FINDIT" 3T#K ... ADN 2 1 3T#N ... '066 6 NEXT [BCT NOT IN #ORD MODE IN GIN503 3T#R ...SPFD ANDN 2 #77 3T#W ... STO 2 18?+1]+56 [:IDENLEN: 3T#^ ... LDN 1 0 3T*4 ... DCH 2 18?+1]+55(1) [:ALENGTH: SAVE IN B0-B5 3T*7 ... LDN 0 2 3T*= ... STO 0 18?+1]+57 [:AUN2: SHOWS UNIVERSAL FOR SEARCH 3T** ... STO 0 18?+1]+32 [:AWORDTYPE: LINE NOT GNRTE STRD WD 3T*D ... LDN 0 NAME [SET UP IDENTIFIER NAME WORDS 3T*H ... LDN 1 18?+1]+7 [:ANAME: 3T*L ... MOVE 0 3 3T*P ... CALL 0 18?+2]+1] [:FINDIT: 3T*S ... BRN NTFD [EXIT 0 => NOT FOUND 3T*X ...[ TEST FOR UNSET [EXIT 1 => FOUND 3TB2 ... LDX 3 18?+0]+28 [:IDENTWSADDR: 3TB5 ... CALL 0 18?+2]+7] [:FINDW: FROM BS 3TB8 ... LDX 4 2(3) [LOOK AT BLOCK 3TB? ... BNG 4 NTSE [TOTALLY UNSET (NOT DEFINED) 3TBB ...[ TEST FOR PARTIALLY SET 3TBF ... LDX 4 3(3) 3TBJ ... ANDX 4 MASK 3TBM ... BNZ 4 NTST [DEFINED WRT UNSETS 3TBQ ...[ WORK OUT VALUE 3TBT ... LDX 5 1(3) [VALUE 3TBY ... STO 5 18?+3]+94 [STORE BINARY IN 94? 3TC3 ... STOZ 18?+3]+93 [SHOW VALUE IN 93? 3TC6 ... LDN 1 VALU+1 3TC9 ... CALL 2 18?+2]+9] [:AL48: CONVERT TO DECIMAL 3TC# ... LDN 5 VALU 3TCC ... BRN PRINT 3TCG ...NTUN LDN 5 NUNI [NOT UNIVERSAL 3TCK ... LDN 7 1 3TCN ... BRN PRNT 3TCR ...NTFD LDN 5 NFND [DOES NOT EXIST 3TCW ... LDN 7 2 3TC^ ... BRN PRNT 3TD4 ...NTSE LDN 5 TTUN [TOTALLY UNSET 3TD7 ... LDN 7 3 3TD= ... BRN PRNT 3TD* ...NTST LDN 5 UNST [NOT FULLY SET 3TDD ... LDN 7 4 3TDH ...[ NOW PRINT REPLY 3TDL ...PRNT LDN 6 1 3TDP ... STO 6 18?+3]+93 [SET 93? FOR ERROR 3TDS ... STO 7 18?+3]+94 [SET 94? BITS 3TDX ...PRINT LDN 6 SPACE 3TF2 ... LDX 7 SPACE 3TF5 ... MOVE 5 5 3TF8 ... CALL 5 18?+2]+20] [:BUFLPSW: 3TF? ... LDX 3 18?+1]+62 [:CURPRIBUF: 3TFB ... LDN 4 1(3) 3TFF ... STO 7 0(3) 3TFJ ... MOVE 3 29 [SPACEFILL BUFFER 3TFM ... LDN 2 NAME 3TFQ ... MOVE 2 9 3TFT ... CALL 3 18?+2]+19] [:APLINE: PRINT MESSAGE 3TFY ... LDX 0 19?+2 3TG3 ... EXIT 0 0 3TG6 ...#JUM NTRY 3TGC ...#SKI 19?+0] [RESET COMPILATION MODE. 3TGG ...#SKI 3TGK ...#EXT 3TGN ...#LIS 19?+1] [RESET LISTING LEVEL. 3TGP ...#STR %B%C%D%E%F%G%H%I%J%K%L%M%N%O%P%Q%R%S%T%U%V 3TGQ ... CHECKUNI %B,%C,%D,%E,%F,%G,%H,%I,%J,%K,%L,%M,%N,%O,%P,%Q,%R,%S,%T,%U,%V 3TGR ...#NOR