Questions tagged [16-bit]
The 16-bit tag has no usage guidance.
9
questions
8
votes
2
answers
4k
views
What does an ADC (add with carry) instruction following ADD do?
I have found this line in an old 16-bit DOS application (likely to have been generated by Borland Turbo C compiler) and I want to understand the purpose of it:
mov dx, [bp+var_192]
mov ax, [bp+...
23
votes
6
answers
4k
views
How can I reverse-engineer the game Wizardry (1981) for PC, based on UCSD Pascal?
I am looking at the files included with the 1981 game Wizardry. The particular version I have is from a 1998 re-release, but I do not know if the binary is still the original 1981 release.
My ...
4
votes
0
answers
399
views
How did Z8000 implement mul/div in few transistors with no microcode?
The Z8000 was Zilog's entry in the 16-bit microprocessor market; it was unsuccessful in large part, as I understand it, because it took too long to debug. According to https://thechipletter.substack....
31
votes
4
answers
6k
views
Most modern C compilers targeting DOS 8086, running on DOS 8086 (16-bit)
I'm looking for the most recent versions of modern C compilers which were/are targeting DOS 8086, also running on DOS 8086 (16-bit). I'm mostly interested in production-ready C compilers, rather than ...
11
votes
3
answers
2k
views
Are there architectures with alignment greater than the size of machine word in the pre-32-bit era?
I'm writing a hobbyist cryptography project, and I want to ensure the data structures I define don't have padding bytes. The only assumption I've made about the environment, is that bytes are exactly ...
13
votes
2
answers
925
views
Was `wchar_t` ever widely adopted by the Unix culture in actual practice?
My very rough understanding of character encoding history as it relates to the Unix family of platforms/languages is that:
They started using single-byte (7/8/9-ish bit) character sets like ASCII/...
2
votes
1
answer
413
views
Microsoft C 6, far pointer, cast to int, warning C4047
Trying to access one byte in memory using segment/offset, like this
union REGS in, out;
struct SEGS segs;
int v;
char _far* p;
...
int86x(...,&in,&out,&segs);
p = (segs.es << 16) + ...
-3
votes
2
answers
509
views
How can 8bits = 1byte but also = 255 bytes at the same time? [closed]
I don't understand why 8bits is defined as being equal to 1byte or 1octet but at the same time the maximum capacity of an 8bit bus or 8bit databus would be 255 bytes because
128 64 32 16 8 4 2 1
1 1 ...
6
votes
3
answers
2k
views
Allocate 64 KiB in Watcom C 16-bit DOS
I'm trying to allocate a 64 KiB buffer in Watcom C 16-bit DOS. I'm using the "compact" memory model which defines the code segment to be limited to 64 KiB and addressed by near pointers (...