BBS: Inland Empire Archive Date: 06-06-92 (21:19) Number: 145 From: MATT HART Refer#: NONE To: MANUEL GODINEZ Recvd: NO Subj: BIOS Conf: (2) Quik_Bas
MG> Does anyone have a routine to PRINT using the BIOS ? I'll like to make
Here's one. Kinda tricky. There's a BIOS routine that
will print an entire string, but some BIOS's don't support
it, including Tandy. This one prints and moves the cursor
and prints and moves, etc... It's in assembly - part of a
library package I'm trying to put together as shareware.
; BPRINT.ASM by Matt E. Hart
;
; PRINT replacement - uses BIOS calls
;
; DECLARE SUB BPrint(Strg$, BYVAL Attr)
;
; Strg$ : String to print
; Attr% : Attribute to print the string with
;
.MODEL MEDIUM,BASIC
.CODE
BPrint PROC Strg:Word, Attr:Word
MOV AX,0300h
XOR BX,BX
INT 10h ; Sets current cursor location into DX
MOV SI,Strg
MOV CX,[SI] ; CX has string length
CMP CX,0
JE B_Ending ; Zero length - string was null
MOV DI,[SI+2] ; DI has address of first byte
MOV BX,Attr ; BX has attribute
B_Top:
PUSH CX ; Save the counter
MOV CX,1 ; Set the number of characters to 1
MOV AH,09h
MOV AL,[DI] ; Character of string into AL
INT 10h ; BIOS Print it
POP CX ; Restore the number of characters
DEC CX ; Less 1
JZ B_Ending ; Last character - finish
INC DI ; NExt character
INC DL ; You can keep updating the Column
; the BIOS doesn't care if you go past the
; end, it'll wrap
MOV AH,02h
INT 10h ; Reset the Row/Column
JMP B_Top
B_Ending:
RET
BPrint ENDP
END
---
* Origin: Midnight Micro! V.32/REL (918)451-3306 (1:170/600)

Books at Amazon:
Back to BASIC: The History, Corruption, and Future of the Language
Hackers: Heroes of the Computer Revolution (including Tiny BASIC)
Go to: The Story of the Math Majors, Bridge Players, Engineers, Chess Wizards, Scientists and Iconoclasts who were the Hero Programmers of the Software Revolution
The Advent of the Algorithm: The Idea that Rules the World
Moths in the Machine: The Power and Perils of Programming
Mastering Visual Basic .NET