PofoWiki

Die ultimative Informationsquelle zum ATARI Portfolio

Benutzer-Werkzeuge

Webseiten-Werkzeuge


software:diy:assembler:int5fh

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.


Vorhergehende Überarbeitung
Nächste Überarbeitung
software:diy:assembler:int5fh [24/02/2007 00:02] – internen Link eingefügt. uxt
Zeile 1: Zeile 1:
 +====== PORTGR.EXE ======
 +Portfolio Grafik-Treiber von Mark Reeves.\\
 +PORTGR.EXE installiert ein TSR welches eienen Interrupt 5Fh zur Verfügung stellt. Diesen Interrupt kann man in z.B. Assembler oder BASIC aufrufen um folgende Grafik-Funktionen zu realisieren:\\
 + Pixel setzten, Pixel lesen, Linie zeichnen, Viereck zeichnen, Kreis Zeichnen und Fläche Füllen.
 +Dies ist eine große Entlastung für den Programmierer und den Code, allerdings funktionieren die damit erstellten Programme (BAS, COM, EXE...) nur solange der Treiber installiert ist.\\
 +
 +PORTGR.EXE ist 4352 KB groß und braucht 8KB RAM, das Programm hat einen internen Stack von 3KB der beim Füllen von Flächen verwendet wird.\\
 +
 +Alle Aufrufe werden durch den Interrupt 5Fh durchgeführt, die gewünschten Werte müssen beim Aufruf in den Registern stehen.\\
 +
 +Werte für die X-Koordinate müssen zwischen 1 und 240 und Werte für die Y-Koordinate zwischen 1 und 64 liegen, Werte die darunter oder darüber liegen werden auf das Maximum oder Minimum beschränkt.\\
 +
 +^^Register^Bedeutung^
 +|AH|Funktionsaufruf|
 +| |00h  Versionsnummer ausgeben (in AX)|
 +| |01h  Grafik-Modus|
 +| |02h  Text-Modus|
 +| |03h  Pixel setzten|
 +| |04h  Pixel lesen|
 +| |05h  Linie Zeichnen|
 +| |06h  Horizontale zeichnen (schneller als 05h)|
 +| |07h  Vertikale zeichnen (schneller als 05h)|
 +| |08h  Viereck Zeichnen|
 +| |09h  Kreis Zeichnen|
 +| |0Ah  Fläche füllen|
 +| |FEh  Lese Tastaturpuffer (0,1)|
 +| |FFh  Taste abfragen|
 +|AL|Pixel-Wert (0,1)|
 +|BH|X-Koordinate 1 (X1=1...240)|
 +|BL|Y-Koordinate 1 (Y1=1...64)|
 +|CH|X-Koordinate 2 (X2=1...240)|
 +|CL|Y-Koordinate 2 (Y2=1...64)|
 +|DL|Kreis-Radius|
 +
 +Ergebnisse (wenn AH=0,FEh oder FFh) stehen nach Rückkehr in AL oder AX, etwaige Fehler-Codes in BX.\\
 +BX=0: Funktion durchgeführt\\
 +BX=1: Stapelüberlauf, Funktion abgebrochen.\\
 +
 +Das Spiel [[software:vorstellung:spiele:spieleuebersicht|PUNKMAN JR]] von Robert Quezada wurde unter Verwendung von PORTGR.EXE programmiert. Das Spiel funktioniert also nur, wenn nach dem letzten Warmstart PORTGR.EXE installiert wurde.\\
 +
 +Beispiel (ASM):\\
 +Zeichnet ein Quadrat in der Mitte des Bildschirms:
 +  MOV AH,08h ;Viereck Zeichnen
 +  MOV AL,1 ;Pixel-Farbe
 +  MOV BH,98 ;X1 (Mitte minus 22)
 +  MOV BL,10 ;Y1 (Mitte minus 22)
 +  MOV CH,142 ;X2 (Mitte plus 22)
 +  MOV CL,54 ;Y2 (Mitte plus 22)
 +  INT 5Fh        ;PORTGR
 +Der Bildschirm muß sich natürlich im Grafik-Modus befinden, dies kann man mit dem INT 5Fh selbst,
 +  MOV AH,1 ;Grafik-Modus
 +  INT 5Fh               ;PORTGR
 +oder mit dem BIOS-INT 10h
 +  MOV AH,0 ;Bilschirm-Modus definieren
 +  MOV AL,8 ;Grafik-Modus
 +  INT 10h
 +erledigen.
 +
  
software/diy/assembler/int5fh.txt · Zuletzt geändert: 24/02/2007 00:02 (Externe Bearbeitung)