Schneider / Amstrad CPC Forum

Amstrad / Schneider CPC => Programmierung => Topic started by: cpcman on 06. November 2018, 15:56:01

Title: Grafik Befehle für CP/M usw.
Post by: cpcman on 06. November 2018, 15:56:01
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
Title: Re: Grafik Befehle für CP/M usw.
Post by: cpcman on 06. November 2018, 17:32:05
Hier ein Bild in Mode 1.

Gruss
Title: Re: Grafik Befehle für CP/M usw.
Post by: cpcman on 06. November 2018, 17:42:13
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
Title: Re: Grafik Befehle für CP/M usw.
Post by: cpcman on 06. November 2018, 19:24:20
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;


Title: Re: Grafik Befehle für CP/M usw.
Post by: TFM on 07. November 2018, 11:26:06
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.
Title: Re: Grafik Befehle für CP/M usw.
Post by: cpcman on 07. November 2018, 13:36:32
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
Title: Re: Grafik Befehle für CP/M usw.
Post by: TFM on 07. November 2018, 16:32:54
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.