summaryrefslogtreecommitdiffstats
path: root/private/mvdm/dos/v86/h/bios.inc
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--private/mvdm/dos/v86/h/bios.inc166
1 files changed, 166 insertions, 0 deletions
diff --git a/private/mvdm/dos/v86/h/bios.inc b/private/mvdm/dos/v86/h/bios.inc
new file mode 100644
index 000000000..3d757210c
--- /dev/null
+++ b/private/mvdm/dos/v86/h/bios.inc
@@ -0,0 +1,166 @@
+; BIOS Interface Macros - Version 1.0 - for Microsoft Macro Assembler 5.0
+; (C) Copyright Microsoft Corporation, 1987.
+
+.XCREF
+.XLIST
+IF1
+; 0Fh
+@GetMode MACRO
+ mov ah,0Fh
+ int 10h
+ ENDM
+; 00h
+@SetMode MACRO mode
+ mov al,mode
+ xor ah,ah
+ int 10h
+ ENDM
+; 0Bh
+@SetColor MACRO color
+ sub bh,bh
+ mov bl,color
+ mov ah,0Bh
+ int 10h
+ ENDM
+; 0Bh
+@SetPalet MACRO color
+ mov bh,1
+ mov bl,color
+ mov ah,0Bh
+ int 10h
+ ENDM
+; 05h
+@SetPage MACRO page
+ mov al,page
+ mov ah,05h
+ int 10h
+ ENDM
+; 03h
+@GetCur MACRO page
+ IFNB <page>
+ mov bh,page
+ ELSE
+ xor bh,bh
+ ENDIF
+ mov ah,03h
+ int 10h
+ ENDM
+; 02h
+@SetCurPos MACRO column,row,page
+ IFNB <column>
+ mov dl,column
+ ENDIF
+ IFNB <row>
+ mov dh,row
+ ENDIF
+ IFNB <page>
+ mov bh,page
+ ELSE
+ xor bh,bh
+ ENDIF
+ mov ah,02h
+ int 10h
+ ENDM
+; 01h
+@SetCurSz MACRO first,last
+ mov ch,first
+ mov cl,last
+ mov ah,01h
+ int 10h
+ ENDM
+; 08h
+@GetChAtr MACRO page
+ IFNB <page>
+ mov bh,page
+ ELSE
+ sub bh,bh
+ ENDIF
+ mov ah,08h
+ int 10h
+ ENDM
+; 09h
+@PutChAtr MACRO char,atrib,page,repeat
+ IFNB <char>
+ mov al,char
+ ENDIF
+ IFNB <atrib>
+ mov bl,atrib
+ ENDIF
+ IFNB <page>
+ mov bh,page
+ ELSE
+ xor bh,bh
+ ENDIF
+ IFNB <repeat>
+ mov cx,repeat
+ ELSE
+ mov cx,1
+ ENDIF
+ mov ah,09h
+ int 10h
+ ENDM
+; 0Ah
+@PutCh MACRO char,atrib,page,repeat
+ IFNB <char>
+ mov al,char
+ ENDIF
+ IFNB <atrib>
+ mov bl,atrib
+ ENDIF
+ IFNB <page>
+ mov bh,page
+ ELSE
+ xor bh,bh
+ ENDIF
+ IFNB <repeat>
+ mov cx,repeat
+ ELSE
+ mov cx,1
+ ENDIF
+ mov ah,0Ah
+ int 10h
+ ENDM
+; 06h and 07h
+@Scroll MACRO distance,atrib,upcol,uprow,downcol,downrow
+ IFDEF upcol
+ mov cl,upcol
+ ENDIF
+ IFDEF uprow
+ mov ch,uprow
+ ENDIF
+ IFDEF upcol
+ mov dl,upcol
+ ENDIF
+ IFDEF updownrow
+ mov dh,downrow
+ ENDIF
+ IFDEF atrib
+ mov bh,atrib
+ ELSE
+ mov bh,07h
+ ENDIF
+ IF distance LE 0
+ mov ax,0600h + (-(distance) AND 0FFh)
+ ELSE
+ mov ax,0700h + (distance AND 0FFh)
+ ENDIF
+ int 10h
+ ENDM
+; 08h, 06h, and 02h
+@Cls MACRO
+ @GetChAtr
+ mov bl,bh
+ mov bh,ah
+ sub cx,cx
+ mov dx,184Fh
+ mov ax,0600h
+ int 10h
+ mov bh,bl
+ sub dx,dx
+ mov ah,02h
+ int 10h
+ ENDM
+ENDIF
+.CREF
+.LIST
+