Home » Archimedes archive » Zipped Apps » Artist » !Artist/Painting
!Artist/Painting
This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.
Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.
Tape/disk: | Home » Archimedes archive » Zipped Apps » Artist |
Filename: | !Artist/Painting |
Read OK: | ✔ |
File size: | A2F8 bytes |
Load address: | 0000 |
Exec address: | 0000 |
File contents
REM > Painting REM (c) Acorn Computers 1987 REM Version 1.2 *SNEW DIM wimp 2200 , windows(31) , heap 4000 , heap(10) , `sub_men(10) DIM `help 2000 , help(10,10) , `r(16) , `g(16) , `b(16) , par% 256 DIM t_wimp 128 , data 3100 , save% 16 , `p(3,64) spt_area_size = 110000: DIM spt_area spt_area_size FOR A% = spt_area TO spt_area+spt_area_size-1 STEP 4:!A%=-1:NEXT VDU6,12,23,16,&40,&BF| GCOL 135 PROCwimp_vars PROCinit SYS initialise PROCdesktop *POINTER PROCopen_window(windows(1),0,100,1280,988,0,0,-1) PROCdef_heap(windows(1)) PROCcreate_help PROCscrn ON ERROR PROCreport REPEAT `old_area = `dr_area c = FNpoll(0) CASE c OF WHEN 1 : PROCredraw_window(!wimp):PROCupdate(!wimp) WHEN 2 : PROCopen_window(!wimp,wimp!4,wimp!8,wimp!12,wimp!16,wimp!20, wimp!24,wimp!28) WHEN 3 : PROCclose_window(!wimp) WHEN 4 : WHEN 5 : IF !wimp=windows(5) THEN `handle% = windows(5) WHEN 6 : PROCmouse(!wimp,wimp!4,wimp!8,wimp!12,wimp!16,wimp!20) WHEN 7 : WHEN 8 : PROCsave_name ENDCASE MOUSE `x%,`y%,`b% IF FNdraw_area THEN IF `old_area <> `dr_area THEN PROCdr_copy VDU24,162;232;1274;972; IF `col% = 17 THEN GCOL80+`style%,0 ELSE GCOL `style%,`col% ENDIF IF `cur_menu = 1 THEN CASE `func% OF WHEN 3 : PROCdo_line WHEN 4 : PROCdo_joined WHEN 5 : PROCdo_radii WHEN 6 : PROCdo_point ENDCASE ENDIF IF `cur_menu = 2 THEN CASE `func% OF WHEN 3 : PROCdo_rect WHEN 4 : PROCdo_square WHEN 5 : PROCdo_para WHEN 6 : PROCdo_tria ENDCASE ENDIF IF `cur_menu = 3 THEN CASE `func% OF WHEN 3 : PROCdo_circ WHEN 4 : PROCdo_elip WHEN 5 : PROCdo_segm WHEN 6 : PROCdo_arc WHEN 7 : PROCdo_sect ENDCASE ENDIF IF `cur_menu = 4 THEN CASE `func% OF WHEN 3 : PROCdo_text ENDCASE ENDIF IF `cur_menu = 5 THEN CASE `func% OF WHEN 3 : PROCdo_copy WHEN 4 : PROCdo_move WHEN 5 : PROCdo_clear WHEN 7 : PROCdo_fill ENDCASE ENDIF ENDIF VDU 26 UNTIL FALSE END DEF PROCinit VDU 19, 0,16, 0, 0, 0 :`r(0)=0 :`g(0)=0 :`b(0)=0 : REM BLACK VDU 19, 1,16,240, 0, 0 :`r(1)=240:`g(1)=0 :`b(1)=0 : REM RED 100% VDU 19, 2,16, 0,240, 0 :`r(2)=0 :`g(2)=240:`b(2)=0 : REM GREEN 100% VDU 19, 3,16,240,240, 0 :`r(3)=240:`g(3)=240:`b(3)=0 : REM YELLOW 100% VDU 19, 4,16, 0, 0,240 :`r(4)=0 :`g(4)=0 :`b(4)=240: REM BLUE 100% VDU 19, 5,16,240, 0,240 :`r(5)=240:`g(5)=0 :`b(5)=240: REM MAGENTA 100% VDU 19, 6,16, 0,240,240 :`r(6)=0 :`g(6)=240:`b(6)=240: REM CYAN 100% VDU 19, 7,16,240,240,240 :`r(7)=240:`g(7)=240:`b(7)=240: REM WHITE 100% VDU 19, 8,16,224,144,144 :`r(8)=224:`g(8)=144:`b(8)=144: REM TITLE BACK VDU 19, 9,16,160,160,160 :`r(9)=160:`g(9)=160:`b(9)=160: REM ICON BACK VDU 19,10,16,114,114,114 :`r(10)=114:`g(10)=114:`b(10)=114:REM SCROLL BACK VDU 19,11,16,176,176,176 :`r(11)=176:`g(11)=176:`b(11)=176:REM MENU BACK VDU 19,12,16,208, 0, 0 :`r(12)=208:`g(12)=0 :`b(12)=0 VDU 19,13,16,176,176, 0 :`r(13)=176:`g(13)=176:`b(13)=0 VDU 19,14,16, 0, 0,208 :`r(14)=0 :`g(14)=0 :`b(14)=208 VDU 19,15,16,112,160,160 :`r(15)=112:`g(15)=160:`b(15)=160 : `ib = &89 : `if = &00 : `wf = &00 : `wb = &87 : `tf = &00 : `tb = &88 `sf = &04 : `sb = &8A VDU19,0,24,&50,&50,&50 VDU19,1,25,&00,&F0,&F0 VDU19,2,25,&00,&00,&F0 VDU19,3,25,&F0,&00,&00 `cur_menu = 0 `m_fill = FALSE `m_open = TRUE `m_dots = FALSE `m_xor= FALSE `m_or = FALSE `m_and= FALSE `m_inv= FALSE `func%= 2 `col% = 0 `style% = 0 `brsh%= 243 `x% = 0 : `y% = 0 : `b% = 0 `handle% = 0 `icon% = 0 `state% = 0 `dr_area = -1 `max_file% = 77 VDU23,243,0,0,0,&18,&18,0,0,0 VDU23,244,0,0,&3C,&3C,&3C,&3C,0,0 VDU23,245,&FF,&FF,&FF,&FF,&FF,&FF,&FF,&FF VDU23,246,0,&18,&3C,&7E,&FF,0,0,0 VDU23,247,0,&18,&3C,&7E,&7E,&3C,&18,0 VDU23,248,0,6,&E,&1C,&38,&70,&60,0 VDU23,249,0,&54,&2A,&54,&2A,&54,&2A,0 VDU23,250,0,&40,&20,&10,8,4,2,0 VDU23,251,0,16,16,16,16,16,16,0 VDU23,252,0,0,0,0,0,0,0,0 VDU23,253,&80,&52,8,&29,&90,&C,&A2,8 VDU23,254,0,0,0,&7E,0,0,0,0 VDU 23,17,4,1,0,0,0,0,0,0 FOR a% = 0 TO 63 `p(0,a%) = (a% MOD 2)+1+(a% DIV 8)MOD 2 `p(1,a%) = ((a% MOD 2)+(a% DIV 8)MOD 2)MOD 2+1 `p(2,a%) = (a% MOD 2)+5+(a% DIV 8)MOD 2 `p(3,a%) = ((a% MOD 2)+(a% DIV 8)MOD 2)MOD 2+9 NEXT a% `ptrn = 0 GCOL 0 RECTANGLE FILL 46,694,64,64 SYS &2E,16,0,"curcol",0,46,694,100,758 spt_area!0 = spt_area_size : spt_area!4 = 0 : spt_area!8 =16 : spt_area!12 = spt_area!8 VDU26,23,17,4,1,0,0,0,0,0,0 ENDPROC DEF PROCwimp_vars : : ws = &000400C0 : initialise= ws create_window = ws + 01 create_icon = ws + 02 delete_window = ws + 03 delete_icon = ws + 04 open_window = ws + 05 close_window= ws + 06 poll_wimp = ws + 07 redraw_window = ws + 08 update_window = ws + 09 get_rectangle = ws + 10 get_window_state= ws + 11 get_window_info = ws + 12 set_icon_state= ws + 13 get_icon_info = ws + 14 get_pointer_info= ws + 15 drag_box= ws + 16 screen_redraw = ws + 17 set_carot_position= ws + 18 : ENDPROC DEF PROCdesktop RESTORE wind% = -1 REPEAT READ f%,fc%,bc%,x0%,y0%,x1%,y1%,if%,ic$,cx0%,cy0%,cx1%,cy1%,nic%,tit$: wind% = wind% + 1 windows(wind%) = FNcreateW(cx0%,cy0%,cx1%,cy1%,0,0,f%,fc%,bc%,x0%,y0%,x1%,y1%,if%,CHR$197,tit$,nic%) : READ A$ UNTIL A$="" !wimp = windows(10) wimp!4= 0 wimp!8= -100 wimp!12 = 250 wimp!16 = 0 wimp!20 = &9000F135 wimp!24 = save% wimp!28 = -1 wimp!32 = 10 $save% = "" SYS create_icon,0,wimp : REM flags,forecl,backcl,minx,miny,maxx,miny,iconflg,icon,x0,y0,x1,y1,n,t$ : REMPALETTE WINDOW 7 DATA &50,`wf,`wb,0,-96,100,0,0,"",0,0,100,96,1,"" DATA 0,-96,100,4,&300E,`if,0,func,null : DATA &11,`wf,`wb,0,-888,1280,0,&302D,"",0,100,1280,988,11,"ARM PAINT" DATA 0,-40,160,4,&302D,`if,`ib,COLOURS DATA 0,-752,160,-538,&303D,`if,`ib,mode DATA 0,-888,160,-748,&303D,`if,&88,func DATA 160,-888,300,-748,&303D,`if,`ib,draw DATA 300,-888,440,-748,&303D,`if,`ib,shapes DATA 440,-888,580,-748,&303D,`if,`ib,curve DATA 580,-888,720,-748,&303D,`if,`ib,text DATA 720,-888,860,-748,&303D,`if,`ib,area DATA 860,-888,1000,-748,&303D,`if,`ib,"" DATA 1000,-888,1140,-748,&303D,`if,`ib,load DATA 1140,-888,1280,-748,&303D,`if,`ib,save,null : DATA &11,`wf,`wb,0,-200,400,0,&302D,"",120,230,520,430,7,MODE DATA 0,-98,200,0,&303D,`if,`ib,fill DATA 200,-98,400,0,&303D,`if,&88,open DATA 0,0,0,0,&303E,`if,`ib,"" DATA 0,-200,100,-100,&303D,`if,`ib,Xor DATA 100,-200,200,-100,&303D,`if,`ib,OR DATA 200,-200,300,-100,&303D,`if,`ib,AND DATA 300,-200,400,-100,&303D,`if,`ib,INV,null : DATA &11,`wf,`wb,0,-280,720,0,&302D,"",180,170,900,450,0,HELP! DATA null DATA &1D,`wf,`wb,0,-700,150,0,&302D,"",500,550,650,850,0,DISK DATA null DATA &00,`wf,`wb,0,-744,1112,0,&302D,"",164,232,1276,976,0,"" DATA null DATA &10,`if,`ib,0,-494,160,0,0,"",0,442,160,936,21,"" DATA 4,- 40, 36,-8,&302D,`if,&80,"" DATA44,- 40, 76,-8,&302D,`if,&81,"" DATA84,- 40,116,-8,&302D,`if,&82,"" DATA 124,- 40,156,-8,&302D,`if,&83,"" DATA 4,- 80, 36,- 48,&302D,`if,&84,"" DATA44,- 80, 76,- 48,&302D,`if,&85,"" DATA84,- 80,116,- 48,&302D,`if,&86,"" DATA 124,- 80,156,- 48,&302D,`if,&87,"" DATA 4,-120, 36,- 88,&302D,`if,&88,"" DATA44,-120, 76,- 88,&302D,`if,&89,"" DATA84,-120,116,- 88,&302D,`if,&8A,"" DATA 124,-120,156,- 88,&302D,`if,&8B,"" DATA 4,-160, 36,-128,&302D,`if,&8C,"" DATA44,-160, 76,-128,&302D,`if,&8D,"" DATA84,-160,116,-128,&302D,`if,&8E,"" DATA 124,-160,156,-128,&302D,`if,&8F,"" DATA 4,-380, 68,-308,&303E,`if,`ib,"ecf0" DATA92,-380,152,-308,&303E,`if,`ib,"ecf1" DATA 4,-460, 68,-388,&303E,`if,`ib,"ecf2" DATA92,-460,152,-388,&303E,`if,`ib,"ecf3" DATA 40,-248,110,-172,&303E,`if,&80,"curcol" DATA null DATA &1,`wf,`wb,0,-400,500,0,&302D,"",250,330,750,730,1,Palette DATA 0,-400,500,0,&3000,`if,`ib,"" DATA null DATA &11,`wf,`wb,0,-292,306,0,&302D,"",150,400,456,692,64,Pattern DATA 2,-36, 38,-4,&3029,7,&80,"" DATA40,-36, 76,-4,&3029,7,&80,"" DATA78,-36,114,-4,&3029,7,&80,"" DATA 116,-36,152,-4,&3029,7,&80,"" DATA 154,-36,190,-4,&3029,7,&80,"" DATA 192,-36,228,-4,&3029,7,&80,"" DATA 230,-36,266,-4,&3029,7,&80,"" DATA 268,-36,304,-4,&3029,7,&80,"" DATA 2,- 72, 38,- 40,&3029,7,&80,"" DATA40,- 72, 76,- 40,&3029,7,&80,"" DATA78,- 72,114,- 40,&3029,7,&80,"" DATA 116,- 72,152,- 40,&3029,7,&80,"" DATA 154,- 72,190,- 40,&3029,7,&80,"" DATA 192,- 72,228,- 40,&3029,7,&80,"" DATA 230,- 72,266,- 40,&3029,7,&80,"" DATA 268,- 72,304,- 40,&3029,7,&80,"" DATA 2,-108, 38,- 76,&3029,7,&80,"" DATA40,-108, 76,- 76,&3029,7,&80,"" DATA78,-108,114,- 76,&3029,7,&80,"" DATA 116,-108,152,- 76,&3029,7,&80,"" DATA 154,-108,190,- 76,&3029,7,&80,"" DATA 192,-108,228,- 76,&3029,7,&80,"" DATA 230,-108,266,- 76,&3029,7,&80,"" DATA 268,-108,304,- 76,&3029,7,&80,"" DATA 2,-144, 38,-112,&3029,7,&80,"" DATA40,-144, 76,-112,&3029,7,&80,"" DATA78,-144,114,-112,&3029,7,&80,"" DATA 116,-144,152,-112,&3029,7,&80,"" DATA 154,-144,190,-112,&3029,7,&80,"" DATA 192,-144,228,-112,&3029,7,&80,"" DATA 230,-144,266,-112,&3029,7,&80,"" DATA 268,-144,304,-112,&3029,7,&80,"" DATA 2,-180, 38,-148,&3029,7,&80,"" DATA40,-180, 76,-148,&3029,7,&80,"" DATA78,-180,114,-148,&3029,7,&80,"" DATA 116,-180,152,-148,&3029,7,&80,"" DATA 154,-180,190,-148,&3029,7,&80,"" DATA 192,-180,228,-148,&3029,7,&80,"" DATA 230,-180,266,-148,&3029,7,&80,"" DATA 268,-180,304,-148,&3029,7,&80,"" DATA 2,-216, 38,-184,&3029,7,&80,"" DATA40,-216, 76,-184,&3029,7,&80,"" DATA78,-216,114,-184,&3029,7,&80,"" DATA 116,-216,152,-184,&3029,7,&80,"" DATA 154,-216,190,-184,&3029,7,&80,"" DATA 192,-216,228,-184,&3029,7,&80,"" DATA 230,-216,266,-184,&3029,7,&80,"" DATA 268,-216,304,-184,&3029,7,&80,"" DATA 2,-252, 38,-220,&3029,7,&80,"" DATA40,-252, 76,-220,&3029,7,&80,"" DATA78,-252,114,-220,&3029,7,&80,"" DATA 116,-252,152,-220,&3029,7,&80,"" DATA 154,-252,190,-220,&3029,7,&80,"" DATA 192,-252,228,-220,&3029,7,&80,"" DATA 230,-252,266,-220,&3029,7,&80,"" DATA 268,-252,304,-220,&3029,7,&80,"" DATA 2,-288, 38,-256,&3029,7,&80,"" DATA40,-288, 76,-256,&3029,7,&80,"" DATA78,-288,114,-256,&3029,7,&80,"" DATA 116,-288,152,-256,&3029,7,&80,"" DATA 154,-288,190,-256,&3029,7,&80,"" DATA 192,-288,228,-256,&3029,7,&80,"" DATA 230,-288,266,-256,&3029,7,&80,"" DATA 268,-288,304,-256,&3029,7,&80,"" DATA null DATA &11,`wf,`wb,0,-192,192,0,&302D,"",600,400,792,592,12,Brushes DATA0,- 64, 48, 0,&302D,`if,&88,"�" DATA 48,- 64, 96, 0,&302D,`if,`ib,"�" DATA 96,- 64, 144, 0,&302D,`if,`ib,"�" DATA 144,- 64,192, 0,&302D,`if,`ib,"�" DATA0,-128, 48,- 64,&302D,`if,`ib,"�" DATA 48,-128, 96,- 64,&302D,`if,`ib,"�" DATA 96,-128, 144,- 64,&302D,`if,`ib,"�" DATA 144,-128,192,- 64,&302D,`if,`ib,"�" DATA0,-192, 48,-128,&302D,`if,`ib,"�" DATA 48,-192, 96,-128,&302D,`if,`ib," " DATA 96,-192, 144,-128,&302D,`if,`ib,"�" DATA 144,-192,192,-128,&302D,`if,`ib,"-" DATA null DATA &11,`wf,`wb,0,-100,250,0,&F02D,"",900,350,1150,450,0,"DISK SAVE" DATA null DATA &41,`wf,`wb,0,-700,1280,0,&302D,"",100,50,1000,300,0,"ERROR" DATA "" : `max_window = wind% ENDPROC DEF FNcreateW(cx0%,cy0%,cx1%,cy1%,scx%,scy%,flags%,fc%,bc%,sx0%,sy0%,sx1%,sy1%,iconf%,icon$,title$,nicons%) !wimp=cx0%:wimp!4=cy0%:wimp!8=cx1%:wimp!12=cy1%:wimp!16=scx%:wimp!20=scy% wimp!24=-1:wimp!28=flags% wimp?32=`tf:wimp?33=`tb:wimp?34=fc%:wimp?35=bc% wimp?36=`sf:wimp?37=`sb:wimp?38=`wb:wimp?39=0 wimp!40=sx0%:wimp!44=sy0%:wimp!48=sx1%:wimp!52=sy1% wimp!56=iconf%:wimp!60=0:wimp!64=0:wimp!68=0:REM DANGER $(wimp+60)=LEFT$(icon$,11) $(wimp+72)=LEFT$(title$,11) wimp!84=nicons% LOCALI%,x0%,y0%,x1%,y1%,f%,data$:I%=wimp+88 WHILE nicons%>0 READ x0%,y0%,x1%,y1%,f%,fc%,bc%,data$ I%!0=x0%:I%!4=y0%:I%!8=x1%:I%!12=y1%:I%!16=f%:$(I%+20)=data$ I%?19=fc%+(bc%AND15)*16 I%=I%+32:nicons%=nicons%-1 ENDWHILE SYS create_window,0,wimp TO handle% =handle% DEF PROCopen_window(handle%,x0%,y0%,x1%,y1%,scx%,scy%,bhandle%) IFhandle%=-1 OR bhandle%<-1 THENENDPROC wimp!0=handle%:wimp!28=bhandle% wimp!4=x0%:wimp!8=y0%:wimp!12=x1%:wimp!16=y1% wimp!20=scx%:wimp!24=scy% SYS open_window,0,wimp IF handle% = windows(1) THEN PROCecf(0) PROCecf(1) PROCecf(2) PROCecf(3) handle% = 0 PROCopen_window(windows(6),4,442,160,936,0,0,-1) PROCopen_window(windows(5),164,232,1276,976,0,0,-1) PROCupd_ecf VDU24,162;232;1274;972; GCOL135 CLG SYS &2E,256+16,spt_area,"HDS",0,162,232,1274,972 VDU 26 SYS screen_redraw,-1,0,0,1279,1023 ENDIF ENDPROC DEF FNpoll(mask) !wimp = mask SYS poll_wimp,0,wimp TO handle% =handle% DEF PROCredraw_window(handle%) !wimp = handle% SYS redraw_window,0,wimp TO more% IF handle%=windows(11) THEN WHILE more% MOVEwimp!4+16,wimp!16-40: PRINT REPORT$ SYS get_rectangle,0,wimp TO more% ENDWHILE ELSE : REM PMF BODGE - must complete the protocol ! WHILE more% SYS get_rectangle,0,wimp TO more% ENDWHILE ENDIF ENDPROC DEF PROCclose_window(handle%) LOCAL a% IF handle%=windows(11) MOUSE RECTANGLE0,0,1279,1023 !wimp = handle% SYS close_window,0,wimp IF handle% = windows(1) THEN FOR a% = 1 TO `max_window !wimp = windows(a%) SYS close_window,0,wimp NEXT a% OSCLI("DeskTop") END ENDIF IF handle% = windows(8) THEN PROCecf(`ptrn) PROCupd_ecf ENDIF ENDPROC DEF PROCget_window_state(handle%) !wimp=handle% SYS get_window_state,0,wimp ENDPROC DEF PROCget_pointer_info !wimp=`x% wimp!4 = `y% wimp!8 = `b% wimp!12 = `handle% wimp!16 = `icon% ENDPROC DEF PROCdelete_icon(handle%,n%) !wimp = handle% wimp!4 = n% SYS delete_icon,0,wimp ENDPROC DEF PROCset_icon_state(handle%,ih%,f%,if%,ib%,m%) !wimp = handle% wimp!4 = ih% wimp!8 = f% wimp?11 = if%+(ib% AND 15)*16 wimp!12 = m% SYS set_icon_state,0,wimp ENDPROC DEF PROCget_icon_info(handle%,icon%) !wimp=handle% wimp!4=icon% SYS get_icon_info,0,wimp ENDPROC DEF PROCmouse(x%,y%,b%,handle%,icon%,ob%) `b% = b% : `x% = x% : `y% = y% : `handle% = handle% : `icon% = icon% IF handle% = -1 THEN ENDPROC PROCget_window_state(handle%) IF (b% AND 1) THEN CASE handle% OF OTHERWISE : PROCdrag_box(handle%,1) ENDCASE ENDIF : IF (b% AND 2) THEN CASE handle% OF WHEN windows(0) : PROCclose_window(windows(1)) WHEN windows(1) : PROCmight_close(icon%) ENDCASE ENDIF : IF (b% AND 4) THEN IF handle%<>windows(0) THEN PROCscrn_copy CASE handle% OF WHEN windows(0) : PROCtest_open(windows(1)) WHEN windows(1) : PROCicon_menus WHEN windows(2) : PROCmode_flags(icon%) WHEN windows(4) : PROCload(icon%) WHEN windows(6) : PROCselect_colour(icon%) WHEN windows(7) : PROCpalette WHEN windows(8) : PROCpatt_edit(icon%) WHEN windows(9) : PROCselect_brush(icon%) ENDCASE ENDIF ENDPROC DEF PROCtest_open(handle%) LOCAL b%,hp,c% IF handle% = windows(3) AND `func% >= 2 THEN FOR b% = 27 TO 0 STEP -1 PROCdelete_icon(windows(3),b%) NEXT b% hp = help(`cur_menu,`func%) FOR b% = 0 TO 27 SYS create_icon,0,hp TO c% hp = hp + 36 NEXT b% ENDIF PROCget_window_state(handle%) IF wimp!32 AND &0003000 <> 0 THEN PROCopen_window(!wimp,wimp!4,wimp!8,wimp!12,wimp!16,wimp!20,wimp!24,wimp!28) ENDIF ENDPROC DEF PROCmight_close(icon%) IF icon% = 1 THEN PROCclose_window(windows(2)) ENDIF CASE `cur_menu OF WHEN 0 : IF icon% = `sub_men(0)-1 PROCclose_window(windows(3)):ELSE IF icon% = `sub_men(0) PROCclose_window(windows(4)) WHEN 1 : IF icon% = `sub_men(1) PROCclose_window(windows(3)) WHEN 2 : IF icon% = `sub_men(2) PROCclose_window(windows(3)) WHEN 3 : IF icon% = `sub_men(3) PROCclose_window(windows(3)) WHEN 4 : IF icon% = `sub_men(4) PROCclose_window(windows(3)) WHEN 5 : IF icon% = `sub_men(5) PROCclose_window(windows(3)) ENDCASE ENDPROC DEF PROCdrag_box(handle%,type%) !wimp = handle% wimp!4= type% SYS drag_box,0,wimp ENDPROC DEF PROCkey_bounce LOCAL x%,y%,b% REPEAT MOUSE x%,y%,b% UNTIL b%<>`b% ENDPROC DEF PROCset_carot_position(handle%,icon%,x%,y%,h%,i%) SYS set_carot_position,handle%,icon%,x%,y%,h%,i% ENDPROC DEF PROCdef_heap(handle%) LOCAL n%,g%,x0,y0,x1,y1,f%,for%,bck%,tit$,a a = 0 : hp = heap REPEAT READ n% : `sub_men(a) = n%+1 IF n% <> 0 THEN heap(a) = hp FOR g% = 1 TO n% READ x0,y0,x1,y1,f%,for%,bck%,tit$ !hp = handle% hp!4= x0 : hp!8= y0 hp!12 = x1 : hp!16 = y1 hp!20 = f% hp?22 = for% : hp?23 = bck% $(hp+24) = tit$ hp = hp + 36 NEXT g% ENDIF a = a + 1 UNTIL n%=0 : `func = heap(0) `draw = heap(1) `shape= heap(2) `curve= heap(3) `text = heap(4) `area = heap(5) : ENDPROC DATA 9 DATA 0,-888,160,-748,&303D,`if,&88,func DATA 160,-888,300,-748,&303D,`if,`ib,draw DATA 300,-888,440,-748,&303D,`if,`ib,shapes DATA 440,-888,580,-748,&303D,`if,`ib,curve DATA 580,-888,720,-748,&303D,`if,`ib,text DATA 720,-888,860,-748,&303D,`if,`ib,area DATA 860,-888,1000,-748,&303D,`if,`ib,"" DATA 1000,-888,1140,-748,&303D,`if,`ib,load DATA 1140,-888,1280,-748,&303D,`if,`ib,save DATA 7 DATA 0,-888,160,-748,&303D,`if,&88,draw DATA 160,-888,320,-748,&303D,`if,`ib,line DATA 320,-888,480,-748,&303D,`if,`ib,joined DATA 480,-888,640,-748,&303D,`if,`ib,radii DATA 640,-888,800,-748,&303D,`if,`ib,brush DATA 800,-888,1000,-748,&303D,`if,`ib,select DATA 1000,-888,1280,-748,&303D,`if,`ib,"" DATA 6 DATA 0,-888,160,-748,&303D,`if,&88,shapes DATA 160,-888,320,-748,&303D,`if,`ib,rectangle DATA 320,-888,480,-748,&303D,`if,`ib,square DATA 480,-888,640,-748,&303D,`if,`ib,parallelo DATA 640,-888,800,-748,&303D,`if,`ib,triangle DATA 800,-888,1280,-748,&303D,`if,`ib,"" DATA 7 DATA 0,-888,160,-748,&303D,`if,&88,curve DATA 160,-888,320,-748,&303D,`if,`ib,circle DATA 320,-888,480,-748,&303D,`if,`ib,ellipse DATA 480,-888,640,-748,&303D,`if,`ib,segment DATA 640,-888,800,-748,&303D,`if,`ib,arc DATA 800,-888,1000,-748,&303D,`if,`ib,sector DATA 1000,-888,1280,-748,&303D,`if,`ib,"" DATA 3 DATA 0,-888,160,-748,&303D,`if,&88,text DATA 160,-888,320,-748,&303D,`if,`ib,text@cur DATA 320,-888,1280,-748,&303D,`if,`ib,"" DATA 7 DATA 0,-888,160,-748,&303D,`if,&88,area DATA 160,-888,320,-748,&303D,`if,`ib,copy DATA 320,-888,480,-748,&303D,`if,`ib,move DATA 480,-888,640,-748,&303D,`if,`ib,clear DATA 640,-888,800,-748,&303D,`if,`ib,pattern DATA 800,-888,1000,-748,&303D,`if,`ib,fill DATA 1000,-888,1280,-748,&303D,`if,`ib,"" DATA 0 DEF PROCicon_menus PROCget_pointer_info IF wimp!12 = -1 OR wimp!12 <> windows(1) THEN ENDPROC ENDIF IF wimp!16 < 2 THEN IF wimp!16 = 1 PROCtest_open(windows(2)) IF wimp!16 = 0 PROCtest_open(windows(7)):PROCpalette ENDPROC ENDIF IF `cur_menu = 0 THEN CASE wimp!16 OF WHEN 3 : PROCdraw_menu: `func% = 3:PROCupdate_help WHEN 4 : PROCshape_menu : `func% = 3:PROCupdate_help WHEN 5 : PROCcurve_menu : `func% = 3:PROCupdate_help WHEN 6 : PROCtext_menu: `func% = 3:PROCupdate_help WHEN 7 : PROCarea_menu: `func% = 3:PROCupdate_help WHEN 8 : REM PROCtest_open(windows(3)) RCM WHEN 9 : PROCget_dir WHEN 10: IF FNon_top THEN PROCtest_open(windows(10)) PROCset_carot_position(windows(10),0,0,0,-1,0) ENDIF ENDCASE PROCshow_icons(`func%):ENDPROC ENDIF IF `cur_menu = 1 THEN CASE wimp!16 OF WHEN 2 : PROCfunc_menu WHEN 3 : `func% = 3:`state%=0:PROCupdate_help WHEN 4 : `func% = 4:`state%=0:PROCupdate_help WHEN 5 : `func% = 5:`state%=0:PROCupdate_help WHEN 6 : `func% = 6:`state%=0:PROCupdate_help WHEN 7 : `func% = 7:`state%=0:PROCupdate_help PROCtest_open(windows(9)) WHEN `sub_men(1) : REM PROCtest_open(windows(3)) RCM ENDCASE PROCshow_icons(`func%) ENDIF IF `cur_menu = 2 THEN CASE wimp!16 OF WHEN 2 : PROCfunc_menu WHEN 3 : `func% = 3:`state%=0:PROCupdate_help WHEN 4 : `func% = 4:`state%=0:PROCupdate_help WHEN 5 : `func% = 5:`state%=0:PROCupdate_help WHEN 6 : `func% = 6:`state%=0:PROCupdate_help WHEN `sub_men(2) : REM PROCtest_open(windows(3)) RCM ENDCASE PROCshow_icons(`func%) ENDIF IF `cur_menu = 3 THEN CASE wimp!16 OF WHEN 2 : PROCfunc_menu WHEN 3 : `func% = 3:`state%=0:PROCupdate_help WHEN 4 : `func% = 4:`state%=0:PROCupdate_help WHEN 5 : `func% = 5:`state%=0:PROCupdate_help WHEN 6 : `func% = 6:`state%=0:PROCupdate_help WHEN 7 : `func% = 7:`state%=0:PROCupdate_help WHEN `sub_men(3) : REM PROCtest_open(windows(3)) RCM ENDCASE PROCshow_icons(`func%) ENDIF IF `cur_menu = 4 THEN CASE wimp!16 OF WHEN 2 : PROCfunc_menu WHEN 3 : `func% = 3:`state%=0:PROCupdate_help WHEN `sub_men(4) :REM PROCtest_open(windows(3)) RCM ENDCASE PROCshow_icons(`func%) ENDIF IF `cur_menu = 5 THEN CASE wimp!16 OF WHEN 2 : PROCfunc_menu WHEN 3 : `func% = 3:`state%=0:PROCupdate_help WHEN 4 : `func% = 4:`state%=0:PROCupdate_help WHEN 5 : `func% = 5:`state%=0:PROCupdate_help WHEN 6 : `func% = 6:`state%=0:PROCupdate_help PROCtest_open(windows(8)):PROCshow_patt WHEN 7 : `func% = 7 WHEN `sub_men(5) : REM PROCtest_open(windows(3)) RCM ENDCASE PROCshow_icons(`func%) ENDIF FOR a% = 2 TO `sub_men(`cur_menu)+1 PROCset_icon_state(windows(1),a%,0,0,0,0) NEXT a% ENDPROC DEF PROCfunc_menu LOCAL n%,a% a% = a% + 1 FOR n% = `sub_men(`cur_menu)+1 TO 2 STEP-1 PROCdelete_icon(windows(1),n%) NEXT n% SYS create_icon,0,`func SYS create_icon,0,`func+36 SYS create_icon,0,`func+72 SYS create_icon,0,`func+108 SYS create_icon,0,`func+144 SYS create_icon,0,`func+180 SYS create_icon,0,`func+216 SYS create_icon,0,`func+252 SYS create_icon,0,`func+288 `cur_menu = 0:`func% = 2 ENDPROC DEF PROCdraw_menu LOCAL n% FOR n% = `sub_men(0)+1 TO 2 STEP-1 PROCdelete_icon(windows(1),n%) NEXT n% SYS create_icon,0,`draw SYS create_icon,0,`draw+36 SYS create_icon,0,`draw+72 SYS create_icon,0,`draw+108 SYS create_icon,0,`draw+144 SYS create_icon,0,`draw+180 SYS create_icon,0,`draw+216 `cur_menu = 1 : `state% = 0 ENDPROC DEF PROCshape_menu LOCAL n% FOR n% = `sub_men(0)+1 TO 2 STEP-1 PROCdelete_icon(windows(1),n%) NEXT n% SYS create_icon,0,`shape SYS create_icon,0,`shape+36 SYS create_icon,0,`shape+72 SYS create_icon,0,`shape+108 SYS create_icon,0,`shape+144 SYS create_icon,0,`shape+180 `cur_menu = 2 : `state% = 0 ENDPROC DEF PROCcurve_menu LOCAL n% FOR n%= `sub_men(0)+1 TO 2 STEP-1 PROCdelete_icon(windows(1),n%) NEXT n% SYS create_icon,0,`curve SYS create_icon,0,`curve+36 SYS create_icon,0,`curve+72 SYS create_icon,0,`curve+108 SYS create_icon,0,`curve+144 SYS create_icon,0,`curve+180 SYS create_icon,0,`curve+216 `cur_menu = 3 : `state% = 0 ENDPROC DEF PROCtext_menu LOCAL n% FOR n%= `sub_men(0)+1 TO 2 STEP-1 PROCdelete_icon(windows(1),n%) NEXT n% SYS create_icon,0,`text SYS create_icon,0,`text+36 SYS create_icon,0,`text+72 `cur_menu = 4 : `state% = 0 ENDPROC DEF PROCarea_menu LOCAL n% FOR n%= `sub_men(0)+1 TO 2 STEP-1 PROCdelete_icon(windows(1),n%) NEXT n% SYS create_icon,0,`area SYS create_icon,0,`area+36 SYS create_icon,0,`area+72 SYS create_icon,0,`area+108 SYS create_icon,0,`area+144 SYS create_icon,0,`area+180 SYS create_icon,0,`area+216 `cur_menu = 5 : `state% = 0 ENDPROC DEF PROCmode_flags(icon%) PROCget_pointer_info CASE icon% OF WHEN 0 : `m_open = `m_fill : `m_fill = NOT `m_fill WHEN 1 : `m_fill = `m_open : `m_open = NOT `m_open WHEN 2 : `m_dots = NOT `m_dots WHEN 3 : `m_xor= NOT `m_xor IF`m_xor `m_or=FALSE:`m_and=FALSE:`m_inv=FALSE:`style%=3 WHEN 4 : `m_or = NOT `m_or IF`m_or `m_xor=FALSE:`m_and=FALSE:`m_inv=FALSE:`style%=1 WHEN 5 : `m_and= NOT `m_and IF`m_and `m_xor=FALSE:`m_or=FALSE:`m_inv=FALSE:`style%=2 WHEN 6 : `m_inv= NOT `m_inv IF`m_inv `m_xor=FALSE:`m_or=FALSE:`m_and=FALSE:`style%=4 ENDCASE IF `m_xor=FALSE AND `m_or=FALSE AND `m_and=FALSE AND `m_inv=FALSE `style%=0 PROCset_icon_state(windows(2),0,&303D,`if,FNicol(`m_fill),-1) PROCset_icon_state(windows(2),1,&303D,`if,FNicol(`m_open),-1) PROCset_icon_state(windows(2),2,&303D,`if,FNicol(`m_dots),-1) PROCset_icon_state(windows(2),3,&303D,`if,FNicol(`m_xor),-1) PROCset_icon_state(windows(2),4,&303D,`if,FNicol(`m_or),-1) PROCset_icon_state(windows(2),5,&303D,`if,FNicol(`m_and),-1) PROCset_icon_state(windows(2),6,&303D,`if,FNicol(`m_inv),-1) ENDPROC DEF FNicol(f%) IF f% THEN = &88 ELSE = &89 ENDIF DEF PROCclear_menu(last%) FOR a% = 3 TO last% PROCset_icon_state(windows(1),a%,&303D,`if,`ib,-1) NEXT a% ENDPROC DEF PROCset_menu(icon%) PROCset_icon_state(windows(1),icon%,&303D,`if,&88,-1) ENDPROC DEF PROCshow_icons(icon%) LOCAL a% FOR a% = 2 TO `sub_men(`cur_menu) PROCset_icon_state(windows(1),a%,&303D,`if,`ib,-1) NEXT a% PROCset_icon_state(windows(1),icon%,&303D,`if,&88,-1) ENDPROC DEF FNdraw_area !t_wimp= windows(5) SYS get_window_state,0,t_wimp `dr_area = t_wimp!28 IF `handle% <> windows(5) THEN = FALSE IF t_wimp!28 <> -1 THEN= FALSE IF `x% < 166 THEN= FALSE IF `y% < 232 THEN= FALSE = TRUE DEF PROCdo_line CASE `state% OF WHEN 1 : PROCrubb_line IF (`b% AND 1)=1 THEN PROCrubb_line `do_x0% = `x% `do_y0% = `y% ELSE IF (`b% AND 4)=4 THEN PROCrubb_line PLOT 4,`do_x0%,`do_y0% PLOT 5,`x%,`y% `state% = 0:PROCkey_bounce ELSE PROCrubb_line ENDIF ENDIF WHEN 0 : IF (`b% AND 4)=4 THEN `do_x0% = `x% `do_y0% = `y% `state% = 1:PROCkey_bounce ENDIF ENDCASE ENDPROC DEF PROCdo_joined CASE `state% OF WHEN 1 : PROCrubb_line IF (`b% AND 1)=1 THEN PROCrubb_line `do_x0% = `x% `do_y0% = `y% ELSE IF (`b% AND 4)=4 THEN PROCrubb_line PLOT 4,`do_x0%,`do_y0% PLOT 5,`x%,`y% `do_x0%=`x% `do_y0%=`y% ELSE PROCrubb_line ENDIF ENDIF WHEN 0 : IF (`b% AND 4)=4 THEN `do_x0% = `x% `do_y0% = `y% `state% = 1:PROCkey_bounce ENDIF ENDCASE ENDPROC DEF PROCdo_point IF (`b% AND 4)=4 THEN PLOT 4,`x%-8,`y%+16 COLOUR 135:GCOL135 VDU5,`brsh% ENDIF ENDPROC DEF PROCdo_radii CASE `state% OF WHEN 1 : PROCrubb_line IF (`b% AND 1)=1 THEN PROCrubb_line `do_x0% = `x% `do_y0% = `y% ELSE IF (`b% AND 4)=4 THEN PROCrubb_line PLOT 4,`do_x0%,`do_y0% PLOT 5,`x%,`y% ELSE PROCrubb_line ENDIF ENDIF WHEN 0 : IF (`b% AND 4)=4 THEN `do_x0% = `x% `do_y0% = `y% `state% = 1:PROCkey_bounce ENDIF ENDCASE ENDPROC DEF PROCdo_rect CASE `state% OF WHEN 1 : PROCrubb_rect IF (`b% AND 1)=1 THEN PROCrubb_rect `do_x0% = `x% `do_y0% = `y% ELSE IF (`b% AND 4)=4 THEN PROCrubb_rect PROCdraw_rect `state% = 0:PROCkey_bounce ELSE PROCrubb_rect ENDIF ENDIF WHEN 0 : IF (`b% AND 4)=4 THEN `do_x0% = `x% `do_y0% = `y% `state% = 1:PROCkey_bounce ENDIF ENDCASE ENDPROC DEF PROCdo_square CASE `state% OF WHEN 1 : PROCrubb_sqre IF (`b% AND 1)=1 THEN PROCrubb_rect `do_x0% = `x% `do_y0% = `y% ELSE IF (`b% AND 4)=4 THEN PROCrubb_sqre PROCdraw_sqre `state% = 0:PROCkey_bounce ELSE PROCrubb_sqre ENDIF ENDIF WHEN 0 : IF (`b% AND 4)=4 THEN `do_x0% = `x% `do_y0% = `y% `state% = 1:PROCkey_bounce ENDIF ENDCASE ENDPROC DEF PROCdo_para CASE `state% OF WHEN 0 : IF (`b% AND 4)=4 THEN `do_x0% = `x% `do_y0% = `y% `state% = 1:PROCkey_bounce ENDIF WHEN 1 : PROCrubb_line IF (`b% AND 1)=1 THEN PROCrubb_line `do_x0% = `x% `do_y0% = `y% ELSE IF (`b% AND 4)=4 THEN PROCrubb_line `do_x1% = `x% `do_y1% = `y% `state% = 2:PROCkey_bounce ELSE PROCrubb_line ENDIF ENDIF WHEN 2 : PROCrubb_para IF (`b% AND 1)=1 THEN PROCrubb_para `do_x0% = `x% `do_y0% = `y% ELSE IF (`b% AND 4)=4 THEN PROCrubb_para PROCdraw_para `state% = 0:PROCkey_bounce ELSE PROCrubb_para ENDIF ENDIF ENDCASE ENDPROC DEF PROCdo_tria CASE `state% OF WHEN 0 : IF (`b% AND 4)=4 THEN `do_x0% = `x% `do_y0% = `y% `state% = 1:PROCkey_bounce ENDIF WHEN 1 : PROCrubb_line IF (`b% AND 1)=1 THEN PROCrubb_line `do_x0% = `x% `do_y0% = `y% ELSE IF (`b% AND 4)=4 THEN PROCrubb_line `do_x1% = `x% `do_y1% = `y% `state% = 2:PROCkey_bounce ELSE PROCrubb_line ENDIF ENDIF WHEN 2 : PROCrubb_tria IF (`b% AND 1)=1 THEN PROCrubb_tria `do_x0% = `x% `do_y0% = `y% ELSE IF (`b% AND 4)=4 THEN PROCrubb_tria PROCdraw_tria `state% = 0:PROCkey_bounce ELSE PROCrubb_tria ENDIF ENDIF ENDCASE ENDPROC DEF PROCdo_circ CASE `state% OF WHEN 0 : IF (`b% AND 4)=4 THEN `do_x0% = `x% `do_y0% = `y% `state% = 1:PROCkey_bounce ENDIF WHEN 1 : PROCrubb_circ IF (`b% AND 1)=1 THEN PROCrubb_circ `do_x0% = `x% `do_y0% = `y% ELSE IF (`b% AND 4)=4 THEN PROCrubb_circ PROCdraw_circ `state% = 0:PROCkey_bounce ELSE PROCrubb_circ ENDIF ENDIF ENDCASE ENDPROC DEF PROCdo_elip CASE `state% OF WHEN 0 : IF (`b% AND 4)=4 THEN `do_x0% = `x% `do_y0% = `y% `state% = 1:PROCkey_bounce ENDIF WHEN 1 : IF (`b% AND 1)=1 THEN `do_x0% = `x% `do_y0% = `y% ELSE PROCrubb_line IF (`b% AND 4)=4 THEN PROCrubb_line `do_x1% = `x% `do_y1% = `y% `state% = 2:PROCkey_bounce ELSE PROCrubb_line ENDIF ENDIF WHEN 2 : PROCrubb_elip IF (`b% AND 1)=1 THEN PROCrubb_elip `do_x0% = `x% `do_y0% = `y% ELSE IF (`b% AND 4)=4 THEN PROCrubb_elip PROCdraw_elip `state% = 0:PROCkey_bounce ELSE PROCrubb_elip ENDIF ENDIF ENDCASE ENDPROC DEF PROCdo_segm CASE `state% OF WHEN 0 : IF (`b% AND 4)=4 THEN `do_x0% = `x% `do_y0% = `y% `state% = 1:PROCkey_bounce ENDIF WHEN 1 : PROCrubb_line IF (`b% AND 1)=1 THEN PROCrubb_line `do_x0% = `x% `do_y0% = `y% ELSE IF (`b% AND 4)=4 THEN PROCrubb_line `do_x1% = `x% `do_y1% = `y% `state% = 2:PROCkey_bounce ELSE PROCrubb_line ENDIF ENDIF WHEN 2 : PROCrubb_segm IF (`b% AND 1)=1 THEN PROCrubb_segm `do_x1%=`x% `do_y1%=`y% ELSE IF (`b% AND 4)=4 THEN PROCrubb_segm PROCdraw_segm `state% = 0:PROCkey_bounce ELSE PROCrubb_segm ENDIF ENDIF ENDCASE ENDPROC DEF PROCdo_arc CASE `state% OF WHEN 0 : IF (`b% AND 4)=4 THEN `do_x0% = `x% `do_y0% = `y% `state% = 1:PROCkey_bounce ENDIF WHEN 1 : PROCrubb_line IF (`b% AND 1)=1 THEN PROCrubb_line `do_x0% = `x% `do_y0% = `y% ELSE IF (`b% AND 4)=4 THEN PROCrubb_line `do_x1% = `x% `do_y1% = `y% `state% = 2:PROCkey_bounce ELSE PROCrubb_line ENDIF ENDIF WHEN 2 : PROCrubb_arc IF (`b% AND 1)=1 THEN PROCrubb_arc `do_x1%=`x% `do_y1%=`y% ELSE IF (`b% AND 4)=4 THEN PROCrubb_arc PROCdraw_arc `state% = 0:PROCkey_bounce ELSE PROCrubb_arc ENDIF ENDIF ENDCASE ENDPROC DEF PROCdo_sect CASE `state% OF WHEN 0 : IF (`b% AND 4)=4 THEN `do_x0% = `x% `do_y0% = `y% `state% = 1:PROCkey_bounce ENDIF WHEN 1 : PROCrubb_line IF (`b% AND 1)=1 THEN PROCrubb_line `do_x0% = `x% `do_y0% = `y% ELSE IF (`b% AND 4)=4 THEN PROCrubb_line `do_x1% = `x% `do_y1% = `y% `state% = 2:PROCkey_bounce ELSE PROCrubb_line ENDIF ENDIF WHEN 2 : PROCrubb_sect IF (`b% AND 1)=1 THEN PROCrubb_sect `do_x1%=`x% `do_y1%=`y% ELSE IF (`b% AND 4)=4 THEN PROCrubb_sect PROCdraw_sect `state% = 0:PROCkey_bounce ELSE PROCrubb_sect ENDIF ENDIF ENDCASE ENDPROC DEF PROCdo_copy CASE `state% OF WHEN 0 : IF (`b% AND 4)=4 THEN `do_x0% = `x% `do_y0% = `y% `state% = 1:PROCkey_bounce PROCkey_bounce ENDIF WHEN 1 : PROCrubb_rect IF (`b% AND 1)=1 THEN PROCrubb_rect `do_x0% = `x% `do_y0% = `y% ELSE IF (`b% AND 4)=4 THEN PROCrubb_rect `do_x1% = `x% `do_y1% = `y% MOVE `do_x0%,`do_y0% MOVE `do_x1%,`do_y1% REM *sget 1 SYS &2E,256+14,spt_area,"1",0 `state% = 2:PROCkey_bounce PROCkey_bounce ELSE PROCrubb_rect ENDIF ENDIF WHEN 2 : PROCmove_rect IF (`b% AND 4)=4 THEN PROCmove_rect PROCdraw_copy ELSE IF (`b% AND 1)=1 THEN PROCmove_rect `state% = 0:PROCkey_bounce PROCkey_bounce ELSE PROCmove_rect ENDIF ENDIF ENDCASE ENDPROC DEF PROCdo_clear IF (`b% AND 4)=4 THEN GCOL 135 CLG `dr_area=-1 PROCscrn_copy SYS screen_redraw,-1,0,0,1279,1023 ENDIF ENDPROC DEF PROCdo_move CASE `state% OF WHEN 0 : IF (`b% AND 4)=4 THEN `do_x0% = `x% `do_y0% = `y% `state% = 1:PROCkey_bounce PROCkey_bounce ENDIF WHEN 1 : PROCrubb_rect IF (`b% AND 1)=1 THEN PROCrubb_rect `do_x0% = `x% `do_y0% = `y% ELSE IF (`b% AND 4)=4 THEN PROCrubb_rect `do_x1% = `x% `do_y1% = `y% `state% = 2:PROCkey_bounce PROCkey_bounce ELSE PROCrubb_rect ENDIF ENDIF WHEN 2 : PROCmove_rect IF (`b% AND 4)=4 THEN PROCmove_rect PROCdraw_move `state% = 0:PROCkey_bounce ELSE PROCmove_rect ENDIF ENDCASE ENDPROC DEF PROCdo_fill IF (`b% AND 4)<>4 THEN ENDPROC a% = POINT(`x%,`y%) GCOL128+a% PLOT &85,`x%,`y% GCOL135 ENDPROC DEF PROCdo_text CASE `state% OF WHEN 0 : IF (`b% AND 4)=4 THEN `do_x0%=`x% `do_y0%=`y% `state% = 1 : PROCkey_bounce SYS 6,15,1 ENDIF WHEN 1 : WAIT:PROCrubb_curs:WAIT IF (`b% AND 1)=1 THEN PROCrubb_curs `do_x0%=`x% `do_y0%=`y% ELSE PROCrubb_curs a%=INKEY(0) IF a%=13 THEN `state%=0 ELSE IF a%<>-1 THEN VDU 5 PLOT 4,`do_x0%,`do_y0%+32 VDU a% `do_x0%=`do_x0%+16 ENDIF ENDIF ENDIF ENDCASE ENDPROC REM ************************************************************* DEF PROCrubb_line PLOT 4,`do_x0%,`do_y0% PLOT 6,`x%,`y% ENDPROC DEF PROCrubb_rect PLOT 4,`do_x0%,`do_y0% PLOT 6,`do_x0%,`y% PLOT 6,`x%,`y% PLOT 6,`x%,`do_y0% PLOT 6,`do_x0%,`do_y0% ENDPROC DEF PROCrubb_sqre IF (ABS(`do_x0%-`x%)) > (ABS(`do_y0%-`y%)) THEN IF `do_y0% > `y% THEN `y% = `do_y0% - (ABS(`do_x0%-`x%)) ELSE `y% = `do_y0% + (ABS(`do_x0%-`x%)) ENDIF ELSE IF `do_x0% > `x% THEN `x% = `do_x0% - (ABS(`do_y0%-`y%)) ELSE `x% = `do_x0% + (ABS(`do_y0%-`y%)) ENDIF ENDIF PLOT 4,`do_x0%,`do_y0% PLOT 6,`do_x0%,`y% PLOT 6,`x%,`y% PLOT 6,`x%,`do_y0% PLOT 6,`do_x0%,`do_y0% ENDPROC DEF PROCrubb_para PLOT 4,`do_x0%,`do_y0% PLOT 6,`do_x1%,`do_y1% PLOT 6,`x%,`y% PLOT 6,`do_x0%+(`x%-`do_x1%),`do_y0%+(`y%-`do_y1%) PLOT 6,`do_x0%,`do_y0% ENDPROC DEF PROCrubb_tria PLOT 4,`do_x0%,`do_y0% PLOT 6,`do_x1%,`do_y1% PLOT 6,`x%,`y% PLOT 6,`do_x0%,`do_y0% ENDPROC DEF PROCrubb_circ PLOT 4,`do_x0%,`do_y0% PLOT &96,`x%,`y% ENDPROC DEF PROCrubb_elip PLOT 4,`do_x0%,`do_y0% PLOT 4,`do_x1%,`do_y1% PLOT &C6,`x%,`y% ENDPROC DEF PROCrubb_segm PLOT 4,`do_x0%,`do_y0% PLOT 4,`do_x1%,`do_y1% PLOT &AE,`x%,`y% ENDPROC DEF PROCrubb_arc PLOT 4,`do_x0%,`do_y0% PLOT 4,`do_x1%,`do_y1% PLOT &A6,`x%,`y% ENDPROC DEF PROCrubb_sect PLOT 4,`do_x0%,`do_y0% PLOT 4,`do_x1%,`do_y1% PLOT &B6,`x%,`y% ENDPROC DEF PROCrubb_curs PLOT 4,`do_x0%,`do_y0% PLOT &62,16,32 ENDPROC DEF PROCmove_rect PLOT 4,`x%,`y% PLOT 6,`x%,`y%+ABS(`do_y0%-`do_y1%) PLOT 6,`x%+ABS(`do_x1%-`do_x0%),`y%+ABS(`do_y0%-`do_y1%) PLOT 6,`x%+ABS(`do_x1%-`do_x0%),`y% PLOT 6,`x%,`y% ENDPROC REM ************************************************************* DEF PROCdraw_rect IF `m_fill THEN RECTANGLE FILL `x%,`y%,`do_x0%-`x%,`do_y0%-`y% ELSE RECTANGLE `x%,`y%,`do_x0%-`x%,`do_y0%-`y% ENDIF ENDPROC DEF PROCdraw_sqre IF (ABS(`do_x0%-`x%)) > (ABS(`do_y0%-`y%)) THEN IF `do_y0% > `y% THEN `y% = `do_y0% - (ABS(`do_x0%-`x%)) ELSE `y% = `do_y0% + (ABS(`do_x0%-`x%)) ENDIF ELSE IF `do_x0% > `x% THEN `x% = `do_x0% - (ABS(`do_y0%-`y%)) ELSE `x% = `do_x0% + (ABS(`do_y0%-`y%)) ENDIF ENDIF IF `m_open THEN RECTANGLE `x%,`y%,`do_x0%-`x%,`do_y0%-`y% ELSE RECTANGLE FILL `x%,`y%,`do_x0%-`x%,`do_y0%-`y% ENDIF ENDPROC DEF PROCdraw_para IF `m_open THEN PLOT 4,`do_x0%,`do_y0% PLOT 5,`do_x1%,`do_y1% PLOT 5,`x%,`y% PLOT 5,`do_x0%+(`x%-`do_x1%),`do_y0%+(`y%-`do_y1%) PLOT 5,`do_x0%,`do_y0% ELSE PLOT 4,`do_x0%,`do_y0% PLOT 4,`do_x1%,`do_y1% PLOT &75,`x%,`y% ENDIF ENDPROC DEF PROCdraw_tria IF `m_open THEN PLOT 4,`do_x0%,`do_y0% PLOT 5,`do_x1%,`do_y1% PLOT 5,`x%,`y% PLOT 5,`do_x0%,`do_y0% ELSE PLOT 4,`do_x0%,`do_y0% PLOT 4,`do_x1%,`do_y1% PLOT &55,`x%,`y% ENDIF ENDPROC DEF PROCdraw_circ PLOT 4,`do_x0%,`do_y0% IF `m_open THEN PLOT &95,`x%,`y% ELSE PLOT &9D,`x%,`y% ENDIF ENDPROC DEF PROCdraw_elip PLOT 4,`do_x0%,`do_y0% PLOT 4,`do_x1%,`do_y1% IF `m_open THEN PLOT &C5,`x%,`y% ELSE PLOT &CD,`x%,`y% ENDIF ENDPROC DEF PROCdraw_segm PLOT 4,`do_x0%,`do_y0% IF `m_open THEN PLOT 4,`do_x1%,`do_y1% PLOT &AD,`x%,`y% ELSE PLOT 4,`do_x1%,`do_y1% PLOT &AD,`x%,`y% ENDIF ENDPROC DEF PROCdraw_arc PLOT 4,`do_x0%,`do_y0% PLOT 4,`do_x1%,`do_y1% PLOT &A5,`x%,`y% ENDPROC DEF PROCdraw_sect PLOT 4,`do_x0%,`do_y0% IF `m_open THEN PLOT 4,`do_x1%,`do_y1% PLOT &B5,`x%,`y% ELSE PLOT 4,`do_x1%,`do_y1% PLOT &B5,`x%,`y% ENDIF ENDPROC DEF PROCdraw_copy REM *SCHOOSE 1 MOVE `x%,`y% SYS &2E,256+28,spt_area,"1" ENDPROC DEF PROCdraw_move GCOL 135 PLOT 4,`do_x0%,`do_y0% PLOT 4,`do_x1%,`do_y1% PLOT &BD,`x%,`y% ENDPROC DATA "WELCOME PAINT By H.Douglas-Smith" DATA "Help is not available on 512k machine" DATA " " DATA " " DATA " " DATA " " DATA " " DATA "" REM contain 28 icons (0-27) DEF PROCcreate_help LOCAL a$,b$,a%,b%,c% n% = 0 hp = `help REPEAT FOR a% = 1 TO 7 READ a$ IF LEN a$<44 THEN REPEAT a$ = " "+a$+" " UNTIL LEN a$ >= 44 ENDIF a$ = LEFT$(a$,44) FOR b% = 0 TO 3 !hp = windows(3) hp!4= b%*180 hp!8= 0-a%*40 hp!12 = b%*180+180 hp!16 = 0-(a%*40-40) hp!20 = &31 hp?23 = `ib*16+`if $(hp+24) = MID$(a$,b%*11+1,11) hp = hp + 36 NEXT b% NEXT a% READ b$ UNTIL b$ = "" hp = `help help(0,2) = hp FOR a% = 1 TO 5 FOR b% = 3 TO `sub_men(a%)-1 help(a%,b%) = hp NEXT b% NEXT a% ENDPROC DEF PROCupdate_help PROCget_window_state(windows(3)) IF (wimp?34 AND 1) = 1 THEN PROCclose_window(windows(3)) PROCtest_open(windows(3)) ENDIF ENDPROC DEF PROCselect_colour(icon%) IF icon%>19 THEN ENDPROC IF icon% <16 THEN `col% = icon% GCOL `col% RECTANGLE FILL 46,694,64,64 SYS &2E,16,0,"curcol",0,46,694,100,758 PROCset_icon_state(windows(6),20,&303E,`if,`col%+&80,-1) PROCget_window_state(windows(7)) :REM palette IF (wimp?34 AND 3)=3 PROCpal_upd GCOL `style%,`col% COLOUR `col% ELSE `ptrn = icon%-16 `col% = 17 PROCecf(`ptrn) GCOL 80,0 RECTANGLE FILL 46,694,64,64 SYS &2E,16,0,"curcol",0,46,694,100,758 PROCupd_ecf GCOL80+`style%,0 VDU26 PLOT &85,84,740 PROCshow_patt ENDIF ENDPROC REM * Palette Window Update * DEF PROCpal_upd GCOL 7 CIRCLE FILL 500,500,150 RECTANGLE FILL 302,344,16,312 GCOL 0 CIRCLE 500,500,150 GCOL 0 CIRCLE 500,500,150 RECTANGLE 300,340,20,320 IF `col% > 15 THEN ENDPROC PROCrgb_hsv(`col%) MOVE 500,500 s1 = s*150 v1 = v*300 DRAW (s1*COS(RAD(h)))+500,(s1*SIN(RAD(h)))+500 MOVE 302,350+v1 DRAW 318,350+v1 ENDPROC REM * PALETTE UPDATE* DEF PROCpalette IF `col% > 15 THEN ENDPROC PROCrgb_hsv(`col%):REM convert colour palette to HSV GCOL 7 CIRCLE FILL 500,500,150 RECTANGLE FILL 302,344,16,312 GCOL 0 CIRCLE 500,500,150 s1 = s*150 v1 = v*300 REM *************************************************************** REM `b% seems to not hold the correct button presses at this point since REM the only way to trigger this is to press left and middle together REM *************************************************************** IF (`b% AND 4)=4 THEN IF SQR((`x%-500)^2+(`y%-500)^2) <= 150 THEN s1 = SQR ((`x%-500)^2+(`y%-500)^2) IF `x% = 500 THEN h = 0 ELSE h = DEG(ATN((`y%-500)/(`x%-500))) ENDIF IF h < 0 THEN IF `x% < 500 THEN h = h + 180 ELSE h = h + 360 ENDIF ELSE IF `y% < 500 THEN h = h + 180 ENDIF ENDIF IF h = 90 h = 91 IF h = 180 h = 181 IF h = 270 h = 271 s = s1/150 : v = v1/300 PROChsv_rgb `r(`col%) = r*256 : `g(`col%) = g*256 : `b(`col%) = b*256 VDU19,`col%,16,r*256,g*256,b*256 ELSE IF `x% > 300 AND `x% < 320 AND `y% > 350 AND `y% < 650 THEN v1 = (`y%-350) s = s1/150 : v = v1/300 PROChsv_rgb `r(`col%) = r*256 : `g(`col%) = g*256 : `b(`col%) = b*256 VDU19,`col%,16,r*256,g*256,b*256 ENDIF ENDIF PROCrgb_hsv(`col%) v1 = v*300 : s1 = s*150 MOVE 302,350+v1 DRAW 318,350+v1 MOVE 500,500 DRAW (s1*COS(RAD(h)))+500,(s1*SIN(RAD(h)))+500 ENDIF ENDPROC REM * RGB TO HSV* DEF PROCrgb_hsv(c) LOCAL max,min,r,g,b,rc,gc,bc r = (`r(c)DIV 16)/16 g = (`g(c)DIV 16)/16 b = (`b(c)DIV 16)/16 max = 0 : min = 1 IF max < r THEN max = r IF min > r THEN min = r IF max < g THEN max = g IF min > g THEN min = g IF max < b THEN max = b IF min > b THEN min = b v = max IF max <> 0 THEN s = (max-min)/max ELSE s = 0 ENDIF IF s = 0 THEN h = 0 ELSE rc = (max - r)/(max-min) gc = (max-g)/(max-min) bc = (max-b)/(max-min) IF r = max THEN h = bc-gc ELSE IF g = max THEN h = 2 + rc - bc ELSE IF b = max THEN h = 4 + gc - rc ENDIF ENDIF h = h * 60 IF h < 0 THEN h = h + 360 ENDIF ENDPROC REM * HSV TO RGB* DEF PROChsv_rgb LOCAL i%,f,p,q,t IF s = 0 THEN r = v g = v b = v ENDPROC ENDIF IF h = 360 THEN h = 0 i% = h/60 h= h/60 f= h-i% p= v*(1-s) q= v*(1-(s*f)) t= v*(1-(s*(1-f))) CASE i% OF WHEN 0 : r = v : g = t : b = p WHEN 1 : r = q : g = v : b = p WHEN 2 : r = p : g = v : b = t WHEN 3 : r = p : g = q : b = v WHEN 4 : r = t : g = p : b = v WHEN 5 : r = v : g = p : b = q ENDCASE ENDPROC DEF PROCecf(n%) VDU 23,2,`p(n%,0)+`p(n%,1)*16,`p(n%,8)+`p(n%,9)*16,`p(n%,16)+`p(n%,17)*16,`p(n%,24)+`p(n%,25)*16,`p(n%,32)+`p(n%,33)*16,`p(n%,40)+`p(n%,41)*16,`p(n%,48)+`p(n%,49)*16,`p(n%,56)+`p(n%,57)*16 VDU 23,3,`p(n%,2)+`p(n%,3)*16,`p(n%,10)+`p(n%,11)*16,`p(n%,18)+`p(n%,19)*16,`p(n%,26)+`p(n%,27)*16,`p(n%,34)+`p(n%,35)*16,`p(n%,42)+`p(n%,43)*16,`p(n%,50)+`p(n%,51)*16,`p(n%,58)+`p(n%,59)*16 VDU 23,4,`p(n%,4)+`p(n%,5)*16,`p(n%,12)+`p(n%,13)*16,`p(n%,20)+`p(n%,21)*16,`p(n%,28)+`p(n%,29)*16,`p(n%,36)+`p(n%,37)*16,`p(n%,44)+`p(n%,45)*16,`p(n%,52)+`p(n%,53)*16,`p(n%,60)+`p(n%,61)*16 VDU 23,5,`p(n%,6)+`p(n%,7)*16,`p(n%,14)+`p(n%,15)*16,`p(n%,22)+`p(n%,23)*16,`p(n%,30)+`p(n%,31)*16,`p(n%,38)+`p(n%,39)*16,`p(n%,46)+`p(n%,47)*16,`p(n%,54)+`p(n%,55)*16,`p(n%,62)+`p(n%,63)*16 GCOL 80+`style%,0 RECTANGLE FILL 46,694,64,64 CASE n% OF WHEN 0 : SYS &2E,16,0,"ecf0",0,46,694,100,758 WHEN 1 : SYS &2E,16,0,"ecf1",0,46,694,100,758 WHEN 2 : SYS &2E,16,0,"ecf2",0,46,694,100,758 WHEN 3 : SYS &2E,16,0,"ecf3",0,46,694,100,758 ENDCASE ENDPROC DEF PROCshow_patt FOR a% = 0 TO 63 PROCset_icon_state(windows(8),a%,&3029,8,`p(`ptrn,a%)+&80,-1) NEXT a% ENDPROC DEF PROCpatt_edit(icon%) IF icon% = -1 THEN ENDPROC IF `col% = 17 THEN ENDPROC PROCset_icon_state(windows(8),icon%,&3029,8,`col%+&80,-1) `p(`ptrn,icon%)=`col% ENDPROC DEF PROCscrn GCOL 135 CLG ENDPROC DEF PROCupdate(handle%) IF handle% = windows(5) THEN PROCdr_copy IF handle% = windows(7) THEN PROCpal_upd ENDPROC DEF PROCscrn_copy IF `dr_area = -1 THEN SYS &2E,256+16,spt_area,"HDS",0,162,232,1274,972 ENDIF ENDPROC DEF PROCdr_copy SYS &2E,256+34,spt_area,"HDS",162,232 ENDPROC DEF PROCselect_brush(icon%) IF icon%<0 OR icon%>12 THEN ENDPROC PROCset_icon_state(windows(9),`brsh%-243,&303D,`if,`ib,-1) `brsh% = icon%+243 PROCset_icon_state(windows(9),icon%,&303D,`if,&88,-1) ENDPROC REM ************************************************************** DEF PROCget_dir FOR a% = `max_file% TO 0 STEP -1 PROCdelete_icon(windows(4),a%) NEXT a% a%=0: ht%=0 SYS &0C,10,"UserPics",par%,1,a%,255,"*" TO ,,,n% IF n% = 0 THEN IF FNon_top THEN PROCtest_open(windows(4)) ENDPROC ENDIF WHILE n%=1 PROCentry a%+=1 SYS &0C,10,"UserPics",par%,1,a%,255,"*" TO ,,,n% ENDWHILE IF FNon_top THEN PROCtest_open(windows(4)) ENDPROC DEF PROCentry !wimp = windows(4) wimp!4= 10 : REM 0 wimp!8= ht% - 32 wimp!12 = 120 : REM 100 wimp!16 = ht% wimp!20 = &3019 wimp?22 = `if wimp?23 = `ib $(wimp+24) = FNstrng(par%+20) SYS create_icon,0,wimp ht%=ht%-32 ENDPROC DEF FNstrng(p%) LOCAL res$: res$="" WHILE ?p%<>0 res$+=CHR$(?p%):p%+=1:ENDWHILE =res$ DEF PROCload(icon%) IF icon% = -1 THEN ENDPROC PROCget_icon_info(windows(4),icon%) PROCclose_window(windows(4)) PROCdr_copy VDU24,162;232;1274;972; OSCLI("SCREENLOAD UserPics."+$(wimp+28)) `dr_area = -1 PROCscrn_copy VDU26 ENDPROC DEF PROCsave_name IF !wimp<> windows(10) AND wimp!4<>0 THEN ENDPROC IF wimp?24<> 13 THEN ENDPROC PROCclose_window(windows(10)) PROCdr_copy VDU24,162;232;1274;972; OSCLI("SCREENSAVE UserPics."+$save%) VDU26 ENDPROC DEF PROCupd_ecf FOR a% = 0 TO 3 PROCset_icon_state(windows(6),a%+16,&303E,`if,`ib,-1) NEXT a% ENDPROC DEF FNon_top !t_wimp= windows(5) SYS get_window_state,0,t_wimp IF t_wimp!28 <> -1 THEN= FALSE = TRUE DEF PROCreport PROCopen_window(windows(11),100,50,1100,150,0,0,-1) MOUSE RECTANGLE100,50,1000,136 ENDPROC
00000000 52 45 4d 20 3e 20 50 61 69 6e 74 69 6e 67 0a 52 |REM > Painting.R| 00000010 45 4d 20 28 63 29 20 41 63 6f 72 6e 20 43 6f 6d |EM (c) Acorn Com| 00000020 70 75 74 65 72 73 20 31 39 38 37 0a 52 45 4d 20 |puters 1987.REM | 00000030 56 65 72 73 69 6f 6e 20 31 2e 32 0a 20 0a 2a 53 |Version 1.2. .*S| 00000040 4e 45 57 0a 44 49 4d 20 77 69 6d 70 20 32 32 30 |NEW.DIM wimp 220| 00000050 30 20 2c 20 77 69 6e 64 6f 77 73 28 33 31 29 20 |0 , windows(31) | 00000060 2c 20 68 65 61 70 20 34 30 30 30 20 2c 20 68 65 |, heap 4000 , he| 00000070 61 70 28 31 30 29 20 2c 20 60 73 75 62 5f 6d 65 |ap(10) , `sub_me| 00000080 6e 28 31 30 29 0a 44 49 4d 20 60 68 65 6c 70 20 |n(10).DIM `help | 00000090 32 30 30 30 20 2c 20 68 65 6c 70 28 31 30 2c 31 |2000 , help(10,1| 000000a0 30 29 20 2c 20 60 72 28 31 36 29 20 2c 20 60 67 |0) , `r(16) , `g| 000000b0 28 31 36 29 20 2c 20 60 62 28 31 36 29 20 2c 20 |(16) , `b(16) , | 000000c0 70 61 72 25 20 32 35 36 0a 44 49 4d 20 74 5f 77 |par% 256.DIM t_w| 000000d0 69 6d 70 20 31 32 38 20 2c 20 64 61 74 61 20 33 |imp 128 , data 3| 000000e0 31 30 30 20 2c 20 73 61 76 65 25 20 31 36 20 2c |100 , save% 16 ,| 000000f0 20 60 70 28 33 2c 36 34 29 0a 73 70 74 5f 61 72 | `p(3,64).spt_ar| 00000100 65 61 5f 73 69 7a 65 20 3d 20 31 31 30 30 30 30 |ea_size = 110000| 00000110 3a 20 44 49 4d 20 73 70 74 5f 61 72 65 61 20 73 |: DIM spt_area s| 00000120 70 74 5f 61 72 65 61 5f 73 69 7a 65 0a 46 4f 52 |pt_area_size.FOR| 00000130 20 41 25 20 3d 20 73 70 74 5f 61 72 65 61 20 54 | A% = spt_area T| 00000140 4f 20 73 70 74 5f 61 72 65 61 2b 73 70 74 5f 61 |O spt_area+spt_a| 00000150 72 65 61 5f 73 69 7a 65 2d 31 20 53 54 45 50 20 |rea_size-1 STEP | 00000160 34 3a 21 41 25 3d 2d 31 3a 4e 45 58 54 0a 56 44 |4:!A%=-1:NEXT.VD| 00000170 55 36 2c 31 32 2c 32 33 2c 31 36 2c 26 34 30 2c |U6,12,23,16,&40,| 00000180 26 42 46 7c 0a 47 43 4f 4c 20 31 33 35 0a 50 52 |&BF|.GCOL 135.PR| 00000190 4f 43 77 69 6d 70 5f 76 61 72 73 0a 50 52 4f 43 |OCwimp_vars.PROC| 000001a0 69 6e 69 74 0a 53 59 53 20 69 6e 69 74 69 61 6c |init.SYS initial| 000001b0 69 73 65 0a 50 52 4f 43 64 65 73 6b 74 6f 70 0a |ise.PROCdesktop.| 000001c0 2a 50 4f 49 4e 54 45 52 0a 50 52 4f 43 6f 70 65 |*POINTER.PROCope| 000001d0 6e 5f 77 69 6e 64 6f 77 28 77 69 6e 64 6f 77 73 |n_window(windows| 000001e0 28 31 29 2c 30 2c 31 30 30 2c 31 32 38 30 2c 39 |(1),0,100,1280,9| 000001f0 38 38 2c 30 2c 30 2c 2d 31 29 0a 50 52 4f 43 64 |88,0,0,-1).PROCd| 00000200 65 66 5f 68 65 61 70 28 77 69 6e 64 6f 77 73 28 |ef_heap(windows(| 00000210 31 29 29 0a 50 52 4f 43 63 72 65 61 74 65 5f 68 |1)).PROCcreate_h| 00000220 65 6c 70 0a 50 52 4f 43 73 63 72 6e 0a 4f 4e 20 |elp.PROCscrn.ON | 00000230 45 52 52 4f 52 20 50 52 4f 43 72 65 70 6f 72 74 |ERROR PROCreport| 00000240 0a 52 45 50 45 41 54 0a 60 6f 6c 64 5f 61 72 65 |.REPEAT.`old_are| 00000250 61 20 3d 20 60 64 72 5f 61 72 65 61 0a 63 20 3d |a = `dr_area.c =| 00000260 20 46 4e 70 6f 6c 6c 28 30 29 0a 43 41 53 45 20 | FNpoll(0).CASE | 00000270 63 20 4f 46 0a 57 48 45 4e 20 31 20 3a 20 50 52 |c OF.WHEN 1 : PR| 00000280 4f 43 72 65 64 72 61 77 5f 77 69 6e 64 6f 77 28 |OCredraw_window(| 00000290 21 77 69 6d 70 29 3a 50 52 4f 43 75 70 64 61 74 |!wimp):PROCupdat| 000002a0 65 28 21 77 69 6d 70 29 0a 57 48 45 4e 20 32 20 |e(!wimp).WHEN 2 | 000002b0 3a 20 50 52 4f 43 6f 70 65 6e 5f 77 69 6e 64 6f |: PROCopen_windo| 000002c0 77 28 21 77 69 6d 70 2c 77 69 6d 70 21 34 2c 77 |w(!wimp,wimp!4,w| 000002d0 69 6d 70 21 38 2c 77 69 6d 70 21 31 32 2c 77 69 |imp!8,wimp!12,wi| 000002e0 6d 70 21 31 36 2c 77 69 6d 70 21 32 30 2c 20 77 |mp!16,wimp!20, w| 000002f0 69 6d 70 21 32 34 2c 77 69 6d 70 21 32 38 29 0a |imp!24,wimp!28).| 00000300 57 48 45 4e 20 33 20 3a 20 50 52 4f 43 63 6c 6f |WHEN 3 : PROCclo| 00000310 73 65 5f 77 69 6e 64 6f 77 28 21 77 69 6d 70 29 |se_window(!wimp)| 00000320 0a 57 48 45 4e 20 34 20 3a 0a 57 48 45 4e 20 35 |.WHEN 4 :.WHEN 5| 00000330 20 3a 20 49 46 20 21 77 69 6d 70 3d 77 69 6e 64 | : IF !wimp=wind| 00000340 6f 77 73 28 35 29 20 54 48 45 4e 20 60 68 61 6e |ows(5) THEN `han| 00000350 64 6c 65 25 20 3d 20 77 69 6e 64 6f 77 73 28 35 |dle% = windows(5| 00000360 29 0a 57 48 45 4e 20 36 20 3a 20 50 52 4f 43 6d |).WHEN 6 : PROCm| 00000370 6f 75 73 65 28 21 77 69 6d 70 2c 77 69 6d 70 21 |ouse(!wimp,wimp!| 00000380 34 2c 77 69 6d 70 21 38 2c 77 69 6d 70 21 31 32 |4,wimp!8,wimp!12| 00000390 2c 77 69 6d 70 21 31 36 2c 77 69 6d 70 21 32 30 |,wimp!16,wimp!20| 000003a0 29 0a 57 48 45 4e 20 37 20 3a 0a 57 48 45 4e 20 |).WHEN 7 :.WHEN | 000003b0 38 20 3a 20 50 52 4f 43 73 61 76 65 5f 6e 61 6d |8 : PROCsave_nam| 000003c0 65 0a 45 4e 44 43 41 53 45 0a 4d 4f 55 53 45 20 |e.ENDCASE.MOUSE | 000003d0 60 78 25 2c 60 79 25 2c 60 62 25 0a 49 46 20 46 |`x%,`y%,`b%.IF F| 000003e0 4e 64 72 61 77 5f 61 72 65 61 20 54 48 45 4e 0a |Ndraw_area THEN.| 000003f0 49 46 20 60 6f 6c 64 5f 61 72 65 61 20 3c 3e 20 |IF `old_area <> | 00000400 60 64 72 5f 61 72 65 61 20 54 48 45 4e 20 50 52 |`dr_area THEN PR| 00000410 4f 43 64 72 5f 63 6f 70 79 0a 56 44 55 32 34 2c |OCdr_copy.VDU24,| 00000420 31 36 32 3b 32 33 32 3b 31 32 37 34 3b 39 37 32 |162;232;1274;972| 00000430 3b 0a 49 46 20 60 63 6f 6c 25 20 3d 20 31 37 20 |;.IF `col% = 17 | 00000440 54 48 45 4e 0a 47 43 4f 4c 38 30 2b 60 73 74 79 |THEN.GCOL80+`sty| 00000450 6c 65 25 2c 30 0a 45 4c 53 45 0a 47 43 4f 4c 20 |le%,0.ELSE.GCOL | 00000460 60 73 74 79 6c 65 25 2c 60 63 6f 6c 25 0a 45 4e |`style%,`col%.EN| 00000470 44 49 46 0a 49 46 20 60 63 75 72 5f 6d 65 6e 75 |DIF.IF `cur_menu| 00000480 20 3d 20 31 20 54 48 45 4e 0a 43 41 53 45 20 60 | = 1 THEN.CASE `| 00000490 66 75 6e 63 25 20 4f 46 0a 57 48 45 4e 20 33 20 |func% OF.WHEN 3 | 000004a0 3a 20 50 52 4f 43 64 6f 5f 6c 69 6e 65 0a 57 48 |: PROCdo_line.WH| 000004b0 45 4e 20 34 20 3a 20 50 52 4f 43 64 6f 5f 6a 6f |EN 4 : PROCdo_jo| 000004c0 69 6e 65 64 0a 57 48 45 4e 20 35 20 3a 20 50 52 |ined.WHEN 5 : PR| 000004d0 4f 43 64 6f 5f 72 61 64 69 69 0a 57 48 45 4e 20 |OCdo_radii.WHEN | 000004e0 36 20 3a 20 50 52 4f 43 64 6f 5f 70 6f 69 6e 74 |6 : PROCdo_point| 000004f0 0a 45 4e 44 43 41 53 45 0a 45 4e 44 49 46 0a 49 |.ENDCASE.ENDIF.I| 00000500 46 20 60 63 75 72 5f 6d 65 6e 75 20 3d 20 32 20 |F `cur_menu = 2 | 00000510 54 48 45 4e 0a 43 41 53 45 20 60 66 75 6e 63 25 |THEN.CASE `func%| 00000520 20 4f 46 0a 57 48 45 4e 20 33 20 3a 20 50 52 4f | OF.WHEN 3 : PRO| 00000530 43 64 6f 5f 72 65 63 74 0a 57 48 45 4e 20 34 20 |Cdo_rect.WHEN 4 | 00000540 3a 20 50 52 4f 43 64 6f 5f 73 71 75 61 72 65 0a |: PROCdo_square.| 00000550 57 48 45 4e 20 35 20 3a 20 50 52 4f 43 64 6f 5f |WHEN 5 : PROCdo_| 00000560 70 61 72 61 0a 57 48 45 4e 20 36 20 3a 20 50 52 |para.WHEN 6 : PR| 00000570 4f 43 64 6f 5f 74 72 69 61 0a 45 4e 44 43 41 53 |OCdo_tria.ENDCAS| 00000580 45 0a 45 4e 44 49 46 0a 49 46 20 60 63 75 72 5f |E.ENDIF.IF `cur_| 00000590 6d 65 6e 75 20 3d 20 33 20 54 48 45 4e 0a 43 41 |menu = 3 THEN.CA| 000005a0 53 45 20 60 66 75 6e 63 25 20 4f 46 0a 57 48 45 |SE `func% OF.WHE| 000005b0 4e 20 33 20 3a 20 50 52 4f 43 64 6f 5f 63 69 72 |N 3 : PROCdo_cir| 000005c0 63 0a 57 48 45 4e 20 34 20 3a 20 50 52 4f 43 64 |c.WHEN 4 : PROCd| 000005d0 6f 5f 65 6c 69 70 0a 57 48 45 4e 20 35 20 3a 20 |o_elip.WHEN 5 : | 000005e0 50 52 4f 43 64 6f 5f 73 65 67 6d 0a 57 48 45 4e |PROCdo_segm.WHEN| 000005f0 20 36 20 3a 20 50 52 4f 43 64 6f 5f 61 72 63 0a | 6 : PROCdo_arc.| 00000600 57 48 45 4e 20 37 20 3a 20 50 52 4f 43 64 6f 5f |WHEN 7 : PROCdo_| 00000610 73 65 63 74 0a 45 4e 44 43 41 53 45 0a 45 4e 44 |sect.ENDCASE.END| 00000620 49 46 0a 49 46 20 60 63 75 72 5f 6d 65 6e 75 20 |IF.IF `cur_menu | 00000630 3d 20 34 20 54 48 45 4e 0a 43 41 53 45 20 60 66 |= 4 THEN.CASE `f| 00000640 75 6e 63 25 20 4f 46 0a 57 48 45 4e 20 33 20 3a |unc% OF.WHEN 3 :| 00000650 20 50 52 4f 43 64 6f 5f 74 65 78 74 0a 45 4e 44 | PROCdo_text.END| 00000660 43 41 53 45 0a 45 4e 44 49 46 0a 49 46 20 60 63 |CASE.ENDIF.IF `c| 00000670 75 72 5f 6d 65 6e 75 20 3d 20 35 20 54 48 45 4e |ur_menu = 5 THEN| 00000680 0a 43 41 53 45 20 60 66 75 6e 63 25 20 4f 46 0a |.CASE `func% OF.| 00000690 57 48 45 4e 20 33 20 3a 20 50 52 4f 43 64 6f 5f |WHEN 3 : PROCdo_| 000006a0 63 6f 70 79 0a 57 48 45 4e 20 34 20 3a 20 50 52 |copy.WHEN 4 : PR| 000006b0 4f 43 64 6f 5f 6d 6f 76 65 0a 57 48 45 4e 20 35 |OCdo_move.WHEN 5| 000006c0 20 3a 20 50 52 4f 43 64 6f 5f 63 6c 65 61 72 0a | : PROCdo_clear.| 000006d0 57 48 45 4e 20 37 20 3a 20 50 52 4f 43 64 6f 5f |WHEN 7 : PROCdo_| 000006e0 66 69 6c 6c 0a 45 4e 44 43 41 53 45 0a 45 4e 44 |fill.ENDCASE.END| 000006f0 49 46 0a 45 4e 44 49 46 0a 56 44 55 20 32 36 0a |IF.ENDIF.VDU 26.| 00000700 55 4e 54 49 4c 20 46 41 4c 53 45 0a 45 4e 44 0a |UNTIL FALSE.END.| 00000710 44 45 46 20 50 52 4f 43 69 6e 69 74 0a 56 44 55 |DEF PROCinit.VDU| 00000720 20 31 39 2c 20 30 2c 31 36 2c 20 20 30 2c 20 20 | 19, 0,16, 0, | 00000730 30 2c 20 20 30 20 3a 60 72 28 30 29 3d 30 20 20 |0, 0 :`r(0)=0 | 00000740 3a 60 67 28 30 29 3d 30 20 20 3a 60 62 28 30 29 |:`g(0)=0 :`b(0)| 00000750 3d 30 20 20 3a 20 20 20 52 45 4d 20 42 4c 41 43 |=0 : REM BLAC| 00000760 4b 0a 56 44 55 20 31 39 2c 20 31 2c 31 36 2c 32 |K.VDU 19, 1,16,2| 00000770 34 30 2c 20 20 30 2c 20 20 30 20 3a 60 72 28 31 |40, 0, 0 :`r(1| 00000780 29 3d 32 34 30 3a 60 67 28 31 29 3d 30 20 20 3a |)=240:`g(1)=0 :| 00000790 60 62 28 31 29 3d 30 20 20 3a 20 20 20 52 45 4d |`b(1)=0 : REM| 000007a0 20 52 45 44 20 31 30 30 25 0a 56 44 55 20 31 39 | RED 100%.VDU 19| 000007b0 2c 20 32 2c 31 36 2c 20 20 30 2c 32 34 30 2c 20 |, 2,16, 0,240, | 000007c0 20 30 20 3a 60 72 28 32 29 3d 30 20 20 3a 60 67 | 0 :`r(2)=0 :`g| 000007d0 28 32 29 3d 32 34 30 3a 60 62 28 32 29 3d 30 20 |(2)=240:`b(2)=0 | 000007e0 20 3a 20 20 20 52 45 4d 20 47 52 45 45 4e 20 31 | : REM GREEN 1| 000007f0 30 30 25 0a 56 44 55 20 31 39 2c 20 33 2c 31 36 |00%.VDU 19, 3,16| 00000800 2c 32 34 30 2c 32 34 30 2c 20 20 30 20 3a 60 72 |,240,240, 0 :`r| 00000810 28 33 29 3d 32 34 30 3a 60 67 28 33 29 3d 32 34 |(3)=240:`g(3)=24| 00000820 30 3a 60 62 28 33 29 3d 30 20 20 3a 20 20 20 52 |0:`b(3)=0 : R| 00000830 45 4d 20 59 45 4c 4c 4f 57 20 31 30 30 25 0a 56 |EM YELLOW 100%.V| 00000840 44 55 20 31 39 2c 20 34 2c 31 36 2c 20 20 30 2c |DU 19, 4,16, 0,| 00000850 20 20 30 2c 32 34 30 20 3a 60 72 28 34 29 3d 30 | 0,240 :`r(4)=0| 00000860 20 20 3a 60 67 28 34 29 3d 30 20 20 3a 60 62 28 | :`g(4)=0 :`b(| 00000870 34 29 3d 32 34 30 3a 20 20 20 52 45 4d 20 42 4c |4)=240: REM BL| 00000880 55 45 20 31 30 30 25 0a 56 44 55 20 31 39 2c 20 |UE 100%.VDU 19, | 00000890 35 2c 31 36 2c 32 34 30 2c 20 20 30 2c 32 34 30 |5,16,240, 0,240| 000008a0 20 3a 60 72 28 35 29 3d 32 34 30 3a 60 67 28 35 | :`r(5)=240:`g(5| 000008b0 29 3d 30 20 20 3a 60 62 28 35 29 3d 32 34 30 3a |)=0 :`b(5)=240:| 000008c0 20 20 20 52 45 4d 20 4d 41 47 45 4e 54 41 20 31 | REM MAGENTA 1| 000008d0 30 30 25 0a 56 44 55 20 31 39 2c 20 36 2c 31 36 |00%.VDU 19, 6,16| 000008e0 2c 20 20 30 2c 32 34 30 2c 32 34 30 20 3a 60 72 |, 0,240,240 :`r| 000008f0 28 36 29 3d 30 20 20 3a 60 67 28 36 29 3d 32 34 |(6)=0 :`g(6)=24| 00000900 30 3a 60 62 28 36 29 3d 32 34 30 3a 20 20 20 52 |0:`b(6)=240: R| 00000910 45 4d 20 43 59 41 4e 20 31 30 30 25 0a 56 44 55 |EM CYAN 100%.VDU| 00000920 20 31 39 2c 20 37 2c 31 36 2c 32 34 30 2c 32 34 | 19, 7,16,240,24| 00000930 30 2c 32 34 30 20 3a 60 72 28 37 29 3d 32 34 30 |0,240 :`r(7)=240| 00000940 3a 60 67 28 37 29 3d 32 34 30 3a 60 62 28 37 29 |:`g(7)=240:`b(7)| 00000950 3d 32 34 30 3a 20 20 20 52 45 4d 20 57 48 49 54 |=240: REM WHIT| 00000960 45 20 31 30 30 25 0a 56 44 55 20 31 39 2c 20 38 |E 100%.VDU 19, 8| 00000970 2c 31 36 2c 32 32 34 2c 31 34 34 2c 31 34 34 20 |,16,224,144,144 | 00000980 3a 60 72 28 38 29 3d 32 32 34 3a 60 67 28 38 29 |:`r(8)=224:`g(8)| 00000990 3d 31 34 34 3a 60 62 28 38 29 3d 31 34 34 3a 20 |=144:`b(8)=144: | 000009a0 20 20 52 45 4d 20 54 49 54 4c 45 20 42 41 43 4b | REM TITLE BACK| 000009b0 0a 56 44 55 20 31 39 2c 20 39 2c 31 36 2c 31 36 |.VDU 19, 9,16,16| 000009c0 30 2c 31 36 30 2c 31 36 30 20 3a 60 72 28 39 29 |0,160,160 :`r(9)| 000009d0 3d 31 36 30 3a 60 67 28 39 29 3d 31 36 30 3a 60 |=160:`g(9)=160:`| 000009e0 62 28 39 29 3d 31 36 30 3a 20 20 20 52 45 4d 20 |b(9)=160: REM | 000009f0 49 43 4f 4e 20 42 41 43 4b 0a 56 44 55 20 31 39 |ICON BACK.VDU 19| 00000a00 2c 31 30 2c 31 36 2c 31 31 34 2c 31 31 34 2c 31 |,10,16,114,114,1| 00000a10 31 34 20 3a 60 72 28 31 30 29 3d 31 31 34 3a 60 |14 :`r(10)=114:`| 00000a20 67 28 31 30 29 3d 31 31 34 3a 60 62 28 31 30 29 |g(10)=114:`b(10)| 00000a30 3d 31 31 34 3a 52 45 4d 20 53 43 52 4f 4c 4c 20 |=114:REM SCROLL | 00000a40 42 41 43 4b 0a 56 44 55 20 31 39 2c 31 31 2c 31 |BACK.VDU 19,11,1| 00000a50 36 2c 31 37 36 2c 31 37 36 2c 31 37 36 20 3a 60 |6,176,176,176 :`| 00000a60 72 28 31 31 29 3d 31 37 36 3a 60 67 28 31 31 29 |r(11)=176:`g(11)| 00000a70 3d 31 37 36 3a 60 62 28 31 31 29 3d 31 37 36 3a |=176:`b(11)=176:| 00000a80 52 45 4d 20 4d 45 4e 55 20 42 41 43 4b 0a 56 44 |REM MENU BACK.VD| 00000a90 55 20 31 39 2c 31 32 2c 31 36 2c 32 30 38 2c 20 |U 19,12,16,208, | 00000aa0 20 30 2c 20 20 30 20 3a 60 72 28 31 32 29 3d 32 | 0, 0 :`r(12)=2| 00000ab0 30 38 3a 60 67 28 31 32 29 3d 30 20 20 3a 60 62 |08:`g(12)=0 :`b| 00000ac0 28 31 32 29 3d 30 0a 56 44 55 20 31 39 2c 31 33 |(12)=0.VDU 19,13| 00000ad0 2c 31 36 2c 31 37 36 2c 31 37 36 2c 20 20 30 20 |,16,176,176, 0 | 00000ae0 3a 60 72 28 31 33 29 3d 31 37 36 3a 60 67 28 31 |:`r(13)=176:`g(1| 00000af0 33 29 3d 31 37 36 3a 60 62 28 31 33 29 3d 30 0a |3)=176:`b(13)=0.| 00000b00 56 44 55 20 31 39 2c 31 34 2c 31 36 2c 20 20 30 |VDU 19,14,16, 0| 00000b10 2c 20 20 30 2c 32 30 38 20 3a 60 72 28 31 34 29 |, 0,208 :`r(14)| 00000b20 3d 30 20 20 3a 60 67 28 31 34 29 3d 30 20 20 3a |=0 :`g(14)=0 :| 00000b30 60 62 28 31 34 29 3d 32 30 38 0a 56 44 55 20 31 |`b(14)=208.VDU 1| 00000b40 39 2c 31 35 2c 31 36 2c 31 31 32 2c 31 36 30 2c |9,15,16,112,160,| 00000b50 31 36 30 20 3a 60 72 28 31 35 29 3d 31 31 32 3a |160 :`r(15)=112:| 00000b60 60 67 28 31 35 29 3d 31 36 30 3a 60 62 28 31 35 |`g(15)=160:`b(15| 00000b70 29 3d 31 36 30 0a 3a 0a 60 69 62 20 3d 20 26 38 |)=160.:.`ib = &8| 00000b80 39 20 3a 20 60 69 66 20 3d 20 26 30 30 20 3a 20 |9 : `if = &00 : | 00000b90 60 77 66 20 3d 20 26 30 30 20 3a 20 60 77 62 20 |`wf = &00 : `wb | 00000ba0 3d 20 26 38 37 20 3a 20 60 74 66 20 3d 20 26 30 |= &87 : `tf = &0| 00000bb0 30 20 3a 20 60 74 62 20 3d 20 26 38 38 0a 60 73 |0 : `tb = &88.`s| 00000bc0 66 20 3d 20 26 30 34 20 3a 20 60 73 62 20 3d 20 |f = &04 : `sb = | 00000bd0 26 38 41 0a 56 44 55 31 39 2c 30 2c 32 34 2c 26 |&8A.VDU19,0,24,&| 00000be0 35 30 2c 26 35 30 2c 26 35 30 0a 56 44 55 31 39 |50,&50,&50.VDU19| 00000bf0 2c 31 2c 32 35 2c 26 30 30 2c 26 46 30 2c 26 46 |,1,25,&00,&F0,&F| 00000c00 30 0a 56 44 55 31 39 2c 32 2c 32 35 2c 26 30 30 |0.VDU19,2,25,&00| 00000c10 2c 26 30 30 2c 26 46 30 0a 56 44 55 31 39 2c 33 |,&00,&F0.VDU19,3| 00000c20 2c 32 35 2c 26 46 30 2c 26 30 30 2c 26 30 30 0a |,25,&F0,&00,&00.| 00000c30 60 63 75 72 5f 6d 65 6e 75 20 3d 20 30 0a 60 6d |`cur_menu = 0.`m| 00000c40 5f 66 69 6c 6c 20 3d 20 46 41 4c 53 45 0a 60 6d |_fill = FALSE.`m| 00000c50 5f 6f 70 65 6e 20 3d 20 54 52 55 45 0a 60 6d 5f |_open = TRUE.`m_| 00000c60 64 6f 74 73 20 3d 20 46 41 4c 53 45 0a 60 6d 5f |dots = FALSE.`m_| 00000c70 78 6f 72 3d 20 46 41 4c 53 45 0a 60 6d 5f 6f 72 |xor= FALSE.`m_or| 00000c80 20 3d 20 46 41 4c 53 45 0a 60 6d 5f 61 6e 64 3d | = FALSE.`m_and=| 00000c90 20 46 41 4c 53 45 0a 60 6d 5f 69 6e 76 3d 20 46 | FALSE.`m_inv= F| 00000ca0 41 4c 53 45 0a 60 66 75 6e 63 25 3d 20 32 0a 60 |ALSE.`func%= 2.`| 00000cb0 63 6f 6c 25 20 3d 20 30 0a 60 73 74 79 6c 65 25 |col% = 0.`style%| 00000cc0 20 3d 20 30 0a 60 62 72 73 68 25 3d 20 32 34 33 | = 0.`brsh%= 243| 00000cd0 0a 60 78 25 20 3d 20 30 20 3a 20 60 79 25 20 3d |.`x% = 0 : `y% =| 00000ce0 20 30 20 3a 20 60 62 25 20 3d 20 30 0a 60 68 61 | 0 : `b% = 0.`ha| 00000cf0 6e 64 6c 65 25 20 3d 20 30 0a 60 69 63 6f 6e 25 |ndle% = 0.`icon%| 00000d00 20 3d 20 30 0a 60 73 74 61 74 65 25 20 3d 20 30 | = 0.`state% = 0| 00000d10 0a 60 64 72 5f 61 72 65 61 20 3d 20 2d 31 0a 60 |.`dr_area = -1.`| 00000d20 6d 61 78 5f 66 69 6c 65 25 20 3d 20 37 37 0a 56 |max_file% = 77.V| 00000d30 44 55 32 33 2c 32 34 33 2c 30 2c 30 2c 30 2c 26 |DU23,243,0,0,0,&| 00000d40 31 38 2c 26 31 38 2c 30 2c 30 2c 30 0a 56 44 55 |18,&18,0,0,0.VDU| 00000d50 32 33 2c 32 34 34 2c 30 2c 30 2c 26 33 43 2c 26 |23,244,0,0,&3C,&| 00000d60 33 43 2c 26 33 43 2c 26 33 43 2c 30 2c 30 0a 56 |3C,&3C,&3C,0,0.V| 00000d70 44 55 32 33 2c 32 34 35 2c 26 46 46 2c 26 46 46 |DU23,245,&FF,&FF| 00000d80 2c 26 46 46 2c 26 46 46 2c 26 46 46 2c 26 46 46 |,&FF,&FF,&FF,&FF| 00000d90 2c 26 46 46 2c 26 46 46 0a 56 44 55 32 33 2c 32 |,&FF,&FF.VDU23,2| 00000da0 34 36 2c 30 2c 26 31 38 2c 26 33 43 2c 26 37 45 |46,0,&18,&3C,&7E| 00000db0 2c 26 46 46 2c 30 2c 30 2c 30 0a 56 44 55 32 33 |,&FF,0,0,0.VDU23| 00000dc0 2c 32 34 37 2c 30 2c 26 31 38 2c 26 33 43 2c 26 |,247,0,&18,&3C,&| 00000dd0 37 45 2c 26 37 45 2c 26 33 43 2c 26 31 38 2c 30 |7E,&7E,&3C,&18,0| 00000de0 0a 56 44 55 32 33 2c 32 34 38 2c 30 2c 36 2c 26 |.VDU23,248,0,6,&| 00000df0 45 2c 26 31 43 2c 26 33 38 2c 26 37 30 2c 26 36 |E,&1C,&38,&70,&6| 00000e00 30 2c 30 0a 56 44 55 32 33 2c 32 34 39 2c 30 2c |0,0.VDU23,249,0,| 00000e10 26 35 34 2c 26 32 41 2c 26 35 34 2c 26 32 41 2c |&54,&2A,&54,&2A,| 00000e20 26 35 34 2c 26 32 41 2c 30 0a 56 44 55 32 33 2c |&54,&2A,0.VDU23,| 00000e30 32 35 30 2c 30 2c 26 34 30 2c 26 32 30 2c 26 31 |250,0,&40,&20,&1| 00000e40 30 2c 38 2c 34 2c 32 2c 30 0a 56 44 55 32 33 2c |0,8,4,2,0.VDU23,| 00000e50 32 35 31 2c 30 2c 31 36 2c 31 36 2c 31 36 2c 31 |251,0,16,16,16,1| 00000e60 36 2c 31 36 2c 31 36 2c 30 0a 56 44 55 32 33 2c |6,16,16,0.VDU23,| 00000e70 32 35 32 2c 30 2c 30 2c 30 2c 30 2c 30 2c 30 2c |252,0,0,0,0,0,0,| 00000e80 30 2c 30 0a 56 44 55 32 33 2c 32 35 33 2c 26 38 |0,0.VDU23,253,&8| 00000e90 30 2c 26 35 32 2c 38 2c 26 32 39 2c 26 39 30 2c |0,&52,8,&29,&90,| 00000ea0 26 43 2c 26 41 32 2c 38 0a 56 44 55 32 33 2c 32 |&C,&A2,8.VDU23,2| 00000eb0 35 34 2c 30 2c 30 2c 30 2c 26 37 45 2c 30 2c 30 |54,0,0,0,&7E,0,0| 00000ec0 2c 30 2c 30 0a 56 44 55 20 32 33 2c 31 37 2c 34 |,0,0.VDU 23,17,4| 00000ed0 2c 31 2c 30 2c 30 2c 30 2c 30 2c 30 2c 30 0a 46 |,1,0,0,0,0,0,0.F| 00000ee0 4f 52 20 61 25 20 3d 20 30 20 54 4f 20 36 33 0a |OR a% = 0 TO 63.| 00000ef0 60 70 28 30 2c 61 25 29 20 3d 20 28 61 25 20 4d |`p(0,a%) = (a% M| 00000f00 4f 44 20 32 29 2b 31 2b 28 61 25 20 44 49 56 20 |OD 2)+1+(a% DIV | 00000f10 38 29 4d 4f 44 20 32 0a 60 70 28 31 2c 61 25 29 |8)MOD 2.`p(1,a%)| 00000f20 20 3d 20 28 28 61 25 20 4d 4f 44 20 32 29 2b 28 | = ((a% MOD 2)+(| 00000f30 61 25 20 44 49 56 20 38 29 4d 4f 44 20 32 29 4d |a% DIV 8)MOD 2)M| 00000f40 4f 44 20 32 2b 31 0a 60 70 28 32 2c 61 25 29 20 |OD 2+1.`p(2,a%) | 00000f50 3d 20 28 61 25 20 4d 4f 44 20 32 29 2b 35 2b 28 |= (a% MOD 2)+5+(| 00000f60 61 25 20 44 49 56 20 38 29 4d 4f 44 20 32 0a 60 |a% DIV 8)MOD 2.`| 00000f70 70 28 33 2c 61 25 29 20 3d 20 28 28 61 25 20 4d |p(3,a%) = ((a% M| 00000f80 4f 44 20 32 29 2b 28 61 25 20 44 49 56 20 38 29 |OD 2)+(a% DIV 8)| 00000f90 4d 4f 44 20 32 29 4d 4f 44 20 32 2b 39 0a 4e 45 |MOD 2)MOD 2+9.NE| 00000fa0 58 54 20 61 25 0a 60 70 74 72 6e 20 3d 20 30 0a |XT a%.`ptrn = 0.| 00000fb0 47 43 4f 4c 20 30 0a 52 45 43 54 41 4e 47 4c 45 |GCOL 0.RECTANGLE| 00000fc0 20 46 49 4c 4c 20 34 36 2c 36 39 34 2c 36 34 2c | FILL 46,694,64,| 00000fd0 36 34 0a 53 59 53 20 26 32 45 2c 31 36 2c 30 2c |64.SYS &2E,16,0,| 00000fe0 22 63 75 72 63 6f 6c 22 2c 30 2c 34 36 2c 36 39 |"curcol",0,46,69| 00000ff0 34 2c 31 30 30 2c 37 35 38 0a 73 70 74 5f 61 72 |4,100,758.spt_ar| 00001000 65 61 21 30 20 3d 20 73 70 74 5f 61 72 65 61 5f |ea!0 = spt_area_| 00001010 73 69 7a 65 20 3a 20 73 70 74 5f 61 72 65 61 21 |size : spt_area!| 00001020 34 20 3d 20 30 20 3a 20 73 70 74 5f 61 72 65 61 |4 = 0 : spt_area| 00001030 21 38 20 3d 31 36 20 3a 20 73 70 74 5f 61 72 65 |!8 =16 : spt_are| 00001040 61 21 31 32 20 3d 20 73 70 74 5f 61 72 65 61 21 |a!12 = spt_area!| 00001050 38 0a 56 44 55 32 36 2c 32 33 2c 31 37 2c 34 2c |8.VDU26,23,17,4,| 00001060 31 2c 30 2c 30 2c 30 2c 30 2c 30 2c 30 0a 45 4e |1,0,0,0,0,0,0.EN| 00001070 44 50 52 4f 43 0a 44 45 46 20 50 52 4f 43 77 69 |DPROC.DEF PROCwi| 00001080 6d 70 5f 76 61 72 73 0a 3a 0a 3a 0a 77 73 20 3d |mp_vars.:.:.ws =| 00001090 20 26 30 30 30 34 30 30 43 30 0a 3a 0a 69 6e 69 | &000400C0.:.ini| 000010a0 74 69 61 6c 69 73 65 3d 20 77 73 0a 63 72 65 61 |tialise= ws.crea| 000010b0 74 65 5f 77 69 6e 64 6f 77 20 3d 20 77 73 20 2b |te_window = ws +| 000010c0 20 30 31 0a 63 72 65 61 74 65 5f 69 63 6f 6e 20 | 01.create_icon | 000010d0 3d 20 77 73 20 2b 20 30 32 0a 64 65 6c 65 74 65 |= ws + 02.delete| 000010e0 5f 77 69 6e 64 6f 77 20 3d 20 77 73 20 2b 20 30 |_window = ws + 0| 000010f0 33 0a 64 65 6c 65 74 65 5f 69 63 6f 6e 20 3d 20 |3.delete_icon = | 00001100 77 73 20 2b 20 30 34 0a 6f 70 65 6e 5f 77 69 6e |ws + 04.open_win| 00001110 64 6f 77 20 3d 20 77 73 20 2b 20 30 35 0a 63 6c |dow = ws + 05.cl| 00001120 6f 73 65 5f 77 69 6e 64 6f 77 3d 20 77 73 20 2b |ose_window= ws +| 00001130 20 30 36 0a 70 6f 6c 6c 5f 77 69 6d 70 20 3d 20 | 06.poll_wimp = | 00001140 77 73 20 2b 20 30 37 0a 72 65 64 72 61 77 5f 77 |ws + 07.redraw_w| 00001150 69 6e 64 6f 77 20 3d 20 77 73 20 2b 20 30 38 0a |indow = ws + 08.| 00001160 75 70 64 61 74 65 5f 77 69 6e 64 6f 77 20 3d 20 |update_window = | 00001170 77 73 20 2b 20 30 39 0a 67 65 74 5f 72 65 63 74 |ws + 09.get_rect| 00001180 61 6e 67 6c 65 20 3d 20 77 73 20 2b 20 31 30 0a |angle = ws + 10.| 00001190 67 65 74 5f 77 69 6e 64 6f 77 5f 73 74 61 74 65 |get_window_state| 000011a0 3d 20 77 73 20 2b 20 31 31 0a 67 65 74 5f 77 69 |= ws + 11.get_wi| 000011b0 6e 64 6f 77 5f 69 6e 66 6f 20 3d 20 77 73 20 2b |ndow_info = ws +| 000011c0 20 31 32 0a 73 65 74 5f 69 63 6f 6e 5f 73 74 61 | 12.set_icon_sta| 000011d0 74 65 3d 20 77 73 20 2b 20 31 33 0a 67 65 74 5f |te= ws + 13.get_| 000011e0 69 63 6f 6e 5f 69 6e 66 6f 20 3d 20 77 73 20 2b |icon_info = ws +| 000011f0 20 31 34 0a 67 65 74 5f 70 6f 69 6e 74 65 72 5f | 14.get_pointer_| 00001200 69 6e 66 6f 3d 20 77 73 20 2b 20 31 35 0a 64 72 |info= ws + 15.dr| 00001210 61 67 5f 62 6f 78 3d 20 77 73 20 2b 20 31 36 0a |ag_box= ws + 16.| 00001220 73 63 72 65 65 6e 5f 72 65 64 72 61 77 20 3d 20 |screen_redraw = | 00001230 77 73 20 2b 20 31 37 0a 73 65 74 5f 63 61 72 6f |ws + 17.set_caro| 00001240 74 5f 70 6f 73 69 74 69 6f 6e 3d 20 77 73 20 2b |t_position= ws +| 00001250 20 31 38 0a 3a 0a 45 4e 44 50 52 4f 43 0a 44 45 | 18.:.ENDPROC.DE| 00001260 46 20 50 52 4f 43 64 65 73 6b 74 6f 70 0a 52 45 |F PROCdesktop.RE| 00001270 53 54 4f 52 45 0a 77 69 6e 64 25 20 3d 20 2d 31 |STORE.wind% = -1| 00001280 0a 52 45 50 45 41 54 0a 52 45 41 44 20 66 25 2c |.REPEAT.READ f%,| 00001290 66 63 25 2c 62 63 25 2c 78 30 25 2c 79 30 25 2c |fc%,bc%,x0%,y0%,| 000012a0 78 31 25 2c 79 31 25 2c 69 66 25 2c 69 63 24 2c |x1%,y1%,if%,ic$,| 000012b0 63 78 30 25 2c 63 79 30 25 2c 63 78 31 25 2c 63 |cx0%,cy0%,cx1%,c| 000012c0 79 31 25 2c 6e 69 63 25 2c 74 69 74 24 3a 0a 77 |y1%,nic%,tit$:.w| 000012d0 69 6e 64 25 20 3d 20 77 69 6e 64 25 20 2b 20 31 |ind% = wind% + 1| 000012e0 0a 77 69 6e 64 6f 77 73 28 77 69 6e 64 25 29 20 |.windows(wind%) | 000012f0 3d 20 46 4e 63 72 65 61 74 65 57 28 63 78 30 25 |= FNcreateW(cx0%| 00001300 2c 63 79 30 25 2c 63 78 31 25 2c 63 79 31 25 2c |,cy0%,cx1%,cy1%,| 00001310 30 2c 30 2c 66 25 2c 66 63 25 2c 62 63 25 2c 78 |0,0,f%,fc%,bc%,x| 00001320 30 25 2c 79 30 25 2c 78 31 25 2c 79 31 25 2c 69 |0%,y0%,x1%,y1%,i| 00001330 66 25 2c 43 48 52 24 31 39 37 2c 74 69 74 24 2c |f%,CHR$197,tit$,| 00001340 6e 69 63 25 29 0a 3a 0a 52 45 41 44 20 41 24 0a |nic%).:.READ A$.| 00001350 55 4e 54 49 4c 20 41 24 3d 22 22 0a 21 77 69 6d |UNTIL A$="".!wim| 00001360 70 20 3d 20 77 69 6e 64 6f 77 73 28 31 30 29 0a |p = windows(10).| 00001370 77 69 6d 70 21 34 3d 20 30 0a 77 69 6d 70 21 38 |wimp!4= 0.wimp!8| 00001380 3d 20 2d 31 30 30 0a 77 69 6d 70 21 31 32 20 3d |= -100.wimp!12 =| 00001390 20 32 35 30 0a 77 69 6d 70 21 31 36 20 3d 20 30 | 250.wimp!16 = 0| 000013a0 0a 77 69 6d 70 21 32 30 20 3d 20 26 39 30 30 30 |.wimp!20 = &9000| 000013b0 46 31 33 35 0a 77 69 6d 70 21 32 34 20 3d 20 73 |F135.wimp!24 = s| 000013c0 61 76 65 25 0a 77 69 6d 70 21 32 38 20 3d 20 2d |ave%.wimp!28 = -| 000013d0 31 0a 77 69 6d 70 21 33 32 20 3d 20 31 30 0a 24 |1.wimp!32 = 10.$| 000013e0 73 61 76 65 25 20 3d 20 22 22 0a 53 59 53 20 63 |save% = "".SYS c| 000013f0 72 65 61 74 65 5f 69 63 6f 6e 2c 30 2c 77 69 6d |reate_icon,0,wim| 00001400 70 0a 3a 0a 52 45 4d 20 66 6c 61 67 73 2c 66 6f |p.:.REM flags,fo| 00001410 72 65 63 6c 2c 62 61 63 6b 63 6c 2c 6d 69 6e 78 |recl,backcl,minx| 00001420 2c 6d 69 6e 79 2c 6d 61 78 78 2c 6d 69 6e 79 2c |,miny,maxx,miny,| 00001430 69 63 6f 6e 66 6c 67 2c 69 63 6f 6e 2c 78 30 2c |iconflg,icon,x0,| 00001440 79 30 2c 78 31 2c 79 31 2c 6e 2c 74 24 0a 3a 0a |y0,x1,y1,n,t$.:.| 00001450 52 45 4d 50 41 4c 45 54 54 45 20 57 49 4e 44 4f |REMPALETTE WINDO| 00001460 57 20 37 0a 44 41 54 41 20 26 35 30 2c 60 77 66 |W 7.DATA &50,`wf| 00001470 2c 60 77 62 2c 30 2c 2d 39 36 2c 31 30 30 2c 30 |,`wb,0,-96,100,0| 00001480 2c 30 2c 22 22 2c 30 2c 30 2c 31 30 30 2c 39 36 |,0,"",0,0,100,96| 00001490 2c 31 2c 22 22 0a 44 41 54 41 20 30 2c 2d 39 36 |,1,"".DATA 0,-96| 000014a0 2c 31 30 30 2c 34 2c 26 33 30 30 45 2c 60 69 66 |,100,4,&300E,`if| 000014b0 2c 30 2c 66 75 6e 63 2c 6e 75 6c 6c 0a 3a 0a 44 |,0,func,null.:.D| 000014c0 41 54 41 20 26 31 31 2c 60 77 66 2c 60 77 62 2c |ATA &11,`wf,`wb,| 000014d0 30 2c 2d 38 38 38 2c 31 32 38 30 2c 30 2c 26 33 |0,-888,1280,0,&3| 000014e0 30 32 44 2c 22 22 2c 30 2c 31 30 30 2c 31 32 38 |02D,"",0,100,128| 000014f0 30 2c 39 38 38 2c 31 31 2c 22 41 52 4d 20 50 41 |0,988,11,"ARM PA| 00001500 49 4e 54 22 0a 44 41 54 41 20 30 2c 2d 34 30 2c |INT".DATA 0,-40,| 00001510 31 36 30 2c 34 2c 26 33 30 32 44 2c 60 69 66 2c |160,4,&302D,`if,| 00001520 60 69 62 2c 43 4f 4c 4f 55 52 53 0a 44 41 54 41 |`ib,COLOURS.DATA| 00001530 20 30 2c 2d 37 35 32 2c 31 36 30 2c 2d 35 33 38 | 0,-752,160,-538| 00001540 2c 26 33 30 33 44 2c 60 69 66 2c 60 69 62 2c 6d |,&303D,`if,`ib,m| 00001550 6f 64 65 0a 44 41 54 41 20 30 2c 2d 38 38 38 2c |ode.DATA 0,-888,| 00001560 31 36 30 2c 2d 37 34 38 2c 26 33 30 33 44 2c 60 |160,-748,&303D,`| 00001570 69 66 2c 26 38 38 2c 66 75 6e 63 0a 44 41 54 41 |if,&88,func.DATA| 00001580 20 31 36 30 2c 2d 38 38 38 2c 33 30 30 2c 2d 37 | 160,-888,300,-7| 00001590 34 38 2c 26 33 30 33 44 2c 60 69 66 2c 60 69 62 |48,&303D,`if,`ib| 000015a0 2c 64 72 61 77 0a 44 41 54 41 20 33 30 30 2c 2d |,draw.DATA 300,-| 000015b0 38 38 38 2c 34 34 30 2c 2d 37 34 38 2c 26 33 30 |888,440,-748,&30| 000015c0 33 44 2c 60 69 66 2c 60 69 62 2c 73 68 61 70 65 |3D,`if,`ib,shape| 000015d0 73 0a 44 41 54 41 20 34 34 30 2c 2d 38 38 38 2c |s.DATA 440,-888,| 000015e0 35 38 30 2c 2d 37 34 38 2c 26 33 30 33 44 2c 60 |580,-748,&303D,`| 000015f0 69 66 2c 60 69 62 2c 63 75 72 76 65 0a 44 41 54 |if,`ib,curve.DAT| 00001600 41 20 35 38 30 2c 2d 38 38 38 2c 37 32 30 2c 2d |A 580,-888,720,-| 00001610 37 34 38 2c 26 33 30 33 44 2c 60 69 66 2c 60 69 |748,&303D,`if,`i| 00001620 62 2c 74 65 78 74 0a 44 41 54 41 20 37 32 30 2c |b,text.DATA 720,| 00001630 2d 38 38 38 2c 38 36 30 2c 2d 37 34 38 2c 26 33 |-888,860,-748,&3| 00001640 30 33 44 2c 60 69 66 2c 60 69 62 2c 61 72 65 61 |03D,`if,`ib,area| 00001650 0a 44 41 54 41 20 38 36 30 2c 2d 38 38 38 2c 31 |.DATA 860,-888,1| 00001660 30 30 30 2c 2d 37 34 38 2c 26 33 30 33 44 2c 60 |000,-748,&303D,`| 00001670 69 66 2c 60 69 62 2c 22 22 0a 44 41 54 41 20 31 |if,`ib,"".DATA 1| 00001680 30 30 30 2c 2d 38 38 38 2c 31 31 34 30 2c 2d 37 |000,-888,1140,-7| 00001690 34 38 2c 26 33 30 33 44 2c 60 69 66 2c 60 69 62 |48,&303D,`if,`ib| 000016a0 2c 6c 6f 61 64 0a 44 41 54 41 20 31 31 34 30 2c |,load.DATA 1140,| 000016b0 2d 38 38 38 2c 31 32 38 30 2c 2d 37 34 38 2c 26 |-888,1280,-748,&| 000016c0 33 30 33 44 2c 60 69 66 2c 60 69 62 2c 73 61 76 |303D,`if,`ib,sav| 000016d0 65 2c 6e 75 6c 6c 0a 3a 0a 44 41 54 41 20 26 31 |e,null.:.DATA &1| 000016e0 31 2c 60 77 66 2c 60 77 62 2c 30 2c 2d 32 30 30 |1,`wf,`wb,0,-200| 000016f0 2c 34 30 30 2c 30 2c 26 33 30 32 44 2c 22 22 2c |,400,0,&302D,"",| 00001700 31 32 30 2c 32 33 30 2c 35 32 30 2c 34 33 30 2c |120,230,520,430,| 00001710 37 2c 4d 4f 44 45 0a 44 41 54 41 20 30 2c 2d 39 |7,MODE.DATA 0,-9| 00001720 38 2c 32 30 30 2c 30 2c 26 33 30 33 44 2c 60 69 |8,200,0,&303D,`i| 00001730 66 2c 60 69 62 2c 66 69 6c 6c 0a 44 41 54 41 20 |f,`ib,fill.DATA | 00001740 32 30 30 2c 2d 39 38 2c 34 30 30 2c 30 2c 26 33 |200,-98,400,0,&3| 00001750 30 33 44 2c 60 69 66 2c 26 38 38 2c 6f 70 65 6e |03D,`if,&88,open| 00001760 0a 44 41 54 41 20 30 2c 30 2c 30 2c 30 2c 26 33 |.DATA 0,0,0,0,&3| 00001770 30 33 45 2c 60 69 66 2c 60 69 62 2c 22 22 0a 44 |03E,`if,`ib,"".D| 00001780 41 54 41 20 30 2c 2d 32 30 30 2c 31 30 30 2c 2d |ATA 0,-200,100,-| 00001790 31 30 30 2c 26 33 30 33 44 2c 60 69 66 2c 60 69 |100,&303D,`if,`i| 000017a0 62 2c 58 6f 72 0a 44 41 54 41 20 31 30 30 2c 2d |b,Xor.DATA 100,-| 000017b0 32 30 30 2c 32 30 30 2c 2d 31 30 30 2c 26 33 30 |200,200,-100,&30| 000017c0 33 44 2c 60 69 66 2c 60 69 62 2c 4f 52 0a 44 41 |3D,`if,`ib,OR.DA| 000017d0 54 41 20 32 30 30 2c 2d 32 30 30 2c 33 30 30 2c |TA 200,-200,300,| 000017e0 2d 31 30 30 2c 26 33 30 33 44 2c 60 69 66 2c 60 |-100,&303D,`if,`| 000017f0 69 62 2c 41 4e 44 0a 44 41 54 41 20 33 30 30 2c |ib,AND.DATA 300,| 00001800 2d 32 30 30 2c 34 30 30 2c 2d 31 30 30 2c 26 33 |-200,400,-100,&3| 00001810 30 33 44 2c 60 69 66 2c 60 69 62 2c 49 4e 56 2c |03D,`if,`ib,INV,| 00001820 6e 75 6c 6c 0a 3a 0a 44 41 54 41 20 26 31 31 2c |null.:.DATA &11,| 00001830 60 77 66 2c 60 77 62 2c 30 2c 2d 32 38 30 2c 37 |`wf,`wb,0,-280,7| 00001840 32 30 2c 30 2c 26 33 30 32 44 2c 22 22 2c 31 38 |20,0,&302D,"",18| 00001850 30 2c 31 37 30 2c 39 30 30 2c 34 35 30 2c 30 2c |0,170,900,450,0,| 00001860 48 45 4c 50 21 0a 44 41 54 41 20 6e 75 6c 6c 0a |HELP!.DATA null.| 00001870 44 41 54 41 20 26 31 44 2c 60 77 66 2c 60 77 62 |DATA &1D,`wf,`wb| 00001880 2c 30 2c 2d 37 30 30 2c 31 35 30 2c 30 2c 26 33 |,0,-700,150,0,&3| 00001890 30 32 44 2c 22 22 2c 35 30 30 2c 35 35 30 2c 36 |02D,"",500,550,6| 000018a0 35 30 2c 38 35 30 2c 30 2c 44 49 53 4b 0a 44 41 |50,850,0,DISK.DA| 000018b0 54 41 20 6e 75 6c 6c 0a 44 41 54 41 20 26 30 30 |TA null.DATA &00| 000018c0 2c 60 77 66 2c 60 77 62 2c 30 2c 2d 37 34 34 2c |,`wf,`wb,0,-744,| 000018d0 31 31 31 32 2c 30 2c 26 33 30 32 44 2c 22 22 2c |1112,0,&302D,"",| 000018e0 31 36 34 2c 32 33 32 2c 31 32 37 36 2c 39 37 36 |164,232,1276,976| 000018f0 2c 30 2c 22 22 0a 44 41 54 41 20 6e 75 6c 6c 0a |,0,"".DATA null.| 00001900 44 41 54 41 20 26 31 30 2c 60 69 66 2c 60 69 62 |DATA &10,`if,`ib| 00001910 2c 30 2c 2d 34 39 34 2c 31 36 30 2c 30 2c 30 2c |,0,-494,160,0,0,| 00001920 22 22 2c 30 2c 34 34 32 2c 31 36 30 2c 39 33 36 |"",0,442,160,936| 00001930 2c 32 31 2c 22 22 0a 44 41 54 41 20 34 2c 2d 20 |,21,"".DATA 4,- | 00001940 34 30 2c 20 33 36 2c 2d 38 2c 26 33 30 32 44 2c |40, 36,-8,&302D,| 00001950 60 69 66 2c 26 38 30 2c 22 22 0a 44 41 54 41 34 |`if,&80,"".DATA4| 00001960 34 2c 2d 20 34 30 2c 20 37 36 2c 2d 38 2c 26 33 |4,- 40, 76,-8,&3| 00001970 30 32 44 2c 60 69 66 2c 26 38 31 2c 22 22 0a 44 |02D,`if,&81,"".D| 00001980 41 54 41 38 34 2c 2d 20 34 30 2c 31 31 36 2c 2d |ATA84,- 40,116,-| 00001990 38 2c 26 33 30 32 44 2c 60 69 66 2c 26 38 32 2c |8,&302D,`if,&82,| 000019a0 22 22 0a 44 41 54 41 20 31 32 34 2c 2d 20 34 30 |"".DATA 124,- 40| 000019b0 2c 31 35 36 2c 2d 38 2c 26 33 30 32 44 2c 60 69 |,156,-8,&302D,`i| 000019c0 66 2c 26 38 33 2c 22 22 0a 44 41 54 41 20 34 2c |f,&83,"".DATA 4,| 000019d0 2d 20 38 30 2c 20 33 36 2c 2d 20 34 38 2c 26 33 |- 80, 36,- 48,&3| 000019e0 30 32 44 2c 60 69 66 2c 26 38 34 2c 22 22 0a 44 |02D,`if,&84,"".D| 000019f0 41 54 41 34 34 2c 2d 20 38 30 2c 20 37 36 2c 2d |ATA44,- 80, 76,-| 00001a00 20 34 38 2c 26 33 30 32 44 2c 60 69 66 2c 26 38 | 48,&302D,`if,&8| 00001a10 35 2c 22 22 0a 44 41 54 41 38 34 2c 2d 20 38 30 |5,"".DATA84,- 80| 00001a20 2c 31 31 36 2c 2d 20 34 38 2c 26 33 30 32 44 2c |,116,- 48,&302D,| 00001a30 60 69 66 2c 26 38 36 2c 22 22 0a 44 41 54 41 20 |`if,&86,"".DATA | 00001a40 31 32 34 2c 2d 20 38 30 2c 31 35 36 2c 2d 20 34 |124,- 80,156,- 4| 00001a50 38 2c 26 33 30 32 44 2c 60 69 66 2c 26 38 37 2c |8,&302D,`if,&87,| 00001a60 22 22 0a 44 41 54 41 20 34 2c 2d 31 32 30 2c 20 |"".DATA 4,-120, | 00001a70 33 36 2c 2d 20 38 38 2c 26 33 30 32 44 2c 60 69 |36,- 88,&302D,`i| 00001a80 66 2c 26 38 38 2c 22 22 0a 44 41 54 41 34 34 2c |f,&88,"".DATA44,| 00001a90 2d 31 32 30 2c 20 37 36 2c 2d 20 38 38 2c 26 33 |-120, 76,- 88,&3| 00001aa0 30 32 44 2c 60 69 66 2c 26 38 39 2c 22 22 0a 44 |02D,`if,&89,"".D| 00001ab0 41 54 41 38 34 2c 2d 31 32 30 2c 31 31 36 2c 2d |ATA84,-120,116,-| 00001ac0 20 38 38 2c 26 33 30 32 44 2c 60 69 66 2c 26 38 | 88,&302D,`if,&8| 00001ad0 41 2c 22 22 0a 44 41 54 41 20 31 32 34 2c 2d 31 |A,"".DATA 124,-1| 00001ae0 32 30 2c 31 35 36 2c 2d 20 38 38 2c 26 33 30 32 |20,156,- 88,&302| 00001af0 44 2c 60 69 66 2c 26 38 42 2c 22 22 0a 44 41 54 |D,`if,&8B,"".DAT| 00001b00 41 20 34 2c 2d 31 36 30 2c 20 33 36 2c 2d 31 32 |A 4,-160, 36,-12| 00001b10 38 2c 26 33 30 32 44 2c 60 69 66 2c 26 38 43 2c |8,&302D,`if,&8C,| 00001b20 22 22 0a 44 41 54 41 34 34 2c 2d 31 36 30 2c 20 |"".DATA44,-160, | 00001b30 37 36 2c 2d 31 32 38 2c 26 33 30 32 44 2c 60 69 |76,-128,&302D,`i| 00001b40 66 2c 26 38 44 2c 22 22 0a 44 41 54 41 38 34 2c |f,&8D,"".DATA84,| 00001b50 2d 31 36 30 2c 31 31 36 2c 2d 31 32 38 2c 26 33 |-160,116,-128,&3| 00001b60 30 32 44 2c 60 69 66 2c 26 38 45 2c 22 22 0a 44 |02D,`if,&8E,"".D| 00001b70 41 54 41 20 31 32 34 2c 2d 31 36 30 2c 31 35 36 |ATA 124,-160,156| 00001b80 2c 2d 31 32 38 2c 26 33 30 32 44 2c 60 69 66 2c |,-128,&302D,`if,| 00001b90 26 38 46 2c 22 22 0a 44 41 54 41 20 34 2c 2d 33 |&8F,"".DATA 4,-3| 00001ba0 38 30 2c 20 36 38 2c 2d 33 30 38 2c 26 33 30 33 |80, 68,-308,&303| 00001bb0 45 2c 60 69 66 2c 60 69 62 2c 22 65 63 66 30 22 |E,`if,`ib,"ecf0"| 00001bc0 0a 44 41 54 41 39 32 2c 2d 33 38 30 2c 31 35 32 |.DATA92,-380,152| 00001bd0 2c 2d 33 30 38 2c 26 33 30 33 45 2c 60 69 66 2c |,-308,&303E,`if,| 00001be0 60 69 62 2c 22 65 63 66 31 22 0a 44 41 54 41 20 |`ib,"ecf1".DATA | 00001bf0 34 2c 2d 34 36 30 2c 20 36 38 2c 2d 33 38 38 2c |4,-460, 68,-388,| 00001c00 26 33 30 33 45 2c 60 69 66 2c 60 69 62 2c 22 65 |&303E,`if,`ib,"e| 00001c10 63 66 32 22 0a 44 41 54 41 39 32 2c 2d 34 36 30 |cf2".DATA92,-460| 00001c20 2c 31 35 32 2c 2d 33 38 38 2c 26 33 30 33 45 2c |,152,-388,&303E,| 00001c30 60 69 66 2c 60 69 62 2c 22 65 63 66 33 22 0a 44 |`if,`ib,"ecf3".D| 00001c40 41 54 41 20 34 30 2c 2d 32 34 38 2c 31 31 30 2c |ATA 40,-248,110,| 00001c50 2d 31 37 32 2c 26 33 30 33 45 2c 60 69 66 2c 26 |-172,&303E,`if,&| 00001c60 38 30 2c 22 63 75 72 63 6f 6c 22 0a 44 41 54 41 |80,"curcol".DATA| 00001c70 20 6e 75 6c 6c 0a 44 41 54 41 20 26 31 2c 60 77 | null.DATA &1,`w| 00001c80 66 2c 60 77 62 2c 30 2c 2d 34 30 30 2c 35 30 30 |f,`wb,0,-400,500| 00001c90 2c 30 2c 26 33 30 32 44 2c 22 22 2c 32 35 30 2c |,0,&302D,"",250,| 00001ca0 33 33 30 2c 37 35 30 2c 37 33 30 2c 31 2c 50 61 |330,750,730,1,Pa| 00001cb0 6c 65 74 74 65 0a 44 41 54 41 20 30 2c 2d 34 30 |lette.DATA 0,-40| 00001cc0 30 2c 35 30 30 2c 30 2c 26 33 30 30 30 2c 60 69 |0,500,0,&3000,`i| 00001cd0 66 2c 60 69 62 2c 22 22 0a 44 41 54 41 20 6e 75 |f,`ib,"".DATA nu| 00001ce0 6c 6c 0a 44 41 54 41 20 26 31 31 2c 60 77 66 2c |ll.DATA &11,`wf,| 00001cf0 60 77 62 2c 30 2c 2d 32 39 32 2c 33 30 36 2c 30 |`wb,0,-292,306,0| 00001d00 2c 26 33 30 32 44 2c 22 22 2c 31 35 30 2c 34 30 |,&302D,"",150,40| 00001d10 30 2c 34 35 36 2c 36 39 32 2c 36 34 2c 50 61 74 |0,456,692,64,Pat| 00001d20 74 65 72 6e 0a 44 41 54 41 20 32 2c 2d 33 36 2c |tern.DATA 2,-36,| 00001d30 20 33 38 2c 2d 34 2c 26 33 30 32 39 2c 37 2c 26 | 38,-4,&3029,7,&| 00001d40 38 30 2c 22 22 0a 44 41 54 41 34 30 2c 2d 33 36 |80,"".DATA40,-36| 00001d50 2c 20 37 36 2c 2d 34 2c 26 33 30 32 39 2c 37 2c |, 76,-4,&3029,7,| 00001d60 26 38 30 2c 22 22 0a 44 41 54 41 37 38 2c 2d 33 |&80,"".DATA78,-3| 00001d70 36 2c 31 31 34 2c 2d 34 2c 26 33 30 32 39 2c 37 |6,114,-4,&3029,7| 00001d80 2c 26 38 30 2c 22 22 0a 44 41 54 41 20 31 31 36 |,&80,"".DATA 116| 00001d90 2c 2d 33 36 2c 31 35 32 2c 2d 34 2c 26 33 30 32 |,-36,152,-4,&302| 00001da0 39 2c 37 2c 26 38 30 2c 22 22 0a 44 41 54 41 20 |9,7,&80,"".DATA | 00001db0 31 35 34 2c 2d 33 36 2c 31 39 30 2c 2d 34 2c 26 |154,-36,190,-4,&| 00001dc0 33 30 32 39 2c 37 2c 26 38 30 2c 22 22 0a 44 41 |3029,7,&80,"".DA| 00001dd0 54 41 20 31 39 32 2c 2d 33 36 2c 32 32 38 2c 2d |TA 192,-36,228,-| 00001de0 34 2c 26 33 30 32 39 2c 37 2c 26 38 30 2c 22 22 |4,&3029,7,&80,""| 00001df0 0a 44 41 54 41 20 32 33 30 2c 2d 33 36 2c 32 36 |.DATA 230,-36,26| 00001e00 36 2c 2d 34 2c 26 33 30 32 39 2c 37 2c 26 38 30 |6,-4,&3029,7,&80| 00001e10 2c 22 22 0a 44 41 54 41 20 32 36 38 2c 2d 33 36 |,"".DATA 268,-36| 00001e20 2c 33 30 34 2c 2d 34 2c 26 33 30 32 39 2c 37 2c |,304,-4,&3029,7,| 00001e30 26 38 30 2c 22 22 0a 44 41 54 41 20 32 2c 2d 20 |&80,"".DATA 2,- | 00001e40 37 32 2c 20 33 38 2c 2d 20 34 30 2c 26 33 30 32 |72, 38,- 40,&302| 00001e50 39 2c 37 2c 26 38 30 2c 22 22 0a 44 41 54 41 34 |9,7,&80,"".DATA4| 00001e60 30 2c 2d 20 37 32 2c 20 37 36 2c 2d 20 34 30 2c |0,- 72, 76,- 40,| 00001e70 26 33 30 32 39 2c 37 2c 26 38 30 2c 22 22 0a 44 |&3029,7,&80,"".D| 00001e80 41 54 41 37 38 2c 2d 20 37 32 2c 31 31 34 2c 2d |ATA78,- 72,114,-| 00001e90 20 34 30 2c 26 33 30 32 39 2c 37 2c 26 38 30 2c | 40,&3029,7,&80,| 00001ea0 22 22 0a 44 41 54 41 20 31 31 36 2c 2d 20 37 32 |"".DATA 116,- 72| 00001eb0 2c 31 35 32 2c 2d 20 34 30 2c 26 33 30 32 39 2c |,152,- 40,&3029,| 00001ec0 37 2c 26 38 30 2c 22 22 0a 44 41 54 41 20 31 35 |7,&80,"".DATA 15| 00001ed0 34 2c 2d 20 37 32 2c 31 39 30 2c 2d 20 34 30 2c |4,- 72,190,- 40,| 00001ee0 26 33 30 32 39 2c 37 2c 26 38 30 2c 22 22 0a 44 |&3029,7,&80,"".D| 00001ef0 41 54 41 20 31 39 32 2c 2d 20 37 32 2c 32 32 38 |ATA 192,- 72,228| 00001f00 2c 2d 20 34 30 2c 26 33 30 32 39 2c 37 2c 26 38 |,- 40,&3029,7,&8| 00001f10 30 2c 22 22 0a 44 41 54 41 20 32 33 30 2c 2d 20 |0,"".DATA 230,- | 00001f20 37 32 2c 32 36 36 2c 2d 20 34 30 2c 26 33 30 32 |72,266,- 40,&302| 00001f30 39 2c 37 2c 26 38 30 2c 22 22 0a 44 41 54 41 20 |9,7,&80,"".DATA | 00001f40 32 36 38 2c 2d 20 37 32 2c 33 30 34 2c 2d 20 34 |268,- 72,304,- 4| 00001f50 30 2c 26 33 30 32 39 2c 37 2c 26 38 30 2c 22 22 |0,&3029,7,&80,""| 00001f60 0a 44 41 54 41 20 32 2c 2d 31 30 38 2c 20 33 38 |.DATA 2,-108, 38| 00001f70 2c 2d 20 37 36 2c 26 33 30 32 39 2c 37 2c 26 38 |,- 76,&3029,7,&8| 00001f80 30 2c 22 22 0a 44 41 54 41 34 30 2c 2d 31 30 38 |0,"".DATA40,-108| 00001f90 2c 20 37 36 2c 2d 20 37 36 2c 26 33 30 32 39 2c |, 76,- 76,&3029,| 00001fa0 37 2c 26 38 30 2c 22 22 0a 44 41 54 41 37 38 2c |7,&80,"".DATA78,| 00001fb0 2d 31 30 38 2c 31 31 34 2c 2d 20 37 36 2c 26 33 |-108,114,- 76,&3| 00001fc0 30 32 39 2c 37 2c 26 38 30 2c 22 22 0a 44 41 54 |029,7,&80,"".DAT| 00001fd0 41 20 31 31 36 2c 2d 31 30 38 2c 31 35 32 2c 2d |A 116,-108,152,-| 00001fe0 20 37 36 2c 26 33 30 32 39 2c 37 2c 26 38 30 2c | 76,&3029,7,&80,| 00001ff0 22 22 0a 44 41 54 41 20 31 35 34 2c 2d 31 30 38 |"".DATA 154,-108| 00002000 2c 31 39 30 2c 2d 20 37 36 2c 26 33 30 32 39 2c |,190,- 76,&3029,| 00002010 37 2c 26 38 30 2c 22 22 0a 44 41 54 41 20 31 39 |7,&80,"".DATA 19| 00002020 32 2c 2d 31 30 38 2c 32 32 38 2c 2d 20 37 36 2c |2,-108,228,- 76,| 00002030 26 33 30 32 39 2c 37 2c 26 38 30 2c 22 22 0a 44 |&3029,7,&80,"".D| 00002040 41 54 41 20 32 33 30 2c 2d 31 30 38 2c 32 36 36 |ATA 230,-108,266| 00002050 2c 2d 20 37 36 2c 26 33 30 32 39 2c 37 2c 26 38 |,- 76,&3029,7,&8| 00002060 30 2c 22 22 0a 44 41 54 41 20 32 36 38 2c 2d 31 |0,"".DATA 268,-1| 00002070 30 38 2c 33 30 34 2c 2d 20 37 36 2c 26 33 30 32 |08,304,- 76,&302| 00002080 39 2c 37 2c 26 38 30 2c 22 22 0a 44 41 54 41 20 |9,7,&80,"".DATA | 00002090 32 2c 2d 31 34 34 2c 20 33 38 2c 2d 31 31 32 2c |2,-144, 38,-112,| 000020a0 26 33 30 32 39 2c 37 2c 26 38 30 2c 22 22 0a 44 |&3029,7,&80,"".D| 000020b0 41 54 41 34 30 2c 2d 31 34 34 2c 20 37 36 2c 2d |ATA40,-144, 76,-| 000020c0 31 31 32 2c 26 33 30 32 39 2c 37 2c 26 38 30 2c |112,&3029,7,&80,| 000020d0 22 22 0a 44 41 54 41 37 38 2c 2d 31 34 34 2c 31 |"".DATA78,-144,1| 000020e0 31 34 2c 2d 31 31 32 2c 26 33 30 32 39 2c 37 2c |14,-112,&3029,7,| 000020f0 26 38 30 2c 22 22 0a 44 41 54 41 20 31 31 36 2c |&80,"".DATA 116,| 00002100 2d 31 34 34 2c 31 35 32 2c 2d 31 31 32 2c 26 33 |-144,152,-112,&3| 00002110 30 32 39 2c 37 2c 26 38 30 2c 22 22 0a 44 41 54 |029,7,&80,"".DAT| 00002120 41 20 31 35 34 2c 2d 31 34 34 2c 31 39 30 2c 2d |A 154,-144,190,-| 00002130 31 31 32 2c 26 33 30 32 39 2c 37 2c 26 38 30 2c |112,&3029,7,&80,| 00002140 22 22 0a 44 41 54 41 20 31 39 32 2c 2d 31 34 34 |"".DATA 192,-144| 00002150 2c 32 32 38 2c 2d 31 31 32 2c 26 33 30 32 39 2c |,228,-112,&3029,| 00002160 37 2c 26 38 30 2c 22 22 0a 44 41 54 41 20 32 33 |7,&80,"".DATA 23| 00002170 30 2c 2d 31 34 34 2c 32 36 36 2c 2d 31 31 32 2c |0,-144,266,-112,| 00002180 26 33 30 32 39 2c 37 2c 26 38 30 2c 22 22 0a 44 |&3029,7,&80,"".D| 00002190 41 54 41 20 32 36 38 2c 2d 31 34 34 2c 33 30 34 |ATA 268,-144,304| 000021a0 2c 2d 31 31 32 2c 26 33 30 32 39 2c 37 2c 26 38 |,-112,&3029,7,&8| 000021b0 30 2c 22 22 0a 44 41 54 41 20 32 2c 2d 31 38 30 |0,"".DATA 2,-180| 000021c0 2c 20 33 38 2c 2d 31 34 38 2c 26 33 30 32 39 2c |, 38,-148,&3029,| 000021d0 37 2c 26 38 30 2c 22 22 0a 44 41 54 41 34 30 2c |7,&80,"".DATA40,| 000021e0 2d 31 38 30 2c 20 37 36 2c 2d 31 34 38 2c 26 33 |-180, 76,-148,&3| 000021f0 30 32 39 2c 37 2c 26 38 30 2c 22 22 0a 44 41 54 |029,7,&80,"".DAT| 00002200 41 37 38 2c 2d 31 38 30 2c 31 31 34 2c 2d 31 34 |A78,-180,114,-14| 00002210 38 2c 26 33 30 32 39 2c 37 2c 26 38 30 2c 22 22 |8,&3029,7,&80,""| 00002220 0a 44 41 54 41 20 31 31 36 2c 2d 31 38 30 2c 31 |.DATA 116,-180,1| 00002230 35 32 2c 2d 31 34 38 2c 26 33 30 32 39 2c 37 2c |52,-148,&3029,7,| 00002240 26 38 30 2c 22 22 0a 44 41 54 41 20 31 35 34 2c |&80,"".DATA 154,| 00002250 2d 31 38 30 2c 31 39 30 2c 2d 31 34 38 2c 26 33 |-180,190,-148,&3| 00002260 30 32 39 2c 37 2c 26 38 30 2c 22 22 0a 44 41 54 |029,7,&80,"".DAT| 00002270 41 20 31 39 32 2c 2d 31 38 30 2c 32 32 38 2c 2d |A 192,-180,228,-| 00002280 31 34 38 2c 26 33 30 32 39 2c 37 2c 26 38 30 2c |148,&3029,7,&80,| 00002290 22 22 0a 44 41 54 41 20 32 33 30 2c 2d 31 38 30 |"".DATA 230,-180| 000022a0 2c 32 36 36 2c 2d 31 34 38 2c 26 33 30 32 39 2c |,266,-148,&3029,| 000022b0 37 2c 26 38 30 2c 22 22 0a 44 41 54 41 20 32 36 |7,&80,"".DATA 26| 000022c0 38 2c 2d 31 38 30 2c 33 30 34 2c 2d 31 34 38 2c |8,-180,304,-148,| 000022d0 26 33 30 32 39 2c 37 2c 26 38 30 2c 22 22 0a 44 |&3029,7,&80,"".D| 000022e0 41 54 41 20 32 2c 2d 32 31 36 2c 20 33 38 2c 2d |ATA 2,-216, 38,-| 000022f0 31 38 34 2c 26 33 30 32 39 2c 37 2c 26 38 30 2c |184,&3029,7,&80,| 00002300 22 22 0a 44 41 54 41 34 30 2c 2d 32 31 36 2c 20 |"".DATA40,-216, | 00002310 37 36 2c 2d 31 38 34 2c 26 33 30 32 39 2c 37 2c |76,-184,&3029,7,| 00002320 26 38 30 2c 22 22 0a 44 41 54 41 37 38 2c 2d 32 |&80,"".DATA78,-2| 00002330 31 36 2c 31 31 34 2c 2d 31 38 34 2c 26 33 30 32 |16,114,-184,&302| 00002340 39 2c 37 2c 26 38 30 2c 22 22 0a 44 41 54 41 20 |9,7,&80,"".DATA | 00002350 31 31 36 2c 2d 32 31 36 2c 31 35 32 2c 2d 31 38 |116,-216,152,-18| 00002360 34 2c 26 33 30 32 39 2c 37 2c 26 38 30 2c 22 22 |4,&3029,7,&80,""| 00002370 0a 44 41 54 41 20 31 35 34 2c 2d 32 31 36 2c 31 |.DATA 154,-216,1| 00002380 39 30 2c 2d 31 38 34 2c 26 33 30 32 39 2c 37 2c |90,-184,&3029,7,| 00002390 26 38 30 2c 22 22 0a 44 41 54 41 20 31 39 32 2c |&80,"".DATA 192,| 000023a0 2d 32 31 36 2c 32 32 38 2c 2d 31 38 34 2c 26 33 |-216,228,-184,&3| 000023b0 30 32 39 2c 37 2c 26 38 30 2c 22 22 0a 44 41 54 |029,7,&80,"".DAT| 000023c0 41 20 32 33 30 2c 2d 32 31 36 2c 32 36 36 2c 2d |A 230,-216,266,-| 000023d0 31 38 34 2c 26 33 30 32 39 2c 37 2c 26 38 30 2c |184,&3029,7,&80,| 000023e0 22 22 0a 44 41 54 41 20 32 36 38 2c 2d 32 31 36 |"".DATA 268,-216| 000023f0 2c 33 30 34 2c 2d 31 38 34 2c 26 33 30 32 39 2c |,304,-184,&3029,| 00002400 37 2c 26 38 30 2c 22 22 0a 44 41 54 41 20 32 2c |7,&80,"".DATA 2,| 00002410 2d 32 35 32 2c 20 33 38 2c 2d 32 32 30 2c 26 33 |-252, 38,-220,&3| 00002420 30 32 39 2c 37 2c 26 38 30 2c 22 22 0a 44 41 54 |029,7,&80,"".DAT| 00002430 41 34 30 2c 2d 32 35 32 2c 20 37 36 2c 2d 32 32 |A40,-252, 76,-22| 00002440 30 2c 26 33 30 32 39 2c 37 2c 26 38 30 2c 22 22 |0,&3029,7,&80,""| 00002450 0a 44 41 54 41 37 38 2c 2d 32 35 32 2c 31 31 34 |.DATA78,-252,114| 00002460 2c 2d 32 32 30 2c 26 33 30 32 39 2c 37 2c 26 38 |,-220,&3029,7,&8| 00002470 30 2c 22 22 0a 44 41 54 41 20 31 31 36 2c 2d 32 |0,"".DATA 116,-2| 00002480 35 32 2c 31 35 32 2c 2d 32 32 30 2c 26 33 30 32 |52,152,-220,&302| 00002490 39 2c 37 2c 26 38 30 2c 22 22 0a 44 41 54 41 20 |9,7,&80,"".DATA | 000024a0 31 35 34 2c 2d 32 35 32 2c 31 39 30 2c 2d 32 32 |154,-252,190,-22| 000024b0 30 2c 26 33 30 32 39 2c 37 2c 26 38 30 2c 22 22 |0,&3029,7,&80,""| 000024c0 0a 44 41 54 41 20 31 39 32 2c 2d 32 35 32 2c 32 |.DATA 192,-252,2| 000024d0 32 38 2c 2d 32 32 30 2c 26 33 30 32 39 2c 37 2c |28,-220,&3029,7,| 000024e0 26 38 30 2c 22 22 0a 44 41 54 41 20 32 33 30 2c |&80,"".DATA 230,| 000024f0 2d 32 35 32 2c 32 36 36 2c 2d 32 32 30 2c 26 33 |-252,266,-220,&3| 00002500 30 32 39 2c 37 2c 26 38 30 2c 22 22 0a 44 41 54 |029,7,&80,"".DAT| 00002510 41 20 32 36 38 2c 2d 32 35 32 2c 33 30 34 2c 2d |A 268,-252,304,-| 00002520 32 32 30 2c 26 33 30 32 39 2c 37 2c 26 38 30 2c |220,&3029,7,&80,| 00002530 22 22 0a 44 41 54 41 20 32 2c 2d 32 38 38 2c 20 |"".DATA 2,-288, | 00002540 33 38 2c 2d 32 35 36 2c 26 33 30 32 39 2c 37 2c |38,-256,&3029,7,| 00002550 26 38 30 2c 22 22 0a 44 41 54 41 34 30 2c 2d 32 |&80,"".DATA40,-2| 00002560 38 38 2c 20 37 36 2c 2d 32 35 36 2c 26 33 30 32 |88, 76,-256,&302| 00002570 39 2c 37 2c 26 38 30 2c 22 22 0a 44 41 54 41 37 |9,7,&80,"".DATA7| 00002580 38 2c 2d 32 38 38 2c 31 31 34 2c 2d 32 35 36 2c |8,-288,114,-256,| 00002590 26 33 30 32 39 2c 37 2c 26 38 30 2c 22 22 0a 44 |&3029,7,&80,"".D| 000025a0 41 54 41 20 31 31 36 2c 2d 32 38 38 2c 31 35 32 |ATA 116,-288,152| 000025b0 2c 2d 32 35 36 2c 26 33 30 32 39 2c 37 2c 26 38 |,-256,&3029,7,&8| 000025c0 30 2c 22 22 0a 44 41 54 41 20 31 35 34 2c 2d 32 |0,"".DATA 154,-2| 000025d0 38 38 2c 31 39 30 2c 2d 32 35 36 2c 26 33 30 32 |88,190,-256,&302| 000025e0 39 2c 37 2c 26 38 30 2c 22 22 0a 44 41 54 41 20 |9,7,&80,"".DATA | 000025f0 31 39 32 2c 2d 32 38 38 2c 32 32 38 2c 2d 32 35 |192,-288,228,-25| 00002600 36 2c 26 33 30 32 39 2c 37 2c 26 38 30 2c 22 22 |6,&3029,7,&80,""| 00002610 0a 44 41 54 41 20 32 33 30 2c 2d 32 38 38 2c 32 |.DATA 230,-288,2| 00002620 36 36 2c 2d 32 35 36 2c 26 33 30 32 39 2c 37 2c |66,-256,&3029,7,| 00002630 26 38 30 2c 22 22 0a 44 41 54 41 20 32 36 38 2c |&80,"".DATA 268,| 00002640 2d 32 38 38 2c 33 30 34 2c 2d 32 35 36 2c 26 33 |-288,304,-256,&3| 00002650 30 32 39 2c 37 2c 26 38 30 2c 22 22 0a 44 41 54 |029,7,&80,"".DAT| 00002660 41 20 6e 75 6c 6c 0a 44 41 54 41 20 26 31 31 2c |A null.DATA &11,| 00002670 60 77 66 2c 60 77 62 2c 30 2c 2d 31 39 32 2c 31 |`wf,`wb,0,-192,1| 00002680 39 32 2c 30 2c 26 33 30 32 44 2c 22 22 2c 36 30 |92,0,&302D,"",60| 00002690 30 2c 34 30 30 2c 37 39 32 2c 35 39 32 2c 31 32 |0,400,792,592,12| 000026a0 2c 42 72 75 73 68 65 73 0a 44 41 54 41 30 2c 2d |,Brushes.DATA0,-| 000026b0 20 36 34 2c 20 34 38 2c 20 30 2c 26 33 30 32 44 | 64, 48, 0,&302D| 000026c0 2c 60 69 66 2c 26 38 38 2c 22 90 22 0a 44 41 54 |,`if,&88,".".DAT| 000026d0 41 20 34 38 2c 2d 20 36 34 2c 20 39 36 2c 20 30 |A 48,- 64, 96, 0| 000026e0 2c 26 33 30 32 44 2c 60 69 66 2c 60 69 62 2c 22 |,&302D,`if,`ib,"| 000026f0 f4 22 0a 44 41 54 41 20 39 36 2c 2d 20 36 34 2c |.".DATA 96,- 64,| 00002700 20 31 34 34 2c 20 30 2c 26 33 30 32 44 2c 60 69 | 144, 0,&302D,`i| 00002710 66 2c 60 69 62 2c 22 f5 22 0a 44 41 54 41 20 31 |f,`ib,".".DATA 1| 00002720 34 34 2c 2d 20 36 34 2c 31 39 32 2c 20 30 2c 26 |44,- 64,192, 0,&| 00002730 33 30 32 44 2c 60 69 66 2c 60 69 62 2c 22 f6 22 |302D,`if,`ib,"."| 00002740 0a 44 41 54 41 30 2c 2d 31 32 38 2c 20 34 38 2c |.DATA0,-128, 48,| 00002750 2d 20 36 34 2c 26 33 30 32 44 2c 60 69 66 2c 60 |- 64,&302D,`if,`| 00002760 69 62 2c 22 f7 22 0a 44 41 54 41 20 34 38 2c 2d |ib,".".DATA 48,-| 00002770 31 32 38 2c 20 39 36 2c 2d 20 36 34 2c 26 33 30 |128, 96,- 64,&30| 00002780 32 44 2c 60 69 66 2c 60 69 62 2c 22 f8 22 0a 44 |2D,`if,`ib,".".D| 00002790 41 54 41 20 39 36 2c 2d 31 32 38 2c 20 31 34 34 |ATA 96,-128, 144| 000027a0 2c 2d 20 36 34 2c 26 33 30 32 44 2c 60 69 66 2c |,- 64,&302D,`if,| 000027b0 60 69 62 2c 22 f9 22 0a 44 41 54 41 20 31 34 34 |`ib,".".DATA 144| 000027c0 2c 2d 31 32 38 2c 31 39 32 2c 2d 20 36 34 2c 26 |,-128,192,- 64,&| 000027d0 33 30 32 44 2c 60 69 66 2c 60 69 62 2c 22 fa 22 |302D,`if,`ib,"."| 000027e0 0a 44 41 54 41 30 2c 2d 31 39 32 2c 20 34 38 2c |.DATA0,-192, 48,| 000027f0 2d 31 32 38 2c 26 33 30 32 44 2c 60 69 66 2c 60 |-128,&302D,`if,`| 00002800 69 62 2c 22 fb 22 0a 44 41 54 41 20 34 38 2c 2d |ib,".".DATA 48,-| 00002810 31 39 32 2c 20 39 36 2c 2d 31 32 38 2c 26 33 30 |192, 96,-128,&30| 00002820 32 44 2c 60 69 66 2c 60 69 62 2c 22 20 22 0a 44 |2D,`if,`ib," ".D| 00002830 41 54 41 20 39 36 2c 2d 31 39 32 2c 20 31 34 34 |ATA 96,-192, 144| 00002840 2c 2d 31 32 38 2c 26 33 30 32 44 2c 60 69 66 2c |,-128,&302D,`if,| 00002850 60 69 62 2c 22 fd 22 0a 44 41 54 41 20 31 34 34 |`ib,".".DATA 144| 00002860 2c 2d 31 39 32 2c 31 39 32 2c 2d 31 32 38 2c 26 |,-192,192,-128,&| 00002870 33 30 32 44 2c 60 69 66 2c 60 69 62 2c 22 2d 22 |302D,`if,`ib,"-"| 00002880 0a 44 41 54 41 20 6e 75 6c 6c 0a 44 41 54 41 20 |.DATA null.DATA | 00002890 26 31 31 2c 60 77 66 2c 60 77 62 2c 30 2c 2d 31 |&11,`wf,`wb,0,-1| 000028a0 30 30 2c 32 35 30 2c 30 2c 26 46 30 32 44 2c 22 |00,250,0,&F02D,"| 000028b0 22 2c 39 30 30 2c 33 35 30 2c 31 31 35 30 2c 34 |",900,350,1150,4| 000028c0 35 30 2c 30 2c 22 44 49 53 4b 20 53 41 56 45 22 |50,0,"DISK SAVE"| 000028d0 0a 44 41 54 41 20 6e 75 6c 6c 0a 44 41 54 41 20 |.DATA null.DATA | 000028e0 26 34 31 2c 60 77 66 2c 60 77 62 2c 30 2c 2d 37 |&41,`wf,`wb,0,-7| 000028f0 30 30 2c 31 32 38 30 2c 30 2c 26 33 30 32 44 2c |00,1280,0,&302D,| 00002900 22 22 2c 31 30 30 2c 35 30 2c 31 30 30 30 2c 33 |"",100,50,1000,3| 00002910 30 30 2c 30 2c 22 45 52 52 4f 52 22 0a 44 41 54 |00,0,"ERROR".DAT| 00002920 41 20 22 22 0a 3a 0a 60 6d 61 78 5f 77 69 6e 64 |A "".:.`max_wind| 00002930 6f 77 20 3d 20 77 69 6e 64 25 0a 45 4e 44 50 52 |ow = wind%.ENDPR| 00002940 4f 43 0a 44 45 46 20 46 4e 63 72 65 61 74 65 57 |OC.DEF FNcreateW| 00002950 28 63 78 30 25 2c 63 79 30 25 2c 63 78 31 25 2c |(cx0%,cy0%,cx1%,| 00002960 63 79 31 25 2c 73 63 78 25 2c 73 63 79 25 2c 66 |cy1%,scx%,scy%,f| 00002970 6c 61 67 73 25 2c 66 63 25 2c 62 63 25 2c 73 78 |lags%,fc%,bc%,sx| 00002980 30 25 2c 73 79 30 25 2c 73 78 31 25 2c 73 79 31 |0%,sy0%,sx1%,sy1| 00002990 25 2c 69 63 6f 6e 66 25 2c 69 63 6f 6e 24 2c 74 |%,iconf%,icon$,t| 000029a0 69 74 6c 65 24 2c 6e 69 63 6f 6e 73 25 29 0a 21 |itle$,nicons%).!| 000029b0 77 69 6d 70 3d 63 78 30 25 3a 77 69 6d 70 21 34 |wimp=cx0%:wimp!4| 000029c0 3d 63 79 30 25 3a 77 69 6d 70 21 38 3d 63 78 31 |=cy0%:wimp!8=cx1| 000029d0 25 3a 77 69 6d 70 21 31 32 3d 63 79 31 25 3a 77 |%:wimp!12=cy1%:w| 000029e0 69 6d 70 21 31 36 3d 73 63 78 25 3a 77 69 6d 70 |imp!16=scx%:wimp| 000029f0 21 32 30 3d 73 63 79 25 0a 77 69 6d 70 21 32 34 |!20=scy%.wimp!24| 00002a00 3d 2d 31 3a 77 69 6d 70 21 32 38 3d 66 6c 61 67 |=-1:wimp!28=flag| 00002a10 73 25 0a 77 69 6d 70 3f 33 32 3d 60 74 66 3a 77 |s%.wimp?32=`tf:w| 00002a20 69 6d 70 3f 33 33 3d 60 74 62 3a 77 69 6d 70 3f |imp?33=`tb:wimp?| 00002a30 33 34 3d 66 63 25 3a 77 69 6d 70 3f 33 35 3d 62 |34=fc%:wimp?35=b| 00002a40 63 25 0a 77 69 6d 70 3f 33 36 3d 60 73 66 3a 77 |c%.wimp?36=`sf:w| 00002a50 69 6d 70 3f 33 37 3d 60 73 62 3a 77 69 6d 70 3f |imp?37=`sb:wimp?| 00002a60 33 38 3d 60 77 62 3a 77 69 6d 70 3f 33 39 3d 30 |38=`wb:wimp?39=0| 00002a70 0a 77 69 6d 70 21 34 30 3d 73 78 30 25 3a 77 69 |.wimp!40=sx0%:wi| 00002a80 6d 70 21 34 34 3d 73 79 30 25 3a 77 69 6d 70 21 |mp!44=sy0%:wimp!| 00002a90 34 38 3d 73 78 31 25 3a 77 69 6d 70 21 35 32 3d |48=sx1%:wimp!52=| 00002aa0 73 79 31 25 0a 77 69 6d 70 21 35 36 3d 69 63 6f |sy1%.wimp!56=ico| 00002ab0 6e 66 25 3a 77 69 6d 70 21 36 30 3d 30 3a 77 69 |nf%:wimp!60=0:wi| 00002ac0 6d 70 21 36 34 3d 30 3a 77 69 6d 70 21 36 38 3d |mp!64=0:wimp!68=| 00002ad0 30 3a 52 45 4d 20 44 41 4e 47 45 52 20 24 28 77 |0:REM DANGER $(w| 00002ae0 69 6d 70 2b 36 30 29 3d 4c 45 46 54 24 28 69 63 |imp+60)=LEFT$(ic| 00002af0 6f 6e 24 2c 31 31 29 0a 24 28 77 69 6d 70 2b 37 |on$,11).$(wimp+7| 00002b00 32 29 3d 4c 45 46 54 24 28 74 69 74 6c 65 24 2c |2)=LEFT$(title$,| 00002b10 31 31 29 0a 77 69 6d 70 21 38 34 3d 6e 69 63 6f |11).wimp!84=nico| 00002b20 6e 73 25 0a 4c 4f 43 41 4c 49 25 2c 78 30 25 2c |ns%.LOCALI%,x0%,| 00002b30 79 30 25 2c 78 31 25 2c 79 31 25 2c 66 25 2c 64 |y0%,x1%,y1%,f%,d| 00002b40 61 74 61 24 3a 49 25 3d 77 69 6d 70 2b 38 38 0a |ata$:I%=wimp+88.| 00002b50 57 48 49 4c 45 20 6e 69 63 6f 6e 73 25 3e 30 0a |WHILE nicons%>0.| 00002b60 52 45 41 44 20 78 30 25 2c 79 30 25 2c 78 31 25 |READ x0%,y0%,x1%| 00002b70 2c 79 31 25 2c 66 25 2c 66 63 25 2c 62 63 25 2c |,y1%,f%,fc%,bc%,| 00002b80 64 61 74 61 24 0a 49 25 21 30 3d 78 30 25 3a 49 |data$.I%!0=x0%:I| 00002b90 25 21 34 3d 79 30 25 3a 49 25 21 38 3d 78 31 25 |%!4=y0%:I%!8=x1%| 00002ba0 3a 49 25 21 31 32 3d 79 31 25 3a 49 25 21 31 36 |:I%!12=y1%:I%!16| 00002bb0 3d 66 25 3a 24 28 49 25 2b 32 30 29 3d 64 61 74 |=f%:$(I%+20)=dat| 00002bc0 61 24 0a 49 25 3f 31 39 3d 66 63 25 2b 28 62 63 |a$.I%?19=fc%+(bc| 00002bd0 25 41 4e 44 31 35 29 2a 31 36 0a 49 25 3d 49 25 |%AND15)*16.I%=I%| 00002be0 2b 33 32 3a 6e 69 63 6f 6e 73 25 3d 6e 69 63 6f |+32:nicons%=nico| 00002bf0 6e 73 25 2d 31 0a 45 4e 44 57 48 49 4c 45 0a 53 |ns%-1.ENDWHILE.S| 00002c00 59 53 20 63 72 65 61 74 65 5f 77 69 6e 64 6f 77 |YS create_window| 00002c10 2c 30 2c 77 69 6d 70 20 54 4f 20 68 61 6e 64 6c |,0,wimp TO handl| 00002c20 65 25 0a 3d 68 61 6e 64 6c 65 25 0a 44 45 46 20 |e%.=handle%.DEF | 00002c30 50 52 4f 43 6f 70 65 6e 5f 77 69 6e 64 6f 77 28 |PROCopen_window(| 00002c40 68 61 6e 64 6c 65 25 2c 78 30 25 2c 79 30 25 2c |handle%,x0%,y0%,| 00002c50 78 31 25 2c 79 31 25 2c 73 63 78 25 2c 73 63 79 |x1%,y1%,scx%,scy| 00002c60 25 2c 62 68 61 6e 64 6c 65 25 29 0a 49 46 68 61 |%,bhandle%).IFha| 00002c70 6e 64 6c 65 25 3d 2d 31 20 4f 52 20 62 68 61 6e |ndle%=-1 OR bhan| 00002c80 64 6c 65 25 3c 2d 31 20 54 48 45 4e 45 4e 44 50 |dle%<-1 THENENDP| 00002c90 52 4f 43 0a 77 69 6d 70 21 30 3d 68 61 6e 64 6c |ROC.wimp!0=handl| 00002ca0 65 25 3a 77 69 6d 70 21 32 38 3d 62 68 61 6e 64 |e%:wimp!28=bhand| 00002cb0 6c 65 25 0a 77 69 6d 70 21 34 3d 78 30 25 3a 77 |le%.wimp!4=x0%:w| 00002cc0 69 6d 70 21 38 3d 79 30 25 3a 77 69 6d 70 21 31 |imp!8=y0%:wimp!1| 00002cd0 32 3d 78 31 25 3a 77 69 6d 70 21 31 36 3d 79 31 |2=x1%:wimp!16=y1| 00002ce0 25 0a 77 69 6d 70 21 32 30 3d 73 63 78 25 3a 77 |%.wimp!20=scx%:w| 00002cf0 69 6d 70 21 32 34 3d 73 63 79 25 0a 53 59 53 20 |imp!24=scy%.SYS | 00002d00 6f 70 65 6e 5f 77 69 6e 64 6f 77 2c 30 2c 77 69 |open_window,0,wi| 00002d10 6d 70 0a 49 46 20 68 61 6e 64 6c 65 25 20 3d 20 |mp.IF handle% = | 00002d20 77 69 6e 64 6f 77 73 28 31 29 20 54 48 45 4e 0a |windows(1) THEN.| 00002d30 50 52 4f 43 65 63 66 28 30 29 0a 50 52 4f 43 65 |PROCecf(0).PROCe| 00002d40 63 66 28 31 29 0a 50 52 4f 43 65 63 66 28 32 29 |cf(1).PROCecf(2)| 00002d50 0a 50 52 4f 43 65 63 66 28 33 29 0a 68 61 6e 64 |.PROCecf(3).hand| 00002d60 6c 65 25 20 3d 20 30 0a 50 52 4f 43 6f 70 65 6e |le% = 0.PROCopen| 00002d70 5f 77 69 6e 64 6f 77 28 77 69 6e 64 6f 77 73 28 |_window(windows(| 00002d80 36 29 2c 34 2c 34 34 32 2c 31 36 30 2c 39 33 36 |6),4,442,160,936| 00002d90 2c 30 2c 30 2c 2d 31 29 0a 50 52 4f 43 6f 70 65 |,0,0,-1).PROCope| 00002da0 6e 5f 77 69 6e 64 6f 77 28 77 69 6e 64 6f 77 73 |n_window(windows| 00002db0 28 35 29 2c 31 36 34 2c 32 33 32 2c 31 32 37 36 |(5),164,232,1276| 00002dc0 2c 39 37 36 2c 30 2c 30 2c 2d 31 29 0a 50 52 4f |,976,0,0,-1).PRO| 00002dd0 43 75 70 64 5f 65 63 66 0a 56 44 55 32 34 2c 31 |Cupd_ecf.VDU24,1| 00002de0 36 32 3b 32 33 32 3b 31 32 37 34 3b 39 37 32 3b |62;232;1274;972;| 00002df0 0a 47 43 4f 4c 31 33 35 0a 43 4c 47 0a 53 59 53 |.GCOL135.CLG.SYS| 00002e00 20 26 32 45 2c 32 35 36 2b 31 36 2c 73 70 74 5f | &2E,256+16,spt_| 00002e10 61 72 65 61 2c 22 48 44 53 22 2c 30 2c 31 36 32 |area,"HDS",0,162| 00002e20 2c 32 33 32 2c 31 32 37 34 2c 39 37 32 0a 56 44 |,232,1274,972.VD| 00002e30 55 20 32 36 0a 53 59 53 20 73 63 72 65 65 6e 5f |U 26.SYS screen_| 00002e40 72 65 64 72 61 77 2c 2d 31 2c 30 2c 30 2c 31 32 |redraw,-1,0,0,12| 00002e50 37 39 2c 31 30 32 33 0a 45 4e 44 49 46 0a 45 4e |79,1023.ENDIF.EN| 00002e60 44 50 52 4f 43 0a 44 45 46 20 46 4e 70 6f 6c 6c |DPROC.DEF FNpoll| 00002e70 28 6d 61 73 6b 29 0a 21 77 69 6d 70 20 3d 20 6d |(mask).!wimp = m| 00002e80 61 73 6b 0a 53 59 53 20 70 6f 6c 6c 5f 77 69 6d |ask.SYS poll_wim| 00002e90 70 2c 30 2c 77 69 6d 70 20 54 4f 20 68 61 6e 64 |p,0,wimp TO hand| 00002ea0 6c 65 25 0a 3d 68 61 6e 64 6c 65 25 0a 0a 44 45 |le%.=handle%..DE| 00002eb0 46 20 50 52 4f 43 72 65 64 72 61 77 5f 77 69 6e |F PROCredraw_win| 00002ec0 64 6f 77 28 68 61 6e 64 6c 65 25 29 0a 21 77 69 |dow(handle%).!wi| 00002ed0 6d 70 20 3d 20 68 61 6e 64 6c 65 25 0a 53 59 53 |mp = handle%.SYS| 00002ee0 20 72 65 64 72 61 77 5f 77 69 6e 64 6f 77 2c 30 | redraw_window,0| 00002ef0 2c 77 69 6d 70 20 54 4f 20 6d 6f 72 65 25 0a 49 |,wimp TO more%.I| 00002f00 46 20 68 61 6e 64 6c 65 25 3d 77 69 6e 64 6f 77 |F handle%=window| 00002f10 73 28 31 31 29 20 54 48 45 4e 0a 20 20 57 48 49 |s(11) THEN. WHI| 00002f20 4c 45 20 6d 6f 72 65 25 0a 20 20 20 20 4d 4f 56 |LE more%. MOV| 00002f30 45 77 69 6d 70 21 34 2b 31 36 2c 77 69 6d 70 21 |Ewimp!4+16,wimp!| 00002f40 31 36 2d 34 30 3a 20 50 52 49 4e 54 20 52 45 50 |16-40: PRINT REP| 00002f50 4f 52 54 24 0a 20 20 20 20 53 59 53 20 67 65 74 |ORT$. SYS get| 00002f60 5f 72 65 63 74 61 6e 67 6c 65 2c 30 2c 77 69 6d |_rectangle,0,wim| 00002f70 70 20 54 4f 20 6d 6f 72 65 25 0a 20 20 45 4e 44 |p TO more%. END| 00002f80 57 48 49 4c 45 0a 45 4c 53 45 20 3a 20 52 45 4d |WHILE.ELSE : REM| 00002f90 20 50 4d 46 20 42 4f 44 47 45 20 2d 20 6d 75 73 | PMF BODGE - mus| 00002fa0 74 20 63 6f 6d 70 6c 65 74 65 20 74 68 65 20 70 |t complete the p| 00002fb0 72 6f 74 6f 63 6f 6c 20 21 0a 20 20 57 48 49 4c |rotocol !. WHIL| 00002fc0 45 20 6d 6f 72 65 25 0a 20 20 20 20 53 59 53 20 |E more%. SYS | 00002fd0 67 65 74 5f 72 65 63 74 61 6e 67 6c 65 2c 30 2c |get_rectangle,0,| 00002fe0 77 69 6d 70 20 54 4f 20 6d 6f 72 65 25 0a 20 20 |wimp TO more%. | 00002ff0 45 4e 44 57 48 49 4c 45 0a 45 4e 44 49 46 0a 45 |ENDWHILE.ENDIF.E| 00003000 4e 44 50 52 4f 43 0a 0a 44 45 46 20 50 52 4f 43 |NDPROC..DEF PROC| 00003010 63 6c 6f 73 65 5f 77 69 6e 64 6f 77 28 68 61 6e |close_window(han| 00003020 64 6c 65 25 29 0a 4c 4f 43 41 4c 20 61 25 0a 49 |dle%).LOCAL a%.I| 00003030 46 20 68 61 6e 64 6c 65 25 3d 77 69 6e 64 6f 77 |F handle%=window| 00003040 73 28 31 31 29 20 4d 4f 55 53 45 20 52 45 43 54 |s(11) MOUSE RECT| 00003050 41 4e 47 4c 45 30 2c 30 2c 31 32 37 39 2c 31 30 |ANGLE0,0,1279,10| 00003060 32 33 0a 21 77 69 6d 70 20 3d 20 68 61 6e 64 6c |23.!wimp = handl| 00003070 65 25 0a 53 59 53 20 63 6c 6f 73 65 5f 77 69 6e |e%.SYS close_win| 00003080 64 6f 77 2c 30 2c 77 69 6d 70 0a 49 46 20 68 61 |dow,0,wimp.IF ha| 00003090 6e 64 6c 65 25 20 3d 20 77 69 6e 64 6f 77 73 28 |ndle% = windows(| 000030a0 31 29 20 54 48 45 4e 0a 46 4f 52 20 61 25 20 3d |1) THEN.FOR a% =| 000030b0 20 31 20 54 4f 20 60 6d 61 78 5f 77 69 6e 64 6f | 1 TO `max_windo| 000030c0 77 0a 21 77 69 6d 70 20 3d 20 77 69 6e 64 6f 77 |w.!wimp = window| 000030d0 73 28 61 25 29 0a 53 59 53 20 63 6c 6f 73 65 5f |s(a%).SYS close_| 000030e0 77 69 6e 64 6f 77 2c 30 2c 77 69 6d 70 0a 4e 45 |window,0,wimp.NE| 000030f0 58 54 20 61 25 0a 4f 53 43 4c 49 28 22 44 65 73 |XT a%.OSCLI("Des| 00003100 6b 54 6f 70 22 29 0a 45 4e 44 0a 45 4e 44 49 46 |kTop").END.ENDIF| 00003110 0a 49 46 20 68 61 6e 64 6c 65 25 20 3d 20 77 69 |.IF handle% = wi| 00003120 6e 64 6f 77 73 28 38 29 20 54 48 45 4e 0a 50 52 |ndows(8) THEN.PR| 00003130 4f 43 65 63 66 28 60 70 74 72 6e 29 0a 50 52 4f |OCecf(`ptrn).PRO| 00003140 43 75 70 64 5f 65 63 66 0a 45 4e 44 49 46 0a 45 |Cupd_ecf.ENDIF.E| 00003150 4e 44 50 52 4f 43 0a 44 45 46 20 50 52 4f 43 67 |NDPROC.DEF PROCg| 00003160 65 74 5f 77 69 6e 64 6f 77 5f 73 74 61 74 65 28 |et_window_state(| 00003170 68 61 6e 64 6c 65 25 29 0a 21 77 69 6d 70 3d 68 |handle%).!wimp=h| 00003180 61 6e 64 6c 65 25 0a 53 59 53 20 67 65 74 5f 77 |andle%.SYS get_w| 00003190 69 6e 64 6f 77 5f 73 74 61 74 65 2c 30 2c 77 69 |indow_state,0,wi| 000031a0 6d 70 0a 45 4e 44 50 52 4f 43 0a 44 45 46 20 50 |mp.ENDPROC.DEF P| 000031b0 52 4f 43 67 65 74 5f 70 6f 69 6e 74 65 72 5f 69 |ROCget_pointer_i| 000031c0 6e 66 6f 0a 21 77 69 6d 70 3d 60 78 25 0a 77 69 |nfo.!wimp=`x%.wi| 000031d0 6d 70 21 34 20 3d 20 60 79 25 0a 77 69 6d 70 21 |mp!4 = `y%.wimp!| 000031e0 38 20 3d 20 60 62 25 0a 77 69 6d 70 21 31 32 20 |8 = `b%.wimp!12 | 000031f0 3d 20 60 68 61 6e 64 6c 65 25 0a 77 69 6d 70 21 |= `handle%.wimp!| 00003200 31 36 20 3d 20 60 69 63 6f 6e 25 0a 45 4e 44 50 |16 = `icon%.ENDP| 00003210 52 4f 43 0a 44 45 46 20 50 52 4f 43 64 65 6c 65 |ROC.DEF PROCdele| 00003220 74 65 5f 69 63 6f 6e 28 68 61 6e 64 6c 65 25 2c |te_icon(handle%,| 00003230 6e 25 29 0a 21 77 69 6d 70 20 3d 20 68 61 6e 64 |n%).!wimp = hand| 00003240 6c 65 25 0a 77 69 6d 70 21 34 20 3d 20 6e 25 0a |le%.wimp!4 = n%.| 00003250 53 59 53 20 64 65 6c 65 74 65 5f 69 63 6f 6e 2c |SYS delete_icon,| 00003260 30 2c 77 69 6d 70 0a 45 4e 44 50 52 4f 43 0a 44 |0,wimp.ENDPROC.D| 00003270 45 46 20 50 52 4f 43 73 65 74 5f 69 63 6f 6e 5f |EF PROCset_icon_| 00003280 73 74 61 74 65 28 68 61 6e 64 6c 65 25 2c 69 68 |state(handle%,ih| 00003290 25 2c 66 25 2c 69 66 25 2c 69 62 25 2c 6d 25 29 |%,f%,if%,ib%,m%)| 000032a0 0a 21 77 69 6d 70 20 3d 20 68 61 6e 64 6c 65 25 |.!wimp = handle%| 000032b0 0a 77 69 6d 70 21 34 20 3d 20 69 68 25 0a 77 69 |.wimp!4 = ih%.wi| 000032c0 6d 70 21 38 20 3d 20 66 25 0a 77 69 6d 70 3f 31 |mp!8 = f%.wimp?1| 000032d0 31 20 3d 20 69 66 25 2b 28 69 62 25 20 41 4e 44 |1 = if%+(ib% AND| 000032e0 20 31 35 29 2a 31 36 0a 77 69 6d 70 21 31 32 20 | 15)*16.wimp!12 | 000032f0 3d 20 6d 25 0a 53 59 53 20 73 65 74 5f 69 63 6f |= m%.SYS set_ico| 00003300 6e 5f 73 74 61 74 65 2c 30 2c 77 69 6d 70 0a 45 |n_state,0,wimp.E| 00003310 4e 44 50 52 4f 43 0a 44 45 46 20 50 52 4f 43 67 |NDPROC.DEF PROCg| 00003320 65 74 5f 69 63 6f 6e 5f 69 6e 66 6f 28 68 61 6e |et_icon_info(han| 00003330 64 6c 65 25 2c 69 63 6f 6e 25 29 0a 21 77 69 6d |dle%,icon%).!wim| 00003340 70 3d 68 61 6e 64 6c 65 25 0a 77 69 6d 70 21 34 |p=handle%.wimp!4| 00003350 3d 69 63 6f 6e 25 0a 53 59 53 20 67 65 74 5f 69 |=icon%.SYS get_i| 00003360 63 6f 6e 5f 69 6e 66 6f 2c 30 2c 77 69 6d 70 0a |con_info,0,wimp.| 00003370 45 4e 44 50 52 4f 43 0a 44 45 46 20 50 52 4f 43 |ENDPROC.DEF PROC| 00003380 6d 6f 75 73 65 28 78 25 2c 79 25 2c 62 25 2c 68 |mouse(x%,y%,b%,h| 00003390 61 6e 64 6c 65 25 2c 69 63 6f 6e 25 2c 6f 62 25 |andle%,icon%,ob%| 000033a0 29 0a 60 62 25 20 3d 20 62 25 20 3a 20 60 78 25 |).`b% = b% : `x%| 000033b0 20 3d 20 78 25 20 3a 20 60 79 25 20 3d 20 79 25 | = x% : `y% = y%| 000033c0 20 3a 20 60 68 61 6e 64 6c 65 25 20 3d 20 68 61 | : `handle% = ha| 000033d0 6e 64 6c 65 25 20 3a 20 60 69 63 6f 6e 25 20 3d |ndle% : `icon% =| 000033e0 20 69 63 6f 6e 25 0a 49 46 20 68 61 6e 64 6c 65 | icon%.IF handle| 000033f0 25 20 3d 20 2d 31 20 54 48 45 4e 20 45 4e 44 50 |% = -1 THEN ENDP| 00003400 52 4f 43 0a 50 52 4f 43 67 65 74 5f 77 69 6e 64 |ROC.PROCget_wind| 00003410 6f 77 5f 73 74 61 74 65 28 68 61 6e 64 6c 65 25 |ow_state(handle%| 00003420 29 0a 49 46 20 28 62 25 20 41 4e 44 20 31 29 20 |).IF (b% AND 1) | 00003430 54 48 45 4e 0a 43 41 53 45 20 68 61 6e 64 6c 65 |THEN.CASE handle| 00003440 25 20 4f 46 0a 4f 54 48 45 52 57 49 53 45 20 3a |% OF.OTHERWISE :| 00003450 20 50 52 4f 43 64 72 61 67 5f 62 6f 78 28 68 61 | PROCdrag_box(ha| 00003460 6e 64 6c 65 25 2c 31 29 0a 45 4e 44 43 41 53 45 |ndle%,1).ENDCASE| 00003470 0a 45 4e 44 49 46 0a 3a 0a 49 46 20 28 62 25 20 |.ENDIF.:.IF (b% | 00003480 41 4e 44 20 32 29 20 54 48 45 4e 0a 43 41 53 45 |AND 2) THEN.CASE| 00003490 20 68 61 6e 64 6c 65 25 20 4f 46 0a 57 48 45 4e | handle% OF.WHEN| 000034a0 20 77 69 6e 64 6f 77 73 28 30 29 20 3a 20 50 52 | windows(0) : PR| 000034b0 4f 43 63 6c 6f 73 65 5f 77 69 6e 64 6f 77 28 77 |OCclose_window(w| 000034c0 69 6e 64 6f 77 73 28 31 29 29 0a 57 48 45 4e 20 |indows(1)).WHEN | 000034d0 77 69 6e 64 6f 77 73 28 31 29 20 3a 20 50 52 4f |windows(1) : PRO| 000034e0 43 6d 69 67 68 74 5f 63 6c 6f 73 65 28 69 63 6f |Cmight_close(ico| 000034f0 6e 25 29 0a 45 4e 44 43 41 53 45 0a 45 4e 44 49 |n%).ENDCASE.ENDI| 00003500 46 0a 3a 0a 49 46 20 28 62 25 20 41 4e 44 20 34 |F.:.IF (b% AND 4| 00003510 29 20 54 48 45 4e 0a 49 46 20 68 61 6e 64 6c 65 |) THEN.IF handle| 00003520 25 3c 3e 77 69 6e 64 6f 77 73 28 30 29 20 54 48 |%<>windows(0) TH| 00003530 45 4e 20 50 52 4f 43 73 63 72 6e 5f 63 6f 70 79 |EN PROCscrn_copy| 00003540 0a 43 41 53 45 20 68 61 6e 64 6c 65 25 20 4f 46 |.CASE handle% OF| 00003550 0a 57 48 45 4e 20 77 69 6e 64 6f 77 73 28 30 29 |.WHEN windows(0)| 00003560 20 3a 20 50 52 4f 43 74 65 73 74 5f 6f 70 65 6e | : PROCtest_open| 00003570 28 77 69 6e 64 6f 77 73 28 31 29 29 0a 57 48 45 |(windows(1)).WHE| 00003580 4e 20 77 69 6e 64 6f 77 73 28 31 29 20 3a 20 50 |N windows(1) : P| 00003590 52 4f 43 69 63 6f 6e 5f 6d 65 6e 75 73 0a 57 48 |ROCicon_menus.WH| 000035a0 45 4e 20 77 69 6e 64 6f 77 73 28 32 29 20 3a 20 |EN windows(2) : | 000035b0 50 52 4f 43 6d 6f 64 65 5f 66 6c 61 67 73 28 69 |PROCmode_flags(i| 000035c0 63 6f 6e 25 29 0a 57 48 45 4e 20 77 69 6e 64 6f |con%).WHEN windo| 000035d0 77 73 28 34 29 20 3a 20 50 52 4f 43 6c 6f 61 64 |ws(4) : PROCload| 000035e0 28 69 63 6f 6e 25 29 0a 57 48 45 4e 20 77 69 6e |(icon%).WHEN win| 000035f0 64 6f 77 73 28 36 29 20 3a 20 50 52 4f 43 73 65 |dows(6) : PROCse| 00003600 6c 65 63 74 5f 63 6f 6c 6f 75 72 28 69 63 6f 6e |lect_colour(icon| 00003610 25 29 0a 57 48 45 4e 20 77 69 6e 64 6f 77 73 28 |%).WHEN windows(| 00003620 37 29 20 3a 20 50 52 4f 43 70 61 6c 65 74 74 65 |7) : PROCpalette| 00003630 0a 57 48 45 4e 20 77 69 6e 64 6f 77 73 28 38 29 |.WHEN windows(8)| 00003640 20 3a 20 50 52 4f 43 70 61 74 74 5f 65 64 69 74 | : PROCpatt_edit| 00003650 28 69 63 6f 6e 25 29 0a 57 48 45 4e 20 77 69 6e |(icon%).WHEN win| 00003660 64 6f 77 73 28 39 29 20 3a 20 50 52 4f 43 73 65 |dows(9) : PROCse| 00003670 6c 65 63 74 5f 62 72 75 73 68 28 69 63 6f 6e 25 |lect_brush(icon%| 00003680 29 0a 45 4e 44 43 41 53 45 0a 45 4e 44 49 46 0a |).ENDCASE.ENDIF.| 00003690 45 4e 44 50 52 4f 43 0a 44 45 46 20 50 52 4f 43 |ENDPROC.DEF PROC| 000036a0 74 65 73 74 5f 6f 70 65 6e 28 68 61 6e 64 6c 65 |test_open(handle| 000036b0 25 29 0a 4c 4f 43 41 4c 20 62 25 2c 68 70 2c 63 |%).LOCAL b%,hp,c| 000036c0 25 0a 49 46 20 68 61 6e 64 6c 65 25 20 3d 20 77 |%.IF handle% = w| 000036d0 69 6e 64 6f 77 73 28 33 29 20 41 4e 44 20 60 66 |indows(3) AND `f| 000036e0 75 6e 63 25 20 3e 3d 20 32 20 54 48 45 4e 0a 46 |unc% >= 2 THEN.F| 000036f0 4f 52 20 62 25 20 3d 20 32 37 20 54 4f 20 30 20 |OR b% = 27 TO 0 | 00003700 53 54 45 50 20 2d 31 0a 50 52 4f 43 64 65 6c 65 |STEP -1.PROCdele| 00003710 74 65 5f 69 63 6f 6e 28 77 69 6e 64 6f 77 73 28 |te_icon(windows(| 00003720 33 29 2c 62 25 29 0a 4e 45 58 54 20 62 25 0a 68 |3),b%).NEXT b%.h| 00003730 70 20 3d 20 68 65 6c 70 28 60 63 75 72 5f 6d 65 |p = help(`cur_me| 00003740 6e 75 2c 60 66 75 6e 63 25 29 0a 46 4f 52 20 62 |nu,`func%).FOR b| 00003750 25 20 3d 20 30 20 54 4f 20 32 37 0a 53 59 53 20 |% = 0 TO 27.SYS | 00003760 63 72 65 61 74 65 5f 69 63 6f 6e 2c 30 2c 68 70 |create_icon,0,hp| 00003770 20 54 4f 20 63 25 0a 68 70 20 3d 20 68 70 20 2b | TO c%.hp = hp +| 00003780 20 33 36 0a 4e 45 58 54 20 62 25 0a 45 4e 44 49 | 36.NEXT b%.ENDI| 00003790 46 0a 50 52 4f 43 67 65 74 5f 77 69 6e 64 6f 77 |F.PROCget_window| 000037a0 5f 73 74 61 74 65 28 68 61 6e 64 6c 65 25 29 0a |_state(handle%).| 000037b0 49 46 20 77 69 6d 70 21 33 32 20 41 4e 44 20 26 |IF wimp!32 AND &| 000037c0 30 30 30 33 30 30 30 20 3c 3e 20 30 20 54 48 45 |0003000 <> 0 THE| 000037d0 4e 0a 50 52 4f 43 6f 70 65 6e 5f 77 69 6e 64 6f |N.PROCopen_windo| 000037e0 77 28 21 77 69 6d 70 2c 77 69 6d 70 21 34 2c 77 |w(!wimp,wimp!4,w| 000037f0 69 6d 70 21 38 2c 77 69 6d 70 21 31 32 2c 77 69 |imp!8,wimp!12,wi| 00003800 6d 70 21 31 36 2c 77 69 6d 70 21 32 30 2c 77 69 |mp!16,wimp!20,wi| 00003810 6d 70 21 32 34 2c 77 69 6d 70 21 32 38 29 0a 45 |mp!24,wimp!28).E| 00003820 4e 44 49 46 0a 45 4e 44 50 52 4f 43 0a 44 45 46 |NDIF.ENDPROC.DEF| 00003830 20 50 52 4f 43 6d 69 67 68 74 5f 63 6c 6f 73 65 | PROCmight_close| 00003840 28 69 63 6f 6e 25 29 0a 49 46 20 69 63 6f 6e 25 |(icon%).IF icon%| 00003850 20 3d 20 31 20 54 48 45 4e 0a 50 52 4f 43 63 6c | = 1 THEN.PROCcl| 00003860 6f 73 65 5f 77 69 6e 64 6f 77 28 77 69 6e 64 6f |ose_window(windo| 00003870 77 73 28 32 29 29 0a 45 4e 44 49 46 0a 43 41 53 |ws(2)).ENDIF.CAS| 00003880 45 20 60 63 75 72 5f 6d 65 6e 75 20 4f 46 0a 57 |E `cur_menu OF.W| 00003890 48 45 4e 20 30 20 3a 20 49 46 20 69 63 6f 6e 25 |HEN 0 : IF icon%| 000038a0 20 3d 20 60 73 75 62 5f 6d 65 6e 28 30 29 2d 31 | = `sub_men(0)-1| 000038b0 20 50 52 4f 43 63 6c 6f 73 65 5f 77 69 6e 64 6f | PROCclose_windo| 000038c0 77 28 77 69 6e 64 6f 77 73 28 33 29 29 3a 45 4c |w(windows(3)):EL| 000038d0 53 45 20 49 46 20 69 63 6f 6e 25 20 3d 20 60 73 |SE IF icon% = `s| 000038e0 75 62 5f 6d 65 6e 28 30 29 20 50 52 4f 43 63 6c |ub_men(0) PROCcl| 000038f0 6f 73 65 5f 77 69 6e 64 6f 77 28 77 69 6e 64 6f |ose_window(windo| 00003900 77 73 28 34 29 29 0a 57 48 45 4e 20 31 20 3a 20 |ws(4)).WHEN 1 : | 00003910 49 46 20 69 63 6f 6e 25 20 3d 20 60 73 75 62 5f |IF icon% = `sub_| 00003920 6d 65 6e 28 31 29 20 50 52 4f 43 63 6c 6f 73 65 |men(1) PROCclose| 00003930 5f 77 69 6e 64 6f 77 28 77 69 6e 64 6f 77 73 28 |_window(windows(| 00003940 33 29 29 0a 57 48 45 4e 20 32 20 3a 20 49 46 20 |3)).WHEN 2 : IF | 00003950 69 63 6f 6e 25 20 3d 20 60 73 75 62 5f 6d 65 6e |icon% = `sub_men| 00003960 28 32 29 20 50 52 4f 43 63 6c 6f 73 65 5f 77 69 |(2) PROCclose_wi| 00003970 6e 64 6f 77 28 77 69 6e 64 6f 77 73 28 33 29 29 |ndow(windows(3))| 00003980 0a 57 48 45 4e 20 33 20 3a 20 49 46 20 69 63 6f |.WHEN 3 : IF ico| 00003990 6e 25 20 3d 20 60 73 75 62 5f 6d 65 6e 28 33 29 |n% = `sub_men(3)| 000039a0 20 50 52 4f 43 63 6c 6f 73 65 5f 77 69 6e 64 6f | PROCclose_windo| 000039b0 77 28 77 69 6e 64 6f 77 73 28 33 29 29 0a 57 48 |w(windows(3)).WH| 000039c0 45 4e 20 34 20 3a 20 49 46 20 69 63 6f 6e 25 20 |EN 4 : IF icon% | 000039d0 3d 20 60 73 75 62 5f 6d 65 6e 28 34 29 20 50 52 |= `sub_men(4) PR| 000039e0 4f 43 63 6c 6f 73 65 5f 77 69 6e 64 6f 77 28 77 |OCclose_window(w| 000039f0 69 6e 64 6f 77 73 28 33 29 29 0a 57 48 45 4e 20 |indows(3)).WHEN | 00003a00 35 20 3a 20 49 46 20 69 63 6f 6e 25 20 3d 20 60 |5 : IF icon% = `| 00003a10 73 75 62 5f 6d 65 6e 28 35 29 20 50 52 4f 43 63 |sub_men(5) PROCc| 00003a20 6c 6f 73 65 5f 77 69 6e 64 6f 77 28 77 69 6e 64 |lose_window(wind| 00003a30 6f 77 73 28 33 29 29 0a 45 4e 44 43 41 53 45 0a |ows(3)).ENDCASE.| 00003a40 45 4e 44 50 52 4f 43 0a 44 45 46 20 50 52 4f 43 |ENDPROC.DEF PROC| 00003a50 64 72 61 67 5f 62 6f 78 28 68 61 6e 64 6c 65 25 |drag_box(handle%| 00003a60 2c 74 79 70 65 25 29 0a 21 77 69 6d 70 20 3d 20 |,type%).!wimp = | 00003a70 68 61 6e 64 6c 65 25 0a 77 69 6d 70 21 34 3d 20 |handle%.wimp!4= | 00003a80 74 79 70 65 25 0a 53 59 53 20 64 72 61 67 5f 62 |type%.SYS drag_b| 00003a90 6f 78 2c 30 2c 77 69 6d 70 0a 45 4e 44 50 52 4f |ox,0,wimp.ENDPRO| 00003aa0 43 0a 44 45 46 20 50 52 4f 43 6b 65 79 5f 62 6f |C.DEF PROCkey_bo| 00003ab0 75 6e 63 65 0a 4c 4f 43 41 4c 20 78 25 2c 79 25 |unce.LOCAL x%,y%| 00003ac0 2c 62 25 0a 52 45 50 45 41 54 0a 4d 4f 55 53 45 |,b%.REPEAT.MOUSE| 00003ad0 20 78 25 2c 79 25 2c 62 25 0a 55 4e 54 49 4c 20 | x%,y%,b%.UNTIL | 00003ae0 62 25 3c 3e 60 62 25 0a 45 4e 44 50 52 4f 43 0a |b%<>`b%.ENDPROC.| 00003af0 44 45 46 20 50 52 4f 43 73 65 74 5f 63 61 72 6f |DEF PROCset_caro| 00003b00 74 5f 70 6f 73 69 74 69 6f 6e 28 68 61 6e 64 6c |t_position(handl| 00003b10 65 25 2c 69 63 6f 6e 25 2c 78 25 2c 79 25 2c 68 |e%,icon%,x%,y%,h| 00003b20 25 2c 69 25 29 0a 53 59 53 20 73 65 74 5f 63 61 |%,i%).SYS set_ca| 00003b30 72 6f 74 5f 70 6f 73 69 74 69 6f 6e 2c 68 61 6e |rot_position,han| 00003b40 64 6c 65 25 2c 69 63 6f 6e 25 2c 78 25 2c 79 25 |dle%,icon%,x%,y%| 00003b50 2c 68 25 2c 69 25 0a 45 4e 44 50 52 4f 43 0a 44 |,h%,i%.ENDPROC.D| 00003b60 45 46 20 50 52 4f 43 64 65 66 5f 68 65 61 70 28 |EF PROCdef_heap(| 00003b70 68 61 6e 64 6c 65 25 29 0a 4c 4f 43 41 4c 20 6e |handle%).LOCAL n| 00003b80 25 2c 67 25 2c 78 30 2c 79 30 2c 78 31 2c 79 31 |%,g%,x0,y0,x1,y1| 00003b90 2c 66 25 2c 66 6f 72 25 2c 62 63 6b 25 2c 74 69 |,f%,for%,bck%,ti| 00003ba0 74 24 2c 61 0a 61 20 3d 20 30 20 3a 20 68 70 20 |t$,a.a = 0 : hp | 00003bb0 3d 20 68 65 61 70 0a 52 45 50 45 41 54 0a 52 45 |= heap.REPEAT.RE| 00003bc0 41 44 20 6e 25 20 3a 20 60 73 75 62 5f 6d 65 6e |AD n% : `sub_men| 00003bd0 28 61 29 20 3d 20 6e 25 2b 31 0a 49 46 20 6e 25 |(a) = n%+1.IF n%| 00003be0 20 3c 3e 20 30 20 54 48 45 4e 0a 68 65 61 70 28 | <> 0 THEN.heap(| 00003bf0 61 29 20 3d 20 68 70 0a 46 4f 52 20 67 25 20 3d |a) = hp.FOR g% =| 00003c00 20 31 20 54 4f 20 6e 25 0a 52 45 41 44 20 78 30 | 1 TO n%.READ x0| 00003c10 2c 79 30 2c 78 31 2c 79 31 2c 66 25 2c 66 6f 72 |,y0,x1,y1,f%,for| 00003c20 25 2c 62 63 6b 25 2c 74 69 74 24 0a 21 68 70 20 |%,bck%,tit$.!hp | 00003c30 3d 20 68 61 6e 64 6c 65 25 0a 68 70 21 34 3d 20 |= handle%.hp!4= | 00003c40 78 30 20 3a 20 68 70 21 38 3d 20 79 30 0a 68 70 |x0 : hp!8= y0.hp| 00003c50 21 31 32 20 3d 20 78 31 20 3a 20 68 70 21 31 36 |!12 = x1 : hp!16| 00003c60 20 3d 20 79 31 0a 68 70 21 32 30 20 3d 20 66 25 | = y1.hp!20 = f%| 00003c70 0a 68 70 3f 32 32 20 3d 20 66 6f 72 25 20 3a 20 |.hp?22 = for% : | 00003c80 68 70 3f 32 33 20 3d 20 62 63 6b 25 0a 24 28 68 |hp?23 = bck%.$(h| 00003c90 70 2b 32 34 29 20 3d 20 74 69 74 24 0a 68 70 20 |p+24) = tit$.hp | 00003ca0 3d 20 68 70 20 2b 20 33 36 0a 4e 45 58 54 20 67 |= hp + 36.NEXT g| 00003cb0 25 0a 45 4e 44 49 46 0a 61 20 3d 20 61 20 2b 20 |%.ENDIF.a = a + | 00003cc0 31 0a 55 4e 54 49 4c 20 6e 25 3d 30 0a 3a 0a 60 |1.UNTIL n%=0.:.`| 00003cd0 66 75 6e 63 20 3d 20 68 65 61 70 28 30 29 0a 60 |func = heap(0).`| 00003ce0 64 72 61 77 20 3d 20 68 65 61 70 28 31 29 0a 60 |draw = heap(1).`| 00003cf0 73 68 61 70 65 3d 20 68 65 61 70 28 32 29 0a 60 |shape= heap(2).`| 00003d00 63 75 72 76 65 3d 20 68 65 61 70 28 33 29 0a 60 |curve= heap(3).`| 00003d10 74 65 78 74 20 3d 20 68 65 61 70 28 34 29 0a 60 |text = heap(4).`| 00003d20 61 72 65 61 20 3d 20 68 65 61 70 28 35 29 0a 3a |area = heap(5).:| 00003d30 0a 45 4e 44 50 52 4f 43 0a 44 41 54 41 20 39 0a |.ENDPROC.DATA 9.| 00003d40 44 41 54 41 20 30 2c 2d 38 38 38 2c 31 36 30 2c |DATA 0,-888,160,| 00003d50 2d 37 34 38 2c 26 33 30 33 44 2c 60 69 66 2c 26 |-748,&303D,`if,&| 00003d60 38 38 2c 66 75 6e 63 0a 44 41 54 41 20 31 36 30 |88,func.DATA 160| 00003d70 2c 2d 38 38 38 2c 33 30 30 2c 2d 37 34 38 2c 26 |,-888,300,-748,&| 00003d80 33 30 33 44 2c 60 69 66 2c 60 69 62 2c 64 72 61 |303D,`if,`ib,dra| 00003d90 77 0a 44 41 54 41 20 33 30 30 2c 2d 38 38 38 2c |w.DATA 300,-888,| 00003da0 34 34 30 2c 2d 37 34 38 2c 26 33 30 33 44 2c 60 |440,-748,&303D,`| 00003db0 69 66 2c 60 69 62 2c 73 68 61 70 65 73 0a 44 41 |if,`ib,shapes.DA| 00003dc0 54 41 20 34 34 30 2c 2d 38 38 38 2c 35 38 30 2c |TA 440,-888,580,| 00003dd0 2d 37 34 38 2c 26 33 30 33 44 2c 60 69 66 2c 60 |-748,&303D,`if,`| 00003de0 69 62 2c 63 75 72 76 65 0a 44 41 54 41 20 35 38 |ib,curve.DATA 58| 00003df0 30 2c 2d 38 38 38 2c 37 32 30 2c 2d 37 34 38 2c |0,-888,720,-748,| 00003e00 26 33 30 33 44 2c 60 69 66 2c 60 69 62 2c 74 65 |&303D,`if,`ib,te| 00003e10 78 74 0a 44 41 54 41 20 37 32 30 2c 2d 38 38 38 |xt.DATA 720,-888| 00003e20 2c 38 36 30 2c 2d 37 34 38 2c 26 33 30 33 44 2c |,860,-748,&303D,| 00003e30 60 69 66 2c 60 69 62 2c 61 72 65 61 0a 44 41 54 |`if,`ib,area.DAT| 00003e40 41 20 38 36 30 2c 2d 38 38 38 2c 31 30 30 30 2c |A 860,-888,1000,| 00003e50 2d 37 34 38 2c 26 33 30 33 44 2c 60 69 66 2c 60 |-748,&303D,`if,`| 00003e60 69 62 2c 22 22 0a 44 41 54 41 20 31 30 30 30 2c |ib,"".DATA 1000,| 00003e70 2d 38 38 38 2c 31 31 34 30 2c 2d 37 34 38 2c 26 |-888,1140,-748,&| 00003e80 33 30 33 44 2c 60 69 66 2c 60 69 62 2c 6c 6f 61 |303D,`if,`ib,loa| 00003e90 64 0a 44 41 54 41 20 31 31 34 30 2c 2d 38 38 38 |d.DATA 1140,-888| 00003ea0 2c 31 32 38 30 2c 2d 37 34 38 2c 26 33 30 33 44 |,1280,-748,&303D| 00003eb0 2c 60 69 66 2c 60 69 62 2c 73 61 76 65 0a 44 41 |,`if,`ib,save.DA| 00003ec0 54 41 20 37 0a 44 41 54 41 20 30 2c 2d 38 38 38 |TA 7.DATA 0,-888| 00003ed0 2c 31 36 30 2c 2d 37 34 38 2c 26 33 30 33 44 2c |,160,-748,&303D,| 00003ee0 60 69 66 2c 26 38 38 2c 64 72 61 77 0a 44 41 54 |`if,&88,draw.DAT| 00003ef0 41 20 31 36 30 2c 2d 38 38 38 2c 33 32 30 2c 2d |A 160,-888,320,-| 00003f00 37 34 38 2c 26 33 30 33 44 2c 60 69 66 2c 60 69 |748,&303D,`if,`i| 00003f10 62 2c 6c 69 6e 65 0a 44 41 54 41 20 33 32 30 2c |b,line.DATA 320,| 00003f20 2d 38 38 38 2c 34 38 30 2c 2d 37 34 38 2c 26 33 |-888,480,-748,&3| 00003f30 30 33 44 2c 60 69 66 2c 60 69 62 2c 6a 6f 69 6e |03D,`if,`ib,join| 00003f40 65 64 0a 44 41 54 41 20 34 38 30 2c 2d 38 38 38 |ed.DATA 480,-888| 00003f50 2c 36 34 30 2c 2d 37 34 38 2c 26 33 30 33 44 2c |,640,-748,&303D,| 00003f60 60 69 66 2c 60 69 62 2c 72 61 64 69 69 0a 44 41 |`if,`ib,radii.DA| 00003f70 54 41 20 36 34 30 2c 2d 38 38 38 2c 38 30 30 2c |TA 640,-888,800,| 00003f80 2d 37 34 38 2c 26 33 30 33 44 2c 60 69 66 2c 60 |-748,&303D,`if,`| 00003f90 69 62 2c 62 72 75 73 68 0a 44 41 54 41 20 38 30 |ib,brush.DATA 80| 00003fa0 30 2c 2d 38 38 38 2c 31 30 30 30 2c 2d 37 34 38 |0,-888,1000,-748| 00003fb0 2c 26 33 30 33 44 2c 60 69 66 2c 60 69 62 2c 73 |,&303D,`if,`ib,s| 00003fc0 65 6c 65 63 74 0a 44 41 54 41 20 31 30 30 30 2c |elect.DATA 1000,| 00003fd0 2d 38 38 38 2c 31 32 38 30 2c 2d 37 34 38 2c 26 |-888,1280,-748,&| 00003fe0 33 30 33 44 2c 60 69 66 2c 60 69 62 2c 22 22 0a |303D,`if,`ib,"".| 00003ff0 44 41 54 41 20 36 0a 44 41 54 41 20 30 2c 2d 38 |DATA 6.DATA 0,-8| 00004000 38 38 2c 31 36 30 2c 2d 37 34 38 2c 26 33 30 33 |88,160,-748,&303| 00004010 44 2c 60 69 66 2c 26 38 38 2c 73 68 61 70 65 73 |D,`if,&88,shapes| 00004020 0a 44 41 54 41 20 31 36 30 2c 2d 38 38 38 2c 33 |.DATA 160,-888,3| 00004030 32 30 2c 2d 37 34 38 2c 26 33 30 33 44 2c 60 69 |20,-748,&303D,`i| 00004040 66 2c 60 69 62 2c 72 65 63 74 61 6e 67 6c 65 0a |f,`ib,rectangle.| 00004050 44 41 54 41 20 33 32 30 2c 2d 38 38 38 2c 34 38 |DATA 320,-888,48| 00004060 30 2c 2d 37 34 38 2c 26 33 30 33 44 2c 60 69 66 |0,-748,&303D,`if| 00004070 2c 60 69 62 2c 73 71 75 61 72 65 0a 44 41 54 41 |,`ib,square.DATA| 00004080 20 34 38 30 2c 2d 38 38 38 2c 36 34 30 2c 2d 37 | 480,-888,640,-7| 00004090 34 38 2c 26 33 30 33 44 2c 60 69 66 2c 60 69 62 |48,&303D,`if,`ib| 000040a0 2c 70 61 72 61 6c 6c 65 6c 6f 0a 44 41 54 41 20 |,parallelo.DATA | 000040b0 36 34 30 2c 2d 38 38 38 2c 38 30 30 2c 2d 37 34 |640,-888,800,-74| 000040c0 38 2c 26 33 30 33 44 2c 60 69 66 2c 60 69 62 2c |8,&303D,`if,`ib,| 000040d0 74 72 69 61 6e 67 6c 65 0a 44 41 54 41 20 38 30 |triangle.DATA 80| 000040e0 30 2c 2d 38 38 38 2c 31 32 38 30 2c 2d 37 34 38 |0,-888,1280,-748| 000040f0 2c 26 33 30 33 44 2c 60 69 66 2c 60 69 62 2c 22 |,&303D,`if,`ib,"| 00004100 22 0a 44 41 54 41 20 37 0a 44 41 54 41 20 30 2c |".DATA 7.DATA 0,| 00004110 2d 38 38 38 2c 31 36 30 2c 2d 37 34 38 2c 26 33 |-888,160,-748,&3| 00004120 30 33 44 2c 60 69 66 2c 26 38 38 2c 63 75 72 76 |03D,`if,&88,curv| 00004130 65 0a 44 41 54 41 20 31 36 30 2c 2d 38 38 38 2c |e.DATA 160,-888,| 00004140 33 32 30 2c 2d 37 34 38 2c 26 33 30 33 44 2c 60 |320,-748,&303D,`| 00004150 69 66 2c 60 69 62 2c 63 69 72 63 6c 65 0a 44 41 |if,`ib,circle.DA| 00004160 54 41 20 33 32 30 2c 2d 38 38 38 2c 34 38 30 2c |TA 320,-888,480,| 00004170 2d 37 34 38 2c 26 33 30 33 44 2c 60 69 66 2c 60 |-748,&303D,`if,`| 00004180 69 62 2c 65 6c 6c 69 70 73 65 0a 44 41 54 41 20 |ib,ellipse.DATA | 00004190 34 38 30 2c 2d 38 38 38 2c 36 34 30 2c 2d 37 34 |480,-888,640,-74| 000041a0 38 2c 26 33 30 33 44 2c 60 69 66 2c 60 69 62 2c |8,&303D,`if,`ib,| 000041b0 73 65 67 6d 65 6e 74 0a 44 41 54 41 20 36 34 30 |segment.DATA 640| 000041c0 2c 2d 38 38 38 2c 38 30 30 2c 2d 37 34 38 2c 26 |,-888,800,-748,&| 000041d0 33 30 33 44 2c 60 69 66 2c 60 69 62 2c 61 72 63 |303D,`if,`ib,arc| 000041e0 0a 44 41 54 41 20 38 30 30 2c 2d 38 38 38 2c 31 |.DATA 800,-888,1| 000041f0 30 30 30 2c 2d 37 34 38 2c 26 33 30 33 44 2c 60 |000,-748,&303D,`| 00004200 69 66 2c 60 69 62 2c 73 65 63 74 6f 72 0a 44 41 |if,`ib,sector.DA| 00004210 54 41 20 31 30 30 30 2c 2d 38 38 38 2c 31 32 38 |TA 1000,-888,128| 00004220 30 2c 2d 37 34 38 2c 26 33 30 33 44 2c 60 69 66 |0,-748,&303D,`if| 00004230 2c 60 69 62 2c 22 22 0a 44 41 54 41 20 33 0a 44 |,`ib,"".DATA 3.D| 00004240 41 54 41 20 30 2c 2d 38 38 38 2c 31 36 30 2c 2d |ATA 0,-888,160,-| 00004250 37 34 38 2c 26 33 30 33 44 2c 60 69 66 2c 26 38 |748,&303D,`if,&8| 00004260 38 2c 74 65 78 74 0a 44 41 54 41 20 31 36 30 2c |8,text.DATA 160,| 00004270 2d 38 38 38 2c 33 32 30 2c 2d 37 34 38 2c 26 33 |-888,320,-748,&3| 00004280 30 33 44 2c 60 69 66 2c 60 69 62 2c 74 65 78 74 |03D,`if,`ib,text| 00004290 40 63 75 72 0a 44 41 54 41 20 33 32 30 2c 2d 38 |@cur.DATA 320,-8| 000042a0 38 38 2c 31 32 38 30 2c 2d 37 34 38 2c 26 33 30 |88,1280,-748,&30| 000042b0 33 44 2c 60 69 66 2c 60 69 62 2c 22 22 0a 44 41 |3D,`if,`ib,"".DA| 000042c0 54 41 20 37 0a 44 41 54 41 20 30 2c 2d 38 38 38 |TA 7.DATA 0,-888| 000042d0 2c 31 36 30 2c 2d 37 34 38 2c 26 33 30 33 44 2c |,160,-748,&303D,| 000042e0 60 69 66 2c 26 38 38 2c 61 72 65 61 0a 44 41 54 |`if,&88,area.DAT| 000042f0 41 20 31 36 30 2c 2d 38 38 38 2c 33 32 30 2c 2d |A 160,-888,320,-| 00004300 37 34 38 2c 26 33 30 33 44 2c 60 69 66 2c 60 69 |748,&303D,`if,`i| 00004310 62 2c 63 6f 70 79 0a 44 41 54 41 20 33 32 30 2c |b,copy.DATA 320,| 00004320 2d 38 38 38 2c 34 38 30 2c 2d 37 34 38 2c 26 33 |-888,480,-748,&3| 00004330 30 33 44 2c 60 69 66 2c 60 69 62 2c 6d 6f 76 65 |03D,`if,`ib,move| 00004340 0a 44 41 54 41 20 34 38 30 2c 2d 38 38 38 2c 36 |.DATA 480,-888,6| 00004350 34 30 2c 2d 37 34 38 2c 26 33 30 33 44 2c 60 69 |40,-748,&303D,`i| 00004360 66 2c 60 69 62 2c 63 6c 65 61 72 0a 44 41 54 41 |f,`ib,clear.DATA| 00004370 20 36 34 30 2c 2d 38 38 38 2c 38 30 30 2c 2d 37 | 640,-888,800,-7| 00004380 34 38 2c 26 33 30 33 44 2c 60 69 66 2c 60 69 62 |48,&303D,`if,`ib| 00004390 2c 70 61 74 74 65 72 6e 0a 44 41 54 41 20 38 30 |,pattern.DATA 80| 000043a0 30 2c 2d 38 38 38 2c 31 30 30 30 2c 2d 37 34 38 |0,-888,1000,-748| 000043b0 2c 26 33 30 33 44 2c 60 69 66 2c 60 69 62 2c 66 |,&303D,`if,`ib,f| 000043c0 69 6c 6c 0a 44 41 54 41 20 31 30 30 30 2c 2d 38 |ill.DATA 1000,-8| 000043d0 38 38 2c 31 32 38 30 2c 2d 37 34 38 2c 26 33 30 |88,1280,-748,&30| 000043e0 33 44 2c 60 69 66 2c 60 69 62 2c 22 22 0a 44 41 |3D,`if,`ib,"".DA| 000043f0 54 41 20 30 0a 44 45 46 20 50 52 4f 43 69 63 6f |TA 0.DEF PROCico| 00004400 6e 5f 6d 65 6e 75 73 0a 50 52 4f 43 67 65 74 5f |n_menus.PROCget_| 00004410 70 6f 69 6e 74 65 72 5f 69 6e 66 6f 0a 49 46 20 |pointer_info.IF | 00004420 77 69 6d 70 21 31 32 20 3d 20 2d 31 20 4f 52 20 |wimp!12 = -1 OR | 00004430 77 69 6d 70 21 31 32 20 3c 3e 20 77 69 6e 64 6f |wimp!12 <> windo| 00004440 77 73 28 31 29 20 54 48 45 4e 0a 45 4e 44 50 52 |ws(1) THEN.ENDPR| 00004450 4f 43 0a 45 4e 44 49 46 0a 49 46 20 77 69 6d 70 |OC.ENDIF.IF wimp| 00004460 21 31 36 20 3c 20 32 20 54 48 45 4e 0a 49 46 20 |!16 < 2 THEN.IF | 00004470 77 69 6d 70 21 31 36 20 3d 20 31 20 50 52 4f 43 |wimp!16 = 1 PROC| 00004480 74 65 73 74 5f 6f 70 65 6e 28 77 69 6e 64 6f 77 |test_open(window| 00004490 73 28 32 29 29 0a 49 46 20 77 69 6d 70 21 31 36 |s(2)).IF wimp!16| 000044a0 20 3d 20 30 20 50 52 4f 43 74 65 73 74 5f 6f 70 | = 0 PROCtest_op| 000044b0 65 6e 28 77 69 6e 64 6f 77 73 28 37 29 29 3a 50 |en(windows(7)):P| 000044c0 52 4f 43 70 61 6c 65 74 74 65 0a 45 4e 44 50 52 |ROCpalette.ENDPR| 000044d0 4f 43 0a 45 4e 44 49 46 0a 49 46 20 60 63 75 72 |OC.ENDIF.IF `cur| 000044e0 5f 6d 65 6e 75 20 3d 20 30 20 54 48 45 4e 0a 43 |_menu = 0 THEN.C| 000044f0 41 53 45 20 77 69 6d 70 21 31 36 20 4f 46 0a 57 |ASE wimp!16 OF.W| 00004500 48 45 4e 20 33 20 3a 20 50 52 4f 43 64 72 61 77 |HEN 3 : PROCdraw| 00004510 5f 6d 65 6e 75 3a 20 60 66 75 6e 63 25 20 3d 20 |_menu: `func% = | 00004520 33 3a 50 52 4f 43 75 70 64 61 74 65 5f 68 65 6c |3:PROCupdate_hel| 00004530 70 0a 57 48 45 4e 20 34 20 3a 20 50 52 4f 43 73 |p.WHEN 4 : PROCs| 00004540 68 61 70 65 5f 6d 65 6e 75 20 3a 20 60 66 75 6e |hape_menu : `fun| 00004550 63 25 20 3d 20 33 3a 50 52 4f 43 75 70 64 61 74 |c% = 3:PROCupdat| 00004560 65 5f 68 65 6c 70 0a 57 48 45 4e 20 35 20 3a 20 |e_help.WHEN 5 : | 00004570 50 52 4f 43 63 75 72 76 65 5f 6d 65 6e 75 20 3a |PROCcurve_menu :| 00004580 20 60 66 75 6e 63 25 20 3d 20 33 3a 50 52 4f 43 | `func% = 3:PROC| 00004590 75 70 64 61 74 65 5f 68 65 6c 70 0a 57 48 45 4e |update_help.WHEN| 000045a0 20 36 20 3a 20 50 52 4f 43 74 65 78 74 5f 6d 65 | 6 : PROCtext_me| 000045b0 6e 75 3a 20 60 66 75 6e 63 25 20 3d 20 33 3a 50 |nu: `func% = 3:P| 000045c0 52 4f 43 75 70 64 61 74 65 5f 68 65 6c 70 0a 57 |ROCupdate_help.W| 000045d0 48 45 4e 20 37 20 3a 20 50 52 4f 43 61 72 65 61 |HEN 7 : PROCarea| 000045e0 5f 6d 65 6e 75 3a 20 60 66 75 6e 63 25 20 3d 20 |_menu: `func% = | 000045f0 33 3a 50 52 4f 43 75 70 64 61 74 65 5f 68 65 6c |3:PROCupdate_hel| 00004600 70 0a 57 48 45 4e 20 38 20 3a 20 52 45 4d 20 50 |p.WHEN 8 : REM P| 00004610 52 4f 43 74 65 73 74 5f 6f 70 65 6e 28 77 69 6e |ROCtest_open(win| 00004620 64 6f 77 73 28 33 29 29 20 52 43 4d 0a 57 48 45 |dows(3)) RCM.WHE| 00004630 4e 20 39 20 3a 20 50 52 4f 43 67 65 74 5f 64 69 |N 9 : PROCget_di| 00004640 72 0a 57 48 45 4e 20 31 30 3a 20 49 46 20 46 4e |r.WHEN 10: IF FN| 00004650 6f 6e 5f 74 6f 70 20 54 48 45 4e 0a 50 52 4f 43 |on_top THEN.PROC| 00004660 74 65 73 74 5f 6f 70 65 6e 28 77 69 6e 64 6f 77 |test_open(window| 00004670 73 28 31 30 29 29 0a 50 52 4f 43 73 65 74 5f 63 |s(10)).PROCset_c| 00004680 61 72 6f 74 5f 70 6f 73 69 74 69 6f 6e 28 77 69 |arot_position(wi| 00004690 6e 64 6f 77 73 28 31 30 29 2c 30 2c 30 2c 30 2c |ndows(10),0,0,0,| 000046a0 2d 31 2c 30 29 0a 45 4e 44 49 46 0a 45 4e 44 43 |-1,0).ENDIF.ENDC| 000046b0 41 53 45 0a 50 52 4f 43 73 68 6f 77 5f 69 63 6f |ASE.PROCshow_ico| 000046c0 6e 73 28 60 66 75 6e 63 25 29 3a 45 4e 44 50 52 |ns(`func%):ENDPR| 000046d0 4f 43 0a 45 4e 44 49 46 0a 49 46 20 60 63 75 72 |OC.ENDIF.IF `cur| 000046e0 5f 6d 65 6e 75 20 3d 20 31 20 54 48 45 4e 0a 43 |_menu = 1 THEN.C| 000046f0 41 53 45 20 77 69 6d 70 21 31 36 20 4f 46 0a 57 |ASE wimp!16 OF.W| 00004700 48 45 4e 20 32 20 3a 20 50 52 4f 43 66 75 6e 63 |HEN 2 : PROCfunc| 00004710 5f 6d 65 6e 75 0a 57 48 45 4e 20 33 20 3a 20 60 |_menu.WHEN 3 : `| 00004720 66 75 6e 63 25 20 3d 20 33 3a 60 73 74 61 74 65 |func% = 3:`state| 00004730 25 3d 30 3a 50 52 4f 43 75 70 64 61 74 65 5f 68 |%=0:PROCupdate_h| 00004740 65 6c 70 0a 57 48 45 4e 20 34 20 3a 20 60 66 75 |elp.WHEN 4 : `fu| 00004750 6e 63 25 20 3d 20 34 3a 60 73 74 61 74 65 25 3d |nc% = 4:`state%=| 00004760 30 3a 50 52 4f 43 75 70 64 61 74 65 5f 68 65 6c |0:PROCupdate_hel| 00004770 70 0a 57 48 45 4e 20 35 20 3a 20 60 66 75 6e 63 |p.WHEN 5 : `func| 00004780 25 20 3d 20 35 3a 60 73 74 61 74 65 25 3d 30 3a |% = 5:`state%=0:| 00004790 50 52 4f 43 75 70 64 61 74 65 5f 68 65 6c 70 0a |PROCupdate_help.| 000047a0 57 48 45 4e 20 36 20 3a 20 60 66 75 6e 63 25 20 |WHEN 6 : `func% | 000047b0 3d 20 36 3a 60 73 74 61 74 65 25 3d 30 3a 50 52 |= 6:`state%=0:PR| 000047c0 4f 43 75 70 64 61 74 65 5f 68 65 6c 70 0a 57 48 |OCupdate_help.WH| 000047d0 45 4e 20 37 20 3a 20 60 66 75 6e 63 25 20 3d 20 |EN 7 : `func% = | 000047e0 37 3a 60 73 74 61 74 65 25 3d 30 3a 50 52 4f 43 |7:`state%=0:PROC| 000047f0 75 70 64 61 74 65 5f 68 65 6c 70 0a 50 52 4f 43 |update_help.PROC| 00004800 74 65 73 74 5f 6f 70 65 6e 28 77 69 6e 64 6f 77 |test_open(window| 00004810 73 28 39 29 29 0a 57 48 45 4e 20 60 73 75 62 5f |s(9)).WHEN `sub_| 00004820 6d 65 6e 28 31 29 20 3a 20 52 45 4d 20 50 52 4f |men(1) : REM PRO| 00004830 43 74 65 73 74 5f 6f 70 65 6e 28 77 69 6e 64 6f |Ctest_open(windo| 00004840 77 73 28 33 29 29 20 52 43 4d 0a 45 4e 44 43 41 |ws(3)) RCM.ENDCA| 00004850 53 45 0a 50 52 4f 43 73 68 6f 77 5f 69 63 6f 6e |SE.PROCshow_icon| 00004860 73 28 60 66 75 6e 63 25 29 0a 45 4e 44 49 46 0a |s(`func%).ENDIF.| 00004870 49 46 20 60 63 75 72 5f 6d 65 6e 75 20 3d 20 32 |IF `cur_menu = 2| 00004880 20 54 48 45 4e 0a 43 41 53 45 20 77 69 6d 70 21 | THEN.CASE wimp!| 00004890 31 36 20 4f 46 0a 57 48 45 4e 20 32 20 3a 20 50 |16 OF.WHEN 2 : P| 000048a0 52 4f 43 66 75 6e 63 5f 6d 65 6e 75 0a 57 48 45 |ROCfunc_menu.WHE| 000048b0 4e 20 33 20 3a 20 60 66 75 6e 63 25 20 3d 20 33 |N 3 : `func% = 3| 000048c0 3a 60 73 74 61 74 65 25 3d 30 3a 50 52 4f 43 75 |:`state%=0:PROCu| 000048d0 70 64 61 74 65 5f 68 65 6c 70 0a 57 48 45 4e 20 |pdate_help.WHEN | 000048e0 34 20 3a 20 60 66 75 6e 63 25 20 3d 20 34 3a 60 |4 : `func% = 4:`| 000048f0 73 74 61 74 65 25 3d 30 3a 50 52 4f 43 75 70 64 |state%=0:PROCupd| 00004900 61 74 65 5f 68 65 6c 70 0a 57 48 45 4e 20 35 20 |ate_help.WHEN 5 | 00004910 3a 20 60 66 75 6e 63 25 20 3d 20 35 3a 60 73 74 |: `func% = 5:`st| 00004920 61 74 65 25 3d 30 3a 50 52 4f 43 75 70 64 61 74 |ate%=0:PROCupdat| 00004930 65 5f 68 65 6c 70 0a 57 48 45 4e 20 36 20 3a 20 |e_help.WHEN 6 : | 00004940 60 66 75 6e 63 25 20 3d 20 36 3a 60 73 74 61 74 |`func% = 6:`stat| 00004950 65 25 3d 30 3a 50 52 4f 43 75 70 64 61 74 65 5f |e%=0:PROCupdate_| 00004960 68 65 6c 70 0a 57 48 45 4e 20 60 73 75 62 5f 6d |help.WHEN `sub_m| 00004970 65 6e 28 32 29 20 3a 20 52 45 4d 20 50 52 4f 43 |en(2) : REM PROC| 00004980 74 65 73 74 5f 6f 70 65 6e 28 77 69 6e 64 6f 77 |test_open(window| 00004990 73 28 33 29 29 20 52 43 4d 0a 45 4e 44 43 41 53 |s(3)) RCM.ENDCAS| 000049a0 45 0a 50 52 4f 43 73 68 6f 77 5f 69 63 6f 6e 73 |E.PROCshow_icons| 000049b0 28 60 66 75 6e 63 25 29 0a 45 4e 44 49 46 0a 49 |(`func%).ENDIF.I| 000049c0 46 20 60 63 75 72 5f 6d 65 6e 75 20 3d 20 33 20 |F `cur_menu = 3 | 000049d0 54 48 45 4e 0a 43 41 53 45 20 77 69 6d 70 21 31 |THEN.CASE wimp!1| 000049e0 36 20 4f 46 0a 57 48 45 4e 20 32 20 3a 20 50 52 |6 OF.WHEN 2 : PR| 000049f0 4f 43 66 75 6e 63 5f 6d 65 6e 75 0a 57 48 45 4e |OCfunc_menu.WHEN| 00004a00 20 33 20 3a 20 60 66 75 6e 63 25 20 3d 20 33 3a | 3 : `func% = 3:| 00004a10 60 73 74 61 74 65 25 3d 30 3a 50 52 4f 43 75 70 |`state%=0:PROCup| 00004a20 64 61 74 65 5f 68 65 6c 70 0a 57 48 45 4e 20 34 |date_help.WHEN 4| 00004a30 20 3a 20 60 66 75 6e 63 25 20 3d 20 34 3a 60 73 | : `func% = 4:`s| 00004a40 74 61 74 65 25 3d 30 3a 50 52 4f 43 75 70 64 61 |tate%=0:PROCupda| 00004a50 74 65 5f 68 65 6c 70 0a 57 48 45 4e 20 35 20 3a |te_help.WHEN 5 :| 00004a60 20 60 66 75 6e 63 25 20 3d 20 35 3a 60 73 74 61 | `func% = 5:`sta| 00004a70 74 65 25 3d 30 3a 50 52 4f 43 75 70 64 61 74 65 |te%=0:PROCupdate| 00004a80 5f 68 65 6c 70 0a 57 48 45 4e 20 36 20 3a 20 60 |_help.WHEN 6 : `| 00004a90 66 75 6e 63 25 20 3d 20 36 3a 60 73 74 61 74 65 |func% = 6:`state| 00004aa0 25 3d 30 3a 50 52 4f 43 75 70 64 61 74 65 5f 68 |%=0:PROCupdate_h| 00004ab0 65 6c 70 0a 57 48 45 4e 20 37 20 3a 20 60 66 75 |elp.WHEN 7 : `fu| 00004ac0 6e 63 25 20 3d 20 37 3a 60 73 74 61 74 65 25 3d |nc% = 7:`state%=| 00004ad0 30 3a 50 52 4f 43 75 70 64 61 74 65 5f 68 65 6c |0:PROCupdate_hel| 00004ae0 70 0a 57 48 45 4e 20 60 73 75 62 5f 6d 65 6e 28 |p.WHEN `sub_men(| 00004af0 33 29 20 3a 20 52 45 4d 20 50 52 4f 43 74 65 73 |3) : REM PROCtes| 00004b00 74 5f 6f 70 65 6e 28 77 69 6e 64 6f 77 73 28 33 |t_open(windows(3| 00004b10 29 29 20 52 43 4d 0a 45 4e 44 43 41 53 45 0a 50 |)) RCM.ENDCASE.P| 00004b20 52 4f 43 73 68 6f 77 5f 69 63 6f 6e 73 28 60 66 |ROCshow_icons(`f| 00004b30 75 6e 63 25 29 0a 45 4e 44 49 46 0a 49 46 20 60 |unc%).ENDIF.IF `| 00004b40 63 75 72 5f 6d 65 6e 75 20 3d 20 34 20 54 48 45 |cur_menu = 4 THE| 00004b50 4e 0a 43 41 53 45 20 77 69 6d 70 21 31 36 20 4f |N.CASE wimp!16 O| 00004b60 46 0a 57 48 45 4e 20 32 20 3a 20 50 52 4f 43 66 |F.WHEN 2 : PROCf| 00004b70 75 6e 63 5f 6d 65 6e 75 0a 57 48 45 4e 20 33 20 |unc_menu.WHEN 3 | 00004b80 3a 20 60 66 75 6e 63 25 20 3d 20 33 3a 60 73 74 |: `func% = 3:`st| 00004b90 61 74 65 25 3d 30 3a 50 52 4f 43 75 70 64 61 74 |ate%=0:PROCupdat| 00004ba0 65 5f 68 65 6c 70 0a 57 48 45 4e 20 60 73 75 62 |e_help.WHEN `sub| 00004bb0 5f 6d 65 6e 28 34 29 20 3a 52 45 4d 20 50 52 4f |_men(4) :REM PRO| 00004bc0 43 74 65 73 74 5f 6f 70 65 6e 28 77 69 6e 64 6f |Ctest_open(windo| 00004bd0 77 73 28 33 29 29 20 52 43 4d 0a 45 4e 44 43 41 |ws(3)) RCM.ENDCA| 00004be0 53 45 0a 50 52 4f 43 73 68 6f 77 5f 69 63 6f 6e |SE.PROCshow_icon| 00004bf0 73 28 60 66 75 6e 63 25 29 0a 45 4e 44 49 46 0a |s(`func%).ENDIF.| 00004c00 49 46 20 60 63 75 72 5f 6d 65 6e 75 20 3d 20 35 |IF `cur_menu = 5| 00004c10 20 54 48 45 4e 0a 43 41 53 45 20 77 69 6d 70 21 | THEN.CASE wimp!| 00004c20 31 36 20 4f 46 0a 57 48 45 4e 20 32 20 3a 20 50 |16 OF.WHEN 2 : P| 00004c30 52 4f 43 66 75 6e 63 5f 6d 65 6e 75 0a 57 48 45 |ROCfunc_menu.WHE| 00004c40 4e 20 33 20 3a 20 60 66 75 6e 63 25 20 3d 20 33 |N 3 : `func% = 3| 00004c50 3a 60 73 74 61 74 65 25 3d 30 3a 50 52 4f 43 75 |:`state%=0:PROCu| 00004c60 70 64 61 74 65 5f 68 65 6c 70 0a 57 48 45 4e 20 |pdate_help.WHEN | 00004c70 34 20 3a 20 60 66 75 6e 63 25 20 3d 20 34 3a 60 |4 : `func% = 4:`| 00004c80 73 74 61 74 65 25 3d 30 3a 50 52 4f 43 75 70 64 |state%=0:PROCupd| 00004c90 61 74 65 5f 68 65 6c 70 0a 57 48 45 4e 20 35 20 |ate_help.WHEN 5 | 00004ca0 3a 20 60 66 75 6e 63 25 20 3d 20 35 3a 60 73 74 |: `func% = 5:`st| 00004cb0 61 74 65 25 3d 30 3a 50 52 4f 43 75 70 64 61 74 |ate%=0:PROCupdat| 00004cc0 65 5f 68 65 6c 70 0a 57 48 45 4e 20 36 20 3a 20 |e_help.WHEN 6 : | 00004cd0 60 66 75 6e 63 25 20 3d 20 36 3a 60 73 74 61 74 |`func% = 6:`stat| 00004ce0 65 25 3d 30 3a 50 52 4f 43 75 70 64 61 74 65 5f |e%=0:PROCupdate_| 00004cf0 68 65 6c 70 0a 50 52 4f 43 74 65 73 74 5f 6f 70 |help.PROCtest_op| 00004d00 65 6e 28 77 69 6e 64 6f 77 73 28 38 29 29 3a 50 |en(windows(8)):P| 00004d10 52 4f 43 73 68 6f 77 5f 70 61 74 74 0a 57 48 45 |ROCshow_patt.WHE| 00004d20 4e 20 37 20 3a 20 60 66 75 6e 63 25 20 3d 20 37 |N 7 : `func% = 7| 00004d30 0a 57 48 45 4e 20 60 73 75 62 5f 6d 65 6e 28 35 |.WHEN `sub_men(5| 00004d40 29 20 3a 20 52 45 4d 20 50 52 4f 43 74 65 73 74 |) : REM PROCtest| 00004d50 5f 6f 70 65 6e 28 77 69 6e 64 6f 77 73 28 33 29 |_open(windows(3)| 00004d60 29 20 52 43 4d 0a 45 4e 44 43 41 53 45 0a 50 52 |) RCM.ENDCASE.PR| 00004d70 4f 43 73 68 6f 77 5f 69 63 6f 6e 73 28 60 66 75 |OCshow_icons(`fu| 00004d80 6e 63 25 29 0a 45 4e 44 49 46 0a 46 4f 52 20 61 |nc%).ENDIF.FOR a| 00004d90 25 20 3d 20 32 20 54 4f 20 60 73 75 62 5f 6d 65 |% = 2 TO `sub_me| 00004da0 6e 28 60 63 75 72 5f 6d 65 6e 75 29 2b 31 0a 50 |n(`cur_menu)+1.P| 00004db0 52 4f 43 73 65 74 5f 69 63 6f 6e 5f 73 74 61 74 |ROCset_icon_stat| 00004dc0 65 28 77 69 6e 64 6f 77 73 28 31 29 2c 61 25 2c |e(windows(1),a%,| 00004dd0 30 2c 30 2c 30 2c 30 29 0a 4e 45 58 54 20 61 25 |0,0,0,0).NEXT a%| 00004de0 0a 45 4e 44 50 52 4f 43 0a 44 45 46 20 50 52 4f |.ENDPROC.DEF PRO| 00004df0 43 66 75 6e 63 5f 6d 65 6e 75 0a 4c 4f 43 41 4c |Cfunc_menu.LOCAL| 00004e00 20 6e 25 2c 61 25 0a 61 25 20 3d 20 61 25 20 2b | n%,a%.a% = a% +| 00004e10 20 31 0a 46 4f 52 20 6e 25 20 3d 20 60 73 75 62 | 1.FOR n% = `sub| 00004e20 5f 6d 65 6e 28 60 63 75 72 5f 6d 65 6e 75 29 2b |_men(`cur_menu)+| 00004e30 31 20 54 4f 20 32 20 53 54 45 50 2d 31 0a 50 52 |1 TO 2 STEP-1.PR| 00004e40 4f 43 64 65 6c 65 74 65 5f 69 63 6f 6e 28 77 69 |OCdelete_icon(wi| 00004e50 6e 64 6f 77 73 28 31 29 2c 6e 25 29 0a 4e 45 58 |ndows(1),n%).NEX| 00004e60 54 20 6e 25 0a 53 59 53 20 63 72 65 61 74 65 5f |T n%.SYS create_| 00004e70 69 63 6f 6e 2c 30 2c 60 66 75 6e 63 0a 53 59 53 |icon,0,`func.SYS| 00004e80 20 63 72 65 61 74 65 5f 69 63 6f 6e 2c 30 2c 60 | create_icon,0,`| 00004e90 66 75 6e 63 2b 33 36 0a 53 59 53 20 63 72 65 61 |func+36.SYS crea| 00004ea0 74 65 5f 69 63 6f 6e 2c 30 2c 60 66 75 6e 63 2b |te_icon,0,`func+| 00004eb0 37 32 0a 53 59 53 20 63 72 65 61 74 65 5f 69 63 |72.SYS create_ic| 00004ec0 6f 6e 2c 30 2c 60 66 75 6e 63 2b 31 30 38 0a 53 |on,0,`func+108.S| 00004ed0 59 53 20 63 72 65 61 74 65 5f 69 63 6f 6e 2c 30 |YS create_icon,0| 00004ee0 2c 60 66 75 6e 63 2b 31 34 34 0a 53 59 53 20 63 |,`func+144.SYS c| 00004ef0 72 65 61 74 65 5f 69 63 6f 6e 2c 30 2c 60 66 75 |reate_icon,0,`fu| 00004f00 6e 63 2b 31 38 30 0a 53 59 53 20 63 72 65 61 74 |nc+180.SYS creat| 00004f10 65 5f 69 63 6f 6e 2c 30 2c 60 66 75 6e 63 2b 32 |e_icon,0,`func+2| 00004f20 31 36 0a 53 59 53 20 63 72 65 61 74 65 5f 69 63 |16.SYS create_ic| 00004f30 6f 6e 2c 30 2c 60 66 75 6e 63 2b 32 35 32 0a 53 |on,0,`func+252.S| 00004f40 59 53 20 63 72 65 61 74 65 5f 69 63 6f 6e 2c 30 |YS create_icon,0| 00004f50 2c 60 66 75 6e 63 2b 32 38 38 0a 60 63 75 72 5f |,`func+288.`cur_| 00004f60 6d 65 6e 75 20 3d 20 30 3a 60 66 75 6e 63 25 20 |menu = 0:`func% | 00004f70 3d 20 32 0a 45 4e 44 50 52 4f 43 0a 44 45 46 20 |= 2.ENDPROC.DEF | 00004f80 50 52 4f 43 64 72 61 77 5f 6d 65 6e 75 0a 4c 4f |PROCdraw_menu.LO| 00004f90 43 41 4c 20 6e 25 0a 46 4f 52 20 6e 25 20 3d 20 |CAL n%.FOR n% = | 00004fa0 60 73 75 62 5f 6d 65 6e 28 30 29 2b 31 20 54 4f |`sub_men(0)+1 TO| 00004fb0 20 32 20 53 54 45 50 2d 31 0a 50 52 4f 43 64 65 | 2 STEP-1.PROCde| 00004fc0 6c 65 74 65 5f 69 63 6f 6e 28 77 69 6e 64 6f 77 |lete_icon(window| 00004fd0 73 28 31 29 2c 6e 25 29 0a 4e 45 58 54 20 6e 25 |s(1),n%).NEXT n%| 00004fe0 0a 53 59 53 20 63 72 65 61 74 65 5f 69 63 6f 6e |.SYS create_icon| 00004ff0 2c 30 2c 60 64 72 61 77 0a 53 59 53 20 63 72 65 |,0,`draw.SYS cre| 00005000 61 74 65 5f 69 63 6f 6e 2c 30 2c 60 64 72 61 77 |ate_icon,0,`draw| 00005010 2b 33 36 0a 53 59 53 20 63 72 65 61 74 65 5f 69 |+36.SYS create_i| 00005020 63 6f 6e 2c 30 2c 60 64 72 61 77 2b 37 32 0a 53 |con,0,`draw+72.S| 00005030 59 53 20 63 72 65 61 74 65 5f 69 63 6f 6e 2c 30 |YS create_icon,0| 00005040 2c 60 64 72 61 77 2b 31 30 38 0a 53 59 53 20 63 |,`draw+108.SYS c| 00005050 72 65 61 74 65 5f 69 63 6f 6e 2c 30 2c 60 64 72 |reate_icon,0,`dr| 00005060 61 77 2b 31 34 34 0a 53 59 53 20 63 72 65 61 74 |aw+144.SYS creat| 00005070 65 5f 69 63 6f 6e 2c 30 2c 60 64 72 61 77 2b 31 |e_icon,0,`draw+1| 00005080 38 30 0a 53 59 53 20 63 72 65 61 74 65 5f 69 63 |80.SYS create_ic| 00005090 6f 6e 2c 30 2c 60 64 72 61 77 2b 32 31 36 0a 60 |on,0,`draw+216.`| 000050a0 63 75 72 5f 6d 65 6e 75 20 3d 20 31 20 3a 20 60 |cur_menu = 1 : `| 000050b0 73 74 61 74 65 25 20 3d 20 30 0a 45 4e 44 50 52 |state% = 0.ENDPR| 000050c0 4f 43 0a 44 45 46 20 50 52 4f 43 73 68 61 70 65 |OC.DEF PROCshape| 000050d0 5f 6d 65 6e 75 0a 4c 4f 43 41 4c 20 6e 25 0a 46 |_menu.LOCAL n%.F| 000050e0 4f 52 20 6e 25 20 3d 20 60 73 75 62 5f 6d 65 6e |OR n% = `sub_men| 000050f0 28 30 29 2b 31 20 54 4f 20 32 20 53 54 45 50 2d |(0)+1 TO 2 STEP-| 00005100 31 0a 50 52 4f 43 64 65 6c 65 74 65 5f 69 63 6f |1.PROCdelete_ico| 00005110 6e 28 77 69 6e 64 6f 77 73 28 31 29 2c 6e 25 29 |n(windows(1),n%)| 00005120 0a 4e 45 58 54 20 6e 25 0a 53 59 53 20 63 72 65 |.NEXT n%.SYS cre| 00005130 61 74 65 5f 69 63 6f 6e 2c 30 2c 60 73 68 61 70 |ate_icon,0,`shap| 00005140 65 0a 53 59 53 20 63 72 65 61 74 65 5f 69 63 6f |e.SYS create_ico| 00005150 6e 2c 30 2c 60 73 68 61 70 65 2b 33 36 0a 53 59 |n,0,`shape+36.SY| 00005160 53 20 63 72 65 61 74 65 5f 69 63 6f 6e 2c 30 2c |S create_icon,0,| 00005170 60 73 68 61 70 65 2b 37 32 0a 53 59 53 20 63 72 |`shape+72.SYS cr| 00005180 65 61 74 65 5f 69 63 6f 6e 2c 30 2c 60 73 68 61 |eate_icon,0,`sha| 00005190 70 65 2b 31 30 38 0a 53 59 53 20 63 72 65 61 74 |pe+108.SYS creat| 000051a0 65 5f 69 63 6f 6e 2c 30 2c 60 73 68 61 70 65 2b |e_icon,0,`shape+| 000051b0 31 34 34 0a 53 59 53 20 63 72 65 61 74 65 5f 69 |144.SYS create_i| 000051c0 63 6f 6e 2c 30 2c 60 73 68 61 70 65 2b 31 38 30 |con,0,`shape+180| 000051d0 0a 60 63 75 72 5f 6d 65 6e 75 20 3d 20 32 20 3a |.`cur_menu = 2 :| 000051e0 20 60 73 74 61 74 65 25 20 3d 20 30 0a 45 4e 44 | `state% = 0.END| 000051f0 50 52 4f 43 0a 44 45 46 20 50 52 4f 43 63 75 72 |PROC.DEF PROCcur| 00005200 76 65 5f 6d 65 6e 75 0a 4c 4f 43 41 4c 20 6e 25 |ve_menu.LOCAL n%| 00005210 0a 46 4f 52 20 6e 25 3d 20 60 73 75 62 5f 6d 65 |.FOR n%= `sub_me| 00005220 6e 28 30 29 2b 31 20 54 4f 20 32 20 53 54 45 50 |n(0)+1 TO 2 STEP| 00005230 2d 31 0a 50 52 4f 43 64 65 6c 65 74 65 5f 69 63 |-1.PROCdelete_ic| 00005240 6f 6e 28 77 69 6e 64 6f 77 73 28 31 29 2c 6e 25 |on(windows(1),n%| 00005250 29 0a 4e 45 58 54 20 6e 25 0a 53 59 53 20 63 72 |).NEXT n%.SYS cr| 00005260 65 61 74 65 5f 69 63 6f 6e 2c 30 2c 60 63 75 72 |eate_icon,0,`cur| 00005270 76 65 0a 53 59 53 20 63 72 65 61 74 65 5f 69 63 |ve.SYS create_ic| 00005280 6f 6e 2c 30 2c 60 63 75 72 76 65 2b 33 36 0a 53 |on,0,`curve+36.S| 00005290 59 53 20 63 72 65 61 74 65 5f 69 63 6f 6e 2c 30 |YS create_icon,0| 000052a0 2c 60 63 75 72 76 65 2b 37 32 0a 53 59 53 20 63 |,`curve+72.SYS c| 000052b0 72 65 61 74 65 5f 69 63 6f 6e 2c 30 2c 60 63 75 |reate_icon,0,`cu| 000052c0 72 76 65 2b 31 30 38 0a 53 59 53 20 63 72 65 61 |rve+108.SYS crea| 000052d0 74 65 5f 69 63 6f 6e 2c 30 2c 60 63 75 72 76 65 |te_icon,0,`curve| 000052e0 2b 31 34 34 0a 53 59 53 20 63 72 65 61 74 65 5f |+144.SYS create_| 000052f0 69 63 6f 6e 2c 30 2c 60 63 75 72 76 65 2b 31 38 |icon,0,`curve+18| 00005300 30 0a 53 59 53 20 63 72 65 61 74 65 5f 69 63 6f |0.SYS create_ico| 00005310 6e 2c 30 2c 60 63 75 72 76 65 2b 32 31 36 0a 60 |n,0,`curve+216.`| 00005320 63 75 72 5f 6d 65 6e 75 20 3d 20 33 20 3a 20 60 |cur_menu = 3 : `| 00005330 73 74 61 74 65 25 20 3d 20 30 0a 45 4e 44 50 52 |state% = 0.ENDPR| 00005340 4f 43 0a 44 45 46 20 50 52 4f 43 74 65 78 74 5f |OC.DEF PROCtext_| 00005350 6d 65 6e 75 0a 4c 4f 43 41 4c 20 6e 25 0a 46 4f |menu.LOCAL n%.FO| 00005360 52 20 6e 25 3d 20 60 73 75 62 5f 6d 65 6e 28 30 |R n%= `sub_men(0| 00005370 29 2b 31 20 54 4f 20 32 20 53 54 45 50 2d 31 0a |)+1 TO 2 STEP-1.| 00005380 50 52 4f 43 64 65 6c 65 74 65 5f 69 63 6f 6e 28 |PROCdelete_icon(| 00005390 77 69 6e 64 6f 77 73 28 31 29 2c 6e 25 29 0a 4e |windows(1),n%).N| 000053a0 45 58 54 20 6e 25 0a 53 59 53 20 63 72 65 61 74 |EXT n%.SYS creat| 000053b0 65 5f 69 63 6f 6e 2c 30 2c 60 74 65 78 74 0a 53 |e_icon,0,`text.S| 000053c0 59 53 20 63 72 65 61 74 65 5f 69 63 6f 6e 2c 30 |YS create_icon,0| 000053d0 2c 60 74 65 78 74 2b 33 36 0a 53 59 53 20 63 72 |,`text+36.SYS cr| 000053e0 65 61 74 65 5f 69 63 6f 6e 2c 30 2c 60 74 65 78 |eate_icon,0,`tex| 000053f0 74 2b 37 32 0a 60 63 75 72 5f 6d 65 6e 75 20 3d |t+72.`cur_menu =| 00005400 20 34 20 3a 20 60 73 74 61 74 65 25 20 3d 20 30 | 4 : `state% = 0| 00005410 0a 45 4e 44 50 52 4f 43 0a 44 45 46 20 50 52 4f |.ENDPROC.DEF PRO| 00005420 43 61 72 65 61 5f 6d 65 6e 75 0a 4c 4f 43 41 4c |Carea_menu.LOCAL| 00005430 20 6e 25 0a 46 4f 52 20 6e 25 3d 20 60 73 75 62 | n%.FOR n%= `sub| 00005440 5f 6d 65 6e 28 30 29 2b 31 20 54 4f 20 32 20 53 |_men(0)+1 TO 2 S| 00005450 54 45 50 2d 31 0a 50 52 4f 43 64 65 6c 65 74 65 |TEP-1.PROCdelete| 00005460 5f 69 63 6f 6e 28 77 69 6e 64 6f 77 73 28 31 29 |_icon(windows(1)| 00005470 2c 6e 25 29 0a 4e 45 58 54 20 6e 25 0a 53 59 53 |,n%).NEXT n%.SYS| 00005480 20 63 72 65 61 74 65 5f 69 63 6f 6e 2c 30 2c 60 | create_icon,0,`| 00005490 61 72 65 61 0a 53 59 53 20 63 72 65 61 74 65 5f |area.SYS create_| 000054a0 69 63 6f 6e 2c 30 2c 60 61 72 65 61 2b 33 36 0a |icon,0,`area+36.| 000054b0 53 59 53 20 63 72 65 61 74 65 5f 69 63 6f 6e 2c |SYS create_icon,| 000054c0 30 2c 60 61 72 65 61 2b 37 32 0a 53 59 53 20 63 |0,`area+72.SYS c| 000054d0 72 65 61 74 65 5f 69 63 6f 6e 2c 30 2c 60 61 72 |reate_icon,0,`ar| 000054e0 65 61 2b 31 30 38 0a 53 59 53 20 63 72 65 61 74 |ea+108.SYS creat| 000054f0 65 5f 69 63 6f 6e 2c 30 2c 60 61 72 65 61 2b 31 |e_icon,0,`area+1| 00005500 34 34 0a 53 59 53 20 63 72 65 61 74 65 5f 69 63 |44.SYS create_ic| 00005510 6f 6e 2c 30 2c 60 61 72 65 61 2b 31 38 30 0a 53 |on,0,`area+180.S| 00005520 59 53 20 63 72 65 61 74 65 5f 69 63 6f 6e 2c 30 |YS create_icon,0| 00005530 2c 60 61 72 65 61 2b 32 31 36 0a 60 63 75 72 5f |,`area+216.`cur_| 00005540 6d 65 6e 75 20 3d 20 35 20 3a 20 60 73 74 61 74 |menu = 5 : `stat| 00005550 65 25 20 3d 20 30 0a 45 4e 44 50 52 4f 43 0a 44 |e% = 0.ENDPROC.D| 00005560 45 46 20 50 52 4f 43 6d 6f 64 65 5f 66 6c 61 67 |EF PROCmode_flag| 00005570 73 28 69 63 6f 6e 25 29 0a 50 52 4f 43 67 65 74 |s(icon%).PROCget| 00005580 5f 70 6f 69 6e 74 65 72 5f 69 6e 66 6f 0a 43 41 |_pointer_info.CA| 00005590 53 45 20 69 63 6f 6e 25 20 4f 46 0a 57 48 45 4e |SE icon% OF.WHEN| 000055a0 20 30 20 3a 20 60 6d 5f 6f 70 65 6e 20 3d 20 60 | 0 : `m_open = `| 000055b0 6d 5f 66 69 6c 6c 20 3a 20 60 6d 5f 66 69 6c 6c |m_fill : `m_fill| 000055c0 20 3d 20 4e 4f 54 20 60 6d 5f 66 69 6c 6c 0a 57 | = NOT `m_fill.W| 000055d0 48 45 4e 20 31 20 3a 20 60 6d 5f 66 69 6c 6c 20 |HEN 1 : `m_fill | 000055e0 3d 20 60 6d 5f 6f 70 65 6e 20 3a 20 60 6d 5f 6f |= `m_open : `m_o| 000055f0 70 65 6e 20 3d 20 4e 4f 54 20 60 6d 5f 6f 70 65 |pen = NOT `m_ope| 00005600 6e 0a 57 48 45 4e 20 32 20 3a 20 60 6d 5f 64 6f |n.WHEN 2 : `m_do| 00005610 74 73 20 3d 20 4e 4f 54 20 60 6d 5f 64 6f 74 73 |ts = NOT `m_dots| 00005620 0a 57 48 45 4e 20 33 20 3a 20 60 6d 5f 78 6f 72 |.WHEN 3 : `m_xor| 00005630 3d 20 4e 4f 54 20 60 6d 5f 78 6f 72 0a 49 46 60 |= NOT `m_xor.IF`| 00005640 6d 5f 78 6f 72 20 60 6d 5f 6f 72 3d 46 41 4c 53 |m_xor `m_or=FALS| 00005650 45 3a 60 6d 5f 61 6e 64 3d 46 41 4c 53 45 3a 60 |E:`m_and=FALSE:`| 00005660 6d 5f 69 6e 76 3d 46 41 4c 53 45 3a 60 73 74 79 |m_inv=FALSE:`sty| 00005670 6c 65 25 3d 33 0a 57 48 45 4e 20 34 20 3a 20 60 |le%=3.WHEN 4 : `| 00005680 6d 5f 6f 72 20 3d 20 4e 4f 54 20 60 6d 5f 6f 72 |m_or = NOT `m_or| 00005690 0a 49 46 60 6d 5f 6f 72 20 60 6d 5f 78 6f 72 3d |.IF`m_or `m_xor=| 000056a0 46 41 4c 53 45 3a 60 6d 5f 61 6e 64 3d 46 41 4c |FALSE:`m_and=FAL| 000056b0 53 45 3a 60 6d 5f 69 6e 76 3d 46 41 4c 53 45 3a |SE:`m_inv=FALSE:| 000056c0 60 73 74 79 6c 65 25 3d 31 0a 57 48 45 4e 20 35 |`style%=1.WHEN 5| 000056d0 20 3a 20 60 6d 5f 61 6e 64 3d 20 4e 4f 54 20 60 | : `m_and= NOT `| 000056e0 6d 5f 61 6e 64 0a 49 46 60 6d 5f 61 6e 64 20 60 |m_and.IF`m_and `| 000056f0 6d 5f 78 6f 72 3d 46 41 4c 53 45 3a 60 6d 5f 6f |m_xor=FALSE:`m_o| 00005700 72 3d 46 41 4c 53 45 3a 60 6d 5f 69 6e 76 3d 46 |r=FALSE:`m_inv=F| 00005710 41 4c 53 45 3a 60 73 74 79 6c 65 25 3d 32 0a 57 |ALSE:`style%=2.W| 00005720 48 45 4e 20 36 20 3a 20 60 6d 5f 69 6e 76 3d 20 |HEN 6 : `m_inv= | 00005730 4e 4f 54 20 60 6d 5f 69 6e 76 0a 49 46 60 6d 5f |NOT `m_inv.IF`m_| 00005740 69 6e 76 20 60 6d 5f 78 6f 72 3d 46 41 4c 53 45 |inv `m_xor=FALSE| 00005750 3a 60 6d 5f 6f 72 3d 46 41 4c 53 45 3a 60 6d 5f |:`m_or=FALSE:`m_| 00005760 61 6e 64 3d 46 41 4c 53 45 3a 60 73 74 79 6c 65 |and=FALSE:`style| 00005770 25 3d 34 0a 45 4e 44 43 41 53 45 0a 49 46 20 60 |%=4.ENDCASE.IF `| 00005780 6d 5f 78 6f 72 3d 46 41 4c 53 45 20 41 4e 44 20 |m_xor=FALSE AND | 00005790 60 6d 5f 6f 72 3d 46 41 4c 53 45 20 41 4e 44 20 |`m_or=FALSE AND | 000057a0 60 6d 5f 61 6e 64 3d 46 41 4c 53 45 20 41 4e 44 |`m_and=FALSE AND| 000057b0 20 60 6d 5f 69 6e 76 3d 46 41 4c 53 45 20 60 73 | `m_inv=FALSE `s| 000057c0 74 79 6c 65 25 3d 30 0a 50 52 4f 43 73 65 74 5f |tyle%=0.PROCset_| 000057d0 69 63 6f 6e 5f 73 74 61 74 65 28 77 69 6e 64 6f |icon_state(windo| 000057e0 77 73 28 32 29 2c 30 2c 26 33 30 33 44 2c 60 69 |ws(2),0,&303D,`i| 000057f0 66 2c 46 4e 69 63 6f 6c 28 60 6d 5f 66 69 6c 6c |f,FNicol(`m_fill| 00005800 29 2c 2d 31 29 0a 50 52 4f 43 73 65 74 5f 69 63 |),-1).PROCset_ic| 00005810 6f 6e 5f 73 74 61 74 65 28 77 69 6e 64 6f 77 73 |on_state(windows| 00005820 28 32 29 2c 31 2c 26 33 30 33 44 2c 60 69 66 2c |(2),1,&303D,`if,| 00005830 46 4e 69 63 6f 6c 28 60 6d 5f 6f 70 65 6e 29 2c |FNicol(`m_open),| 00005840 2d 31 29 0a 50 52 4f 43 73 65 74 5f 69 63 6f 6e |-1).PROCset_icon| 00005850 5f 73 74 61 74 65 28 77 69 6e 64 6f 77 73 28 32 |_state(windows(2| 00005860 29 2c 32 2c 26 33 30 33 44 2c 60 69 66 2c 46 4e |),2,&303D,`if,FN| 00005870 69 63 6f 6c 28 60 6d 5f 64 6f 74 73 29 2c 2d 31 |icol(`m_dots),-1| 00005880 29 0a 50 52 4f 43 73 65 74 5f 69 63 6f 6e 5f 73 |).PROCset_icon_s| 00005890 74 61 74 65 28 77 69 6e 64 6f 77 73 28 32 29 2c |tate(windows(2),| 000058a0 33 2c 26 33 30 33 44 2c 60 69 66 2c 46 4e 69 63 |3,&303D,`if,FNic| 000058b0 6f 6c 28 60 6d 5f 78 6f 72 29 2c 2d 31 29 0a 50 |ol(`m_xor),-1).P| 000058c0 52 4f 43 73 65 74 5f 69 63 6f 6e 5f 73 74 61 74 |ROCset_icon_stat| 000058d0 65 28 77 69 6e 64 6f 77 73 28 32 29 2c 34 2c 26 |e(windows(2),4,&| 000058e0 33 30 33 44 2c 60 69 66 2c 46 4e 69 63 6f 6c 28 |303D,`if,FNicol(| 000058f0 60 6d 5f 6f 72 29 2c 2d 31 29 0a 50 52 4f 43 73 |`m_or),-1).PROCs| 00005900 65 74 5f 69 63 6f 6e 5f 73 74 61 74 65 28 77 69 |et_icon_state(wi| 00005910 6e 64 6f 77 73 28 32 29 2c 35 2c 26 33 30 33 44 |ndows(2),5,&303D| 00005920 2c 60 69 66 2c 46 4e 69 63 6f 6c 28 60 6d 5f 61 |,`if,FNicol(`m_a| 00005930 6e 64 29 2c 2d 31 29 0a 50 52 4f 43 73 65 74 5f |nd),-1).PROCset_| 00005940 69 63 6f 6e 5f 73 74 61 74 65 28 77 69 6e 64 6f |icon_state(windo| 00005950 77 73 28 32 29 2c 36 2c 26 33 30 33 44 2c 60 69 |ws(2),6,&303D,`i| 00005960 66 2c 46 4e 69 63 6f 6c 28 60 6d 5f 69 6e 76 29 |f,FNicol(`m_inv)| 00005970 2c 2d 31 29 0a 45 4e 44 50 52 4f 43 0a 44 45 46 |,-1).ENDPROC.DEF| 00005980 20 46 4e 69 63 6f 6c 28 66 25 29 0a 49 46 20 66 | FNicol(f%).IF f| 00005990 25 20 54 48 45 4e 0a 3d 20 26 38 38 0a 45 4c 53 |% THEN.= &88.ELS| 000059a0 45 0a 3d 20 26 38 39 0a 45 4e 44 49 46 0a 44 45 |E.= &89.ENDIF.DE| 000059b0 46 20 50 52 4f 43 63 6c 65 61 72 5f 6d 65 6e 75 |F PROCclear_menu| 000059c0 28 6c 61 73 74 25 29 0a 46 4f 52 20 61 25 20 3d |(last%).FOR a% =| 000059d0 20 33 20 54 4f 20 6c 61 73 74 25 0a 50 52 4f 43 | 3 TO last%.PROC| 000059e0 73 65 74 5f 69 63 6f 6e 5f 73 74 61 74 65 28 77 |set_icon_state(w| 000059f0 69 6e 64 6f 77 73 28 31 29 2c 61 25 2c 26 33 30 |indows(1),a%,&30| 00005a00 33 44 2c 60 69 66 2c 60 69 62 2c 2d 31 29 0a 4e |3D,`if,`ib,-1).N| 00005a10 45 58 54 20 61 25 0a 45 4e 44 50 52 4f 43 0a 44 |EXT a%.ENDPROC.D| 00005a20 45 46 20 50 52 4f 43 73 65 74 5f 6d 65 6e 75 28 |EF PROCset_menu(| 00005a30 69 63 6f 6e 25 29 0a 50 52 4f 43 73 65 74 5f 69 |icon%).PROCset_i| 00005a40 63 6f 6e 5f 73 74 61 74 65 28 77 69 6e 64 6f 77 |con_state(window| 00005a50 73 28 31 29 2c 69 63 6f 6e 25 2c 26 33 30 33 44 |s(1),icon%,&303D| 00005a60 2c 60 69 66 2c 26 38 38 2c 2d 31 29 0a 45 4e 44 |,`if,&88,-1).END| 00005a70 50 52 4f 43 0a 44 45 46 20 50 52 4f 43 73 68 6f |PROC.DEF PROCsho| 00005a80 77 5f 69 63 6f 6e 73 28 69 63 6f 6e 25 29 0a 4c |w_icons(icon%).L| 00005a90 4f 43 41 4c 20 61 25 0a 46 4f 52 20 61 25 20 3d |OCAL a%.FOR a% =| 00005aa0 20 32 20 54 4f 20 60 73 75 62 5f 6d 65 6e 28 60 | 2 TO `sub_men(`| 00005ab0 63 75 72 5f 6d 65 6e 75 29 0a 50 52 4f 43 73 65 |cur_menu).PROCse| 00005ac0 74 5f 69 63 6f 6e 5f 73 74 61 74 65 28 77 69 6e |t_icon_state(win| 00005ad0 64 6f 77 73 28 31 29 2c 61 25 2c 26 33 30 33 44 |dows(1),a%,&303D| 00005ae0 2c 60 69 66 2c 60 69 62 2c 2d 31 29 0a 4e 45 58 |,`if,`ib,-1).NEX| 00005af0 54 20 61 25 0a 50 52 4f 43 73 65 74 5f 69 63 6f |T a%.PROCset_ico| 00005b00 6e 5f 73 74 61 74 65 28 77 69 6e 64 6f 77 73 28 |n_state(windows(| 00005b10 31 29 2c 69 63 6f 6e 25 2c 26 33 30 33 44 2c 60 |1),icon%,&303D,`| 00005b20 69 66 2c 26 38 38 2c 2d 31 29 0a 45 4e 44 50 52 |if,&88,-1).ENDPR| 00005b30 4f 43 0a 44 45 46 20 46 4e 64 72 61 77 5f 61 72 |OC.DEF FNdraw_ar| 00005b40 65 61 0a 21 74 5f 77 69 6d 70 3d 20 77 69 6e 64 |ea.!t_wimp= wind| 00005b50 6f 77 73 28 35 29 0a 53 59 53 20 67 65 74 5f 77 |ows(5).SYS get_w| 00005b60 69 6e 64 6f 77 5f 73 74 61 74 65 2c 30 2c 74 5f |indow_state,0,t_| 00005b70 77 69 6d 70 0a 60 64 72 5f 61 72 65 61 20 3d 20 |wimp.`dr_area = | 00005b80 74 5f 77 69 6d 70 21 32 38 0a 49 46 20 60 68 61 |t_wimp!28.IF `ha| 00005b90 6e 64 6c 65 25 20 3c 3e 20 77 69 6e 64 6f 77 73 |ndle% <> windows| 00005ba0 28 35 29 20 54 48 45 4e 20 3d 20 46 41 4c 53 45 |(5) THEN = FALSE| 00005bb0 0a 49 46 20 74 5f 77 69 6d 70 21 32 38 20 3c 3e |.IF t_wimp!28 <>| 00005bc0 20 2d 31 20 54 48 45 4e 3d 20 46 41 4c 53 45 0a | -1 THEN= FALSE.| 00005bd0 49 46 20 60 78 25 20 3c 20 31 36 36 20 54 48 45 |IF `x% < 166 THE| 00005be0 4e 3d 20 46 41 4c 53 45 0a 49 46 20 60 79 25 20 |N= FALSE.IF `y% | 00005bf0 3c 20 32 33 32 20 54 48 45 4e 3d 20 46 41 4c 53 |< 232 THEN= FALS| 00005c00 45 0a 3d 20 54 52 55 45 0a 44 45 46 20 50 52 4f |E.= TRUE.DEF PRO| 00005c10 43 64 6f 5f 6c 69 6e 65 0a 43 41 53 45 20 60 73 |Cdo_line.CASE `s| 00005c20 74 61 74 65 25 20 4f 46 0a 57 48 45 4e 20 31 20 |tate% OF.WHEN 1 | 00005c30 3a 20 50 52 4f 43 72 75 62 62 5f 6c 69 6e 65 0a |: PROCrubb_line.| 00005c40 49 46 20 28 60 62 25 20 41 4e 44 20 31 29 3d 31 |IF (`b% AND 1)=1| 00005c50 20 54 48 45 4e 0a 50 52 4f 43 72 75 62 62 5f 6c | THEN.PROCrubb_l| 00005c60 69 6e 65 0a 60 64 6f 5f 78 30 25 20 3d 20 60 78 |ine.`do_x0% = `x| 00005c70 25 0a 60 64 6f 5f 79 30 25 20 3d 20 60 79 25 0a |%.`do_y0% = `y%.| 00005c80 45 4c 53 45 0a 49 46 20 28 60 62 25 20 41 4e 44 |ELSE.IF (`b% AND| 00005c90 20 34 29 3d 34 20 54 48 45 4e 0a 50 52 4f 43 72 | 4)=4 THEN.PROCr| 00005ca0 75 62 62 5f 6c 69 6e 65 0a 50 4c 4f 54 20 34 2c |ubb_line.PLOT 4,| 00005cb0 60 64 6f 5f 78 30 25 2c 60 64 6f 5f 79 30 25 0a |`do_x0%,`do_y0%.| 00005cc0 50 4c 4f 54 20 35 2c 60 78 25 2c 60 79 25 0a 60 |PLOT 5,`x%,`y%.`| 00005cd0 73 74 61 74 65 25 20 3d 20 30 3a 50 52 4f 43 6b |state% = 0:PROCk| 00005ce0 65 79 5f 62 6f 75 6e 63 65 0a 45 4c 53 45 0a 50 |ey_bounce.ELSE.P| 00005cf0 52 4f 43 72 75 62 62 5f 6c 69 6e 65 0a 45 4e 44 |ROCrubb_line.END| 00005d00 49 46 0a 45 4e 44 49 46 0a 57 48 45 4e 20 30 20 |IF.ENDIF.WHEN 0 | 00005d10 3a 20 49 46 20 28 60 62 25 20 41 4e 44 20 34 29 |: IF (`b% AND 4)| 00005d20 3d 34 20 54 48 45 4e 0a 60 64 6f 5f 78 30 25 20 |=4 THEN.`do_x0% | 00005d30 3d 20 60 78 25 0a 60 64 6f 5f 79 30 25 20 3d 20 |= `x%.`do_y0% = | 00005d40 60 79 25 0a 60 73 74 61 74 65 25 20 3d 20 31 3a |`y%.`state% = 1:| 00005d50 50 52 4f 43 6b 65 79 5f 62 6f 75 6e 63 65 0a 45 |PROCkey_bounce.E| 00005d60 4e 44 49 46 0a 45 4e 44 43 41 53 45 0a 45 4e 44 |NDIF.ENDCASE.END| 00005d70 50 52 4f 43 0a 44 45 46 20 50 52 4f 43 64 6f 5f |PROC.DEF PROCdo_| 00005d80 6a 6f 69 6e 65 64 0a 43 41 53 45 20 60 73 74 61 |joined.CASE `sta| 00005d90 74 65 25 20 4f 46 0a 57 48 45 4e 20 31 20 3a 20 |te% OF.WHEN 1 : | 00005da0 50 52 4f 43 72 75 62 62 5f 6c 69 6e 65 0a 49 46 |PROCrubb_line.IF| 00005db0 20 28 60 62 25 20 41 4e 44 20 31 29 3d 31 20 54 | (`b% AND 1)=1 T| 00005dc0 48 45 4e 0a 50 52 4f 43 72 75 62 62 5f 6c 69 6e |HEN.PROCrubb_lin| 00005dd0 65 0a 60 64 6f 5f 78 30 25 20 3d 20 60 78 25 0a |e.`do_x0% = `x%.| 00005de0 60 64 6f 5f 79 30 25 20 3d 20 60 79 25 0a 45 4c |`do_y0% = `y%.EL| 00005df0 53 45 0a 49 46 20 28 60 62 25 20 41 4e 44 20 34 |SE.IF (`b% AND 4| 00005e00 29 3d 34 20 54 48 45 4e 0a 50 52 4f 43 72 75 62 |)=4 THEN.PROCrub| 00005e10 62 5f 6c 69 6e 65 0a 50 4c 4f 54 20 34 2c 60 64 |b_line.PLOT 4,`d| 00005e20 6f 5f 78 30 25 2c 60 64 6f 5f 79 30 25 0a 50 4c |o_x0%,`do_y0%.PL| 00005e30 4f 54 20 35 2c 60 78 25 2c 60 79 25 0a 60 64 6f |OT 5,`x%,`y%.`do| 00005e40 5f 78 30 25 3d 60 78 25 0a 60 64 6f 5f 79 30 25 |_x0%=`x%.`do_y0%| 00005e50 3d 60 79 25 0a 45 4c 53 45 0a 50 52 4f 43 72 75 |=`y%.ELSE.PROCru| 00005e60 62 62 5f 6c 69 6e 65 0a 45 4e 44 49 46 0a 45 4e |bb_line.ENDIF.EN| 00005e70 44 49 46 0a 57 48 45 4e 20 30 20 3a 20 49 46 20 |DIF.WHEN 0 : IF | 00005e80 28 60 62 25 20 41 4e 44 20 34 29 3d 34 20 54 48 |(`b% AND 4)=4 TH| 00005e90 45 4e 0a 60 64 6f 5f 78 30 25 20 3d 20 60 78 25 |EN.`do_x0% = `x%| 00005ea0 0a 60 64 6f 5f 79 30 25 20 3d 20 60 79 25 0a 60 |.`do_y0% = `y%.`| 00005eb0 73 74 61 74 65 25 20 3d 20 31 3a 50 52 4f 43 6b |state% = 1:PROCk| 00005ec0 65 79 5f 62 6f 75 6e 63 65 0a 45 4e 44 49 46 0a |ey_bounce.ENDIF.| 00005ed0 45 4e 44 43 41 53 45 0a 45 4e 44 50 52 4f 43 0a |ENDCASE.ENDPROC.| 00005ee0 44 45 46 20 50 52 4f 43 64 6f 5f 70 6f 69 6e 74 |DEF PROCdo_point| 00005ef0 0a 49 46 20 28 60 62 25 20 41 4e 44 20 34 29 3d |.IF (`b% AND 4)=| 00005f00 34 20 54 48 45 4e 0a 50 4c 4f 54 20 34 2c 60 78 |4 THEN.PLOT 4,`x| 00005f10 25 2d 38 2c 60 79 25 2b 31 36 0a 43 4f 4c 4f 55 |%-8,`y%+16.COLOU| 00005f20 52 20 31 33 35 3a 47 43 4f 4c 31 33 35 0a 56 44 |R 135:GCOL135.VD| 00005f30 55 35 2c 60 62 72 73 68 25 0a 45 4e 44 49 46 0a |U5,`brsh%.ENDIF.| 00005f40 45 4e 44 50 52 4f 43 0a 44 45 46 20 50 52 4f 43 |ENDPROC.DEF PROC| 00005f50 64 6f 5f 72 61 64 69 69 0a 43 41 53 45 20 60 73 |do_radii.CASE `s| 00005f60 74 61 74 65 25 20 4f 46 0a 57 48 45 4e 20 31 20 |tate% OF.WHEN 1 | 00005f70 3a 20 50 52 4f 43 72 75 62 62 5f 6c 69 6e 65 0a |: PROCrubb_line.| 00005f80 49 46 20 28 60 62 25 20 41 4e 44 20 31 29 3d 31 |IF (`b% AND 1)=1| 00005f90 20 54 48 45 4e 0a 50 52 4f 43 72 75 62 62 5f 6c | THEN.PROCrubb_l| 00005fa0 69 6e 65 0a 60 64 6f 5f 78 30 25 20 3d 20 60 78 |ine.`do_x0% = `x| 00005fb0 25 0a 60 64 6f 5f 79 30 25 20 3d 20 60 79 25 0a |%.`do_y0% = `y%.| 00005fc0 45 4c 53 45 0a 49 46 20 28 60 62 25 20 41 4e 44 |ELSE.IF (`b% AND| 00005fd0 20 34 29 3d 34 20 54 48 45 4e 0a 50 52 4f 43 72 | 4)=4 THEN.PROCr| 00005fe0 75 62 62 5f 6c 69 6e 65 0a 50 4c 4f 54 20 34 2c |ubb_line.PLOT 4,| 00005ff0 60 64 6f 5f 78 30 25 2c 60 64 6f 5f 79 30 25 0a |`do_x0%,`do_y0%.| 00006000 50 4c 4f 54 20 35 2c 60 78 25 2c 60 79 25 0a 45 |PLOT 5,`x%,`y%.E| 00006010 4c 53 45 0a 50 52 4f 43 72 75 62 62 5f 6c 69 6e |LSE.PROCrubb_lin| 00006020 65 0a 45 4e 44 49 46 0a 45 4e 44 49 46 0a 57 48 |e.ENDIF.ENDIF.WH| 00006030 45 4e 20 30 20 3a 20 49 46 20 28 60 62 25 20 41 |EN 0 : IF (`b% A| 00006040 4e 44 20 34 29 3d 34 20 54 48 45 4e 0a 60 64 6f |ND 4)=4 THEN.`do| 00006050 5f 78 30 25 20 3d 20 60 78 25 0a 60 64 6f 5f 79 |_x0% = `x%.`do_y| 00006060 30 25 20 3d 20 60 79 25 0a 60 73 74 61 74 65 25 |0% = `y%.`state%| 00006070 20 3d 20 31 3a 50 52 4f 43 6b 65 79 5f 62 6f 75 | = 1:PROCkey_bou| 00006080 6e 63 65 0a 45 4e 44 49 46 0a 45 4e 44 43 41 53 |nce.ENDIF.ENDCAS| 00006090 45 0a 45 4e 44 50 52 4f 43 0a 44 45 46 20 50 52 |E.ENDPROC.DEF PR| 000060a0 4f 43 64 6f 5f 72 65 63 74 0a 43 41 53 45 20 60 |OCdo_rect.CASE `| 000060b0 73 74 61 74 65 25 20 4f 46 0a 57 48 45 4e 20 31 |state% OF.WHEN 1| 000060c0 20 3a 20 50 52 4f 43 72 75 62 62 5f 72 65 63 74 | : PROCrubb_rect| 000060d0 0a 49 46 20 28 60 62 25 20 41 4e 44 20 31 29 3d |.IF (`b% AND 1)=| 000060e0 31 20 54 48 45 4e 0a 50 52 4f 43 72 75 62 62 5f |1 THEN.PROCrubb_| 000060f0 72 65 63 74 0a 60 64 6f 5f 78 30 25 20 3d 20 60 |rect.`do_x0% = `| 00006100 78 25 0a 60 64 6f 5f 79 30 25 20 3d 20 60 79 25 |x%.`do_y0% = `y%| 00006110 0a 45 4c 53 45 0a 49 46 20 28 60 62 25 20 41 4e |.ELSE.IF (`b% AN| 00006120 44 20 34 29 3d 34 20 54 48 45 4e 0a 50 52 4f 43 |D 4)=4 THEN.PROC| 00006130 72 75 62 62 5f 72 65 63 74 0a 50 52 4f 43 64 72 |rubb_rect.PROCdr| 00006140 61 77 5f 72 65 63 74 0a 60 73 74 61 74 65 25 20 |aw_rect.`state% | 00006150 3d 20 30 3a 50 52 4f 43 6b 65 79 5f 62 6f 75 6e |= 0:PROCkey_boun| 00006160 63 65 0a 45 4c 53 45 0a 50 52 4f 43 72 75 62 62 |ce.ELSE.PROCrubb| 00006170 5f 72 65 63 74 0a 45 4e 44 49 46 0a 45 4e 44 49 |_rect.ENDIF.ENDI| 00006180 46 0a 57 48 45 4e 20 30 20 3a 20 49 46 20 28 60 |F.WHEN 0 : IF (`| 00006190 62 25 20 41 4e 44 20 34 29 3d 34 20 54 48 45 4e |b% AND 4)=4 THEN| 000061a0 0a 60 64 6f 5f 78 30 25 20 3d 20 60 78 25 0a 60 |.`do_x0% = `x%.`| 000061b0 64 6f 5f 79 30 25 20 3d 20 60 79 25 0a 60 73 74 |do_y0% = `y%.`st| 000061c0 61 74 65 25 20 3d 20 31 3a 50 52 4f 43 6b 65 79 |ate% = 1:PROCkey| 000061d0 5f 62 6f 75 6e 63 65 0a 45 4e 44 49 46 0a 45 4e |_bounce.ENDIF.EN| 000061e0 44 43 41 53 45 0a 45 4e 44 50 52 4f 43 0a 44 45 |DCASE.ENDPROC.DE| 000061f0 46 20 50 52 4f 43 64 6f 5f 73 71 75 61 72 65 0a |F PROCdo_square.| 00006200 43 41 53 45 20 60 73 74 61 74 65 25 20 4f 46 0a |CASE `state% OF.| 00006210 57 48 45 4e 20 31 20 3a 20 50 52 4f 43 72 75 62 |WHEN 1 : PROCrub| 00006220 62 5f 73 71 72 65 0a 49 46 20 28 60 62 25 20 41 |b_sqre.IF (`b% A| 00006230 4e 44 20 31 29 3d 31 20 54 48 45 4e 0a 50 52 4f |ND 1)=1 THEN.PRO| 00006240 43 72 75 62 62 5f 72 65 63 74 0a 60 64 6f 5f 78 |Crubb_rect.`do_x| 00006250 30 25 20 3d 20 60 78 25 0a 60 64 6f 5f 79 30 25 |0% = `x%.`do_y0%| 00006260 20 3d 20 60 79 25 0a 45 4c 53 45 0a 49 46 20 28 | = `y%.ELSE.IF (| 00006270 60 62 25 20 41 4e 44 20 34 29 3d 34 20 54 48 45 |`b% AND 4)=4 THE| 00006280 4e 0a 50 52 4f 43 72 75 62 62 5f 73 71 72 65 0a |N.PROCrubb_sqre.| 00006290 50 52 4f 43 64 72 61 77 5f 73 71 72 65 0a 60 73 |PROCdraw_sqre.`s| 000062a0 74 61 74 65 25 20 3d 20 30 3a 50 52 4f 43 6b 65 |tate% = 0:PROCke| 000062b0 79 5f 62 6f 75 6e 63 65 0a 45 4c 53 45 0a 50 52 |y_bounce.ELSE.PR| 000062c0 4f 43 72 75 62 62 5f 73 71 72 65 0a 45 4e 44 49 |OCrubb_sqre.ENDI| 000062d0 46 0a 45 4e 44 49 46 0a 57 48 45 4e 20 30 20 3a |F.ENDIF.WHEN 0 :| 000062e0 20 49 46 20 28 60 62 25 20 41 4e 44 20 34 29 3d | IF (`b% AND 4)=| 000062f0 34 20 54 48 45 4e 0a 60 64 6f 5f 78 30 25 20 3d |4 THEN.`do_x0% =| 00006300 20 60 78 25 0a 60 64 6f 5f 79 30 25 20 3d 20 60 | `x%.`do_y0% = `| 00006310 79 25 0a 60 73 74 61 74 65 25 20 3d 20 31 3a 50 |y%.`state% = 1:P| 00006320 52 4f 43 6b 65 79 5f 62 6f 75 6e 63 65 0a 45 4e |ROCkey_bounce.EN| 00006330 44 49 46 0a 45 4e 44 43 41 53 45 0a 45 4e 44 50 |DIF.ENDCASE.ENDP| 00006340 52 4f 43 0a 44 45 46 20 50 52 4f 43 64 6f 5f 70 |ROC.DEF PROCdo_p| 00006350 61 72 61 0a 43 41 53 45 20 60 73 74 61 74 65 25 |ara.CASE `state%| 00006360 20 4f 46 0a 57 48 45 4e 20 30 20 3a 20 49 46 20 | OF.WHEN 0 : IF | 00006370 28 60 62 25 20 41 4e 44 20 34 29 3d 34 20 54 48 |(`b% AND 4)=4 TH| 00006380 45 4e 0a 60 64 6f 5f 78 30 25 20 3d 20 60 78 25 |EN.`do_x0% = `x%| 00006390 0a 60 64 6f 5f 79 30 25 20 3d 20 60 79 25 0a 60 |.`do_y0% = `y%.`| 000063a0 73 74 61 74 65 25 20 3d 20 31 3a 50 52 4f 43 6b |state% = 1:PROCk| 000063b0 65 79 5f 62 6f 75 6e 63 65 0a 45 4e 44 49 46 0a |ey_bounce.ENDIF.| 000063c0 57 48 45 4e 20 31 20 3a 20 50 52 4f 43 72 75 62 |WHEN 1 : PROCrub| 000063d0 62 5f 6c 69 6e 65 0a 49 46 20 28 60 62 25 20 41 |b_line.IF (`b% A| 000063e0 4e 44 20 31 29 3d 31 20 54 48 45 4e 0a 50 52 4f |ND 1)=1 THEN.PRO| 000063f0 43 72 75 62 62 5f 6c 69 6e 65 0a 60 64 6f 5f 78 |Crubb_line.`do_x| 00006400 30 25 20 3d 20 60 78 25 0a 60 64 6f 5f 79 30 25 |0% = `x%.`do_y0%| 00006410 20 3d 20 60 79 25 0a 45 4c 53 45 0a 49 46 20 28 | = `y%.ELSE.IF (| 00006420 60 62 25 20 41 4e 44 20 34 29 3d 34 20 54 48 45 |`b% AND 4)=4 THE| 00006430 4e 0a 50 52 4f 43 72 75 62 62 5f 6c 69 6e 65 0a |N.PROCrubb_line.| 00006440 60 64 6f 5f 78 31 25 20 3d 20 60 78 25 0a 60 64 |`do_x1% = `x%.`d| 00006450 6f 5f 79 31 25 20 3d 20 60 79 25 0a 60 73 74 61 |o_y1% = `y%.`sta| 00006460 74 65 25 20 3d 20 32 3a 50 52 4f 43 6b 65 79 5f |te% = 2:PROCkey_| 00006470 62 6f 75 6e 63 65 0a 45 4c 53 45 0a 50 52 4f 43 |bounce.ELSE.PROC| 00006480 72 75 62 62 5f 6c 69 6e 65 0a 45 4e 44 49 46 0a |rubb_line.ENDIF.| 00006490 45 4e 44 49 46 0a 57 48 45 4e 20 32 20 3a 20 50 |ENDIF.WHEN 2 : P| 000064a0 52 4f 43 72 75 62 62 5f 70 61 72 61 0a 49 46 20 |ROCrubb_para.IF | 000064b0 28 60 62 25 20 41 4e 44 20 31 29 3d 31 20 54 48 |(`b% AND 1)=1 TH| 000064c0 45 4e 0a 50 52 4f 43 72 75 62 62 5f 70 61 72 61 |EN.PROCrubb_para| 000064d0 0a 60 64 6f 5f 78 30 25 20 3d 20 60 78 25 0a 60 |.`do_x0% = `x%.`| 000064e0 64 6f 5f 79 30 25 20 3d 20 60 79 25 0a 45 4c 53 |do_y0% = `y%.ELS| 000064f0 45 0a 49 46 20 28 60 62 25 20 41 4e 44 20 34 29 |E.IF (`b% AND 4)| 00006500 3d 34 20 54 48 45 4e 0a 50 52 4f 43 72 75 62 62 |=4 THEN.PROCrubb| 00006510 5f 70 61 72 61 0a 50 52 4f 43 64 72 61 77 5f 70 |_para.PROCdraw_p| 00006520 61 72 61 0a 60 73 74 61 74 65 25 20 3d 20 30 3a |ara.`state% = 0:| 00006530 50 52 4f 43 6b 65 79 5f 62 6f 75 6e 63 65 0a 45 |PROCkey_bounce.E| 00006540 4c 53 45 0a 50 52 4f 43 72 75 62 62 5f 70 61 72 |LSE.PROCrubb_par| 00006550 61 0a 45 4e 44 49 46 0a 45 4e 44 49 46 0a 45 4e |a.ENDIF.ENDIF.EN| 00006560 44 43 41 53 45 0a 45 4e 44 50 52 4f 43 0a 44 45 |DCASE.ENDPROC.DE| 00006570 46 20 50 52 4f 43 64 6f 5f 74 72 69 61 0a 43 41 |F PROCdo_tria.CA| 00006580 53 45 20 60 73 74 61 74 65 25 20 4f 46 0a 57 48 |SE `state% OF.WH| 00006590 45 4e 20 30 20 3a 20 49 46 20 28 60 62 25 20 41 |EN 0 : IF (`b% A| 000065a0 4e 44 20 34 29 3d 34 20 54 48 45 4e 0a 60 64 6f |ND 4)=4 THEN.`do| 000065b0 5f 78 30 25 20 3d 20 60 78 25 0a 60 64 6f 5f 79 |_x0% = `x%.`do_y| 000065c0 30 25 20 3d 20 60 79 25 0a 60 73 74 61 74 65 25 |0% = `y%.`state%| 000065d0 20 3d 20 31 3a 50 52 4f 43 6b 65 79 5f 62 6f 75 | = 1:PROCkey_bou| 000065e0 6e 63 65 0a 45 4e 44 49 46 0a 57 48 45 4e 20 31 |nce.ENDIF.WHEN 1| 000065f0 20 3a 20 50 52 4f 43 72 75 62 62 5f 6c 69 6e 65 | : PROCrubb_line| 00006600 0a 49 46 20 28 60 62 25 20 41 4e 44 20 31 29 3d |.IF (`b% AND 1)=| 00006610 31 20 54 48 45 4e 0a 50 52 4f 43 72 75 62 62 5f |1 THEN.PROCrubb_| 00006620 6c 69 6e 65 0a 60 64 6f 5f 78 30 25 20 3d 20 60 |line.`do_x0% = `| 00006630 78 25 0a 60 64 6f 5f 79 30 25 20 3d 20 60 79 25 |x%.`do_y0% = `y%| 00006640 0a 45 4c 53 45 0a 49 46 20 28 60 62 25 20 41 4e |.ELSE.IF (`b% AN| 00006650 44 20 34 29 3d 34 20 54 48 45 4e 0a 50 52 4f 43 |D 4)=4 THEN.PROC| 00006660 72 75 62 62 5f 6c 69 6e 65 0a 60 64 6f 5f 78 31 |rubb_line.`do_x1| 00006670 25 20 3d 20 60 78 25 0a 60 64 6f 5f 79 31 25 20 |% = `x%.`do_y1% | 00006680 3d 20 60 79 25 0a 60 73 74 61 74 65 25 20 3d 20 |= `y%.`state% = | 00006690 32 3a 50 52 4f 43 6b 65 79 5f 62 6f 75 6e 63 65 |2:PROCkey_bounce| 000066a0 0a 45 4c 53 45 0a 50 52 4f 43 72 75 62 62 5f 6c |.ELSE.PROCrubb_l| 000066b0 69 6e 65 0a 45 4e 44 49 46 0a 45 4e 44 49 46 0a |ine.ENDIF.ENDIF.| 000066c0 57 48 45 4e 20 32 20 3a 20 50 52 4f 43 72 75 62 |WHEN 2 : PROCrub| 000066d0 62 5f 74 72 69 61 0a 49 46 20 28 60 62 25 20 41 |b_tria.IF (`b% A| 000066e0 4e 44 20 31 29 3d 31 20 54 48 45 4e 0a 50 52 4f |ND 1)=1 THEN.PRO| 000066f0 43 72 75 62 62 5f 74 72 69 61 0a 60 64 6f 5f 78 |Crubb_tria.`do_x| 00006700 30 25 20 3d 20 60 78 25 0a 60 64 6f 5f 79 30 25 |0% = `x%.`do_y0%| 00006710 20 3d 20 60 79 25 0a 45 4c 53 45 0a 49 46 20 28 | = `y%.ELSE.IF (| 00006720 60 62 25 20 41 4e 44 20 34 29 3d 34 20 54 48 45 |`b% AND 4)=4 THE| 00006730 4e 0a 50 52 4f 43 72 75 62 62 5f 74 72 69 61 0a |N.PROCrubb_tria.| 00006740 50 52 4f 43 64 72 61 77 5f 74 72 69 61 0a 60 73 |PROCdraw_tria.`s| 00006750 74 61 74 65 25 20 3d 20 30 3a 50 52 4f 43 6b 65 |tate% = 0:PROCke| 00006760 79 5f 62 6f 75 6e 63 65 0a 45 4c 53 45 0a 50 52 |y_bounce.ELSE.PR| 00006770 4f 43 72 75 62 62 5f 74 72 69 61 0a 45 4e 44 49 |OCrubb_tria.ENDI| 00006780 46 0a 45 4e 44 49 46 0a 45 4e 44 43 41 53 45 0a |F.ENDIF.ENDCASE.| 00006790 45 4e 44 50 52 4f 43 0a 44 45 46 20 50 52 4f 43 |ENDPROC.DEF PROC| 000067a0 64 6f 5f 63 69 72 63 0a 43 41 53 45 20 60 73 74 |do_circ.CASE `st| 000067b0 61 74 65 25 20 4f 46 0a 57 48 45 4e 20 30 20 3a |ate% OF.WHEN 0 :| 000067c0 20 49 46 20 28 60 62 25 20 41 4e 44 20 34 29 3d | IF (`b% AND 4)=| 000067d0 34 20 54 48 45 4e 0a 60 64 6f 5f 78 30 25 20 3d |4 THEN.`do_x0% =| 000067e0 20 60 78 25 0a 60 64 6f 5f 79 30 25 20 3d 20 60 | `x%.`do_y0% = `| 000067f0 79 25 0a 60 73 74 61 74 65 25 20 3d 20 31 3a 50 |y%.`state% = 1:P| 00006800 52 4f 43 6b 65 79 5f 62 6f 75 6e 63 65 0a 45 4e |ROCkey_bounce.EN| 00006810 44 49 46 0a 57 48 45 4e 20 31 20 3a 20 50 52 4f |DIF.WHEN 1 : PRO| 00006820 43 72 75 62 62 5f 63 69 72 63 0a 49 46 20 28 60 |Crubb_circ.IF (`| 00006830 62 25 20 41 4e 44 20 31 29 3d 31 20 54 48 45 4e |b% AND 1)=1 THEN| 00006840 0a 50 52 4f 43 72 75 62 62 5f 63 69 72 63 0a 60 |.PROCrubb_circ.`| 00006850 64 6f 5f 78 30 25 20 3d 20 60 78 25 0a 60 64 6f |do_x0% = `x%.`do| 00006860 5f 79 30 25 20 3d 20 60 79 25 0a 45 4c 53 45 0a |_y0% = `y%.ELSE.| 00006870 49 46 20 28 60 62 25 20 41 4e 44 20 34 29 3d 34 |IF (`b% AND 4)=4| 00006880 20 54 48 45 4e 0a 50 52 4f 43 72 75 62 62 5f 63 | THEN.PROCrubb_c| 00006890 69 72 63 0a 50 52 4f 43 64 72 61 77 5f 63 69 72 |irc.PROCdraw_cir| 000068a0 63 0a 60 73 74 61 74 65 25 20 3d 20 30 3a 50 52 |c.`state% = 0:PR| 000068b0 4f 43 6b 65 79 5f 62 6f 75 6e 63 65 0a 45 4c 53 |OCkey_bounce.ELS| 000068c0 45 0a 50 52 4f 43 72 75 62 62 5f 63 69 72 63 0a |E.PROCrubb_circ.| 000068d0 45 4e 44 49 46 0a 45 4e 44 49 46 0a 45 4e 44 43 |ENDIF.ENDIF.ENDC| 000068e0 41 53 45 0a 45 4e 44 50 52 4f 43 0a 44 45 46 20 |ASE.ENDPROC.DEF | 000068f0 50 52 4f 43 64 6f 5f 65 6c 69 70 0a 43 41 53 45 |PROCdo_elip.CASE| 00006900 20 60 73 74 61 74 65 25 20 4f 46 0a 57 48 45 4e | `state% OF.WHEN| 00006910 20 30 20 3a 20 49 46 20 28 60 62 25 20 41 4e 44 | 0 : IF (`b% AND| 00006920 20 34 29 3d 34 20 54 48 45 4e 0a 60 64 6f 5f 78 | 4)=4 THEN.`do_x| 00006930 30 25 20 3d 20 60 78 25 0a 60 64 6f 5f 79 30 25 |0% = `x%.`do_y0%| 00006940 20 3d 20 60 79 25 0a 60 73 74 61 74 65 25 20 3d | = `y%.`state% =| 00006950 20 31 3a 50 52 4f 43 6b 65 79 5f 62 6f 75 6e 63 | 1:PROCkey_bounc| 00006960 65 0a 45 4e 44 49 46 0a 57 48 45 4e 20 31 20 3a |e.ENDIF.WHEN 1 :| 00006970 20 49 46 20 28 60 62 25 20 41 4e 44 20 31 29 3d | IF (`b% AND 1)=| 00006980 31 20 54 48 45 4e 0a 60 64 6f 5f 78 30 25 20 3d |1 THEN.`do_x0% =| 00006990 20 60 78 25 0a 60 64 6f 5f 79 30 25 20 3d 20 60 | `x%.`do_y0% = `| 000069a0 79 25 0a 45 4c 53 45 0a 50 52 4f 43 72 75 62 62 |y%.ELSE.PROCrubb| 000069b0 5f 6c 69 6e 65 0a 49 46 20 28 60 62 25 20 41 4e |_line.IF (`b% AN| 000069c0 44 20 34 29 3d 34 20 54 48 45 4e 0a 50 52 4f 43 |D 4)=4 THEN.PROC| 000069d0 72 75 62 62 5f 6c 69 6e 65 0a 60 64 6f 5f 78 31 |rubb_line.`do_x1| 000069e0 25 20 3d 20 60 78 25 0a 60 64 6f 5f 79 31 25 20 |% = `x%.`do_y1% | 000069f0 3d 20 60 79 25 0a 60 73 74 61 74 65 25 20 3d 20 |= `y%.`state% = | 00006a00 32 3a 50 52 4f 43 6b 65 79 5f 62 6f 75 6e 63 65 |2:PROCkey_bounce| 00006a10 0a 45 4c 53 45 0a 50 52 4f 43 72 75 62 62 5f 6c |.ELSE.PROCrubb_l| 00006a20 69 6e 65 0a 45 4e 44 49 46 0a 45 4e 44 49 46 0a |ine.ENDIF.ENDIF.| 00006a30 57 48 45 4e 20 32 20 3a 20 50 52 4f 43 72 75 62 |WHEN 2 : PROCrub| 00006a40 62 5f 65 6c 69 70 0a 49 46 20 28 60 62 25 20 41 |b_elip.IF (`b% A| 00006a50 4e 44 20 31 29 3d 31 20 54 48 45 4e 0a 50 52 4f |ND 1)=1 THEN.PRO| 00006a60 43 72 75 62 62 5f 65 6c 69 70 0a 60 64 6f 5f 78 |Crubb_elip.`do_x| 00006a70 30 25 20 3d 20 60 78 25 0a 60 64 6f 5f 79 30 25 |0% = `x%.`do_y0%| 00006a80 20 3d 20 60 79 25 0a 45 4c 53 45 0a 49 46 20 28 | = `y%.ELSE.IF (| 00006a90 60 62 25 20 41 4e 44 20 34 29 3d 34 20 54 48 45 |`b% AND 4)=4 THE| 00006aa0 4e 0a 50 52 4f 43 72 75 62 62 5f 65 6c 69 70 0a |N.PROCrubb_elip.| 00006ab0 50 52 4f 43 64 72 61 77 5f 65 6c 69 70 0a 60 73 |PROCdraw_elip.`s| 00006ac0 74 61 74 65 25 20 3d 20 30 3a 50 52 4f 43 6b 65 |tate% = 0:PROCke| 00006ad0 79 5f 62 6f 75 6e 63 65 0a 45 4c 53 45 0a 50 52 |y_bounce.ELSE.PR| 00006ae0 4f 43 72 75 62 62 5f 65 6c 69 70 0a 45 4e 44 49 |OCrubb_elip.ENDI| 00006af0 46 0a 45 4e 44 49 46 0a 45 4e 44 43 41 53 45 0a |F.ENDIF.ENDCASE.| 00006b00 45 4e 44 50 52 4f 43 0a 44 45 46 20 50 52 4f 43 |ENDPROC.DEF PROC| 00006b10 64 6f 5f 73 65 67 6d 0a 43 41 53 45 20 60 73 74 |do_segm.CASE `st| 00006b20 61 74 65 25 20 4f 46 0a 57 48 45 4e 20 30 20 3a |ate% OF.WHEN 0 :| 00006b30 20 49 46 20 28 60 62 25 20 41 4e 44 20 34 29 3d | IF (`b% AND 4)=| 00006b40 34 20 54 48 45 4e 0a 60 64 6f 5f 78 30 25 20 3d |4 THEN.`do_x0% =| 00006b50 20 60 78 25 0a 60 64 6f 5f 79 30 25 20 3d 20 60 | `x%.`do_y0% = `| 00006b60 79 25 0a 60 73 74 61 74 65 25 20 3d 20 31 3a 50 |y%.`state% = 1:P| 00006b70 52 4f 43 6b 65 79 5f 62 6f 75 6e 63 65 0a 45 4e |ROCkey_bounce.EN| 00006b80 44 49 46 0a 57 48 45 4e 20 31 20 3a 20 50 52 4f |DIF.WHEN 1 : PRO| 00006b90 43 72 75 62 62 5f 6c 69 6e 65 0a 49 46 20 28 60 |Crubb_line.IF (`| 00006ba0 62 25 20 41 4e 44 20 31 29 3d 31 20 54 48 45 4e |b% AND 1)=1 THEN| 00006bb0 0a 50 52 4f 43 72 75 62 62 5f 6c 69 6e 65 0a 60 |.PROCrubb_line.`| 00006bc0 64 6f 5f 78 30 25 20 3d 20 60 78 25 0a 60 64 6f |do_x0% = `x%.`do| 00006bd0 5f 79 30 25 20 3d 20 60 79 25 0a 45 4c 53 45 0a |_y0% = `y%.ELSE.| 00006be0 49 46 20 28 60 62 25 20 41 4e 44 20 34 29 3d 34 |IF (`b% AND 4)=4| 00006bf0 20 54 48 45 4e 0a 50 52 4f 43 72 75 62 62 5f 6c | THEN.PROCrubb_l| 00006c00 69 6e 65 0a 60 64 6f 5f 78 31 25 20 3d 20 60 78 |ine.`do_x1% = `x| 00006c10 25 0a 60 64 6f 5f 79 31 25 20 3d 20 60 79 25 0a |%.`do_y1% = `y%.| 00006c20 60 73 74 61 74 65 25 20 3d 20 32 3a 50 52 4f 43 |`state% = 2:PROC| 00006c30 6b 65 79 5f 62 6f 75 6e 63 65 0a 45 4c 53 45 0a |key_bounce.ELSE.| 00006c40 50 52 4f 43 72 75 62 62 5f 6c 69 6e 65 0a 45 4e |PROCrubb_line.EN| 00006c50 44 49 46 0a 45 4e 44 49 46 0a 57 48 45 4e 20 32 |DIF.ENDIF.WHEN 2| 00006c60 20 3a 20 50 52 4f 43 72 75 62 62 5f 73 65 67 6d | : PROCrubb_segm| 00006c70 0a 49 46 20 28 60 62 25 20 41 4e 44 20 31 29 3d |.IF (`b% AND 1)=| 00006c80 31 20 54 48 45 4e 0a 50 52 4f 43 72 75 62 62 5f |1 THEN.PROCrubb_| 00006c90 73 65 67 6d 0a 60 64 6f 5f 78 31 25 3d 60 78 25 |segm.`do_x1%=`x%| 00006ca0 0a 60 64 6f 5f 79 31 25 3d 60 79 25 0a 45 4c 53 |.`do_y1%=`y%.ELS| 00006cb0 45 0a 49 46 20 28 60 62 25 20 41 4e 44 20 34 29 |E.IF (`b% AND 4)| 00006cc0 3d 34 20 54 48 45 4e 0a 50 52 4f 43 72 75 62 62 |=4 THEN.PROCrubb| 00006cd0 5f 73 65 67 6d 0a 50 52 4f 43 64 72 61 77 5f 73 |_segm.PROCdraw_s| 00006ce0 65 67 6d 0a 60 73 74 61 74 65 25 20 3d 20 30 3a |egm.`state% = 0:| 00006cf0 50 52 4f 43 6b 65 79 5f 62 6f 75 6e 63 65 0a 45 |PROCkey_bounce.E| 00006d00 4c 53 45 0a 50 52 4f 43 72 75 62 62 5f 73 65 67 |LSE.PROCrubb_seg| 00006d10 6d 0a 45 4e 44 49 46 0a 45 4e 44 49 46 0a 45 4e |m.ENDIF.ENDIF.EN| 00006d20 44 43 41 53 45 0a 45 4e 44 50 52 4f 43 0a 44 45 |DCASE.ENDPROC.DE| 00006d30 46 20 50 52 4f 43 64 6f 5f 61 72 63 0a 43 41 53 |F PROCdo_arc.CAS| 00006d40 45 20 60 73 74 61 74 65 25 20 4f 46 0a 57 48 45 |E `state% OF.WHE| 00006d50 4e 20 30 20 3a 20 49 46 20 28 60 62 25 20 41 4e |N 0 : IF (`b% AN| 00006d60 44 20 34 29 3d 34 20 54 48 45 4e 0a 60 64 6f 5f |D 4)=4 THEN.`do_| 00006d70 78 30 25 20 3d 20 60 78 25 0a 60 64 6f 5f 79 30 |x0% = `x%.`do_y0| 00006d80 25 20 3d 20 60 79 25 0a 60 73 74 61 74 65 25 20 |% = `y%.`state% | 00006d90 3d 20 31 3a 50 52 4f 43 6b 65 79 5f 62 6f 75 6e |= 1:PROCkey_boun| 00006da0 63 65 0a 45 4e 44 49 46 0a 57 48 45 4e 20 31 20 |ce.ENDIF.WHEN 1 | 00006db0 3a 20 50 52 4f 43 72 75 62 62 5f 6c 69 6e 65 0a |: PROCrubb_line.| 00006dc0 49 46 20 28 60 62 25 20 41 4e 44 20 31 29 3d 31 |IF (`b% AND 1)=1| 00006dd0 20 54 48 45 4e 0a 50 52 4f 43 72 75 62 62 5f 6c | THEN.PROCrubb_l| 00006de0 69 6e 65 0a 60 64 6f 5f 78 30 25 20 3d 20 60 78 |ine.`do_x0% = `x| 00006df0 25 0a 60 64 6f 5f 79 30 25 20 3d 20 60 79 25 0a |%.`do_y0% = `y%.| 00006e00 45 4c 53 45 0a 49 46 20 28 60 62 25 20 41 4e 44 |ELSE.IF (`b% AND| 00006e10 20 34 29 3d 34 20 54 48 45 4e 0a 50 52 4f 43 72 | 4)=4 THEN.PROCr| 00006e20 75 62 62 5f 6c 69 6e 65 0a 60 64 6f 5f 78 31 25 |ubb_line.`do_x1%| 00006e30 20 3d 20 60 78 25 0a 60 64 6f 5f 79 31 25 20 3d | = `x%.`do_y1% =| 00006e40 20 60 79 25 0a 60 73 74 61 74 65 25 20 3d 20 32 | `y%.`state% = 2| 00006e50 3a 50 52 4f 43 6b 65 79 5f 62 6f 75 6e 63 65 0a |:PROCkey_bounce.| 00006e60 45 4c 53 45 0a 50 52 4f 43 72 75 62 62 5f 6c 69 |ELSE.PROCrubb_li| 00006e70 6e 65 0a 45 4e 44 49 46 0a 45 4e 44 49 46 0a 57 |ne.ENDIF.ENDIF.W| 00006e80 48 45 4e 20 32 20 3a 20 50 52 4f 43 72 75 62 62 |HEN 2 : PROCrubb| 00006e90 5f 61 72 63 0a 49 46 20 28 60 62 25 20 41 4e 44 |_arc.IF (`b% AND| 00006ea0 20 31 29 3d 31 20 54 48 45 4e 0a 50 52 4f 43 72 | 1)=1 THEN.PROCr| 00006eb0 75 62 62 5f 61 72 63 0a 60 64 6f 5f 78 31 25 3d |ubb_arc.`do_x1%=| 00006ec0 60 78 25 0a 60 64 6f 5f 79 31 25 3d 60 79 25 0a |`x%.`do_y1%=`y%.| 00006ed0 45 4c 53 45 0a 49 46 20 28 60 62 25 20 41 4e 44 |ELSE.IF (`b% AND| 00006ee0 20 34 29 3d 34 20 54 48 45 4e 0a 50 52 4f 43 72 | 4)=4 THEN.PROCr| 00006ef0 75 62 62 5f 61 72 63 0a 50 52 4f 43 64 72 61 77 |ubb_arc.PROCdraw| 00006f00 5f 61 72 63 0a 60 73 74 61 74 65 25 20 3d 20 30 |_arc.`state% = 0| 00006f10 3a 50 52 4f 43 6b 65 79 5f 62 6f 75 6e 63 65 0a |:PROCkey_bounce.| 00006f20 45 4c 53 45 0a 50 52 4f 43 72 75 62 62 5f 61 72 |ELSE.PROCrubb_ar| 00006f30 63 0a 45 4e 44 49 46 0a 45 4e 44 49 46 0a 45 4e |c.ENDIF.ENDIF.EN| 00006f40 44 43 41 53 45 0a 45 4e 44 50 52 4f 43 0a 44 45 |DCASE.ENDPROC.DE| 00006f50 46 20 50 52 4f 43 64 6f 5f 73 65 63 74 0a 43 41 |F PROCdo_sect.CA| 00006f60 53 45 20 60 73 74 61 74 65 25 20 4f 46 0a 57 48 |SE `state% OF.WH| 00006f70 45 4e 20 30 20 3a 20 49 46 20 28 60 62 25 20 41 |EN 0 : IF (`b% A| 00006f80 4e 44 20 34 29 3d 34 20 54 48 45 4e 0a 60 64 6f |ND 4)=4 THEN.`do| 00006f90 5f 78 30 25 20 3d 20 60 78 25 0a 60 64 6f 5f 79 |_x0% = `x%.`do_y| 00006fa0 30 25 20 3d 20 60 79 25 0a 60 73 74 61 74 65 25 |0% = `y%.`state%| 00006fb0 20 3d 20 31 3a 50 52 4f 43 6b 65 79 5f 62 6f 75 | = 1:PROCkey_bou| 00006fc0 6e 63 65 0a 45 4e 44 49 46 0a 57 48 45 4e 20 31 |nce.ENDIF.WHEN 1| 00006fd0 20 3a 20 50 52 4f 43 72 75 62 62 5f 6c 69 6e 65 | : PROCrubb_line| 00006fe0 0a 49 46 20 28 60 62 25 20 41 4e 44 20 31 29 3d |.IF (`b% AND 1)=| 00006ff0 31 20 54 48 45 4e 0a 50 52 4f 43 72 75 62 62 5f |1 THEN.PROCrubb_| 00007000 6c 69 6e 65 0a 60 64 6f 5f 78 30 25 20 3d 20 60 |line.`do_x0% = `| 00007010 78 25 0a 60 64 6f 5f 79 30 25 20 3d 20 60 79 25 |x%.`do_y0% = `y%| 00007020 0a 45 4c 53 45 0a 49 46 20 28 60 62 25 20 41 4e |.ELSE.IF (`b% AN| 00007030 44 20 34 29 3d 34 20 54 48 45 4e 0a 50 52 4f 43 |D 4)=4 THEN.PROC| 00007040 72 75 62 62 5f 6c 69 6e 65 0a 60 64 6f 5f 78 31 |rubb_line.`do_x1| 00007050 25 20 3d 20 60 78 25 0a 60 64 6f 5f 79 31 25 20 |% = `x%.`do_y1% | 00007060 3d 20 60 79 25 0a 60 73 74 61 74 65 25 20 3d 20 |= `y%.`state% = | 00007070 32 3a 50 52 4f 43 6b 65 79 5f 62 6f 75 6e 63 65 |2:PROCkey_bounce| 00007080 0a 45 4c 53 45 0a 50 52 4f 43 72 75 62 62 5f 6c |.ELSE.PROCrubb_l| 00007090 69 6e 65 0a 45 4e 44 49 46 0a 45 4e 44 49 46 0a |ine.ENDIF.ENDIF.| 000070a0 57 48 45 4e 20 32 20 3a 20 50 52 4f 43 72 75 62 |WHEN 2 : PROCrub| 000070b0 62 5f 73 65 63 74 0a 49 46 20 28 60 62 25 20 41 |b_sect.IF (`b% A| 000070c0 4e 44 20 31 29 3d 31 20 54 48 45 4e 0a 50 52 4f |ND 1)=1 THEN.PRO| 000070d0 43 72 75 62 62 5f 73 65 63 74 0a 60 64 6f 5f 78 |Crubb_sect.`do_x| 000070e0 31 25 3d 60 78 25 0a 60 64 6f 5f 79 31 25 3d 60 |1%=`x%.`do_y1%=`| 000070f0 79 25 0a 45 4c 53 45 0a 49 46 20 28 60 62 25 20 |y%.ELSE.IF (`b% | 00007100 41 4e 44 20 34 29 3d 34 20 54 48 45 4e 0a 50 52 |AND 4)=4 THEN.PR| 00007110 4f 43 72 75 62 62 5f 73 65 63 74 0a 50 52 4f 43 |OCrubb_sect.PROC| 00007120 64 72 61 77 5f 73 65 63 74 0a 60 73 74 61 74 65 |draw_sect.`state| 00007130 25 20 3d 20 30 3a 50 52 4f 43 6b 65 79 5f 62 6f |% = 0:PROCkey_bo| 00007140 75 6e 63 65 0a 45 4c 53 45 0a 50 52 4f 43 72 75 |unce.ELSE.PROCru| 00007150 62 62 5f 73 65 63 74 0a 45 4e 44 49 46 0a 45 4e |bb_sect.ENDIF.EN| 00007160 44 49 46 0a 45 4e 44 43 41 53 45 0a 45 4e 44 50 |DIF.ENDCASE.ENDP| 00007170 52 4f 43 0a 44 45 46 20 50 52 4f 43 64 6f 5f 63 |ROC.DEF PROCdo_c| 00007180 6f 70 79 0a 43 41 53 45 20 60 73 74 61 74 65 25 |opy.CASE `state%| 00007190 20 4f 46 0a 57 48 45 4e 20 30 20 3a 20 49 46 20 | OF.WHEN 0 : IF | 000071a0 28 60 62 25 20 41 4e 44 20 34 29 3d 34 20 54 48 |(`b% AND 4)=4 TH| 000071b0 45 4e 0a 60 64 6f 5f 78 30 25 20 3d 20 60 78 25 |EN.`do_x0% = `x%| 000071c0 0a 60 64 6f 5f 79 30 25 20 3d 20 60 79 25 0a 60 |.`do_y0% = `y%.`| 000071d0 73 74 61 74 65 25 20 3d 20 31 3a 50 52 4f 43 6b |state% = 1:PROCk| 000071e0 65 79 5f 62 6f 75 6e 63 65 0a 50 52 4f 43 6b 65 |ey_bounce.PROCke| 000071f0 79 5f 62 6f 75 6e 63 65 0a 45 4e 44 49 46 0a 57 |y_bounce.ENDIF.W| 00007200 48 45 4e 20 31 20 3a 20 50 52 4f 43 72 75 62 62 |HEN 1 : PROCrubb| 00007210 5f 72 65 63 74 0a 49 46 20 28 60 62 25 20 41 4e |_rect.IF (`b% AN| 00007220 44 20 31 29 3d 31 20 54 48 45 4e 0a 50 52 4f 43 |D 1)=1 THEN.PROC| 00007230 72 75 62 62 5f 72 65 63 74 0a 60 64 6f 5f 78 30 |rubb_rect.`do_x0| 00007240 25 20 3d 20 60 78 25 0a 60 64 6f 5f 79 30 25 20 |% = `x%.`do_y0% | 00007250 3d 20 60 79 25 0a 45 4c 53 45 0a 49 46 20 28 60 |= `y%.ELSE.IF (`| 00007260 62 25 20 41 4e 44 20 34 29 3d 34 20 54 48 45 4e |b% AND 4)=4 THEN| 00007270 0a 50 52 4f 43 72 75 62 62 5f 72 65 63 74 0a 60 |.PROCrubb_rect.`| 00007280 64 6f 5f 78 31 25 20 3d 20 60 78 25 0a 60 64 6f |do_x1% = `x%.`do| 00007290 5f 79 31 25 20 3d 20 60 79 25 0a 4d 4f 56 45 20 |_y1% = `y%.MOVE | 000072a0 60 64 6f 5f 78 30 25 2c 60 64 6f 5f 79 30 25 0a |`do_x0%,`do_y0%.| 000072b0 4d 4f 56 45 20 60 64 6f 5f 78 31 25 2c 60 64 6f |MOVE `do_x1%,`do| 000072c0 5f 79 31 25 0a 52 45 4d 20 2a 73 67 65 74 20 31 |_y1%.REM *sget 1| 000072d0 0a 53 59 53 20 26 32 45 2c 32 35 36 2b 31 34 2c |.SYS &2E,256+14,| 000072e0 73 70 74 5f 61 72 65 61 2c 22 31 22 2c 30 0a 60 |spt_area,"1",0.`| 000072f0 73 74 61 74 65 25 20 3d 20 32 3a 50 52 4f 43 6b |state% = 2:PROCk| 00007300 65 79 5f 62 6f 75 6e 63 65 0a 50 52 4f 43 6b 65 |ey_bounce.PROCke| 00007310 79 5f 62 6f 75 6e 63 65 0a 45 4c 53 45 0a 50 52 |y_bounce.ELSE.PR| 00007320 4f 43 72 75 62 62 5f 72 65 63 74 0a 45 4e 44 49 |OCrubb_rect.ENDI| 00007330 46 0a 45 4e 44 49 46 0a 57 48 45 4e 20 32 20 3a |F.ENDIF.WHEN 2 :| 00007340 20 50 52 4f 43 6d 6f 76 65 5f 72 65 63 74 0a 49 | PROCmove_rect.I| 00007350 46 20 28 60 62 25 20 41 4e 44 20 34 29 3d 34 20 |F (`b% AND 4)=4 | 00007360 54 48 45 4e 0a 50 52 4f 43 6d 6f 76 65 5f 72 65 |THEN.PROCmove_re| 00007370 63 74 0a 50 52 4f 43 64 72 61 77 5f 63 6f 70 79 |ct.PROCdraw_copy| 00007380 0a 45 4c 53 45 0a 49 46 20 28 60 62 25 20 41 4e |.ELSE.IF (`b% AN| 00007390 44 20 31 29 3d 31 20 54 48 45 4e 0a 50 52 4f 43 |D 1)=1 THEN.PROC| 000073a0 6d 6f 76 65 5f 72 65 63 74 0a 60 73 74 61 74 65 |move_rect.`state| 000073b0 25 20 3d 20 30 3a 50 52 4f 43 6b 65 79 5f 62 6f |% = 0:PROCkey_bo| 000073c0 75 6e 63 65 0a 50 52 4f 43 6b 65 79 5f 62 6f 75 |unce.PROCkey_bou| 000073d0 6e 63 65 0a 45 4c 53 45 0a 50 52 4f 43 6d 6f 76 |nce.ELSE.PROCmov| 000073e0 65 5f 72 65 63 74 0a 45 4e 44 49 46 0a 45 4e 44 |e_rect.ENDIF.END| 000073f0 49 46 0a 45 4e 44 43 41 53 45 0a 45 4e 44 50 52 |IF.ENDCASE.ENDPR| 00007400 4f 43 0a 44 45 46 20 50 52 4f 43 64 6f 5f 63 6c |OC.DEF PROCdo_cl| 00007410 65 61 72 0a 49 46 20 28 60 62 25 20 41 4e 44 20 |ear.IF (`b% AND | 00007420 34 29 3d 34 20 54 48 45 4e 0a 47 43 4f 4c 20 31 |4)=4 THEN.GCOL 1| 00007430 33 35 0a 43 4c 47 0a 60 64 72 5f 61 72 65 61 3d |35.CLG.`dr_area=| 00007440 2d 31 0a 50 52 4f 43 73 63 72 6e 5f 63 6f 70 79 |-1.PROCscrn_copy| 00007450 0a 53 59 53 20 73 63 72 65 65 6e 5f 72 65 64 72 |.SYS screen_redr| 00007460 61 77 2c 2d 31 2c 30 2c 30 2c 31 32 37 39 2c 31 |aw,-1,0,0,1279,1| 00007470 30 32 33 0a 45 4e 44 49 46 0a 45 4e 44 50 52 4f |023.ENDIF.ENDPRO| 00007480 43 0a 44 45 46 20 50 52 4f 43 64 6f 5f 6d 6f 76 |C.DEF PROCdo_mov| 00007490 65 0a 43 41 53 45 20 60 73 74 61 74 65 25 20 4f |e.CASE `state% O| 000074a0 46 0a 57 48 45 4e 20 30 20 3a 20 49 46 20 28 60 |F.WHEN 0 : IF (`| 000074b0 62 25 20 41 4e 44 20 34 29 3d 34 20 54 48 45 4e |b% AND 4)=4 THEN| 000074c0 0a 60 64 6f 5f 78 30 25 20 3d 20 60 78 25 0a 60 |.`do_x0% = `x%.`| 000074d0 64 6f 5f 79 30 25 20 3d 20 60 79 25 0a 60 73 74 |do_y0% = `y%.`st| 000074e0 61 74 65 25 20 3d 20 31 3a 50 52 4f 43 6b 65 79 |ate% = 1:PROCkey| 000074f0 5f 62 6f 75 6e 63 65 0a 50 52 4f 43 6b 65 79 5f |_bounce.PROCkey_| 00007500 62 6f 75 6e 63 65 0a 45 4e 44 49 46 0a 57 48 45 |bounce.ENDIF.WHE| 00007510 4e 20 31 20 3a 20 50 52 4f 43 72 75 62 62 5f 72 |N 1 : PROCrubb_r| 00007520 65 63 74 0a 49 46 20 28 60 62 25 20 41 4e 44 20 |ect.IF (`b% AND | 00007530 31 29 3d 31 20 54 48 45 4e 0a 50 52 4f 43 72 75 |1)=1 THEN.PROCru| 00007540 62 62 5f 72 65 63 74 0a 60 64 6f 5f 78 30 25 20 |bb_rect.`do_x0% | 00007550 3d 20 60 78 25 0a 60 64 6f 5f 79 30 25 20 3d 20 |= `x%.`do_y0% = | 00007560 60 79 25 0a 45 4c 53 45 0a 49 46 20 28 60 62 25 |`y%.ELSE.IF (`b%| 00007570 20 41 4e 44 20 34 29 3d 34 20 54 48 45 4e 0a 50 | AND 4)=4 THEN.P| 00007580 52 4f 43 72 75 62 62 5f 72 65 63 74 0a 60 64 6f |ROCrubb_rect.`do| 00007590 5f 78 31 25 20 3d 20 60 78 25 0a 60 64 6f 5f 79 |_x1% = `x%.`do_y| 000075a0 31 25 20 3d 20 60 79 25 0a 60 73 74 61 74 65 25 |1% = `y%.`state%| 000075b0 20 3d 20 32 3a 50 52 4f 43 6b 65 79 5f 62 6f 75 | = 2:PROCkey_bou| 000075c0 6e 63 65 0a 50 52 4f 43 6b 65 79 5f 62 6f 75 6e |nce.PROCkey_boun| 000075d0 63 65 0a 45 4c 53 45 0a 50 52 4f 43 72 75 62 62 |ce.ELSE.PROCrubb| 000075e0 5f 72 65 63 74 0a 45 4e 44 49 46 0a 45 4e 44 49 |_rect.ENDIF.ENDI| 000075f0 46 0a 57 48 45 4e 20 32 20 3a 20 50 52 4f 43 6d |F.WHEN 2 : PROCm| 00007600 6f 76 65 5f 72 65 63 74 0a 49 46 20 28 60 62 25 |ove_rect.IF (`b%| 00007610 20 41 4e 44 20 34 29 3d 34 20 54 48 45 4e 0a 50 | AND 4)=4 THEN.P| 00007620 52 4f 43 6d 6f 76 65 5f 72 65 63 74 0a 50 52 4f |ROCmove_rect.PRO| 00007630 43 64 72 61 77 5f 6d 6f 76 65 0a 60 73 74 61 74 |Cdraw_move.`stat| 00007640 65 25 20 3d 20 30 3a 50 52 4f 43 6b 65 79 5f 62 |e% = 0:PROCkey_b| 00007650 6f 75 6e 63 65 0a 45 4c 53 45 0a 50 52 4f 43 6d |ounce.ELSE.PROCm| 00007660 6f 76 65 5f 72 65 63 74 0a 45 4e 44 49 46 0a 45 |ove_rect.ENDIF.E| 00007670 4e 44 43 41 53 45 0a 45 4e 44 50 52 4f 43 0a 44 |NDCASE.ENDPROC.D| 00007680 45 46 20 50 52 4f 43 64 6f 5f 66 69 6c 6c 0a 49 |EF PROCdo_fill.I| 00007690 46 20 28 60 62 25 20 41 4e 44 20 34 29 3c 3e 34 |F (`b% AND 4)<>4| 000076a0 20 54 48 45 4e 20 45 4e 44 50 52 4f 43 0a 61 25 | THEN ENDPROC.a%| 000076b0 20 3d 20 50 4f 49 4e 54 28 60 78 25 2c 60 79 25 | = POINT(`x%,`y%| 000076c0 29 0a 47 43 4f 4c 31 32 38 2b 61 25 0a 50 4c 4f |).GCOL128+a%.PLO| 000076d0 54 20 26 38 35 2c 60 78 25 2c 60 79 25 0a 47 43 |T &85,`x%,`y%.GC| 000076e0 4f 4c 31 33 35 0a 45 4e 44 50 52 4f 43 0a 44 45 |OL135.ENDPROC.DE| 000076f0 46 20 50 52 4f 43 64 6f 5f 74 65 78 74 0a 43 41 |F PROCdo_text.CA| 00007700 53 45 20 60 73 74 61 74 65 25 20 4f 46 0a 57 48 |SE `state% OF.WH| 00007710 45 4e 20 30 20 3a 20 49 46 20 28 60 62 25 20 41 |EN 0 : IF (`b% A| 00007720 4e 44 20 34 29 3d 34 20 54 48 45 4e 0a 60 64 6f |ND 4)=4 THEN.`do| 00007730 5f 78 30 25 3d 60 78 25 0a 60 64 6f 5f 79 30 25 |_x0%=`x%.`do_y0%| 00007740 3d 60 79 25 0a 60 73 74 61 74 65 25 20 3d 20 31 |=`y%.`state% = 1| 00007750 20 3a 20 50 52 4f 43 6b 65 79 5f 62 6f 75 6e 63 | : PROCkey_bounc| 00007760 65 0a 53 59 53 20 36 2c 31 35 2c 31 0a 45 4e 44 |e.SYS 6,15,1.END| 00007770 49 46 0a 57 48 45 4e 20 31 20 3a 20 57 41 49 54 |IF.WHEN 1 : WAIT| 00007780 3a 50 52 4f 43 72 75 62 62 5f 63 75 72 73 3a 57 |:PROCrubb_curs:W| 00007790 41 49 54 0a 49 46 20 28 60 62 25 20 41 4e 44 20 |AIT.IF (`b% AND | 000077a0 31 29 3d 31 20 54 48 45 4e 0a 50 52 4f 43 72 75 |1)=1 THEN.PROCru| 000077b0 62 62 5f 63 75 72 73 0a 60 64 6f 5f 78 30 25 3d |bb_curs.`do_x0%=| 000077c0 60 78 25 0a 60 64 6f 5f 79 30 25 3d 60 79 25 0a |`x%.`do_y0%=`y%.| 000077d0 45 4c 53 45 0a 50 52 4f 43 72 75 62 62 5f 63 75 |ELSE.PROCrubb_cu| 000077e0 72 73 0a 61 25 3d 49 4e 4b 45 59 28 30 29 0a 49 |rs.a%=INKEY(0).I| 000077f0 46 20 61 25 3d 31 33 20 54 48 45 4e 0a 60 73 74 |F a%=13 THEN.`st| 00007800 61 74 65 25 3d 30 0a 45 4c 53 45 0a 49 46 20 61 |ate%=0.ELSE.IF a| 00007810 25 3c 3e 2d 31 20 54 48 45 4e 0a 56 44 55 20 35 |%<>-1 THEN.VDU 5| 00007820 0a 50 4c 4f 54 20 34 2c 60 64 6f 5f 78 30 25 2c |.PLOT 4,`do_x0%,| 00007830 60 64 6f 5f 79 30 25 2b 33 32 0a 56 44 55 20 61 |`do_y0%+32.VDU a| 00007840 25 0a 60 64 6f 5f 78 30 25 3d 60 64 6f 5f 78 30 |%.`do_x0%=`do_x0| 00007850 25 2b 31 36 0a 45 4e 44 49 46 0a 45 4e 44 49 46 |%+16.ENDIF.ENDIF| 00007860 0a 45 4e 44 49 46 0a 45 4e 44 43 41 53 45 0a 45 |.ENDIF.ENDCASE.E| 00007870 4e 44 50 52 4f 43 0a 52 45 4d 20 2a 2a 2a 2a 2a |NDPROC.REM *****| 00007880 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 000078b0 2a 2a 2a 2a 2a 2a 2a 2a 0a 44 45 46 20 50 52 4f |********.DEF PRO| 000078c0 43 72 75 62 62 5f 6c 69 6e 65 0a 50 4c 4f 54 20 |Crubb_line.PLOT | 000078d0 34 2c 60 64 6f 5f 78 30 25 2c 60 64 6f 5f 79 30 |4,`do_x0%,`do_y0| 000078e0 25 0a 50 4c 4f 54 20 36 2c 60 78 25 2c 60 79 25 |%.PLOT 6,`x%,`y%| 000078f0 0a 45 4e 44 50 52 4f 43 0a 44 45 46 20 50 52 4f |.ENDPROC.DEF PRO| 00007900 43 72 75 62 62 5f 72 65 63 74 0a 50 4c 4f 54 20 |Crubb_rect.PLOT | 00007910 34 2c 60 64 6f 5f 78 30 25 2c 60 64 6f 5f 79 30 |4,`do_x0%,`do_y0| 00007920 25 0a 50 4c 4f 54 20 36 2c 60 64 6f 5f 78 30 25 |%.PLOT 6,`do_x0%| 00007930 2c 60 79 25 0a 50 4c 4f 54 20 36 2c 60 78 25 2c |,`y%.PLOT 6,`x%,| 00007940 60 79 25 0a 50 4c 4f 54 20 36 2c 60 78 25 2c 60 |`y%.PLOT 6,`x%,`| 00007950 64 6f 5f 79 30 25 0a 50 4c 4f 54 20 36 2c 60 64 |do_y0%.PLOT 6,`d| 00007960 6f 5f 78 30 25 2c 60 64 6f 5f 79 30 25 0a 45 4e |o_x0%,`do_y0%.EN| 00007970 44 50 52 4f 43 0a 44 45 46 20 50 52 4f 43 72 75 |DPROC.DEF PROCru| 00007980 62 62 5f 73 71 72 65 0a 49 46 20 28 41 42 53 28 |bb_sqre.IF (ABS(| 00007990 60 64 6f 5f 78 30 25 2d 60 78 25 29 29 20 3e 20 |`do_x0%-`x%)) > | 000079a0 28 41 42 53 28 60 64 6f 5f 79 30 25 2d 60 79 25 |(ABS(`do_y0%-`y%| 000079b0 29 29 20 54 48 45 4e 0a 49 46 20 60 64 6f 5f 79 |)) THEN.IF `do_y| 000079c0 30 25 20 3e 20 60 79 25 20 54 48 45 4e 0a 60 79 |0% > `y% THEN.`y| 000079d0 25 20 3d 20 60 64 6f 5f 79 30 25 20 2d 20 28 41 |% = `do_y0% - (A| 000079e0 42 53 28 60 64 6f 5f 78 30 25 2d 60 78 25 29 29 |BS(`do_x0%-`x%))| 000079f0 0a 45 4c 53 45 0a 60 79 25 20 3d 20 60 64 6f 5f |.ELSE.`y% = `do_| 00007a00 79 30 25 20 2b 20 28 41 42 53 28 60 64 6f 5f 78 |y0% + (ABS(`do_x| 00007a10 30 25 2d 60 78 25 29 29 0a 45 4e 44 49 46 0a 45 |0%-`x%)).ENDIF.E| 00007a20 4c 53 45 0a 49 46 20 60 64 6f 5f 78 30 25 20 3e |LSE.IF `do_x0% >| 00007a30 20 60 78 25 20 54 48 45 4e 0a 60 78 25 20 3d 20 | `x% THEN.`x% = | 00007a40 60 64 6f 5f 78 30 25 20 2d 20 28 41 42 53 28 60 |`do_x0% - (ABS(`| 00007a50 64 6f 5f 79 30 25 2d 60 79 25 29 29 0a 45 4c 53 |do_y0%-`y%)).ELS| 00007a60 45 0a 60 78 25 20 3d 20 60 64 6f 5f 78 30 25 20 |E.`x% = `do_x0% | 00007a70 2b 20 28 41 42 53 28 60 64 6f 5f 79 30 25 2d 60 |+ (ABS(`do_y0%-`| 00007a80 79 25 29 29 0a 45 4e 44 49 46 0a 45 4e 44 49 46 |y%)).ENDIF.ENDIF| 00007a90 0a 50 4c 4f 54 20 34 2c 60 64 6f 5f 78 30 25 2c |.PLOT 4,`do_x0%,| 00007aa0 60 64 6f 5f 79 30 25 0a 50 4c 4f 54 20 36 2c 60 |`do_y0%.PLOT 6,`| 00007ab0 64 6f 5f 78 30 25 2c 60 79 25 0a 50 4c 4f 54 20 |do_x0%,`y%.PLOT | 00007ac0 36 2c 60 78 25 2c 60 79 25 0a 50 4c 4f 54 20 36 |6,`x%,`y%.PLOT 6| 00007ad0 2c 60 78 25 2c 60 64 6f 5f 79 30 25 0a 50 4c 4f |,`x%,`do_y0%.PLO| 00007ae0 54 20 36 2c 60 64 6f 5f 78 30 25 2c 60 64 6f 5f |T 6,`do_x0%,`do_| 00007af0 79 30 25 0a 45 4e 44 50 52 4f 43 0a 44 45 46 20 |y0%.ENDPROC.DEF | 00007b00 50 52 4f 43 72 75 62 62 5f 70 61 72 61 0a 50 4c |PROCrubb_para.PL| 00007b10 4f 54 20 34 2c 60 64 6f 5f 78 30 25 2c 60 64 6f |OT 4,`do_x0%,`do| 00007b20 5f 79 30 25 0a 50 4c 4f 54 20 36 2c 60 64 6f 5f |_y0%.PLOT 6,`do_| 00007b30 78 31 25 2c 60 64 6f 5f 79 31 25 0a 50 4c 4f 54 |x1%,`do_y1%.PLOT| 00007b40 20 36 2c 60 78 25 2c 60 79 25 0a 50 4c 4f 54 20 | 6,`x%,`y%.PLOT | 00007b50 36 2c 60 64 6f 5f 78 30 25 2b 28 60 78 25 2d 60 |6,`do_x0%+(`x%-`| 00007b60 64 6f 5f 78 31 25 29 2c 60 64 6f 5f 79 30 25 2b |do_x1%),`do_y0%+| 00007b70 28 60 79 25 2d 60 64 6f 5f 79 31 25 29 0a 50 4c |(`y%-`do_y1%).PL| 00007b80 4f 54 20 36 2c 60 64 6f 5f 78 30 25 2c 60 64 6f |OT 6,`do_x0%,`do| 00007b90 5f 79 30 25 0a 45 4e 44 50 52 4f 43 0a 44 45 46 |_y0%.ENDPROC.DEF| 00007ba0 20 50 52 4f 43 72 75 62 62 5f 74 72 69 61 0a 50 | PROCrubb_tria.P| 00007bb0 4c 4f 54 20 34 2c 60 64 6f 5f 78 30 25 2c 60 64 |LOT 4,`do_x0%,`d| 00007bc0 6f 5f 79 30 25 0a 50 4c 4f 54 20 36 2c 60 64 6f |o_y0%.PLOT 6,`do| 00007bd0 5f 78 31 25 2c 60 64 6f 5f 79 31 25 0a 50 4c 4f |_x1%,`do_y1%.PLO| 00007be0 54 20 36 2c 60 78 25 2c 60 79 25 0a 50 4c 4f 54 |T 6,`x%,`y%.PLOT| 00007bf0 20 36 2c 60 64 6f 5f 78 30 25 2c 60 64 6f 5f 79 | 6,`do_x0%,`do_y| 00007c00 30 25 0a 45 4e 44 50 52 4f 43 0a 44 45 46 20 50 |0%.ENDPROC.DEF P| 00007c10 52 4f 43 72 75 62 62 5f 63 69 72 63 0a 50 4c 4f |ROCrubb_circ.PLO| 00007c20 54 20 34 2c 60 64 6f 5f 78 30 25 2c 60 64 6f 5f |T 4,`do_x0%,`do_| 00007c30 79 30 25 0a 50 4c 4f 54 20 26 39 36 2c 60 78 25 |y0%.PLOT &96,`x%| 00007c40 2c 60 79 25 0a 45 4e 44 50 52 4f 43 0a 44 45 46 |,`y%.ENDPROC.DEF| 00007c50 20 50 52 4f 43 72 75 62 62 5f 65 6c 69 70 0a 50 | PROCrubb_elip.P| 00007c60 4c 4f 54 20 34 2c 60 64 6f 5f 78 30 25 2c 60 64 |LOT 4,`do_x0%,`d| 00007c70 6f 5f 79 30 25 0a 50 4c 4f 54 20 34 2c 60 64 6f |o_y0%.PLOT 4,`do| 00007c80 5f 78 31 25 2c 60 64 6f 5f 79 31 25 0a 50 4c 4f |_x1%,`do_y1%.PLO| 00007c90 54 20 26 43 36 2c 60 78 25 2c 60 79 25 0a 45 4e |T &C6,`x%,`y%.EN| 00007ca0 44 50 52 4f 43 0a 44 45 46 20 50 52 4f 43 72 75 |DPROC.DEF PROCru| 00007cb0 62 62 5f 73 65 67 6d 0a 50 4c 4f 54 20 34 2c 60 |bb_segm.PLOT 4,`| 00007cc0 64 6f 5f 78 30 25 2c 60 64 6f 5f 79 30 25 0a 50 |do_x0%,`do_y0%.P| 00007cd0 4c 4f 54 20 34 2c 60 64 6f 5f 78 31 25 2c 60 64 |LOT 4,`do_x1%,`d| 00007ce0 6f 5f 79 31 25 0a 50 4c 4f 54 20 26 41 45 2c 60 |o_y1%.PLOT &AE,`| 00007cf0 78 25 2c 60 79 25 0a 45 4e 44 50 52 4f 43 0a 44 |x%,`y%.ENDPROC.D| 00007d00 45 46 20 50 52 4f 43 72 75 62 62 5f 61 72 63 0a |EF PROCrubb_arc.| 00007d10 50 4c 4f 54 20 34 2c 60 64 6f 5f 78 30 25 2c 60 |PLOT 4,`do_x0%,`| 00007d20 64 6f 5f 79 30 25 0a 50 4c 4f 54 20 34 2c 60 64 |do_y0%.PLOT 4,`d| 00007d30 6f 5f 78 31 25 2c 60 64 6f 5f 79 31 25 0a 50 4c |o_x1%,`do_y1%.PL| 00007d40 4f 54 20 26 41 36 2c 60 78 25 2c 60 79 25 0a 45 |OT &A6,`x%,`y%.E| 00007d50 4e 44 50 52 4f 43 0a 44 45 46 20 50 52 4f 43 72 |NDPROC.DEF PROCr| 00007d60 75 62 62 5f 73 65 63 74 0a 50 4c 4f 54 20 34 2c |ubb_sect.PLOT 4,| 00007d70 60 64 6f 5f 78 30 25 2c 60 64 6f 5f 79 30 25 0a |`do_x0%,`do_y0%.| 00007d80 50 4c 4f 54 20 34 2c 60 64 6f 5f 78 31 25 2c 60 |PLOT 4,`do_x1%,`| 00007d90 64 6f 5f 79 31 25 0a 50 4c 4f 54 20 26 42 36 2c |do_y1%.PLOT &B6,| 00007da0 60 78 25 2c 60 79 25 0a 45 4e 44 50 52 4f 43 0a |`x%,`y%.ENDPROC.| 00007db0 44 45 46 20 50 52 4f 43 72 75 62 62 5f 63 75 72 |DEF PROCrubb_cur| 00007dc0 73 0a 50 4c 4f 54 20 34 2c 60 64 6f 5f 78 30 25 |s.PLOT 4,`do_x0%| 00007dd0 2c 60 64 6f 5f 79 30 25 0a 50 4c 4f 54 20 26 36 |,`do_y0%.PLOT &6| 00007de0 32 2c 31 36 2c 33 32 0a 45 4e 44 50 52 4f 43 0a |2,16,32.ENDPROC.| 00007df0 44 45 46 20 50 52 4f 43 6d 6f 76 65 5f 72 65 63 |DEF PROCmove_rec| 00007e00 74 0a 50 4c 4f 54 20 34 2c 60 78 25 2c 60 79 25 |t.PLOT 4,`x%,`y%| 00007e10 0a 50 4c 4f 54 20 36 2c 60 78 25 2c 60 79 25 2b |.PLOT 6,`x%,`y%+| 00007e20 41 42 53 28 60 64 6f 5f 79 30 25 2d 60 64 6f 5f |ABS(`do_y0%-`do_| 00007e30 79 31 25 29 0a 50 4c 4f 54 20 36 2c 60 78 25 2b |y1%).PLOT 6,`x%+| 00007e40 41 42 53 28 60 64 6f 5f 78 31 25 2d 60 64 6f 5f |ABS(`do_x1%-`do_| 00007e50 78 30 25 29 2c 60 79 25 2b 41 42 53 28 60 64 6f |x0%),`y%+ABS(`do| 00007e60 5f 79 30 25 2d 60 64 6f 5f 79 31 25 29 0a 50 4c |_y0%-`do_y1%).PL| 00007e70 4f 54 20 36 2c 60 78 25 2b 41 42 53 28 60 64 6f |OT 6,`x%+ABS(`do| 00007e80 5f 78 31 25 2d 60 64 6f 5f 78 30 25 29 2c 60 79 |_x1%-`do_x0%),`y| 00007e90 25 0a 50 4c 4f 54 20 36 2c 60 78 25 2c 60 79 25 |%.PLOT 6,`x%,`y%| 00007ea0 0a 45 4e 44 50 52 4f 43 0a 52 45 4d 20 2a 2a 2a |.ENDPROC.REM ***| 00007eb0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 00007ee0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0a 44 45 46 20 50 |**********.DEF P| 00007ef0 52 4f 43 64 72 61 77 5f 72 65 63 74 0a 49 46 20 |ROCdraw_rect.IF | 00007f00 60 6d 5f 66 69 6c 6c 20 54 48 45 4e 0a 52 45 43 |`m_fill THEN.REC| 00007f10 54 41 4e 47 4c 45 20 46 49 4c 4c 20 60 78 25 2c |TANGLE FILL `x%,| 00007f20 60 79 25 2c 60 64 6f 5f 78 30 25 2d 60 78 25 2c |`y%,`do_x0%-`x%,| 00007f30 60 64 6f 5f 79 30 25 2d 60 79 25 0a 45 4c 53 45 |`do_y0%-`y%.ELSE| 00007f40 0a 52 45 43 54 41 4e 47 4c 45 20 60 78 25 2c 60 |.RECTANGLE `x%,`| 00007f50 79 25 2c 60 64 6f 5f 78 30 25 2d 60 78 25 2c 60 |y%,`do_x0%-`x%,`| 00007f60 64 6f 5f 79 30 25 2d 60 79 25 0a 45 4e 44 49 46 |do_y0%-`y%.ENDIF| 00007f70 0a 45 4e 44 50 52 4f 43 0a 44 45 46 20 50 52 4f |.ENDPROC.DEF PRO| 00007f80 43 64 72 61 77 5f 73 71 72 65 0a 49 46 20 28 41 |Cdraw_sqre.IF (A| 00007f90 42 53 28 60 64 6f 5f 78 30 25 2d 60 78 25 29 29 |BS(`do_x0%-`x%))| 00007fa0 20 3e 20 28 41 42 53 28 60 64 6f 5f 79 30 25 2d | > (ABS(`do_y0%-| 00007fb0 60 79 25 29 29 20 54 48 45 4e 0a 49 46 20 60 64 |`y%)) THEN.IF `d| 00007fc0 6f 5f 79 30 25 20 3e 20 60 79 25 20 54 48 45 4e |o_y0% > `y% THEN| 00007fd0 0a 60 79 25 20 3d 20 60 64 6f 5f 79 30 25 20 2d |.`y% = `do_y0% -| 00007fe0 20 28 41 42 53 28 60 64 6f 5f 78 30 25 2d 60 78 | (ABS(`do_x0%-`x| 00007ff0 25 29 29 0a 45 4c 53 45 0a 60 79 25 20 3d 20 60 |%)).ELSE.`y% = `| 00008000 64 6f 5f 79 30 25 20 2b 20 28 41 42 53 28 60 64 |do_y0% + (ABS(`d| 00008010 6f 5f 78 30 25 2d 60 78 25 29 29 0a 45 4e 44 49 |o_x0%-`x%)).ENDI| 00008020 46 0a 45 4c 53 45 0a 49 46 20 60 64 6f 5f 78 30 |F.ELSE.IF `do_x0| 00008030 25 20 3e 20 60 78 25 20 54 48 45 4e 0a 60 78 25 |% > `x% THEN.`x%| 00008040 20 3d 20 60 64 6f 5f 78 30 25 20 2d 20 28 41 42 | = `do_x0% - (AB| 00008050 53 28 60 64 6f 5f 79 30 25 2d 60 79 25 29 29 0a |S(`do_y0%-`y%)).| 00008060 45 4c 53 45 0a 60 78 25 20 3d 20 60 64 6f 5f 78 |ELSE.`x% = `do_x| 00008070 30 25 20 2b 20 28 41 42 53 28 60 64 6f 5f 79 30 |0% + (ABS(`do_y0| 00008080 25 2d 60 79 25 29 29 0a 45 4e 44 49 46 0a 45 4e |%-`y%)).ENDIF.EN| 00008090 44 49 46 0a 49 46 20 60 6d 5f 6f 70 65 6e 20 54 |DIF.IF `m_open T| 000080a0 48 45 4e 0a 52 45 43 54 41 4e 47 4c 45 20 60 78 |HEN.RECTANGLE `x| 000080b0 25 2c 60 79 25 2c 60 64 6f 5f 78 30 25 2d 60 78 |%,`y%,`do_x0%-`x| 000080c0 25 2c 60 64 6f 5f 79 30 25 2d 60 79 25 0a 45 4c |%,`do_y0%-`y%.EL| 000080d0 53 45 0a 52 45 43 54 41 4e 47 4c 45 20 46 49 4c |SE.RECTANGLE FIL| 000080e0 4c 20 60 78 25 2c 60 79 25 2c 60 64 6f 5f 78 30 |L `x%,`y%,`do_x0| 000080f0 25 2d 60 78 25 2c 60 64 6f 5f 79 30 25 2d 60 79 |%-`x%,`do_y0%-`y| 00008100 25 0a 45 4e 44 49 46 0a 45 4e 44 50 52 4f 43 0a |%.ENDIF.ENDPROC.| 00008110 44 45 46 20 50 52 4f 43 64 72 61 77 5f 70 61 72 |DEF PROCdraw_par| 00008120 61 0a 49 46 20 60 6d 5f 6f 70 65 6e 20 54 48 45 |a.IF `m_open THE| 00008130 4e 0a 50 4c 4f 54 20 34 2c 60 64 6f 5f 78 30 25 |N.PLOT 4,`do_x0%| 00008140 2c 60 64 6f 5f 79 30 25 0a 50 4c 4f 54 20 35 2c |,`do_y0%.PLOT 5,| 00008150 60 64 6f 5f 78 31 25 2c 60 64 6f 5f 79 31 25 0a |`do_x1%,`do_y1%.| 00008160 50 4c 4f 54 20 35 2c 60 78 25 2c 60 79 25 0a 50 |PLOT 5,`x%,`y%.P| 00008170 4c 4f 54 20 35 2c 60 64 6f 5f 78 30 25 2b 28 60 |LOT 5,`do_x0%+(`| 00008180 78 25 2d 60 64 6f 5f 78 31 25 29 2c 60 64 6f 5f |x%-`do_x1%),`do_| 00008190 79 30 25 2b 28 60 79 25 2d 60 64 6f 5f 79 31 25 |y0%+(`y%-`do_y1%| 000081a0 29 0a 50 4c 4f 54 20 35 2c 60 64 6f 5f 78 30 25 |).PLOT 5,`do_x0%| 000081b0 2c 60 64 6f 5f 79 30 25 0a 45 4c 53 45 0a 50 4c |,`do_y0%.ELSE.PL| 000081c0 4f 54 20 34 2c 60 64 6f 5f 78 30 25 2c 60 64 6f |OT 4,`do_x0%,`do| 000081d0 5f 79 30 25 0a 50 4c 4f 54 20 34 2c 60 64 6f 5f |_y0%.PLOT 4,`do_| 000081e0 78 31 25 2c 60 64 6f 5f 79 31 25 0a 50 4c 4f 54 |x1%,`do_y1%.PLOT| 000081f0 20 26 37 35 2c 60 78 25 2c 60 79 25 0a 45 4e 44 | &75,`x%,`y%.END| 00008200 49 46 0a 45 4e 44 50 52 4f 43 0a 44 45 46 20 50 |IF.ENDPROC.DEF P| 00008210 52 4f 43 64 72 61 77 5f 74 72 69 61 0a 49 46 20 |ROCdraw_tria.IF | 00008220 60 6d 5f 6f 70 65 6e 20 54 48 45 4e 0a 50 4c 4f |`m_open THEN.PLO| 00008230 54 20 34 2c 60 64 6f 5f 78 30 25 2c 60 64 6f 5f |T 4,`do_x0%,`do_| 00008240 79 30 25 0a 50 4c 4f 54 20 35 2c 60 64 6f 5f 78 |y0%.PLOT 5,`do_x| 00008250 31 25 2c 60 64 6f 5f 79 31 25 0a 50 4c 4f 54 20 |1%,`do_y1%.PLOT | 00008260 35 2c 60 78 25 2c 60 79 25 0a 50 4c 4f 54 20 35 |5,`x%,`y%.PLOT 5| 00008270 2c 60 64 6f 5f 78 30 25 2c 60 64 6f 5f 79 30 25 |,`do_x0%,`do_y0%| 00008280 0a 45 4c 53 45 0a 50 4c 4f 54 20 34 2c 60 64 6f |.ELSE.PLOT 4,`do| 00008290 5f 78 30 25 2c 60 64 6f 5f 79 30 25 0a 50 4c 4f |_x0%,`do_y0%.PLO| 000082a0 54 20 34 2c 60 64 6f 5f 78 31 25 2c 60 64 6f 5f |T 4,`do_x1%,`do_| 000082b0 79 31 25 0a 50 4c 4f 54 20 26 35 35 2c 60 78 25 |y1%.PLOT &55,`x%| 000082c0 2c 60 79 25 0a 45 4e 44 49 46 0a 45 4e 44 50 52 |,`y%.ENDIF.ENDPR| 000082d0 4f 43 0a 44 45 46 20 50 52 4f 43 64 72 61 77 5f |OC.DEF PROCdraw_| 000082e0 63 69 72 63 0a 50 4c 4f 54 20 34 2c 60 64 6f 5f |circ.PLOT 4,`do_| 000082f0 78 30 25 2c 60 64 6f 5f 79 30 25 0a 49 46 20 60 |x0%,`do_y0%.IF `| 00008300 6d 5f 6f 70 65 6e 20 54 48 45 4e 0a 50 4c 4f 54 |m_open THEN.PLOT| 00008310 20 26 39 35 2c 60 78 25 2c 60 79 25 0a 45 4c 53 | &95,`x%,`y%.ELS| 00008320 45 0a 50 4c 4f 54 20 26 39 44 2c 60 78 25 2c 60 |E.PLOT &9D,`x%,`| 00008330 79 25 0a 45 4e 44 49 46 0a 45 4e 44 50 52 4f 43 |y%.ENDIF.ENDPROC| 00008340 0a 44 45 46 20 50 52 4f 43 64 72 61 77 5f 65 6c |.DEF PROCdraw_el| 00008350 69 70 0a 50 4c 4f 54 20 34 2c 60 64 6f 5f 78 30 |ip.PLOT 4,`do_x0| 00008360 25 2c 60 64 6f 5f 79 30 25 0a 50 4c 4f 54 20 34 |%,`do_y0%.PLOT 4| 00008370 2c 60 64 6f 5f 78 31 25 2c 60 64 6f 5f 79 31 25 |,`do_x1%,`do_y1%| 00008380 0a 49 46 20 60 6d 5f 6f 70 65 6e 20 54 48 45 4e |.IF `m_open THEN| 00008390 0a 50 4c 4f 54 20 26 43 35 2c 60 78 25 2c 60 79 |.PLOT &C5,`x%,`y| 000083a0 25 0a 45 4c 53 45 0a 50 4c 4f 54 20 26 43 44 2c |%.ELSE.PLOT &CD,| 000083b0 60 78 25 2c 60 79 25 0a 45 4e 44 49 46 0a 45 4e |`x%,`y%.ENDIF.EN| 000083c0 44 50 52 4f 43 0a 44 45 46 20 50 52 4f 43 64 72 |DPROC.DEF PROCdr| 000083d0 61 77 5f 73 65 67 6d 0a 50 4c 4f 54 20 34 2c 60 |aw_segm.PLOT 4,`| 000083e0 64 6f 5f 78 30 25 2c 60 64 6f 5f 79 30 25 0a 49 |do_x0%,`do_y0%.I| 000083f0 46 20 60 6d 5f 6f 70 65 6e 20 54 48 45 4e 0a 50 |F `m_open THEN.P| 00008400 4c 4f 54 20 34 2c 60 64 6f 5f 78 31 25 2c 60 64 |LOT 4,`do_x1%,`d| 00008410 6f 5f 79 31 25 0a 50 4c 4f 54 20 26 41 44 2c 60 |o_y1%.PLOT &AD,`| 00008420 78 25 2c 60 79 25 0a 45 4c 53 45 0a 50 4c 4f 54 |x%,`y%.ELSE.PLOT| 00008430 20 34 2c 60 64 6f 5f 78 31 25 2c 60 64 6f 5f 79 | 4,`do_x1%,`do_y| 00008440 31 25 0a 50 4c 4f 54 20 26 41 44 2c 60 78 25 2c |1%.PLOT &AD,`x%,| 00008450 60 79 25 0a 45 4e 44 49 46 0a 45 4e 44 50 52 4f |`y%.ENDIF.ENDPRO| 00008460 43 0a 44 45 46 20 50 52 4f 43 64 72 61 77 5f 61 |C.DEF PROCdraw_a| 00008470 72 63 0a 50 4c 4f 54 20 34 2c 60 64 6f 5f 78 30 |rc.PLOT 4,`do_x0| 00008480 25 2c 60 64 6f 5f 79 30 25 0a 50 4c 4f 54 20 34 |%,`do_y0%.PLOT 4| 00008490 2c 60 64 6f 5f 78 31 25 2c 60 64 6f 5f 79 31 25 |,`do_x1%,`do_y1%| 000084a0 0a 50 4c 4f 54 20 26 41 35 2c 60 78 25 2c 60 79 |.PLOT &A5,`x%,`y| 000084b0 25 0a 45 4e 44 50 52 4f 43 0a 44 45 46 20 50 52 |%.ENDPROC.DEF PR| 000084c0 4f 43 64 72 61 77 5f 73 65 63 74 0a 50 4c 4f 54 |OCdraw_sect.PLOT| 000084d0 20 34 2c 60 64 6f 5f 78 30 25 2c 60 64 6f 5f 79 | 4,`do_x0%,`do_y| 000084e0 30 25 0a 49 46 20 60 6d 5f 6f 70 65 6e 20 54 48 |0%.IF `m_open TH| 000084f0 45 4e 0a 50 4c 4f 54 20 34 2c 60 64 6f 5f 78 31 |EN.PLOT 4,`do_x1| 00008500 25 2c 60 64 6f 5f 79 31 25 0a 50 4c 4f 54 20 26 |%,`do_y1%.PLOT &| 00008510 42 35 2c 60 78 25 2c 60 79 25 0a 45 4c 53 45 0a |B5,`x%,`y%.ELSE.| 00008520 50 4c 4f 54 20 34 2c 60 64 6f 5f 78 31 25 2c 60 |PLOT 4,`do_x1%,`| 00008530 64 6f 5f 79 31 25 0a 50 4c 4f 54 20 26 42 35 2c |do_y1%.PLOT &B5,| 00008540 60 78 25 2c 60 79 25 0a 45 4e 44 49 46 0a 45 4e |`x%,`y%.ENDIF.EN| 00008550 44 50 52 4f 43 0a 44 45 46 20 50 52 4f 43 64 72 |DPROC.DEF PROCdr| 00008560 61 77 5f 63 6f 70 79 0a 52 45 4d 20 2a 53 43 48 |aw_copy.REM *SCH| 00008570 4f 4f 53 45 20 31 0a 4d 4f 56 45 20 60 78 25 2c |OOSE 1.MOVE `x%,| 00008580 60 79 25 0a 53 59 53 20 26 32 45 2c 32 35 36 2b |`y%.SYS &2E,256+| 00008590 32 38 2c 73 70 74 5f 61 72 65 61 2c 22 31 22 0a |28,spt_area,"1".| 000085a0 45 4e 44 50 52 4f 43 0a 44 45 46 20 50 52 4f 43 |ENDPROC.DEF PROC| 000085b0 64 72 61 77 5f 6d 6f 76 65 0a 47 43 4f 4c 20 31 |draw_move.GCOL 1| 000085c0 33 35 0a 50 4c 4f 54 20 34 2c 60 64 6f 5f 78 30 |35.PLOT 4,`do_x0| 000085d0 25 2c 60 64 6f 5f 79 30 25 0a 50 4c 4f 54 20 34 |%,`do_y0%.PLOT 4| 000085e0 2c 60 64 6f 5f 78 31 25 2c 60 64 6f 5f 79 31 25 |,`do_x1%,`do_y1%| 000085f0 0a 50 4c 4f 54 20 26 42 44 2c 60 78 25 2c 60 79 |.PLOT &BD,`x%,`y| 00008600 25 0a 45 4e 44 50 52 4f 43 0a 44 41 54 41 20 22 |%.ENDPROC.DATA "| 00008610 57 45 4c 43 4f 4d 45 20 50 41 49 4e 54 20 42 79 |WELCOME PAINT By| 00008620 20 48 2e 44 6f 75 67 6c 61 73 2d 53 6d 69 74 68 | H.Douglas-Smith| 00008630 22 0a 44 41 54 41 20 22 48 65 6c 70 20 69 73 20 |".DATA "Help is | 00008640 6e 6f 74 20 61 76 61 69 6c 61 62 6c 65 20 6f 6e |not available on| 00008650 20 35 31 32 6b 20 6d 61 63 68 69 6e 65 22 0a 44 | 512k machine".D| 00008660 41 54 41 20 22 20 22 0a 44 41 54 41 20 22 20 22 |ATA " ".DATA " "| 00008670 0a 44 41 54 41 20 22 20 22 0a 44 41 54 41 20 22 |.DATA " ".DATA "| 00008680 20 22 0a 44 41 54 41 20 22 20 22 0a 44 41 54 41 | ".DATA " ".DATA| 00008690 20 22 22 0a 52 45 4d 20 63 6f 6e 74 61 69 6e 20 | "".REM contain | 000086a0 32 38 20 69 63 6f 6e 73 20 28 30 2d 32 37 29 0a |28 icons (0-27).| 000086b0 44 45 46 20 50 52 4f 43 63 72 65 61 74 65 5f 68 |DEF PROCcreate_h| 000086c0 65 6c 70 0a 4c 4f 43 41 4c 20 61 24 2c 62 24 2c |elp.LOCAL a$,b$,| 000086d0 61 25 2c 62 25 2c 63 25 0a 6e 25 20 3d 20 30 0a |a%,b%,c%.n% = 0.| 000086e0 68 70 20 3d 20 60 68 65 6c 70 0a 52 45 50 45 41 |hp = `help.REPEA| 000086f0 54 0a 46 4f 52 20 61 25 20 3d 20 31 20 54 4f 20 |T.FOR a% = 1 TO | 00008700 37 0a 52 45 41 44 20 61 24 0a 49 46 20 4c 45 4e |7.READ a$.IF LEN| 00008710 20 61 24 3c 34 34 20 54 48 45 4e 0a 52 45 50 45 | a$<44 THEN.REPE| 00008720 41 54 0a 61 24 20 3d 20 22 20 22 2b 61 24 2b 22 |AT.a$ = " "+a$+"| 00008730 20 22 0a 55 4e 54 49 4c 20 4c 45 4e 20 61 24 20 | ".UNTIL LEN a$ | 00008740 3e 3d 20 34 34 0a 45 4e 44 49 46 0a 61 24 20 3d |>= 44.ENDIF.a$ =| 00008750 20 4c 45 46 54 24 28 61 24 2c 34 34 29 0a 46 4f | LEFT$(a$,44).FO| 00008760 52 20 62 25 20 3d 20 30 20 54 4f 20 33 0a 21 68 |R b% = 0 TO 3.!h| 00008770 70 20 3d 20 77 69 6e 64 6f 77 73 28 33 29 0a 68 |p = windows(3).h| 00008780 70 21 34 3d 20 62 25 2a 31 38 30 0a 68 70 21 38 |p!4= b%*180.hp!8| 00008790 3d 20 30 2d 61 25 2a 34 30 0a 68 70 21 31 32 20 |= 0-a%*40.hp!12 | 000087a0 3d 20 62 25 2a 31 38 30 2b 31 38 30 0a 68 70 21 |= b%*180+180.hp!| 000087b0 31 36 20 3d 20 30 2d 28 61 25 2a 34 30 2d 34 30 |16 = 0-(a%*40-40| 000087c0 29 0a 68 70 21 32 30 20 3d 20 26 33 31 0a 68 70 |).hp!20 = &31.hp| 000087d0 3f 32 33 20 3d 20 60 69 62 2a 31 36 2b 60 69 66 |?23 = `ib*16+`if| 000087e0 0a 24 28 68 70 2b 32 34 29 20 3d 20 4d 49 44 24 |.$(hp+24) = MID$| 000087f0 28 61 24 2c 62 25 2a 31 31 2b 31 2c 31 31 29 0a |(a$,b%*11+1,11).| 00008800 68 70 20 3d 20 68 70 20 2b 20 33 36 0a 4e 45 58 |hp = hp + 36.NEX| 00008810 54 20 62 25 0a 4e 45 58 54 20 61 25 0a 52 45 41 |T b%.NEXT a%.REA| 00008820 44 20 62 24 0a 55 4e 54 49 4c 20 62 24 20 3d 20 |D b$.UNTIL b$ = | 00008830 22 22 0a 68 70 20 3d 20 60 68 65 6c 70 0a 68 65 |"".hp = `help.he| 00008840 6c 70 28 30 2c 32 29 20 3d 20 68 70 0a 46 4f 52 |lp(0,2) = hp.FOR| 00008850 20 61 25 20 3d 20 31 20 54 4f 20 35 0a 46 4f 52 | a% = 1 TO 5.FOR| 00008860 20 62 25 20 3d 20 33 20 54 4f 20 60 73 75 62 5f | b% = 3 TO `sub_| 00008870 6d 65 6e 28 61 25 29 2d 31 0a 68 65 6c 70 28 61 |men(a%)-1.help(a| 00008880 25 2c 62 25 29 20 3d 20 68 70 0a 4e 45 58 54 20 |%,b%) = hp.NEXT | 00008890 62 25 0a 4e 45 58 54 20 61 25 0a 45 4e 44 50 52 |b%.NEXT a%.ENDPR| 000088a0 4f 43 0a 44 45 46 20 50 52 4f 43 75 70 64 61 74 |OC.DEF PROCupdat| 000088b0 65 5f 68 65 6c 70 0a 50 52 4f 43 67 65 74 5f 77 |e_help.PROCget_w| 000088c0 69 6e 64 6f 77 5f 73 74 61 74 65 28 77 69 6e 64 |indow_state(wind| 000088d0 6f 77 73 28 33 29 29 0a 49 46 20 28 77 69 6d 70 |ows(3)).IF (wimp| 000088e0 3f 33 34 20 41 4e 44 20 31 29 20 3d 20 31 20 54 |?34 AND 1) = 1 T| 000088f0 48 45 4e 0a 50 52 4f 43 63 6c 6f 73 65 5f 77 69 |HEN.PROCclose_wi| 00008900 6e 64 6f 77 28 77 69 6e 64 6f 77 73 28 33 29 29 |ndow(windows(3))| 00008910 0a 50 52 4f 43 74 65 73 74 5f 6f 70 65 6e 28 77 |.PROCtest_open(w| 00008920 69 6e 64 6f 77 73 28 33 29 29 0a 45 4e 44 49 46 |indows(3)).ENDIF| 00008930 0a 45 4e 44 50 52 4f 43 0a 44 45 46 20 50 52 4f |.ENDPROC.DEF PRO| 00008940 43 73 65 6c 65 63 74 5f 63 6f 6c 6f 75 72 28 69 |Cselect_colour(i| 00008950 63 6f 6e 25 29 0a 49 46 20 69 63 6f 6e 25 3e 31 |con%).IF icon%>1| 00008960 39 20 54 48 45 4e 20 45 4e 44 50 52 4f 43 0a 49 |9 THEN ENDPROC.I| 00008970 46 20 69 63 6f 6e 25 20 3c 31 36 20 54 48 45 4e |F icon% <16 THEN| 00008980 0a 60 63 6f 6c 25 20 3d 20 69 63 6f 6e 25 0a 47 |.`col% = icon%.G| 00008990 43 4f 4c 20 60 63 6f 6c 25 0a 52 45 43 54 41 4e |COL `col%.RECTAN| 000089a0 47 4c 45 20 46 49 4c 4c 20 34 36 2c 36 39 34 2c |GLE FILL 46,694,| 000089b0 36 34 2c 36 34 0a 53 59 53 20 26 32 45 2c 31 36 |64,64.SYS &2E,16| 000089c0 2c 30 2c 22 63 75 72 63 6f 6c 22 2c 30 2c 34 36 |,0,"curcol",0,46| 000089d0 2c 36 39 34 2c 31 30 30 2c 37 35 38 0a 50 52 4f |,694,100,758.PRO| 000089e0 43 73 65 74 5f 69 63 6f 6e 5f 73 74 61 74 65 28 |Cset_icon_state(| 000089f0 77 69 6e 64 6f 77 73 28 36 29 2c 32 30 2c 26 33 |windows(6),20,&3| 00008a00 30 33 45 2c 60 69 66 2c 60 63 6f 6c 25 2b 26 38 |03E,`if,`col%+&8| 00008a10 30 2c 2d 31 29 0a 50 52 4f 43 67 65 74 5f 77 69 |0,-1).PROCget_wi| 00008a20 6e 64 6f 77 5f 73 74 61 74 65 28 77 69 6e 64 6f |ndow_state(windo| 00008a30 77 73 28 37 29 29 20 3a 52 45 4d 20 70 61 6c 65 |ws(7)) :REM pale| 00008a40 74 74 65 0a 49 46 20 28 77 69 6d 70 3f 33 34 20 |tte.IF (wimp?34 | 00008a50 41 4e 44 20 33 29 3d 33 20 50 52 4f 43 70 61 6c |AND 3)=3 PROCpal| 00008a60 5f 75 70 64 0a 47 43 4f 4c 20 60 73 74 79 6c 65 |_upd.GCOL `style| 00008a70 25 2c 60 63 6f 6c 25 0a 43 4f 4c 4f 55 52 20 60 |%,`col%.COLOUR `| 00008a80 63 6f 6c 25 0a 45 4c 53 45 0a 60 70 74 72 6e 20 |col%.ELSE.`ptrn | 00008a90 3d 20 69 63 6f 6e 25 2d 31 36 0a 60 63 6f 6c 25 |= icon%-16.`col%| 00008aa0 20 3d 20 31 37 0a 50 52 4f 43 65 63 66 28 60 70 | = 17.PROCecf(`p| 00008ab0 74 72 6e 29 0a 47 43 4f 4c 20 38 30 2c 30 0a 52 |trn).GCOL 80,0.R| 00008ac0 45 43 54 41 4e 47 4c 45 20 46 49 4c 4c 20 34 36 |ECTANGLE FILL 46| 00008ad0 2c 36 39 34 2c 36 34 2c 36 34 0a 53 59 53 20 26 |,694,64,64.SYS &| 00008ae0 32 45 2c 31 36 2c 30 2c 22 63 75 72 63 6f 6c 22 |2E,16,0,"curcol"| 00008af0 2c 30 2c 34 36 2c 36 39 34 2c 31 30 30 2c 37 35 |,0,46,694,100,75| 00008b00 38 0a 50 52 4f 43 75 70 64 5f 65 63 66 0a 47 43 |8.PROCupd_ecf.GC| 00008b10 4f 4c 38 30 2b 60 73 74 79 6c 65 25 2c 30 0a 56 |OL80+`style%,0.V| 00008b20 44 55 32 36 0a 50 4c 4f 54 20 26 38 35 2c 38 34 |DU26.PLOT &85,84| 00008b30 2c 37 34 30 0a 50 52 4f 43 73 68 6f 77 5f 70 61 |,740.PROCshow_pa| 00008b40 74 74 0a 45 4e 44 49 46 0a 45 4e 44 50 52 4f 43 |tt.ENDIF.ENDPROC| 00008b50 0a 52 45 4d 20 2a 20 50 61 6c 65 74 74 65 20 57 |.REM * Palette W| 00008b60 69 6e 64 6f 77 20 55 70 64 61 74 65 20 2a 0a 44 |indow Update *.D| 00008b70 45 46 20 50 52 4f 43 70 61 6c 5f 75 70 64 0a 47 |EF PROCpal_upd.G| 00008b80 43 4f 4c 20 37 0a 43 49 52 43 4c 45 20 46 49 4c |COL 7.CIRCLE FIL| 00008b90 4c 20 35 30 30 2c 35 30 30 2c 31 35 30 0a 52 45 |L 500,500,150.RE| 00008ba0 43 54 41 4e 47 4c 45 20 46 49 4c 4c 20 33 30 32 |CTANGLE FILL 302| 00008bb0 2c 33 34 34 2c 31 36 2c 33 31 32 0a 47 43 4f 4c |,344,16,312.GCOL| 00008bc0 20 30 0a 43 49 52 43 4c 45 20 35 30 30 2c 35 30 | 0.CIRCLE 500,50| 00008bd0 30 2c 31 35 30 0a 47 43 4f 4c 20 30 0a 43 49 52 |0,150.GCOL 0.CIR| 00008be0 43 4c 45 20 35 30 30 2c 35 30 30 2c 31 35 30 0a |CLE 500,500,150.| 00008bf0 52 45 43 54 41 4e 47 4c 45 20 33 30 30 2c 33 34 |RECTANGLE 300,34| 00008c00 30 2c 32 30 2c 33 32 30 0a 49 46 20 60 63 6f 6c |0,20,320.IF `col| 00008c10 25 20 3e 20 31 35 20 54 48 45 4e 20 45 4e 44 50 |% > 15 THEN ENDP| 00008c20 52 4f 43 0a 50 52 4f 43 72 67 62 5f 68 73 76 28 |ROC.PROCrgb_hsv(| 00008c30 60 63 6f 6c 25 29 0a 4d 4f 56 45 20 35 30 30 2c |`col%).MOVE 500,| 00008c40 35 30 30 0a 73 31 20 3d 20 73 2a 31 35 30 0a 76 |500.s1 = s*150.v| 00008c50 31 20 3d 20 76 2a 33 30 30 0a 44 52 41 57 20 28 |1 = v*300.DRAW (| 00008c60 73 31 2a 43 4f 53 28 52 41 44 28 68 29 29 29 2b |s1*COS(RAD(h)))+| 00008c70 35 30 30 2c 28 73 31 2a 53 49 4e 28 52 41 44 28 |500,(s1*SIN(RAD(| 00008c80 68 29 29 29 2b 35 30 30 0a 4d 4f 56 45 20 33 30 |h)))+500.MOVE 30| 00008c90 32 2c 33 35 30 2b 76 31 0a 44 52 41 57 20 33 31 |2,350+v1.DRAW 31| 00008ca0 38 2c 33 35 30 2b 76 31 0a 45 4e 44 50 52 4f 43 |8,350+v1.ENDPROC| 00008cb0 0a 52 45 4d 20 2a 20 50 41 4c 45 54 54 45 20 55 |.REM * PALETTE U| 00008cc0 50 44 41 54 45 2a 0a 44 45 46 20 50 52 4f 43 70 |PDATE*.DEF PROCp| 00008cd0 61 6c 65 74 74 65 0a 49 46 20 60 63 6f 6c 25 20 |alette.IF `col% | 00008ce0 3e 20 31 35 20 54 48 45 4e 20 45 4e 44 50 52 4f |> 15 THEN ENDPRO| 00008cf0 43 0a 50 52 4f 43 72 67 62 5f 68 73 76 28 60 63 |C.PROCrgb_hsv(`c| 00008d00 6f 6c 25 29 3a 52 45 4d 20 63 6f 6e 76 65 72 74 |ol%):REM convert| 00008d10 20 63 6f 6c 6f 75 72 20 70 61 6c 65 74 74 65 20 | colour palette | 00008d20 74 6f 20 48 53 56 0a 47 43 4f 4c 20 37 0a 43 49 |to HSV.GCOL 7.CI| 00008d30 52 43 4c 45 20 46 49 4c 4c 20 35 30 30 2c 35 30 |RCLE FILL 500,50| 00008d40 30 2c 31 35 30 0a 52 45 43 54 41 4e 47 4c 45 20 |0,150.RECTANGLE | 00008d50 46 49 4c 4c 20 33 30 32 2c 33 34 34 2c 31 36 2c |FILL 302,344,16,| 00008d60 33 31 32 0a 47 43 4f 4c 20 30 0a 43 49 52 43 4c |312.GCOL 0.CIRCL| 00008d70 45 20 35 30 30 2c 35 30 30 2c 31 35 30 0a 73 31 |E 500,500,150.s1| 00008d80 20 3d 20 73 2a 31 35 30 0a 76 31 20 3d 20 76 2a | = s*150.v1 = v*| 00008d90 33 30 30 0a 0a 52 45 4d 20 2a 2a 2a 2a 2a 2a 2a |300..REM *******| 00008da0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 00008dd0 2a 2a 2a 2a 2a 2a 2a 2a 0a 52 45 4d 20 60 62 25 |********.REM `b%| 00008de0 20 73 65 65 6d 73 20 74 6f 20 6e 6f 74 20 68 6f | seems to not ho| 00008df0 6c 64 20 74 68 65 20 63 6f 72 72 65 63 74 20 62 |ld the correct b| 00008e00 75 74 74 6f 6e 20 70 72 65 73 73 65 73 20 61 74 |utton presses at| 00008e10 20 74 68 69 73 20 70 6f 69 6e 74 20 73 69 6e 63 | this point sinc| 00008e20 65 0a 52 45 4d 20 74 68 65 20 6f 6e 6c 79 20 77 |e.REM the only w| 00008e30 61 79 20 74 6f 20 74 72 69 67 67 65 72 20 74 68 |ay to trigger th| 00008e40 69 73 20 69 73 20 74 6f 20 70 72 65 73 73 20 6c |is is to press l| 00008e50 65 66 74 20 61 6e 64 20 6d 69 64 64 6c 65 20 74 |eft and middle t| 00008e60 6f 67 65 74 68 65 72 0a 52 45 4d 20 2a 2a 2a 2a |ogether.REM ****| 00008e70 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 00008ea0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0a 0a 49 46 20 |***********..IF | 00008eb0 28 60 62 25 20 41 4e 44 20 34 29 3d 34 20 54 48 |(`b% AND 4)=4 TH| 00008ec0 45 4e 0a 49 46 20 53 51 52 28 28 60 78 25 2d 35 |EN.IF SQR((`x%-5| 00008ed0 30 30 29 5e 32 2b 28 60 79 25 2d 35 30 30 29 5e |00)^2+(`y%-500)^| 00008ee0 32 29 20 3c 3d 20 31 35 30 20 54 48 45 4e 0a 73 |2) <= 150 THEN.s| 00008ef0 31 20 3d 20 53 51 52 20 28 28 60 78 25 2d 35 30 |1 = SQR ((`x%-50| 00008f00 30 29 5e 32 2b 28 60 79 25 2d 35 30 30 29 5e 32 |0)^2+(`y%-500)^2| 00008f10 29 0a 49 46 20 60 78 25 20 3d 20 35 30 30 20 54 |).IF `x% = 500 T| 00008f20 48 45 4e 0a 68 20 3d 20 30 0a 45 4c 53 45 0a 68 |HEN.h = 0.ELSE.h| 00008f30 20 3d 20 44 45 47 28 41 54 4e 28 28 60 79 25 2d | = DEG(ATN((`y%-| 00008f40 35 30 30 29 2f 28 60 78 25 2d 35 30 30 29 29 29 |500)/(`x%-500)))| 00008f50 0a 45 4e 44 49 46 0a 49 46 20 68 20 3c 20 30 20 |.ENDIF.IF h < 0 | 00008f60 54 48 45 4e 0a 49 46 20 60 78 25 20 3c 20 35 30 |THEN.IF `x% < 50| 00008f70 30 20 54 48 45 4e 0a 68 20 3d 20 68 20 2b 20 31 |0 THEN.h = h + 1| 00008f80 38 30 0a 45 4c 53 45 0a 68 20 3d 20 68 20 2b 20 |80.ELSE.h = h + | 00008f90 33 36 30 0a 45 4e 44 49 46 0a 45 4c 53 45 0a 49 |360.ENDIF.ELSE.I| 00008fa0 46 20 60 79 25 20 3c 20 35 30 30 20 54 48 45 4e |F `y% < 500 THEN| 00008fb0 0a 68 20 3d 20 68 20 2b 20 31 38 30 0a 45 4e 44 |.h = h + 180.END| 00008fc0 49 46 0a 45 4e 44 49 46 0a 49 46 20 68 20 3d 20 |IF.ENDIF.IF h = | 00008fd0 39 30 20 68 20 3d 20 39 31 0a 49 46 20 68 20 3d |90 h = 91.IF h =| 00008fe0 20 31 38 30 20 68 20 3d 20 31 38 31 0a 49 46 20 | 180 h = 181.IF | 00008ff0 68 20 3d 20 32 37 30 20 68 20 3d 20 32 37 31 0a |h = 270 h = 271.| 00009000 73 20 3d 20 73 31 2f 31 35 30 20 3a 20 76 20 3d |s = s1/150 : v =| 00009010 20 76 31 2f 33 30 30 0a 50 52 4f 43 68 73 76 5f | v1/300.PROChsv_| 00009020 72 67 62 0a 60 72 28 60 63 6f 6c 25 29 20 3d 20 |rgb.`r(`col%) = | 00009030 72 2a 32 35 36 20 3a 20 60 67 28 60 63 6f 6c 25 |r*256 : `g(`col%| 00009040 29 20 3d 20 67 2a 32 35 36 20 3a 20 60 62 28 60 |) = g*256 : `b(`| 00009050 63 6f 6c 25 29 20 3d 20 62 2a 32 35 36 0a 56 44 |col%) = b*256.VD| 00009060 55 31 39 2c 60 63 6f 6c 25 2c 31 36 2c 72 2a 32 |U19,`col%,16,r*2| 00009070 35 36 2c 67 2a 32 35 36 2c 62 2a 32 35 36 0a 45 |56,g*256,b*256.E| 00009080 4c 53 45 0a 49 46 20 60 78 25 20 3e 20 33 30 30 |LSE.IF `x% > 300| 00009090 20 41 4e 44 20 60 78 25 20 3c 20 33 32 30 20 41 | AND `x% < 320 A| 000090a0 4e 44 20 60 79 25 20 3e 20 33 35 30 20 41 4e 44 |ND `y% > 350 AND| 000090b0 20 60 79 25 20 3c 20 36 35 30 20 54 48 45 4e 0a | `y% < 650 THEN.| 000090c0 76 31 20 3d 20 28 60 79 25 2d 33 35 30 29 0a 73 |v1 = (`y%-350).s| 000090d0 20 3d 20 73 31 2f 31 35 30 20 3a 20 76 20 3d 20 | = s1/150 : v = | 000090e0 76 31 2f 33 30 30 0a 50 52 4f 43 68 73 76 5f 72 |v1/300.PROChsv_r| 000090f0 67 62 0a 60 72 28 60 63 6f 6c 25 29 20 3d 20 72 |gb.`r(`col%) = r| 00009100 2a 32 35 36 20 3a 20 60 67 28 60 63 6f 6c 25 29 |*256 : `g(`col%)| 00009110 20 3d 20 67 2a 32 35 36 20 3a 20 60 62 28 60 63 | = g*256 : `b(`c| 00009120 6f 6c 25 29 20 3d 20 62 2a 32 35 36 0a 56 44 55 |ol%) = b*256.VDU| 00009130 31 39 2c 60 63 6f 6c 25 2c 31 36 2c 72 2a 32 35 |19,`col%,16,r*25| 00009140 36 2c 67 2a 32 35 36 2c 62 2a 32 35 36 0a 45 4e |6,g*256,b*256.EN| 00009150 44 49 46 0a 45 4e 44 49 46 0a 50 52 4f 43 72 67 |DIF.ENDIF.PROCrg| 00009160 62 5f 68 73 76 28 60 63 6f 6c 25 29 0a 76 31 20 |b_hsv(`col%).v1 | 00009170 3d 20 76 2a 33 30 30 20 3a 20 73 31 20 3d 20 73 |= v*300 : s1 = s| 00009180 2a 31 35 30 0a 4d 4f 56 45 20 33 30 32 2c 33 35 |*150.MOVE 302,35| 00009190 30 2b 76 31 0a 44 52 41 57 20 33 31 38 2c 33 35 |0+v1.DRAW 318,35| 000091a0 30 2b 76 31 0a 4d 4f 56 45 20 35 30 30 2c 35 30 |0+v1.MOVE 500,50| 000091b0 30 0a 44 52 41 57 20 28 73 31 2a 43 4f 53 28 52 |0.DRAW (s1*COS(R| 000091c0 41 44 28 68 29 29 29 2b 35 30 30 2c 28 73 31 2a |AD(h)))+500,(s1*| 000091d0 53 49 4e 28 52 41 44 28 68 29 29 29 2b 35 30 30 |SIN(RAD(h)))+500| 000091e0 0a 45 4e 44 49 46 0a 45 4e 44 50 52 4f 43 0a 52 |.ENDIF.ENDPROC.R| 000091f0 45 4d 20 2a 20 52 47 42 20 54 4f 20 48 53 56 2a |EM * RGB TO HSV*| 00009200 0a 44 45 46 20 50 52 4f 43 72 67 62 5f 68 73 76 |.DEF PROCrgb_hsv| 00009210 28 63 29 0a 4c 4f 43 41 4c 20 6d 61 78 2c 6d 69 |(c).LOCAL max,mi| 00009220 6e 2c 72 2c 67 2c 62 2c 72 63 2c 67 63 2c 62 63 |n,r,g,b,rc,gc,bc| 00009230 0a 72 20 3d 20 28 60 72 28 63 29 44 49 56 20 31 |.r = (`r(c)DIV 1| 00009240 36 29 2f 31 36 0a 67 20 3d 20 28 60 67 28 63 29 |6)/16.g = (`g(c)| 00009250 44 49 56 20 31 36 29 2f 31 36 0a 62 20 3d 20 28 |DIV 16)/16.b = (| 00009260 60 62 28 63 29 44 49 56 20 31 36 29 2f 31 36 0a |`b(c)DIV 16)/16.| 00009270 6d 61 78 20 3d 20 30 20 3a 20 6d 69 6e 20 3d 20 |max = 0 : min = | 00009280 31 0a 49 46 20 6d 61 78 20 3c 20 72 20 54 48 45 |1.IF max < r THE| 00009290 4e 20 6d 61 78 20 3d 20 72 0a 49 46 20 6d 69 6e |N max = r.IF min| 000092a0 20 3e 20 72 20 54 48 45 4e 20 6d 69 6e 20 3d 20 | > r THEN min = | 000092b0 72 0a 49 46 20 6d 61 78 20 3c 20 67 20 54 48 45 |r.IF max < g THE| 000092c0 4e 20 6d 61 78 20 3d 20 67 0a 49 46 20 6d 69 6e |N max = g.IF min| 000092d0 20 3e 20 67 20 54 48 45 4e 20 6d 69 6e 20 3d 20 | > g THEN min = | 000092e0 67 0a 49 46 20 6d 61 78 20 3c 20 62 20 54 48 45 |g.IF max < b THE| 000092f0 4e 20 6d 61 78 20 3d 20 62 0a 49 46 20 6d 69 6e |N max = b.IF min| 00009300 20 3e 20 62 20 54 48 45 4e 20 6d 69 6e 20 3d 20 | > b THEN min = | 00009310 62 0a 76 20 3d 20 6d 61 78 0a 49 46 20 6d 61 78 |b.v = max.IF max| 00009320 20 3c 3e 20 30 20 54 48 45 4e 0a 73 20 3d 20 28 | <> 0 THEN.s = (| 00009330 6d 61 78 2d 6d 69 6e 29 2f 6d 61 78 0a 45 4c 53 |max-min)/max.ELS| 00009340 45 0a 73 20 3d 20 30 0a 45 4e 44 49 46 0a 49 46 |E.s = 0.ENDIF.IF| 00009350 20 73 20 3d 20 30 20 54 48 45 4e 0a 68 20 3d 20 | s = 0 THEN.h = | 00009360 30 0a 45 4c 53 45 0a 72 63 20 3d 20 28 6d 61 78 |0.ELSE.rc = (max| 00009370 20 2d 20 72 29 2f 28 6d 61 78 2d 6d 69 6e 29 0a | - r)/(max-min).| 00009380 67 63 20 3d 20 28 6d 61 78 2d 67 29 2f 28 6d 61 |gc = (max-g)/(ma| 00009390 78 2d 6d 69 6e 29 0a 62 63 20 3d 20 28 6d 61 78 |x-min).bc = (max| 000093a0 2d 62 29 2f 28 6d 61 78 2d 6d 69 6e 29 0a 49 46 |-b)/(max-min).IF| 000093b0 20 72 20 3d 20 6d 61 78 20 54 48 45 4e 0a 68 20 | r = max THEN.h | 000093c0 3d 20 62 63 2d 67 63 0a 45 4c 53 45 0a 49 46 20 |= bc-gc.ELSE.IF | 000093d0 67 20 3d 20 6d 61 78 20 54 48 45 4e 0a 68 20 3d |g = max THEN.h =| 000093e0 20 32 20 2b 20 72 63 20 2d 20 62 63 0a 45 4c 53 | 2 + rc - bc.ELS| 000093f0 45 0a 49 46 20 62 20 3d 20 6d 61 78 20 54 48 45 |E.IF b = max THE| 00009400 4e 20 68 20 3d 20 34 20 2b 20 67 63 20 2d 20 72 |N h = 4 + gc - r| 00009410 63 0a 45 4e 44 49 46 0a 45 4e 44 49 46 0a 68 20 |c.ENDIF.ENDIF.h | 00009420 3d 20 68 20 2a 20 36 30 0a 49 46 20 68 20 3c 20 |= h * 60.IF h < | 00009430 30 20 54 48 45 4e 20 68 20 3d 20 68 20 2b 20 33 |0 THEN h = h + 3| 00009440 36 30 0a 45 4e 44 49 46 0a 45 4e 44 50 52 4f 43 |60.ENDIF.ENDPROC| 00009450 0a 52 45 4d 20 2a 20 48 53 56 20 54 4f 20 52 47 |.REM * HSV TO RG| 00009460 42 2a 0a 44 45 46 20 50 52 4f 43 68 73 76 5f 72 |B*.DEF PROChsv_r| 00009470 67 62 0a 4c 4f 43 41 4c 20 69 25 2c 66 2c 70 2c |gb.LOCAL i%,f,p,| 00009480 71 2c 74 0a 49 46 20 73 20 3d 20 30 20 54 48 45 |q,t.IF s = 0 THE| 00009490 4e 0a 72 20 3d 20 76 0a 67 20 3d 20 76 0a 62 20 |N.r = v.g = v.b | 000094a0 3d 20 76 0a 45 4e 44 50 52 4f 43 0a 45 4e 44 49 |= v.ENDPROC.ENDI| 000094b0 46 0a 49 46 20 68 20 3d 20 33 36 30 20 54 48 45 |F.IF h = 360 THE| 000094c0 4e 20 68 20 3d 20 30 0a 69 25 20 3d 20 68 2f 36 |N h = 0.i% = h/6| 000094d0 30 0a 68 3d 20 68 2f 36 30 0a 66 3d 20 68 2d 69 |0.h= h/60.f= h-i| 000094e0 25 0a 70 3d 20 76 2a 28 31 2d 73 29 0a 71 3d 20 |%.p= v*(1-s).q= | 000094f0 76 2a 28 31 2d 28 73 2a 66 29 29 0a 74 3d 20 76 |v*(1-(s*f)).t= v| 00009500 2a 28 31 2d 28 73 2a 28 31 2d 66 29 29 29 0a 43 |*(1-(s*(1-f))).C| 00009510 41 53 45 20 69 25 20 4f 46 0a 57 48 45 4e 20 30 |ASE i% OF.WHEN 0| 00009520 20 3a 20 72 20 3d 20 76 20 3a 20 67 20 3d 20 74 | : r = v : g = t| 00009530 20 3a 20 62 20 3d 20 70 0a 57 48 45 4e 20 31 20 | : b = p.WHEN 1 | 00009540 3a 20 72 20 3d 20 71 20 3a 20 67 20 3d 20 76 20 |: r = q : g = v | 00009550 3a 20 62 20 3d 20 70 0a 57 48 45 4e 20 32 20 3a |: b = p.WHEN 2 :| 00009560 20 72 20 3d 20 70 20 3a 20 67 20 3d 20 76 20 3a | r = p : g = v :| 00009570 20 62 20 3d 20 74 0a 57 48 45 4e 20 33 20 3a 20 | b = t.WHEN 3 : | 00009580 72 20 3d 20 70 20 3a 20 67 20 3d 20 71 20 3a 20 |r = p : g = q : | 00009590 62 20 3d 20 76 0a 57 48 45 4e 20 34 20 3a 20 72 |b = v.WHEN 4 : r| 000095a0 20 3d 20 74 20 3a 20 67 20 3d 20 70 20 3a 20 62 | = t : g = p : b| 000095b0 20 3d 20 76 0a 57 48 45 4e 20 35 20 3a 20 72 20 | = v.WHEN 5 : r | 000095c0 3d 20 76 20 3a 20 67 20 3d 20 70 20 3a 20 62 20 |= v : g = p : b | 000095d0 3d 20 71 0a 45 4e 44 43 41 53 45 0a 45 4e 44 50 |= q.ENDCASE.ENDP| 000095e0 52 4f 43 0a 44 45 46 20 50 52 4f 43 65 63 66 28 |ROC.DEF PROCecf(| 000095f0 6e 25 29 0a 56 44 55 20 32 33 2c 32 2c 60 70 28 |n%).VDU 23,2,`p(| 00009600 6e 25 2c 30 29 2b 60 70 28 6e 25 2c 31 29 2a 31 |n%,0)+`p(n%,1)*1| 00009610 36 2c 60 70 28 6e 25 2c 38 29 2b 60 70 28 6e 25 |6,`p(n%,8)+`p(n%| 00009620 2c 39 29 2a 31 36 2c 60 70 28 6e 25 2c 31 36 29 |,9)*16,`p(n%,16)| 00009630 2b 60 70 28 6e 25 2c 31 37 29 2a 31 36 2c 60 70 |+`p(n%,17)*16,`p| 00009640 28 6e 25 2c 32 34 29 2b 60 70 28 6e 25 2c 32 35 |(n%,24)+`p(n%,25| 00009650 29 2a 31 36 2c 60 70 28 6e 25 2c 33 32 29 2b 60 |)*16,`p(n%,32)+`| 00009660 70 28 6e 25 2c 33 33 29 2a 31 36 2c 60 70 28 6e |p(n%,33)*16,`p(n| 00009670 25 2c 34 30 29 2b 60 70 28 6e 25 2c 34 31 29 2a |%,40)+`p(n%,41)*| 00009680 31 36 2c 60 70 28 6e 25 2c 34 38 29 2b 60 70 28 |16,`p(n%,48)+`p(| 00009690 6e 25 2c 34 39 29 2a 31 36 2c 60 70 28 6e 25 2c |n%,49)*16,`p(n%,| 000096a0 35 36 29 2b 60 70 28 6e 25 2c 35 37 29 2a 31 36 |56)+`p(n%,57)*16| 000096b0 0a 56 44 55 20 32 33 2c 33 2c 60 70 28 6e 25 2c |.VDU 23,3,`p(n%,| 000096c0 32 29 2b 60 70 28 6e 25 2c 33 29 2a 31 36 2c 60 |2)+`p(n%,3)*16,`| 000096d0 70 28 6e 25 2c 31 30 29 2b 60 70 28 6e 25 2c 31 |p(n%,10)+`p(n%,1| 000096e0 31 29 2a 31 36 2c 60 70 28 6e 25 2c 31 38 29 2b |1)*16,`p(n%,18)+| 000096f0 60 70 28 6e 25 2c 31 39 29 2a 31 36 2c 60 70 28 |`p(n%,19)*16,`p(| 00009700 6e 25 2c 32 36 29 2b 60 70 28 6e 25 2c 32 37 29 |n%,26)+`p(n%,27)| 00009710 2a 31 36 2c 60 70 28 6e 25 2c 33 34 29 2b 60 70 |*16,`p(n%,34)+`p| 00009720 28 6e 25 2c 33 35 29 2a 31 36 2c 60 70 28 6e 25 |(n%,35)*16,`p(n%| 00009730 2c 34 32 29 2b 60 70 28 6e 25 2c 34 33 29 2a 31 |,42)+`p(n%,43)*1| 00009740 36 2c 60 70 28 6e 25 2c 35 30 29 2b 60 70 28 6e |6,`p(n%,50)+`p(n| 00009750 25 2c 35 31 29 2a 31 36 2c 60 70 28 6e 25 2c 35 |%,51)*16,`p(n%,5| 00009760 38 29 2b 60 70 28 6e 25 2c 35 39 29 2a 31 36 0a |8)+`p(n%,59)*16.| 00009770 56 44 55 20 32 33 2c 34 2c 60 70 28 6e 25 2c 34 |VDU 23,4,`p(n%,4| 00009780 29 2b 60 70 28 6e 25 2c 35 29 2a 31 36 2c 60 70 |)+`p(n%,5)*16,`p| 00009790 28 6e 25 2c 31 32 29 2b 60 70 28 6e 25 2c 31 33 |(n%,12)+`p(n%,13| 000097a0 29 2a 31 36 2c 60 70 28 6e 25 2c 32 30 29 2b 60 |)*16,`p(n%,20)+`| 000097b0 70 28 6e 25 2c 32 31 29 2a 31 36 2c 60 70 28 6e |p(n%,21)*16,`p(n| 000097c0 25 2c 32 38 29 2b 60 70 28 6e 25 2c 32 39 29 2a |%,28)+`p(n%,29)*| 000097d0 31 36 2c 60 70 28 6e 25 2c 33 36 29 2b 60 70 28 |16,`p(n%,36)+`p(| 000097e0 6e 25 2c 33 37 29 2a 31 36 2c 60 70 28 6e 25 2c |n%,37)*16,`p(n%,| 000097f0 34 34 29 2b 60 70 28 6e 25 2c 34 35 29 2a 31 36 |44)+`p(n%,45)*16| 00009800 2c 60 70 28 6e 25 2c 35 32 29 2b 60 70 28 6e 25 |,`p(n%,52)+`p(n%| 00009810 2c 35 33 29 2a 31 36 2c 60 70 28 6e 25 2c 36 30 |,53)*16,`p(n%,60| 00009820 29 2b 60 70 28 6e 25 2c 36 31 29 2a 31 36 0a 56 |)+`p(n%,61)*16.V| 00009830 44 55 20 32 33 2c 35 2c 60 70 28 6e 25 2c 36 29 |DU 23,5,`p(n%,6)| 00009840 2b 60 70 28 6e 25 2c 37 29 2a 31 36 2c 60 70 28 |+`p(n%,7)*16,`p(| 00009850 6e 25 2c 31 34 29 2b 60 70 28 6e 25 2c 31 35 29 |n%,14)+`p(n%,15)| 00009860 2a 31 36 2c 60 70 28 6e 25 2c 32 32 29 2b 60 70 |*16,`p(n%,22)+`p| 00009870 28 6e 25 2c 32 33 29 2a 31 36 2c 60 70 28 6e 25 |(n%,23)*16,`p(n%| 00009880 2c 33 30 29 2b 60 70 28 6e 25 2c 33 31 29 2a 31 |,30)+`p(n%,31)*1| 00009890 36 2c 60 70 28 6e 25 2c 33 38 29 2b 60 70 28 6e |6,`p(n%,38)+`p(n| 000098a0 25 2c 33 39 29 2a 31 36 2c 60 70 28 6e 25 2c 34 |%,39)*16,`p(n%,4| 000098b0 36 29 2b 60 70 28 6e 25 2c 34 37 29 2a 31 36 2c |6)+`p(n%,47)*16,| 000098c0 60 70 28 6e 25 2c 35 34 29 2b 60 70 28 6e 25 2c |`p(n%,54)+`p(n%,| 000098d0 35 35 29 2a 31 36 2c 60 70 28 6e 25 2c 36 32 29 |55)*16,`p(n%,62)| 000098e0 2b 60 70 28 6e 25 2c 36 33 29 2a 31 36 0a 47 43 |+`p(n%,63)*16.GC| 000098f0 4f 4c 20 38 30 2b 60 73 74 79 6c 65 25 2c 30 0a |OL 80+`style%,0.| 00009900 52 45 43 54 41 4e 47 4c 45 20 46 49 4c 4c 20 34 |RECTANGLE FILL 4| 00009910 36 2c 36 39 34 2c 36 34 2c 36 34 0a 0a 43 41 53 |6,694,64,64..CAS| 00009920 45 20 6e 25 20 4f 46 0a 57 48 45 4e 20 30 20 3a |E n% OF.WHEN 0 :| 00009930 20 53 59 53 20 26 32 45 2c 31 36 2c 30 2c 22 65 | SYS &2E,16,0,"e| 00009940 63 66 30 22 2c 30 2c 34 36 2c 36 39 34 2c 31 30 |cf0",0,46,694,10| 00009950 30 2c 37 35 38 0a 57 48 45 4e 20 31 20 3a 20 53 |0,758.WHEN 1 : S| 00009960 59 53 20 26 32 45 2c 31 36 2c 30 2c 22 65 63 66 |YS &2E,16,0,"ecf| 00009970 31 22 2c 30 2c 34 36 2c 36 39 34 2c 31 30 30 2c |1",0,46,694,100,| 00009980 37 35 38 0a 57 48 45 4e 20 32 20 3a 20 53 59 53 |758.WHEN 2 : SYS| 00009990 20 26 32 45 2c 31 36 2c 30 2c 22 65 63 66 32 22 | &2E,16,0,"ecf2"| 000099a0 2c 30 2c 34 36 2c 36 39 34 2c 31 30 30 2c 37 35 |,0,46,694,100,75| 000099b0 38 0a 57 48 45 4e 20 33 20 3a 20 53 59 53 20 26 |8.WHEN 3 : SYS &| 000099c0 32 45 2c 31 36 2c 30 2c 22 65 63 66 33 22 2c 30 |2E,16,0,"ecf3",0| 000099d0 2c 34 36 2c 36 39 34 2c 31 30 30 2c 37 35 38 0a |,46,694,100,758.| 000099e0 45 4e 44 43 41 53 45 0a 45 4e 44 50 52 4f 43 0a |ENDCASE.ENDPROC.| 000099f0 44 45 46 20 50 52 4f 43 73 68 6f 77 5f 70 61 74 |DEF PROCshow_pat| 00009a00 74 0a 46 4f 52 20 61 25 20 3d 20 30 20 54 4f 20 |t.FOR a% = 0 TO | 00009a10 36 33 0a 50 52 4f 43 73 65 74 5f 69 63 6f 6e 5f |63.PROCset_icon_| 00009a20 73 74 61 74 65 28 77 69 6e 64 6f 77 73 28 38 29 |state(windows(8)| 00009a30 2c 61 25 2c 26 33 30 32 39 2c 38 2c 60 70 28 60 |,a%,&3029,8,`p(`| 00009a40 70 74 72 6e 2c 61 25 29 2b 26 38 30 2c 2d 31 29 |ptrn,a%)+&80,-1)| 00009a50 0a 4e 45 58 54 20 61 25 0a 45 4e 44 50 52 4f 43 |.NEXT a%.ENDPROC| 00009a60 0a 44 45 46 20 50 52 4f 43 70 61 74 74 5f 65 64 |.DEF PROCpatt_ed| 00009a70 69 74 28 69 63 6f 6e 25 29 0a 49 46 20 69 63 6f |it(icon%).IF ico| 00009a80 6e 25 20 3d 20 2d 31 20 54 48 45 4e 20 45 4e 44 |n% = -1 THEN END| 00009a90 50 52 4f 43 0a 49 46 20 60 63 6f 6c 25 20 3d 20 |PROC.IF `col% = | 00009aa0 31 37 20 54 48 45 4e 20 45 4e 44 50 52 4f 43 0a |17 THEN ENDPROC.| 00009ab0 50 52 4f 43 73 65 74 5f 69 63 6f 6e 5f 73 74 61 |PROCset_icon_sta| 00009ac0 74 65 28 77 69 6e 64 6f 77 73 28 38 29 2c 69 63 |te(windows(8),ic| 00009ad0 6f 6e 25 2c 26 33 30 32 39 2c 38 2c 60 63 6f 6c |on%,&3029,8,`col| 00009ae0 25 2b 26 38 30 2c 2d 31 29 0a 60 70 28 60 70 74 |%+&80,-1).`p(`pt| 00009af0 72 6e 2c 69 63 6f 6e 25 29 3d 60 63 6f 6c 25 0a |rn,icon%)=`col%.| 00009b00 45 4e 44 50 52 4f 43 0a 44 45 46 20 50 52 4f 43 |ENDPROC.DEF PROC| 00009b10 73 63 72 6e 0a 47 43 4f 4c 20 31 33 35 0a 43 4c |scrn.GCOL 135.CL| 00009b20 47 0a 45 4e 44 50 52 4f 43 0a 44 45 46 20 50 52 |G.ENDPROC.DEF PR| 00009b30 4f 43 75 70 64 61 74 65 28 68 61 6e 64 6c 65 25 |OCupdate(handle%| 00009b40 29 0a 49 46 20 68 61 6e 64 6c 65 25 20 3d 20 77 |).IF handle% = w| 00009b50 69 6e 64 6f 77 73 28 35 29 20 54 48 45 4e 20 50 |indows(5) THEN P| 00009b60 52 4f 43 64 72 5f 63 6f 70 79 0a 49 46 20 68 61 |ROCdr_copy.IF ha| 00009b70 6e 64 6c 65 25 20 3d 20 77 69 6e 64 6f 77 73 28 |ndle% = windows(| 00009b80 37 29 20 54 48 45 4e 20 50 52 4f 43 70 61 6c 5f |7) THEN PROCpal_| 00009b90 75 70 64 0a 45 4e 44 50 52 4f 43 0a 44 45 46 20 |upd.ENDPROC.DEF | 00009ba0 50 52 4f 43 73 63 72 6e 5f 63 6f 70 79 0a 49 46 |PROCscrn_copy.IF| 00009bb0 20 60 64 72 5f 61 72 65 61 20 3d 20 2d 31 20 54 | `dr_area = -1 T| 00009bc0 48 45 4e 0a 53 59 53 20 26 32 45 2c 32 35 36 2b |HEN.SYS &2E,256+| 00009bd0 31 36 2c 73 70 74 5f 61 72 65 61 2c 22 48 44 53 |16,spt_area,"HDS| 00009be0 22 2c 30 2c 31 36 32 2c 32 33 32 2c 31 32 37 34 |",0,162,232,1274| 00009bf0 2c 39 37 32 0a 45 4e 44 49 46 0a 45 4e 44 50 52 |,972.ENDIF.ENDPR| 00009c00 4f 43 0a 44 45 46 20 50 52 4f 43 64 72 5f 63 6f |OC.DEF PROCdr_co| 00009c10 70 79 0a 53 59 53 20 26 32 45 2c 32 35 36 2b 33 |py.SYS &2E,256+3| 00009c20 34 2c 73 70 74 5f 61 72 65 61 2c 22 48 44 53 22 |4,spt_area,"HDS"| 00009c30 2c 31 36 32 2c 32 33 32 0a 45 4e 44 50 52 4f 43 |,162,232.ENDPROC| 00009c40 0a 44 45 46 20 50 52 4f 43 73 65 6c 65 63 74 5f |.DEF PROCselect_| 00009c50 62 72 75 73 68 28 69 63 6f 6e 25 29 0a 49 46 20 |brush(icon%).IF | 00009c60 69 63 6f 6e 25 3c 30 20 4f 52 20 69 63 6f 6e 25 |icon%<0 OR icon%| 00009c70 3e 31 32 20 54 48 45 4e 20 45 4e 44 50 52 4f 43 |>12 THEN ENDPROC| 00009c80 0a 50 52 4f 43 73 65 74 5f 69 63 6f 6e 5f 73 74 |.PROCset_icon_st| 00009c90 61 74 65 28 77 69 6e 64 6f 77 73 28 39 29 2c 60 |ate(windows(9),`| 00009ca0 62 72 73 68 25 2d 32 34 33 2c 26 33 30 33 44 2c |brsh%-243,&303D,| 00009cb0 60 69 66 2c 60 69 62 2c 2d 31 29 0a 60 62 72 73 |`if,`ib,-1).`brs| 00009cc0 68 25 20 3d 20 69 63 6f 6e 25 2b 32 34 33 0a 50 |h% = icon%+243.P| 00009cd0 52 4f 43 73 65 74 5f 69 63 6f 6e 5f 73 74 61 74 |ROCset_icon_stat| 00009ce0 65 28 77 69 6e 64 6f 77 73 28 39 29 2c 69 63 6f |e(windows(9),ico| 00009cf0 6e 25 2c 26 33 30 33 44 2c 60 69 66 2c 26 38 38 |n%,&303D,`if,&88| 00009d00 2c 2d 31 29 0a 45 4e 44 50 52 4f 43 0a 52 45 4d |,-1).ENDPROC.REM| 00009d10 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a | ***************| 00009d20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 00009d40 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0a |***************.| 00009d50 44 45 46 20 50 52 4f 43 67 65 74 5f 64 69 72 0a |DEF PROCget_dir.| 00009d60 46 4f 52 20 61 25 20 3d 20 60 6d 61 78 5f 66 69 |FOR a% = `max_fi| 00009d70 6c 65 25 20 54 4f 20 30 20 53 54 45 50 20 2d 31 |le% TO 0 STEP -1| 00009d80 0a 50 52 4f 43 64 65 6c 65 74 65 5f 69 63 6f 6e |.PROCdelete_icon| 00009d90 28 77 69 6e 64 6f 77 73 28 34 29 2c 61 25 29 0a |(windows(4),a%).| 00009da0 4e 45 58 54 20 61 25 0a 61 25 3d 30 3a 20 68 74 |NEXT a%.a%=0: ht| 00009db0 25 3d 30 0a 53 59 53 20 26 30 43 2c 31 30 2c 22 |%=0.SYS &0C,10,"| 00009dc0 55 73 65 72 50 69 63 73 22 2c 70 61 72 25 2c 31 |UserPics",par%,1| 00009dd0 2c 61 25 2c 32 35 35 2c 22 2a 22 20 54 4f 20 2c |,a%,255,"*" TO ,| 00009de0 2c 2c 6e 25 0a 49 46 20 6e 25 20 3d 20 30 20 54 |,,n%.IF n% = 0 T| 00009df0 48 45 4e 0a 20 20 49 46 20 46 4e 6f 6e 5f 74 6f |HEN. IF FNon_to| 00009e00 70 20 54 48 45 4e 20 50 52 4f 43 74 65 73 74 5f |p THEN PROCtest_| 00009e10 6f 70 65 6e 28 77 69 6e 64 6f 77 73 28 34 29 29 |open(windows(4))| 00009e20 0a 20 20 45 4e 44 50 52 4f 43 0a 45 4e 44 49 46 |. ENDPROC.ENDIF| 00009e30 0a 57 48 49 4c 45 20 6e 25 3d 31 0a 20 20 50 52 |.WHILE n%=1. PR| 00009e40 4f 43 65 6e 74 72 79 0a 20 20 61 25 2b 3d 31 0a |OCentry. a%+=1.| 00009e50 20 20 53 59 53 20 26 30 43 2c 31 30 2c 22 55 73 | SYS &0C,10,"Us| 00009e60 65 72 50 69 63 73 22 2c 70 61 72 25 2c 31 2c 61 |erPics",par%,1,a| 00009e70 25 2c 32 35 35 2c 22 2a 22 20 54 4f 20 2c 2c 2c |%,255,"*" TO ,,,| 00009e80 6e 25 0a 45 4e 44 57 48 49 4c 45 0a 49 46 20 46 |n%.ENDWHILE.IF F| 00009e90 4e 6f 6e 5f 74 6f 70 20 54 48 45 4e 20 50 52 4f |Non_top THEN PRO| 00009ea0 43 74 65 73 74 5f 6f 70 65 6e 28 77 69 6e 64 6f |Ctest_open(windo| 00009eb0 77 73 28 34 29 29 0a 45 4e 44 50 52 4f 43 0a 44 |ws(4)).ENDPROC.D| 00009ec0 45 46 20 50 52 4f 43 65 6e 74 72 79 0a 21 77 69 |EF PROCentry.!wi| 00009ed0 6d 70 20 3d 20 77 69 6e 64 6f 77 73 28 34 29 0a |mp = windows(4).| 00009ee0 77 69 6d 70 21 34 3d 20 31 30 20 20 20 20 20 20 |wimp!4= 10 | 00009ef0 20 20 20 20 20 3a 20 52 45 4d 20 30 0a 77 69 6d | : REM 0.wim| 00009f00 70 21 38 3d 20 68 74 25 20 2d 20 33 32 0a 77 69 |p!8= ht% - 32.wi| 00009f10 6d 70 21 31 32 20 3d 20 31 32 30 20 20 20 20 20 |mp!12 = 120 | 00009f20 20 20 20 3a 20 52 45 4d 20 31 30 30 0a 77 69 6d | : REM 100.wim| 00009f30 70 21 31 36 20 3d 20 68 74 25 0a 77 69 6d 70 21 |p!16 = ht%.wimp!| 00009f40 32 30 20 3d 20 26 33 30 31 39 0a 77 69 6d 70 3f |20 = &3019.wimp?| 00009f50 32 32 20 3d 20 60 69 66 0a 77 69 6d 70 3f 32 33 |22 = `if.wimp?23| 00009f60 20 3d 20 60 69 62 0a 24 28 77 69 6d 70 2b 32 34 | = `ib.$(wimp+24| 00009f70 29 20 3d 20 46 4e 73 74 72 6e 67 28 70 61 72 25 |) = FNstrng(par%| 00009f80 2b 32 30 29 0a 53 59 53 20 63 72 65 61 74 65 5f |+20).SYS create_| 00009f90 69 63 6f 6e 2c 30 2c 77 69 6d 70 0a 68 74 25 3d |icon,0,wimp.ht%=| 00009fa0 68 74 25 2d 33 32 0a 45 4e 44 50 52 4f 43 0a 44 |ht%-32.ENDPROC.D| 00009fb0 45 46 20 46 4e 73 74 72 6e 67 28 70 25 29 0a 4c |EF FNstrng(p%).L| 00009fc0 4f 43 41 4c 20 72 65 73 24 3a 20 72 65 73 24 3d |OCAL res$: res$=| 00009fd0 22 22 0a 57 48 49 4c 45 20 3f 70 25 3c 3e 30 20 |"".WHILE ?p%<>0 | 00009fe0 72 65 73 24 2b 3d 43 48 52 24 28 3f 70 25 29 3a |res$+=CHR$(?p%):| 00009ff0 70 25 2b 3d 31 3a 45 4e 44 57 48 49 4c 45 0a 3d |p%+=1:ENDWHILE.=| 0000a000 72 65 73 24 0a 44 45 46 20 50 52 4f 43 6c 6f 61 |res$.DEF PROCloa| 0000a010 64 28 69 63 6f 6e 25 29 0a 49 46 20 69 63 6f 6e |d(icon%).IF icon| 0000a020 25 20 3d 20 2d 31 20 54 48 45 4e 20 45 4e 44 50 |% = -1 THEN ENDP| 0000a030 52 4f 43 0a 50 52 4f 43 67 65 74 5f 69 63 6f 6e |ROC.PROCget_icon| 0000a040 5f 69 6e 66 6f 28 77 69 6e 64 6f 77 73 28 34 29 |_info(windows(4)| 0000a050 2c 69 63 6f 6e 25 29 0a 50 52 4f 43 63 6c 6f 73 |,icon%).PROCclos| 0000a060 65 5f 77 69 6e 64 6f 77 28 77 69 6e 64 6f 77 73 |e_window(windows| 0000a070 28 34 29 29 0a 50 52 4f 43 64 72 5f 63 6f 70 79 |(4)).PROCdr_copy| 0000a080 0a 56 44 55 32 34 2c 31 36 32 3b 32 33 32 3b 31 |.VDU24,162;232;1| 0000a090 32 37 34 3b 39 37 32 3b 0a 4f 53 43 4c 49 28 22 |274;972;.OSCLI("| 0000a0a0 53 43 52 45 45 4e 4c 4f 41 44 20 55 73 65 72 50 |SCREENLOAD UserP| 0000a0b0 69 63 73 2e 22 2b 24 28 77 69 6d 70 2b 32 38 29 |ics."+$(wimp+28)| 0000a0c0 29 0a 60 64 72 5f 61 72 65 61 20 3d 20 2d 31 0a |).`dr_area = -1.| 0000a0d0 50 52 4f 43 73 63 72 6e 5f 63 6f 70 79 0a 56 44 |PROCscrn_copy.VD| 0000a0e0 55 32 36 0a 45 4e 44 50 52 4f 43 0a 44 45 46 20 |U26.ENDPROC.DEF | 0000a0f0 50 52 4f 43 73 61 76 65 5f 6e 61 6d 65 0a 49 46 |PROCsave_name.IF| 0000a100 20 21 77 69 6d 70 3c 3e 20 77 69 6e 64 6f 77 73 | !wimp<> windows| 0000a110 28 31 30 29 20 41 4e 44 20 77 69 6d 70 21 34 3c |(10) AND wimp!4<| 0000a120 3e 30 20 54 48 45 4e 20 45 4e 44 50 52 4f 43 0a |>0 THEN ENDPROC.| 0000a130 49 46 20 77 69 6d 70 3f 32 34 3c 3e 20 31 33 20 |IF wimp?24<> 13 | 0000a140 54 48 45 4e 20 45 4e 44 50 52 4f 43 0a 50 52 4f |THEN ENDPROC.PRO| 0000a150 43 63 6c 6f 73 65 5f 77 69 6e 64 6f 77 28 77 69 |Cclose_window(wi| 0000a160 6e 64 6f 77 73 28 31 30 29 29 0a 50 52 4f 43 64 |ndows(10)).PROCd| 0000a170 72 5f 63 6f 70 79 0a 56 44 55 32 34 2c 31 36 32 |r_copy.VDU24,162| 0000a180 3b 32 33 32 3b 31 32 37 34 3b 39 37 32 3b 0a 4f |;232;1274;972;.O| 0000a190 53 43 4c 49 28 22 53 43 52 45 45 4e 53 41 56 45 |SCLI("SCREENSAVE| 0000a1a0 20 55 73 65 72 50 69 63 73 2e 22 2b 24 73 61 76 | UserPics."+$sav| 0000a1b0 65 25 29 0a 56 44 55 32 36 0a 45 4e 44 50 52 4f |e%).VDU26.ENDPRO| 0000a1c0 43 0a 44 45 46 20 50 52 4f 43 75 70 64 5f 65 63 |C.DEF PROCupd_ec| 0000a1d0 66 0a 46 4f 52 20 61 25 20 3d 20 30 20 54 4f 20 |f.FOR a% = 0 TO | 0000a1e0 33 0a 50 52 4f 43 73 65 74 5f 69 63 6f 6e 5f 73 |3.PROCset_icon_s| 0000a1f0 74 61 74 65 28 77 69 6e 64 6f 77 73 28 36 29 2c |tate(windows(6),| 0000a200 61 25 2b 31 36 2c 26 33 30 33 45 2c 60 69 66 2c |a%+16,&303E,`if,| 0000a210 60 69 62 2c 2d 31 29 0a 4e 45 58 54 20 61 25 0a |`ib,-1).NEXT a%.| 0000a220 45 4e 44 50 52 4f 43 0a 44 45 46 20 46 4e 6f 6e |ENDPROC.DEF FNon| 0000a230 5f 74 6f 70 0a 21 74 5f 77 69 6d 70 3d 20 77 69 |_top.!t_wimp= wi| 0000a240 6e 64 6f 77 73 28 35 29 0a 53 59 53 20 67 65 74 |ndows(5).SYS get| 0000a250 5f 77 69 6e 64 6f 77 5f 73 74 61 74 65 2c 30 2c |_window_state,0,| 0000a260 74 5f 77 69 6d 70 0a 49 46 20 74 5f 77 69 6d 70 |t_wimp.IF t_wimp| 0000a270 21 32 38 20 3c 3e 20 2d 31 20 54 48 45 4e 3d 20 |!28 <> -1 THEN= | 0000a280 46 41 4c 53 45 0a 3d 20 54 52 55 45 0a 0a 44 45 |FALSE.= TRUE..DE| 0000a290 46 20 50 52 4f 43 72 65 70 6f 72 74 0a 50 52 4f |F PROCreport.PRO| 0000a2a0 43 6f 70 65 6e 5f 77 69 6e 64 6f 77 28 77 69 6e |Copen_window(win| 0000a2b0 64 6f 77 73 28 31 31 29 2c 31 30 30 2c 35 30 2c |dows(11),100,50,| 0000a2c0 31 31 30 30 2c 31 35 30 2c 30 2c 30 2c 2d 31 29 |1100,150,0,0,-1)| 0000a2d0 0a 4d 4f 55 53 45 20 52 45 43 54 41 4e 47 4c 45 |.MOUSE RECTANGLE| 0000a2e0 31 30 30 2c 35 30 2c 31 30 30 30 2c 31 33 36 0a |100,50,1000,136.| 0000a2f0 45 4e 44 50 52 4f 43 0a |ENDPROC.| 0000a2f8