home *** CD-ROM | disk | FTP | other *** search
/ The World of Computer Software / World_Of_Computer_Software-02-386-Vol-2of3.iso / b / bgi256-3.zip / SBLT.INC < prev    next >
Text File  |  1992-12-27  |  5KB  |  268 lines

  1. ;SBLT.INC   Copyright 1991,1992 Knight Software
  2. ;  History:
  3. ;      17 May 1991 - first release
  4. ;      22 Nov 1992 - adapted for protected mode operation
  5. ;
  6. ;-------------------------------------------------------
  7. ;Assume: Nothing
  8. ;Enter:  AL = color to draw if NZ flag passed (foreground)
  9. ;        AH = color to draw if Z flag is passed (background)
  10. ;        ES:DI points to screen address to write
  11. ;Return: N/A
  12.  
  13. MoveByte PROC NEAR    ;#0  Overwrite mode
  14.     JZ    @NoMove
  15.     MOV    ES:[DI],AL
  16.     RET
  17. @NoMove:
  18.     MOV    ES:[DI],AH
  19.     RET
  20. MoveByte ENDP
  21.  
  22. ;-----------------------------------
  23. XorByte PROC NEAR    ;#1 XOR write mode
  24.     JZ    @NoXor
  25.     XOR    ES:[DI],AL
  26.     RET
  27. @NoXor:
  28.     XOR    ES:[DI],AH
  29.     RET
  30. XorByte ENDP
  31.  
  32. ;-----------------------------------
  33. OrByte PROC NEAR    ;#2 OR write mode
  34.     JZ    @NoOr
  35.     OR    ES:[DI],AL
  36.     RET
  37. @NoOr:
  38.     OR    ES:[DI],AH
  39.     RET
  40. OrByte ENDP
  41.  
  42. ;-----------------------------------
  43. AndByte PROC NEAR    ;#3 AND write mode
  44.     JZ    @NoAnd
  45.     AND    ES:[DI],AL
  46.     RET
  47. @NoAnd:
  48.     AND    ES:[DI],AH
  49.     RET
  50. AndByte ENDP
  51.  
  52. ;-----------------------------------
  53. NotByte PROC NEAR    ;#4 Complement write mode
  54.     JZ    @NoXor
  55.     NOT    AL
  56.     MOV    ES:[DI],AL
  57.     NOT    AL
  58.     RET
  59. @NoNot:
  60.     NOT    AH
  61.     MOV    ES:[DI],AH
  62.     NOT    AH
  63.     RET
  64. NotByte ENDP
  65.  
  66. ;-----------------------------------
  67. NxorByte PROC NEAR    ;#5 NXOR write mode
  68.     JZ    @NoNxor
  69.     NOT    AL
  70.     XOR    ES:[DI],AL
  71.     NOT    AL
  72.     RET
  73. @NoNxor:
  74.     NOT    AH
  75.     XOR    ES:[DI],AH
  76.     NOT    AH
  77.     RET
  78. NxorByte ENDP
  79.  
  80. ;-----------------------------------
  81. NorByte PROC NEAR    ;#6 NOR write mode
  82.     JZ    @NoNor
  83.     NOT    AL
  84.     OR    ES:[DI],AL
  85.     NOT    AL
  86.     RET
  87. @NoNor:
  88.     NOT    AH
  89.     OR    ES:[DI],AH
  90.     NOT    AH
  91.     RET
  92. NorByte ENDP
  93.  
  94. ;-----------------------------------
  95. NandByte PROC NEAR    ;#7 NAND write mode
  96.     JZ    @NoNand
  97.     NOT    AL
  98.     AND    ES:[DI],AL
  99.     NOT    AL
  100.     RET
  101. @NoNand:
  102.     NOT    AH
  103.     AND    ES:[DI],AH
  104.     NOT    AH
  105.     RET
  106. NandByte ENDP
  107.  
  108. ;----------------------------------
  109. ForeByte PROC NEAR    ;#8 Foreground write mode
  110.     JZ    @NoFore
  111.     MOV    ES:[DI],AL
  112.     RET
  113. @NoFore:
  114.     RET
  115. ForeByte ENDP
  116.  
  117. ;----------------------------------
  118. ForeXorByte PROC NEAR    ;#9 Foreground XOR write mode
  119.     JZ    @NoForeXor
  120.     XOR    ES:[DI],AL
  121.     RET
  122. @NoForeXor:
  123.     RET
  124. ForeXorByte ENDP
  125.  
  126. ;----------------------------------
  127. ForeOrByte PROC NEAR    ;#10 Foreground OR write mode
  128.     JZ    @NoForeOr
  129.     OR    ES:[DI],AL
  130.     RET
  131. @NoForeOr:
  132.     RET
  133. ForeOrByte ENDP
  134.  
  135. ;----------------------------------
  136. ForeAndByte PROC NEAR    ;#11 Foreground AND write mode
  137.     JZ    @NoForeAnd
  138.     AND    ES:[DI],AL
  139.     RET
  140. @NoForeAnd:
  141.     RET
  142. ForeAndByte ENDP
  143.  
  144. ;----------------------------------
  145. ForeNotByte PROC NEAR    ;#12 Foreground NOT write mode
  146.     JZ    @NoForeNot
  147.     NOT    AL
  148.     MOV    ES:[DI],AL
  149.     NOT    AL
  150.     RET
  151. @NoForeNot:
  152.     RET
  153. ForeNotByte ENDP
  154.  
  155. ;----------------------------------
  156. ForeNxorByte PROC NEAR    ;#13 Foreground NXOR write mode
  157.     JZ    @NoForeNxor
  158.     NOT    AL
  159.     XOR    ES:[DI],AL
  160.     NOT    AL
  161.     RET
  162. @NoForeNxor:
  163.     RET
  164. ForeNxorByte ENDP
  165.  
  166. ;----------------------------------
  167. ForeNorByte PROC NEAR    ;#14 Foreground NOR write mode
  168.     JZ    @NoForeNor
  169.     NOT    AL
  170.     OR    ES:[DI],AL
  171.     NOT    AL
  172.     RET
  173. @NoForeNor:
  174.     RET
  175. ForeNorByte ENDP
  176.  
  177. ;----------------------------------
  178. ForeNandByte PROC NEAR    ;#15 Foreground NAND write mode
  179.     JZ    @NoForeNand
  180.     NOT    AL
  181.     AND    ES:[DI],AL
  182.     NOT    AL
  183.     RET
  184. @NoForeNand:
  185.     RET
  186. ForeNandByte ENDP
  187.  
  188. ;----------------------------------
  189. BackByte PROC NEAR    ;#16 Background write mode
  190.     JZ    @NoBack
  191.     RET
  192. @NoBack:
  193.     MOV    ES:[DI],AH
  194.     RET
  195. BackByte ENDP
  196.  
  197. ;----------------------------------
  198. BackXorByte PROC NEAR    ;#17 Background XOR write mode
  199.     JZ    @NoBackXor
  200.     RET
  201. @NoBackXor:
  202.     XOR    ES:[DI],AH
  203.     RET
  204. BackXorByte ENDP
  205.  
  206. ;----------------------------------
  207. BackOrByte PROC NEAR    ;#18 Background OR write mode
  208.     JZ    @NoBackOr
  209.     RET
  210. @NoBackOr:
  211.     MOV    ES:[DI],AH
  212.     RET
  213. BackOrByte ENDP
  214.  
  215. ;----------------------------------
  216. BackAndByte PROC NEAR    ;#19 Background AND write mode
  217.     JZ    @NoBackAnd
  218.     RET
  219. @NoBackAnd:
  220.     MOV    ES:[DI],AH
  221.     RET
  222. BackAndByte ENDP
  223.  
  224. ;----------------------------------
  225. BackNotByte PROC NEAR    ;#20 Background NOT write mode
  226.     JZ    @NoBackNot
  227.     RET
  228. @NoBackNot:
  229.     NOT    AH
  230.     MOV    ES:[DI],AH
  231.     NOT    AH
  232.     RET
  233. BackNotByte ENDP
  234.  
  235. ;----------------------------------
  236. BackNxorByte PROC NEAR    ;#21 Background NXOR write mode
  237.     JZ    @NoBackNor
  238.     RET
  239. @NoBackNxor:
  240.     NOT    AH
  241.     XOR    ES:[DI],AH
  242.     NOT    AH
  243.     RET
  244. BackNxorByte ENDP
  245.  
  246. ;----------------------------------
  247. BackNorByte PROC NEAR    ;#22 Background NOR write mode
  248.     JZ    @NoBackNor
  249.     RET
  250. @NoBackNor:
  251.     NOT    AH
  252.     MOV    ES:[DI],AH
  253.     NOT    AH
  254.     RET
  255. BackNorByte ENDP
  256.  
  257. ;----------------------------------
  258. BackNandByte PROC NEAR    ;#23 Background NAND write mode
  259.     JZ    @NoBackNand
  260.     RET
  261. @NoBackNand:
  262.     NOT    AH
  263.     MOV    ES:[DI],AH
  264.     NOT    AH
  265.     RET
  266. BackNandByte ENDP
  267.  
  268.