1 REM Ins{nd av Bengt Holgersson <559> 1986-03-09 16.16.48 10 REM GRAFIKRUTINER F\R ABC80 (Ver. 860309) BH 20 REM ---------------------------------------- 30 REM Best}r av f|ljande delrutiner: 40 REM 50 REM CALL(A%) Raderar sk{rmen och s{tter den i grafisk mod 60 REM 70 REM CALL(A%+3%,V{rde) S{tter mod f|r ritningsfunktionerna 80 REM V{rde=0 -> Rita med svart f{rg 90 REM V{rde<>0 -> Rita med vit f{rg 100 REM 110 REM CALL(A%+6%,Kolumn+SWAP%(Rad)) Rita en punkt 120 REM 130 REM CALL(A%+9%,Kolumn+SWAP%(Rad)) Rita en linje 140 REM 150 REM CALL(A%+12%) Invertera grafiskt inneh}ll p} sk{rmen 160 REM 170 REM CALL(A%+15%,Radie) Ange radie f|r cirkelritning 180 REM 190 REM CALL(A%+18%,Kolumn+SWAP%(Rad)) Rita cirkel med angivet centrum 200 REM Ritar symmetriska cirklar snabbt 210 REM (P} sk{rmen blir det snarare elipser) 220 REM 230 REM Se demonstration l{ngre fram i programmet 240 REM 250 REM OBS ! Ni som bara har kassett M]STE {ndra stackpekaren innan ni 260 REM OBS ! laddar dessa rutiner. 270 REM Ex: 280 REM 10 POKE 65063%,63488%,SWAP%(63488%) 290 REM 20 CHAIN 'GRAFIK' 300 REM 310 IF (PEEK(65063%)+256*PEEK(65064%))>63488 ; CHR$(7%)'FATALT FEL! L{s instruktionerna.' : END 320 REM >>>> L{gg maskinspr}ksprogram i DOSBUF 3-5 <<<< 330 POKE 63488%,195%,21%,248%,195%,66%,248%,195%,83%,248%,195%,131%,248%,195%,139%,249%,195% 340 POKE 63504%,190%,249%,195%,198%,249%,221%,229%,221%,33%,116%,3%,6%,24%,197%,221%,110% 350 POKE 63520%,0%,221%,102%,1%,54%,23%,35%,54%,32%,84%,93%,19%,58%,78%,2%,61% 360 POKE 63536%,6%,0%,79%,237%,176%,221%,35%,221%,35%,193%,16%,225%,33%,0%,0%,221% 370 POKE 63552%,225%,201%,122%,179%,33%,0%,182%,32%,3%,33%,47%,166%,34%,116%,248%,33% 380 POKE 63568%,0%,0%,201%,237%,83%,182%,249%,213%,123%,254%,2%,56%,33%,6%,0%,96% 390 POKE 63584%,74%,107%,58%,238%,34%,254%,124%,123%,40%,5%,205%,236%,34%,24%,3%,205% 400 POKE 63600%,238%,34%,56%,10%,0%,182%,246%,32%,119%,33%,0%,0%,24%,3%,33%,255% 410 POKE 63616%,255%,209%,201%,205%,87%,248%,216%,42%,182%,249%,235%,34%,182%,249%,62%,1% 420 POKE 63632%,50%,186%,249%,50%,187%,249%,124%,146%,50%,185%,249%,48%,10%,237%,68%,50% 430 POKE 63648%,185%,249%,62%,255%,50%,187%,249%,125%,147%,50%,184%,249%,48%,10%,237%,68% 440 POKE 63664%,50%,184%,249%,62%,255%,50%,186%,249%,58%,184%,249%,254%,0%,32%,6%,58% 450 POKE 63680%,185%,249%,254%,0%,200%,58%,184%,249%,71%,58%,185%,249%,144%,48%,94%,58% 460 POKE 63696%,184%,249%,203%,63%,71%,58%,185%,249%,144%,50%,188%,249%,62%,0%,222%,0% 470 POKE 63712%,50%,189%,249%,58%,184%,249%,71%,197%,205%,87%,248%,58%,189%,249%,230%,128% 480 POKE 63728%,32%,31%,58%,185%,249%,71%,58%,184%,249%,144%,71%,58%,188%,249%,144%,50% 490 POKE 63744%,188%,249%,58%,189%,249%,222%,0%,50%,189%,249%,58%,187%,249%,130%,87%,24% 500 POKE 63760%,19%,58%,185%,249%,71%,58%,188%,249%,128%,50%,188%,249%,58%,189%,249%,206% 510 POKE 63776%,0%,50%,189%,249%,58%,186%,249%,131%,95%,193%,16%,187%,201%,58%,185%,249% 520 POKE 63792%,203%,63%,71%,58%,184%,249%,144%,50%,188%,249%,62%,0%,222%,0%,50%,189% 530 POKE 63808%,249%,58%,185%,249%,71%,197%,205%,87%,248%,58%,189%,249%,230%,128%,32%,31% 540 POKE 63824%,58%,184%,249%,71%,58%,185%,249%,144%,71%,58%,188%,249%,144%,50%,188%,249% 550 POKE 63840%,58%,189%,249%,222%,0%,50%,189%,249%,58%,186%,249%,131%,95%,24%,19%,58% 560 POKE 63856%,184%,249%,71%,58%,188%,249%,128%,50%,188%,249%,58%,189%,249%,206%,0%,50% 570 POKE 63872%,189%,249%,58%,187%,249%,130%,87%,193%,16%,187%,201%,221%,229%,221%,33%,116% 580 POKE 63888%,3%,6%,24%,197%,221%,110%,0%,221%,102%,1%,58%,78%,2%,71%,126%,203% 590 POKE 63904%,111%,40%,3%,238%,95%,119%,35%,16%,245%,221%,35%,221%,35%,193%,16%,227% 600 POKE 63920%,33%,0%,0%,221%,225%,201%,0%,0%,0%,0%,0%,0%,0%,0%,123%,50% 610 POKE 63936%,135%,250%,33%,0%,0%,201%,237%,83%,136%,250%,58%,135%,250%,50%,140%,250% 620 POKE 63952%,175%,50%,141%,250%,111%,103%,34%,142%,250%,58%,141%,250%,6%,0%,79%,87% 630 POKE 63968%,42%,142%,250%,9%,9%,35%,34%,144%,250%,58%,140%,250%,79%,167%,237%,66% 640 POKE 63984%,167%,237%,66%,35%,34%,146%,250%,6%,2%,205%,91%,250%,205%,107%,250%,205% 650 POKE 64000%,99%,250%,205%,107%,250%,205%,91%,250%,205%,116%,250%,205%,99%,250%,205%,116% 660 POKE 64016%,250%,122%,81%,79%,16%,227%,20%,122%,50%,141%,250%,42%,144%,250%,34%,142% 670 POKE 64032%,250%,205%,80%,250%,34%,150%,250%,42%,146%,250%,205%,80%,250%,34%,148%,250% 680 POKE 64048%,237%,91%,150%,250%,124%,186%,56%,4%,125%,187%,48%,10%,42%,146%,250%,34% 690 POKE 64064%,142%,250%,33%,140%,250%,53%,33%,140%,250%,126%,35%,190%,210%,217%,249%,201% 700 POKE 64080%,203%,124%,200%,124%,47%,103%,125%,47%,111%,35%,201%,58%,136%,250%,129%,50% 710 POKE 64096%,138%,250%,201%,58%,136%,250%,145%,50%,138%,250%,201%,58%,137%,250%,130%,50% 720 POKE 64112%,139%,250%,24%,7%,58%,137%,250%,146%,50%,139%,250%,213%,197%,237%,91%,138% 730 POKE 64128%,250%,205%,87%,248%,193%,209%,201%,0%,0%,0%,0%,0%,0%,0%,0%,0% 740 POKE 64144%,0%,0%,0%,0%,0%,0%,0%,0% 750 REM >>>> DEFINIERA FUNKTIONER <<<< 760 A%=63488% : REM ADRESS TILL GRAFIKRUTINER 770 W%=PEEK(590%)*2%-1% : REM GRAFISK BREDD P] SK[RMEN 780 DEFFNG%=CALL(A%) : REM RADERA SK[RM OCH S[TT I GRAFMOD 790 DEFFNP%(R%,K%,V%)=CALL(A%+3%,V%)+CALL(A%+6%,K%+SWAP%(R%)) : REM FGPOINT Rad,Kolumn,V{rde 800 DEFFNL%(R%,K%,V%)=CALL(A%+3%,V%)+CALL(A%+9%,K%+SWAP%(R%)) : REM FGLINE Rad,Kolumn,V{rde 810 DEFFNI%=CALL(A%+12%) : REM INVERTERA GRAFIK 820 DEFFNC%(R%,K%,R1%,V%)=CALL(A%+3%,V%)+CALL(A%+15%,R1%)+CALL(A%+18%,K%+SWAP%(R%)) : REM FGCIRC Rad,Kol,Radie,V{rde 830 REM 840 REM >>>> DEMO <<<< 850 Z%=FNG% : REM RADERA SK[RM 860 ; CUR(1%,2%)'GRAFIKDEMO' 870 Z%=FNP%(0%,2%,1%)+FNL%(0%,W%,1%)+FNL%(71%,W%,1%)+FNL%(71%,2%,1%)+FNL%(0%,2%,1%) : REM RITA RAM 880 C%=W%/2%+1% 890 FOR R1%=0% TO 30% STEP 5% 900 Z%=FNC%(36%,C%,R1%,1%) : REM RITA CIRKEL 910 NEXT R1% 920 FOR V=0 TO 2*PI+.1 STEP 2*PI/12 930 R%=COS(V)*30%+36% : K%=SIN(V)*30+C% 940 Z%=FNP%(36%,C%,1%) 950 Z%=FNL%(R%,K%,1%) 960 NEXT V 970 Z%=FNI% : GOTO 890