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