Annotation of gcl520h/model286.equ, revision 1.1

1.1     ! root        1: ;
        !             2: ; MODEL286.EQU      5.20A  June 8, 1995
        !             3: ;
        !             4: ; DESCRIPTION
        !             5: ;
        !             6: ; This is the header file used by assembly files to determine
        !             7: ; model dependent information.  Previously, Greenleaf libraries
        !             8: ; used the file model.h, which had macros for _LCODE, _LDATA, etc.
        !             9: ; This new system allows the user to set the model on the command
        !            10: ; line by defining the GF_MODEL constant.  It also prints out a
        !            11: ; helpful (I hope) error message if GF_MODEL is not defined.
        !            12: ;
        !            13: ; This file also has segment definitions for the code used by
        !            14: ; the 286 DOS Extender Fast drivers.  If you were to mess with
        !            15: ; those segment definitions, the results would probably be
        !            16: ; very bad.
        !            17: ;
        !            18: ; AUTHOR
        !            19: ;      SM
        !            20: ;      Copyright (C) 1991-94 Greenleaf Software Inc.  All rights reserved.
        !            21: ;
        !            22: ; MODIFICATIONS
        !            23: ;
        !            24: ;  December 1, 1994   5.10A :  Initial release.
        !            25: ;
        !            26: 
        !            27: ;
        !            28: ; The check for ??version is checking to see if we are running under
        !            29: ; Turbo Assembler.
        !            30: ;
        !            31:         ifdef ??version
        !            32:                 mesg_defined = 1
        !            33:                 mesg    macro   txt
        !            34:                         %out    txt
        !            35:                         endm
        !            36:         endif
        !            37:         ifdef ??Version
        !            38:                 mesg_defined = 1
        !            39:                 mesg    macro   txt
        !            40:                         %out    txt
        !            41:                         endm
        !            42:         endif
        !            43:         ifndef mesg_defined
        !            44:                 mesg    macro   txt
        !            45:                         if1
        !            46:                                 %out    txt
        !            47:                         endif
        !            48:                         endm
        !            49:         endif
        !            50: 
        !            51: % GF_MODEL&_MODEL = 1
        !            52: 
        !            53:         ifdef SMALL_MODEL
        !            54:                 mesg <Small Memory Model>
        !            55:                 _LCODE = 0
        !            56:                 _LDATA = 0
        !            57:                 _HUGE  = 0
        !            58:                 GOOD_MODEL = 0
        !            59:                 .MODEL  SMALL,C
        !            60:         endif
        !            61: 
        !            62:         ifdef COMPACT_MODEL
        !            63:                 mesg <Compact Memory Model>
        !            64:                 _LCODE = 0
        !            65:                 _LDATA = 1
        !            66:                 _HUGE  = 0
        !            67:                 GOOD_MODEL = 0
        !            68:                 .MODEL  COMPACT,C
        !            69:         endif
        !            70: 
        !            71:         ifdef MEDIUM_MODEL
        !            72:                 mesg <Medium Memory Model>
        !            73:                 _LCODE = 1
        !            74:                 _LDATA = 0
        !            75:                 _HUGE  = 0
        !            76:                 GOOD_MODEL = 0
        !            77:                 .MODEL  MEDIUM,C
        !            78:         endif
        !            79: 
        !            80:         ifdef LARGE_MODEL
        !            81:                 mesg <Large Memory Model>
        !            82:                 _LCODE = 1
        !            83:                 _LDATA = 1
        !            84:                 _HUGE  = 0
        !            85:                 GOOD_MODEL = 0
        !            86:                 .MODEL  LARGE,C
        !            87:         endif
        !            88: 
        !            89:         ifdef HUGE_MODEL
        !            90:                 mesg <Huge Memory Model>
        !            91:                 _LCODE = 1
        !            92:                 _LDATA = 1
        !            93:                 _HUGE  = 1
        !            94:                 GOOD_MODEL = 0
        !            95:                 .MODEL  HUGE,C
        !            96:         endif
        !            97: 
        !            98:         ifdef OTHER_MODEL
        !            99:                 mesg <Other Memory Model>
        !           100:                 _LCODE = 1
        !           101:                 _LDATA = 1
        !           102:                 _HUGE  = 0
        !           103:                 GOOD_MODEL = 0
        !           104:         endif
        !           105: 
        !           106:         ifndef _LCODE
        !           107:         mesg   <In order to properly build the assembly files for this>
        !           108:         mesg   <library, you need to define GF_MODEL so the files can be>
        !           109:         mesg   <be built for the correct memory model.  The best way to>
        !           110:         mesg   <do this is to define it on the command line, like this:>
        !           111:         mesg   < >
        !           112:         mesg   <    MASM /DGF_MODEL=SMALL /Ml FILE.ASM ; >
        !           113:         mesg   < >
        !           114:         mesg   <Acceptable choices for GF_MODEL are SMALL, COMPACT, MEDIUM,>
        !           115:         mesg   <LARGE, and HUGE.  Note that the Greenleaf Installation programs>
        !           116:         mesg   <will do this automatically.>
        !           117:         mesg   < >
        !           118:         _LCODE = 0
        !           119:         _LDATA = 0
        !           120:         _HUGE = 0
        !           121:         endif
        !           122: 
        !           123:         ifndef GOOD_MODEL
        !           124:         .ERR
        !           125:         endif
        !           126: 
        !           127: ;
        !           128: ; Don't rearrange these segments.  I have them in this
        !           129: ; order to ensure that everything that needs to get locked
        !           130: ; in memory.  If I didn't put the kill segment in between
        !           131: ; these two other guys it might not get properly locked.
        !           132: ;
        !           133: PROT_ISR_CODE           SEGMENT BYTE PUBLIC 'CODE'
        !           134: PROT_ISR_CODE           ENDS
        !           135: KILL_CODE               SEGMENT BYTE PUBLIC 'CODE'
        !           136: KILL_CODE               ENDS
        !           137: DEBUG_ISR_CODE          SEGMENT BYTE PUBLIC 'CODE'
        !           138: DEBUG_ISR_CODE          ENDS
        !           139: ;
        !           140: ; I don't think it matters where these appear
        !           141: ;
        !           142: REAL_ISR_DATA           SEGMENT WORD PUBLIC 'ISR'
        !           143: REAL_ISR_DATA           ENDS
        !           144: PROT_ISR_DATA           SEGMENT WORD PUBLIC 'DATA'
        !           145: PROT_ISR_DATA           ENDS
        !           146: 

unix.superglobalmegacorp.com

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