+ D_word(aNexten);
+
+ // Deposit bd (if not suppressed)
+ if ((aNexten & 0x0030) == EXT_BDSIZE0)
+ {
+ // Don't deposit anything (suppressed)
+ }
+ else if ((aNexten & 0x0030) == EXT_BDSIZEW)
+ {
+ // Deposit word bd
+ if (wbd)
+ {
+ // Just deposit it
+ if (tdb)
+ MarkRelocatable(cursect, sloc, tdbbd, MWORD, NULL);
+
+ if (vbd + 0x8000 >= 0x10000)
+ return error(range_error);
+
+ D_word(vbd);
+ }
+ else
+ {
+ // Arrange for fixup later on
+ AddFixup(FU_WORD | FU_SEXT | FU_PCRELX, sloc, aNbexpr);
+ D_word(0);
+ }
+ }
+ else
+ {
+ // Deposit long bd
+ if (wbd)
+ {
+ // Just deposit it
+ if (tdbbd)
+ MarkRelocatable(cursect, sloc, tdbbd, MLONG, NULL);
+
+ D_long(vbd);
+ }
+ else
+ {
+ // Arrange for fixup later on
+ AddFixup(FU_LONG, sloc, aNbexpr);
+ D_long(0);
+ }
+ }
+
+ // Deposit od (if not suppressed)
+ if ((aNexten & 7) == EXT_IISPRE0 || (aNexten & 7) == EXT_IISPREN
+ || (aNexten & 7) == EXT_IISNOIN || (aNexten & 7) == EXT_IISPOSN)
+ {
+ // Don't deposit anything (suppressed)
+ }
+ else if ((aNexten & 7) == EXT_IISPREW
+ || (aNexten & 7) == EXT_IISPOSW || (aNexten & 7) == EXT_IISNOIW)
+ {
+ // Deposit word od
+ if (w)
+ {
+ // Just deposit it
+ if (tdb)
+ MarkRelocatable(cursect, sloc, tdb, MWORD, NULL);
+
+ if (v + 0x8000 >= 0x10000)
+ return error(range_error);
+
+ D_word(v);
+ }
+ else
+ {
+ // Arrange for fixup later on
+ AddFixup(FU_WORD | FU_SEXT, sloc, aNexpr);
+ D_word(0);
+ }
+ }
+ else
+ {
+ // Deposit long od
+ if (w)
+ {
+ // Just deposit it
+ if (tdb)
+ MarkRelocatable(cursect, sloc, tdb, MLONG, NULL);
+
+ D_long(v);
+ }
+ else
+ {
+ // Arrange for fixup later on
+ AddFixup(FU_LONG | FU_SEXT, sloc, aNexpr);
+ D_long(0);
+ }
+ }
+
+ break;
+ //return error("unsupported 68020 addressing mode");
+