OS/2 codes: NASM and 32-bit FLAT sections/segments
NASM is a widely used assembler, and the only modern assembler for OS/2. Almost all the open-source projects using assembly codes are using NASM. Because of this, porting them to OS/2 is much easier. BTW, NASM manual says that FLAT property is necessary to declare OS/2 32-bit sections/segments for 32-bit FLAT memory model. Unfortunately, however, NASM manual seems to be wrong because FLAT is not enough nor necessary for OS/2 32-bit FLAT memory model. Here is the correct way to declare 32-bit FLAT section/segment on OS/2. In general, OS/2 32-bit section/segment is declared like this: section TEXT32 public align=16 use32 class=CODE This declares 32-bit( use32 ) CODE segment( class=CODE ) whose name is TEXT32 with 16-bytes aligned( align=16 ). And this segment will be concatenated with segments with the same segment name( public ) at linke time. For details, see NASM docs( https://www.nasm.us/xdoc/2.15.05/html/nasmdoc8.html#section-8.4.1 ). Here, 'FLAT' property is not needed. R...