bifsub struc ;parms for substitution from keysquare ;bp-24 dw ? N**2 ;bp-22 dw ciphertext top or bottom line origin ;bp-20 dw ? return code, 0 = no conflicts, -1 = conflicts ;bp-18 db ? flaga ; 01 = conflict detected ; 02 = this block is odd length ; 04 = this letter index is odd ; 08 = ciphertext bottom line ; 10 = use column key letters, 00 use row key letters ; 80 = plaintext / keysquare coordinate conflict ;bp-17 db flagb for filler ;bp-16 dw ? length of a short block ;bp-14 dw ? length of a full block ;bp-12 dw ? number of full blocks ;bp-10 dw ? start of top row coordinates ;bp-8 dw ? key start offset ;bp-6 dw ? col start offset ;bp-4 dw ? row start offset ;bp-2 dw ? 5 for address arith dw ? ;bp save dd ? ;return address keyp2 dd ? ;->keysquare parms bifp dd ? ;->bifid parms bifsub ends