Treiber unter RBASIC
Transcrição
Treiber unter RBASIC
VEB ROBOTRON-Meßelektronik "Otto Schön" Dresden PSF 211 DRESDEN 8012 Stand: 13.02.1990 TRBASIC.TXT Das Nachladen von Treiberprogrammen am Bildungscomputer unter RBASIC Das Softwarepaket zum Nachladen von Treiberprogrammen unter SCPX 5105 ist in der Datei TR.TXT ausführlich beschrieben. Hier soll nur auf die wichtig sten Unterschiede zwischen den Treibern für die Betriebssysteme SCPX 5105 und RBASIC eingegangen werden. Das beschriebene Softwarepaket wurde um die Datei TBR.REL erweitert. Die anderen Dateien wurden angepaßt, sodaß jetzt mit dem Softwarepaket nachladbare Treiber für SCPX 5105 und RBASIC erstellt werden können. Die Unterscheidung, für welches Betriebssystem der Treiber übersetzt werden soll, erfolgt im Kommandofile durch Bedienereingabe. Nach der Übersetzung haben SCP-Treiber den Typ .COM und RBASIC-Treiber den Typ .RMC. Es besteht die Möglichkeit, einen Treiber so zu programmieren, daß er für beide Betriebssysteme übersetzt werden kann. Dann darf nur auf Unterpro gramme und Betriebssystemadressen zugegriffen werden, die in beiden Betriebssystemen die gleiche Bedeutung haben. Das Nachladen eines Treibers im RBASIC erfolgt mit einem kleinen BASICHilfsprogramm. Die entsprechenden Anweisungen können auch in ein größeres BASIC-Programm eingefügt werden (z.B. AUTOEXEC.BAS). Der Dateiname des gewünschten Treibers ist jeweils in Zeile 50 einzutragen. Folgende Anweisungen sind abzuarbeiten: 10 20 30 40 50 60 70 80 90 100 110 120 200 SCREEN 9: CLEAR 256,&HC800: ' Stand: 14.02.90 FS%=&HF58C: FR=PEEK(FS%)+256*PEEK(FS%+1) IF FR>=33536! THEN FM$="BASIC-Prog. zu lang!": GOTO 200 OPEN"name.RMC"AS#1: FIELD#1,1 AS KB$,2 AS AN$,2 AS EN$ GET#1: AN%=CVI(AN$): EN%=CVI(EN$): CLOSE: LA%=EN%-AN% IF LA%>FRE(0)-32 THEN FM$="Treiber zu lang!": GOTO 200 SY%=&HFBB8: GR=PEEK(SY%)+256*PEEK(SY%+1) ER%=&HFBB4: ES=PEEK(ER%)+256*PEEK(ER%+1) IF GR-ES<LA%/2 THEN FM$="MC-Bereich zu klein!": GOTO 200 BLOAD"name.RMC",R GR=PEEK(SY%)+256*PEEK(SY%+1)-1: CLEAR 256,GR END PRINT FM$ Erklärung zu den Programmzeilen: 10 20 Hier wird Platz geschaffen für den nachzuladenden Treiber. Die Variable FS% wird mit der System-Adresse FSLPTR belegt. FR ent spricht anschließend dem Ende des BASIC-Programms. 30 Test, ob das BASIC-Programm die Adresse 8400H (33536 + Reserve) überschreitet. Wenn ja, dann Abbruch mit "BASIC-Prog. zu lang!", weil der Treiberbooter ab 8400H geladen wird. 40-60 Test, ob der Treiberbooter in den Freibereich des BASIC-Interpreters paßt. Wenn nicht, dann Abbruch mit "Treiber zu lang!". Nach dieser Fehlermeldung muß der Freibereich vergrößert werden durch einen größeren zweiten Parameter der CLEAR-Anweisung in Zeile 10. 70 Die Variable SY% wird mit der System-Adresse SYSANF belegt. GR ent spricht anschließend dem Anfang des Systembereiches. 80 Die Variable ER% wird mit der System-Adresse EOFRAM belegt. ES ent spricht anschließend dem Ende des BASIC-Bereiches. 90 Test, ob der Treiber in den MC-Bereich hinter dem BASIC-Interpreter paßt. Wenn nicht, dann Abbruch mit "MC-Bereich zu klein!". Nach dieser Fehlermeldung muß der MC-Bereich vergrößert werden durch einen kleineren zweiten Parameter der CLEAR-Anweisung in Zeile 10. 100 Laden und Starten des Treiberbooters. Er wird ab Adresse 8400H gela den und danach gestartet. Der Treiber wird von ihm in den MC-Bereich hinter dem BASIC-Bereich geladen. 110 Der zuvor reservierte Speicherbereich wird bis vor den Anfang des Treibers wieder freigegeben. 120 Programmende. Hier kann das Starten von Nutzerprogrammen eingefügt werden. 200 Ausgabe der Fehlermeldungen und Ende. Folgende Dateien gehören zum Softwarepaket TRBEISP.MAC TR.SUB TRA0.MAC TRA0701.MAC TRVOR.MAC TRNACH.MAC TSR.REL TBR.REL CEN1.MAC Vorlage zum Erstellen eines Anwendertreibers Kommandofile zum vollständigen Übersetzen eines Treibers Steuerfile zur Übersetzung auf Adresse 0000H Steuerfile zur Übersetzung auf Adresse 0701H Vorspann für bedingte Übersetzung Nachspann für bedingte Übersetzung Treiberrahmenprogramm für SCPX 5105 Treiberrahmenprogramm für RBASIC Beispieltreiber für parallele Ausgabe über die Buchse INPUT/OUTPUT 1 Folgende Dienstprogramme sind erforderlich TP.COM TP*.OVR SUBM.COM PIP.COM LOE.COM ASM.COM LINK.COM Textprozessor (für BIC Version 1/3A) Überlagerungsdateien für Textprozessor Dienstprogramm zum Abarbeiten einer Kommandodatei Kopierprogramm Programm zum Überspringen von Kommandozeilen einer Kommandodatei Assembler Programmverbinder -------------------------------0000 JP WBOOTE 0003 DEFB nn 0004 DEFB mm ;Sprung zu Warmstart BIOS ;IO-Byte ;aktuel in