Diskussion:SCRLD (TSB)

Aus C64-Wiki
Zur Navigation springenZur Suche springen

Nicht mehr aktueller Inhalt[Quelltext bearbeiten]

Die folgenden Abschnitte wurden durch aktuellere Inhalte ersetzt. Die sind bis auf weiteres aber auch noch gültig.

Tipps und Tricks[Quelltext bearbeiten]

Die folgenden Tipps funktionieren durch Patchen der SCRLD/SCRSV-Routine mit Hilfe von POKEs. Die folgenden Speicherstellen sind dabei von Bedeutung:

Poke Bedeutung Default
$B1C1 Anzahl der 256-Byte-Blöcke für Bitmap 32 (32*256 = 8*1024 = 8K)
$B218 High-Byte des Farbbereichs 1 (Farb-RAM) $D8
$B21C High-Byte des Farbbereichs 2 (Video-RAM) $04
$B220 High-Byte des Bitmap-Bereichs $E0
$B1D5 Subroutine für Verarbeitung des Farbbereichs 1 $20 = JSR
  • Es ist wie bisher möglich, eine Grafik zu laden, die mit SCRSV in zwei Dateien - einer mit der Bitmap, einer anderen mit den Farben - gespeichert wurde. Siehe dazu das Beispiel Grafik laden aus zwei Dateien.
  • Ein Textbildschirm kann auch in den alternativen Bildschirmspeicher bei $CC00, der nach MEM aktiv ist, geladen werden mit Hilfe von POKE $B21C,$CC vor dem SRCLD. Nach dem Laden setzt POKE $B21C,4 SCRLD/SCRSV wieder auf den normalen Bildschirm ab $0400 zurück.
  • Mit POKE $B1D5,44 (44=$2C BIT) kann man die Verarbeitung des Farbbereichs 1 (Farb-RAM) unterdrücken. So wird es z.B. möglich, ein Bild im Format von Hi-Eddi+ zu laden. Der Wert in $B1D5 muss wieder auf 32=$20 (JSR) zurückgesetzt werden. Siehe dazu das Beispiel Hi-Eddi+ Grafik in TSB laden.
  • Es ist möglich, einen Speicherbereich von wählbarer Grö0e (in 256-Byte-Blöcken) - z.B. ein Zeichensatz - an einen beliebigen frei zugänglichen Speicherplatz zu laden. Ein 2K großer Zeichensatz wird an die Adresse $3000 geladen mit POKE $B220,$30: POKE $B1B5,8: SCRLD 3,DR,3,“NAME“: POKE $B220,$E0: POKE $B1B5,32.

Beispiele[Quelltext bearbeiten]

Textbildschirm laden[Quelltext bearbeiten]

100 PRINT CHR$(147)
110 SCRLD 2,8,2,"TRICOLOR-TSB.SRC,P,R"
120 FEHLER
130 IF FF>0 THEN PRINT FF;FB$:END
140 WAIT 198,1:END
150 PROC FEHLER
160 OPEN 1,8,15
170 INPUT#1,FF,FB$,SP,SE
180 CLOSE 1
190 END PROC

Lädt einen mit SCRSV (TSB) gespeicherten Textbildschirm. Eine Unterroutine zum Auslesen des Fehlerkanals ist eingefügt.

Bitmap laden[Quelltext bearbeiten]

100 HIRES 15,0
110 SCRLD 3,8,3,"BITMAP3,P,R"
120 FEHLER
130 IF FF>0 THEN NRM:PRINT FF;FB$:END
140 COLOUR 12,12: WAIT 198,1
145 COLOUR 11,12: NRM: END
150 PROC FEHLER
160 OPEN 1,8,15
170 INPUT#1,FF,FB$,SP,SE
180 CLOSE 1
190 END PROC

Grafik mit Farben laden[Quelltext bearbeiten]

100 HIRES 15,0
110 SCRLD 3,8,5,"HIRES5,P,R"
120 FEHLER
130 IF FF>0 THEN NRM:PRINT FF;FB$:END
140 COLOUR 12,12: WAIT 198,1
145 COLOUR 11,12: NRM: END
150 PROC FEHLER
160 OPEN 1,8,15
170 INPUT#1,FF,FB$,SP,SE
180 CLOSE 1
190 END PROC

Grafik laden aus zwei Dateien[Quelltext bearbeiten]

1550 PROC TSBLOAD
1560 CSET 2: MULTI ON
1565 SCRLD 1,I8,3,"IMAGE *"
1570 POKE $B21C,$C0
1575 SCRLD 1,I8,2,"IMAGETOOLS"
1580 COLOUR BG
1585 POKE $B21C,4
1595 END PROC

Lädt eine mit SCRSV (TSB) gespeicherte Multicolor-Grafik samt Farben unter dem angegebenen Namen in zwei Dateien von Diskette. Die Variable BG enthält die Nummer der Hintergrundfarbe aus dem Dateinamen "IMAGE"+STR$(BG).

Hi-Eddi+ Grafik in TSB laden[Quelltext bearbeiten]

100 HIRES 15,0
110 POKE $B1D5,44:REM KEIN FARB-RAM
120 SCRLD 3,8,5,"HIRES5,P,R"
130 POKE $B1D5,32:REM RESTORE JSR
140 FEHLER
150 IF FF>0 THEN NRM:PRINT FF;FB$:END
160 COLOUR12,12:WAIT 198,1
170 COLOUR11,12:NRM:END
180 PROC FEHLER
190 OPEN 1,8,15
200 INPUT#1,FF,FB$,SP,SE
210 CLOSE 1
220 END PROC