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

28. March 2024, 14:53:54

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,654
  • Total Topics: 1,328
  • Online today: 93
  • Online ever: 1,724
  • (16. January 2020, 00:18:45)
Users Online
Users: 1
Guests: 94
Total: 95

94 Guests, 1 User
TFM

Wie wird bitte "Print #2,chr$(22);chr$(1)" in ASM gesetzt?

Started by cpcman, 23. November 2018, 16:18:48

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

cpcman

Hallo, guten Tag.

Wie wird bitte  "Print #2,chr$(22);chr$(1)" in ASM gesetzt und "Locate #2,32,14" in ASM ?

danke.
Gruss

TFM

Quote from: cpcman on 23. November 2018, 16:18:48
Hallo, guten Tag.
Wie wird bitte  "Print #2,chr$(22);chr$(1)" in ASM gesetzt und "Locate #2,32,14" in ASM ?
danke.
Gruss

Anstatt chr$(22);chr$(1) schreibst Du in Assembler:

DB 22
DB 1


Das selbe gilt für die Zeichen beim Locate Befehl.

Anstatt Print und Locate nimmst Du die System-Einsprünge.
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.

Print #2,chr$(22);chr$(1)
-----------------------
ld a,2
call &bb5a
DB 22
DB 1
----------------------

Irgendwie klappt es nicht.
Ich wollte eigentlich den Textmodus transparent machen.
Wenn sich Buchstaben überlappen sollen die nicht ausgefüllten Bereiche transparent werden.

Gruss

HAL6128

Nein, so einfach ist das nicht. Du musst jeden Wert natürlich einzeln ausgeben.
Also über eine Schleife, und wenn's mehr Text ist, dann mit DB ("Define Byte" Statements). z.B. Ausgabe von "HALLO WELT" im Transparenzmodus, immer an der gleichen Stelle, oder?

ld hl,text
.loop
ld a,(hl)
call &bb5a
inc hl
cp 0
jr nz,loop
ret
.text
db 22,1,72,8,65,8,76,8,76,8,79,8,32,8,87,8,69,8,76,8,84,8,0

Devilmarkus

Quote from: cpcman on 23. November 2018, 19:41:06
Danke.

Print #2,chr$(22);chr$(1)
-----------------------
ld a,2
call &bb5a
DB 22
DB 1
----------------------

Das musst du schon genauso machen, wie die Textausgabe an den Drucker, nur dass du statt den Drucker-CALL den PRINT-CALL verwendest...
https://cpcwiki.de
Dein Deutsches CPCWiki!

cpcman

Danke für die Info.

Wenn ich von oben dein ASM-Beispiel eingebe , kommt das Bild.
Muss da irgendwie ein Text erscheinen?

Gruss

cpcman

Irgendwie bekomme ich das nicht gebacken mit den Transparenten kram.

Gruss

cpcman

Funktioniert dieses Transparente auch mit dem Befehl "Tag" ?

Gruss

cpcman

Wo findet man den Call um den Hintergrundmodus anzugeben?

irgendwie soll der auch für den Tag-Befehl gelten

Danke.
Gruss

cpcman


HAL6128

die letzte 8 beim DB Statement vor der 0 am Schluß war zuviel. Normalerweise sollte eine gelbes Rechteck ausgegeben werden, weil alle Buchstaben sich selbst überschreiben...
korrigiert...

org &4000
ld hl,text
.loop
ld a,(hl)
call &bb5a
inc hl
cp 0
jr nz,loop
ret
.text
db 22,1,72,8,65,8,76,8,76,8,79,8,32,8,87,8,69,8,76,8,84,0