home *** CD-ROM | disk | FTP | other *** search
/ ftp.update.uu.se / ftp.update.uu.se.2014.03.zip / ftp.update.uu.se / pub / rainbow / msdos / decus / RB140 / grlibfor.arj / GOPT.ASM < prev    next >
Assembly Source File  |  1988-12-11  |  3KB  |  102 lines

  1. PAGE ,132
  2. ;GOPT.ASM
  3. ;UPDATE HISTORY
  4. ;==============
  5. ; 15 nov 1984       Con
  6. vert to CI86 V2.2
  7.  
  8.     include    asmc.h
  9.     SEGEND    CODE
  10.  
  11.     SE
  12. GDEF    DATA
  13.     EXTRN    swisg_:BYTE, sw100a_:BYTE, gintvect_:WORD
  14.     SE
  15. GEND    DATA
  16.  
  17.     SEGDEF    CODE
  18.  
  19. PUBLIC  gropt_
  20.  
  21. ;********************************************************************
  22. ;                                                                   
  23. *
  24. ;       p r o c e d u r e   gropt_()                                *
  25. ;                                                                   *
  26. ;       purpose:        tes
  27. t if Graphics Option is present.         *
  28. ;       entry:          none.                                       *
  29. ;       ex
  30. it:           ax = 0          option present.             *
  31. ;                       dax = -1        option not present.
  32.          *
  33. ;       register usage: ax                                          *
  34. ;       the following globals are set:
  35. -                             *
  36. ;           swisg_      1 = graphics option present                 *
  37. ;                       0 = no                                      *
  38.  
  39. ;           sw100a_     1 = this is Rainbow model 100a              *
  40. ;                       0 = no, 100b                                
  41. *
  42. ;           gintvect_   = appropriate hardware interrupt vector     *
  43. ;********************************************************************
  44.  
  45.  
  46.     PROCDEF    gropt_
  47.     mov    byte ptr swisg_,0    ;flag graphics bo
  48. ard not present
  49.         in      al,8            ;input from port 8
  50.         test    al,04h
  51.           ;test bit 2 to see if option present
  52.         jz      opt1            ;if option is 
  53. present, continue
  54.         mov     ax,-1           ;else, set AX for option not prese
  55. nt
  56.         jmp     optx        ;& exit
  57. ;===============
  58. ;option present
  59. ;===============
  60. opt
  61. 1:    mov    byte ptr swisg_,1    ;flag graphics board present
  62. ;
  63. ;Find o
  64. ut what the interupt vector is for the graphics option & set gintvect_.
  65.  
  66. ; For a Model 100-A, the graphics interrupt vector is 22 Hexadecimal.
  67.  
  68. ; For a Model 100-B, the interrupt vector is relocated up to A2H.
  69. ;
  70.  If EE00:0F44h and 04<>0, we have the relocated vectors of a Model 100-B
  71.  
  72. ;  and need to OR the msb of our vector.
  73. ;
  74.         push    es              ;sav
  75. e valid es
  76.         mov     ax,0ee00h       ;test if vectors are relocated
  77.         
  78. mov     es,ax
  79.         mov     ax,88h               ;100-A int. vector base addr
  80.     mov     
  81. byte ptr sw100a_,0    ; & set provisional flag
  82.         test    es:byte ptr 0
  83. f44h,4  ;relocated vectors?
  84.         jz      g0                   ;jump if yes
  85.         mov     ax,
  86. 288h              ;100-B int. vector base addr
  87.     mov     byte ptr sw100a_,1    ; & 
  88. reset 100b flag
  89. g0:     mov     word ptr gintvect_,ax
  90.         pop     es
  91.         
  92. xor     ax,ax           ;set AX for option present
  93.  
  94. optx:   ret
  95.  
  96.     PRO
  97. CEND    gropt_
  98.  
  99.     include    epilogue.h
  100.         END
  101. 
  102.