Laut Duden ist die deutsche Schreibweise „Makro”. Im Assemblercode wird jedoch „MACRO” geschrieben.
Funktionen für die Tastatur:
GETKBCHAR liest eine Tastatureingabe.
TSTKBCHAR prüft, ob eine Taste an der Tastatur betätigt wurde.
GETKBSHIFT liest den "Shift"-Status der Tastatur.
Funktionen für den Disketten-Controller:
DSKRESET initialisiert den Disketten-Controller.
GETDSKSTAT liest den Rückmeldestatus des letzten ausgeführten Diskettenkommandos.
DSKREAD liest von der Diskette.
DSKWRITE schreibt auf die Diskette.
DSKVERFY verifiziert die Diskette.
DSKFORMAT formatiert die Diskette.
Funktionen für den Drucker:
PRNTCHAR schickt ein Zeichen zum Drucker.
INIPRNTR initialisiert den Drucker.
PRNTSTAT liest den Druckerstatus.
Funktionen für den Video-Controller:
SETCRTMODE stellt den Video-Modus ein. Der Modus wird als Ziffer angegeben.
SCRTMODE stellt den Video-Modus ein. Der Modus kann symbolisch angegeben werden.
SETCURTYPE stellt den Cursortyp ein.
SETCURPOS positioniert den Cursor.
GETCURPOS ermittelt die Position des Cursors.
GETPENPOS ermittelt die Position des Lichtstiftes (light pen).
SCROLLUP schiebt die Bildschirmseite aufwärts.
SCROLLDOWN schiebt die Bildschirmseite abwärts.
READATRCHR liest Attribut und Zeichen an der aktuellen Cursorposition.
WRITEATRCHR schreibt Attribut und Zeichen an der aktuellen Cursorposition.
WRITECHAR schreibe Anzahl Zeichen ab der aktuellen Cursorposition.
SETPALETTE setzt die Farbpalette.
WRITEDOT schreibt einen Pixel (Dot) auf den Bildschirm.
READDOT liest eine Pixel (Dot) vom Bildschirm.
TELEWRITE schreibt im Fernschreibmodus.
VIDIOSTATE liest den Videostatus.
Funktionen zur Systemausstattung:
GETMEMSIZE ermittelt die Speichergröße in 1K-Schritten.
EQUIPMENT ermittelt die am System angeschlossenen Geräte (Devices).
;Diese Makros unterstuetzen Aufrufe von einigen BIOS-Funktionen. ;Sie bilden dabei die vollstaendige Schnittstelle zur jeweiligen BIOS-Funktion ;LDREG ist ein interner Makro, der von den anderen Makros benutzt wird. ;Er erlaubt die Angabe eines Registers oder Literals als Makroparameter. ;Falls beide Parameter identisch sind, wird kein Code generiert. ldreg macro destreg,source ifdif <destreg>,<source> mov destreg,source endif ;TSTNSET vergleicht die Werte der ersten beiden Felder. Sind sie gleich, wird ;der dritte Parameter in das AL-Register geodert. Siehe Makro IRS232A tstnset macro src1,src2,orval ifidn <src1>,<src2> or al,orval endif endm ;IRS232 generiert einen Initialisierungsaufruf für den RS232-Port irs232 macro initparm,linenum ldreg dx,linenum ldreg al,initparm mov ah,0 int 14h endm ;IRS232A generiert eine Initialisierungsaufruf für den RS232-Port. irs232a macro baudrate,parity,stopbits,datalen,linenum ldreg dx,linenum sub ax,ax ; tstnset baudrate,110,00000000b tstnset baudrate,150,00100000b tstnset baudrate,300,01000000b tstnset baudrate,600,01100000b tstnset baudrate,1200,10000000b tstnset baudrate,2400,10100000b tstnset baudrate,4800,11000000b tstnset baudrate,9600,11100000b ; tstnset parity,none,00000000b tstnset parity,odd,00001000b tstnset parity,even,00011000b ; tstnset stopbits,1,00000000b tstnset stopbits,2,00000100b tstnset datalen,7,00000010b tstnset datalen,8,00000011b int 14h endm ;SENDCHR sendet ein Zeichen ueber den RS232-Anschluss sendchr macro char,linenum ldreg dx,linenum ldreg al,char mov ah,1 int 14h endm ;RECVCHR empfängt ein Zeichen ueber den RS232-Anschluss recvchr macro linenum ldreg dx,linenum mov ah,2 int 14h endm ;COMSTAT liest den Status des RS232-Ports comstat macro linenum ldreg dx,linenum mov ah,3 int 14h endm ;GETKBCHAR liest eine Zeichen von der Tatstaur ein getkbchar macro mov ah,0 int 16h endm ;TSTKBCHAR prüft, ob ein Zeichen von der Tastatur zum Lesen ansteht tstkbchar macro mov ah,1 int 16h endm ;GETKBSHIFT liest den Shift-Status der Tastatur getkbshift macro mov ah,2 int 16h endm ;DSKRESET initialisiert den Diskettencontroller dskreset macro mov ah,0 int 13h endm ;GETDSKSTAT liest den Rückmeldestatus des letzten ausgeführten Diskettenkommandos getdskstat macro mov ah,1 int 13h endm ;DSKREAD liest von der Diskette dskread macro drive,EQUs,track,sector,numsecs,buffoff ldreg dl,drive ldreg dh,EQUs ldreg ch,track ldreg cl,sector ldreg al,numsecs ldreg bx,buffoff mov ah,2 int 13h endm ;DSKWRITE schreibt auf die Diskette dskwrite macro drive,EQUs,track,sector,numsecs,buffoff ldreg dl,drive ldreg dh,EQUs ldreg ch,track ldreg cl,sector ldreg al,numsecs ldreg bx,buffoff mov ah,3 int 13h endm ;DSKVERFY verifiziert die Diskette dskverfy macro drive,EQUs,track,sector,numsecs,buffoff ldreg dl,drive ldreg dh,EQUs ldreg ch,track ldreg cl,sector ldreg al,numsecs ldreg bx,buffoff mov ah,4 int 13h endm ;DSKFORMAT formatiert die Diskette dskformat macro drive,EQUs,track,sector,numsecs,buffoff ldreg dl,drive ldreg dh,EQUs ldreg ch,track ldreg cl,sector ldreg al,numsecs ldreg bx,buffoff mov ah,5 int 13h endm ;PRNTCHAR schickt ein Zeichen zum Drucker prntchar macro char,printer ldreg al,char ldreg dx,printer mov ah,0 int 17h endm ;INIPRNTR initialisiert den Drucker iniprntr macro printer ldreg dx,printer mov ah,1 int 17h endm ;PRNTSTAT liest den Druckerstatus prntstat macro printer ldreg dx,printer mov ah,2 int 17h endm ;SETCRTMODE stellt den Video-Mous ein. Der Modus wird durch eine Ziffer ;angegeben, vergl. im nächsten Macro setcrtmode macro modeval ldreg al,modeval mov ah,0 int 10h endm ;SCRTMODE stellt den Video-Mous ein. ;Der Modus kann symbolisch angegeben werden scrtmode macro modeval sub al,al ; tstnset modeval,bw40x25,0 tstnset modeval,color40x25,1 tstnset modeval,bw80x25,2 tstnset modeval,color80x25,3 tstnset modeval,color320x200,4 tstnset modeval,bw320x200,5 tstnset modeval,bw640x200,6 mov ah,0 int 10h endm ;SETCURTYPE stellt den Cursotyp ein setcurtype macro start,end ldreg ch,start ldreg cl,end mov ah,1 int 10h endm ;SETCURPOS positioniert den Cursor setcurpos macro row,col,crtpage ldreg dh,row ldreg dl,col ldreg bh,crtpage mov ah,2 int 10h endm ;GETCURPOS ermittelt die Position des Cursors getcurpos macro crtpage ldreg bh,crtpage mov ah,3 int 10h endm ;GETPENPOS ermittelt die Position des Lichtstiftes (light pen) getpenpos macro mov ah,4 int 10h endm ;SETPAGE setzt die Anzeigeseite setpage macro crtpage ldreg al,crtpage mov ah,5 int 10h endm ;SCROLLUP schiebt die Bildschirmseite aufwärts scrollup macro lines,ulcrow,ulccol,lrcrow,lrccol,attr ldreg al,lines ldreg ch,ulcrow ldreg cl,ulccol ldreg dh,lrcrow ldreg dl,lrccol ldreg bh,attr mov ah,6 int 10h endm ;SCROLLDOWN schiebt die Bildschirmseite abwärts scrolldown macro lines,ulcrow,ulccol,lrcrow,lrccol,attr ldreg al,lines ldreg ch,ulcrow ldreg cl,ulccol ldreg dh,lrcrow ldreg dl,lrccol ldreg bh,attr mov ah,7 int 10h endm ;READATRCHR liest Attribut und Zeichen an der aktuellen Cursoposition readatrchr macro page ldreg bh,page mov ah,8 int 10h endm ;WRITEATRCHR schreibt Attribut und Zeichen an der aktuellen Cursoposition writeatrchr macro char,attr,count,page ldreg al,char ldreg bl,attr ldreg cx,count ldreg bh,page mov ah,9 int 10h endm ;WRITECHAR schreibe Anzahl Zeichen ab der aktuellen Cursorposition writechar macro char,count,page ldreg al,char ldreg cx,count ldreg bh,page mov ah,10 int 10h endm ;SETPALETTE setzt die Farbpalette setpalette macro colorid,colorval ldreg bh,colorid ldreg bl,colorval mov ah,11 int 10h endm ;WRITEDOT schreibt einen Pixel (Dot) auf den Bildschirm writedot macro row,col,color ldreg dx,row ldreg cx,col ldreg al,color mov ah,12 int 10h endm ;READDOT liest eine Pixel (Dot) vom Bildchirm readdot macro row,col ldreg dx,row ldreg cx,col mov ah,13 int 10h endm ;TELEWRITE schreibt im Fernschreibmodus ;Carriage Return, Linefeed, Backspace und Klingel werden als ;Kommandos betrachtet telewrite macro char,color,page ldreg al,char ldreg bl,color ldreg bh,page mov ah,14 int 10h endm ;VIDIOSTATE liest den Videostatus vidiostate macro mov ah,15 int 10h endm ;GETMEMSIZE ermittelt die Speichergröße in 1K-Schritten getmemsize macro int 12h endm ;EQUIPMENT ermittelt die am System angeschlossenen Geräte (Devices) equipment macro int 11h endm