|
|
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
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.