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

21. February 2024, 16:59:38

Login with username, password and session length

Shoutbox

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
Stats
  • Total Posts: 11,579
  • Total Topics: 1,317
  • Online today: 84
  • Online ever: 1,724
  • (16. January 2020, 00:18:45)
Users Online
Users: 3
Guests: 63
Total: 66

63 Guests, 3 Users
TFM, LambdaMikel, GarfieldTheFirst

Recent posts

#51
Hardware / Re: Wiederbelebung DMP 2000
Last post by Swoop4711 - 01. February 2024, 22:13:25
So der DMP2160 aus der Bucht steht nun hier. Leider hat der Verkäufer das Druckerband verschludert😭
Gibts dafür noch Ersatz?
#52
FutureOS / Re: Mit ASCII-Zeichen spielen ...
Last post by cpcman - 01. February 2024, 17:21:31
Hallo, danke für die Hilfe.

Es kommt keine Fehlermeldung beim laden.
Der Text erscheint nicht auf den Screen im Mode 1

----------------------------------
ORG &8000

; mode 1
LD  A,(RAMCHAR)
SET 0,A
RES 1,A
LD  (RAMCHAR),A
LD  B,&7F
OUT (C),A

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 #########     
LD (MEDIUM),A ;Sichere Quell-Medium A..O (0-14) des zu ladenden Bildes

LD IX,LESC
CALL ROM_A2C
                                 
LD  HL,S80X25
CALL ROM_A

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

call ramchar

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,LBI ;Zeiger auf Namen
CALL LABI 

LD HL,10 * 80 + &C000-1+10
LD (C_POS),HL

LD BC,8
LD  HL,TXT ;Pointer to text, that shall be shown on screen
CALL STR_BB ;PRINT text on screen
           
LD HL,WATA
CALL ROM_C ;Auf Tastendruck warten
LD HL,TUR_E
JP ROM_D  ;Ins Desktop zurück springen   

;Text
TXT  DB &01,"Beispieltext mit RAM Zeichen",&00

LBI DB &00,"CPC-DEUCS8" ;User-Nummer + Name + Extension
MEDIUM DB &00

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

LD HL,&3800
LD (REG16_3),HL ;Ziel-Adresse &3800 = 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

;Switch ROM char set on = lower RAM on
romchar:
LD  A,(RAMCHAR) ;actual RAM/ROM state
RES 2,A
LD  (RAMCHAR),A ;set L-RAM on
LD  B,&7F
OUT (C),A
ret

;Switch ROM char set off = lower ROM off
ramchar:
LD  A,(RAMCHAR) ;actual RAM/ROM state
SET 2,A
LD  (RAMCHAR),A ;set L-ROM off
LD  B,&7F
OUT (C),A
ret

AKT_RAM EQU &B84C
F_MOVE EQU &C0C8
LADE_N EQU &FD5C
REG_PC  EQU &B8DA ;RAM
REG08_4 EQU &B8E0
REG16_3 EQU &B8EA
MO_ST  EQU &B97F
STR_BB EQU &CA1C
C_POS  EQU &B848
WATA  EQU &FD38
TUR_E EQU &FE9D
RAMCHAR EQU &B847
LESC EQU &C017
ROM_A2C EQU &FF2A
OSRON_A EQU &FF22
OSRON_B EQU &FF58
OSRON_C EQU &FF8E
OSRON_D EQU &FFD6
ROM_A  EQU &FF00
ROM_C  EQU &FF0C
ROM_D  EQU &FF12
ROM_D2A EQU &FFBA

S64X32 EQU &D5A8
S80X25 EQU &D60E

BORDER EQU &BB91
INK_0  EQU &BB92
INK_1  EQU &BB93
INK_2  EQU &BB94
INK_3  EQU &BB95

TER_GB EQU &CDF6
TER_BB EQU &CD4C
TER_GG EQU &CE80
TER_RR EQU &CF2A

TERM_2  EQU &D48C
TERM_2D EQU &D2F7
TERM_2I EQU &D358
TERM_2K EQU &D3C0
TERM_2U EQU &D42
------------------------------

Hier habe ich mal 1024 Byte in den RAM geladen mit dem Wert $81.
Der Text erscheint als Wert $81 , also dieses funktioniert.

9 Buchstaben lasse ich ausgeben.

--------------------------------------------------
ORG &8000

; mode 1
LD  A,(RAMCHAR)
SET 0,A
RES 1,A
LD  (RAMCHAR),A
LD  B,&7F
OUT (C),A

LD IX,LESC
CALL ROM_A2C
                                 
LD  HL,S80X25
CALL ROM_A

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

call ramchar

LD HL,10 * 80 + &C000-1+10
LD (C_POS),HL

 
  LD BC,1024 
  LD  D,&81 
  ;1024 Bytes werden
  ;mit dem Byte &81 gefüllt.
  LD  HL,&3800  ;Füllen ab Adresse &3800
  LD IX,F_FILL8 
  CALL ROM_A2C

LD BC,10
LD  HL,TXT ;Pointer to text, that shall be shown on screen
CALL STR_BB ;PRINT text on screen
           
LD HL,WATA
CALL ROM_C ;Auf Tastendruck warten
LD HL,TUR_E
JP ROM_D  ;Ins Desktop zurück springen   

;Text
TXT  DB &01,"Beispieltext mit RAM Zeichen",&00

;Switch ROM char set on = lower RAM on
romchar:
LD  A,(RAMCHAR) ;actual RAM/ROM state
RES 2,A
LD  (RAMCHAR),A ;set L-RAM on
LD  B,&7F
OUT (C),A
ret

;Switch ROM char set off = lower ROM off
ramchar:
LD  A,(RAMCHAR) ;actual RAM/ROM state
SET 2,A
LD  (RAMCHAR),A ;set L-ROM off
LD  B,&7F
OUT (C),A
ret


F_FILL8 EQU &C01E
F_FILL6 EQU &C01F
AKT_RAM EQU &B84C
F_MOVE EQU &C0C8
LADE_N EQU &FD5C
REG_PC  EQU &B8DA ;RAM
REG08_4 EQU &B8E0
REG16_3 EQU &B8EA
MO_ST  EQU &B97F
STR_BB EQU &CA1C
C_POS  EQU &B848
WATA  EQU &FD38
TUR_E EQU &FE9D
RAMCHAR EQU &B847
LESC EQU &C017
ROM_A2C EQU &FF2A
OSRON_A EQU &FF22
OSRON_B EQU &FF58
OSRON_C EQU &FF8E
OSRON_D EQU &FFD6
ROM_A  EQU &FF00
ROM_C  EQU &FF0C
ROM_D  EQU &FF12
ROM_D2A EQU &FFBA

S64X32 EQU &D5A8
S80X25 EQU &D60E

BORDER EQU &BB91
INK_0  EQU &BB92
INK_1  EQU &BB93
INK_2  EQU &BB94
INK_3  EQU &BB95

TER_GB EQU &CDF6
TER_BB EQU &CD4C
TER_GG EQU &CE80
TER_RR EQU &CF2A

TERM_2  EQU &D48C
TERM_2D EQU &D2F7
TERM_2I EQU &D358
TERM_2K EQU &D3C0
TERM_2U EQU &D42
-------------------------------------


Hier ist der Zeichensatz ins RAM mit den Befehl :  LD IX,INRZ
 CALL ROM_A2C 

Habe dann bis 528 Byte &ff aufgefüllt , das "A" erscheint dann nicht.
-------------------------------------
ORG &8000

; mode 1
LD  A,(RAMCHAR)
SET 0,A
RES 1,A
LD  (RAMCHAR),A
LD  B,&7F
OUT (C),A

LD IX,LESC
CALL ROM_A2C
                                 
LD  HL,S80X25
CALL ROM_A

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

LD IX,INRZ
CALL ROM_A2C 

call ramchar

LD HL,10 * 80 + &C000-1+10
LD (C_POS),HL

  LD BC,528
  LD  D,&ff 
  ;1024 Bytes werden
  ;mit dem Byte &ff gefüllt.
  LD  HL,&3800  ;Füllen ab Adresse &3800
  LD IX,F_FILL8 
  CALL ROM_A2C

LD BC,7
LD  HL,TXT ;Pointer to text, that shall be shown on screen
CALL STR_BB ;PRINT text on screen
           
LD HL,WATA
CALL ROM_C ;Auf Tastendruck warten
LD HL,TUR_E
JP ROM_D  ;Ins Desktop zurück springen   

;Text
TXT  DB "ABCDEF",&00

;Switch ROM char set on = lower RAM on
romchar:
LD  A,(RAMCHAR) ;actual RAM/ROM state
RES 2,A
LD  (RAMCHAR),A ;set L-RAM on
LD  B,&7F
OUT (C),A
ret

;Switch ROM char set off = lower ROM off
ramchar:
LD  A,(RAMCHAR) ;actual RAM/ROM state
SET 2,A
LD  (RAMCHAR),A ;set L-ROM off
LD  B,&7F
OUT (C),A
ret

INRZ    EQU &C9AD
F_FILL8 EQU &C01E
F_FILL6 EQU &C01F
AKT_RAM EQU &B84C
F_MOVE EQU &C0C8
LADE_N EQU &FD5C
REG_PC  EQU &B8DA ;RAM
REG08_4 EQU &B8E0
REG16_3 EQU &B8EA
MO_ST  EQU &B97F
STR_BB EQU &CA1C
C_POS  EQU &B848
WATA  EQU &FD38
TUR_E EQU &FE9D
RAMCHAR EQU &B847
LESC EQU &C017
ROM_A2C EQU &FF2A
OSRON_A EQU &FF22
OSRON_B EQU &FF58
OSRON_C EQU &FF8E
OSRON_D EQU &FFD6
ROM_A  EQU &FF00
ROM_C  EQU &FF0C
ROM_D  EQU &FF12
ROM_D2A EQU &FFBA

S64X32 EQU &D5A8
S80X25 EQU &D60E

BORDER EQU &BB91
INK_0  EQU &BB92
INK_1  EQU &BB93
INK_2  EQU &BB94
INK_3  EQU &BB95

TER_GB EQU &CDF6
TER_BB EQU &CD4C
TER_GG EQU &CE80
TER_RR EQU &CF2A

TERM_2  EQU &D48C
TERM_2D EQU &D2F7
TERM_2I EQU &D358
TERM_2K EQU &D3C0
TERM_2U EQU &D42
--------------------------------

Diese Teste funktionieren Super.
Nur das Laden funktioniert nicht.
#53
FutureOS / Re: Mit ASCII-Zeichen spielen ...
Last post by TFM - 01. February 2024, 16:10:49
Du kannst die Datei direkt laden, da muss nichts umgestellt werden.
Nimm einfach den Code um ein Bild an &C000 zu laden und ändere die Zieladresse von &C000 auf &3800.

Wenn Du einen Text ausgibst, dann bitte am Anfang das Steuerzeichen &01 nutzen, das stellt auf RAM Zeichensatz um.

Der Text könnte das so aussehen:

DB &01,"Bespieltext mir RAM Zeichen",&00

Das &00 Byte am Textende ist die Endmarkierung
#54
FutureOS / Re: Text im Mode 1 durchsichti...
Last post by TFM - 01. February 2024, 16:06:57
Dabei geht's darum ob bei einer Linie der erste Punkt gesetzt wird oder nicht. Nein das gibt's bei FutureOS nicht, dann wozu auch? Man startet die Linie eben an dem Punkt ab dem sie auch gezeichnet werden soll.

Nur bin ich mir nicht sicher ob Du auch wirklich &bd46 meinst.

Generell ist es so, daß FutureOS nichts vom alten OS benutzt. Es läuft zu 100% mit eigenen Funktionen.  :)  :00008351:
#55
FutureOS / Re: Mit ASCII-Zeichen spielen ...
Last post by cpcman - 01. February 2024, 08:55:22
Wie kann ich bitte meinen eigenen Zeichensatz ascii.bin
umstellen in ein ladefähige Datei damit diese bitte geladen wird.

Danke.
#56
FutureOS / Re: Mit ASCII-Zeichen spielen ...
Last post by cpcman - 31. January 2024, 21:29:57
Ich habe auf 8 Buchstaben erweitert mit "0" dahinter.

LBI DB &00,"CPC-DEU0CS8" ;User-Nummer + Name + Extension

Die CS8 werden nicht geladen im eigenen Program.
CPC-DEU0.CS8
Kannst du bitte das Format umwandeln in ein lauffähiges Format?

--------------------
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,LBI ;Zeiger auf Namen des Bildes
CALL LABI  ;Bild laden

LBI DB &00,"CPC-DEU0CS8" ;User-Nummer + Name + Extension

MEDIUM DB &00

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

LD HL,&3800
LD (REG16_3),HL ;Ziel-Adresse &3800 = 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
#57
FutureOS / Re: Text im Mode 1 durchsichti...
Last post by cpcman - 31. January 2024, 20:49:59
Danke für die Info.

Den Call kann man bitte in FuturOs nicht umsetzen ?
--------------------
public static void trans_text(short argument1)
    asm inline (Indirections.Values())
    {
      call #bd46
    }
#58
FutureOS / Re: Text im Mode 1 durchsichti...
Last post by TFM - 31. January 2024, 20:39:27
Leider nicht. Dafür braucht man dann schon eine Sprite Routine. Oder man benutzt ein Grafikprogramm z.B. G-Paint oder Advanced OCP Art Studio.
#59
FutureOS / Re: Mit ASCII-Zeichen spielen ...
Last post by TFM - 31. January 2024, 20:36:19
Eigenen Zeichensatz einschalten = Unteres RAM einschalten (siehe OS-LIB)

Zeichensatz laden, geht wie Bild laden, nur die Zieladresse muss auf &3800 gesetzt werden.
#60
FutureOS / Text im Mode 1 durchsichtig ma...
Last post by cpcman - 31. January 2024, 15:28:54
Hallo, guten Tag.

Wie kann man den Text bitte von Mode 1 an den Stellen die nicht ausgefüllt sind durchsichtig machen?

Danke.