Changeset 6526 for branches/mini/src


Ignore:
Timestamp:
Aug 14, 2001, 5:07:54 PM (24 years ago)
Author:
bird
Message:

196 bytes edition. can't get it smaller it seems. 196 = sizeof(LX)?!

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/mini/src/win32k/test/mini.asm

    r6525 r6526  
    5555;
    5656impmod              EQU restab
    57 data                EQU ImReallySmall
     57;data                EQU ImReallySmall
    5858
    5959
     
    6969dw  2       ;    unsigned short      e32_cpu;        /* The CPU type */
    7070dw  1       ;    unsigned short      e32_os;         /* The OS type */
    71 ;objtab:
     71
     72; We can place the object table here I hope..
     73;   mpages is addjusted to hold the object flags.
     74;   reserved is 1 which is no problem it seems.
     75;
     76; Object table with one entry.
     77; Defines a
     78;
     79;dbg0 db 'objtab'    ;struct o32_obj                          /* Flat .EXE object table entry */
     80                    ;{
     81;objtab  dd 11000h   ;    unsigned long       o32_size;       /* Object virtual size */
     82;        dd 10000h   ;    unsigned long       o32_base;       /* Object base virtual address */
     83;                    ;    unsigned long       o32_flags;      /* Attribute flags */
     84;        dd (1h OR 2h OR 2000h OR 10h) ;=2013h
     85;        dd 1        ;    unsigned long       o32_pagemap;    /* Object page map index */
     86;        dd 1        ;    unsigned long       o32_mapsize;    /* Number of entries in object page map */
     87;        dd 0        ;    unsigned long       o32_reserved;   /* Reserved */
     88                     ;};
     89objtab:
    7290dd  20000h  ;    unsigned long       e32_ver;        /* Module version */
    7391            ;    unsigned long       e32_mflags;     /* Module flags */
    7492dd  200h OR 00h
    75 dd  1       ;    unsigned long       e32_mpages;     /* Module # pages */
     93dd  2013h   ;    unsigned long       e32_mpages;     /* Module # pages */
    7694dd  1       ;    unsigned long       e32_startobj;   /* Object # for instruction pointer */
    77 dd  12h     ;    unsigned long       e32_eip;        /* Extended instruction pointer */
     95dd  1       ;    unsigned long       e32_eip;        /* Extended instruction pointer */
    7896dd  1       ;    unsigned long       e32_stackobj;   /* Object # for stack pointer */
    7997dd  1000h   ;    unsigned long       e32_esp;        /* Extended stack pointer */
     
    110128dd  0       ;    unsigned long       e32_impproc;    /* Offset of Import Procedure Name Table */ off = 78
    111129;dd  offset impproc
    112 objtab:
    113 dd  10000       ;    unsigned long       e32_pagesum;    /* Offset of Per-Page Checksum Table */                            available
     130dd  0       ;    unsigned long       e32_pagesum;    /* Offset of Per-Page Checksum Table */                            available
    114131            ;    unsigned long       e32_datapage;   /* Offset of Enumerated Data Pages */
    115132dd  offset data
     
    130147;mv dd  1000h-32;    unsigned long       e32_stacksize;  /* Size of stack */
    131148
    132 
    133 ;
    134 ; Object table with one entry.
    135 ; Defines a
    136 ;
    137 ;dbg0 db 'objtab'    ;struct o32_obj                          /* Flat .EXE object table entry */
    138                     ;{
    139 ;objtab  dd 11000h   ;    unsigned long       o32_size;       /* Object virtual size */
    140 ;        dd 10000h   ;    unsigned long       o32_base;       /* Object base virtual address */
    141                     ;    unsigned long       o32_flags;      /* Attribute flags */
    142         dd (1h OR 2h OR 2000h OR 10h) ;=2013h
    143         dd 1        ;    unsigned long       o32_pagemap;    /* Object page map index */
    144         dd 1        ;    unsigned long       o32_mapsize;    /* Number of entries in object page map */
    145         dd 0        ;    unsigned long       o32_reserved;   /* Reserved */
    146 
    147                     ;};
    148 
    149 ;red dd  0       ;    unsigned long       e32_debuglen;   /* The length of the debugging info. in bytes */                   available?
    150 ;red dd  0       ;    unsigned long       e32_instpreload;/* Number of instance pages in preload section of .EXE file */     available?
    151 ;red dd  0       ;    unsigned long       e32_instdemand; /* Number of instance pages in demand load section of .EXE file */ available?
    152 ;red dd  0       ;    unsigned long       e32_heapsize;   /* Size of heap - for 16-bit apps */                               available?
     149;dd 0,0,0,0
    153150
    154151;
     
    165162;dbg1 db 'pagetab'
    166163pagetab     dd  0                                   ; offset 0
    167             dw  offset minilxret - offset data + 1  ; data size,
     164            dw  offset dataend - offset data        ; data size,
    168165            dw  0                                   ; flags. valid
    169166
     
    173170            ;                                        /* Pad structure to 196 bytes */
    174171            ;  };
    175 db 0
     172
    176173
    177174;
     
    227224
    228225assume CS:ALL
    229 ImReallySmall   db  "I'm really small!",013
    230 
     226data:
     227    int 3
    231228minilx:
    232     push    10000h
     229;    int 3
     230    push    offset ImReallySmall - offset data + 10000h
    233231    push    18
    234232    push    eax                         ; 0 or 1 is just the same.
     
    237235fixup dd 0h
    238236    add     esp, 12
    239 minilxret:
    240237    ret
    241 
     238ImReallySmall   db  "I'm really small!",013
     239
     240db '123'
    242241;lxdump db 'lxdumplxdumplxdumplxdump'
    243242;       db 'lxdumplxdumplxdumplxdump'
    244243;       db 'lxdumplxdumplxdumplxdump'
     244dataend:
    245245
    246246ALL ENDS
Note: See TracChangeset for help on using the changeset viewer.