Annotation of gcl520h/model286.equ, revision 1.1.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.