; NUL SOH STX ETX EOT ENQ ACK BEL BS HT LF VT FF CR SO SI .BYTE 1, 2, 6, 2, 2, 2, 2, 6, 2, 2, 2, 2, 2, 2, 2, 2 ; ; 0 1 2 3 4 5 6 7 8 9 : ; < = > ? .BYTE 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2 ; NUL SOH STX ETX EOT ENQ ACK BEL BS HT LF VT FF CR SO SI .BYTE 6, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ; ; DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS US .BYTE 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ; ; SP ! " # $ % & ' ( ) * + , - . / .BYTE 1, 2, 6, 2, 2, 2, 2, 6, 2, 2, 2, 2, 2, 2, 2, 2 ; ; 0 1 2 3 4 5 6 7 8 9 : ; < = > ? ; DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS US .BYTE 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ; ; SP ! " # $ % & ' ( ) * + , - . / .BYTE 1, 2, 6, 2, 2, 2, 2, 6, 2, 2, 2, 2, 2, 2, 2, 2 ; ; 0 1 2 3 4 5 6 7 8 9 : ; < = > ? .BYTE 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2 ; ; @ A B C D E F G H I J K L M N O .BYTE 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 ; ; P Q R S T U V W X Y Z [ \ ] ^ _ .BYTE 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2 ; ; ` a b c d e f g h i j k l m n o .BYTE 2, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5 ; ; p q r s t u v w x y z { | } ~ DEL .BYTE 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 2, 2, 2, 2, 6 ; .BYTE 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6 ; all 128-255 invalid ASCII .BYTE 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6 .BYTE 6,6,6,2,6,6,6,6,6,6,6,6,6,6,6,6 ; Allow <£> as A3 (163) .BYTE 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6 .BYTE 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6 .BYTE 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6 .BYTE 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6 .BYTE 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6 MOVL PresSpecial,R4 ; take sum of presence flags ADDL PresNumeric,R4 ADDL PresUpper,R4 ADDL PresLower,R4 CMPL R4,#3 ; Require at least 3 different types BLSS bad