home *** CD-ROM | disk | FTP | other *** search
/ Piper's Pit BBS/FTP: ibm 0020 - 0029 / ibm0020-0029 / ibm0028.tar / ibm0028 / MSWASS05.ZIP / SAMPLES / INCLUDE / BIOS.IN$ / BIOS.bin
Encoding:
Text File  |  1991-02-28  |  2.9 KB  |  175 lines

  1. ; BIOS Interface Macros - Version 1.2 - for Microsoft Macro Assembler 6.0
  2. ; (C) Copyright Microsoft Corporation, 1987,1988,1989,1990
  3.  
  4. ; 0Fh
  5. @GetMode MACRO
  6.     mov   ah, 0Fh
  7.     int   10h
  8. ENDM
  9.  
  10. ; 00h
  11. @SetMode MACRO mode
  12.     mov   al, mode
  13.     xor   ah, ah
  14.     int   10h
  15. ENDM
  16.  
  17. ; 0Bh
  18. @SetColor MACRO color
  19.     sub   bh, bh
  20.     mov   bl, color
  21.     mov   ah, 0Bh
  22.     int   10h
  23. ENDM
  24.  
  25. ; 0Bh
  26. @SetPalette MACRO color
  27.     mov   bh, 1
  28.     mov   bl, color
  29.     mov   ah, 0Bh
  30.     int   10h
  31. ENDM
  32.  
  33. ; 05h
  34. @SetPage MACRO pagenum
  35.     mov   al, pagenum
  36.     mov   ah, 05h
  37.     int   10h
  38. ENDM
  39.  
  40. ; 03h
  41. @GetCsr MACRO pagenum
  42.     IFNB <pagenum>
  43.         mov   bh, pagenum
  44.     ELSE
  45.         xor   bh, bh
  46.     ENDIF
  47.     mov   ah, 03h
  48.     int   10h
  49. ENDM
  50.  
  51. ; 02h
  52. @SetCsrPos MACRO column, row, pagenum
  53.     IFNB <column>
  54.         mov   dl, column
  55.     ENDIF
  56.     IFNB <row>
  57.         mov   dh, row
  58.     ENDIF
  59.     IFNB <pagenum>
  60.         mov   bh, pagenum
  61.     ELSE
  62.         xor   bh, bh
  63.     ENDIF
  64.     mov   ah, 02h
  65.     int   10h
  66. ENDM
  67.  
  68. ; 01h
  69. @SetCsrSize MACRO first, last
  70.     mov   ch, first
  71.     mov   cl, last
  72.     mov   ah, 01h
  73.     int   10h
  74. ENDM
  75.  
  76. ; 08h
  77. @GetCharAtr MACRO pagenum
  78.     IFNB <pagenum>
  79.         mov   bh, pagenum
  80.     ELSE
  81.         sub   bh, bh
  82.     ENDIF
  83.     mov   ah, 08h
  84.     int   10h
  85. ENDM
  86.  
  87. ; 09h
  88. @PutCharAtr MACRO chr, atrib, pagenum, loops
  89.     IFNB <chr>
  90.         mov   al, chr
  91.     ENDIF
  92.     IFNB    <atrib>
  93.         mov   bl, atrib
  94.     ENDIF
  95.     IFNB <pagenum>
  96.         mov   bh, pagenum
  97.     ELSE
  98.         xor   bh, bh
  99.     ENDIF
  100.     IFNB <loops>
  101.         mov   cx, loops
  102.     ELSE
  103.         mov   cx, 1
  104.     ENDIF
  105.     mov   ah, 09h
  106.     int   10h
  107. ENDM
  108.  
  109. ; 0Ah
  110. @PutChar MACRO chr, atrib, pagenum, loops
  111.     IFNB <chr>
  112.         mov   al, chr
  113.     ENDIF
  114.     IFNB    <atrib>
  115.         mov   bl, atrib
  116.     ENDIF
  117.     IFNB <pagenum>
  118.         mov   bh, pagenum
  119.     ELSE
  120.         xor   bh, bh
  121.     ENDIF
  122.     IFNB <loops>
  123.         mov   cx, loops
  124.     ELSE
  125.         mov   cx, 1
  126.     ENDIF
  127.     mov   ah, 0Ah
  128.     int   10h
  129. ENDM
  130.  
  131. ; 06h and 07h
  132. @Scroll MACRO distance:REQ, atrib:=<07h>, upcol, uprow, dncol, dnrow
  133.     IFNB <upcol>
  134.         mov   cl, upcol
  135.     ENDIF
  136.     IFNB <uprow>
  137.         mov   ch, uprow
  138.     ENDIF
  139.     IFNB <dncol>
  140.         mov   dl, dncol
  141.     ENDIF
  142.     IFNB <dnrow>
  143.         mov   dh, dnrow
  144.     ENDIF
  145.     mov   bh, atrib
  146.     IF distance LE 0
  147.         mov   ax, 0600h + (-(distance) AND 0FFh)
  148.     ELSE
  149.         mov   ax, 0700h + (distance AND 0FFh)
  150.     ENDIF
  151.     int   10h
  152. ENDM
  153.  
  154. ; 08h, 06h, and    02h
  155. @Cls MACRO pagenum
  156.     IFNB <pagenum>
  157.         IFDIFI <pagenum>, <bh>
  158.             mov   bh, pagenum
  159.         ENDIF
  160.     ELSE
  161.         sub   bh, bh
  162.     ENDIF
  163.     mov   ah, 08h
  164.     int   10h
  165.     mov   bh, ah
  166.     sub   cx, cx
  167.     mov   dx, 324Fh
  168.     mov   ax, 0600h
  169.     int   10h
  170.     mov   bh, bl
  171.     sub   dx, dx
  172.     mov   ah, 02h
  173.     int   10h
  174. ENDM
  175.