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

29. March 2024, 06:32:47

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

94 Guests, 1 User
xesrjb

Grafik Befehle für CP/M usw.

Started by cpcman, 06. November 2018, 15:56:01

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

cpcman

Hallo, guten Tag.
Habe jetzt mal unter CP/M Plus versucht Grafik darzustellen mit ASM und dem PASMO-Compiler.
Klappt wunderbar.

Ich spiele auch mit dem CCZ80-Compiler.
Macht einen Sparsamen ASM-Code, den man auch noch verbessern kann.
Fast alle Basicbefehle sind verständlich in ASM umgesetzt und nachvollziehbar , gut erweiterbar.
Für mich zum spielen und tüfteln wunderbar.
Auch CP/M Plus Programme kann man erstellen und dort die Befehle erweitern.

Den CCZ80++ gibt es auch . Ist mit Klassen usw, für mich zu schwer.
Der Befehlssatz ist der gleiche wie beim CCZ80.
CP/M Plus kommt da zu kurz. Auch Stringbefehle sind sehr sparsam.

Gruss

CP/M PLUS (MODE, PLOT) :

org &100

scr_set_mode equ &bc0e
plot_absolute equ &bbea

ld hl,(&0001)
ld de,&0057
add hl,de
ld (firm_jump+1),hl

jp start
ret

start
ld a,2
call firm_jump
defw scr_set_mode

ld de,100
ld hl,100
call firm_jump
defw plot_absolute
ret

firm_jump
jp 0



CP/M PLUS (MODE, PLOT, DRAW) :

org &100

scr_set_mode equ &bc0e
plot_absolute equ &bbea
gra_line_absolute  equ &bbf6

ld hl,(&0001)
ld de,&0057
add hl,de
ld (firm_jump+1),hl

jp start
ret

start
ld a,2
call firm_jump
defw scr_set_mode

ld de,50
ld hl,100
call firm_jump
defw plot_absolute

ld de,200
ld hl,70
call firm_jump
defw gra_line_absolute
ret

firm_jump
jp 0

cpcman

Hier ein Bild in Mode 1.

Gruss

cpcman

Das geht hier immer so schnell.

Wollte zu dem Bild oben schreiben , das ich es mal mit CP/M  PLus in CCZ80 gemacht habe.
Habe CCZ80 mit meinen Befehlen zum Test erweitert.


include "CPMPlus.ccz80";

mode(1);
cls();
plotabs();
drawabs();

return;


Gruss

cpcman

Wer einmal in die CCz80 reinschauen möchte für CP/M.

Habe jetzt mal eine Variableneingabe eingebaut für CP/M.

Die COM für CP/M ist 169 Byte klein. Der Compiler von CCZ80 bekommt das gut hin, auch für die normalen CPC-Programme.


include "CPMPlus.ccz80";

word x, y;

mode(1);
cls();

x=10;
y=10;
plotabs(x,y);

x=639;
y=200;
drawabs(x,y);

return;


Hier mal mein Code für die Erweiterung der Include cpmplus.ccz80  die ich gebaut habe.
Die ASM-Befehle kommen in Gänsefüßchen.

function byte plotabs(word,word)
{
  "ld   hl,&bbea ",
  "ld   (__startup_xbios_address),hl ",
  "ld   hl,2",
  "add  hl,sp",
  "ld   e,(hl)",
  "inc  hl",
  "ld   d,(hl)     ; DE = 2nd parameter",
  "inc  hl",
  "ld   a,(hl)",
  "inc  hl",
  "ld   h,(hl)",
  "ld   l,a         ; HL = 1st parameter",
  "ex   de,hl           ; DE = x, HL = y",
  "  jp   __startup_xbios "
} using startup;

function byte drawabs(word,word)
{
  "ld   hl,&bbf6 ",
  "ld   (__startup_xbios_address),hl ",
  "ld   hl,2",
  "add  hl,sp",
  "ld   e,(hl)",
  "inc  hl",
  "ld   d,(hl)    ; DE = 2nd parameter",
  "inc  hl",
  "ld   a,(hl)",
  "inc  hl",
  "ld   h,(hl)",
  "ld   l,a       ; HL = 1st parameter",
  "ex   de,hl         ; DE = x, HL = y",
  "  jp   __startup_xbios "
} using startup;



TFM

#4
Also ESC,3,1 ausgeben, hex &1B,&03,&01 reicht auch um auf Mode 1 zu schalten. Die drei Zeichen ersetzen das ganz Programm.  :)

Was tippt man ein?
- CP/M Plus starten
- Eintippen: setkeys keys.ccp
- Tippen: ESC-Taste, dann "31" und Return

Und schon ist MODE 1 an :-)

Mit ESC-3-2 kann wieder auf Mode 2 geschalten werden.
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

#5
Das ist das Problem, diese verschleierten Eingaben, die man nicht Verfolgen kann.

Es geht hier nicht um das Umschalten.
Sondern wie einfach es ist CP/M_Programme herzustelllen.
Weil manche glauben CP/M ist Hexerei.

Viele trauen sich da nicht ran.

Danke.
Gruss

TFM

Ja, dabei ist es gar nicht so schlimm. Ist mit FutureOS ähnlich.  :)

CP/M Plus auf dem CPC ist ganz gut gelungen, leider führt es eher ein Nischendasein.
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)