Annotation of gcl520h/_dbg386.equ, revision 1.1.1.1

1.1       root        1: ;
                      2: ; _DBG386.EQU            5.20A  June 8, 1995
                      3: ;
                      4: ; The Greenleaf Comm Library
                      5: ;
                      6: ; Copyright (C) 1991-94 Greenleaf Software Inc.  All Rights Reserved.
                      7: ;
                      8: ; NOTES
                      9: ;
                     10: ; This file contains the macros used to provide debug output services
                     11: ; for the protected mode ISR.  Debug output services are fully
                     12: ; defined in DEBUG386.ASM.
                     13: ;
                     14: ; MODIFICATIONS
                     15: ;
                     16: ; December 1, 1994   5.10A :  Initial release.
                     17: ;
                     18: 
                     19: ;
                     20: ; Any routine that wants to use debug services can include this header
                     21: ; file.  Unfortunately, if it gets included by DEBUG386.ASM, we are
                     22: ; going to see a conflict between these EXTRN definitions and the
                     23: ; PUBLIC definitions in the source module.  We avoid this conflict by
                     24: ; simply defining _DEBUG32 in DEBUG386.ASM so that these guys won't get
                     25: ; pulled in by that module.
                     26: ;
                     27: ; Note also that these externs don't get defined if ISR_DEBUG is not turned
                     28: ; on.  This prevents this code from being linked in in a production release.
                     29: ;
                     30: 
                     31: IFNDEF  _DEBUG32
                     32: IFDEF ISR_DEBUG
                     33: 
                     34: PISRCODE                     SEGMENT BYTE PUBLIC USE32 'CODE'
                     35:                              EXTRN   C _VidGoto32:NEAR
                     36:                              EXTRN   C _VidPutc32:NEAR
                     37:                              EXTRN   C _VidDat32:NEAR
                     38: PISRCODE                     ENDS
                     39: 
                     40: ENDIF
                     41: 
                     42: ENDIF
                     43: 
                     44: ;
                     45: ;  Macro: VIDGOTO row,col
                     46: ;
                     47: ;
                     48: ;  ARGUMENTS
                     49: ;
                     50: ;   row : The row to go to on the screen.  This can be any sort
                     51: ;         of identifier that will push 32 bits on the stack
                     52: ;         with a "push row" instruction.
                     53: ;
                     54: ;   col : The column to go to on the screen. This can be any sort
                     55: ;         of identifier that will push 32 bits on the stack
                     56: ;         with a "push col" instruction.
                     57: ;
                     58: ;  DESCRIPTION
                     59: ;
                     60: ;  This macro is used in the protected ISR to move the cursor, or current
                     61: ;  output location, to a specific location on the screen.
                     62: ;
                     63: ;  SIDE EFFECTS
                     64: ;
                     65: ;   None.
                     66: ;
                     67: ;  RETURNS
                     68: ;
                     69: ;  Nothing.
                     70: ;
                     71: ;  AUTHOR
                     72: ;
                     73: ;   SM          October 17, 1994
                     74: ;
                     75: ;  MODIFICATIONS
                     76: ;
                     77: ;
                     78: 
                     79: VIDGOTO macro row, col  ; Tag: Debug private
                     80:         push col
                     81:         push row
                     82:         call near ptr _VidGoto32
                     83:         add sp,8
                     84:         endm
                     85: 
                     86: ;
                     87: ;  Macro: VIDPUTS str
                     88: ;
                     89: ;
                     90: ;  ARGUMENTS
                     91: ;
                     92: ;   str : A string that needs to be displayed on the screen.  Note
                     93: ;         that this doesn't have to be a null terminated string.
                     94: ;
                     95: ;  DESCRIPTION
                     96: ;
                     97: ;  This macro is used in the protected ISR to display an entire string
                     98: ;  on the screen.  It operates a little differently from the same
                     99: ;  function in real mode.  This guy just wastefully uses an IRPC loop
                    100: ;  to expand out to a single call to _VidPutc32 for every single character
                    101: ;  in the string.
                    102: ;
                    103: ;  SIDE EFFECTS
                    104: ;
                    105: ;   None.
                    106: ;
                    107: ;  RETURNS
                    108: ;
                    109: ;   Nothing.
                    110: ;
                    111: ;  AUTHOR
                    112: ;
                    113: ;   SM          October 17, 1994
                    114: ;
                    115: ;  MODIFICATIONS
                    116: ;
                    117: ;
                    118: 
                    119: VIDPUTS macro str  ; Tag: Debug private
                    120:         irpc  char, <str>
                    121:             push '&char'
                    122:             call _VidPutc32
                    123:             add  sp,4
                    124:         endm
                    125:         endm
                    126: 
                    127: ;
                    128: ;  Macro: VIDPUTC char
                    129: ;
                    130: ;
                    131: ;  ARGUMENTS
                    132: ;
                    133: ;   char : A single character that needs to be displayed on the screen.
                    134: ;
                    135: ;  DESCRIPTION
                    136: ;
                    137: ;  This macro is used in the protected ISR to display a single character
                    138: ;  at the current cursor position on the screen.  It does this with
                    139: ;  a single call to _VidPutc32.  Note that the argument can be anything
                    140: ;  that pushes a 32 byte value with assembly of "push char".
                    141: ;
                    142: ;  SIDE EFFECTS
                    143: ;
                    144: ;   None.
                    145: ;
                    146: ;  RETURNS
                    147: ;
                    148: ;   Nothing.
                    149: ;
                    150: ;  AUTHOR
                    151: ;
                    152: ;   SM          October 17, 1994
                    153: ;
                    154: ;  MODIFICATIONS
                    155: ;
                    156: ;
                    157: 
                    158: VIDPUTC macro char  ; Tag: Debug private
                    159:         push char
                    160:         call _VidPutc32
                    161:         add  sp,4
                    162:         endm
                    163: 
                    164: ;
                    165: ;  Macro: VIDPUTBYTE data
                    166: ;
                    167: ;
                    168: ;  ARGUMENTS
                    169: ;
                    170: ;   data : Any eight bit value that can be moved into al with
                    171: ;          a mov al, data instruction.
                    172: ;
                    173: ;  DESCRIPTION
                    174: ;
                    175: ;  This macro is used in the protected ISR to display a single binary
                    176: ;  byte in hex.  The real work is done by VidDat32, the macro just
                    177: ;  takes care of setting things up to facilitate the call.
                    178: ;
                    179: ;  SIDE EFFECTS
                    180: ;
                    181: ;   None.
                    182: ;
                    183: ;  RETURNS
                    184: ;
                    185: ;   Nothing.
                    186: ;
                    187: ;  AUTHOR
                    188: ;
                    189: ;   SM          October 17, 1994
                    190: ;
                    191: ;  MODIFICATIONS
                    192: ;
                    193: ;
                    194: 
                    195: VIDPUTBYTE macro dat  ; Tag: Debug private
                    196:            push  eax
                    197:            mov   al,dat
                    198:            ror   eax,8
                    199:            push  2
                    200:            push  eax
                    201:            call  _VidDat32
                    202:            add   sp,8
                    203:            pop eax
                    204:            endm
                    205: 
                    206: ;
                    207: ;  Macro: VIDPUTWORD data
                    208: ;
                    209: ;
                    210: ;  ARGUMENTS
                    211: ;
                    212: ;   data : Any 16 bit value that can be moved into ax with
                    213: ;          a mov ax, data instruction.
                    214: ;
                    215: ;  DESCRIPTION
                    216: ;
                    217: ;  This macro is used in the protected ISR to display a single binary
                    218: ;  word in hex.  The real work is done by VidDat32, the macro just
                    219: ;  takes care of setting things up to facilitate the call.
                    220: ;
                    221: ;  SIDE EFFECTS
                    222: ;
                    223: ;   None.
                    224: ;
                    225: ;  RETURNS
                    226: ;
                    227: ;   Nothing.
                    228: ;
                    229: ;  AUTHOR
                    230: ;
                    231: ;   SM          October 17, 1994
                    232: ;
                    233: ;  MODIFICATIONS
                    234: ;
                    235: ;
                    236: 
                    237: VIDPUTWORD macro dat  ; Tag: Debug private
                    238:            push  eax
                    239:            mov   ax,dat
                    240:            ror   eax,16
                    241:            push  4
                    242:            push  eax
                    243:            call  _VidDat32
                    244:            add   sp,8
                    245:            pop eax
                    246:            endm
                    247: 
                    248: ;
                    249: ;  Macro: VIDPUTDWORD data
                    250: ;
                    251: ;
                    252: ;  ARGUMENTS
                    253: ;
                    254: ;   data : Any 32 bit value that can be moved into eax with
                    255: ;          a mov eax, data instruction.
                    256: ;
                    257: ;  DESCRIPTION
                    258: ;
                    259: ;  This macro is used in the protected ISR to display a single binary
                    260: ;  dword in hex.  The real work is done by VidDat32, the macro just
                    261: ;  takes care of setting things up to facilitate the call.
                    262: ;
                    263: ;  SIDE EFFECTS
                    264: ;
                    265: ;   None.
                    266: ;
                    267: ;  RETURNS
                    268: ;
                    269: ;   Nothing.
                    270: ;
                    271: ;  AUTHOR
                    272: ;
                    273: ;   SM          October 17, 1994
                    274: ;
                    275: ;  MODIFICATIONS
                    276: ;
                    277: ;
                    278: 
                    279: VIDPUTDWORD macro dat  ; Tag: Debug private
                    280:            push  eax
                    281:            mov   eax,dat
                    282:            push  8
                    283:            push  eax
                    284:            call  _VidDat32
                    285:            add   sp,8
                    286:            pop eax
                    287:            endm
                    288: 

unix.superglobalmegacorp.com

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