mirror of
https://github.com/dmolony/DiskBrowser.git
synced 2024-11-05 10:04:55 +00:00
92 lines
5.7 KiB
Java
Executable File
92 lines
5.7 KiB
Java
Executable File
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" };
|
|
} |