Reviews / articles about OS/2 |
Operating systems: ArcaOS, eComStation, IBM OS/2 Warp |
|
|
DATE: 2001-10-02 16:44:08 AUTHOR: Андрей А. Породько
....... . ...........: ...... .. ......... ........: ....... ........ ................ ........! (Michal Necasek, ........ 2001) . ....... 2001 .... ........ ..... ....: . ........ . ........... . ...... ........ comp.os.os2.programmer.misc "....... .............. ... OS/2", ....... ... ............. OS/2, ..... ........ ...... .... .... ........ .......... ......... ......... ............... ......... ......... ........ ....... .. ... ....:
... ...., ..... ....... ....... ..... .......... . ............... ... ............., ....... ......... ...., ....... . ....... ....... . .... .........., ....... ..... .... ......... ... .....:
... ........... ............... ...... . ..... ............ .... ......., . ........... .... ....... ....: ... ........... ........ ... ...... ........... ........... ... ....... .. ...... ............ ........., . ...... ........ ...... ... ............ .... ........ ... . ........ ... .... . ......... .......... ........... ........... .......... . ...... ...., . .... .......... . ..... ... ...... ... ....... . ..... ............ ..... ... ... ........ . ........ . .... .... ......... ..... .... ... ........ ..... ......... ........... ....... .. .... . ... ....... ..........-............ ............ . .... .......... .....:
........, ........ .......... ........... ........ ...... ... .... ... ......... .. C . .......... ..... ............. .......... ........, . ....... .. .............. ......... ... . ........ ......... .... ....., ... Watcom C ............. ..... ....... ........ .......... ............. .......... ......., ..... ..... .. ....... ... . ........... .., ....... .., ........ ............. ......... ....... .......... . ......... Custom. ........ .... .. ......... ... ...... ......... LX-...... .......... 196 .... . ......... ........ OS/2 ......... ......... ...-.... ....... .. ....... 196 ..... .. ... .. ..... .... ........... ...... ........ . ......... ........ 17-.. ....... ......... . ......... .......... .......... ............ ........ . .. .... ..... ......... ... ........ . ....... . ........ ........ . ...... Martin Lafaix'-. .. ........ ... .........-.......... (........... .......... Fandango on Core). ......, ..... .... ... . ......... ....... . ... ........, ....... ........ . ............ ........ ........ ........ ......, ....... . .........., ... ... ........... ......, .. . .............. ...... .... ............ . ...... ... ......... . ....... Watcom 11.0c . .. ...... ........ ............ . ...... .........../............, ........ .. ........... ........ ............ C-..... . .... ......... ... ..... ........... . ....... ....... .. ...... ......... . ........... ... ........ ..... ............. .. ............. .........., C, ........... x86, ....... ............ ...... OS/2 . ..... ........... ... ........... .. ... ........ .... .... ....... ...... ........ ..... ... ... .. ............... .... ... .. ............, .. ...., ............. ..... ... ... ...! . .... .....-.. ....... . ... ......... ......... High Octane Stock....... . .... ........... ........., . ....... ........... ............. .........., ... ... ..... ..... ..... "......" . .. ............ ....... ............ ....... (......) ... . C ....... .... ......., ... . ............ ...... ... .... ....., ..... ... . C ...... ...... ...... ...... .. ............. ........ . ....... ............ ......, ... .. ........ ......... .. ....... . .............. OS/2 ...? ...... ......... ..... - ..... DosWrite. .. DosWrite ..... ......... ......... ............ .. ....... ....... .......... (.... ....... DWORD .... . .....) . ............. . ......... .......... DOSCALLS.DLL (.. ..... .... . .... OS/2), ....... ..... .......... ....... ..., ....... ...... .... ........ . ........... ..... ....... ........ ............. . .... ...... ..... ............... ......, ..... ............, ....... OS/2 ..., ... DosPutMessage. .. ..... ...... ... ......... ., ... ... ....., ............. . MSG.DLL (..... ........ ... ..........). ......... ........ ..... ......... (......... asm1.asm) . .............. DosPutMessage ........ ........ ...: .386p EXTRN DosPutMessage:BYTE _DATA SEGMENT BYTE PUBLIC USE32 'STACK' _msg: DB "I'm really small!",0aH _DATA ENDS _TEXT SEGMENT BYTE PUBLIC USE32 'CODE' ASSUME CS:_TEXT, DS:_TEXT, SS:_TEXT startup: push offset flat:_msg push 12H push 1 call near ptr flat:DosPutMessage add esp,0CH ret _TEXT ENDS END startup ... .. ......, ... ......... ..... ........ . .. .......... ....... ....... ............ "......", ......., ........ ............. ...... DosExit ........ RETs. ... ........ . .... .. ......., ... . ..... DosExit . ........... ..-.......... ..... .............. WASM-.. . ........ WLINK-.. . ..... ...... .. ........ ......... ........ . 545 ..... ... ...... ..... ......, ....... . ...........: wasm asm1.asm wlink file asm1 lib os2386 option st=32k ............, .. ...... ......... ...... ........ st=32k ....... ............. ...... ..... ......... . 32 .......... ... ..... ....., ......... ..... ...... 18 .... ..... (......... ....... ... ...... .......) . ......... ..... ..... ....... . ..... ...... "........" ......... 545 .... .. ... .. . ....., ...... ..... ......... ...... . ....... LxLite: lxlite /T /ZS:512 asm1.exe ..... ...... ........ ........ ..... MS-DOS (..... /T . /ZS LxLite), ........ . 128 ...., ... ........... ...... .. ...... ......... (. ..... ....... ..... ....). OS/2 ...... ......... ........ . ......... ... ..... ...... MS-DOS .. ..... ........ ......... ... ........., .. ..... . .. ........... .. ........ ......... LxLite ........... ......... .............. ........... . ......... - ......... . 325 ..... ... ........... ..... ... 545, .. ... ... ...... .. ............ ....... ........ ..... .....-.. ...... . ........ ......, ....... ......... .. .... ... .......... ............ ....... .......... ......... . .......... ............ ...... ..... .... .. ... ........ ......... ...... .......... ....., ..... .. ......... ..... ........ .......... ............ ......... LX ....... .. .. ...... . ....-.. ...... .......... .......... ..... ... .... .... .......... ....... ..... .......... .... . ..... ... ... ..... ....... ........ ......... ... ............. OS/2 ..., ....... Warp 4 (....... .. . ........) ............. ......... ..... ......... ...., ....... ........ ....... ....... Warp 4 ............ . ............ ........... ..... C, .............. ..... ......... .............. ....... .......... .. VisualAge C++ 3-. ....... .. ..... .... ... ......... DLL-......... - LIBCS.DLL (... ..... .. ............ .....), LIBCM.DLL (... ..... ............ .....) . LIBCN.DLL (..........). . ... ....... vprintf() . puts() ....... ....... ...... ...... .......... . ...... puts() ... ... ... ......... ... .............. ..., ....... ...... ........ ...... . ......... (puts() ......... ....... ...... .............). ... .. ..... ....... (...... . DLL .. ........ ..... ....) ... vprintf() ....... .. .... .... ...... . ....... ....... ............ ...... ., ..... ....... ......... ..... ..... ... ... .. .. .. ...., ... asm2.asm: .386p EXTRN puts:BYTE _DATA SEGMENT BYTE PUBLIC USE32 'STACK' _msg: DB "I'm really small!" _DATA ENDS _TEXT SEGMENT BYTE PUBLIC USE32 'CODE' ASSUME CS:_TEXT, DS:_TEXT, SS:_TEXT startup: mov eax,offset flat:_msg jmp near puts _TEXT ENDS END startup ........ ... puts() (. vprintf() ....) ....... . ........ ......... ...... ............... NULL, . ....... .. DosPutMessage. .. ... ... .. ..... (.... ......?) ... ....... ...... .............. ................ ......, .. .... .... ........ ...... ...... .... ....... ....... ......... - ... .., ... puts() .......... .......... _Optlink ... ...... ......., ... ....... ......... .......... ..... ........, . .. ..... ..... ... ......... .......... ...... .......... ..... ............ ...... ....... ...... puts(), ... ...... .. .... ........ ..... puts() ....... ......., .......... ........ ............... . ... ...... ....... ....... .... ........., ... ......... ... .. ............. ....... RET . ..... . ... ... ....., ..... ..... ......... ....... .. puts() .................. ...... . ..... ............ ......, ... ......... ....... ./... LxLite ... .......... 4 ...... .... ......... ...... ..... ...... . 318 ..... ........ ............ .. ....... ........., ......... ..... .. .... .......... . ......., ... .. ....., ...-.. ......, .... ...... ........... ....... ...... ....... ......... .. ............. ............ ..... ....... ........ ........-..........., ... ......... ......... .. 45 .... ....... ..... ... ...... .... .........., ...... ... ......... . ... .......... ..... ....... ............. . ..... ...... ...., ....... ..... ...... .. .......... ... .. ..... .... ......, .. .......... .. ........, ... ........ . ........ asm3.asm: .386p EXTRN puts:BYTE _TEXT SEGMENT BYTE PUBLIC USE32 'STACK' ASSUME CS:_TEXT, DS:_TEXT, SS:_TEXT _msg: DB "I'm really small!",0 startup: mov eax,offset flat:_msg jmp near puts _TEXT ENDS END startup .., . ......... ...... .... ....... ! .... ....... .. ..... ..... ............, .. ... ........... . ........ . ... ........ ... ..... ....., ......... ..... ...... ...... 283 ..... .. ........ ........ ........-...........! . ..... .. ... ......... ? ... ... ..... .... ........... .....: ............. ........... ......! ... ............ ..... ........... ...... ... ...... . ... ........ ........... ......, .. ...... ............ ...... ... (.exe). ...... .... .......... ..... - ... ...... .......... .......... ....... MOV ........ .... .... . ........... ...... ..... ... JMP ........ ...... .... .... (...... ... ..... ........ ...... . ..... .......... .. ..... ........ .........). ... .........., ... .. ..... ... ....... MOV ........ . EAX. ... ..... 10000H (64K) ...... ... . ........ ...... ...... ........... ...... ...... ........... .. ..... ....... Knut St. Osmundsen ..... ..... .......... ..... ........ ........ 10000H . EAX ...... . 3 ..... ..... ... ......... ...... ......... ...... ......... (asm4.asm): .386p EXTRN puts:BYTE _TEXT SEGMENT BYTE PUBLIC USE32 'STACK' ASSUME CS:_TEXT, DS:_TEXT, SS:_TEXT _msg: DB "I'm really small!",0 startup: dec ax inc eax jmp near puts _TEXT ENDS END startup . ... ......., ....... . ........... ... ......... ............ ......: wasm asm4.asm wlink f asm4 n .exe imp puts LIBCS.362 op st=32k ren .exe asm4.exe lxlite /T /ZS:512 asm4.exe ......... .................. ...... WLINK, imp puts LIBCS.362 .......... ....... ... ...... (...) ...... .... ............. .. .......... LIBCS ... ....... 362. .. ..... .. ............ . LIBCM, .. ... ... .... ....-......... ..... .... ...., .. . . LIBCS ... ........ .......... ... ........ ...... ........, .. ... ..... ..... . ....... EXEHDR. ....... ........ ............ .......... ......., .. ... ......... ....... . ..... ....... ...... .. ........... .. ...... ... ...... ... ... ...... (......... ? ..... .... ;-) ... ....... .. ... ... .. .......... Warp 4 Toolk ... ......... ..... ......... ...... ....... ........ ..... ......... n .exe (...). ... ......... WLINK ............ ...... ... ... ..... ............ ....... . ........ ...... ...... 274 .....! ... ... . ........... ........... Watcom (.. ....... .... . ... .....), .........-.......... .. Knut-. .. .... .... ...... .......... ....... ..... ............. ........ ........... . ....... WLINK . ILINK, . .. .......... ....... ......... . ................. .... ..., ...... . 274 .... ...... .. .....! ......... ..... ........ ... .... ........ ... ......... ..... ... . .... ....... ... ......... ............ ...... .. ..... ........ .. ... .......... ............., ...... ... ......... .... .......... ......... ........... ........... x86 . ..... .......... OS/2. ......... Stock. .......... ....... . ....... ... ...... ...... .......... ................ ........ .......... ...... .. .......... ........ ....... .......... ... ............. ........... ... ....... .......... ........ ...... ......... ..........., ..... ... ......... ............. ..... . ....... . ..... ....... . .......... .... . ............. .... .......... ! mini.c: void puts(char *s); #pragma data_seg("MYDATA", "STACK") #pragma code_seg("MYDATA", "STACK") char msg[] = "I'm really small!"; void _System startup(void) . puts(msg); . ........... ...... .......... .......... .........: wcc386 -s -g=DGROUP mini.c wlink sys os2v2 name .exe f mini imp puts_ LIBCM.362 op start=startup,st=32k,nod ren .exe minic.exe lxLite.exe /T /ZS:512 minic.exe ........ ........... ......, minic.exe, ..... ...... ..... 276 ....! ... ... ........? ....... ........ .......... ...... .... ....... ..... C . ............ .......... ......... ..... C .......... ... .............: mov eax,offset flat:_msg jmp near puts .., .......... ......... .... . ............. ... ........., ......... ... ........! ..-.. .... ... .......... .. ..... .......... ... .............. ... ..... ..........., .. .. ..... ........ ........ ...... ......... ........... .. .... ........., ...... C .......... ... ...... ......... ... ............ ......... ...... ..... ........ .., ... .......... . ...... ....... .......... ... .......... ... .......... ..... .... ............ ... ..... ........... ...... ............ ...... #pragma data_seg . code_seg ...... ........... ...... (... .............. . ........... ............ . ...... .... . ....) . .......... ....... - ... ...... .... ......... ...... . .... . ..... ...... ...... . ... ....... .. ........... . ..... ......... .. ...... ... ..... ..... STACK? ... ...... ... WLINK ....... ............ ........ ....... ... .......... ... ...... ............ ....... ...... ..... ............ .... -s (......... ........ .....) ...... ......... .... .. ....... ........ ..... ... ........ ...... .... . ... ....... ...., ....... .. ..... ........... .......... C (runtime). ... ... ......... .... -g ......... ....... ... ..... ........ ....... ..... ... ...... .... DGROUP, . ......... ...... ...... .. ......... ........ ...... . ..... . ....... Watcom ...... ..... . .... ......... ..... ....... ...... . ...., ... .. ............ ... ............ ......, .. ........... ...... ................ ..... NOD - ... .......... .. NODefaultlibs (... .......... .. .........) . ......... ..... .......... .. ......... (... ..... .......... .......... ........... ...... . ........ ......). ...... .. ....... ..... ....... ...... -zl ............ ...... .... . ...... ........... . ..... start. . ............ ........ .. ............ ......... END ... ........ ..... ...... .......... . C ... ..... ..........., ...... IBM C ........... ...... #pragma entry. Watcom C .. ..... ..... ......, .. ......... ....... ..... ...... ...... start=symbol ....... WLINK. ........ ...... ......... ...... .. C ........ ........ ..... ....... ... ............, .. ... ... .. ....... ....... ... .......... ......... ............ ............ ........... ....... . ............, ......... ..... .......... ........... ..... ............. . ......... ......... .......... . ...... ...... .., ... ... ........... ...... .. ....... . ... ... .. ......, .. ......... ...... .. ....... ..... (;-)))), ..... ....). ........... ......., ... ... ......... ........... .. ........... ......... ......... ... ... ... ....... .. ........... . ...... ...... .. ....... ......... ...... ....... .. ....... ......... . ..... .........., ... ... ...... .. ...... ... ....... ......, .... .. ........... .......... ......., .. .. ....... ....... ........... ....... .. . ........... .. ..... (..-..-.., . .... ... ... ...... .....)! .., ..... ......, .... .. ...... ... ...... ....... ..... ......... ... .......... ........ ........... ........, ..... ... ..... .. ...... MichalN@prodigy.net. ..... ......: Michal Necasek ..........: ...... ........
Comments:
|
|
||||||||||||||||||||||||||||||
(C) OS2.GURU 2001-2021