⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 womp.gml

📁 开放源码的编译器open watcom 1.6.0版的源代码
💻 GML
📖 第 1 页 / 共 4 页
字号:
    bit_offset 0x00000048 type 0x0003 name "ch"
    bit_offset 0x00000060 type 0x0003 name "dl"
    bit_offset 0x00000068 type 0x0003 name "dh"
.code break
0x002a: TYPEDEF size 0x00000070 bits
    scope struct type 0x0029 name "BYTEREGS"
.code break
0x002b: STRUCT size 0x000000e0 bits num_entries 0x0003
    bit_offset 0x00000000 type 0x002a name "h"
    bit_offset 0x00000000 type 0x0026 name "x"
    bit_offset 0x00000000 type 0x0028 name "w"
.code break
0x002c: TYPEDEF size 0x000000e0 bits
    scope union type 0x002b name "REGS"
.code break
0x002d: STRUCT size 0x00000060 bits num_entries 0x0006
    bit_offset 0x00000000 type 0x0005 name "es"
    bit_offset 0x00000010 type 0x0005 name "cs"
    bit_offset 0x00000020 type 0x0005 name "ss"
    bit_offset 0x00000030 type 0x0005 name "ds"
    bit_offset 0x00000040 type 0x0005 name "fs"
    bit_offset 0x00000050 type 0x0005 name "gs"
.code break
0x002e: TYPEDEF size 0x00000060 bits
    scope struct type 0x002d name "SREGS"
.code break
0x002f: STRUCT size 0x00000070 bits num_entries 0x0008
    bit_offset 0x00000000 type 0x0003 name "al"
    bit_offset 0x00000008 type 0x0003 name "ah"
    bit_offset 0x00000020 type 0x0003 name "bl"
    bit_offset 0x00000028 type 0x0003 name "bh"
    bit_offset 0x00000040 type 0x0003 name "cl"
    bit_offset 0x00000048 type 0x0003 name "ch"
    bit_offset 0x00000060 type 0x0003 name "dl"
    bit_offset 0x00000068 type 0x0003 name "dh"
.code break
0x0030: TYPEDEF size 0x00000070 bits
    scope struct type 0x002f name "REGPACKB"
.code break
0x0031: STRUCT size 0x00000140 bits num_entries 0x000c
    bit_offset 0x00000000 type 0x0005 name "ax"
    bit_offset 0x00000020 type 0x0005 name "bx"
    bit_offset 0x00000040 type 0x0005 name "cx"
    bit_offset 0x00000060 type 0x0005 name "dx"
    bit_offset 0x00000080 type 0x0005 name "bp"
    bit_offset 0x000000a0 type 0x0005 name "si"
    bit_offset 0x000000c0 type 0x0005 name "di"
    bit_offset 0x000000e0 type 0x0005 name "ds"
    bit_offset 0x000000f0 type 0x0005 name "es"
    bit_offset 0x00000100 type 0x0005 name "fs"
    bit_offset 0x00000110 type 0x0005 name "gs"
    bit_offset 0x00000120 type 0x0007 name "flags"
.code break
0x0032: TYPEDEF size 0x00000140 bits
    scope struct type 0x0031 name "REGPACKW"
.code break
0x0033: STRUCT size 0x00000140 bits num_entries 0x000c
    bit_offset 0x00000000 type 0x0007 name "eax"
    bit_offset 0x00000020 type 0x0007 name "ebx"
    bit_offset 0x00000040 type 0x0007 name "ecx"
    bit_offset 0x00000060 type 0x0007 name "edx"
    bit_offset 0x00000080 type 0x0007 name "ebp"
    bit_offset 0x000000a0 type 0x0007 name "esi"
    bit_offset 0x000000c0 type 0x0007 name "edi"
    bit_offset 0x000000e0 type 0x0005 name "ds"
    bit_offset 0x000000f0 type 0x0005 name "es"
    bit_offset 0x00000100 type 0x0005 name "fs"
    bit_offset 0x00000110 type 0x0005 name "gs"
    bit_offset 0x00000120 type 0x0007 name "flags"
.code break
0x0034: TYPEDEF size 0x00000140 bits
    scope struct type 0x0033 name "REGPACKX"
.code break
0x0035: STRUCT size 0x00000140 bits num_entries 0x0003
    bit_offset 0x00000000 type 0x0030 name "h"
    bit_offset 0x00000000 type 0x0034 name "x"
    bit_offset 0x00000000 type 0x0032 name "w"
.code break
0x0036: TYPEDEF size 0x00000140 bits
    scope union type 0x0035 name "REGPACK"
.code break
0x0037: STRUCT size 0x000001e0 bits num_entries 0x000f
    bit_offset 0x00000000 type 0x0007 name "gs"
    bit_offset 0x00000020 type 0x0007 name "fs"
    bit_offset 0x00000040 type 0x0007 name "es"
    bit_offset 0x00000060 type 0x0007 name "ds"
    bit_offset 0x00000080 type 0x0007 name "edi"
    bit_offset 0x000000a0 type 0x0007 name "esi"
    bit_offset 0x000000c0 type 0x0007 name "ebp"
    bit_offset 0x000000e0 type 0x0007 name "esp"
    bit_offset 0x00000100 type 0x0007 name "ebx"
    bit_offset 0x00000120 type 0x0007 name "edx"
    bit_offset 0x00000140 type 0x0007 name "ecx"
    bit_offset 0x00000160 type 0x0007 name "eax"
    bit_offset 0x00000180 type 0x0007 name "eip"
    bit_offset 0x000001a0 type 0x0007 name "cs"
    bit_offset 0x000001c0 type 0x0007 name "flags"
.code break
0x0038: TYPEDEF size 0x000001e0 bits
    scope struct type 0x0037 name "INTPACKX"
.code break
0x0039: STRUCT size 0x000001e0 bits num_entries 0x000f
    bit_offset 0x00000000 type 0x0005 name "gs"
    bit_offset 0x00000020 type 0x0005 name "fs"
    bit_offset 0x00000040 type 0x0005 name "es"
    bit_offset 0x00000060 type 0x0005 name "ds"
    bit_offset 0x00000080 type 0x0005 name "di"
    bit_offset 0x000000a0 type 0x0005 name "si"
    bit_offset 0x000000c0 type 0x0005 name "bp"
    bit_offset 0x000000e0 type 0x0005 name "sp"
    bit_offset 0x00000100 type 0x0005 name "bx"
    bit_offset 0x00000120 type 0x0005 name "dx"
    bit_offset 0x00000140 type 0x0005 name "cx"
    bit_offset 0x00000160 type 0x0005 name "ax"
    bit_offset 0x00000180 type 0x0005 name "ip"
    bit_offset 0x000001a0 type 0x0005 name "cs"
    bit_offset 0x000001c0 type 0x0007 name "flags"
.code break
0x003a: TYPEDEF size 0x000001e0 bits
    scope struct type 0x0039 name "INTPACKW"
.code break
0x003b: STRUCT size 0x00000170 bits num_entries 0x0008
    bit_offset 0x00000100 type 0x0003 name "bl"
    bit_offset 0x00000108 type 0x0003 name "bh"
    bit_offset 0x00000120 type 0x0003 name "dl"
    bit_offset 0x00000128 type 0x0003 name "dh"
    bit_offset 0x00000140 type 0x0003 name "cl"
    bit_offset 0x00000148 type 0x0003 name "ch"
    bit_offset 0x00000160 type 0x0003 name "al"
    bit_offset 0x00000168 type 0x0003 name "ah"
.code break
0x003c: TYPEDEF size 0x00000170 bits
    scope struct type 0x003b name "INTPACKB"
.code break
0x003d: STRUCT size 0x000001e0 bits num_entries 0x0003
    bit_offset 0x00000000 type 0x003c name "h"
    bit_offset 0x00000000 type 0x0038 name "x"
    bit_offset 0x00000000 type 0x003a name "w"
.code break
0x003e: TYPEDEF size 0x000001e0 bits
    scope union type 0x003d name "INTPACK"
.code break
0x003f: STRUCT size 0x00000038 bits num_entries 0x0004
    bit_offset 0x00000000 type 0x0006 name "exterror"
    bit_offset 0x00000020 type 0x0008 name "class"
    bit_offset 0x00000028 type 0x0008 name "action"
    bit_offset 0x00000030 type 0x0008 name "locus"
.code break
0x0040: TYPEDEF size 0x00000038 bits
    scope struct type 0x003f name "DOSERROR"
.code break
0x0041: STRUCT size 0x00000028 bits num_entries 0x0004
    bit_offset 0x00000000 type 0x0003 name "day"
    bit_offset 0x00000008 type 0x0003 name "month"
    bit_offset 0x00000010 type 0x0005 name "year"
    bit_offset 0x00000020 type 0x0003 name "dayofweek"
.code break
0x0042: TYPEDEF size 0x00000028 bits
    scope struct type 0x0041 name "dosdate_t"
.code break
0x0043: STRUCT size 0x00000020 bits num_entries 0x0004
    bit_offset 0x00000000 type 0x0003 name "hour"
    bit_offset 0x00000008 type 0x0003 name "minute"
    bit_offset 0x00000010 type 0x0003 name "second"
    bit_offset 0x00000018 type 0x0003 name "hsecond"
.code break
0x0044: TYPEDEF size 0x00000020 bits
    scope struct type 0x0043 name "dostime_t"
.code break
0x0045: ARRAY_ZERO size 0x000000a8 bits
    base_type 0x0008 high_bound 0x00000014
.code break
0x0046: ARRAY_ZERO size 0x00000068 bits
    base_type 0x0008 high_bound 0x0000000c
.code break
0x0047: STRUCT size 0x00000158 bits num_entries 0x0006
    bit_offset 0x00000000 type 0x0045 name "reserved"
    bit_offset 0x000000a8 type 0x0008 name "attrib"
    bit_offset 0x000000b0 type 0x0005 name "wr_time"
    bit_offset 0x000000c0 type 0x0005 name "wr_date"
    bit_offset 0x000000d0 type 0x0007 name "size"
    bit_offset 0x000000f0 type 0x0046 name "name"
.code break
0x0048: TYPEDEF size 0x00000158 bits
    scope struct type 0x0047 name "find_t"
.code break
0x0049: STRUCT size 0x00000040 bits num_entries 0x0004
    bit_offset 0x00000000 type 0x0005 name "total_clusters"
    bit_offset 0x00000010 type 0x0005 name "avail_clusters"
    bit_offset 0x00000020 type 0x0005 name "sectors_per_cluster"
    bit_offset 0x00000030 type 0x0005 name "bytes_per_sector"
.code break
0x004a: TYPEDEF size 0x00000040 bits
    scope struct type 0x0049 name "diskfree_t"
.code break
0x004b: ARRAY_ZERO size 0x00000180 bits
    base_type 0x0006 high_bound 0x0000000b
.code break
0x004c: ARRAY_ZERO size 0x00000180 bits
    base_type 0x0006 high_bound 0x0000000b
.code break
0x004d: ARRAY_ZERO size 0x00000180 bits
    base_type 0x000b high_bound 0x0000000b
.code break
0x004e: PROCEDURE
    NEAR 386 ret_type 0x0006 num_parms 00
.code break
0x004f: POINTER size 0x00000020 bits base_type 0x0021 NEAR 386
.code break
0x0050: PROCEDURE
    NEAR 386 ret_type 0x0019 num_parms 06
    parm_num 00 parm_type 0x0006
    parm_num 01 parm_type 0x0006
    parm_num 02 parm_type 0x0006
    parm_num 03 parm_type 0x0006
    parm_num 04 parm_type 0x0006
    parm_num 05 parm_type 0x000b
.code break
0x0051: PROCEDURE
    NEAR 386 ret_type 0x0019 num_parms 04
    parm_num 00 parm_type 0x0006
    parm_num 01 parm_type 0x0006
    parm_num 02 parm_type 0x0006
    parm_num 03 parm_type 0x0006
.code break
0x0052: PROCEDURE
    NEAR 386 ret_type 0x0019 num_parms 06
    parm_num 00 parm_type 0x0006
    parm_num 01 parm_type 0x0006
    parm_num 02 parm_type 0x0006
    parm_num 03 parm_type 0x0008
    parm_num 04 parm_type 0x0008
    parm_num 05 parm_type 0x0008
.code break
0x0053: ARRAY_ZERO size 0x00000280 bits
    base_type 0x0008 high_bound 0x0000004f
.code break
0x0054: PROCEDURE
    NEAR 386 ret_type 0x0019 num_parms 02
    parm_num 00 parm_type 0x0006
    parm_num 01 parm_type 0x0006
.code break
                               Symbol Information
                               ------------------
MEM_LOC (static) name "NarrowTitle" type 0x000b
    data 94 00 00 00 00 00
    fixup SEG_REL  POINTER386  Frame: GI(0x0002)  Target: SI(0x0004)
.code break
MEM_LOC (static) name "WideTitle" type 0x000b
    data 90 00 00 00 00 00
    fixup SEG_REL  POINTER386  Frame: GI(0x0002)  Target: SI(0x0004)
.code break
MEM_LOC (static) name "Jump" type 0x004b
    data 00 00 00 00 00 00
    fixup SEG_REL  POINTER386  Frame: GI(0x0002)  Target: SI(0x0004)
.code break
MEM_LOC (static) name "MonthDays" type 0x004c
    data 30 00 00 00 00 00
    fixup SEG_REL  POINTER386  Frame: GI(0x0002)  Target: SI(0x0004)
.code break
MEM_LOC (static) name "MonthName" type 0x004d
    data 60 00 00 00 00 00
    fixup SEG_REL  POINTER386  Frame: GI(0x0002)  Target: SI(0x0004)
.code break
CHANGE_SEG
    data 00 00 00 00 00 00
    fixup SEG_REL  POINTER386  Frame: GI(0x0002)  Target: SI(0x0001)
.code break
BLOCK name "main" type 0x004e start_offset 0x00000000 size 0x000000e7
    PROLOG size 12 ret_addr_offset 0x00000010
    Return Value:
        REGISTER name "" type 0x0000: EAX
    BP_OFFSET 0xfffffffc name "curr_time" type 0x001e
    BP_OFFSET 0xfffffff8 name "tyme" type 0x004f
    EPILOG size 05
BLOCK_END
.code break
BLOCK name "Calendar" type 0x0050 start_offset 0x000000e7 size 0x00000199
    Parms:
        REGISTER name "month" type 0x0006: EAX
        REGISTER name "year" type 0x0006: EDX
        REGISTER name "row" type 0x0006: EBX
        REGISTER name "col" type 0x0006: ECX
        BP_OFFSET 0x00000008 name "width" type 0x0006
        BP_OFFSET 0x0000000c name "title" type 0x000b
    PROLOG size 16 ret_addr_offset 0x00000004
    BP_OFFSET 0xfffffffc name "start" type 0x0006
    BP_OFFSET 0xfffffff8 name "days" type 0x0006
    BP_OFFSET 0xfffffff4 name "box_width" type 0x0006
    BP_OFFSET 0xfffffff0 name "str" type 0x000b
    BP_OFFSET 0xffffffec name "i" type 0x0006
    BP_OFFSET 0x0000000c name "title" type 0x000b
    BP_OFFSET 0x00000008 name "width" type 0x0006
    BP_OFFSET 0xffffffdc name "col" type 0x0006
    BP_OFFSET 0xffffffe0 name "row" type 0x0006
    BP_OFFSET 0xffffffe4 name "year" type 0x0006
    BP_OFFSET 0xffffffe8 name "month" type 0x0006
    EPILOG size 04
BLOCK_END
.code break
BLOCK name "Box" type 0x0051 start_offset 0x00000280 size 0x000000c4
    Parms:
        REGISTER name "row" type 0x0006: EAX
        REGISTER name "col" type 0x0006: EDX
        REGISTER name "width" type 0x0006: EBX
        REGISTER name "height" type 0x0006: ECX
    PROLOG size 14 ret_addr_offset 0x00000004
    BP_OFFSET 0xfffffffc name "i" type 0x0006
    BP_OFFSET 0xffffffec name "height" type 0x0006
    BP_OFFSET 0xfffffff0 name "width" type 0x0006
    BP_OFFSET 0xfffffff4 name "col" type 0x0006
    BP_OFFSET 0xfffffff8 name "row" type 0x0006
    EPILOG size 02
BLOCK_END
.code break
BLOCK name "Line" type 0x0052 start_offset 0x00000344 size 0x00000064
    Parms:
        REGISTER name "row" type 0x0006: EAX
        REGISTER name "col" type 0x0006: EDX
        REGISTER name "width" type 0x0006: EBX
        REGISTER name "left" type 0x0008: ECX
        BP_OFFSET 0x00000008 name "centre" type 0x0008
        BP_OFFSET 0x0000000c name "right" type 0x0008
    PROLOG size 15 ret_addr_offset 0x00000004
    BP_OFFSET 0xffffffac name "buffer" type 0x0053
    BP_OFFSET 0x0000000c name "right" type 0x0008
    BP_OFFSET 0x00000008 name "centre" type 0x0008
    BP_OFFSET 0xfffffffc name "left" type 0x0008
    BP_OFFSET 0xffffffa0 name "width" type 0x0006
    BP_OFFSET 0xffffffa4 name "col" type 0x0006
    BP_OFFSET 0xffffffa8 name "row" type 0x0006
    EPILOG size 04
BLOCK_END
.code break
BLOCK name "PosCursor" type 0x0054 start_offset 0x000003a8 size 0x00000045
    Parms:
        REGISTER name "row" type 0x0006: EAX
        REGISTER name "col" type 0x0006: EDX
    PROLOG size 15 ret_addr_offset 0x00000008
    BP_OFFSET 0xffffffe4 name "regs" type 0x002c
    BP_OFFSET 0xffffffdc name "col" type 0x0006
    BP_OFFSET 0xffffffe0 name "row" type 0x0006
    EPILOG size 03
BLOCK_END
.code break
BLOCK name "ClearScreen" type 0x001a start_offset 0x000003ed size 0x0000003c
    PROLOG size 12 ret_addr_offset 0x0000000c
    BP_OFFSET 0xffffffe4 name "regs" type 0x002c
    EPILOG size 04
BLOCK_END
.tinyexam end
:cmt. .do end
.do end
.if '&lang' eq 'FORTRAN 77' .do begin
:set symbol="ccmd16"   value="wfc".
:set symbol="ccmd32"   value="wfc386".
:cmt. .if '&machine' eq '8086' .do begin
.np
The following are 16-bit examples.
.tinyexam begin
&prompt.&ccmd16 sieve
&prompt.womp &sw.f- &sw.dx sieve
&company Object Module Processor Version 1.1
.cpyrit 1990
.trdmrk
Converting sieve.OBJ
                            Miscellaneous Information
                            -------------------------
Processor       : 8086
Memory Model    : Large
Floating-point  : Inline Emulation
Optimized       : Yes
Lines Present   : No
Types Present   : No
Symbs Present   : No
Source Language : Fortran
.tinyexam end
.tinyexam begin
&prompt.&ccmd16 &sw.d1 sieve
&prompt.womp &sw.f- &sw.dx sieve
&company Object Module Processor Version 1.1
.cpyrit 1990
.trdmrk
Converting sieve.OBJ
                            Miscellaneous Information
                            -------------------------
Processor       : 8086
Memory Model    : Large
Floating-point  : Inline Emulation
Optimized       : Yes
Lines Present   : Yes
Types Present   : No
Symbs Present   : No
Source Language : Fortran
.tinyexam end
.tinyexam begin
&prompt.&ccmd16 &sw.d2 sieve
&prompt.womp &sw.f- &sw.dx sieve
&company Object Module Processor Version 1.1
.cpyrit 1990
.trdmrk
Converting sieve.OBJ
                            Miscellaneous Information
                            -------------------------
Processor       : 8086
Memory Model    : Large
Floating-point  : Inline Emulation
Optimized       : Yes
Lines Present   : Yes
Types Present   : Yes
Symbs Present   : Yes
Source Language : Fortran
.code break
                                Type Information
                                ----------------
0x0000: RESERVED
.code break
0x0001: RESERVED
.code break
0x0002: INTEGER size 0x00000008 bits UNSIGNED
.code break
0x0003: INTEGER size 0x00000020 bits UNSIGNED
.code break
0x0004: INTEGER size 0x00000008 bits SIGNED
.code break
0x0005: INTEGER size 0x00000010 bits SIGNED
.code break
0x0006: INTEGER size 0x00000020 bits SIGNED
.code break
0x0007: REAL size 0x00000020 bits

⌨️ 快捷键说明

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