Diskussion:SCRLD (TSB)
Aus C64-Wiki
Zur Navigation springenZur Suche springenNicht 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 setztPOKE $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