===============
: BESCHREIBUNG :
===============
-Die aktuelle Version ist V5x2 [121] und die PRG-Datei kann dort als Dateianhang runtergeladen werden.
Programm zu Erstellen einer Grafik mit 80/40-Zeichen- Zeile.
Das Schreiben eines Textes erfolgt wie gewohnt mit den Buchstaben und Ziffern-Tasten,
Mit F1-F5 kann man zwischen verschiedenen Schriftarten umschalten.
Auch das Umschalten zwischen dem 1. und 2. Zeichensatz ist mit STOP möglich.
Auch ein Wechseln in den 40-Zeichen-Zeilen Modus ist mit SHIFT-STOP möglich.
Nach dem Editieren kann man das Programm mit CTRL+A abspeichern.
Nach dem Abspeichern ist das PRG als AUTO-Start-PRG ladbar mit load "name",8,1 .
STOP-RESTORE führt zum verlassen des EDITORS.
Man kann danach aber das PRG ohne Bitmapverlust neustarten mit GOTO oder RUN.
Bei RUN gehen natürlich die Farbeinstellung und Cursor-Einstellungen verloren.
Mit CTRL+I kann man die Orginaleinstellungen und Zeichensätze wiederherstellen.
Und mit CTRL+P kann man die Zeichensätze durch einen Zeichensatz, der ab 49152 liegt, ersetzen.
=================
: TASTEN-BELEGUNG :
=================
F1, F3, F5 : Schriftarten wechseln
F7 : Wechselt Schreibfarbe und Hintergundfarbe
CLR : Schirm löschen mit aktueller Farbe
STOP : Zeichensatz 1/2-Wechsel
SHIFT-STOP : 80/40 Zeichenzeilen-Modus
CTRL+A : Abspeichern als Autostart-PRG
SHIFT+9/0 : Reverse Zeichen an/aus
CTRL+1-8 : Farben 0-7
CBM+1-8 : Farben 8-15
CTRL+F : Rahmenfarbe einstellen
CTRL+I : Orginal-Zeichen installieren
CTRL+P : Zeichensatz von 49152 in aktuellen einfügen.
STOP-RESTORE : In den BASIC-EDIT-MODUS wechseln
Neustartbar mit GOTO oder RUN
-----------------------------------------------------
- 0 :rem---80/40-zeichen-v4
- 10 gosub25:gosub900
- 12 gosub41:gosub50:goto12
- 19 :
- 20 a$="z80-text":printchr$(147)a$:rem--save
- 21 poke806,60:poke770,174:poke771,167:poke43,254:poke44,2
- 22 open1,8,15,"s0:"+a$:close1:savea$,8
- 25 ifpeek(806)=60then:poke43,1:poke44,64:poke806,202:ifpeek(123)<64thenrun
- 26 sys58451:poke788,52:return
- 29 :
- 40 rem--crsr
- 41 poke53287,f/16:i=.:a=1:x=x-int(x/40)*40
- 42 ifpeek(198)then:geta$:c=peek(512):poke53269,.:return
- 43 ifithen:poke53269,a:i=i+1:on-(i<8)goto42:a=1-a
- 45 c=x*8+24:poke53248,cand255:poke53264,-(c>=256):poke53249,y*8+43:i=1:goto42
- 49 :
- 50 if(cand96)=.goto61:-ausgabe
- 51 i=int(y*40+x):n=gr+8*i:pokebr+i,f:a=zs+fnas(c)*8:x=x+gs
- 54 ifgs=1then:e=a+7:goto104
- 55 d=1+30*(x-int(x)):b=255-d*15
- 56 fori=.to7:poken+i,peek(n+i)andborfna(peek(a+i))*d:next:return
- 59 :
- 60 rem--s.tasten
- 61 d=cand127:ifd=29ord=20then:x=x+gs*(1+2*(c>32orc=20)):return
- 62 ifd=13ord=17then:x=x*-(d<>13):y=y-((c=17ord=13)andy<24)+(c=145andy>.)
- 63 ifc=3then:a=(zs/2048)and1:zs=zs+sgn(.1-a)*2048
- 64 ifd=18then:zs=int(zs/2048)*2048-1024*(c=18)
- 65 on-(d=19)-(c=19)goto90,92:ifc=136then:f=int(f/16):f=f-16*(f=.)
- 66 poke780,c:sys59595:ifpeek(781)<16then:f=(fand15)+16*peek(646)
- 67 oncgoto20:on-(c=9)goto960:ifc>132then:ond-4goto80,81,82
- 68 ifc=131then:gs=2^(gs=1):x=int(x)
- 69 ifc=6then:poke820,peek(820)+1and15
- 70 ifc=16then:a=49152:e=a+2047:n=int(zs/2048)*2048:goto102
- 78 goto95
- 79 :
- 80 deffna(a)=(aand2)/2+(aand24)/4+(aand64)/8:return
- 81 deffna(a)=(aand1)+(aand4)/2+(aand16)/4+(aand64)/8:return
- 82 deffna(a)=(aand2)/2+(aand8)/4+(aand32)/8+(aand128)/16:return
- 89 :
- 90 rem--cls
- 91 poke53265,43:n=.:a=gr:e=a+8000:gosub100:a=br:e=a+1000:n=f:gosub100
- 92 x=.:y=.
- 95 poke53277,gs:poke53272,56:poke53280,peek(820):poke53265,59:return
- 99 :
- 100 pokee,n:rem--kopy
- 101 n=a:a=a+1:gosub102:a=n:return
- 102 poke56334,.:poke1,51:gosub104:poke1,55
- 103 poke1,55:poke56334,1:return
- 104 d=256:b=e-a:c=int(b/d)*d:poke781,c/d+1:poke782,b-c+1and255:b=a+c:poke91,b/d
- 105 poke90,b-peek(91)*d:b=n+c:poke89,b/d:poke88,b-peek(89)*d:sys41964:return
- 119 :
- 900 rem--var
- 910 dimi,n,a,b,d:f=3:gosub80
- 920 br=3072:zs=4096:gr=8192:gs=.5
- 930 deffnas(a)=a+64*((a>63)+(a>191))-(a>95anda<128)*32+(a=255)*33
- 934 deffnp(a)=peek(a)+peek(a+1)*256
- 940 ifpeek(44)>8goto95
- 949 :
- 950 rem--inst.
- 952 n=16384:a=fnp(43)-1:e=fnp(49):poke9,(n-a)/256:gosub104
- 953 poke44,peek(44)+peek(9):poke46,peek(46)+peek(9):sys42291:poke58,99:run960
- 960 gosub900:a=br-64:e=a+63:n=.:gosub100:pokea+42,240:pokebr+1016,a/64
- 962 n=zs:a=53248:e=a+4095:gosub102,zeichen:gosub90:run/code]
Im Anhang dieses Artikels ist Listing V4.
Die neuste Version V5X2 ist als PRG-Datei in Artikel [121] als Anhang hinterlegt.
Schönen Gruß, Dirk