DS$ (SBX)

Aus C64-Wiki
Zur Navigation springenZur Suche springen
DS$ (SBX)
Syntax: DS$
Parameter
Einordnung
Typ: Systemvariable
Kontext: Floppy Fehlerkanal
Aufgabe: Fehlerkanal auslesen in Variable
Abkürzung: keine
Token: $65 $53 (101 83)
Verwandte Befehle
Keine

Dieser Artikel beschreibt das Simons'-Basic-Extension-Schlüsselwort DS$.

Mit der Benutzung der Systemvariablen DS$ wird der Floppy Fehlerkanal ausgelesen und in die Zeichenkette DS$ mit der Länge 30 übergeben. Nicht von der Fehlerausgabe benutzte Zeichen in DS$ werden mit Leerzeichen aufgefüllt.

DS$ führt intern ein OPEN 14,8,111 durch und greift damit auf die Floppy mit der Geräteadresse 8 zu. Durch ein vorangestelltes OPEN mit anderen Parametern können diese Vorgaben jedoch überschreiben werden.

Hinweise:

  • Die Sekundäradresse wird vom Betriebssystem der Floppy mit AND #$0F logisch verknüpft; damit wird aus 111 eine 15, die Nummer des Befehlskanals.
  • Eine Alternative zum Voranstellen von OPEN ist der SB2-Patch mit POKE $7E2B,186, durch den die DS$-Routine statt auf Gerät 8 nun auf das aktuelle Gerät (Nummer in 186=$BA) zugreift.

Beispiele[Bearbeiten | Quelltext bearbeiten]

Variablenzuweisung:

F$ = DS$

Direkte Verwendung in der Ausgabe:

PRINT DS$

Fehlerausgabe nach LOAD von Gerät 8 (bei Start mit RUN) oder 9 (starten mit RUN11):

10 D=8:GOTO 20
11 D=9
20 PRINTCHR$(147)"LOADING ..."
30 DF$="NIX":L=0:H=204:REM $CC00
40 SYS(57812)DF$,D:POKE780,0:POKE781,L:POKE782,H:SYS65493
50 GOSUB 30010
60 END

30000 PRINTAT(2,23){rvson};DS$;{rvsonff}:PAUSE3:RETURN
30010 OPEN14,D,15:PRINTAT(2,23)){rvson};DS$;{rvsonff}:PAUSE3:RETURN
  • Ab Zeile 30000 ist die einfache Variante der Fehler-Subroutine, wenn Gerät 8 benutzt wird.
  • Ab Zeile 30010 ist die erweiterte Variante mit vorangestelltem OPEN, die für beliebige Gerätenummern funktioniert.

Ähnliche Befehle[Bearbeiten | Quelltext bearbeiten]