Welcome to Schneider / Amstrad CPC Forum. Please login or sign up.

28. April 2024, 15:55:06

Login with username, password and session length

Shoutbox

TFM

2024-04-08, 20:42:44
Happy Sonnenfinsternis!  :)

TFM

2024-01-15, 17:06:57
Momentan billige Farbbänder auf Ebay für PCW

Devilmarkus

2023-07-09, 10:37:40
Zweiter 👋😂🤣

TFM

2023-06-13, 14:21:49
Sommerloch!

TFM

2023-05-30, 17:00:20
Erster ;-)

Recent

Members
  • Total Members: 221
  • Latest: scorp73
Stats
  • Total Posts: 11,721
  • Total Topics: 1,341
  • Online today: 266
  • Online ever: 1,724
  • (16. January 2020, 00:18:45)
Users Online
Users: 4
Guests: 242
Total: 246

Bild Mode 2 mit JavaCPC Paint erstellt als test.scr

Started by cpcman, 10. January 2024, 10:48:57

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.


cpcman

#16
Danke , habe es mit pasmo.exe compiliert und läuft wunderbar.

Kannst du es bitte einmal für das RAM 512KB um ändern damit ich
bitte 3 Bilder einladen kann :

LD  BC,&7FC4/C5/C6 ;new RAM (between &4000)
LD  (AKT_RAM),BC  ;switch it on
OUT (C),C

Vielen Dank.

TFM

So hier wie versprochen die Deutsche Version:

BILDERAM.MAX ist der Quellcode
BILDERAM.64K ist das ausführbare Programm

Das Programm ist von Haus aus kompatibel zu 512 KB Erweiterungs-RAM, es nutzt frei Blöcke.

Um mehr als ein Bild zu laden, bzw. anzuzeigen kann man ja Teile des Programms vervielfachen. Das wäre:
- Freien 16 KB E-RAM Block reservieren
- Bild in E-RAM laden
- Bild anzeigen
- Pro Bild einige Variablen: Dateinamen und E-RAM Auswahl + Zeiger auf XRAM Variable

Probier mal aus ob Du das für drei Bilder hinbekommst, ich schaue es mir gerne die kommenden Tage mal an.  :)
TFM of FutureSoft
http://www.futureos.de --> Das Betriebssystem FutureOS (Update: 20.12.2023)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> RSX ROM für LambdaSpeak (Update: 26.12.2021)

cpcman

#18
Danke für deine Hilfe.

Es Funktioniert mit dem einen SCR, habe es mit pasmo.exe compiliert.
Wie kann man es bitte machen ohne alles zu vervielfachen ?


Danke.


TFM

Indem Du eine Schleife programmierst. Wobei sich das bei drei Bilden nicht lohnt. Ohne Schleife würdest Du das Programm für drei Bilder etwa folgendermaßen abändern:

Freies RAM reservieren x3:

LD  HL,EFER ;Search free 16 KB E-RAM block
CALL ROM_A
JR  Z,END_P    ;No free E-RAM left --> End Program
LD  (E_RAM),A  ;Store newly found target E-RAM select
LD  (XR_ERM),HL ;Store pointer to XRAM_? variable. Enables to free E-RAM later
;
LD  HL,EFER
CALL ROM_A
JR  Z,END_P
LD  (E_RAM2),A  ;eigene Variable!!!
LD  (XR_ERM2),HL ;eigene Variable!!!
;
LD  HL,EFER
CALL ROM_A
JR  Z,END_P
LD  (E_RAM3),A  ;eigene Variable!!!
LD  (XR_ERM3),HL ;eigene Variable!!!

;...


Bilder Laden x3:

LD  HL,(E_RAM)  ;Get previously found target E-RAM select
LD  (AKT_RAM),HL ;and prepare OS variable for 'Load Picture into E-RAM'
LD  DE,P_N      ;Pointer to name of picture
CALL LABIER      ;Load the picture
;
LD  HL,(E_RAM2)  ;eigene Variable!!!
LD  (AKT_RAM),HL
LD  DE,P_N2      ;eigener Dateiname!!!
CALL LABIER
;
LD  HL,(E_RAM3)  ;eigene Variable!!!
LD  (AKT_RAM),HL
LD  DE,P_N3      ;eigener Dateiname!!!
CALL LABIER

;...


Bilder anzeigen x3:

LD  BC,(E_RAM) ;Select E-RAM which contains picture and bank it in at &4000
OUT  (C),C
CALL SHOW_PIC ;Neues Unterprogramm 'Bild anzeigen'
;
LD  BC,(E_RAM2) ;eigene Variable!
OUT  (C),C
CALL SHOW_PIC
;
LD  BC,(E_RAM3) ;eigene Variable!
OUT  (C),C
CALL SHOW_PIC

;...

;Bild aus E-RAM anzeigen
;
SHOW_PIC LD HL,&4000  ;Source address = Begin of E-RAM
;
LD  DE,&C000  ;Target address = Begin of V-RAM
LD  BC,&4000  ;Length = 16 KB
LD  IX,F_MOVE ;Quick Copy OS function in ROM C
CALL ROM_A2C  ;Copy 16 KB picture from &4000 to &C000 quicker than 'LDIR'
LD  BC,&7FC0  ;Bank in Main RAM
OUT  (C),C
RET


Am Ende E-RAM wieder freigeben x3:

LD A,&01
LD HL,(XR_ERM) ;Read pointer to E-RAM XRAM_? variable
LD (HL),A      ;Free 16 KB E-RAM of the temporary stored picture
;
LD HL,(XR_ERM2) ;eigene Variable!!!
LD (HL),A
;
LD HL,(XR_ERM3) ;eigene Variable!!!
LD (HL),A
TFM of FutureSoft
http://www.futureos.de --> Das Betriebssystem FutureOS (Update: 20.12.2023)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> RSX ROM für LambdaSpeak (Update: 26.12.2021)

cpcman

#20
Danke für deine Hilfe.

Kann jetzt 3 Bilder laden und anzeigen mit Tastendruck aus dem E-RAM.

Hatte mir diese beiden Programme angeschaut wo du 43 Bilder in den E-RAM packst und wieder anzeigst. Da war ich nicht durchgestiegen.
Aber große Leistung...

P4M.MAX
LPR00.MAX

TFM

Danke, Danke, bin immer gerne da um zu helfen. Hauptsache Du hast Spaß am Erschaffen von CPC Produktionen.  :jubelaola:
TFM of FutureSoft
http://www.futureos.de --> Das Betriebssystem FutureOS (Update: 20.12.2023)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> RSX ROM für LambdaSpeak (Update: 26.12.2021)