Schneider / Amstrad CPC Forum

Amstrad / Schneider CPC => Programmierung => Topic started by: FirstDefender on 11. February 2023, 18:48:17

Title: CALL und POKE
Post by: FirstDefender on 11. February 2023, 18:48:17
Giebt es oder hat einer eine Liste aller call und poke Befehle und was sie Bewirken ?
Title: Re: CALL und POKE
Post by: HAL6128 on 11. February 2023, 19:41:53
Interessante Frage. Per Definition lädt ein Poke einen Wert an eine definierte Speicheradresse und ein Call springt an eine Adresse und lädt den Code von dort dann in die CPU zum Ausführen. Das ist erst einmal relativ neutral.
Wahrscheinlich meinst du die Firmware Einsprungsadressen?
Title: Re: CALL und POKE
Post by: xesrjb on 11. February 2023, 21:29:43
https://www.cpcwiki.eu/imgs/6/6f/CPC_664-6128_intern.pdf

xesrjb
Title: Re: CALL und POKE
Post by: almasys on 12. February 2023, 10:11:29
Firmwareeinsprünge und -variablen sind sehr schön erklärt im Schneider CPC Systembuch (http://little-bat.de/cpc).
Title: Re: CALL und POKE
Post by: FirstDefender on 12. February 2023, 12:34:45
Ich Meinte soetwas , das ist bis jetzt alles was ich gefunden habe.

Call, Out und Pokes   
   
CALL 0   Computer-Reset
CALL &BB7E   sperrt Cursortasten bei Input
CALL 45966,0   sperrt ESC (Input nicht)
CALL &BB7B   löst Sperre fuer Input auf
CALL &BB48   sperrt ESC
POKE 370,0:POKE 371,0   Zeile 1-9 unsichtbar
WAIT &FF34,20,25   sperrt alles
CALL &BB81   Cursor frei
CALL &BB84   Cursor sperren
CALL &BC00   Farben = normal
CALL &BC40   scrollt Screen nach unten
POKE &BDEB,&C9   MODE loescht nicht mehr
CALL &BB18   auf Tastendruck warten
CALL &BD19   wartet bis Bild aufgebaut ist
CALL &BB16   auf Tastendruck warten
CALL &BB06   auf Tastendruck warten
CALL &BC6E   schaltet Tape ein
CALL &BC71   schaltet Tape aus
POKE &A701,&E5:CAT   zeigt alle geloeschten Files
POKE &AC00,1   loescht ueberfluessige Zeichen
POKE &AC00,0   schaltet Poke &AC00,1 ab
POKE &AE45,1    Prg. im Speicher schuetzen
POKE &AE45,0   schaltet Poke &AE45,1 ab
CALL &BB03   Tastaturpuffer leeren
CALL &BB9C   invertieren
OUT &BC00,2:OUT &BD00,x   horiz. Scroll x=Wert (46)
OUT &BC00,7:OUT &BD00,x   vertik. Scroll x=Wert (30)
POKE &BB5B,&1B:POKE &BB5C,&88   Bildschirmausgabe=Drucker
CALL &BB4E   Cursor in erste Zeile setzen

jetzt wollte ich wissen ob es noch mehr giebt .
Title: Re: CALL und POKE
Post by: TFM on 12. February 2023, 15:31:38
Ja, jede Menge, guck in die beiden Links in den beidem Posts vor Deinem.
Da ist auch das System-RAM erklärt, und damit wird klar was man wo reinPOKEn kann.
Title: Re: CALL und POKE
Post by: HAL6128 on 12. February 2023, 18:11:05
...oder auch hier (http://www.cantrell.org.uk/david/tech/cpc/cpc-firmware/). Ich benutze die Firmware im PDF Format um schnell eine Sprung- oder Speicheraddresse zu suchen.
Title: Re: CALL und POKE
Post by: almasys on 12. February 2023, 19:02:37
Quote
CALL &BC00   Farben = normal
Ist &BC02.
Title: Re: CALL und POKE
Post by: FirstDefender on 13. February 2023, 14:23:06
Danke almasys für die Info

CALL &BD19   wartet bis Bild aufgebaut ist
geht nicht hat da jemand was anderes

Giebt es auch was in Deutsch Erklärt ?
Title: Re: CALL und POKE
Post by: eto on 13. February 2023, 14:50:19
Quote from: FirstDefender on 13. February 2023, 14:23:06
CALL &BD19   wartet bis Bild aufgebaut ist
geht nicht hat da jemand was anderes

Das ist die Routine, die wartet, bis der Bildschirm komplett aufgebaut ist. Die geht ganz sicher. Was meinst du mit "geht nicht"?

Quote from: FirstDefender on 13. February 2023, 14:23:06
Giebt es auch was in Deutsch Erklärt ?

In den Posts oben sind zwei Bücher verlinkt, die beide sehr viel und sehr gut erklären. Vor allem das Systembuch ist quasi "die Bibel". Es gibt leider keine Seite die das auf deutsch nochmal extrahiert und zusammengefasst hätte. Die beiden Bücher sind allerdings wirklich empfehlenswert um zu verstehen, wie der CPC so tickt.
Title: Re: CALL und POKE
Post by: TFM on 14. February 2023, 00:19:21
Quote from: FirstDefender on 13. February 2023, 14:23:06
Giebt es auch was in Deutsch Erklärt ?
Quote from: xesrjb on 11. February 2023, 21:29:43
https://www.cpcwiki.eu/imgs/6/6f/CPC_664-6128_intern.pdf
Title: Re: CALL und POKE
Post by: HAL6128 on 14. February 2023, 08:11:36
Quote from: FirstDefender on 13. February 2023, 14:23:06
Danke almasys für die Info

CALL &BD19   wartet bis Bild aufgebaut ist
geht nicht hat da jemand was anderes

Giebt es auch was in Deutsch Erklärt ?
Entspricht auch dem FRAME Befehl in Basic, um flimmerfrei Bildschirmanimationen darstellen zu können.
Title: Re: CALL und POKE
Post by: almasys on 14. February 2023, 16:47:55
Quote from: FirstDefender on 13. February 2023, 14:23:06
CALL &BD19   wartet bis Bild aufgebaut ist
geht nicht hat da jemand was anderes
Aus menschlicher Sicht ist eine 1/50 Sekunde praktisch sofort vorbei. Und länger wartest Du bei dieser Funktion auf keinen Fall.
Title: Re: CALL und POKE
Post by: BS_CPC on 22. December 2023, 13:08:49
Ich hatte mir damals das Buch "Peeks & Pokes zum CPC" von Data Becker gekauft.

Du findest es hier  :)
https://www.cpcwiki.eu/imgs/9/95/Peeks_und_Pokes_zum_CPC.pdf
Title: Re: CALL und POKE
Post by: TFM on 22. December 2023, 17:36:03
Danke für den Hinweis!  :smiley027:
Werde es gleich an unsere Sammlung hängen...

https://cpcwiki.de/forum/index.php/topic,282.0.html
Title: Re: CALL und POKE
Post by: SerErris on 05. June 2024, 21:02:23
Aeh die ganzen Calls sind im Firmware Handbuch beschrieben. Da steht alles ganz genau drin.

Warum die nicht funktionieren aus Basic, wie Du das Dir vorstellst?

Die meisten Funktionen in der Firmware benötigen Register mit bestimmten Werten belegt (Parameterübergabe via Register). Das ist aus Basic einfach so nicht möglich.

https://www.cpcwiki.eu/imgs/1/18/Schneider_CPC464_Firmware_Handbuch.pdf

Title: Re: CALL und POKE
Post by: SerErris on 13. June 2024, 18:17:32
Hi, ich habe hier grader per Zufall im ersten Schneider CPC Magazin das Tool Sesam gefunden.

https://acpc.me/ACME/LITTERATURE_REVUES/[GER]GERMAN/[GER][AMSTRAD]CPC_SCHNEIDER_MAGAZIN/01_CPC_MAGAZIN_1985-11+12(acme).pdf

Das Abgedruckte funktioniert nur mit einem 464 (habe aber ne universal disk erstellt).

Es hat aber den Befehl |XCALL mit dem man neben der Systemroutine eben auch noch die Register übergeben kann.

Damit ist dann das Problem mit den Firmware Routinen erledigt und man kann dann einfach das CPC Intern oder das Firmware Guide verwenden und alle Routinen aufrufen.

Beispiele sind auch enthalten, wie z.B. Tape schreiben und lesen mit 4000 Baud, was eben per BASIC nicht geht.

Viel Spaß mit sesam.