★ APPLICATIONS ★ PROGRAMMATION ★ Split Screen - mehr Farbe, mehr Mode... ★![]() |
| Split Screen (CPC Amstrad International) | Applications Programmation |
Zuerst möchte ich mich bei allen CPC 664- und CPC 6128-Usem entschuldigen, die in der Ausgabe 11/1986 von »CPC International« das Grundprogramm zum Artikel »Jetzt wirds bunt — Gate Array mit Pep« abgetippt und eine böse Überraschung erlebt haben. Denn dieses Programm war nur für den CPC 464 konzipiert. Zur Wiedergutmachung finden Sie in dieser Ausgabe das korrekte Listing in DATAs und Assembler, sowie eine RSX-Erweiterung für Ihre CPCs. Außerdem wurde das letzte Assembler-Listing ein Opfer des Layouts: Es wurde in der falschen Reihenfolge zusammengesetzt, ist aber vollständig und auf dem CPC 464 lauffahig. Anfangs war das Programm als richtige BASIC-Erweiterung geplant (und auch schon fast fertig), aber um auch die anderen CPC-User (664/6128) zufriedenzustellen, wurde es in eine RSX-Erweiterung umgearbeitet. Denn der CPC 464 ist ja bekanntlich der einzige mit BASIC-Patches im RAM. Zu der Erweiterung ist eigentlich nicht viel zu sagen, sie soll nur der Veranschaulichung und Demonstration des vorigen Artikels über den geteilten Bildschirrr dienen. Wer e ne ernsthafte Benutzung in Betracht zieht, ist mit dem Assembler-Grundprogramm besser bedient Es lass____h Änderungen und Vereinfachungen einbauen. Die Grundlagen dazu wurden ja erklärt. Aber man sollte sich immer zuerst überlegen, ob sich der Aufwand lohnt, solch einen geteilten Bildschirm zu installieren. Doch nun zu unserem RSX-Häppchen:
Schalten Sie bei jedem Diskettenzugriff unbedingt den Interrupt durch |SPLIT.OFF an Ansonsten kommt es entweder zu einem unschönen Farbflackern oder sogar zu Systemabstürzen. So behalten Sie Ihr Programm und Ihre Farben, und können den Interrupt danach wieder problemlos mit |SPLIT.ON einschalten. Zur Programmierung stehen folgende RSX-Befehle zur Verfügung: |SPLIT.BORDER, bar, border : Setzt für den Balken (1-4) einen rechts- und linksseitigen Rand (0-27), der bei laufendem Interrupt ausgegeben werden kann. Wird eine falsche Anzahl von Parametern übergeben, so springt das Programm ohne Bearbeitung ins BASIC zurück. Falls eines der beiden gelesenen Lowbytes nicht im legalen Bereich ist, wird genauso verfahren. |SPLIT.DELAY, bar, delay : Ordnet dem Balken (1-4) einen Verzögerungswert (0-255) zu, der die Balkenbreite reguliert. Dieses Kommando sollte bei ausgeschaltetem Interrupt angewandt werden (siehe |SPLIT.OFF). Es wird nur das Lower-Byte gelesen. Wird eine falsche Anzahl von Parametern übergeben, so springt das Programm ohne Bearbeitung ins BASIC zurück. |SPLIT.INK, bar, ink, col : Ordnet im Balken (1-4) dem Ink (0-16) einen Farbwert (0-27) zu. Ist der Balken angeschaltet, wird der Farbwert sofort ausgegeben, ansonsten erst beim Einschalten (siehe |SPLIT.ON, bar). Wird eine falsche Anzahl von Parametern übergeben, so springt das Programm ohne Bearbeitung ins BASIC zurück. |SPLIT.MODE, bar, mode : Ordnet dem Balken (1-4) einen Hardwaremode (0-2) zu. Ist der Balken in Betrieb, so wird dieser sofort ausgegeben, ansonsten erst beim Einschalten des Balkens. Der Modus sollte im Normalfall dem mit MODE eingestellten Modus entsprechen. Wird eine falsche Anzahl von Parametern übergeben, so springt das Programm ohne Bearbeitung ins BASIC zurück. |SPLIT.OFF : Schaltet den Interrupt für die Steuerung der Farben ab, ohne dabei die definierten Werte zu zerstören. Ein ausgeschalteter Interrupt kann jederzeit wieder eingeschaltet werden (siehe |SPLIT.ON). Für Diskettenkommandos empfiehlt sich dieser Befehl, weil es sonst zu unschönem Farbflackern oder sogar zu Systemabstürzen kommen kann. |SPLIT.OFF, bar : Schaltet nur einen mit bar definierten Balken (1-4) ab, ohne dessen definierte Werte zu zerstören. Ein so ausgeschalteter Balken kann jederzeit wieder eingeschaltet werden (siehe |SPLIT.ON, bar). Wird die falsche Anzahl von Parametern übergeben, so springt das Programm ohne Bearbeitung ins BASIC zurück. |SPLIT.ON : Schaltet den Interrupt für die Steuerung der Farben wieder ein und gibt wieder die vorher definierten Farben aus. (Siehe auch |SPLIT.OFF). |SPLIT.ON, bar : Schaltet den mit bar (1-4) definierten Balken wieder ein, und übergibt diesen dem laufenden Interrupt. Die vorher definierten Werte sind erhalten geblieben. Wird die falsche Anzahl von Parametern oder eine falsche Parametergröße angegeben, so springt das Programm ohne Bearbeitung ins BASIC zurück. Studieren Sie doch einmal das Beispiel-Listing, dann wird das Erklärte sehr schnell klar ... An Fragen und Anregungen sind wir übrigens immer sehr interessiert.
|