start tok64 d64-5OuyPd 0 REM programl[s v3.2 1994-08-10 1 REM --------------------------------- 2 REM 1990:0304,0803-04,1211 3 REM 91:0220,0423,0607:19,0811,1204 4 REM 92:0129,0202,0531 5 REM 93:0412,0610-11:19:30 6 REM 94:0516,0810 7 REM 8 REM freeware(anv[nd fritt/modif. ej) 9 REM 10 POKE56,64:CLR:f=53280:POKEf,2:POKEf+1,2:GOTO100 11 REM * subrutiner 20 PRINT"{clear}{white}{reverse on}{ct h}{142}{space*2}programl[s v3.2 {yellow} free ware {white} 19940810{space*2}":RETURN 30 PRINT"{down}{yellow} tryck valfri tangent" 40 POKE198,.:WAIT198,1:GETz$:RETURN 50 GOSUB20:OPEN1,PEEK(49153),.,"$":POKE781,1:SYS65478:GETa$,a$:e$=CHR$(.):d=-1 52 GETa$,a$,lo$,hi$:IFstTHENSYS65484:CLOSE1:GOSUB30:RETURN 54 PRINT"{white}"256*ASC(hi$+e$)+ASC(lo$+e$)"{yellow}"; 56 GETa$,b$:IFa$THENPRINTa$b$;:GOTO56 58 PRINTa$:GOTO52 99 REM * inl[sning av data 100 GOSUB20 110 PRINT"{white} initiering, ca. 9s" 120 DIMb$(255),k$(255):FORi=.TO255:b$(i)=CHR$(i):k$(i)=b$(i):NEXT 130 FORi=128TO203:READb$(i):NEXT:b$(255)="" 140 READz,k$:IFz>.THENk$(z)="<"+k$+">":GOTO140 142 FORi=1TO26:k$(i+192)="<"+CHR$(i+64)+">":NEXT 150 FORi=49152TO49193:READa:POKEi,a:NEXT 160 READu:DIMu$(u):FORi=1TOu:READu$(i):NEXT 170 uu=.:p$="":u$="s":u$(.)="c64 basic 2.0" 180 z=PEEK(186):POKE49153,z:OPEN15,z,15,"m-w{ct g}{red}{ct a}{ct o}":CLOSE15 190 OPEN1,z,1,"garbage64,p,r":POKE780,.:SYS65493:CLOSE1:SYS50944 199 REM * huvudmenyn 200 GOSUB20 210 PRINT"{white}b{yellow}asicut{pound}kning:"TAB(21)u$(uu) 215 IFuu<>.THENPRINT"{up}{yellow}b" 220 PRINT"{down}{white}d{yellow}iskett:"TAB(20)PEEK(49153) 230 PRINT"{down}{white}p{yellow}rogram:"TAB(21)CHR$(34)p$CHR$(34) 240 PRINT"{down}{white}u{yellow}tmatning:"TAB(21):IFu$="s"THENPRINT"sk[rmen" 242 IFLEFT$(u$,1)="p"THENPRINT"skrivare "MID$(u$,2,1) 243 IFLEFT$(u$,1)="d"THENPRINT"diskenhet"VAL(RIGHT$(u$,2)) 250 PRINT"{down}{white}s{yellow}tarta" 260 PRINT"{down}{white}k{yellow}atalog enhet"PEEK(49153) 280 PRINT"{down}{white}a{yellow}vsluta" 295 PRINT"{home}{down*23}{yellow}(c) 1990-1994: peter karlsson" 299 REM * hantera menykommandon 300 GOSUB40 310 h=-(z$="b")-2*(z$="d")-3*(z$="p")-4*(z$="u")-5*(z$="s")-6*(z$="k") 320 ONhGOSUB400,500,600,700,1000,50:IFz$="a"THEN800 395 GOTO200 399 REM * basicut{pound}kning 400 GOSUB20 405 IFuu<>.THENRETURN 410 PRINT"{yellow} tillg[ngliga basicut{pound}kningar:{down}" 420 FORi=.TOu:PRINT"{white}"i"{left}. {yellow}"u$(i):NEXT:PRINT 430 PRINT"?"u"{up}":INPUTuu:IFuu<.ORuu>iORuu<>INT(uu)THEN400 440 FORi=1TOuu-1:READs:FORj=204TOs:READa$:NEXT:NEXT 450 READs:FORi=204TOs:READb$(i):NEXT 460 RETURN 499 REM * diskettenhet 500 GOSUB20 510 PRINT"{yellow} ange diskenhet (8-15):{down}" 520 PRINT"?"PEEK(49153)"{up}":INPUTz:IFz<8ORz>15ORz<>INT(z)THEN520 530 POKE49153,z:RETURN 599 REM * programnamn 600 GOSUB20 610 PRINT"{yellow} ange programnamn:{down}" 620 PRINT"? "p$"{up}" 630 INPUTp$:p=LEN(p$):IFp<1ORp>16THEN620 640 POKE52992,p:FORi=1TOp:POKE52992+i,ASC(MID$(p$,i)):NEXT 650 RETURN 699 REM * utmatningsenhet 700 GOSUB20 710 PRINT"{yellow} v[lj utmatningsenhet mellan" 720 PRINT" {white}s{yellow}k[rmen, {white}p{yellow}rinter och {white}d{yellow}iskett:{down}" 730 GOSUB40:ON-1*(z$="s")-2*(z$="p")-3*(z$="d")GOTO740,750,770 740 u$="s":RETURN 750 PRINT"{down}{yellow} ange printerenhet (4-7):{down}":INPUT"? 4{left*3}";z 752 IFz<4ORz>7ORz<>INT(z)THEN750 754 PRINT"{down}{yellow} skall raderna skrivas ut {white}h{yellow}ela, eller" 756 PRINT" {white}b{yellow}rutna vid varje 80 tecken?" 758 GOSUB40:IFz$<>"h"ANDz$<>"b"THEN758 760 u$="p"+CHR$(z+48)+z$ 762 PRINT"{down}{yellow} radslut som {white}c{yellow}r eller cr{yellow}l{white}f?":GOSUB40 764 u$=u$+z$:RETURN 770 PRINT"{down}{yellow} ange vilken diskenhet p] vilken" 772 PRINT" filen skall skrivas (8-15):{down}" 774 PRINT"?"PEEK(49153)"{up}":INPUTz:IFz<8ORz>15ORz<>INT(z)THEN774 776 u$="d"+RIGHT$(STR$(100+z),2):RETURN 799 REM * avsluta (ej sub) 800 POKEf,14:POKEf+1,6:PRINT"{light blue}{clear}{ct i}{142}";:END 999 REM * huvudprogrammet 1000 GOSUB20:PRINT" laddar":SYS49152:GOSUB20 1002 IFLEFT$(u$,1)="p"THEN1010 1004 IFLEFT$(u$,1)="d"THEN1020 1006 IFLEFT$(u$,1)="s"THEN1030 1010 PRINT" {yellow}skriver till skrivare":of=4:IFRIGHT$(u$,1)="l"THENof=132 1012 OPENof,VAL(MID$(u$,2,1)) 1014 CMDof,"program: "+p$:GOTO1040 1020 PRINT" {yellow}skriver till: /l/"LEFT$(p$,13):of=8 1022 OPENof,VAL(RIGHT$(u$,2)),2,"0:/l/"+LEFT$(p$,13)+",s,w":GOTO1014 1030 PRINT" {yellow}skriver till sk[rm:" 1032 PRINT"{down}{pink}program: "p$:GOTO1040 1040 ad=16386:sl=PEEK(16384)+256*PEEK(16385) 1099 REM * ny rad 1100 ad=ad+2:IFad=>slTHEN1200 1110 r=PEEK(ad)+256*PEEK(ad+1):ad=ad+2 1120 r$=RIGHT$("{space*3}"+STR$(r),5)+" ":GOTO1300 1199 REM * programslut 1200 PRINT"{space*2}sh=shift, cm=commodre och ct=control." 1210 PRINT"{space*2}dubbla h[nvisningar: v[nstra engelskt och h{pound}gra svenskt "; 1215 PRINT"tangentbord." 1220 PRINT"{space*2}ensam bokstav: shift+bokstaven." 1230 IFu$="s"THENGOSUB30:GOTO1270 1240 PRINT#of,"listning skapad med programl[s 3.2 (c)1990-1994 peter karlsson" 1242 CLOSEof 1270 RETURN 1299 REM * vanlig programtext 1300 x=PEEK(ad):ad=ad+1:s$=b$(x):ON-(x=.)GOTO1500 1320 r$=r$+s$:ON2+(x=34)GOTO1400,1300 1399 REM * quote mode 1400 x=PEEK(ad):y=PEEK(ad+1):z=PEEK(ad+2):ad=ad+1:s$=k$(x):ON-(x=.)GOTO1500 1410 IF(x=yAND(LEN(s$)>1ORx=32))OR(x=yANDy=z)THEN1450 1420 IFLEN(s$)>1THENr$=r$+s$:GOTO1440 1430 r$=r$+s$ 1440 ON2+(x=34)GOTO1300,1400 1449 REM * flera lika i quote mode 1450 IFx=32THENs$="" 1460 c=.:IFx>47ANDx<58THEN1430 1462 c=c+1:y=PEEK(ad+c):IFx=yTHEN1462 1463 r$=r$+"<"+MID$(STR$(c+1),2)+" " 1464 IFLEN(s$)=1THENr$=r$+s$+">":ad=ad+c:GOTO1400 1465 IFLEN(s$)=3THENr$=r$+"sh" 1466 r$=r$+MID$(s$,2):ad=ad+c:GOTO1400 1499 REM * radslut 1500 IFMID$(u$,3,1)<>"b"THENPRINTr$:GOTO1550 1510 PRINTLEFT$(r$,80):r$=MID$(r$,81):IFr$=""THEN1550 1520 PRINT"{space*5}"LEFT$(r$,75):r$=MID$(r$,76):IFr$<>""THEN1520 1550 IFLEFT$(u$,1)<>"s"THEN1100 1560 PRINT"{white}tryck {.*3}";:GOSUB40:PRINT"{left*9}{space*9}{up}{pink}" 1570 GOTO1100 1999 REM * datarader 2000 REM * basickommandon 2010 DATAend,for,next,data,input#,input,dim,read,let,goto,run,if,restore,gosub 2015 DATAreturn 2020 DATArem,stop,on,wait,load,save,verify,def,poke,print#,print,cont,list,clr 2030 DATAcmd,sys,open,close,get,new,tab(,to,fn,spc(,then,not,step,+,-,*,/,{^} 2040 DATAand,or,>,=,<,sgn,int,abs,usr,fre,pos,sqr,rnd,log,exp,cos,sin,tan,atn 2050 DATApeek,len,str$,val,asc,chr$,left$,right$,mid$,go 2099 REM * specialtecken 2100 DATA5,vit,8,cth,9,cti,14,ctn,17,ner,18,rvs p],19,home,20,delete,28,r{pound}d 2110 DATA29,h{pound}ger,30,gr{pound}n,31,bl],129,orange,133,f1,134,f3,135,f5,136,f7 2120 DATA137,f2,138,f4,139,f6,140,f8,142,uppercase,144,svart,145,upp 2130 DATA146,rvs av,147,cls,148,ins[tt,149,brun,150,sk[r,151,m{pound}rkgr] 2140 DATA152,mellangr],153,ljusgr{pound}n,154,ljusbl],155,ljusgr],156,lila 2150 DATA157,v[nster,158,gul,159,cyan,160,sh space,13,return,141,sh return 2160 DATA161,cmk,162,cmi,163,cmt,165,cmg,167,cmm,170,cmn,171,cmq,172,cmd 2170 DATA173,cmz,174,cms,175,cmp,176,cma,177,cme,178,cmr,179,cmw,180,cmh 2180 DATA181,cmj,182,cml,183,cmy,184,cmu,185,cmo,187,cmf,188,cmc,189,cmx 2190 DATA190,cmv,191,cmb,255,pi,164,cm@ 2230 DATA186,sh@,126,pi 2240 DATA94,pil upp,95,pil v[nster,60,mindre [n,62,st{pound}rre [n,64,at 2250 DATA1,cta,2,ctb,3,ctc,4,ctd,6,ctf,7,ctg,10,ctj,11,ctk,12,ctl,15,cto 2260 DATA16,ctp,21,ctu,22,ctv,23,ctw,24,ctx,25,cty,26,ctz,27,"ct:/ct [" 2270 DATA219,"sh+/sh[",220,"cm-/sh{pound}",221,"sh-/sh]",223,"cm*/cm-" 2280 DATA166,"cm+/cm]",168,"cm pund/cm [",169,"sh pund/cm{pound}",192,"sh*/sh-" 2290 DATA, 2299 REM * laddrutin i maskinkod 2300 DATA169,8:REM enhet 2320 DATA170,160,,32,186,255,173,,207,162,1,160,207,32,189,255,169,,162,2,160 2330 DATA64,32,213,255,176,5,32,183,255,208,1,,142,,64,140,1,64,96 2399 REM * basicut{pound}kningar 2400 DATA2 :REM antal ut{pound}kningar 2410 DATAtfc iii,graphic52 2420 DATA232,off,auto,del,renum,help,find,old,dload,dverify,dsave,append 2422 DATAdappend,dos,kill,mon,pdir,plist,bar,desktop,dump,array,mem,trace 2424 DATAreplace,order,pack,unpack,mread,mwrite 2430 DATA254,screen,sprcl,plot,draw,clear,togl,erase,char,smove,color,sprite 2432 DATAsprog,cprog,pen,flip,transfer,block,bottom,sdp,scrsv,loscr,lospr,lochr 2434 DATAsprsv,chrsv,smooth,volume,adsr,shift,pitch,wave,pulse,detect,set,put 2436 DATAmove,place,copy,memsv,lomem,swap,brd&bkg,switch,unless,multi,shrink 2438 DATApadl(,joy(,bit(,loc(,point( 2999 REM * adress till f{pound}rfattaren 3000 3010 REM peter karlsson 3020 REM v[rnsta, ullers[ter 3030 REM 710 40 fr{pound}vi 3040 REM (i sverige) 3050 stop tok64 (bastext 1.0)