TITLE Beispiel fuer nachladbaren Treiber ;********************************************* ;FILE :TRBEISP.MAC ;AUTOR:Lutz Elssner, Robotron-Messelektronik "Otto Schoen" Dresden ;STAND:17.11.89 ;--------------------------------------------- .Z80 .TFCOND ;es werden nur die erfuellten Bedingungen in die ;Druckliste aufgenommen (Aufruf mit /L) ;bei Aufruf mit /L/X wird die komplette Liste erzeugt ;------------------------ INCLUDE TRA.MAC ;Uebersetzung auf 0 oder 0701H festlegen ;------------------------ SEG EQU 0 ;0 Treiber enthaelt keine SEGMENT-Pseudooperationen ;1 Treiber besteht aus CSEG und DSEG ; FUNKT EQU 1 ;0 Treiber ohne Parameter, ohne Eintrag in BIOS-Tab. ;1 zeichenweiser E/A-Treiber ; mit Eintrag in BIOS-Tabelle ;wird vom Treiberrahmen (TRR) ausgewertet (GLOBAL) ; FRES EQU 1 ;0 Meldung, wenn Kommandos mit EXT nachgeladen ;1 automatische Ausfuehrung des CCP-Kommandos RES ;wird vom Treiberrahmen (TRR) ausgewertet (GLOBAL) ; MINADR EQU 0C000H ;kleinste Anfangsadresse fuer residenten Treiber ;Interruptroutinen duerfen nicht unter C000 stehen ;wird vom Treiberrahmen (TRR) ausgewertet (GLOBAL) ; LOWADR EQU 1 ;0 Treiberbeginn wird auf xx00H gelegt ;1 Treiber wird lueckenlos unter TPA gelegt ; SCPV EQU 020FH ;0000H kein Versionstest CGGV EQU 0201H ;sonst Test der Versionsnummer im Treiberrahmen DSEV EQU 020FH ;wird vom Treiberrahmen (TRR) ausgewertet (GLOBAL) ; CGGAD EQU 7F44H ;Adresse der Zeichenkette mit Versionsnummer im ROM DSEAD EQU 4148H ;CGG:Bank 0 / DSE:Bank 1 / Beispiel: '2.01' ;wird vom Treiberrahmen (TRR) ausgewertet (GLOBAL) ; ANZ EQU 1 ;0 alle Bildschirmausgaben vom TRR werden unterdrueckt ;1 Anzeige der Anfangs-, Endadresse und Meldungen ; IF SEG ;nur gueltig, wenn SEG = 1 DATEN EQU 1000H ;hier ist der Wert CODEND oder groesser ;von Hand einzutragen ;stellt Datenanfang zur Laufzeit dar ;CODEND ist nach LINK der .SYM - Datei zu entnehmen ENDIF ; BIORSL EQU 0FD00H ;Anfang der BIOS-Sprungleiste im RAM EOFRAM EQU 0FBB4H ;Adresse, wo Ende des RBASIC-Anwenderspeichers steht SYSANF EQU 0FBB8H ;Adresse, wo Anfang des RBASIC-Betriebssystems steht ;------------------------ INCLUDE TRVOR.MAC ;============================================================================ ;Initialisierung ;dieser Programmteil wird nur beim Laden des Treibers abgearbeitet ;und nicht mit resident gemacht (Speicherplatz sparen) ;hier Initialisierung einfuegen (mindestens RET) RET ;============================================================================ ;residenter Programmteil ;dieser Programmteil bleibt nach dem Laden im Speicher resident, ;wird aber beim Laden ebenfalls ab Marke RESBEG abgearbeitet (A=FF) ;ausserdem erfolgt hier der Aufruf des Treibers (A<>FF) RESBEG: INC A ;Test, ob Initialisierung gefordert JR NZ,BEGINN ;nein ;A=FF Initialisierung Š;hier Initialisierung einfuegen (mindestens RET) RET ;-------------------------------- BEGINN: ;hier Anwenderprogramm eingefuegen RET ;-------------------------------- INCLUDE TRNACH.MAC ;-------------------------------- ENDE: END