1 REM +++++++++++++++++++++++++++++++++ 2 REM ! Program .... DRAWBANA.BAS 3 REM ! Utg}va 1.5 85 04 11 4 REM ! av (c) Tom Sj|berg 7 REM ! Minne 16 Kbytes 8 REM ! Ins{nt av 2401 9 REM +++++++++++++++++++++++++++++++++ 10 REM 100 REM =============================== 101 REM = DRAW maskinkod kr{vs ! = 102 REM = POKE Q%,Q1% SETmod = 103 REM = POKE Q%,Q0% CLEARmod = 104 REM = Z%=FNP%(1) execute PIC 1 = 105 REM = = 106 REM = akta variabler i 60000 = 107 REM = Q%,Q0%,Q1%,Q2%,P%(),Q%(,) = 109 REM =============================== 110 P9%=2% : L9%=3% : REM Max P9% bilder om L9% linjer 120 GOSUB 60003 : REM * INITIERA * 130 ; CHR$(12) 132 ; CUR(2,5)'******* INSTRUKTIONER *******' 133 ; CUR(6,3)'Detta program visar hur man kan' 134 ; ' anv{nda DRAW-rutinen genom att under' 135 ; ' programmets g}ng {ndra koordinaterna' 136 ; ' f|r linjerna.' : ; 137 ; ' U' 138 ; ' Lek med tangenterna G H' 139 ; ' N' 140 ; : ; ' Ljudet finns som upplysning att en' 141 ; ' del av bilden {r utanf|r sk{rmen.' 142 ; ' Ej ljud : 125 POKE C4%-605,0' 143 ; ' Med ljud : 125 POKE C4%-605,125' : ; 149 ; ' CTRL+C = stopp RETURN'; : GET G$ 150 ; CHR$(12%) : FOR I%=0% TO 23% : ; CUR(I%,0%)CHR$(151%); : NEXT I% 157 REM ****************************** 158 REM  SKAPA BILDEN (linje-koordinater)  159 IF PEEK(885%)<>124% C5%=2% ELSE C5%=1% : REM 40/80tkn 160 REM 162 FOR P%=0% TO P9% 166 X1%=40%*C5% : X2%=30%*C5% : Y1%=0% : Y2%=65% : GOSUB 60021 170 X1%=40%*C5% : X2%=50%*C5% : Y1%=0% : Y2%=65% : GOSUB 60021 171 X1%=40%*C5% : X2%=40%*C5% : Y1%=0% : Y2%=65% : GOSUB 60021 174 NEXT P% 400 REM ********** K\R *************** 401 X8%=4%*C5% : Y8%=2% : REM  Storlek-f|rflyttning  404 POKE Q%,Q1% : REM SETDOT 406 Z%=FNP%(0%) : P%=0% : GOSUB 530 414 POKE Q%,Q0% : REM CLRDOT 416 Z%=FNP%(1%) : P%=1% : GOSUB 580 423 GOTO 404 450 REM ********* END *************** 500 REM ----------------------------- 510 REM - subr Flytta bild P% - 520 REM ----------------------------- 530 ON INSTR(1%,'GHUN',CHR$((INP(56%) AND 223%)-128%))+1% GOTO 530,540,550,560,570 540 X%=-X8% : Y%=0% : GOTO 580 550 X%=X8% : Y%=0% : GOTO 580 560 Y%=-Y8% : X%=0% : GOTO 580 570 Y%=Y8% : X%=0% : GOTO 580 580 [2%=P%(P%) : FOR I%=1% TO Q%(P%,0%) : [2%=[2%+4% : POKE [2%,PEEK([2%)+X% 590 POKE [2%+1%,PEEK([2%+1%)+Y% : NEXT I% : RETURN 60000 REM ##### SUBR INITIERA DRAW #### 60001 DEFFN[%([%)=PEEK([%)+SWAP%(PEEK([%+1%)) 60002 DEFFNP%(P%)=CALL(Q2%,P%(P%)) 60003 C4%=FN[%(65052%) : Q2%=C4%-324% : Q%=C4%-608% : Q1%=202% : Q0%=210% 60004 IF PEEK(8906)<>182% POKE C4%-611%,241% : Q1%=Q1%-2% : Q0%=Q0%-2% 60005 P9%=P9%-1% : L9%=L9%*2%+1% 60006 DIM Q%(P9%,L9%-1%),P%(P9%) 60007 REM ----- BER[KNA P%(P%) -------- 60008 [%=65063% : REM variabelroten 60009 [%=FN[%([%+2%) 60010 IF [%=0% ; : ; "HITTAR EJ Z-MATRISEN!" : STOP 60011 IF PEEK([%)<>249% 60009 : REM s|k int.matris 60012 IF PEEK([%+1%)<>81% 60009 : REM s|k "Q" 60013 [%=FN[%([%+4%) : REM Q%(0%,0%) 60014 FOR P%=0% TO P9% : P%(P%)=[%+2%*L9%*P% : NEXT P% 60015 RETURN 60016 REM ------------------------------ 60017 REM - Tar linjen fr}n X1;Y1 - 60018 REM - till X2;Y2 och adderar - 60019 REM - den till bildnr P - 60020 REM ------------------------------ 60021 Q%(P%,Q%(P%,0%)*2%+1%)=X1%+Y1%*256% 60022 Q%(P%,Q%(P%,0%)*2%+2%)=X2%+Y2%*256% 60023 Q%(P%,0%)=Q%(P%,0%)+1% : RETURN 60024 REM ##############################