// disstore.h // storage for ROM image and attributes #ifndef _DISSTORE_H_ #define _DISSTORE_H_ #include "disx.h" // data types for _type // note that embedded lengths are likely to be deprecated // because ATTR_CONT flags can represent the line length enum MemType { mData = 0, // raw data // mCode = 1, // deprecated in favor of multiple CPU types mByte = 2, mWord = 3, mLong = 4, mAscii = 5, mRWord = 6, // reverse-order word mRLong = 7, // reverse-order longword (not yet implemented) mHex = 8, // HEX pseudo-op mBin = 9, // binary bytes mBinX = 10, // big-endian X binary bytes mBinO = 11, // little-endian O binary bytes mEbcdic = 15, // EBCDIC text mOfs = 16, // word offset position-independent table entry mDecW = 17, // decimal word mDecL = 18, // decimal long mWord1 = 19, // word address minus one (for 6502 jump tables) mCode = 65, // start of CPU types (alpha will look nice in the .ctl file) }; enum LfRef { LFFLAG = 0x01, // this instruction does not continue to next byte REFFLAG = 0x02, // this instruction has an address reference CODEREF = 0x04, // the reference is also a code reference RIPSTOP = 0x08, // this instruction is probably bogus INDMASK = 0x70, // indirect reference flags INDNONE = 0x00, // not an indirect reference INDUNK = 0x10, // unknown indirect reference INDWBE = 0x40, // 16-bit big-endian reference INDWLE = 0x42, // (not implemented yet) INDLBE = 0x60, // (not implemented yet) INDLLE = 0x62, // (not implemented yet) SKPMASK = 0x0700, // 0-6 bytes of skip + 1 SKPSHFT = 8, }; // number of bytes to skip after this instruction #define SKPBYTES(n) ((n+1)<