POSITION Befehl austricksen


POSITION Befehl austricksen

von FlorianD » Mo 2. Okt 2017, 20:16
Hallo,

wenn ich z.B. bei einem GR.2+16 Bildschirm (12 Zeilen) noch eine Zeile Zeile dranhänge, in dem ich die Display List ändere, kann ich nicht POS.0,12 machen, ich bekommen dann einen ERROR 141 Cursor out of Range.
Wie kann ich den ATARI austricksen bzw. überzeugen, dass da noch Platz ist? Gibt es da eine Speicherzelle, die den Maximalwert speichert? Ich hab im Mapping und Profibuch nichts gefunden (was nicht heißt, dass da nichts drin ist).

Grüße,
F.

Re: POSITION Befehl austricksen

von atarixle » Mo 2. Okt 2017, 20:29
ich würde den Bildschirmspeicher "verschieben":

PST=DPEEK(88)
DPOKE 88,PST+20
POS.0,11:?#6;"tada";

Re: POSITION Befehl austricksen

von atarixle » Mo 2. Okt 2017, 21:11
PS:

mit POKE 87,1 kannst du dem OS auch eine Grafikstufe mit 24 Zeilen vorgaukeln.

POS.0,12:?#6;"tada";

führt dann zu keinem Fehler mehr.

Stelle aber sicher, dass du nicht drunter schreibst, wenn dort der Speicher nicht frei ist.

BTW, ist der Speicher für die zusätzliche Zeile denn überhaupt frei?

Anstatt einen GR.2-Bildschirm zu erweitern, sollte man besser einen GR.1-Bildschirm einschränken, dann macht auch das OS mit.

Re: POSITION Befehl austricksen

von FlorianD » Mo 2. Okt 2017, 21:42
Hallo,

danke!!!!

Sehr gute Idee mit dem GR.1 als Ausgangsbasis, damit habe ich genug Speicher sicher.

Code: Alles auswählen
BYTE DL=[112 112 112 71]
CARD SCMEM
BYTE DLL=[
7 7 7 7
7 7 7 7
7 7 7 2
65]
CARD JDL

PROC MAIN()   
 BYTE CONSOL=53279,
      I
 CARD SDLSTL=560,
      SCRM=88
       
 GRAPHICS(17)

 SCMEM=SCRM
 JDL=@DL
 SDLSTL=JDL

 FOR I=0 TO 13 DO
 PRINTDE(6,"*")
 OD   
 DO
  UNTIL CONSOL=6
 OD
RETURN