home *** CD-ROM | disk | FTP | other *** search
- 100 rem copyright 1993 - compute publications - all rights reserved
- 110 rem written by bill soudan
- 120 rem
- 130 poke53281,0:poke53280,0:print"[147]":zp=191
- 140 print"[159][147][165][159] 32 [211][208][210][201][212][197][211]"
- 150 poke1063,103:poke55335,6
- 160 print"[163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][157][148][163]"
- 170 print:printtab(15)"[150][205]ain [205]enu"
- 180 print:dim p$(12),p(12,1),h$(16)
- 190 x$="0123456789abcdef"
- 200 forj=1to16:h$(j-1)=mid$(x$,j,1):next
- 210 forj=0to12:readp$(j):next
- 220 data "[211]tarting [193]ddress","[217] position","[216] position","[200]igh [216] bit"
- 230 data "[216] expand","[195]olor","[205]ulticolor","[208]riority","[208]ointer"
- 240 data "[212]emp page","[207]rder table","[197]xtra [217] table","[205]ax # of [205][207][194]s"
- 250 forj=0to12:read p(j,0),p(j,1):next
- 260 data 3,49152,3,52992,1,53024
- 270 data 1,53056,2,53088,1,53120
- 280 data 2,53152,2,53184,1,53216
- 290 data 3,52736,3,52672,3,52704
- 300 data 3,32
- 310 forp=0to12:gosub1200 :next
- 320 print" [158]14) [159][199]enerate 32 [211]prites"
- 330 w$=""
- 340 gosub1360:printw$;:input"[150][217]our choice";c$
- 350 c=val(c$):ifc<1orc>14then340
- 360 ifc>12then470
- 370 ifp(c-1,0)=3then420
- 380 gosub1360:printw$;:print"[150][211]elect: ";p$(c-1);" 1.[150] [207]n [150]2. [207]ff"
- 390 geta$:ifa$<>"1"anda$<>"2"then390
- 400 ifa$="1"thenp(c-1,0)=1
- 410 ifa$="2"thenp(c-1,0)=2
- 420 gosub1360:printw$;:ml$="-1":input"[150][206]ew memory location";ml$
- 430 ifleft$(ml$,1)="$"andlen(ml$)=5thend$=ml$:gosub1340 :ml=d:goto450
- 440 ml=val(ml$):ifml<0orml>65535then460
- 450 p(c-1,1)=ml
- 460 p=c-1:gosub1200:goto340
- 470 ifc=14then510
- 480 gosub1360:printw$;:print"[150][211]elect: 1.[150] 16 2.[150] 24 3.[150] 32"
- 490 geta$:ifa$<>"1"anda$<>"2"anda$<>"3"then490
- 500 p(12,1)=(val(a$)*8)+8:goto460
- 510 rem generate ml code
- 520 ad=p(0,1)
- 530 gosub1370
- 540 print"[159]"tab(12)"[199]enerating [205][204]..."
- 550 def fnh(x)=int(x/256)
- 560 def fnl(x)=x-(fnh(x)*256)
- 570 print""tab(9)"[201]nitialization code..."
- 580 mp=0:gosub1440
- 590 forj=1top(12,1)/8:printtab(12)"[210]aster handler";j:gosub1560:next
- 600 ad=ad-34:da$="a9fa8d12d0a9008d00004c31ea":gosub1430
- 605 pokead-5,fnl(p(0,1)+100):pokead-4,fnh(p(0,1)+100)
- 607 gosub 1907
- 608 di=ad:da$="78a9318d1403a9ea8d1503a9008d15d08d1ad0a9818d0ddca9008d0ddca993"
- 609 da$=da$+"20d2ff5860":gosub1430
- 610 gosub1370:print""tab(16)"[195]omplete."
- 620 printtab(5)"[194]eginning address:";:d=p(0,1):gosub1300
- 630 printp(0,1);" $"+a$:printtab(5)"[197]nding address: ";:d=ad:gosub1300
- 632 printad;" $"+a$
- 635 print" [197]nable 32 [211]prites: ";:d=p(0,1):gosub1300
- 636 print"[211][217][211]";p(0,1);" ([202][205][208][160]$"+a$+")"
- 637 print" [196]isable 32 [211]prites: ";:d=di:gosub1300
- 638 print"[211][217][211]";di;" ([202][205][208][160]$"+a$+")"
- 640 printtab(13)"[211]ave 32 [211]prites [205][204]?"
- 650 geta$:ifa$<>"y"anda$<>"n"then650
- 660 ifa$="n"then710
- 670 gosub1370:print""tab(5)"[197]nter filename:";:open1,0:input#1,f$:close1
- 680 print:printtab(15)"[211]aving...."
- 690 sys57812 f$,8,1:poke193,fnl(p(0,1)):poke194,fnh(p(0,1)):poke174,fnl(ad+1)
- 700 poke175,fnh(ad+1):sys 62957
- 710 gosub1370:print""tab(10)"[208]rint out info sheet?"
- 720 geta$:ifa$<>"y"anda$<>"n"then720
- 730 ifa$="n"thenprint"[147]":end
- 740 gosub1370:print""tab(14)"[208]rinting...."
- 750 open4,4,7:print#4:print#4:print#4
- 760 print#4,spc(23)"32 [211][208][210][201][212][197][211]"
- 770 print#4:print#4:print#4
- 780 print#4,spc(23)"[211]tarting address:";:d=p(0,1):gosub1300
- 790 print#4,p(0,1);" $"+a$:print#4,spc(23)"[197]nding address: ";:d=ad:gosub1300
- 800 print#4,ad;" $"+a$:print#4
- 802 print#4,spc(19)"[197]nable 32 [211]prites: ";:d=p(0,1):gosub1300
- 804 print#4,"[211][217][211]";p(0,1);" ([202][205][208][160]$"+a$+")"
- 806 print#4,spc(19)"[196]isable 32 [211]prites: ";:d=di:gosub1300
- 808 print#4,"[211][217][211]";di;" ([202][205][208][160]$"+a$+")":print#4:print#4
- 810 forj=1to12:print#4,spc(16);p$(j);spc(20-len(p$(j)));
- 820 ifp(j,0)=3thenprint#4,"[206]/[193]";
- 830 ifp(j,0)=2thenprint#4,"[207]ff";
- 840 ifp(j,0)=1thenprint#4,"[207]n ";
- 850 print#4,spc(5);p(j,1);:d=p(j,1):gosub1300
- 860 print#4,spc(10-len(str$(p(j,1))));"$"+a$:next
- 870 print#4:close4:end
- 880 data 78,a9,<0+72,8d,14,03,a9,>0+72
- 890 data 8d,15,03,a9,7f,8d,0d,dc,a9,01
- 900 data 8d,1a,d0,ad,11,d0,29,7f,8d,11
- 910 data d0,a9,fa,8d,12,d0,a9,00,8d
- 920 data <0+100,>0+100,a9,ff,a2,00,9d
- 930 data <9,>9,e8,d0,fa,a9,ff,8d,15,d0
- 940 data 58,60,01,02,04,08,10,20,40,80
- 950 data fe,fd,fb,f7,ef,df,bf,7f,a9,01
- 960 data 8d,19,d0,ad,<0+100,>0+100,0a
- 970 data a8,b9,<0+101,>0+101,8d,<0+95
- 980 data >0+95,b9,<0+102,>0+102,8d
- 990 data <0+96,>0+96,4c,ff,ff,4c,31,ea
- 1000 data 00,<0+111,>0+111,00,00,00,00
- 1010 data 00,01,00,00,a2,00,bd,<1,>1,c9,1d,90,0e,a8
- 1020 data b9,<9,>9,30,04,c8,4c,<0+121
- 1030 data >0+121,8a,99,<9,>9,e8,e0,<c
- 1040 data 90,e6,a2,00,a0,1d,b9,<9,>9,10
- 1050 data 4f,c8,b9,<9,>9,10,49,c8,b9,<9
- 1060 data >9,10,43,c8,b9,<9,>9,10,3d,c8
- 1070 data b9,<9,>9,10,37,c8,b9,<9,>9,10
- 1080 data 31,c8,b9,<9,>9,10,2b,c8,b9,<9
- 1090 data >9,10,25,c8,b9,<9,>9,10,1f,c8
- 1100 data b9,<9,>9,10,19,c8,b9,<9,>9,10
- 1110 data 13,c8,b9,<9,>9,10,0d,c8,b9,<9
- 1120 data >9,10,07,c8,c0,1d,b0,ae,90,0f
- 1130 data 9d,<a,>a,a9,ff,99,<9,>9,e8,e0
- 1140 data <c,90,a4,b0,18
- 1142 data e0,08,b0,05,bc,<0+56,>0+56
- 1144 data 88,2c,a0,ff,8c,15,d0
- 1149 data a9,ff,9d,<a,>a
- 1150 data e8,e0,<c,90,f8,ee,<0+100
- 1160 data >0+100,a2,<c,ca
- 1170 data bd,<1,>1,9d,<b,>b,ca,10,f7,xx
- 1180 end
- 1200 poke214,5+p:print
- 1210 print"[158]";p+1;"[157]) [159]"p$(p)
- 1220 print"[145]"tab(22);
- 1230 ifp(p,0)=1thenprint"[150][207]n "
- 1240 ifp(p,0)=2thenprint"[151][207]ff"
- 1250 ifp(p,0)=3thenprint"[206]/[193][150]"
- 1260 print"[145]"tab(26);p(p,1);" "
- 1270 d=p(p,1):gosub1300
- 1280 print"[145]"tab(34)"$";a$
- 1290 return
- 1300 t=int(d/4096):a$=h$(t):d=int(d-t*4096)
- 1310 t=int(d/256):a$=a$+h$(t):d=int(d-t*256)
- 1320 t=int(d/16):b$=a$:a$=a$+h$(t):d=int(d-t*16):b$=h$(t)+h$(d)+b$
- 1330 a$=a$+h$(d):return
- 1340 d=0:forj=3to0step-1:j1=asc(mid$(d$,5-j,1))-48:ifj1>16thenj1=j1-7
- 1350 d=d+(j1*16^j):next:return
- 1360 forx=21to24:poke781,x:sys 59903:next:return
- 1370 forx=2to24:poke781,x:sys59903:next:return
- 1380 da$="68f00d":gosub1430
- 1390 pokead,185:pokead+1,fnl(p(0,1)+56-sb):pokead+2,fnh(p(0,1)+56-sb):ad=ad+3
- 1400 da$="0d"+aa$+"8d"+aa$+"f00bd009":gosub1430
- 1410 pokead,185:pokead+1,fnl(p(0,1)+64-sb):pokead+2,fnh(p(0,1)+64-sb):ad=ad+3
- 1420 da$="2d"+aa$+"8d"+aa$:gosub1430:return
- 1430 mp=1:forjj=1tolen(da$)step2:a$=mid$(da$,jj,2):gosub1450:next:mp=0:return
- 1440 reada$:ifa$="xx"thenreturn
- 1450 ifleft$(a$,1)="<"then1500
- 1460 ifleft$(a$,1)=">"then1530
- 1470 a1=asc(left$(a$,1))-48:a2=asc(right$(a$,1))-48:ifa1>16thena1=a1-7
- 1480 ifa2>16thena2=a2-7
- 1490 pokead,a1*16+a2:ad=ad+1:on -(mp=0) goto1440 :return
- 1500 pl=0:iflen(a$)>2thenpl=val(mid$(a$,4))
- 1510 wg$=mid$(a$,2,1):wg=val(wg$):ifwg$>"@"andwg$<"d"thenwg=asc(wg$)-55
- 1520 pokead,fn l(p(wg,1)+pl):ad=ad+1:on -(mp=0) goto1440 :return
- 1530 pl=0:iflen(a$)>2thenpl=val(mid$(a$,4))
- 1540 wg$=mid$(a$,2,1):wg=val(wg$):ifwg$>"@"andwg$<"d"thenwg=asc(wg$)-55
- 1550 pokead,fn h(p(wg,1)+pl):ad=ad+1:on -(mp=0) goto1440 :return
- 1560 pokep(0,1)+101+j*2,fnl(ad):pokep(0,1)+102+j*2,fnh(ad)
- 1570 da$="a200a0":ifj=1thenda$=da$+"00":ep$="08":sb=0
- 1580 if j=2thenda$=da$+"08":ep$="10":sb=8
- 1590 ifj=3thenda$=da$+"10":ep$="18":sb=16
- 1600 ifj=4thenda$=da$+"18":ep$="20":sb=24
- 1610 da$=da$+"84bf":gosub1430
- 1620 ifj=1thenb1=ad:goto1660
- 1630 b1=ad:da$="b9":gosub1430
- 1640 pokead,fnl(p(10,1)-8):pokead+1,fnh(p(10,1)-8):ad=ad+2
- 1650 da$="300ea8b9<b>ba4bf186914cd12d0b0fb":gosub1430
- 1660 da$="b9<a>a":gosub1430
- 1670 da$="10034c0000a8":gosub1430
- 1680 da$="b9<b>b9d01d0":gosub1430
- 1690 ifp(2,0)=1thenda$="b9<2>29d00d0":gosub1430
- 1700 ifp(7,0)=1thenda$="b9<7>748":gosub1430
- 1710 ifp(4,0)=1thenda$="b9<4>448":gosub1430
- 1720 ifp(6,0)=1thenda$="b9<6>648":gosub1430
- 1730 ifp(5,0)=1thenda$="b9<5>548":gosub1430
- 1740 ifp(3,0)=1thenda$="b9<3>348":gosub1430
- 1750 ifp(8,0)=1thenda$="b9<8>8a4bf99":gosub1430
- 1760 ifp(8,0)=1thenpokead,fnl(2040-sb):pokead+1,fnh(2040-sb):ad=ad+2
- 1770 ifp(3,0)=1thenaa$="10d0":gosub1380
- 1780 ifp(5,0)=1thenda$="6899":gosub1430
- 1790 ifp(5,0)=1thenpokead,fnl(53287-sb):pokead+1,fnh(53287-sb):ad=ad+2
- 1800 ifp(6,0)=1thenaa$="1cd0":gosub1380
- 1810 ifp(4,0)=1thenaa$="1dd0":gosub1380
- 1820 ifp(7,0)=1thenaa$="1bd0":gosub1380
- 1830 pl=6:ifj>1thenpl=25
- 1840 pokeb1+pl,fnl(ad):pokeb1+pl+1,fnh(ad):da$="e8e8c884bfc0"+ep$:gosub1430
- 1850 d=254-(ad-b1)
- 1860 ifd>129thengosub1300:da$="d0"+right$(a$,2):gosub1430:goto1880
- 1870 da$="f0034c":d=b1:gosub1300:da$=da$+b$:gosub1430
- 1880 da$="ad<a>a3010a8b9<b>b38e9078d12d0ee00004cbcfea9008d0000a9fa8d12d04c31ea"
- 1885 gosub1430
- 1890 pokead-33,fnl(p(10,1)+8+sb):pokead-32,fnh(p(10,1)+8+sb)
- 1900 pokead-10,fnl(p(0,1)+100):pokead-9,fnh(p(0,1)+100)
- 1905 pokead-18,fnl(p(0,1)+100):pokead-17,fnh(p(0,1)+100)
- 1907 pokead-2,fnl(p(0,1)+97):pokead-1,fnh(p(0,1)+97)
- 1910 return
- 1920 b1=ad:da$="b90000300ea8b9<1>1a4bf186914cd12d0b0fb":gosub1430
- 1930 pokeb1+1,fnl(p(10,1)-8):pokeb1+2,fnh(p(10,1)-8):return
-