CODINGLISTINGS ★ SCROLL MESSAGE : LAUFSCHRIFTEN IN ASSEMBLER (CPC AMSTRAD INTERNATIONAL) ★

Scroll Message : Laufschriften in Assembler (CPC Amstrad International)Coding Listings
★ 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 ★ 

Ready to use Tip

(geschrieben mit dem HISOFT DEVPAC-Assembler GENA3.1)

Spieleprogrammierer, die komplette Games oder Teile (Unterprogramm-Routinen) in Maschinensprache schreiben, brauchen auch irgendwann einmal ein (Unter-) Programm, das eine beliebig lange Laufschrift auf dem Bildschirm ausgibt.

Um eine ausreichende Geschwindigkeit zu erzielen, ist man zwangsläufig auf die Maschinensprache-Ebene angewiesen. Wenn man das Ganze mit direkter Bildschirm- und Speichermanipulation, oder mit OUTs und ähnlichen Scherzen realisiert, so erreicht man akzeptable Laufzeiten und fließende Bewegungen (zum Beispiel: Manie Miner, Kong Strikes Back oder Ghostbusters), doch sind solche Verfahren äußerst komplex und schwieriger zu programmieren (und auch zu erklären!). Oder sie sind ausreichend schnell, aber unflexibel (zum Beispiel: DATA BECKER; CPC Tips & Tricks Band 2, Seite 170 ff.).

Hier zunächst wieder einmal eine relativ einfache Lösung, bei der die Geschwindigkeit noch akzeptabel ist:

  1. Anfangsadresse des auszugebenden Textes und auszugebende Textlänge holen.
  2. Koordinaten für die Ausgabeposition holen.
  3. Text ab der angegebenen Anfangsadresse ausgeben (mit der geholten Textlänge).
  4. Anfangsadresse um 1 Byte erhöhen.
  5. Feststellen, ob schon das Textende erreicht ist (gekennzeichnet durch ein gesetztes 7. Bit oder, wie in unserer Lösung, durch ein Nullbyte).
  6. Falls dies noch nicht der Fall ist, weiter mit Programmschritt 3.

Um dieses Unterprogramm in eigenen Spielen (oder auch Anwendungen) zu benutzen, sind hier noch einige Tips:

— Benutzte Register beim Einsprung:
HL: Textadresse
D: X-Koordinate der Ausgabeposition
E: Y-Koordinate der Ausgabeposition
BC: Auf dem Bildschirm auszugebende Textlänge

— Ab der in HL angegebenen Adresse muß der Text im Speicher stehen: Man sollte vor dem eigentlichen Text so-viele Leerzeichen anfügen wie in BC (Textlänge) angegeben, genauso am Ende des Textes. Das hat den Vorteil, daß der gewünschte Text rechts hereingescrollt wird und wieder links komplett hinaus gescrollt wird, so daß dieser Bildschirmabschnitt wieder so vorliegt, wie vorher.

— In einem Spiel empfiehlt es sich, abzufragen, ob eine Taste gedrückt worden ist: Dies könnte man in Zeile 1585 ändern.

So könnte Sich einer, der ein Spielchen wagen will, und ewig vor einer Laufschrift hockt, zu Tode langweilen.

Ein Beispiel für eine kurze Anwendung:

Fügen Sie bitte ein:

1011 bsp: ld hl,text
1012 ld d,1
1013 ld e,1
1014 ld bc,20
1015 call scrmes
1016 ret
1017
1018 text: defm “
1019 defm “Hallo, Leute ... Das“
1020 defm “ist ja 'n Hammer !“
1021 defm “ “
1022 defb 0
1023

Falls einer von Euch eine schnellere, bessere, elegantere (oder was auch sonst) Routine hat, schickt sie uns doch mal zu! Jungs, und immer mit Taktzyklen geizen ...

Eckehart Röscheisen ,CPCAI

★ PUBLISHER: CPC Amstrad International
★ YEARE: 1986 , 1987
★ CONFIG: 64K + AMSDOS
★ LANGUAGE:
★ LiCENCE: LISTING
★ COLLECTION: CPC AMSTRAD INTERNATIONAL 1987
★ AUTHOR: Eckehart Röscheisen
 

★ AMSTRAD CPC ★ DOWNLOAD ★

Type-in/Listing:
» Scroll  Message-Laufschriften  in  Assembler    (CPC  Amstrad  International)    ENGLISH    LISTINGDATE: 2021-08-11
DL: 150
TYPE: PDF
SiZE: 199Ko
NOTE: geschrieben mit dem HISOFT DEVPAC-Assembler GENA3.1 ; 2 pages/PDFlib v1.6

★ AMSTRAD CPC ★ A voir aussi sur CPCrulez , les sujets suivants pourront vous intéresser...

Lien(s):
» Coding Src's » Rotina Para Scroll Parcial (Amstrad Magazine)
» Coding Src's » Big Scroll en Overscan
» Coding Src's » Mode 0 Scroll Routine: 4 Bits Per Second (Jason Brooks)
» Coding Src's » Scroll Text (Duffy / NDC )
» Coding » Logon System ACPC n°48 - Les scroll hard vertical
» Coding Src's » Vertical Message Scroll Routine (Jason Brooks)
Je participe au site:
» Pour ce titre nous ne disposons de fichier executable sur CPC (Saisie du listing) , alors si vous avez ça dans vos cartons ou vous désirez usé vos petit doigts boudinés sur votre clavier faites le nous savoir.
» 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.

CPCrulez[Content Management System] v8.7-desktop/c
Page créée en 447 millisecondes et consultée 769 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.