Annotation of coherent/a/usr/include.b4ps2/larges.h, revision 1.1

1.1     ! root        1: /* (-lgl
        !             2:  *     COHERENT Version 3.2
        !             3:  *     Copyright (c) 1982, 1991 by Mark Williams Company.
        !             4:  *     All rights reserved. May not be copied without permission.
        !             5:  -lgl) */
        !             6: /* larges.h */
        !             7: /* Model-dependent definitions for i8086 assembler sources. */
        !             8: 
        !             9: #ifndef        LARGES_H
        !            10: #define        LARGES_H
        !            11: 
        !            12: #if    LARGE
        !            13: #define        LARGECODE 1
        !            14: #define LARGEDATA 1
        !            15: #endif
        !            16: 
        !            17: #if    LARGECODE
        !            18: /* LARGE code: calls, jumps and returns are far, code pointer is 4 bytes. */
        !            19: #define        Gcall   xcall
        !            20: #define Gicall xicall
        !            21: #define Gijmp  xijmp
        !            22: #define        Gjmp    xjmp
        !            23: #define Gptr   .dword
        !            24: #define        Gret    xret
        !            25: #define        CPL     4
        !            26: #else
        !            27: /* SMALL code: calls, jumps and returns are near, code pointer is 2 bytes. */
        !            28: #define        Gcall   call
        !            29: #define Gicall icall
        !            30: #define Gijmp  ijmp
        !            31: #define Gjmp   jmp
        !            32: #define Gptr   .word
        !            33: #define        Gret    ret
        !            34: #define        CPL     2
        !            35: #endif
        !            36: 
        !            37: #if    LARGEDATA
        !            38: /* LARGE data: segment registers must be loaded to map data, escapes required. */
        !            39: /* Data pointer is 4 bytes. */
        !            40: #define Gdptr  .dword
        !            41: #define        Lds     lds
        !            42: #define        Les     les
        !            43: #define        Map(sreg, temp, val)    mov     temp, val;      mov     sreg, temp
        !            44: #define        Pes     es:
        !            45: #define        Pss     ss:
        !            46: #define        DPL     4
        !            47: #else
        !            48: /* SMALL data: DS==ES==SS, no escapes required. */
        !            49: /* Data pointer is 2 bytes. */
        !            50: #define Gdptr  .word
        !            51: #define        Lds     mov
        !            52: #define Les    mov
        !            53: #define        Map(sreg, temp, val)
        !            54: #define        Pes
        !            55: #define        Pss
        !            56: #define        DPL     2
        !            57: #endif
        !            58: 
        !            59: /* Function entry and exit: preserve C register variables, initialize BP. */
        !            60: /* No automatics allocated. */
        !            61: #define Enter(x)       .globl x; x: push si; push di; push bp; mov bp, sp
        !            62: #define Leave          pop bp; pop di; pop si; Gret
        !            63: #define LEFTARG        CPL+6
        !            64: 
        !            65: #define        RASIZE  CPL
        !            66: #define        PTRSIZE DPL
        !            67: 
        !            68: #endif

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.