home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Tiger Disk 5
/
Tiger_Disk_005_19xx_Tiger-Crew-Disk_de_Side_B.d64
/
10_2lektion
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2023-02-26
|
4KB
|
92 lines
1 poke45,peek(174):poke46,peek(175):clr:poke788,52:poke657,128
2 poke53280,1:poke53281,1:goto16
3 print"[147]":fori=1to39:printc$;:next:fori=1to22:print"[157]"c$;:next:print"[157]";
4 fori=1to38:print"[157]"c$"[157]";:next:printc$
5 fori=1to23:print"[145]"c$"[157]";:next:return
7 geta$:ifa$=""then7
8 print:return
16 z$=chr$(34):c$="[166]":gosub3:print""tab(13)"lektion 10"
17 printtab(13)"fortsetzung"
18 gosub7
20 print"[147]":printtab(6)" hochaufloesende graphik [146]"
30 print"eine maximale aufloesung von":printtab(6)"[129]200 x 320 bildpunkten"
40 print"laesst sich durch belegen eines be-":print"stimmten speicherbereiches mit einem
50 [153]"forbitmuster, das dem gewuenschten graphen":[153]"entspricht, erreichen."
60 [153]"dieser bereich wird dann auf dem bild-":[153]"schirm abgebildet."
70 [153]"dieses verfahren nennt man":[153][163]10)"# forbitmapping #."
80 [153]"hierzu muss zuerst das forbit 3 in der":[153]"foradresse 53272 gesetzt werden."
90 [153]"dies bewirkt, dass der speicherbereich":[153]"ab 8192 fuer das forbitmapping";
100 [153]" benutzt":[153]"wird.":[141]7:[153]"load"
110 [153]"um diesen bereich auf dem bildschirm":[153]"abzubilden, muss nun noch das";
115 [153]"for bit 5"
120 [153]"in foradresse 53265 gesetzt werden.":[153]"dies schaltet den forbit-";
130 [153]"map-mode ein."
140 [153]"nun besteht noch das problem, einen":[153]"vorgegebenen graphen (also eine";
150 [153]" funktion";:[153]"usw.) in ein bitmuster umzurechnen."
160 [153]"eine einfache methode, angewandt auf"
170 [153]"eine sinus-funktion, zeigt das fol-"
180 [153]"gende programm.":[153]"soll eine andere funktion f(x) ge-"
190 [153]"zeichnet werden, so muss diese in zeile"
200 [153]"60 in der form y = int(f(x)) wait ein-"
210 [153]"gesetzt werden.":[153]" achtung wait : folgende grenzen fuer ";
220 [153]"x und":[153][163]12)"y sind zu beruecksichtigen:":[153][163]12)"0<x<319 und 0";
225 [153]"<y<199"
230 [141]7:[153]"load"
240 [153][163]10)" sinus-funktion wait"
250 [153]" 10 poke53272,peek(53272)or8
252 print" 20 poke53265,peek(53265)or32
254 [153]" 25 fork=0to999:poke1024+k,14:next
256 print" 27 fori=0to7999:poke8192+i,0:next
258 [153]" 50 forx=0to319
260 print" 60 y=int(100+80*sin(x*2*[255]/160))
262 [153]" 70 forn=0to24
264 print" 80 ify>n*8-1andy<(n+1)*8thenby=8192+n*"
266 print" 320+8*int(x/8)+y-8*n:n=24:goto100"
268 print" 90 nextn
270 [153]"100 bi=8*(1+int(x/8))-x-1
272 print"110 ifpeek(by)<>0thenpokeby,peek(by)or2^ bi"
274 print"120 ifpeek(by)=0thenpokeby,2^bi"
276 print"130 nextx"
280 gosub7:print"[147]"
290 print"zeile 10: bereich fuer bitmapping":printtab(11)"ab 8192."
300 print"zeile 20: bitmapmode wird einge-":printtab(11)"schaltet."
310 print"zeile 25: wahl der farbkombination."
320 print"zeile 27: bildschirm wird geloescht."
330 print"zeile 60: funktion"
340 print"zeile 80: nummer des bytes wird be-":printtab(11)"rechnet."
350 print"zeile 100: bitmuster wird berechnet."
360 print"zeile 110: prueft, ob ein bit gesetzt":printtab(5)"+120: ist."
370 print"bem.: andere farbkombination durch"
375 printtab(6)"aendern des gepokeden wertes":printtab(6)"(zeile 25)."
380 printtab(6)"bildschirmfarbe: untere 4 bits "
385 printtab(6)"farbe des graphen: obere 4 bits"
390 printtab(6)"d.h. unteres u. oberes nybble"
400 gosub7:print"[147]"
410 poke53272,peek(53272)or8
420 poke53265,peek(53265)or32
425 fork=0to999:poke1024+k,14:next
427 fori=0to7999:poke8192+i,0:next
450 forx=0to319
460 y=int(100+80*sin(x*2*(NULL)/160))
470 forn=0to24
480 ify>n*8-1andy<(n+1)*8thenby=8192+n*320+8*int(x/8)+y-8*n:n=24:goto500
490 nextn
500 bi=8*(1+int(x/8))-x-1
510 ifpeek(by)<>0thenpokeby,peek(by)or2^bi
520 ifpeek(by)=0thenpokeby,2^bi
530 nextx
540 gosub7:poke53272,21:poke53265,27
550 poke53280,1:poke53281,1:print"[147]"
560 gosub3:print" ende von lektion 10 [146]"
570 print"sind sie bereit fuer lektion 11?"
580 print"(j/n) ?"
590 getb$:ifb$=""then590
600 ifb$="n"then700
610 ifb$<>"j"then590
614 print" bitte warten! "
616 print" lektion 11 wird geladen. "
617 print" "
620 load"11/1lektion",8
700 fori=1to700:nexti
720 sys64738