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

15. June 2024, 07:00:55

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: 219
  • Latest: scorp73
Stats
  • Total Posts: 11,814
  • Total Topics: 1,350
  • Online today: 92
  • Online ever: 1,724
  • (16. January 2020, 00:18:45)
Users Online
Users: 1
Guests: 83
Total: 84

83 Guests, 1 User
xesrjb

Char-8fach wird in einer anderen Farbe dargestellt und...

Started by cpcman, 03. February 2024, 20:51:41

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

cpcman

Hallo, guten Tag.

Ich habe eingestellt in Mode 1 :
Zeichen 8fach 2x und INK_2 Farbe Gelb.

TXT  DB &1d,&02,&11,"HALLO PEBISOFT",&00

Die großen Zeichen werden aber in  Rot dargestellt.
Eigentlich sollten gemäß Text "HA" dargestellt werden.
Das erste Zeichen habe ich nicht eingegeben.

Brauche bitte hilfe dafür.

Danke.

------------------------------------
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,&7F00 ;INK 0
OUT (C),C
LD  A,&54     
OUT (C),A
LD  (INK_0),A ;paper color &40-&5F

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

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

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

call romchar

LD HL,1 * 80 + &C000-1+1
LD (C_POS),HL
LD BC,8
LD  HL,TXT ;Pointer to text, that shall be shown on screen
CALL TER_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 &1d,&02,&11,"HALLO PEBISOFT",&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

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
---------------------------

TFM

Der Steuercode &1D folgt bei Dir das Zeichen &02. Dass heißt es werden 2 Zeichen in GROSS dargestellt. Das ist dann bei Dir das Zeichen &11 und der Buchstabe "H".

Aus dem Kopf würde ich sagen probier mal ...

TXT DB &11, &1d,&05,"HALLO PEBISOFT",&00
... dann ist das Hallo groß.
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

Habs mal kurz überarbeitet. Achtung: Für Großbuchstaben funktioniert nur eine Farbe, das liegt am Zeichen-Zeichnen. Aber man kann sich die Farbe ja aussuchen.



ORG &8000
nolist

;MODE 1

LD  (RAMCHAR),A
LD  B,&7F
OUT (C),A
                               
LD   HL,S80X25
CALL ROM_A

LD  BC,&7F00 ;INK 0
OUT (C),C
LD  A,&54     
OUT (C),A
LD  (INK_0),A ;paper color &54

INC C
OUT (C),C
LD  A,&55     
OUT (C),A
LD  (INK_1),A ;INK 1 color &55

INC C
OUT (C),C
LD  A,&4A
OUT (C),A
LD  (INK_2),A ;INK 2 color &4A

INC C
OUT (C),C
LD  A,&4C
OUT (C),A
LD  (INK_3),A ;INK 3 color &4C

call romchr

LD   HL,TXT ;Pointer to text, that shall be shown on screen
CALL TER_BB ;PRINT text on screen

LD   HL,WATA
CALL ROM_C   ;Auf Tastendruck warten

LD HL,TUR_E
JP ROM_D     ;Ins Desktop zurck springen


;Text

TXT DB &02, &0B
    DB &11, &1F, 3,10, &1D,&05,"HALLO"
    DB &11, &1F,16, 4, &1D,&08,"PEBISOFT",&00


;Switch ROM char set on = lower RAM on
romchr:
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
ramchr:
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 &D42C


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 deine Mühe mit der Erstellung der Demo.

Wenn ich dieses 8x nehme geht nur eine Farbe für den ganzen String?
Die Farbe aussuchen habe ich auf dem Schirm mit den Ink_1 bis Ink_3 und dem Ink_0 für dem Hintergrund-

Dankeeeee.

cpcman

Hmmm...
Ich habe Pen2  mit Farbe "&4a" ist gelb

INC C
OUT (C),C
LD  A,&4A
OUT (C),A
LD  (INK_2),A ;INK 2 color &4A

TXT DB &02, &0B
    DB &11, &1F, 3,10, &1D,&05,"HALLO"
    DB &11, &1F,16, 4, &1D,&08,"PEBISOFT",&00

-----------------------------------------------------

Pen1 mit Farbe Blau "&55"

INC C
OUT (C),C
LD  A,&55   
OUT (C),A
LD  (INK_1),A ;INK 1 color &55

TXT DB &02, &0B
    DB &10, &1F, 3,10, &1D,&05,"HALLO"
    DB &10, &1F,16, 4, &1D,&08,"PEBISOFT",&00

Der Text ist immer Rot.

Danke.

cpcman

Habe den Fehler gefunden.
Bei Text 8x gilt nur der Pen3


Wusste ich nicht.
----------------------------------------
INC C
OUT (C),C
LD  A,&4a
OUT (C),A
LD  (INK_3),A ;INK 3 color &4a

TXT DB &02, &0B
    DB &12, &1F, 3,10, &1D,&05,"HALLO"
    DB &12, &1F,16, 4, &1D,&08,"PEBISOFT",&00

-------------------------------------

Gross/Kleinschrift geht auch wunderbar.
----------------------------------
INC C
OUT (C),C
LD  A,&4d
OUT (C),A
LD  (INK_2),A ;INK 2 color &4A

TXT DB &02, &0B
    DB &12, &1F, 3,10, &1D,&05,"HALLO"
    DB &11, &1F,16, 4,"PEBISOFT",&00

------------------------------


Danke.

TFM

Ja, da hast Du recht. Bei Gross-Schrift wird immer PEN 3 benutzt, denn die Funktion setzt ganze Blöcke aus &FF Bytes - und in MODE 1 ist das PEN 3.

Bei den Text-Zeilen:
TXT DB &02, &0B
    DB &12, &1F, 3,10, &1D,&05,"HALLO"
    DB &11, &1F,16, 4,"PEBISOFT",&00

Da kann man die PEN-Umschaltung weglassen, da eh PEN 3 genutzt wird.
Also so wäre es dann korrigiert:

TXT DB &02, &0B
    DB &1F, 3,10, &1D,&05,"HALLO"
    DB &1F,16, 4,"PEBISOFT",&00

Zur Erklärung: Steuercode &02 schaltet den RAM Zeichensatz aktiv. Steuercode &0B löscht den Bildschirm. Und Steuercode &1F,Y,X setzt den Cursor im 40x25 Zeichen-Format. Dabei darf Y von 0 bis 24 sein, und X von 0 bis 39.
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)