home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Magic Disk 64
/
Magic_Disk_64_88-03_1988_-_de_Side_B.d64
/
demo zu h.basic
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2023-02-26
|
7KB
|
131 lines
0 ifa=0thena=1:load"help basic*",8,1
1 sys49152:ifa=1thena=2:load"bild",8,1
3 ]c0,0,1:printchr$(14)+chr$(8) :gosub800
10 u$="[192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192]":b$="[194]efehlsuebersicht:"
11 h$="[147][200]inweise auf [200]elp [194]asic [214]0.1"
12 printh$:printu$:]@15,10:printb$:gosub900
13 gosub901:print"[159]]o":printu$:print"[196]ieser [194]efehl holt ein mit '[206][197][215]' ge- loeschtes ";
14 print"[208]rogramm wieder zurueck, fals vorher keine neuen [214]ariablen festgelegt"
15 print"wurden.":gosub900
16 gosub901:print"[159]]d":printu$:print"[205]it diesem [194]efehl kann das [196]irektory vom [198]loppy";
17 print" mitten im [208]rogramm durchge- sehen werden, ohne dass dabei das [208]ro-"
18 print"grammm selbst verloren geht.":gosub900
19 gosub901:print"[159]]@0-39,0-23":printu$:print"[196]ieser [194]efehl bedeutet '[208][210][201][206][212][193][212]'."
20 print"[196]amit kann man den [212]ext auf einer be- stimmten [208]osition lenken."
21 print"[196]ie erste [218]ahl steht fuer die [211]palte unddie [218]weite fuer [218]eile.":gosub900
22 gosub901:print"[159]]l 0-23":printu$:print"[200]iermit kann man die angegebene [218]eile";
23 print" vom [194]ildschirm loeschen.":print"[199]ut geeignet fuer '[201][206][208][213][212]':"
24 print"[159]10 [201][206][208][213][212]"+chr$(34)+"[218]iffer (1-9)"+chr$(34)+";z":print"11 ifz<1orz>";
25 print"9thenzeile=peek(214)-1: ]lzeile:]@0,zeile:goto10":gosub900
26 gosub901:print"[159]]close":printu$:print"[211]chliesst alle zuvor geoffneten ";
27 print"[198]iles.":gosub900
28 gosub901:print"[159]]print#":printu$:print"[196]ruckt den [201]nhalt des [194]ildschirms auf
29 [153]"einen angeschlossenen str$rucker auf ascile4 aus.
30 print"[196]as [198]ile muss jedoch vorher geoeffnet werden:[159]"
31 print"10 open1,4:]print#:]close":gosub900
32 gosub901:print"[159]]save [193]nf.adr.[159],[197]ndadr.[159]+1"+chr$(34)+"[206]ame"+chr$(34)+",8,1"
33 print""u$:print"[213]m ganz bestimmte [194]ereiche zu speichern ist dieser [194]efehl sehr";
34 print" hilfsbereit.":print"[211]omit koennen [199]rafik oder [211]prites vom [208]ro";
35 print"gramm aus, ohne viel [193]ufwand gespeichert werden.":gosub900
36 gosub901:print"[159]]c0-255,0-255,0-69":printu$:print"[205]it diesem [194]efehl ";
37 print"werden die einzelnen [198]arben gesetzt.":print"[196]ie erste [218]ahl steht ";
38 print"fuer den [210]ahmen,":print"die [218]weite fuer den [194]ildschirm, und die ";
39 print"dritte [218]ahl fuer die [218]eichenfarbe.":gosub900
40 gosub901:print"[159]]r oder[159] ]b oder [159]]rb":printu$
41 print"[196]amit lassen sich effektvolle [196]emos auf-bauen:"
42 print"[159]r steht fuer [210]ahmen":print"[159]b steht fuer [194]ildschirm"
43 print"10 fort=1to500:]rb:nextt:]c0,0,1":print"[196]emonstration 'd'":]wait"d"
44 forf=1to500:]rb:nextf:]c0,0,1:gosub900
45 gosub901:print"[159]]wait"+chr$(34)+"zeichen";chr$(34):print""u$
46 print"[215]artet auf [196]ruck einer bestimmten [212]aste.[196]abei koennen alle [218]eichen";
47 print" mit [193]usnahme von '[211][208][193][195][197]' verwendet werden.":gosub900
48 gosub901:print"[159]]goto [214]ariable":printu$:print"[196]ies ist eine [199]oto-[193]nweisung in";
49 print" der die [193]ngabe von [214]ariablen erlaubt ist:"
50 print"10 geth$:ifval(h$)<1orvalh$>9then10":print"11 ]goto val(h$)":gosub900
51 gosub901:print"[159]]mp,[211]priteblock":printu$:print"[196]ruckt das [205]uster ";
52 print"eines [211]prites auf dem [194]ildschirm.":print"[196]as ist ein sehr brauch";
53 print"barer [194]efehl um [211]piele zu durchleuchten, oder ueberhaupt[211]prites ";
54 print"auf einem [196]rucker auszugeben:":gosub902:gosub900:gosub901
55 print"[159]]f [193]dr.[159],0-147 und 178-255":printu$:print"[215]er ein [211]piel hat, in dem es viel zu
56 [153]"schwierig ist, eine (NULL)pielstufe weiter zukommen, der kann seinen ";
57 [153]"chr$egner einfach ausloeschen:":[153]"(NULL)uerst startet man left$elp peekasic,
58 print"danach laedt man ein [211]piel, und durch- sucht es mit[159] ";
59 print"]mp,[193]dresse nach geg- nerischen [211]pielfiguren. ";:gosub900:gosub943
60 print"[147]]mp,832":]mp,832:]@25,2:print"[215]enn man wie":]@25,3:print"hier einen
61 ]@25,4:[153]"chr$egner ge-":]@25,5:[153]"funden hat,":]@25,6:[153]"so kann man"
62 ]@25,7:[153]"ihn mit":]@25,8:[153]"']f832,0'":]@25,9:[153]"loeschen."
63 [141]900:]l0:[153]"]f832,0":[141]900:]l0:]@0,0:[153]"]mp,832"
64 ]f832,0:]mp,832:[141]900:[141]80
70 [143] gosub900
71 [141]901:[153]"open]poke,1024,2,,,":[153]u$:[153]"str$ies ist ein endloser (NULL)oke-peekefehl.
72 gosub900:gosub901:print"[159]]ornot,,,":printu$:print"[196]ies ist ein endloser [194]efehl um
73 [153]"ein bestimmtes peekit ein oder auszu- schalten."
74 [153]"chr$ut fuer chr$rafik:"
75 [153]"11 fori=1to2
76 print"10 ]ornot,53265,32,53272,7:wait"+chr$(34)+"w"+chr$(34)+":nexti
77 [141]900:][176][168],53265,32,53272,7:[141]900:][176][168],53265,32,53272,7
78 [141]901:[153]"open]p 0-65536":[153]u$:[153]"str$ieser peekefehl dient zur (NULL)ause."
79 [153]"1 = 14 ti":[141]900:[137]90
80 [141]901:[153]"open]spc((NULL)priteblockadresseopen)":[153]u$:[153]"(NULL)enn (NULL)ie (NULL)piele schreiben,
81 print"[211]piele veraendern, oder ganz schnell und ohne viel [193]ufwand einen [211]prite
82 [153]"zaubern wollen, dann geht das mit left$elp peekasic ganz schnell und einfach.
83 print"[211]ie benoetigen nur die [193]dresse in der [211]ie das [205]uster ablegen und ein";
84 print" bischen [198]ingerspitzengefuehl.":print"[205]it diesem [194]efehl, dort oben ";
85 print"koennen [211]ieblitzschnell ein [205]uster vom [194]ildschirm zum [211]prite schicken.
86 [153]"atnuf der folgenden (NULL)eite koennen (NULL)ie es nun ausprobieren."
89 [141]900:[137]911
90 [141]901:[153]"open]end":[153]u$:[153]"(NULL)it diesem peekefehl wird die valrweiterung
91 print"ausgeschaltet."
92 print"[206]och mal von vorn (j/n):"
93 getk$:ifk$=""then93
94 ifk$="j"ork$="[202]"thenrun
95 print"[147]":]@18,10:print"[197][206][196][197]":fort=1to255:]rb:next:fort=1to255:]r:next
96 sys49152:end
800 sys49152:print"ready.":fort=0to35:]@t,15+(3*sin(t/(NULL))):print"demo"
801 ]c0,0,t:nextt:fort=1to555:]r:next:gosub900:]c0,0,1:print"[147] 18 neue [194]efehle"
802 print"[211]ie haben es hier mit einem inteligentem[208]rogramm zu tun!":]p2
803 print"[215]arum ???":]p4:print"[200]elp [194]asic ist eine [197]rweiterung die es in ";
804 print"sich hat.":]p4
805 print"[196]enn sie kann an jeder x-beliebigen [211]telle im [211]peicher stehen."
806 ]p2:print"[196]iese [197]rweiterung fuehrt keine direkten [211]pruenge aus und enthaelt ";
807 print"kleine selb- staendige [205]odule, die man beliebig erweitern kann.
808 [153]"left$elp peekasic (NULL)0.1 benutzt die (NULL)peicher- zellen 251-254.":[141]900
809 [153]"loadstr$as inteligente der valrweiterung ist der kleine (NULL)usatz mit dem der ";
810 [153]"(NULL)eiger 776-777auf diese valrweiterung gestellt wird:"
811 [153]": clc":[153]": lda 20":[153]": adc #16":[153]": sta 776":[153]": lda 21
812 print": adc #00":print": sta 777":print": rts":print": ab hier steht das [208]rogramm.":gosub900
813 print"[147][196]iesen [212]rick kann man auch fuer [208]rogramme, welche im [201]nterrupt
814 [153]"laufen, benutzen.":]p3
815 [153]"str$adurch faellt das laesstige rechnen undaendern der (NULL)eiger weg."
816 [153]"(NULL)or allem wenn man das (NULL)rogramm dann verschieben moechte:":[153]"828: sei"
817 [153]"829: clc":[153]"830: lda 20":[153]"832: adc #18 close828+(18+0*256)=846
818 print"834: sta 788":print"837: lda 21":print"839: adc #00"
819 print"841: sta 789":print"844: cli":print"845: rts"
820 print"846: ab hier kann ein [208]rogramm stehen, das mit jmp 65593 beendet";
821 print" wird.":gosub900:t=0: return
900 ]@0,24:print"[215]eiter mit 'w'":poke198,0:]wait"w":return
901 t=t+1:printh$:]@0,3:printbn$;t:printu$:return
902 ]@0,23:print"[196]emo mit 'd'":]wait"d":print"[147]]mp,832":]mp,832:]@0,23
903 print"[193]uf dem [196]rucker (j/n)"
904 geto$:ifo$=""then904
905 ]l23:ifo$="j"oro$="[202]"thenopen1,4:]print#:]close
906 return
911 print"[147][193]ls [194]eispiel wollen wir nun ein [211]prite erstellen, der sein [205]uster ";
912 print"aus [193]dresse 13*64=832 nimmt."
920 print"[196]azu malen [211]ie jetzt auf den nicht mar- kierten [198]eld eine [194]ild.
922 [153]"(NULL)erwenden (NULL)ie beim (NULL)eichnen ruhig alle (NULL)eichen.":[141]900:[153]"load"
923 [141]940:]@25,0:[153]"(NULL)urueck mit '_'":[153]"clrto";
926 [161]k$:[139]k$[178]""[167]926
927 [139]k$[178]""[167][153]k$[170][199](13);
928 [139]k$[178]"load"[167]923
929 [139]k$[178]"_"[167]931
930 [153]k$;:[137]926
931 ]c0,0,2:[141]940:[153]"open]f832,0:]spc(832): <return> ":]@0,1
932 [161]k$:[139]k$[179][177][199](13)[167]932
933 ]f832,0:][166]832)
934 [141]900:]c0,0,1:[151]53269,0:[153]"load":[142]
940 [129]h[178]1024[164]1050:[151]h,224:[130]h
941 [129]h[178]1048[164]1965[169]40:[129]j[178]h[164]h[170]15:[151]j,224:[130]j:[130]h:]f1960,224
942 ]f1944,224:]f1904,224
943 ][151],53248,255,53249,165,53269,1,53271,1,53277,1,2040,13:[142]