HSAVE (SBX)

Aus C64-Wiki
Zur Navigation springenZur Suche springen
HSAVE (SBX)
Syntax: HSAVE <fn>,<dr>,<sa>,<name> [+",<ft>,W"]
Parameter
fn: Dateinummer
dr: Laufwerk
sa: Sekundäradresse
name: Dateiname
ft: Dateityp (U, S, P)
Einordnung
Typ: Anweisung
Kontext: Grafik
Aufgabe: Speichert den Grafikschirm mit Farben
Abkürzung: keine
Token: $65 $1a (101 26)
Verwandte Befehle
HLOAD

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

HSAVE speichert den hochauflösenden Grafikschirm auf Diskette oder Kassette. Das Dateiformat besteht aus einer 8000 Bytes großen Bitmap ab $E000 plus einem 2×1000 Bytes langen Farbteil, der byteweise abwechselnd das Video-RAM ab $C000 und das Farb-RAM ab $D800 aufsteigend in einem 250-Byte-Abstand enthält. Auf Diskette belegt der Grafikschirm damit 40 Blöcke. Eine Startadresse wird nicht mit gespeichert.

Der Befehl benötigt die gleichen Parameter, die auch der BASIC-Befehl OPEN verwendet:

  • eine logische Dateinummer <fn>, (1 bis 255)
  • eine Laufwerksangabe <dr>, 1 (Datasette) bzw. 8 bis 11 (Diskettenlaufwerke)
  • eine Sekundäradresse <sa>, wobei diese Zahl vom angeschlossenen Gerät abhängt; bei Floppys sind Werte von 2 bis 14 zulässig, eine Datasette benötigt hier 1 oder 2
  • ein Dateiname <name>, mit einer Maximallänge von 16 Zeichen
  • eine Angabe über den gewünschten Dateityp <ft> der Datei, "S" = SEQ, "U" = USR und "P" = PRG; da keine Startadresse gespeichert wird, ist hier der Wert "S" sinnvoll.
  • die letzte Angabe muss "W" (für "Write") lauten, sonst wird nicht gespeichert

Fehlermeldungen sind die gleichen, die SAVE bzw. OPEN verursachen würden.

  • Es ist nicht möglich, nur eine Bitmap oder nur eine Hires-Grafik mit Farbe aus dem Video-RAM (ohne das Farb-RAM) zu sichern.
  • Hintergrundfarbe und Rahmenfarbe werden nicht gespeichert. Da die Hintergrundfarbe bei Multicolour-Bildern wichtig sein kann, sollte sie in diesem Fall als Teil des Dateinamens mit gespeichert werden. Siehe dazu das Multicolour-Beispiel.


Beispiele[Bearbeiten | Quelltext bearbeiten]

Die folgenden Beispiele basierten auf dem im Simons' Basic Extension Handbuch angegebenen Programm.

Hires-Grafik

10 HIRES 15,0
20 FOR R=10 TO 90 STEP 5
30 CIRCLE 160,100,R,100-R,1
40 NEXT
50 WAIT 198,1
60 NRM:PRINT"SAVING ...";
70 HSAVE 2,8,2,"CIRCLES.PIC,S,W"

Multicolor-Grafik (mit Fehlerabfrage)

100 COLOUR 6,0
110 HIRES 15,0: MULTI 2,6,7
120 FOR R=10 TO 50 STEP 5
130 CIRCLE 80,50,R,50-R,1
140 CIRCLE 80,100,R,50-R,2
150 CIRCLE 80,150,R,50-R,3
160 NEXT
170 COLOUR 14,0:WAIT 198,1:COLOUR 6,0
180 HSAVE 2,8,2,"3CIRCLES 0,S,W"
190 COLOUR 6,15:NRM
200 PRINT CHR$(147)CHR$(144):REM BLACK
210 [[EXEC[[ FEHLER
220 IF FF>0 THEN PRINT FF;FB$
230 END
240 PROC FEHLER
250 OPEN 1,8,15
260 INPUT#1,FF,FB$,SP,SE
270 CLOSE 1
280 END PROC