start bastext 23809 start tok128 d64-vbTAnV 5 IFml=.THENml=1:LOAD"dsm.ml1",8,1 7 IFml=1THENml=2:LOAD"dsm.ml2",8,1 8 IFml=2THENml=3:LOAD"dsm.ml3",8,1 40 DIMco$(16),cr(8,2),fo$(8),s(7,4),pr$(8),pi(8,4) 50 FORx=0TO16:READco$(x):NEXT:REM colors 55 FORx=1TO8:READcr(x,1),cr(x,2):NEXT:REM color memory move routines 60 FORx=0TO8:READfo$(x):NEXT:REM pic format 65 FORx=1TO7:READs(x,1),s(x,2),s(x,3),s(x,4):NEXT:REM songs 70 FORx=0TO8:READpr$(x):NEXT:REM prefix, 1 is a suffix 75 FORx=1TO8:READpi(x,1),pi(x,2),pi(x,4):pi(x,3)=pi(x,1):NEXT:REM pictures 80 FORx=1TO8:READp2(x),p3(x):NEXT 85 FORx=1TO8:p1(x)=59:NEXT 100 fo=.:sg=.:c1=16:c2=c1:c3=c1:c4=c1:bt$="none":ms$="none":pn$="none":pr=. 102 na$="none":sb$="0":sl$="49152":bo=53280:bg=53281:di=49376:lo=49520:bs=49986 103 cu=49929:fl=50007:b1=49152:b2=49325:sa=49567:as=49536:ru$="run":ll$="828" 104 pp$="none" 105 REM 'fo' is for pic type,color memory move and pic ends,and prefix 150 SYS49958 200 PRINT"{clear}{black}":POKEbo,.:POKEbg,. 205 FORi=1TO40:PRINT"-";:NEXT 206 PRINTSPC(6)"deluxe screen maker main menu" 207 FORi=1TO40:PRINT"-";:NEXT 208 PRINTSPC(8)"{sh -} (c) 1987 steve emsley {sh -}" 209 PRINTSPC(8)"{-*25}" 210 PRINT"{down}{right*2}1. get picture" 211 PRINT"{down}{right*2}2. set file names and sys" 213 PRINT"{down}{right*2}3. select music and set colors" 214 PRINT"{down}{right*2}4. load location and secret byte" 215 PRINT"{down}{right*2}5. message and scroll" 216 PRINT"{down}{right*2}6. write program" 217 PRINT"{down}{right*2}7. directory" 218 PRINT"{down}{right*2}8. status" 219 PRINT"{down}{right*2}9. quit{space*8}a. future module" 220 PRINT"{up*6}{right*24}make your" 221 PRINT"{right*24}selection{white}" 229 GOSUB40000 230 IFa$="a"THEN2000 231 IFVAL(a$)=0THEN229 240 ONVAL(a$)GOTO500,700,1000,1100,1300,1500,1700,1800,1900 500 REM get pic name 510 PRINT"{white}{clear}{down*2}":FORx=1TO8:PRINT" "x"{left}. "fo$(x):NEXT 515 PRINT"{down*5}"SPC(9)"choose graphic program" 517 PRINT"{home}{down*2}":FORx=1TO8:PRINT"{right*26}"pr$(x):NEXT 520 GOSUB50000 522 IFa$<"1"ORa$>"8"THEN520 525 fo=VAL(a$) 530 IFfo=3ORfo=5ORfo=6THEN560 535 PRINT"{down*5}"SPC(8)"is prefix needed?{space*2}(y/n)" 540 GOSUB50000 545 IFa$="n"THEN560 550 IFa$="y"THENpr=1:GOTO560 555 GOTO540 560 PRINT"{yellow}{clear}{down*2}{right*2}picture name "; 570 ln=15:GOSUB60000 574 pn$=in$:pp$=pn$ 576 IFpr=0THEN200 577 IFfo=1THEN585 579 pn$=pr$(fo)+pn$ 580 IFfo=2THENpn$=pn$+"*" 581 GOTO200 585 pn$=pn$+"{space*16}":pn$=LEFT$(pn$,12) 590 pn$=pn$+pr$(fo):GOTO200 700 PRINT"{clear}{white}{down*2}{right*2}boot name "; 710 ln=15:GOSUB60000:bt$=in$ 720 PRINT"{down*2}{right*2}file name "; 730 ln=15:GOSUB60000:na$=in$ 731 PRINT"{clear}{white}{down*2}{right*2}is program a normal {reverse on}run{reverse off}? (y/n)" 732 GOSUB50000:IFa$="y"THENru$="run":GOTO200 733 IFa$<>"n"THEN732 734 PRINT"{clear}{down*2}{right*2}enter {reverse on}sys{reverse off} to start ";: 735 ln=4:GOSUB60000:ru$=in$:IFVAL(ru$)<256ORVAL(ru$)>53248THENru$="run":GOTO734 740 GOTO200 1000 REM select song 1010 PRINT"{clear}{down}" 1015 FORx=1TO7:PRINT"{space*2}song #"x"{down}":NEXT 1020 PRINT"{down*3}"SPC(9)"press 1-7 to hear song" 1025 PRINTSPC(9)"press return to accept" 1030 GOSUB50000 1040 IFa$=CHR$(13)THEN1060 1045 IFa$<"1"ORa$>"7"THEN1030 1050 sg=VAL(a$):POKE3,s(sg,1):POKE4,s(sg,2):SYS51000:GOTO1030 1060 SYS65371:SYS64789:POKE54296,.:POKEbo,.:POKEbg,. 1061 PRINT"{clear}{down}":FORx=0TO15:IFx<10THENPRINT"{right*2}{white}"x"{left}. ";:GOTO1063 1062 PRINT"{right}{white}"x"{left}. "; 1063 IFx=.THENPRINT"{white}"co$(x):GOTO1065 1064 POKE646,x:PRINTco$(x) 1065 NEXT 1070 PRINT"{down*2}{white}"SPC(8)"background color (0-15) "; 1071 ln=1:GOSUB60000:c1=VAL(in$):IFc1>15THENPRINT"{up*4}":GOTO1070 1072 IFc1<.THENPRINT"{up*4}":GOTO1070 1073 PRINT"{up}"SPC(8)"{space*4}border color (0-15){space*3}{left*2}"; 1075 ln=1:GOSUB60000:c2=VAL(in$):IFc2>15THEN1073 1076 IFc2<.THEN1073 1080 PRINT"{up}"SPC(8)"{space*4}scroll color (0-15){space*3}{left*2}"; 1084 ln=1:GOSUB60000:c3=VAL(in$):IFc3>15THEN1080 1085 IFc3<.THEN1080 1086 PRINT"{up}"SPC(8)"text mess. color (0-15){space*3}{left*2}"; 1088 ln=1:GOSUB60000:c4=VAL(in$):IFc4>15THEN1086 1089 IFc4<.THEN1086 1090 IFc4=c1THEN1086 1099 GOTO200 1100 PRINT"{clear}{white}{right*2}enter load location{space*2}828{left*5}";:INPUTll$ 1105 IFVAL(ll$)<256ORVAL(ll$)>53248THEN1100 1110 PRINT"{clear}{down}{right*2}enter secret byte{space*2}0{left*3}";:INPUTsb$ 1115 IFVAL(sb$)<.ORVAL(sb$)>255THEN1110 1120 PRINT"{clear}{down}{right*2}enter secret location{space*2}49152{left*7}";:INPUTsl$ 1125 IFVAL(sl$)<.ORVAL(sl$)>65535THEN1120 1130 GOTO200 1300 REM message 1310 PRINT"{clear}{white}{down*2}{right*2}enter message (40 chars. max.){down*2}" 1320 ln=39:GOSUB60000:aa$=in$ 1321 aa=LEN(aa$):IFaa/2<>INT(aa/2)THENaa$=aa$+" ":GOTO1321 1325 sp=(40-aa)/2:FORx=1TOsp:wa$=wa$+" ":NEXT:ms$=wa$+aa$:ms=LEN(ms$) 1327 PRINT"{clear}{down*2}{white}{space*4}now enter your scrolling message":PRINT"{down}"SPC(13)"249 chars. max." 1328 PRINT"{down}"SPC(8)"enter return when finished" 1329 PRINT"{down*15}"SPC(9)"press any key to start":GOSUB50000:PRINT"{clear}{down*3}"; 1330 POKE53272,23 1400 l=255:li=l:sc=1385:sd=sc:POKE650,128 1405 POKE198,.:WAIT198,1:m=PEEK(631):GETa$ 1410 IFm=13THENPOKEsd,32:GOTO1450 1415 IFm=157ORm=20THENsd=sd-1:POKEsd,32:GOTO1440 1420 IFm=147ORm=19ORm=149ORm=17ORm=145ORm=29THEN1405 1422 IFsd-sc>249THEN1405 1425 IFsdCHR$(13)THEN200 1509 OPEN15,8,15,"i" 1510 SYS49520,pn$,8 1512 INPUT#15,e:CLOSE15:IFe=0THEN1520 1515 PRINT"{clear}{down*2}{right*8}{white}disk error"e"has occured":FORp4=1TO2000:NEXT:GOTO1500 1520 POKE4167,40:POKE4168,9:va=2655 1521 IFfo=4THENGOSUB3000 1522 PRINT"{clear}{down*10}{right*5}{white}working{.*3}":SYSb1 1525 te=5680 1526 FORx=s(sg,1)+(256*s(sg,2))TOs(sg,3)+(256*s(sg,4)):REM move song 1527 POKEte,PEEK(x):te=te+1:NEXT 1530 te=2601 1532 FORx=cr(fo,1)TOcr(fo,2) 1533 POKEte,PEEK(x):te=te+1:NEXT:REM color move 1535 POKEva+2,c2:POKEva+3,c1:POKEva+9,c4:POKEva+19,c3 1537 POKEva+5,pi(fo,1):POKEva+6,pi(fo,2):POKEva+7,pi(fo,3):POKEva+8,pi(fo,4) 1538 POKEva+10,p2(fo):POKEva+11,p3(fo) 1540 te=va+21:FORx=1TOLEN(na$):POKEte,ASC(MID$(na$,x,1)):te=te+1:NEXT 1541 POKEva+20,LEN(na$) 1545 POKE49573,LEN(bt$):te=49599:FORx=1TOLEN(bt$):POKEte,ASC(MID$(bt$,x,1)) 1547 te=te+1:NEXT 1548 POKE49590,pi(fo,1):POKE49592,pi(fo,2) 1549 IFru$="run"THEN1555 1550 te=VAL(ru$):GOSUB51000:POKE2558,76:POKE2559,lb:POKE2560,hb 1555 te=VAL(sl$):GOSUB51000:POKE2556,lb:POKE2557,hb:POKE2554,VAL(sb$) 1560 te=VAL(ll$):GOSUB51000:POKE2251,lb:POKE2252,hb:POKE2594,lb:POKE2595,hb 1570 POKEva+15,LEN(ms$)+14 1575 te=2705:FORx=1TOLEN(ms$):POKEte,ASC(MID$(ms$,x,1)):te=te+1:NEXT 1576 IFfo=3THENPOKEva,1:POKEva+4,1:GOTO1598 1577 IFfo=2THENPOKEva+4,PEEK(17168):GOTO1598 1578 IFfo=1THENPOKEva,PEEK(16168):POKEva+4,PEEK(16169):GOTO1598 1598 SYSb2 1599 PRINT"{clear}{white}{down*9}{space*2}insert disk to save boot, press key":POKE198,. 1600 SYS49536:POKEbo,.:POKEbg,. 1602 PRINT"{clear}{white}{down*2}"SPC(15)"saving{.*4}" 1605 OPEN15,8,15,"i" 1610 SYS49567 1615 INPUT#15,e:CLOSE15:IFe=0THEN1680 1650 PRINT"{clear}{down*2}{right*8}{white}disk error"e"has occured":FORp4=1TO2000:NEXT:GOTO1599 1680 PRINT"{clear}{down*4}{right*4}{white}done{.*3}":FORp4=1TO3000:NEXT:RUN40 1700 PRINT"{clear}{white}":OPEN15,8,15,"i":INPUT#15,e:CLOSE15:IFeTHEN200 1705 SYSdi:PRINT"{down*3}"SPC(9)"press any key for menu" 1710 GOSUB50000:GOTO200 1800 PRINT"{clear}";:SYS50029:PRINT"{home}{white}" 1805 SYScu,2,4:PRINTfo$(fo):SYScu,22,4:PRINTpp$ 1806 SYScu,2,8:PRINTbt$:SYScu,22,8:PRINTna$ 1807 SYScu,3,12:PRINTpr$(fo):SYScu,15,12:PRINTsg:SYScu,22,12:PRINTru$ 1808 SYScu,32,12:PRINTll$:SYScu,1,16:PRINTms$ 1809 SYScu,17,19:PRINTco$(c1):SYScu,17,20:PRINTco$(c2):SYScu,17,21:PRINTco$(c3) 1810 SYScu,17,22:PRINTco$(c4) 1811 SYScu,35,19:PRINTsb$:SYScu,35,20:PRINTsl$ 1815 SYSbs:REM gosub50000 1820 GOTO200 1900 PRINT"{clear}{white}":POKE44,8:NEW:END 2000 PRINT"{clear}{white}":OPEN15,8,15:OPEN2,8,2,"dsm.modulea,p,r":INPUT#15,e:CLOSE15 2005 IFeTHEN200 2010 PRINT"{home}{down*3}{black}lO"CHR$(34)"dsm.modulea"CHR$(34)",8" 2015 PRINT"{down*4}run{home}":POKE631,13:POKE632,13:POKE633,13:POKE198,3:END 3000 PRINT"{clear}{down}":FORx=0TO15:IFx<10THENPRINT"{right*2}{white}"x"{left}. ";:GOTO3002 3001 PRINT"{right}{white}"x"{left}. "; 3002 IFx=.THENPRINT"{white}"co$(x):GOTO3004 3003 POKE646,x:PRINTco$(x) 3004 NEXT 3005 PRINT"{down*2}{white}"SPC(8)"background color (0-15) "; 3006 ln=1:GOSUB60000:POKEva+4,VAL(in$):RETURN 40000 GETa$:IFa$=""THEN40010 40005 RETURN 40010 FORx=1TO45:NEXT:SYSfl:GOTO40000 50000 GETa$:IFa$=""THEN50000 50001 RETURN 51000 hb=INT(te/256):lb=te-hb*256:RETURN 60000 in$="":POKE198,.:POKE204,. 60040 WAIT198,15:GETz$:z=ASC(z$):IFz>95THEN60040 60050 zl=LEN(in$):IFzl>lnTHEN60070 60060 IFz>31THENin$=in$+z$:PRINTz$;:GOTO60040 60070 IFz=13ANDzlTHENPOKE204,1:PRINT" ":RETURN 60080 IFz=20ANDzlTHENin$=LEFT$(in$,zl-1):PRINT" {left*2} {left}"; 60090 GOTO60040 63000 REM data 63001 REM colors 63002 DATAblack,white,red,cyan,purple,green,blue,yellow 63003 DATAorange,brown,lt red,gray 1,gray 2,lt green,lt blue,gray 3,none 63004 REM color memory routines 63005 DATA49616,49668,49669,49721,49669,49721,49722,49774,49881,49899,49881,49899 63006 DATA49775,49827,49900,49928 63007 REM pic formats 63008 DATAnone,adv art studio,koala,create w/garfld,blazing paddles,print shop 63009 DATApaint now!,rainbow painter,doodle 63010 REM song 1-2 start/3-4 end 63011 DATA0,69,249,70,0,71,183,75,0,76,37,78,48,78,43,79,48,79,137,82 63012 DATA160,82,57,88,80,88,57,92 63013 REM prefixes 63014 DATA"none","mpic","?pic ? ","rename","pi.","none","none","rp.","dd" 63015 REM pics 1-2 old end/3-4 new end 63016 DATA31,67,71,16,67,71,20,67,71,255,67,71,127,59,63,64,59,63 63017 DATA255,67,67,255,63,63 63020 REM values 63021 DATA216,24,216,24,216,24,216,24,200,29,200,29,216,24,200,29 stop tok128 (bastext 1.0)