start tok64 d64-J3RoCV 1 PRINT"{ct n}{clear} GraphPad v3.0{space*2}OSLO 24-Sep-92":PRINT"{down} Restart: RUN 10" 2 PRINT"{down} KA43/61 and any other utility must be{space*3}at top of Basic RAM!":{arrow left}e8 5 s=828:{arrow left}x"relocate l*","move by*",s:SYSs,50000,52023,64:SYSs,57344,40960,8000 6 {arrow left}x"norsk chr","80-screen.chr":POKE52142,54:{arrow left}x"hires"b:SYSs,40960,57344,8000 7 PRINT"{ct n}":SYS52023,"grpad.mnu",51200:SYS52023,"view-file",1024:POKE1024+51,96 8 : 10 l=21:c=0:r=79:n=c:r$=CHR$(13):n$="{ct n}":o$="{ct o}":POKE650,128:s=828:dd=8:k=2048 11 q=8000:d=320:va=8*k:bf=53248+16:vm=8*k:vs=vm:ve=vm:i=96:j=5:REM"wnd 12 sc=49032:c1=191:c2=93:{arrow left}xb,c1:POKEsc-3,c1:POKEsc-2,c2:POKEsc-1,0:REM"color 13 FORy=0TO2:SYSs,sc-3+y,sc+40*y,1,39,0,1,0:NEXT:GOSUB82 14 am=57344:sm=40960:km=51200:mk=12*d+15*8:kk=am+mk:kl=kk+5*d+5*8:REM"grmenu 15 m$="{down} only for main {reverse on} MENU {reverse off}{down}" 16 a$="":z=FRE(8):GOSUB5000:ON nc GOTO19,67,200,88,900,800,500,24,71 18 : 19 {arrow left}e8:PRINT"{clear}"TAB(11)"{reverse on} INSTRUCTIONS {reverse off}":PRINTm$ 22 SYSs,am,sm,q:m=8:f$="grpad intro":GOTO812 24 POKEsp+149,0:POKEsp+137,0 25 FORt=0TO1:POKEsp+128+18*t,130:POKEsp+131+12*t,68:POKEsp+134+6*t,40:NEXT 26 POKEfa,sa:POKEv+21,1:jo=PEEK(56320):{arrow left}xs:GOTO28 27 n=c:l=l+1:IFl=25THENl=l-1:IFx=141THEN:{arrow left}xt,l,c,r$ 28 x=x0+n*4:POKEv,xAND255:POKEv+16,-(x>255):POKEv+1,y0+l*8 29 GETa$:IFa$=""THENx=FRE(8):GOTO29 30 x=ASC(a$):IFx=17ORx=29ORx=145ORx=157THEN51 31 IFx=13ORx=141THEN27 32 IFx=147THEN:{arrow left}xc:GOSUB82:l=0:n=c:vs=vm:ve=vm:GOTO25 33 IFx=136ORx=134THEN37 34 {arrow left}xt,l,n,a$:n=n+1-(d$=n$):IFn>rTHENn=r 35 IFa$=n$ORa$=o$THENd$=a$:n=n-1:POKEv+29,-(d$=n$) 36 GOTO28 37 IFa$="{f7}"THEN:{arrow left}xr:POKEv+21,0:POKEv+29,0:d$="":GOTO16 38 {arrow left}xb,c2:SYSs,am,sm,q:REM"plot 39 POKEfa,sa+2:x=n*4+3:y=l*8+3:REM"sp def 40 m=jo-PEEK(56320):x=x+SGN((m AND8)*(319-x)-(m AND4)*x) 41 y=y+SGN((m AND2)*(199-y)-(m AND1)*y) 42 {arrow left}xp,x,y:IFm<16THEN:{arrow left}xu,x,y 43 z=x+x0-3:POKEv,zAND255:POKEv+16,-(z>255):POKEv+1,y+y0-3 44 IFPEEK(197)>5THEN40:REM"not F3 F7 45 SYSs,kl,bf+768,48,3,d,48,0:SYSs,km+576,kl,48,2,48,d,0:REM"menu 46 SYSs,km+576+4*48,kl+3*d,48 47 GETa$:IFa$="a"THEN SYSs,bf+768,kl,48,3,48,d,0:GOTO50 48 IFa$="u"THENSYSs,sm,am,q:GOTO50 49 GOTO47 50 POKEfa,sa:POKE198,0:{arrow left}xb,c1:GOTO28 51 m=PEEK(653):IFx=17ORx=145THEN55 52 IFm=1THENn=n-SGN(n-c):GOTO28 53 IFm=2ANDn0ORvs>PEEK(51)+256*PEEK(52)-2*d THEN28 60 SYSs,am,vs,d:vs=vs+d:{arrow left}xt,0,0,r$:ve=ve-(vevs+24*dTHENSYSs,vs+24*d,am+q-d,d 62 GOTO28 63 IFl>0THENl=l-1:GOTO28 64 IFvs=vmTHEN28 65 vs=vs-d:SYSs,am,am+d,q-d:SYSs,vs,am,d:GOTO28 67 PRINT"{clear}{down}{reverse on} F7 {reverse off} to stop":{arrow left}d 68 PRINT"{down}Press {reverse on} F7 {reverse off} or for MENU" 69 GETa$:IFa$="{f7}"ORa$=r$THEN16 70 GOTO69 71 PRINT"{clear}"TAB(55)"{reverse on} Print ":PRINTm$:IFve=vmTHEN74 72 INPUT"{down*2}From Screen or Buffer{space*2}(s/b) ";a$:IFa$<>"s"ANDa$<>"b"THEN80 74 f$="":INPUT"{down}Single or Double width (s/d) ";f$:IFf$<>"s"ANDf$<>"d" THEN80 75 INPUT"{down*2}Left Margin{space*2}0{left*3}";x 76 {arrow left}c0:PRINT"{down}{reverse on} Printing!":IFf$="d"THENOPEN4,4:PRINT#4,n$; 77 {arrow left}gx,224,25:IFa$="b"THEN:{arrow left}gx,vm/256,(ve-vm)/d 79 {arrow left}g:IFf$="d"THENPRINT#4,o$;:CLOSE4 80 {arrow left}g0,224,25:GOTO16 81 : 82 ba=49152:v=53248:fa=ba+1016:sa=253:x0=24:y0=50:REM"sprites 83 FORt=39TO41:POKEv+t,1:NEXT:POKEfa,sa:POKEfa+1,sa+1:sp=ba+sa*64 84 SYSs,sc+80,sp,32,5,0,32,0 85 POKEsp,240:POKEsp+21,240:FORt=sp+3TOsp+18 STEP3:POKEt,144:NEXT 86 z=sp+64:POKEz,255:FORt=z+3TOz+21STEP3:POKEt,128:NEXT 87 RETURN 88 PRINT"{clear}"TAB(15)"{reverse on} Save {reverse off}":PRINTm$:ps=0 89 PRINT"Save to Disk"dd;:INPUT" or Memory (d/m) ";a$:IFa$="d"THEN94 90 IFa$="#"THENSYSs,am,am-k,k 91 IFa$<>"m"THEN16 92 GOSUB280:IFm=0THEN16 93 SYSs,am,m*256,q:PRINT"{down}{reverse on} OK! ":GOTO68 94 f$="":INPUT"{down}Name of PRG to save";f$:IF f$=""THEN16 95 PRINT"{down} left/right for whole screen or 96 PRINT"no of lines. Press w for window (96*48)" 97 PRINT"Confirm with . {reverse on} F7 {reverse off} main Menu!{down*2}":x=28:a$="a":GOTO99 98 GETa$:IF a$=""THEN98 99 x=x-(a$="{right}")+(a$="{left}"):x=x*(x>0)*(x<29)-(x=0)*28-(x=29) 100 y=-(x*k)*(x<4)-d*(x-3)*(x>3):PRINT 101 PRINT"{up*2}"TAB(16)"{space*12}":PRINT"{up} 102 PRINT"{up}No of bytes {reverse on}"y"{reverse off}";:IF x>3 THEN PRINT x-3;" lines"; 103 PRINT:IF a$="{f7}"THEN16 104 IFa$="w"THENps=100:si=i:dl=j:dx=40-i/8:dy=24-j:GOTO500 105 IFa$<>r$THEN98 106 PRINT:{arrow left}e"i0":SYSs,va,sm,q:SYSs,am,va,q 107 PRINTTAB(14)"{reverse on}WAIT!":{arrow left}mva,va+y,f$,dd,1:SYSs,sm,va,q 108 IF(PEEK(56576)AND3)THENSYS52127:GOSUB82:REM"fix turbosave 109 {arrow left}e:GOTO68 111 ps=0:{arrow left}xr:{arrow left}xb,c1:PRINT:{arrow left}e"i0":SYSs,sm,am,q:SYSs,va,sm,q 112 SYSs,p1,va,i,j,d,i,0:y=i*(j+1):GOTO107 200 PRINT"{clear}"TAB(10)"{reverse on} Load from disk";dd:PRINTm$:ps=0:f$="" 202 PRINT"{reverse on} Max. 33 blocks to screen or upper addr!":PRINT 205 INPUT"Name of PRG to load ";f$:IF f$=""THEN16 210 PRINT"{down}To Screen, Memory, Window or from 2 or" 215 INPUT"3 blocks Printshop (s/m/w/2/3) ";a$ 220 IFa$=""THEN16 225 m=160:IFa$="m"THEN235 227 IFa$<>"s"THENps=ASC(a$):GOTO260 230 SYSs,am,sm,q:m=m-(dd=8)*64:GOTO260 235 OPEN1,dd,0,f$:GET#1,a$:GET#1,b$:CLOSE1:IFst<>0THEN265 240 PRINT"{down}Found at"ASC(b$+CHR$(0))"{left}*256 +";ASC(a$+CHR$(0)) 250 GOSUB280:IFm=0THEN16 255 PRINT"{down}View picture from {reverse on} COPY and Search/F3 {reverse off}" 260 PRINTTAB(55)"{reverse on} Wait!":IFm>223THEN:{arrow left}xs 265 SYS52023,f$,m*256,dd:IFst<>64ORm<160THEN:{arrow left}xr:{arrow left}e:GOTO68 270 IFpsTHEN300 272 IFdd>8ANDm=160THENSYSs,sm,am,q:{arrow left}xs 275 GOSUB82:GOTO24 280 m=0:dy=0:dx=PEEK(50)+1:dy=PEEK(52)-33 285 PRINT"{down}Input high byte of addr.:"dx"to"dy 290 INPUT"Illegal value for {reverse on} MAIN MENU {reverse off}{space*4}96{left*4}";m:IFmdyTHENm=0 295 RETURN 300 p1=bf+d:si=48:dl=5:z=44:REM"printshop 305 IFps=51THENsi=88:dl=6:z=51:p1=bf 310 IFps=87THENsi=i:dl=j:SYSs,sm,p1,i,j,i,d,0:GOTO325 315 POKEsm,0:t=sm+900:SYSs,sm,t+z+1,1,3,0,1,0:x=si/8 320 FORy=0TOx-1:SYSs,sm+y,t,1,z,x,1,0:SYSs,t,p1+8*y,8,dl,8,d,0:NEXT 325 dx=40-si/8:dy=25-dl-1 330 : 500 wl=0:wt=0:n1=0:l1=0:REM"copy 502 POKEfa,sa+1:REM"sprite 0=1 504 z=sp+128:POKEz+21,255:FORt=zTOz+18 STEP3:POKEt,1:NEXT 506 POKEfa+2,sa+2:{arrow left}xs:REM"sprite 2 508 ma=sm:POKEv+21,2:tl=1:wb=24:wr=39:vi=0:SYSs,am,ma,q:sv=0 510 GOSUB602:n=n1:l=l1:p3=am+d*l+8*n:ms=p3:ml=8:mr=0:REM"start values 512 IFpsTHENtl=3:POKEv+21,0:wb=dy:wr=dx:IFps=100THENtl=4:REM"load/save 514 ON tl GOTO516,518,552,564 516 x=x0+n*8:POKEv+2,xAND255:POKEv+16,-2*(x>255):POKEv+3,y0+l*8:GOTO520 518 x=x0+n*8:POKEv+4,xAND255:POKEv+16,-4*(x>255)-x1:POKEv+5,y0+l*8 520 GETa$:IFa$="{right}"THEN n=n+SGN(wr-n):ms=p3:ml=8:mr=dl:GOTO514 522 IFa$="{left}"THENn=n+SGN(wl-n):ms=p3+si-8:ml=8:mr=dl:GOTO514 524 IFa$="{down}"THENl=l+SGN(wb-l):ms=p3:ml=si:mr=0:GOTO514 526 IFa$="{up}"THENl=l+SGN(wt-l):ms=p3+d*dl:ml=si:mr=0:GOTO514 528 IFa$<>"{f3}"THEN534 530 sv=-(sv=0)-255*(sv=1):IFtl=1THENsv=0:GOSUB608:REM"search 532 IFtl>1THEN552 534 IFa$="{f7}"THEN SYSs,sm,am,q:POKEv+21,0:{arrow left}xr:{arrow left}xb,c1:ps=0:GOTO16 536 IFa$="{f5}"THEN GOSUB600:IFtl=3THEN554:REM"wnd 538 IFa$<>r$THENz=FRE(8):GOTO520 540 ON tl GOTO542,546,568,111 542 p1=ma+d*l+8*n:n1=n:l1=l:POKEv+21,6:x1=2*(x>255):tl=2:wt=l 544 wl=n1:GOTO514 546 n2=n:dl=l-l1:n=n1-SGN(n1):l=l1-SGN(l1):wt=0:wl=0 548 wr=39+n1-n2:wb=24-dl:a$="":si=8*(n2-n1+1):tl=3 550 ma=sm:SYSs,ma,am,q 552 IFsv=1THEN SYSs,p3-am+ma,p3,si,dl,d,d,0:GOTO556 554 SYSs,ms-am+ma,ms,ml,mr,d,d,0 556 SYSs,sc,(ms-am)/8+ba,ml/8,mr,0,40,0 558 p3=am+d*l+8*n:SYSs,p1,p3,si,dl,d,d,sv 560 SYSs,sc+40,(p3-am)/8+ba,si/8,dl,0,40,0:IFviTHENGOSUB604 562 GOTO520 564 p1=am+d*l+8*n:GOTO552:REM"save wnd 566 REM"menu 2 568 t=0:dm=4:dy=0:m3$="{cm p*10}":f$=" Roll":m2$=f$:vi=1:m=si/8-1 570 IFdl=0AND l<23 AND si=64*INT(si/64) THENt=1:m2$=" Sprite" 572 IFdl=mTHENt=2:m2$=" Tilt" 574 IFviTHENSYSs,km+576,kl,48,dm,48,d,0:{arrow left}xt,20,41,m2$ 576 GETa$:IFa$=""THEN576 578 IFt<10THENSYSs,ma,am,q 580 IFt>10THENSYSs,bf+si,kl,48,4,d,d,0:IFt=11ORt=12THEN588 582 IFa$="r"THEN GOSUB656:m2$=f$:t=13 584 IFa$="s"AND t=1 THENGOSUB648:t=11:dm=3:m2$=m3$ 586 IFa$="t"AND t=2THEN GOSUB632:t=12:dm=3:m2$=m3$ 588 IFt>10THENSYSs,kl,bf+si,48,4,d,d,0 590 IFa$="u"OR a$="{f7}"THENSYSs,ma,am,q:GOTO598 592 IFa$="{f5}"THENvi=1-SGN(vi) 594 IFt<10THENSYSs,p1,p3,si,dl,d,d,sv 596 IFa$<>"a"THEN574 598 m2$="":m3$="":f$="":z=FRE(8):{arrow left}xb,c1:ps=0:GOTO508 600 SYSs,mk+ma,kk,80,8,d,d,0:REM"wnd out 602 vi=1-SGN(vi):IFtl=3THENRETURN 604 IFviTHENSYSs,km,kk,72,7,72,d,0:REM"wnd in 606 RETURN 608 ma=va:POKEv+21,0:m3$="{reverse on}Search{space*2}memory{reverse off}":GOSUB630 610 m3$="{reverse on}Copy on Screen{reverse off}" 612 SYSs,ma,am,q:IFviTHENGOSUB604 614 SYSs,sc+80,am+40,40,1,0,40,0:{arrow left}xt,0,11,"{ct n}Start{ct o} "+STR$(ma) 616 GETa$:IFa$=""THENz=FRE(8):GOTO616 618 z=ASC(a$):ma=ma-(z=43)+(z=45)-8*((z=29)-(z=157))-k*((z=17)-(z=145)) 620 IFma<0THENma=0 622 IFma>amTHENma=am 624 IFz=13THENa$="":z=FRE(8):POKEv+21,2:GOSUB630:SYSs,ma,am,q:GOTO604 626 IFz=135THEN GOSUB600 628 IFz<>136THEN612 630 SYSs,sc+80,am,40,1,0,40,0:{arrow left}xt,0,0,m3$:SYSs,am,km+80,56:m3$="":RETURN 632 x=53248+15:REM"uses ka43/6 rutines 634 ad=PEEK(776)+256*PEEK(777)-100:dy=ad+1726:dx=ad+1047 636 FORy=0TOdl:m=p1+d*y:td=p3+8*y:t9=INT(m/256) 638 {arrow left}c0:POKEdy,m-256*t9:POKEdy+1,t9: REM"fool chrset 640 FORz=0TOdl:POKE780,dl-z:SYSdx:NEXT 642 FORz=0TO7:SYSs,x+z,x+si+7-z,1,dl,8,8,0:NEXT 644 SYSs,x+si,td,8,dl,8,d,sv:NEXT 646 {arrow left}c0:RETURN 648 FORsn=0TOsi/64-1:FORz=0TO2:REM" sprite 650 FORy=0TO2:SYSs,sn*64+p1+y+z*24,sn*64+p3+y*8+z*d,1,4-3*(z<2),3,1,sv:NEXT 652 NEXT:NEXT:RETURN 654 REM"roll 656 dy=dy+1:y=INT(dy/8):dx=dy-8*y:z=p1+d*y 658 IFsv=1THENSYSs,p3-am+ma,p3,si,dl,d,d,0 660 FORx=0TOd*dlSTEPd:SYSs,z+dx+x,p3+x,8-dx,m,8,8,sv 662 SYSs,z+d+x,p3+8-dx+x,dx,m,8,8,sv:NEXT 664 IFPEEK(197)=17THEN656 666 RETURN 800 z=1:m=dd:PRINT"{clear}"TAB(8)"{reverse on} TEXT FILE FROM DISK"m:PRINTm$ 805 f$="":INPUT"{down}Name of Text File ";f$:IF f$=""THEN16 807 INPUT"{down}CBM ASCII or standard ASCII (c/a){space*3}c{left*3}";a$:IFa$<>"a"THEN840 810 x=m:IFm>8THEN820 812 z=1:PRINT"{reverse on}{down}Insert System disk, c to continue{reverse off}" 816 GETa$:IFa$=""THEN816 817 IFa$<>"c"THEN16 818 IFnc=1THEN840 820 a$="std ascii.chr":SYS52023,a$,sm+k,x:IFst<>64ANDx>8THENx=8:GOTO812 822 IFst<>64THEN:{arrow left}e8:GOTO855 824 IFm>8THEN835 825 PRINT"{down}PRESS A KEY to get: "f$ 830 GETa$:IFa$=""THEN830 835 x=v+k:SYSs,x,sm,k:SYSs,sm+k,x,k:z=3 840 PRINT"{down}{reverse on} SHIFT {reverse off} to Hold Screen, {reverse on} F7 {reverse off} to Stop":SYSs,ba,v,k 845 SYSs,1024,50176,k/2:{arrow left}xm:{arrow left}x,f$,80,z:SYSs,v,ba,k:{arrow left}e:IFnc=1THENSYSs,sm,am,q 850 IFz=3THENSYSs,sm,x,k 855 GOSUB82:IFm<>ddTHENm=dd:PRINT"{down}ACTIVE DISK:";:GOTO910 860 GOTO68 900 PRINT"{clear}"TAB(172)"{reverse on} Disk Command {reverse off}":PRINT"{down} only for disk status" 904 PRINT"8 or 9 to toggle disk no":PRINT"{down}{reverse on} Active disk"dd 906 POKE631,34:POKE198,1:PRINT"{down}Command ";:INPUTa$:m=VAL(a$):PRINT 910 f$="ui":IFm=8THENdd=8:{arrow left}e8f$:GOTO68 912 IFm=9THENdd=9:{arrow left}e9f$:GOTO68 914 {arrow left}ea$:GOTO68 5000 REM"menu nc 5010 cl=15:cy=151:bl=144:REM"colours 5020 IFno>0GOTO5060 5030 READno,nc:DIMn$(no),op$(no) 5040 FORx=0TOno:READ op$(x):NEXT 5060 PRINT"{clear}{ct n}";:POKE53280,cl:POKE53281,cl 5070 PRINT"{blue}{cm a}";:FORx=1TO37:PRINT"{sh asterisk}";:NEXT:PRINT"{cm s}" 5080 PRINT"{cm g}{white}{space*3}KA PROGRAM MENU at your service{space*3}{blue}{cm m} 5090 PRINT"{blue}{cm z}";:FORx=1TO37:PRINT"{sh asterisk}";:NEXT:PRINT"{cm x}" 5100 PRINT:PRINTCHR$(bl)" Choose with {reverse on} CURSOR {reverse off} 5110 PRINT "{home}{down*4}" 5120 FORx=1TOno:n$(x)=CHR$(cy)+CHR$(146+128*(x=nc))+CHR$(-bl*(x=nc)):NEXT 5130 PRINTTAB(43)CHR$(146+128*(nc>0))"{orange} RETURN {reverse off}{space*2}to continue{down}":PRINT"{white}" 5140 FORx=0TOno:PRINTTAB(19-LEN(op$(x))/2)n$(x)op$(x):NEXT 5150 GETc1$:IFc1$="{down}"THENnc=ABS(nc):nc=1+nc*SGN(no-nc):GOTO5110 5160 IFc1$="{up}"THENnc=ABS(nc):nc=nc-1-no*SGN(nc-1)+no:GOTO5110 5170 z=FRE(8):IFc1$=CHR$(13)THEN nc=ABS(nc):RETURN 5180 nc=-nc:GOTO5110 5200 DATA9,1,"*** GraphPad Menu ***{down}" 5210 DATA"Instructions","Directory","Load File","Save File" 5220 DATA"Disk Command","Grab Text File","Copy and{space*2}Search","Editor","Print" stop tok64 (bastext 1.0)