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

28. April 2024, 00:35:19

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,718
  • Total Topics: 1,341
  • Online today: 285
  • Online ever: 1,724
  • (16. January 2020, 00:18:45)
Users Online
Users: 0
Guests: 240
Total: 240

240 Guests, 0 Users

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

Hallo, guten Tag.

Ich habe ein Bild Mode 2 erstellt mit JavaCPC-Paint als test.scr
80x200 (16000 ohne den Header). Header wird von JavaCPC mit 512 Byte dazu erstellt.
Wie kann ich dieses test.scr jetzt bitte einlesen in &c000 mit FutureOS ?

Danke.

TFM

Folgendermaßen (also ich gehe mal davon auf, dass das Bild einen Header hat):

- Disc unter FutureOS einlegen,
- DIRectory einlesen, DIR icon oder Taste 'd'
- Bild-Datei anklicken
- Nun auf das TYPE Icon klicken oder Taste 'v' für view
- Im Type Menu die 1 drücken (Datei anzeigen)
- Der Header wird angezeigt, Space drücken

- Und nun kann mit den Cursor-Tasten sowohl der Bildschirm Modus (0-3) als auch das Bild-Format eingestellt werden.  :winke0002:
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

Danke für die Info.

Ich wollte bitte das Bild laden in einem Spiel auf Tastendruck , also nicht vorher.


TFM

Ah, alles klar. Dazu hänge ich Dir mal den Source von 'Lade Hintergrund Bild' an.
Das Programm läd ein Bild ins Erweiterungs-RAM. Von dort aus kann es dann später angezeigt werden.

Falls Du einen anderen Source Code brauchst, lasse es mich wissen.  :smiley027:
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


TFM

Habe noch schnell einen spezifische Source gemacht, um ein Bild ins Video-RAM zu laden. Wie geht das?

- Programm assemblieren
- FutureOS starten und auf Laufwerk A klicken, um DIR einzulesen
- Nach &9000 springen (z.B. im Monitor)

Bild wird gezeigt, dann Taste, Rückkehr zum OS

Funktioniert was nicht? Dann bitte melden  :)
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

Es funktioniert nicht so.

Bei ASM heisst das Bild : LBI DB &00,"TEST-PICSCR"
Auf der DSK heisst das Bild : "TEST-PIC.SCR"

Ich habe es umbenannt.
Funtioniert trotzdem nicht.
Auch nicht im MONITOR.

Es wäre schön wenn du mal das ganze Bild in &c000 laden könntest
damit ich es einmal dort sehe.
Und dann mit Tastendruck zurück gehe nach FutureOS :
-------------------------
LD  HL,WATA ;Warte auf Tastendruck
CALL ROM_C

LD  HL,S64X32 ;Setze Bildschirm auf 64 Zeichen und 32 Zeilen
CALL ROM_A

LD HL,TUR_E ;-> Ruecksprung zum OS
JP ROM_D
----------------------------------

Danke.

TFM

Das Programm tut ganz genau was Du willst, und es funktioniert auch. Bitte den Anweisungen in meinem vorigen Post folgen.

Wenn Du das Bild umbenennst, dann kann es natürlich vom Programm nicht gefunden werden.

Unter FutureOS gibt es keinen Punkt zwischen Dateinamen und Extension, auf diese Weise kann man Dateien freier und schöner benennen.

Also, ich hänge Dir die DSK nochmals an, und zwar mit dem Programm fertig assembliert.

Bitte einfach '-Test' starten. (Der Source Code ist 'LadeBild.MAX'
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

#8
Danke für die Hilfe.  :smiley027:  :smiley027:  :smiley027:
Es funktioniert jetzt super, habe es mit pasmo.exe compiliert.
Wusste nicht das der Name 8 Buchstaben sein muss.

Kann jetzt mehrere SCR mit Tastendruck durchschalten.
Man kann schon eine kleine Geschichte machen mit Bildern(Screens)

--------------------------------
ORG &9000  ; 97 Zeilen

;In diesem Beispiel wird ein Bild von Laufwerk A geladen
;Das Inhaltsverzeichnis von LW A muss bereits eingelesen sein!

;Lade ein Beispiel-Bild --> Warte auf Tastendruck --> Zurueck zum OS!

LADE_BILD
LD HL,S80X25
CALL ROM_A ;Setze Bildschirm auf 80 Zeichen & 25 Zeilen

LD A,(REG_PC+1) ;A = Quell-Medium von dem das Hauptprogramm gestartet wurde

ld a,0 ;In diesem Beispiel wird das Medium = Laufwerk A gesetzt #########
        ;Im fertigen Programm muss diese Zeile ^ entfernt werden #########

LD (MEDIUM),A  ;Sichere Quell-Medium A..O (0-14) des zu ladenden Bildes

LD  DE,LBI1 ;Zeiger auf Namen des Bildes
CALL LABI  ;Bild laden
LD  HL,WATA ;Warte auf Tastendruck
CALL ROM_C

LD  DE,LBI2 ;Zeiger auf Namen des Bildes
CALL LABI  ;Bild laden
LD  HL,WATA ;Warte auf Tastendruck
CALL ROM_C

LD  DE,LBI3 ;Zeiger auf Namen des Bildes
CALL LABI  ;Bild laden
LD  HL,WATA ;Warte auf Tastendruck
CALL ROM_C

LD  HL,S64X32 ;Setze Bildschirm auf 64 Zeichen und 32 Zeilen
CALL ROM_A

LD HL,TUR_E ;-> Ruecksprung zum OS
JP ROM_D

;Name des zu ladenden Bildes
;
LBI1
  DB &00,"BILD0001SCR" ;User-Nummer + Name + Extension
LBI2
  DB &00,"BILD0002SCR" ;User-Nummer + Name + Extension 
LBI3
  DB &00,"BILD0003SCR" ;User-Nummer + Name + Extension

;Name des Quell-Mediums des Bildes
;
MEDIUM
  DB &00

;Bild nach &C000 laden!
;
;Einsprung
;---------
;      DE = Zeiger auf User + Name + Extent des Bildes
;(MEDIUM) = Quell-Medium des Bildes 0-14 (A-O)
;
;Aussprung
;---------
;A  = &FF --> Bild wurde korrekt geladen
;A <> &FF --> Beim Laden ist ein Fehler aufgetreten

LABI
LD A,&02
LD (REG08_4),A ;Laden in Hauptspeicher

LD HL,&C000
LD (REG16_3),HL ;Ziel-Adresse &C000 = Video RAM

LD A,(MEDIUM) ;Quell-Medium

LD IX,LADE_N
CALL ROM_A2C ;Lade Bild

INC A
JR NZ,LB_ERR ;A<>&FF --> Fehler beim Laden!

LD BC,&FA7E
LD A,(MO_ST)
OUT (C),A ;Laufwerks-Motoren ausschalten

LD A,&FF
RET ;A = &FF --> Bild wurde erfolgreich geladen!

;Fehler beim Laden

LB_ERR
  LD BC,&FA7E
  LD A,(MO_ST)
  OUT (C),A
  XOR A
  RET

;EQUates

REG_PC  EQU &B8DA ;RAM
REG08_4 EQU &B8E0
REG16_3 EQU &B8EA
MO_ST  EQU &B97F

ROM_A  EQU &FF00 ;ROMs A-M
ROM_C  EQU &FF0C
ROM_D  EQU &FF12
ROM_A2C EQU &FF2A

S64X32 EQU &D5A8 ;ROM A
S80X25 EQU &D60E

WATA  EQU &FD38 ;ROM C
LADE_N EQU &FD5C

TUR_E EQU &FE9D ;ROM D
------------------------------------

Danke.

cpcman

#9
Hallo guten Tag.

Gibt es bitte zwei Bereiche für 16kb die man mit Grafik-SCR bearbeiten/füllen kann und umschalten kann? Beide sichtbar schalten nach Wahl?

Oder von den einen Bereich  kopieren zum anderen Bereich  &c000?

Danke

cpcman

#10
Hallo , guten  Tag.

Ich kann mit deinem Programm auch Mode 1 einstellen und ein Farbiges Bild SCR anzeigen.
Ist der Kopf bitte richtig dafür? Es funktioniert aber.

Wie kann ich jetzt bitte dieses INK und Border dafür einstellen in FutureOs?
Ich habe die 26 Farben von hier mit RGB für mein Malprogramm zusammengestellt:
https://www.cpcwiki.eu/index.php/CPC_Palette

Wenn ich ein SCR herstelle wird dafür eine PAL-Datei hergestellt.
Wie kann man die bitte in FutureOs nutzen?

Danke.

---------------------------
LD A,&81      ;Dieser Wert symbolisiert MODE 1 (siehe Bits 1 und 0)
                ;Beide ROMs sind eingeschalten (Bits 3 und 2)
LD (RAMCHAR),A ;Wert aus Register A in OS RAM-Variable RAMCHAR schreiben

LD B,&7F      ;Via Port &7Fxx ist das Gate-Array erreichbar

OUT (C),A      ;Wert aus Register A an Port in BC (=&7Fxx) schicken
                ;Damit auf MODE 1 und ROM Zeichensatz schalten
----------------------------

TFM

Quote from: cpcman on 12. January 2024, 16:39:54Hallo guten Tag.

Gibt es bitte zwei Bereiche für 16kb die man mit Grafik-SCR bearbeiten/füllen kann und umschalten kann? Beide sichtbar schalten nach Wahl?

Oder von den einen Bereich  kopieren zum anderen Bereich  &c000?

Danke

Das ist gar kein Problem, man läßt sich vom OS einfach einen 16 KB Block im E-RAM suchen und reservieren. Und dort kann man dann ein Bild reinladen.

Bei einer 512 KB Erweiterung ist so für ca. 30 Bilder Platz

Will man die Bilder d&4000 nach &C000 (also LD HL,&4000:LD DE,&4000:LD BC,&4000:LDIR)

Dazu kann ich ja mal einen Beispiel-Code machen.
Hat jemand gerade ein DSK da mit ein paar Beispielbildern?
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)

TFM

Quote from: cpcman on 13. January 2024, 09:46:03Ich habe die 26 Farben von hier mit RGB für mein Malprogramm zusammengestellt:
https://www.cpcwiki.eu/index.php/CPC_Palette
Wenn ich ein SCR herstelle wird dafür eine PAL-Datei hergestellt.
Wie kann man die bitte in FutureOs nutzen?

Ja, genau das ist die Farbtabelle. Wie man Farben einstellt, dafür gibt's Beispiele in der OS-LIB. Die hänge ich hier mal an.

Relevante Beispiele:

;---=== Set Screen Colors of Border, Paper and Pens // CLear Screen ===---;

NN = any 8 Bit value &00-&FF /// Enter correct value for NN in Source!

;For selecting a COLOR please use hardware numbers, see table HWFW

;set BORDER color
;
;changes AF, BC

 LD  BC,&7F10 ;border
 OUT (C),C
 LD  A,NN      ;new hardware border color &40-&5F
 OUT (C),A      ;see table
 LD  (BORDER),A ;write color in RAM


;set PAPER color
;
;changes AF, BC

 LD  BC,&7F00 ;INK 0
 OUT (C),C
 LD  A,NN     
 OUT (C),A
 LD  (INK_0),A ;new hardware paper color &40-&5F


;set PEN 1 color
;
;changes AF, BC

 LD  BC,&7F01 ;INK 1
 OUT (C),C
 LD  A,NN     
 OUT (C),A
 LD  (INK_1),A ;new INK 1 color &40-&5F


;set PEN 2 color
;
;changes AF, BC

 LD  BC,&7F02 ;INK 2
 OUT (C),C
 LD  A,NN     
 OUT (C),A
 LD  (INK_2),A ;new INK 2 color &40-&5F


;set PEN 3 color
;
;changes AF, BC

 LD  BC,&7F03 ;INK 3
 OUT (C),C
 LD  A,NN     
 OUT (C),A
 LD  (INK_3),A ;new INK 3 color &40-&5F

;hardware color values, equivalent to
;BASIC colors from 0 to 26(31) ordered.
;
;Hardware-Farbwerte, entsprechend den
;OS Farben von 0 bis 26(31) geordnet.

HWFW

  ;  0  1  2  3  4  5  6  7
 DB &54,&44,&55,&5C,&58,&5D,&4C,&45

  ;  8  9  10  11  12  13  14  15
 DB &4D,&56,&46,&57,&5E,&40,&5F,&4E

  ; 16  17  18  19  20  21  22  23
 DB &47,&4F,&52,&42,&53,&5A,&59,&5B

  ; 24  25  26 *27 *28 *29 *30 *31
 DB &4A,&43,&4B,&44,&4D,&59,&47,&4F


;BASIC color values from 0 to 26, ordered
;through hardware color values &40-&5F
;
;OS Farbwerte von 0 bis 26, nach den
;Hardware-Farbwerten &40-&5F geordnet

OSSW DB 13 ;&40

 DB 27 ;&41 ***
 DB 19 ;&42
 DB 25 ;&43
 DB 01 ;&44
 DB 07 ;&45
 DB 10 ;&46
 DB 16 ;&47
 DB 28 ;&48 ***
 DB 29 ;&49 ***
 DB 24 ;&4A
 DB 26 ;&4B
 DB 06 ;&4C
 DB 08 ;&4D
 DB 15 ;&4E
 DB 17 ;&4F
 DB 30 ;&50 ***
 DB 31 ;&51 ***
 DB 18 ;&52
 DB 20 ;&53
 DB 00 ;&54
 DB 02 ;&55
 DB 09 ;&56
 DB 11 ;&57
 DB 04 ;&58
 DB 22 ;&59
 DB 21 ;&5A
 DB 23 ;&5B
 DB 03 ;&5C
 DB 05 ;&5D
 DB 12 ;&5E
 DB 14 ;&5F


Also ganz einfach:
LD BC,&7F00 + 0...15 ;Pen auswählen 0-15 (16 = Border)
OUT (C),C
LD BC,&7F00 + &40...&5F ;Farbert auswählen 64-95 (Farbwert, siehe Tabelle oben)

Eine PAL Datei zu laden und zu analysieren, das ist sicher auch möglich. Sag mir bitte welches Programm diese .PAL Datei erzeugt hat. Ist es die vom OCP ART Studio? Könntest Du bitte mal ein Beispiel davon anhängen? Dann kann ich die analysieren.
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

#13
Hier sind bitte 3 Bilder für Mode 2 in der Zip.

Wie funkioniert das bitte bei 512kb und bei 4MB?

Das ist meine Idee die 3 Bilder zuladen in die 512kb:
Umsetzen kann ich es leider nicht.
-------------------------------------------
LD  BC,&7FC4 ;new RAM (between &4000)
LD  (AKT_RAM),BC  ;switch it on
OUT (C),C

Bild1 in &4000-&7000 laden

LD  BC,&7FC0 ;new RAM (between &c000)
LD  (AKT_RAM),BC  ;switch it on
OUT (C),C

LD  BC,&7FC5 ;new RAM (between &4000)
LD  (AKT_RAM),BC  ;switch it on
OUT (C),C

Bild2 in &4000-&7000 laden

LD  BC,&7FC0 ;new RAM (between &c000)
LD  (AKT_RAM),BC  ;switch it on
OUT (C),C

LD  BC,&7FC6 ;new RAM (between &4000)
LD  (AKT_RAM),BC  ;switch it on
OUT (C),C

Bild3 in &4000-&7000 laden

LD  BC,&7FC0 ;new RAM (between &c000)
LD  (AKT_RAM),BC  ;switch it on
OUT (C),C
--------------------------------

Bilder zurück:
--------------------------------
LD  BC,&7FC4 ;new RAM (between &4000)
LD  (AKT_RAM),BC  ;switch it on
OUT (C),C

Bild1 von &4000 nach &C000 kopieren

LD  BC,&7FC5 ;new RAM (between &4000)
LD  (AKT_RAM),BC  ;switch it on
OUT (C),C

Bild2 von &4000 nach &C000 kopieren

LD  BC,&7FC6 ;new RAM (between &4000)
LD  (AKT_RAM),BC  ;switch it on
OUT (C),C

Bild3 von &4000 nach &C000 kopieren
-------------------------------------




Danke.

TFM

Ja, so würde man es unter anderen Betriebssystemen machen.  :smiley027:
Unter FutureOS kann man aber auch die Speicherverwaltung das mit der Erweiterungs-RAMs (E-RAMs) erledigen lassen.

Anbei ein DSK, der neue Source ist in 'PIC4ERAM.MAX'. Das Programm 'PIC4ERAM.64K' kann direkt gestartet werden. Zuerst lädt es ein Bild in ein freies E-RAM und nach Tastendruck wird das Bild angezeigt.

(Anmerkung: In diesem Fall werden Bilder mit 16 KB - also ohne Header-Record - verwendet. Das spaart Platz auf Disketten und mach vieles einfacher. Ein Beispiel für klassische 17 KB Bilder - also mit Header - würde beim Laden in RAM Variable REG16_3 den Wert &3f80 anstatt &4000 schreiben. So würde der Header ab &3F80 ins RAM kommen und das Bild beginnt dann ab &4000 im E-RAM wie gewollt).

Der Source ist erst mal auf Englisch. Vielleicht schaffe ich das später den auf Deutsch zu übersetzen  ;)  :)
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)