80-Bus Journal

  

April​/​Mai​/​Juni 1984 · Ausgabe 2

SPRITE-Editor

von Peter Brendel

USR-Routinen

Nascom-User, die mit ihrem Rechner etwas Vernünftiges tun, können diesen Beitrag vergessen. Die USR-Routinen sind vor allem als Hilfe für Spieleprogrammierer gedacht. Eigentlich ist der Nascom ja alles andere als ein Spielcomputer; denn unsere Grafik ist, wie wir alle wissen, gelinde gesagt bescheiden. (Du mußt dir eben die neue Grafikkarte zulegen! Günter).

Durch die USR-Routinen wird die Grafik leider auch nicht besser. Allerdings kann man mit ihnen einige Sachen machen, die in Basic nicht möglich wären.

Vor der Beschreibung der USR-Routinen jedoch die Beschreibung des USR-Befehls.

Mit USR(xx) kann man das Basic-Programm verlassen, um ein Maschinenunterprogramm ausführen zu lassen. Dabei kann man sowohl einen Wert aus dem Basic ins Maschinenprogramm als auch umgekehrt übergeben.

Vorher muß man die Startadresse des Masch. Progr. in USRLOC (4100 dez) ein-„doken“. In den meisten Fällen wird das wohl #C80 d.h. 3200dez sein. Mit „CALL #E98B“ wird der Inhalt der Klammer ins DE-Register geladen. Will man ein Rechenergebnis ins Basic übergeben,​lädt man das Low-Byte ins B, das High-Byte ins A-Register und springt mit „JP #F0F2“ ins Basic zurück. (Es gibt noch die Möglichkeit mit „RET“, aber darüber möchte ich mich nicht auslassen, weil ich nicht weiß, warum es funktioniert).

Jetzt aber die Beschreibung der USR-Routinen.

Grundsätzlich unterscheidet das Programm zwei Eingaben:

USR (kleiner 255) und USR (größer 255)

>255 wird als Adresse behandelt. Das Programm hält die Adresse fest, und alle späteren Eingaben beziehen sich auf diese Adresse.

USR (0-16) sind verschiedene Hilfsprogramme.

USR (0) ist die INKEY-Routine (geklaut bei Pack-Mann von Herrn Schröder)

USR (12) verschiebt die Zeilen 1-15 um eine Stelle nach links, USR (13) nach rechts.

USR (14) kopiert den Speicherbereich (1024 Bytes), dessen Anfang vorher mit USR (xxxx) festgelegt wurde, in den Bildschirm.

USR (15) füllt einen Bereich von 1024 Bytes, dessen Anfang vorher mit USR (xxxx) festgelegt wurde, mit Spaces.

USR (16) verschiebt die Zeile 16 um eine Stelle nach links (Laufschrift).

USR (1-10) rufen Bilder auf, die aus einzelnen Grafikzeichen aufgebaut sind. Diese Bilder müssen am Anfang des Programms einmal definiert werden. Dazu werden die horizontalen und vertikalen Abmessungen in die Speicherzellen 3541=Horiz. und 3542=Vertik. eingetragen. (POKE)

Dann das eigentliche Bild im gleichen Raster in der Reihenfolge, wie man liest, wobei die linke obere Ecke der erste Speicherplatz des entsprechenden Bildes ist (Siehe Tabelle).

Hat ein Bild mehr als 25 Speicherplätze, darf die nächste Bild-Nr nicht verwendet werden.

Das Bild wird dort erzeugt, wo es vorher mit USR (xxxx) festgelegt wurde.

USR (11) füllt den Raster, der vorher mit USR (xxxx) festgelegt wurde, mit Spaces. (Bild loeschen)

Tabelle

BILD 1

3543

BILD 2

3569

BILD 3

3595

BILD 4

3621

BILD 5

3647

BILD 6

3673

BILD 7

3699

BILD 8

3725

BILD 9

3751

BILD 10

3777


Seite 24 von 52