Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
z9001:basic_tipps [2010/07/19 12:35] volkerpz9001:basic_tipps [2021/05/06 14:07] (aktuell) – [BASIC-Tipps] volkerp
Zeile 3: Zeile 3:
 Was so alles an Tricks mit dem BASIC möglich war (entgegen der offiziellen Dokumentation), demonstriert vielleicht recht gut folgendes {{basictips.zip|BASIC-Programm}} (in einer Z1013-Version): Was so alles an Tricks mit dem BASIC möglich war (entgegen der offiziellen Dokumentation), demonstriert vielleicht recht gut folgendes {{basictips.zip|BASIC-Programm}} (in einer Z1013-Version):
  
-Das Programm startet nach dem Einlesen mit CLOAD"TIPS" automatisch, es wird ein Startbildschirm angezeigt, nach Druck auf ENTER wird das Programm aufgelistet. Der Startbildschirm erscheint nicht im Listing: Durch die Anweisung in Zeile 520 wird der erste Teil des Programms "unsichtbar". Im zweiten Teil ist dadurch sogar eine Neunummerierung der Zeilen möglich! Dieser Platz vor dem eigentlichen Programm eignete sich auch wunderbar für Maschinencode, der auch Nullbytes enthalten durfte und nicht erst umständlich aus DATA-Zeilen mittels POKE erstellt werden mußte.+Das Programm startet nach dem Einlesen mit CLOAD"TIPS" automatisch, es wird ein Startbildschirm angezeigt, nach Druck auf ENTER wird das Programm aufgelistet. Der Startbildschirm erscheint nicht im Listing: Durch die Anweisung in Zeile 520 wird der erste Teil des Programms "unsichtbar". Im zweiten Teil ist dadurch sogar eine Neunummerierung der Zeilen möglich! Dieser Platz vor dem eigentlichen Programm eignete sich auch wunderbar für Maschinencode, der auch Nullbytes enthalten durfte und nicht erst umständlich aus DATA-Zeilen mittels POKE erstellt werden musste.
  
 Als Mini-Programme eingelagert sind Routinen zum Auflisten von Kassetteninhalten (CLIST) und ein Debug-Zusatz zum Auflisten aller Variablen. Als Mini-Programme eingelagert sind Routinen zum Auflisten von Kassetteninhalten (CLIST) und ein Debug-Zusatz zum Auflisten aller Variablen.
 +
 +Beim ROM-BASIC muss man 10240 von den Speicherzellen abziehen (ROM-BASIC-Systemvariablen 300h-400h, RAM-BASIC 2B00h-2C00h).
 +
 +11101 = 861+10240\\
 +11103 = 863+10240\\
 +11229 = 989+10240 usw.
 +
  
      10 CLS:POKE8291,29      10 CLS:POKE8291,29
Zeile 166: Zeile 173:
   60280 !Volker Pohlers, Lomonossowallee 41/81, Greifswald, 2200   60280 !Volker Pohlers, Lomonossowallee 41/81, Greifswald, 2200
  
 +====== Programme mit MC-Vorspann ======
 +
 +Mein Hinweis zu http://www.sax.de/~zander/z9001/tip/tipj.html (BASIC-Programme sind ungewöhnlich lang)
 +
 +Wenn der Basic-Zeiger 863 manipuliert wurde, beginnt das BASIC-Programm nicht auf Adresse 401h, sondern irgendwo dahinter. Der Speicherplatz dazwischen steht dann für Maschinencode zur Verfügung. Beim Speichern mit CSAVE wird immer ab 401h abgespeichert.
 +
 +Diesen Freiraum bekommt man wie folgt weg:
 +
 +<code>
 +PRINT DEEK(863) --> wenn <> 1025, dann wurde ein MC-Teil davor aktiviert.
 +
 +DOKE 1025, DEEK(863) Zeilenende 1. Zeile auf Ende des Bereichs setzen
 +DOKE 1027,1 Zeilennummer 1 festlegen
 +DOKE (863), 1025 Basic-Zeiger rücksetzen
 +1 <Enter>               Zeile 1 löschen
 +fertig!
 +</code>
 +
 +Achtung: Im JKCEMU geht das nur bei Nutzung der Kassettenrekorderemulation. Beim direkten Laden von TAP, SSS, ZBS werden nicht alle BASIC-Pointer korrekt gesetzt!
  
 +Achtung2: 1025 gilt nur im ROM-BASIC!
  • z9001/basic_tipps.1279542933.txt.gz
  • Zuletzt geändert: 2010/07/18 22:00
  • (Externe Bearbeitung)