APPLICATIONSDIVERS ★ Der doppelte CPC ★

PS-MTS/128 : Multitasking auf CPC 6128 (CPC Amstrad International)Applications Divers
★ Ce texte vous est présenté dans sa version originale ★ 
 ★ This text is presented to you in its original version ★ 
 ★ Este texto se presenta en su versión original ★ 
 ★ Dieser Text wird in seiner Originalfassung präsentiert ★ 

Multitasking mit dem CPC 6123

Wie praktisch wäre es doch, wenn man eine rechenaufwendige Anwendung in den Hintergrund verlagern und im Vordergrund mit dem Rechner Weiterarbeiten könnte, wie es zum Beispiel beim Amiga möglich ist. Aber wenn der Amiga es kann, warum sollte es ein CPC dann nicht wenigstens ansatzweise auch können? Und tatsächlich, es geht (zumindest auf dem CPC 6128).

Das Prinzip zur Realisierung von Multitasking auf dem CPC 6128 ist einfach: eine Interruptroutine schaltet regelmäßig zwischen der ersten und der zweiten RAM-Bank um. Dadurch ist die Anzahl der Tasks zwar auf zwei beschränkt, aber im Normalfall dürfte das ausreichen. Außerdem ist der CPC für mehr als zwei gleichzeitig ablaufende Programme dann doch etwas langsam. Nun, die Methode klingt zwar einfacher als sie letztendlich ist, aber nach einigen Recherchen im Betriebssystem ist doch eine annehmbare Lösung entstanden.

Um das Multitaskingsystem auf Ihrem Rechner einzusetzen, haben Sie zwei Möglichkeiten:

1. Den Datalader aus Listing 1 abtippen und starten. Er speichert, sofern er fehlerfrei ist, automatisch die Datei 'PS-MTS.M-C.' auf Diskette ab. Sie enthält die Interruptroutine für das Multitasking.

2. Das Assemblerlisting (Listing 2) abtippen und assemblie-ren. Dann den M-Code unter dem Namen 'PS-MTS.M-C' abspeichern. Hierbei können Sie auch die Startadresse der Routine ändern, müssen dabei aber beachten, daß die Routine nicht im Bereich von 4000h bis 7FFFh plaziert werden darf, da hier bei der Initialisierung Speicherblöcke aus der zweiten RAM-Bank eingeblendet werden. Außerdem müssen Sie, wenn Sie die Startadresse geändert haben, die Start-adresse auch im Ladeprogramm 'PS-MTS.BAS' ändern (beim LOAD- beim CALL- und beim HIMEM-Befehl).

In beiden Fällen tippen Sie 'PS-MTS.BAS' (Listing 3) ab und speichern es auf der Diskette. Danach können Sie es PS-MTS/128 mit RUN“PS-MTS“ starten. Nach dem Start werden einige Initialisierungen vorgenommen, dann wird die Interruptroutine geladen und ins System eingebunden. Zum Schluß wird eine Meldung ausgegeben und angezeigt, in welcher Bank Sie sich befinden. Multitasking ist prinzipiell mit allen Programmen möglich, die die Interrupts nicht sperren, die Interruptroutine von PS-MTS/128 nicht überschreiben und die zweite RAM-Bank nicht benutzen. Probleme mit dem Multitasking können unter folgenden Bedingungen auf-treten:

— Beide Tasks greifen gleichzeitig auf dieselbe Diskette zu (es können Probleme auftreten, müssen aber nicht).
— Beide Tasks greifen gleichzeitig auf verschiedene Disketten(stationen) zu (das Auftreten eines Fehlers ist hierbei verhältnismäßig unwahrscheinlich)
— Task 1 (im Hintergrund) scrollt den Bildschirm hardwaremäßig. In diesem Fall wird der Videocontroller auf eine andere Startadresse im Video-RAM programmiert, und dies bringt auch den Bildschirm von Task 0 durcheinander. Verhindern können Sie ein hardwaremäßiges Scrollen des Bildschirmes durch Window 1,80,1,24 bzw. Window 1,40,1,24 im Mode 1. Durch diese Maßnahme wird bei Ausgaben in Fenster 0 nicht der gesamte Bildschirm, sondern nur die Zeilen 1 bis 24 gescrollt. Dies ist hardwaremäßig nicht möglich, und der Computer muß softwaremäßig scrollen. Allerdings kann es bei Ausgaben in die anderen Fenster trotzdem zu einem hardwaremäßigen Scrolling kommen. Sollte dies der Fall sein, können die anderen Fenster auch entsprechend definiert werden.
— Beide Tasks programmieren gleichzeitig den Soundchip: aus dem Lautsprecher kommt Mischmasch.
— Beide Tasks senden gleichzeitig Zeichen an den Drucker: der Drucker druckt Mischmasch.

Die Bedienung von PS-MTS/128:

Die Bedienung des Programms beschränkt sich im Prinzip auf eine Taste: die Punkttaste auf dem Zehnerblock. Wird diese Taste betätigt, so tauscht PS-MTS/128 Task 0 und Task 1 aus. Das heißt, der Task der bisher im Hintergrund lief, wandert in den Vordergrund und umgekehrt. Allerdings sollten Sie nicht in Panik geraten, wenn der Rechner zunächst nicht auf den Tastendruck zu reagieren scheint: das Austauschen dauert ein paar Sekunden. Während des Austausches gerät möglicherweise der Bildschirminhalt kurzzeitig gehörig durcheinander, aber das braucht Sie nicht weiter zu stören. Um zwei Programme parallel laufen zu lassen, starten Sie einfach das erste Programm im Vordergrund, tauschen dann Vorder- und Hintergrund mit < . > aus und starten das zweite Programm. Danach können Sie mit < . > zwischen beiden Programmen hin und her schalten. Sollten Sie auf die Idee kommen, im Hintergrund ein Uhrenprogramm laufen zu lassen, so müssen Sie dabei bedenken, daß sich die Interruptfrequenz halbiert. Ein EVERY 50 GOSUB wird also statt jede Sekunde nur jede zweite Sekunde ausgeführt! Außerdem fallen beim Umschalten der Tasks einige Interrupts aus, wodurch die Uhrzeit verfälscht wird. Wenn Sie in einem Programm wissen wollen, ob es momentan als Task 0 (im Vordergrund) oder als Task 1 (im Hintergrund) läuft, können Sie dies anhand der Speicherstelle A6B8h erfahren. Sie kann folgende Werte enthalten: - COh: Task 0 - C2h: Task 1. Bei einem anderen Wert ist der Rechner nicht im Multitasking-Betrieb, oder die Routine befindet sich an einer anderen Adresse als A530h. Um Komplikationen zu vermeiden, ist in Task 1 die Tastaturabfrage gesperrt. Um also Eingaben an ein Hintergrundprogramm zu übergeben, müssen erst die Tasks mit < . > ausgetauscht werden.

Viel Spaß beim Multitasken!

Dieter Höhmann/cd , CPCAI

★ PUBLISHER: CPC Amstrad International
★ YEAR: 1988
★ CONFIG: 128K + AMSDOS
★ LANGUAGE:
★ LiCENCE: LISTING
★ COLLECTION: CPC Amstrad International 1988
★ AUTHOR: Dieter Höhmann

★ AMSTRAD CPC ★ DOWNLOAD ★

Type-in/Listings:
» PS-MTS-Multitasking  auf  CPC  6128    (CPC  Amstrad  International)    GERMANDATE: 2021-08-10
DL: 11 fois
TYPE: ZIP
SIZE: 7Ko
NOTE: 40 Cyls
.HFE: NON

» PS-MTS-Multitasking  auf  CPC  6128    (Source)    (CPC  Amstrad  International)    LISTING    GERMANDATE: 2021-08-11
DL: 15 fois
TYPE: PDF
SIZE: 476Ko
NOTE: 2 pages/PDFlib v1.6

Je participe au site:
» Vous avez des infos personnel ?
» Vous avez remarqué une erreur dans ce texte ?
» Aidez-nous à améliorer cette page : en nous contactant via le forum ou par email.
★ AMSTRAD CPC ★ A voir aussi sur CPCrulez , les sujets suivants pourront vous intéresser...

Lien(s):
» Applications » Multicalc
» Applications » Multistatement Zeilen (CPC Amstrad International)
» Applications » Multiface Cat (Amstrad Action)
» Applications » Multiple Renaming
» Applications » Multiplan - Initiation (Amstrad Magazine)
» Applications » Multiplan

CPCrulez[Content Management System] v8.7-desktop/c
Page créée en 083 millisecondes et consultée 74 fois

L'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent  du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko.