Annotation of coherent/a/usr/include.b4ps2/larges.h, revision 1.1.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.