package com.bytezone.diskbrowser.applefile; public interface PascalConstants { static String[] mnemonics = { "ABI", "ABR", "ADI", "ADR", "LAND", "DIF", "DVI", "DVR", "CHK", "FLO", "FLT", "INN", "INT", "LOR", "MODI", "MPI", "MPR", "NGI", "NGR", "LNOT", "SRS", "SBI", "SBR", "SGS", "SQI", "SQR", "STO", "IXS", "UNI", "LDE", "CSP", "LDCN", "ADJ", "FJP", "INC", "IND", "IXA", "LAO", "LSA", "LAE", "MOV", "LDO", "SAS", "SRO", "XJP", "RNP", "CIP", "EQU", "GEQ", "GRT", "LDA", "LDC", "LEQ", "LES", "LOD", "NEQ", "STR", "UJP", "LDP", "STP", "LDM", "STM", "LDB", "STB", "IXP", "RBP", "CBP", "EQUI", "GEQI", "GRTI", "LLA", "LDCI", "LEQI", "LESI", "LDL", "NEQI", "STL", "CXP", "CLP", "CGP", "LPA", "STE", "???", "EFJ", "NFJ", "BPT", "XIT", "NOP" }; static int[] mnemonicSize = // // 128 - 155 // 156 - 183 // 184 - 211 // 212 - 239 // 240 - 255 { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 1, 2, 2, 2, 2, 2, 2, 0, 3, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 3, 0, 2, 2, 3, 2, 3, 2, 1, 1, 2, 2, 1, 1, 3, 2, 2, 1, 1, 1, 2, 3, 1, 1, 2, 1, 2, 3, 2, 2, 0, 3, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }; static String[] descriptions = { "Absolute value of integer - push ABS(ToS)", "Absolute value of real - push abs((real)ToS)", "Add integers (tos + tos-1)", "Add reals - push ToS + ToS-1", "Logical AND", "Set difference - push difference of sets ToS-1 and ToS", "Divide integers - push ToS-1 / ToS", "Divide reals - push ToS-1 / ToS", "Check subrange bounds - assert ToS-1 <= ToS-2 <= ToS, pop ToS, pop ToS-1", "Float next-to-ToS - push integer ToS-1 after converting to a real", "Float ToS - push integer ToS after converting to a float", "Set Membership - if int ToS-1 is in set ToS, push true, else push false", "Set Intersection - push TOS AND TOS-1", "Logical OR", "Modulo integers - push ToS-1 % ToS", "Multiply TOS by TOS-1", "Multiply reals - push ToS-1 * ToS", "Negate Integer - push two's complement of ToS", "Negate real - push -((real)ToS)", "Logical Not - push one's complement of ToS", "Build a subrange set", "Subtract Integers push ToS-1 - ToS", "Subtract reals - push ToS-1 - ToS", "Build a singleton set", "Square integer - push ToS ^ 2", "Square real - push ToS ^ 2", "Store indirect word - store ToS into word pointed to by ToS-1", "Index string array - push &(*ToS-1 + ToS)", "Set union - push union of sets ToS OR ToS-1", "Load extended word - push word at segment :1+:2", "Call Standard Procedure #:1 - ", "Load Constant NIL", "Adjust set", "Jump if ToS false", "Increment field ptr - push ToS+:1", "Static index and load word", "Compute word pointer from ToS-1 + ToS * :1 words", "Load Global - push (BASE+:1)", "Load constant string address", "Load extended address - push address of word at segment :1+:2", "Move words - transfer :1 words from *ToS to *ToS-1", "Load Global Word - push BASE+:1", "String Assign", "Store TOS into BASE+:1", "Case Jump - :1::2, Error: :3", "Return from non-base procedure (pass :1 words)", "Call intermediate procedure #:1", "ToS-1 == ToS", "ToS-1 >= ToS", "ToS-1 > ToS", "Load Intermediate Address - push :1th activation record +:2 bytes", "Load multi-word constant - :1 words", "ToS-1 <= ToS", "ToS-1 < ToS", "Load Intermediate Word - push :1th activation record +:2 bytes", "ToS-1 <> ToS", "Store intermediate word - store TOS into :2, traverse :1", "Unconditional jump", "Load Packed Field - push *ToS", "Store into packed field", "Load multiple words - push block of unsigned bytes at *ToS", "Store multiple words - store block of UB at ToS to *ToS-1", "Load Byte - index the byte pointer ToS-1 by integer index ToS and push that byte", "Store Byte - index the byte pointer ToS-2 by integer index ToS-1 and move ToS to that location", "Index packed array - do complicated stuff with :1 and :2", "Return from base procedure (pass :1 words)", "Call Base Procedure :1 at lex level -1 or 0", "Compare Integer : ToS-1 = ToS", "Compare Integer : TOS-1 >= TOS", "Compare Integer : TOS-1 > ToS", "Load Local Address - push MP+:1", "Load Word - push #:1", "Compare Integer : TOS-1 <= TOS", "Compare Integer : TOS-1 < ToS", "Load Local Word - push MP+:1", "Compare Integer : TOS-1 <> TOS", "Store Local Word - store ToS into MP+:1", "Call external procedure #:2 in segment #:1", "Call local procedure #:1", "Call global procedure #:1", "Load a packed array - use :1 and :2", "Store extended word - store ToS into word at segment :1+:2", "210 ", "Equal false jump - jump :1 if ToS-1 <> ToS", "Not equal false jump - jump :1 if ToS-1 == ToS", "Breakpoint - not used (does NOP)", "Exit OS - cold boot", "No-op" }; static String[] CSP = { "000", "NEW", "MVL", "MVR", "EXIT", "", "", "IDS", "TRS", "TIM", "FLC", "SCN", "", "", "", "", "", "", "", "", "", "021", "TNC", "RND", "", "", "", "", "", "", "", "MRK", "RLS", "33", "34", "POT", "36", "37", "38", "39", "40" }; static String[] SegmentKind = { "Linked", "HostSeg", "SegProc", "UnitSeg", "SeprtSeg", "UnlinkedIntrins", "LinkedIntrins", "DataSeg" }; }