mainnew.esm

来自「开放源码的编译器open watcom 1.6.0版的源代码」· ESM 代码 · 共 2,406 行 · 第 1/5 页

ESM
2,406
字号
.387
		PUBLIC	do_init_stuff_
		PUBLIC	main_
		PUBLIC	trademark_
		PUBLIC	AsmQueryExternal_
		PUBLIC	AsmQueryType_
		PUBLIC	_Options
		PUBLIC	_AsmFiles
		PUBLIC	_pobjState
		EXTRN	__STK:BYTE
		EXTRN	__IsTable:BYTE
		EXTRN	tolower_:BYTE
		EXTRN	strlen_:BYTE
		EXTRN	stackavail_:BYTE
		EXTRN	strcpy_:BYTE
		EXTRN	strcat_:BYTE
		EXTRN	getenv_:BYTE
		EXTRN	AddStringToIncludePath_:BYTE
		EXTRN	MsgInit_:BYTE
		EXTRN	exit_:BYTE
		EXTRN	AsmInit_:BYTE
		EXTRN	PushLineQueue_:BYTE
		EXTRN	WriteObjModule_:BYTE
		EXTRN	PrintStats_:BYTE
		EXTRN	MsgFini_:BYTE
		EXTRN	PrintfUsage_:BYTE
		EXTRN	printf_:BYTE
		EXTRN	AsmFree_:BYTE
		EXTRN	MemInit_:BYTE
		EXTRN	ObjRecInit_:BYTE
		EXTRN	GenMSOmfInit_:BYTE
		EXTRN	GenMSOmfFini_:BYTE
		EXTRN	AsmShutDown_:BYTE
		EXTRN	MemFini_:BYTE
		EXTRN	fopen_:BYTE
		EXTRN	Fatal_:BYTE
		EXTRN	ObjWriteOpen_:BYTE
		EXTRN	DelErrFile_:BYTE
		EXTRN	MsgGet_:BYTE
		EXTRN	_splitpath2_:BYTE
		EXTRN	_makepath_:BYTE
		EXTRN	AsmAlloc_:BYTE
		EXTRN	strchr_:BYTE
		EXTRN	AsmError_:BYTE
		EXTRN	StoreConstant_:BYTE
		EXTRN	MsgPrintf1_:BYTE
		EXTRN	_Code:BYTE
		EXTRN	cpu_directive_:BYTE
		EXTRN	__osmode:BYTE
		EXTRN	strupr_:BYTE
		EXTRN	stricmp_:BYTE
		EXTRN	AsmWarn_:BYTE
		EXTRN	InputQueueLine_:BYTE
		EXTRN	atoi_:BYTE
		EXTRN	DoDebugMsg_:BYTE
		EXTRN	InputQueueFile_:BYTE
		EXTRN	_cstart_:BYTE
		EXTRN	_big_code_:BYTE
		EXTRN	__argc:BYTE
DGROUP		GROUP	CONST,CONST2,_DATA,_BSS
main_TEXT		SEGMENT	BYTE PUBLIC USE16 'CODE'
		ASSUME CS:main_TEXT, DS:DGROUP, SS:DGROUP
L$1:
    DB	57H, 41H, 54H, 43H, 4fH, 4dH, 20H, 69H
    DB	73H, 20H, 61H, 20H, 74H, 72H, 61H, 64H
    DB	65H, 6dH, 61H, 72H, 6bH, 20H, 6fH, 66H
    DB	20H, 57H, 41H, 54H, 43H, 4fH, 4dH, 20H
    DB	49H, 6eH, 74H, 65H, 72H, 6eH, 61H, 74H
    DB	69H, 6fH, 6eH, 61H, 6cH, 20H, 43H, 6fH
    DB	72H, 70H, 2eH, 0
L$2:
    DB	43H, 6fH, 70H, 79H, 72H, 69H, 67H, 68H
    DB	74H, 20H, 62H, 79H, 20H, 57H, 41H, 54H
    DB	43H, 4fH, 4dH, 20H, 49H, 6eH, 74H, 65H
    DB	72H, 6eH, 61H, 74H, 69H, 6fH, 6eH, 61H
    DB	6cH, 20H, 43H, 6fH, 72H, 70H, 2eH, 20H
    DB	31H, 39H, 39H, 32H, 2cH, 20H, 31H, 39H
    DB	39H, 33H, 2eH, 20H, 41H, 6cH, 6cH, 20H
    DB	72H, 69H, 67H, 68H, 74H, 73H, 20H, 72H
    DB	65H, 73H, 65H, 72H, 76H, 65H, 64H, 2eH
    DB	0
L$3:
    DB	57H, 41H, 54H, 43H, 4fH, 4dH, 20H, 41H
    DB	73H, 73H, 65H, 6dH, 62H, 6cH, 65H, 72H
    DB	20H, 56H, 65H, 72H, 73H, 69H, 6fH, 6eH
    DB	20H, 30H, 2eH, 39H, 0
L$4:
    DB	64H, 65H, 62H, 75H, 67H, 67H, 69H, 6eH
    DB	67H, 20H, 6fH, 75H, 74H, 70H, 75H, 74H
    DB	20H, 6fH, 6eH, 20H, 0aH, 0
L$5:
    DB	5fH, 5fH, 57H, 49H, 4eH, 44H, 4fH, 57H
    DB	53H, 5fH, 33H, 38H, 36H, 5fH, 5fH, 0
L$6:
    DB	5fH, 5fH, 4eH, 45H, 54H, 57H, 41H, 52H
    DB	45H, 5fH, 33H, 38H, 36H, 5fH, 5fH, 0
L$7:
    DB	5fH, 5fH, 52H, 45H, 47H, 49H, 53H, 54H
    DB	45H, 52H, 5fH, 5fH, 0
L$8:
    DB	5fH, 5fH, 46H, 50H, 49H, 38H, 37H, 5fH
    DB	5fH, 0
L$9:
    DB	5fH, 5fH, 4dH, 53H, 44H, 4fH, 53H, 5fH
    DB	5fH, 0
L$10:
    DB	5fH, 5fH, 53H, 54H, 41H, 43H, 4bH, 5fH
    DB	5fH, 0
L$11:
    DB	50H, 45H, 4eH, 50H, 4fH, 49H, 4eH, 54H
    DB	0
L$12:
    DB	5fH, 5fH, 57H, 41H, 53H, 4dH, 5fH, 5fH
    DB	0
L$13:
    DB	5fH, 49H, 4eH, 43H, 4cH, 55H, 44H, 45H
    DB	0
L$14:
    DB	5fH, 5fH, 46H, 50H, 43H, 5fH, 5fH, 0
L$15:
    DB	5fH, 5fH, 46H, 50H, 49H, 5fH, 5fH, 0
L$16:
    DB	2eH, 4dH, 4fH, 44H, 45H, 4cH, 20H, 0
L$17:
    DB	43H, 4fH, 4dH, 50H, 41H, 43H, 54H, 0
L$18:
    DB	57H, 49H, 4eH, 44H, 4fH, 57H, 53H, 0
L$19:
    DB	4eH, 45H, 54H, 57H, 41H, 52H, 45H, 0
L$20:
    DB	49H, 4eH, 43H, 4cH, 55H, 44H, 45H, 0
L$21:
    DB	4dH, 45H, 44H, 49H, 55H, 4dH, 0
L$22:
    DB	66H, 70H, 69H, 38H, 37H, 0
L$23:
    DB	53H, 4dH, 41H, 4cH, 4cH, 0
L$24:
    DB	4cH, 41H, 52H, 47H, 45H, 0
L$25:
    DB	54H, 49H, 4eH, 59H, 0
L$26:
    DB	48H, 55H, 47H, 45H, 0
L$27:
    DB	46H, 4cH, 41H, 54H, 0
L$28:
    DB	57H, 41H, 53H, 4dH, 0
L$29:
    DB	66H, 70H, 63H, 0
L$30:
    DB	66H, 70H, 69H, 0
L$31:
    DB	51H, 4eH, 58H, 0
L$32:
    DB	4fH, 53H
L$33:
    DB	32H, 0
L$34:
    DB	44H, 4fH
L$35:
    DB	53H, 0
L$36:
    DB	65H, 72H, 72H, 0
L$37:
    DB	6fH, 62H, 6aH, 0
L$38:
    DB	61H, 73H, 6dH, 0
L$39:
    DB	25H, 73H, 0aH, 0
L$40:
    DB	2fH, 6dH, 0
L$41:
    DB	4eH, 54H, 0
L$42:
    DB	5fH, 5fH, 0
L$43:
    DB	37H, 0
L$44:
    DB	31H, 0
L$45:
    DB	72H, 0
L$46:
    DB	20H, 0
L$47:
    push        bp 
    mov         bp,sp 
    push        ax 
    mov         ax,18H 
    call        far ptr __STK 
    pop         ax 
    push        bx 
    push        cx 
    push        si 
    push        di 
    sub         sp,0cH 
    mov         word ptr -14H[bp],ax 
    mov         word ptr -12H[bp],dx 
    lds         bx,dword ptr -14H[bp] 
    mov         bl,byte ptr [bx] 
    inc         bl 
    xor         bh,bh 
    test        byte ptr ss:__IsTable[bx],20H 
    je          L$48 
    mov         word ptr -0cH[bp],0ffffH 
    jmp         near ptr L$66 
L$48:
    mov         bx,word ptr -14H[bp] 
    mov         word ptr -10H[bp],bx 
    mov         bx,word ptr -12H[bp] 
    mov         word ptr -0eH[bp],bx 
L$49:
    lds         bx,dword ptr -10H[bp] 
    cmp         byte ptr [bx],0 
    jne         L$51 
    jmp         near ptr L$65 
L$50:
    mov         dx,word ptr -10H[bp] 
    mov         ax,word ptr -0eH[bp] 
    inc         word ptr -10H[bp] 
    jmp         L$49 
L$51:
    lds         bx,dword ptr -10H[bp] 
    mov         al,byte ptr [bx] 
    xor         ah,ah 
    call        far ptr tolower_ 
    mov         byte ptr -0aH[bp],al 
    cmp         byte ptr -0aH[bp],5fH 
    je          L$52 
    cmp         byte ptr -0aH[bp],2eH 
    jne         L$53 
L$52:
    jmp         L$54 
L$53:
    cmp         byte ptr -0aH[bp],24H 
    jne         L$55 
L$54:
    jmp         L$56 
L$55:
    cmp         byte ptr -0aH[bp],40H 
    jne         L$57 
L$56:
    jmp         L$58 
L$57:
    cmp         byte ptr -0aH[bp],3fH 
    jne         L$59 
L$58:
    jmp         L$60 
L$59:
    mov         bl,byte ptr -0aH[bp] 
    inc         bl 
    xor         bh,bh 
    test        byte ptr ss:__IsTable[bx],20H 
    je          L$61 
L$60:
    jmp         L$62 
L$61:
    mov         bl,byte ptr -0aH[bp] 
    inc         bl 
    xor         bh,bh 
    test        byte ptr ss:__IsTable[bx],80H 
    je          L$63 
L$62:
    jmp         L$64 
L$63:
    mov         word ptr -0cH[bp],0ffffH 
    jmp         L$66 
L$64:
    jmp         L$50 
L$65:
    mov         word ptr -0cH[bp],1 
L$66:
    mov         ax,word ptr -0cH[bp] 
    lea         sp,-8[bp] 
    pop         di 
    pop         si 
    pop         cx 
    pop         bx 
    pop         bp 
    ret         
L$67:
    push        bp 
    mov         bp,sp 
    mov         ax,1aH 
    call        far ptr __STK 
    push        bx 
    push        cx 
    push        dx 
    push        si 
    push        di 
    sub         sp,0cH 
    mov         bx,word ptr ss:L$334 
    mov         dx,word ptr ss:L$335 
    mov         ax,bx 
    call        far ptr strlen_ 
    add         ax,0bH 
    and         al,0feH 
    mov         dx,ax 
    call        far ptr stackavail_ 
    cmp         dx,ax 
    jae         L$68 
    mov         bx,word ptr ss:L$334 
    mov         dx,word ptr ss:L$335 
    mov         ax,bx 
    call        far ptr strlen_ 
    add         ax,0bH 
    and         al,0feH 
    sub         sp,ax 
    mov         ax,sp 
    mov         dx,ss 
    mov         bx,dx 
    mov         word ptr -16H[bp],ax 
    mov         word ptr -14H[bp],bx 
    jmp         L$69 
L$68:
    mov         word ptr -16H[bp],0 
    mov         word ptr -14H[bp],0 
L$69:
    mov         ax,word ptr -16H[bp] 
    mov         word ptr -12H[bp],ax 
    mov         ax,word ptr -14H[bp] 
    mov         word ptr -10H[bp],ax 
    mov         si,word ptr ss:L$334 
    mov         cx,word ptr ss:L$335 
    mov         bx,word ptr -12H[bp] 
    mov         dx,word ptr -10H[bp] 
    mov         ax,bx 
    mov         bx,si 
    call        far ptr strcpy_ 
    mov         cx,cs 
    mov         ax,offset L$13 
    mov         si,ax 
    mov         bx,word ptr -12H[bp] 
    mov         dx,word ptr -10H[bp] 
    mov         ax,bx 
    mov         bx,si 
    call        far ptr strcat_ 
    mov         bx,word ptr -12H[bp] 
    mov         dx,word ptr -10H[bp] 
    mov         ax,bx 
    call        far ptr getenv_ 
    mov         bx,ax 
    mov         ax,dx 
    mov         word ptr -0eH[bp],bx 
    mov         word ptr -0cH[bp],ax 
    mov         dx,word ptr -0eH[bp] 
    mov         ax,word ptr -0cH[bp] 
    xor         cx,cx 
    xor         bx,bx 
    cmp         ax,bx 
    jne         L$70 
    cmp         dx,cx 
    je          L$71 
L$70:
    mov         bx,word ptr -0eH[bp] 
    mov         dx,word ptr -0cH[bp] 
    mov         ax,bx 
    call        far ptr AddStringToIncludePath_ 
L$71:
    lea         sp,-0aH[bp] 
    pop         di 
    pop         si 
    pop         dx 
    pop         cx 
    pop         bx 
    pop         bp 
    ret         
do_init_stuff_:
    inc         bp 
    push        bp 
    mov         bp,sp 
    push        ax 
    mov         ax,16H 
    call        far ptr __STK 
    pop         ax 
    push        dx 
    push        si 
    push        di 
    sub         sp,0aH 
    mov         word ptr -8[bp],ax 
    mov         word ptr -10H[bp],bx 
    mov         word ptr -0eH[bp],cx 
    lds         bx,dword ptr -10H[bp] 
    mov         bx,word ptr [bx] 
    lds         si,dword ptr -10H[bp] 
    mov         dx,word ptr 2[si] 
    mov         ax,bx 
    call        far ptr MsgInit_ 
    test        ax,ax 
    je          L$72 
    mov         ax,1 
    jmp         far ptr exit_ 
L$72:
    mov         bx,0ffffH 
    mov         dx,0ffffH 
    mov         ax,0ffffH 
    call        far ptr AsmInit_ 
    mov         dx,cs 
    mov         ax,offset L$12 
    mov         bx,ax 
    mov         ax,bx 
    call        near ptr L$137 
    xor         cx,cx 
    mov         dx,cs 
    mov         ax,offset L$28 
    mov         bx,ax 
    mov         ax,bx 
    mov         bx,cx 
    call        near ptr L$118 
    mov         dx,word ptr -10H[bp] 
    mov         cx,word ptr -0eH[bp] 
    mov         ax,word ptr -8[bp] 
    mov         bx,dx 
    call        near ptr L$317 
    call        near ptr L$196 
    call        near ptr L$67 
    mov         dx,cs 
    mov         ax,offset L$20 
    mov         bx,ax 
    mov         ax,bx 
    call        far ptr getenv_ 
    mov         bx,ax 
    mov         ax,dx 
    mov         word ptr -0cH[bp],bx 
    mov         word ptr -0aH[bp],ax 
    mov         cx,word ptr -0cH[bp] 
    mov         bx,word ptr -0aH[bp] 
    xor         dx,dx 
    xor         ax,ax 
    cmp         bx,ax 
    jne         L$73 
    cmp         cx,dx 
    je          L$74 
L$73:
    mov         bx,word ptr -0cH[bp] 
    mov         dx,word ptr -0aH[bp] 
    mov         ax,bx 
    call        far ptr AddStringToIncludePath_ 
L$74:
    cmp         byte ptr ss:L$325,0 
    jne         L$75 
    cmp         byte ptr ss:L$326,0 
    je          L$76 
L$75:
    jmp         L$77 
L$76:
    mov         byte ptr ss:L$326,1 
    push        cs 
    call        near ptr trademark_ 
L$77:
    call        near ptr L$101 
    call        far ptr PushLineQueue_ 
    lea         sp,-6[bp] 
    pop         di 
    pop         si 
    pop         dx 
    pop         bp 
    dec         bp 
    retf        
main_:
    inc         bp 
    push        bp 
    mov         bp,sp 
    push        ax 
    mov         ax,14H 
    call        far ptr __STK 
    pop         ax 
    push        dx 
    push        si 
    push        di 
    sub         sp,8 
    mov         word ptr -0aH[bp],ax 
    mov         word ptr -0eH[bp],bx 
    mov         word ptr -0cH[bp],cx 
    call        near ptr L$95 
    mov         dx,word ptr -0eH[bp] 
    mov         cx,word ptr -0cH[bp] 
    mov         ax,word ptr -0aH[bp] 
    mov         bx,dx 
    push        cs 
    call        near ptr do_init_stuff_ 
    call        far ptr WriteObjModule_ 
    cmp         byte ptr ss:L$325,0 

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?