dcl 1 mix_temp unaligned, 2 mix_sign bit(6), 2 mix_value bit(30); dcl 1 mix_segment aligned based(object_pt), 2 start_address fixed binary, 2 mix_word(0:3999) unaligned like mix_temp; dcl 1 symbol aligned based(symbol_pt), 2 next ptr, 2 usage ptr init(null), 2 first ptr init(null), 2 last ptr init(null), 2 value fixed binary, 2 defined bit(1) init("0"b), 2 local bit(1), 2 name char(10); dcl 1 literal aligned based(literal_pt), 2 next ptr, 2 usage ptr init(null), 2 size fixed binary, 2 string char(lit_size refer(literal.size)); dcl 1 usage aligned based, 2 next ptr, 2 list fixed binary, 2 object fixed binary; dcl 1 xref aligned based(xref_pt), 2 next ptr init(null), 2 line fixed binary; dcl 1 listing_segment aligned based(list_pt), 2 already_written unaligned char(list_pos), 2 line unaligned char(132); dcl 1 input_segment aligned based(input_pt), 2 processed unaligned char(input_pos), 2 remainder unaligned char(input_left); dcl 1 usage_overlay aligned based(list_pt), 2 skip unaligned char(offset), 2 list_tine unaligned, 3 locn char(4), 3 skip1 char(2), 3 sign char(1), 3 skip2 char(2), 3 afield char(4); dcl ( ALF init(-1), CON init(-2), END init(-3), EQU init(-4), ORIG init(-5)) fixed binary internal static; dcl ( SYMBOL init(1), NUMBER init(2), PLUS init(3), MINUS init(4), TIMES init(5), DIVIDE init(6), FDIVIDE init(7), COLON init(8), SPACE init(9), COMMA init(10), LEFT init(11), RIGHT init(12), EQUAL init(13)) fixed binary internal static; dcl error_message(22) char(64) varying internal static init( /* 1 */ "Multiply defined symbol in LOC field", /* 2 */ "Invalid LOC field", /* 3 */ "Illegal OP field, line ignored", /* 4 */ "Location counter out of range", /* 5 */ "Illegal character in ADDRESS field, blank assumed", /* 6 */ "Symbol or number in ADDRESS field truncated", /* 7 */ "A sub-field in a W-value has been truncated", /* 8 */ "An F-value is not allowed", /* 9 */ "Closing "")"" missing in F part", /* 1O */ "Illegal F-value", /* 11 */ "Error in expression in ADDRESS field", /* 12 */ "An H-type local symbol is not allowed in ADDRESS field", /* 13 */ "Illegal use of forward reference", /* 14 */ "Missing END card, one has been supplied", /* 15 */ "Closing ""="" missing in literal", /* 16 */ "Illegal character in ALF field, blank assumed", /* 17 */ "Invalid A-value", /* 18 */ "Invalid I-value", /* 19 */ "Undefined symbol in ADDRESS field", /* 20 */ "ADDRESS field does not end where expected", /* 21 */ "Undefined B-type local symbol in ADDRESS field", /* 22 */ "Warning: A local symbol has been used in a literal"); dcl op_name(154) char(4) internal static init( "add", "alf", "char", "cmp1", "cmp2", "cmp3", "cmp4", "cmp5", "cmp6", "cmpa", "cmpx", "con", "dec1", "dec2", "dec3", "dec4", "dec5", "dec6", "deca", "decx", "div", "end", "enn1", "enn2", "enn3", "enn4", "enn5", "enn6", "enna", "ennx", "ent1", "ent2", "ent3", "ent4", "ent5", "ent6", "enta", "entx", "equ", "fadd", "fcmp", "fdiv", "fmul", "fsub", "hlt", "in", "inc1", "inc2", "inc3", "inc4", "inc5", "inc6", "inca", "incx", "ioc", "j1n", "j1nn", "j1np", "j1nz", "j1p", "j1z", "j2n", "j2nn", "j2np", "j2nz", "j2p", "j2z", "j3n", "j3nn", "j3np", "j3nz", "j3p", "j3z", "j4n", "j4nn", "j4np", "j4nz", "j4p", "j4z", "j5n", "j5nn", "j5np", "j5nz", "j5p", "j5z", "j6n", "j6nn", "j6np", "j6nz", "j6p", "j6z", "jan", "jann", "janp", "janz", "jap", "jaz", "jbus", "je", "jg", "jge", "jl", "jle", "jmp", "jne", "jnov", "jov", "jred", "jsj", "jxn", "jxnn", "jxnp", "jxnz", "jxp", "jxz", "ld1", "ld2", "ld3", "ld4", "ld5", "ld6", "ld1n", "ld2n", "ld3n", "ld4n", "ld5n", "ld6n", "lda", "ldan", "ldx", "ldxn", "move", "mul", "nop", "num", "orig", "out", "sla", "slax", "slc", "sra", "srax" , "src", "st1", "st2", "st3", "st4", "st5" , "st6", "sta", "stj", "stx", "stz", "sub"); dcl op_code(154) fixed binary internal static init( 1, -1, 5, 57, 58, 59, 60, 61, 62, 56, 57, -2, 49, 50, 51, 52, 53, 54, 48, 55, 4, -3, 49, 50, 51, 52, 53, 54, 48, 55, 49, 50, 51, 52, 53, 54, 48, 55, -4, 1, 56, 4, 3, 2, 5, 36, 49, 50, 51, 52, 53, 54, 48, 55, 35, 41, 41, 41, 41, 41, 41, 42, 42, 42, 42, 42, 42, 43, 43, 43, 43, 43, 43, 44, 44, 44, 44, 44, 44, 45, 45, 45, 45, 45, 45, 46, 46, 46, 46, 46, 46, 40, 40, 40, 40, 40, 40, 34, 39, 39, 39, 39, 39, 39, 39, 39, 39, 38, 39, 47, 47, 47, 47, 47, 47, 9, 10, 11, 12, 13, 14, 17, 18, 19, 20, 21, 22, 8, 16, 15, 23, 7, 3, 0, 5, -5, 37, 6, 6, 6, 6, 6, 6, 25, 26, 27, 28, 29, 30, 24, 32, 31, 33, 2); dcl op_variant(154) fixed binary internal static init( -2, 0, 1, (8)-2, 0, (8)1, -2, 0, (8)3, (8)2, 0, (5)6, 2, -1, (8)0, -1, 0, 3, 5, 4, 2, 1, 0, 3, 5, 4, 2, 1, 0, 3, 5, 4, 2, 1, 0, 3, 5, 4, 2, 1, 0, 3, 5, 4, 2, 1, 0, 3, 5, 4, 2, 1, 0, 3, 5, 4, 2, 1, -1, 5, 6, 7, 4, 9, 0, 8, 3, 2, -1, 1, 0, 3, 5, 4, 2, 1, (16)-2, -1, -2, -1, 0, 0, -1, 0, 2, 4, 1, 3, 5, (7)-2, -3, (3)-2); dcl ( BLANK char(1) init(" "), NL char(1) init(" "), HT char(1) init(" "), HT3 char(3) init(" "), DIGIT char(10) init("0123456789"), ALPHABETIC char(26) init("abcdefghijklmnopqrstuvwxyz"), ALPHANUMERIC char(36) init("abcdefghijklmnopqrstuvwxyz0123456789"), MIXALPHABET char(56) init(" abcdefghi jklmnopqr stuvwxyz0123456789.,()+-*/=$<>@;:'")) internal static; dcl ( BYTESIZE init(6), SIGN(0:1) init (1,-1), MAX_ILC init(3999)) fixed binary internal static; dcl BYTE(5) fixed binary(35) internal static init(64,4096,262144,16777216, 1073741824); dcl default_f_value(-3:-1) init(3,5,0) fixed bin internal static; dcl tab(7) fixed binary internal static init(11,16,29,39,49,59,69);