y J.G.HARSTON Feb 1985 Character Defining program v1.10 Oct 1985 Uses Microdrive v1.20 Jun 1986 Uses "d:filename"  39935 START=64512 CH=(START/256)-1 23676|\,CH+4 Za(x)=(start-256)+(x+127*(x<1))*8+q-40(*(x>138) 81:1:1:7:0:0: Cdrv="0"+23766\:0:int1=23734\244 0drv<"1"drv>"8"int1=0drv="T" -int123769\=66Bdrv="S" !Lint1#:9 ;"b":23769\,drv-17:23766\,drv-"0" ((:a=23300[23343/[:q:a,q:a 2195,23,91[,195,10 ,91[,33!,0,61=,237,91[,0,91[,1,0,3,237,176,201 3221,33!,239,91[,17,17,0,175,557,205,86V,5,1,0,10 ,33!,240,91[,208,126~,215,35#,16,251,201 4Goff=1700 7Gon=1710 9Gext=1720 FCoff=1600@ ICon=1610J KGoff Mq="a"-8"a"-2 Oq,128:q:q,255 Pa=32 :d=0:b=a Ux=1:y=8 Z 900 dCon:Goff:0,0;" !""#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~";127;""; nGext:"":Gon:Coff x/DFLG=118,0;"Character =" Goff  100d %8,112p:64@,0 0,-64@ Gon n=07 m=07 ^n+8,m+1;2;(""Ʃ(96`+m,31-n));(""é(96`+m,31-n)) m:n  "300,:erfg #da>128a<144Coff:#1;"This character is unredefinable":0:Con:290" ' ,a$="" -Coff:Goff:erfg=0 6!PRINTAT21,1;"Which character?"; @(a$);"Which character? ";q$ E q$=""erfg=1:395 Jq$>3320@ TQ$=""320@ Yq$=1a=q$:380| [>flag=0:q$(1)="-"flag=1:q$(1)="0" ^Lq$(1)<"0"q$(1)>"9"q$(2)<"0"q$(2)>"9"320@ h9q$=3q$(3)<"0"q$(3)>"9"320@ ra=q$ wflag=1a=-a:390 |#a<32 a>164320@ a<-9 320@ +:21,0;"":  23658j\,8:Caps Lock 0:q$=  q$""  410  Loop Start 'dflg=1::1900l:150 Loop eflg=0:500 eflg=1900  150  445 @COFF:#0;1,6;127;"1985 J.G.HARSTON"; !21,12 ;1;"?" '2;y,x;1;"+":400 2;y,x;1;"+" 21,12 ;"" B(q$>"4"q$<"9")(q$>7q$<12 )700:500 q$="F"2900T :Flip q$="I"3000 :Invert q$="Y"2500 :Up scroll &!q$="G"2400` :Left scroll 0"q$="H"2300:Right scroll :!q$="B"2600( :Down scroll Dq$="Q"3500 :Spin \ Nq$="P"2700 :Spin / Xq$="M"2810 :Mirror b$q$=13 800 :500 g2IFq$="R"THENGOSUB850:IFERFG=0THENRETURN:REMReset l%q$="V"1400x:500:View vq$="E"eflg=1::End #q$="S"3600::Superimpose  500 .Gon:2;y,x;(""q$<" ");(""q$>" ") !(q$>" ");95_+x,39'-y 7x=x+((q$="8")(q$=9 ))-((q$="5")(q$=8)) 9y=y+((q$="6")(q$=10 ))-((q$="7")(q$=11 )) x>8x=1 x<1x=8 y>15y=8 y<8y=15  Goff   319,12 ;1;"" * 290" 4erfg=01800 >x=1:y=8 C319,12 ;1;"" H 100d R(5,16;1;"" W%20,0;" Reset grid as"; \290":erfg880p fCOFF:18,12 ;A; pO20,0;" ";5,16;1;"": 3dflg=0::2000:150:1001  100d V5,4;"Start of characters=";start;6,8;"Current drive=";drv :#0;1,6;127;"1985 J.G.HARSTON"; !21,14;1;"?"  400 21,14;"" q$="E"440:Edit 1q$="W"1300:160:1000:Swap q$="V"1400x:View $$q$="L"21004:75K:Load )%q$="S"2200:900:Save *(q$="C"1100L:900:Catalog +.q$="D"1110V:1001:Change drive .%q$="Q"3400H :900:Quit 3$q$="R"1200:Reset char set 8Q$="A"1250 B 1000 LB:"Catalog of drive ";drv:drv>"0"drv<"9"ϰdrv:1107S MHdrv="S":#9 ;"C"'a$:1,0;a$(2):1107S N q=0 OIbc=23300[:bc=0q=(q+1)(q<2):q0" "; Rq$=:q$=""1103O R S""1107S T;1:#0;"Press SPACE to continue":0:;: V01;16,16;"" `4"Enter drive/device: ";q$:q$>"`"q$=(q$-" ") jq$>"0"q$<"["drv=q$ ~01;16,16;""  )1;10 ,16;"" 7"Do you really want to reset the character set?",q$ )1;10 ,16;""  q$="" q$(1)"Y" G23297[,start/256:23296[,start-256*23297[ call=23303[:  )1;8,16;"" "Coff:"Start of characters: ",st )1;8,16;"" Kst<40000@st>64600X#0;"Out of range":0:;:Con: ch=(st/256)-1 start=(1+ch)*256  23676|\,ch+4  :Q="A"-8"A"-2:Q,128:Q:Q,255 Con: Swap (1;11 ,16;"" M290":dog=a:19,4;:Con:1505:Coff:"":290" #&19,10 ;:Con:1505 (*1500:z=a:a=137:1800 2$a=dog:1500:a=z:1800 <6Gext:18,12 ;"":Gon:a=dog:1800 F19,4;"" P(1;11 ,16;"" Z n x(1;13 ,16;"" }Goff:300, Con:1500 <dflg=0Coff:18,1;"Char = ";a;"":Con  160 (1;13 ,16;""  Print a character AT 18,12 18,12 ; *Print a character AT last print position a>30a;: Gext (143-a); Goff  @#236077\,60<::Chars off J236077\,ch::Chars on &23675{\,88X::Graphics off %23675{\,80P::Graphics on *23675{\,0::Graphics extended q=07 "a(a),(20556LP+q*256) &q 0 lCoff:PRINTAT5,16;"R - RESET" m6,16;"M - MIRROR"',"F - FLIP"',"Q - SPIN \"',"P - SPIN /"',"I - INVERT"',"S - SUPERIMPOSE"'13 ;"Y,G,H,B - SCROLL"',"V - VIEW"' vf',"5 - RIGHT"',"6 - DOWN"',"7 - UP"',"8 - RIGHT"'14;"ENTER - Enter char"'',"E - Exit to menu" Con: Coff:8,16;"A - Change start"," addr of chars"',"R - Reset chars"',"W - SWAP"',"E - EDIT"',"V - VIEW"',"L - Load file"',"S - Save file"',"D - Change drive"',"C - Catalog"',"Q - Quit"', Con: 3******Load******** 4I8;1;14,16;"";19,0; 92250:f$="" >Fa$="Load "+f$+" starting at"+13 :301-:q$=""a=32 ? a<0 @Hq=start+a*8-256:a>143q="a"+(a-144)*8 C!f$(2)":"f$=drv+":"+f$ HEf$(1)>"0"f$(1)<"9"*"m";f$(1);f$(3)q: M#f$(1)"S"f$(3)q: Rint1=0 WB#9 ;"L";(f$(3))'a$;#2;(a$(2))':a$"" \ *"b"q: ******Save******** 68;1;15,16;"" 2250:f$="" Fa$="Save "+f$+" starting at"+13 :301-:q$=""a=32 w=a:a<0 Ma$="Save from character "+a+" to"+13 :301-:q$=""a=164 a<0a903a=a-40( Hq=start+w*8-256:w>143q="a"+(w-144)*8 !f$(2)":"f$=drv+":"+f$ Gf$(1)>"0"f$(1)<"9"*"m";f$(1);f$(3)q,a: %f$(1)"S"f$(3)q,a: int1=0 B#9 ;"S";(f$(3))'a$;#2;(a$(2))':a$""  *"b"q,a: *****Get file name******* Coff:"Enter file name: ";f$  ******R-Scroll******** ,1;12 ,17;"" 9q=70-1:dog=(103g,31-q) w=60-1 2é(w+96`,31-q);w+97a,31-q w:dog;96`,31-q $q .,1;12 ,17;"" 8 _******L-Scroll******** `.1;12 ,15;"" e/q=07:dog=(96`,31-q) jw=17 t2é(96`+w,31-q);95_+w,31-q ~w:dog;103g,31-q q .1;12 ,15;""  ******U-Scroll******** 01;12 ,13 ;"" /q=07:dog=(q+96`,31) w=17 2é(q+96`,31-w);q+96`,32 -w w:dog;96`+q,24 q 01;12 ,13 ;""  '******D-Scroll******** (*1;12 ,19;"" -/q=07:dog=(q+96`,24) 2w=60-1 <2é(q+96`,31-w);q+96`,30-w Fw:dog;96`+q,31 Pq Z*1;12 ,19;"" d ******Spin /******** )1;9 ,16;"" (q=17:w=q-17 Pdog=(95_+q,25+w):é(97a+w,23+q);95_+q,25+w dog;97a+w,23+q w:q )1;9 ,16;""  ******Spin \******** )1;8,16;"" 2810 :2700 )1;8,16;"" ******Mirror******** )1;6,16;"" &q=03:w=07 Qdog=(96`+q,24+w):é(103g-q,w+24);96`+q,24+w dog;103g-q,w+24 w:q ")1;6,16;"" , S******Flip***** T&1;7,16;"" Y+z=a:a=137:1800:SCREEN$mem ^q=07 h<20556LP+256*q,(a(a+1)-2*q-1) rq wa=z |&1;7,16;""  ******Invert****** *1;10 ,16;"" q=07 >20556LP+256*q,255-(20556LP+256*q) q *1;10 ,16;""  G******Quit****** H{;:1;18,16;"":Coff:#1;"Are you sure you want to quit?":400:(q$="y"q$="Y") RX:" This program will self-destructbut the characters will remain intact in memeory." \w'" To turn the characters on, use"'2'" POKE 23606,0:POKE 23607,";ch," POKE 23675,88:POKE 23676,";CH+4, fP''" To turn the characters off, use"'2'" POKE 23606,0:POKE 23607,60", pN''" Press a key, and this program will ";1;"NEW";0, z''" Bye!" 0:0:0  ********Spin \******** )1;8,16;"" (q=06:w=06-q Qdog=(96`+q,24+w):é(103g-w,31-q);96`+q,24+w dog;103g-w,31-q w:q )1;8,16;""  *****Superimpose***** /1;11 ,16;""  300, $&coff:21,0;"XOR or OR?" )400:q$="O"3650B .q$"X"3770 1********XOR********* 3"1;21,0;"" 81:1500:0 =30:3770 A********OR********* B!1;21,7;"" L!18,13 ;:1505 V&Q=07:W=07 `N((96`+W,24+Q)ũ(104h+W,24+Q));96`+W,24+Q jW:Q t18,13 ;"" /1;11 ,16;""  21,0;""