(* Release 3.00 *) (* Copyright (C) 1989..1991 Jensen & Partners International *) include "corelib.inc" module initmwin section segment ENTERCODE(CODE,28H) public __ecode_dummy : segment INITCODE(CODE,28H) public __icode_dummy : segment _TEXT(CODE,28H) segment _INIT(INIT_CODE,28H) public __initcode_dummy : segment _FAR_DATA(FAR_DATA,28H) public __fd_dummy : segment STACK(STACK,74H) public __s_dummy : segment BEGDATA(DATA,28H) segment _DATA(DATA,28H) public __ud_dummy : segment BSS_START(BSS,28H) segment _BSS(BSS,28H) segment BSS_END(BSS,28H) section segment _TEXT(CODE,28H) segment _DATA(DATA,28H) select _DATA public __ireg: org 10 select _TEXT extrn INITAPP extrn WAITEVENT extrn WINMAIN extrn _exit public ENTRYPOINT: xor ax,ax; push ax; call far WAITEVENT; push [__ireg][0] call far INITAPP or ax, ax jz BadApp push [__ireg][0] push [__ireg][2] push [__ireg][4] push [__ireg][6] push [__ireg][8] call far WINMAIN public exitApp: push ax (*%F NearCall *) call far _exit (*%E *) (*%T NearCall *) call _exit (*%E *) BadApp: mov ax, 0FFH jmp exitApp section segment ENTERCODE(CODE,28H) segment CODE(none,28H); segment INITCODE(CODE,28H) segment _TEXT(CODE,28H) segment _FAR_DATA(FAR_DATA,28H) segment EMU_STATE(DATA,28H) EMU_STATE__: org 0; segment STACK(STACK,74H) STACK__: org 0; segment BEGDATA(DATA,28H) BEGDATA__: org 0; segment _INIT(INIT_CODE,28H) _INIT__: org 0; segment CONST(CONST,28H) CONST__: org 0; segment _CONST(DATA,28H) _CONST__: org 0; segment _DATA(DATA,28H) _DATA__: org 0; segment BSS_START(BSS,28H) BSS_START__: org 0; segment _BSS(BSS,28H) _BSS__: org 0; segment BSS_END(BSS,28H) BSS_END__: org 0; group DGROUP(BEGDATA,EMU_STATE,CONST,_CONST,_DATA,BSS_START,_BSS,BSS_END,STACK) select BEGDATA beg_data_dummy : dw 0, 0, 0, 0, 0, 0, 0, 0, 0 select _DATA InitRec: dw 0, 0, 0, _INIT select BSS_START public __bss_start: select BSS_END public __bss_end: select _TEXT extrn _main extrn __startup extrn _x_main extrn _x_initx extrn __initx extrn _x_bss_end extrn _x_bss_start extrn __ireg extrn INITTASK select ENTERCODE public __wstart: sub bp, bp push bp (* terminate bp chain ? *) call far INITTASK or ax, ax jz BadApp mov [__ireg][0],di mov [__ireg][2],si mov [__ireg][4],es mov [__ireg][6],bx mov [__ireg][8],dx (*%T _fcall*) mov bx,cs:[mainaddress] mov word [_x_main][0], bx mov bx,cs:[mainaddress][2] mov word [_x_main][2], bx (*%E*) (*%F _fcall*) mov word [_x_main][0], _main (*%E*) mov word [_x_bss_end], __bss_end mov word [_x_bss_start], __bss_start mov bx, InitRec mov ax, ds extrn __InitLink call far __InitLink mov ax,cs:[mainaddress][4] mov word [_x_initx][0], ax mov ax,cs:[mainaddress][6] mov word [_x_initx][2], ax jmp far __startup BadApp: mov ax, 0FFH extrn exitApp jmp far exitApp dw beg_data_dummy dw EMU_STATE__ dw CONST__ dw _CONST__ dw _DATA__ dw BSS_START__ dw _BSS__ dw BSS_END__ (* establishes order ! *) dw STACK__ dw 0 mainaddress: dd _main extrn __initm dd __initm end*