Home » Archimedes archive » Archimedes World » AW-1996-02-Disc1.adf » !ElfKing_Elf » !ElfKing/elflib

!ElfKing/elflib

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 » Archimedes World » AW-1996-02-Disc1.adf » !ElfKing_Elf
Filename: !ElfKing/elflib
Read OK:
File size: 9491 bytes
Load address: 0000
Exec address: 0000
File contents
   10DEFPROCpull_variables
   20addmask%=!(K%+&04)
   30copyscrblock%=!(K%+&08)
   40copyscr%=!(K%+&0C)
   50fonts%=!(K%+&10)
   60letters%=!(K%+&14)
   70copyscrblockp%=!(K%+&18)
   80elffade%=!(K%+&1C)
   90focus%=!(K%+&20)
  100mergescr%=!(K%+&30)
  110blowupscr%=!(K%+&34)
  120waterfall%=!(K%+&38)
  130maskit%=!(K%+&3C)
  140mscreen_one%=!(K%+&A8)          :REM find the location of screen store deep within fade routine
  150!mscreen_one%=K%!&C0            :REM store screen1 start address
  160mscreen_one%!4=K%!&C4           :REM and screen2 which is right next to it in the code
  170screen_offsets%=!(K%+&B4)
  180sqbuffer%=!(K%+&C8)
  190sqfile%=!(K%+&D0)
  200sparea2%=!(K%+&D0)
  210butarea%=!(K%+&D4)
  220sparea%=!(K%+&D8)
  230effect_start%=!(K%+&B8)
  240cgavga%=!(K%+&F0)             :REM 1 or 2
  250arm3%=!(K%+&DC)               :REM 0 or 1
  260
  270sparea2siz%=36*1024
  280butareasiz%=31*1024
  290spareasiz%=240*1024
  300ENDPROC
  310
  320DEFPROCpalette
  330FORi%=0TO15:VDU 19,i%,16,palet%(i%,0),palet%(i%,1),palet%(i%,2):NEXT
  340ENDPROC
  350
  360DEFPROCwait(delay%)
  370LOCAL a%
  380a%=TIME:REPEATUNTILTIME>=a%+delay%
  390ENDPROC
  400
  410DEFPROCwords(A%,B%,big%,E%,centre%,of%,words$)
  420IFbig%:C%=320:D%=360:ELSE:C%=240:D%=270
  430IFcentre%:A%+=INT((of%-FNstringsize(words$))/2)
  440FORlett%=1TOLEN(words$):?(letters%+(lett%-1))=ASC(MID$(words$,lett%,1)):NEXT
  450?(letters%+LEN(words$))=&0D
  460CALL fonts%
  470ENDPROC
  480
  490DEFPROClib_initialise
  500REMONERROR SYS"OS_Byte",250,0,255 TO ,scr%:SYS"OS_Byte",113,scr%:PRINT REPORT$+" (Internal error code "+STR$ERL+")  sprite="+debug$+CHR$0:x=GET:PROCdesk_top
  510REMONERROR SYS"OS_Byte",250,0,255 TO ,scr%:SYS"OS_Byte",113,scr%:PRINT REPORT$+" (Internal error code "+STR$ERL+")  M%="+STR$(M%)+CHR$0:x=GET:PROCdesk_top
  520ONERROR:PROCdesk_top
  530DIM blk% 80
  540maxstarts%=VAL(FNreadsysvar("ElfK$maxstarts"))
  550DIM link%(maxstarts%)
  560RESTORE +0
  570DATA 1010,1020,1030,1040,1050,1060,1070,1080,1090,1100,1110,1120
  580FORi%=1TOmaxstarts%:READlink%(i%):NEXT
  590IFY%=0:LIBRARY "<ElfK$chaindir>.floppylib":ELSE:LIBRARY "<ElfK$chaindir>.hardlib"
  600PROCpull_variables
  610
  620REM ****** temp reduction of 2K to add for printing at the end
  630REMspareasiz%-=2048
  640REM ************************
  650
  660DIM palet%(15,2)
  670RESTORE +0
  680DATA &FF,&FF,&FF,&AA,&AA,&AA,&77,&77,&77,&00,&00,&00
  690DATA &00,&00,&AA,&00,&66,&FF,&00,&CC,&FF,&FF,&88,&00
  700DATA &EE,&00,&00,&FF,&FF,&00,&99,&55,&00,&FF,&CC,&99
  710DATA &00,&88,&11,&00,&BB,&00,&00,&EE,&22,&BB,&77,&00
  720FOR i%=0 TO 15:FORj%=0TO2:READ palet%(i%,j%):NEXT:NEXT
  730PROCpalette:PROCinitmouse
  740DIM blk% 80
  750DIM scale% 16:!scale%=16:scale%!4=16*(K%!&F0):scale%!8=16:scale%!12=16
  760maxanim%=32
  770maxblue%=80:REM per program
  780maxpageblue%=8:REM per page
  790DIM masksp$(49),masksp%(49),animtime%(maxanim%-1),animpause%(maxanim%-1),book%(1),bookx%(6),ch$(3),donechange%(maxanim%-1),bkyn%(6,1),st%(31,4)
  800DIM say%(maxblue%-1,4),say$(maxblue%-1,2),sayw%(6),blwords%(maxpageblue%-1),elfdisp%(1,8),oldsay%(1,3),oldsay$(1)
  810DIM x%(1),y%(1)
  820VDU 23,17,4,1,0,0,0,0,0,0
  830VDU 23,1,0|
  840DIM input_disk_name% 256
  850DIM pdrect% 16,pdrect2% 16,pdtrans% 16,pdplot% 8
  860DIM pscale% 16,ctrans% 256,paltab% 64
  870
  880RESTORE +0
  890DATA 22,32,42,52,64,78
  900FORj%=1TO6:READ bookx%(j%):NEXT
  910RESTORE +0
  920DATA 14,28,24,28,34,36,44,44,54,52,66,56,80,68
  930FORj%=0TO6:READ bkyn%(j%,0):READ bkyn%(j%,1):NEXT
  940RESTORE +0
  950DATA -4,68,1,0,8,0,24,0,4,18,24,2,6,44,6,16,84,0,30,56,4,42,40,2,36,20,5,58,-8,3,68,36,1,64,16,7,54,64,5
  960DATA 38,92,3,60,80,8,94,96,4,80,72,2,100,60,6,92,32,3,80,12,7,96,-4,2,124,76,5,118,56,3,114,28,7,140,44,4
  970DATA 128,16,1,154,24,6,132,-8,2,158,0,8,-14,32,7,-16,-4,3,146,68,2
  980st%()=0
  990FORj%=0TO31:FORk%=0TO2:READ st%(j%,k%):NEXT:NEXT
 1000RESTORE +0
 1010DATA 1,322,640,642,0,321,2,320,641
 1020DATA 1,50,96,98,0,49,2,48,97
 1030FORj%=0TO1:FORk%=0TO8:READ elfdisp%(j%,k%):NEXT:NEXT
 1040RESTORE +0
 1050DATA 1,642,1280,1282,0,641,2,640,1281
 1060IFcgavga%=2THEN:FORk%=0TO8:READ elfdisp%(0,k%):NEXT
 1070my%=W%AND&FFFF:mx%=W%>>16:oldmx%=mx%:oldmy%=my%
 1080bluewords%=0:on$=CHR$(18)+CHR$(1)+CHR$(VAL(FNreadsysvar("ElfK$wordcol")))+CHR$(0):off$=CHR$(18)+CHR$(1)+CHR$(3)+CHR$(0)
 1090usualpos%=-1:slow%=0:sayhand%=-1:sayabove%=-1:goonq%=0:ynq%=0:whitebg%=-1:checkmouse%=-1
 1100ENDPROC
 1110
 1120DEFPROCwords_box(blue%,list$,who$,line1$,line2$,bx%,by%,arr%,arrflip%,pos%)
 1130LOCAL sx%,sy%,k%
 1140sx%=FNstringsize(line1$):sy%=108
 1150IFline2$<>"" THEN
 1160 sy%=160:k%=FNstringsize(line2$)
 1170 IFk%>sx%:sx%=k%
 1180ENDIF
 1190sx%+=120
 1200PROCsavebgrd(bx%,by%,sx%,sy%,"boxbg")
 1210IFarr%=1:PROCsavebgrd(bx%-68,pos%,72,52,"arrbg")
 1220IFarr%=2:PROCsavebgrd(pos%,by%-108,68,112,"arrbg")
 1230IFarr%=3:PROCsavebgrd(pos%,by%+sy%-4,68,112,"arrbg")
 1240PROCspeechbox(bx%,by%,sx%,sy%,arr%,arrflip%,pos%,-1)
 1250PROCwords_read(blue%,list$):PROCwords_say(line1$,line2$)
 1260ENDPROC
 1270
 1280DEFPROCwords_read(blue%,list$)
 1290LOCAL j%
 1300bluewords%=blue%
 1310IFblue%>0THEN
 1320 FORj%=0TOblue%-1:blwords%(j%)=VALlist$:list$=RIGHT$(list$,LEN(list$)-3):NEXT
 1330ENDIF
 1340ENDPROC
 1350
 1360DEFPROCwords_say(line1$,line2$)
 1370LOCAL j%
 1380IFusualpos%THEN
 1390 IFline2$="":oldsay%(0,1)=40:sayup%=40:ELSE:oldsay%(0,1)=96:sayup%=60
 1400 PROCwords(240,oldsay%(0,1),-1,3,-1,820,line1$):IFline2$<>"":PROCwords(240,36,-1,3,-1,820,line2$)
 1410ELSE
 1420 IFline2$="":oldsay%(0,1)=32:sayup%=40:ELSE:oldsay%(0,1)=88:sayup%=40
 1430 oldsay%(0,1)+=by%
 1440 PROCwords(bx%,oldsay%(0,1),-1,3,-1,sx%,line1$):IFline2$<>"":PROCwords(bx%,by%+28,-1,3,-1,sx%,line2$)
 1450ENDIF
 1460ENDPROC
 1470
 1480DEFPROCinitmouse
 1490mboxle%=0:mboxlo%=0:mboxri%=1279:mboxhi%=1023:mtox%=1108:mtoy%=324
 1500ENDPROC
 1510
 1520DEFPROCdesk_top
 1530FORiii%=1TOmaxstarts%
 1540IFL%=link%(iii%):S%=iii%
 1550NEXT
 1560CLEAR:DIMbuf% 4:FORi%=1TO16:WAIT:FORc%=0TO16:IFc%<16v%=16 ELSE v%=24
 1570SYS"OS_ReadPalette",c%,v% TO ,,d%:!buf%=d%:FORb%=1TO3:IFbuf%?b%>0buf%?b%-=16:NEXT:ELSE:NEXT
 1580VDU19,c%,v%,buf%?1,buf%?2,buf%?3:NEXT,
 1590CHAIN "<ElfK$chaindir>.!runimage"
 1600STOP
 1610
 1620DEFPROCbookgoon(book%(0),book%(1),anim%,clear%,fadetext%)
 1630obk%=-1:obkflip%=-1:bk%=0:bkflip%=1:bookdirn%=1:animpause%(0)=10
 1640PROCsavebgrd(book%(0),book%(1),182,148,"bookbg")
 1650see%=1:do%=2:SYS "OS_Byte",113,see%:SYS "OS_Byte",112,do%
 1660SYS"OS_SpriteOp",&134,butarea%,"bookbut",book%(0),book%(1),8,scale%,0
 1670PROCscrcopyblockpix(book%(0),book%(1),182,148,do%,see%,0)
 1680goonq%=-1:PROCbuttonloop(anim%,0):goonq%=0
 1690PROCflipbook
 1700IFclear%ORfadetext% THEN
 1710 SYS "OS_Byte",112,2
 1720 IFclear%:SYS"OS_SpriteOp",&122,sparea%,"bookbg",book%(0),book%(1),8
 1730 IFfadetext%:PROCclspeech:PROCmergescr21(4):ELSE:PROCscrcopy21
 1740ENDIF
 1750ENDPROC
 1760
 1770DEFPROCbmyn(book%(0),book%(1),anim%,clear%,fadetext%)
 1780bm%=-1:obm%=-2:onbmpos%=-2:nbmpos%=0:oybmpos%=-2:ybmpos%=0:fullbm%=0:bk%=0:bkflip%=1:bookdirn%=1:animpause%(3)=1
 1790PROCsavebgrd(book%(0),book%(1),182,184,"bookbg")
 1800see%=1:do%=2:SYS "OS_Byte",113,see%:SYS "OS_Byte",112,do%
 1810SYS"OS_SpriteOp",&134,butarea%,"bookbut",book%(0),book%(1),8,scale%,0
 1820PROCscrcopyblockpix(book%(0),book%(1),182,184,do%,see%,0)
 1830ynq%=-1:PROCbuttonloop(anim%,0):ynq%=0
 1840IFbkflip%=-1:PROCflipbook
 1850IFclear%ORfadetext% THEN
 1860 SYS "OS_Byte",112,2
 1870 IFclear%:SYS"OS_SpriteOp",&122,sparea%,"bookbg",book%(0),book%(1),8
 1880 IFfadetext%:PROCclspeech:PROCmergescr21(4):ELSE:PROCscrcopy21
 1890ENDIF
 1900ENDPROC
 1910
 1920DEFPROCbuttonloop(anim%,exit%)
 1930REM enter loop with both screens the same
 1940REMPROCdebug
 1950LOCAL t%,k%
 1960PROCsavebgrd(oldmx%-8,oldmy%-104,118,112,"h0bg1"):PROCsavebgrd(oldmx%-8,oldmy%-104,118,112,"h0bg2"):x%()=(oldmx%-8):y%()=(oldmy%-104)
 1970chosen%=-1:animend%=0:t%=TIME-1000:animtime%()=t%
 1980SYS"OS_Byte",21,9:MOUSE RECTANGLE mboxle%,mboxlo%,mboxri%-mboxle%,mboxhi%-mboxlo%:MOUSE TO oldmx%,oldmy%
 1990SYS"OS_Byte",21,0:mbut%=0
 2000REPEAT
 2010 PROCcheckkeyevent
 2020 IFcheckmouse%:PROCcheckmouse
 2030 IF(mbut%=4)AND(bluewords%>0):PROCelffade(FNonblue)
 2040 SYS"OS_SpriteOp",&122,sparea%,"h0bg"+STR$(do%),x%(do%-1),y%(do%-1),8
 2050 donechange%()=0:PROCcheckanimate
 2060 IFexit%:PROCloopexit
 2070 PROCcheckalldone
 2080 x%(do%-1)=mx%-8:y%(do%-1)=my%-104:PROCsavebgrd(x%(do%-1),y%(do%-1),118,112,"h0bg"+STR$(do%))
 2090 SYS"OS_SpriteOp",&134,butarea%,"h0",x%(do%-1),y%(do%-1),8,scale%,0
 2100 see%=%100>>>see%:do%=%100>>>do%:WAIT:SYS "OS_Byte",113,see%:SYS "OS_Byte",112,do%
 2110 FORk%=0TOmaxanim%-1
 2120  IFanimtime%(k%)=-1:animtime%(k%)=TIME
 2130 NEXT
 2140UNTILanimend%
 2150bluewords%=0
 2160SYS "OS_Byte",112,see%:SYS"OS_SpriteOp",&122,sparea%,"h0bg"+STR$(see%),x%(see%-1),y%(see%-1),8
 2170PROCscrcopy(see%,do%)
 2180ENDPROC
 2190
 2200DEFPROCcheckmouse
 2210LOCAL j%,k%,l%,m%
 2220SYS"OS_Byte",128,246 TO ,l%,m%
 2230k%=(l%AND&FF)OR((m%AND&FFFFFF)<<8)
 2240FORj%=1TO1+(k%/9)
 2250 SYS"OS_Mouse" TO mx%,my%,mbut%
 2260 oldmx%=mx%:oldmy%=my%
 2270 IF(mbut%AND%100)=%100 THEN:mbut%=4:ENDPROC
 2280NEXT
 2290ENDPROC
 2300
 2310DEFPROCcheckkeyevent
 2320LOCAL r1%,r2%,b%,j%,f%
 2330checkmouse%=-1
 2340SYS"OS_Byte",128,255 TO ,r1%,r2%
 2350b%=(r1%AND&FF)OR((r2%AND&FFFFFF)<<8)
 2360IFb%>0THEN
 2370 FORj%=1TOb%
 2380  SYS"OS_Byte",145,0 TO ,,r2%;f%
 2390  IF(f%AND%10)=%00 THEN
 2400REM   IFr2%=19:SYS"OS_Byte",21,0:PROCscreen_save:SYS"OS_Byte",21,0:ENDPROC
 2410REM   IFr2%=16:SYS"OS_Byte",21,0:PROCprinter:SYS"OS_Byte",21,0:ENDPROC
 2420   IFgoonq%THEN
 2430    IFr2%=32 THEN:mbut%=4:mx%=book%(0)+80:oldmx%=mx%:my%=book%(1)+60:oldmy%=my%:MOUSE TO mx%,my%:checkmouse%=0:chosen%=0:animpause%(0)=4:bookdirn%=1:ENDPROC
 2440   ENDIF
 2450   IFynq%THEN
 2460    IF(r2%=121)OR(r2%=89) THEN:mbut%=4:mx%=book%(0)+140:oldmx%=mx%:my%=book%(1)+60:oldmy%=my%:MOUSE TO mx%,my%:checkmouse%=0:chosen%=1:bm%=1:animpause%(2)=4:bookdirn%=1:ENDPROC
 2470    IF(r2%=110)OR(r2%=78) THEN:mbut%=4:mx%=book%(0)+60:oldmx%=mx%:my%=book%(1)+60:oldmy%=my%:MOUSE TO mx%,my%:checkmouse%=0:chosen%=0:bm%=0:animpause%(2)=4:bookdirn%=-1:PROCflipbook:ENDPROC
 2480   ENDIF
 2490  ENDIF
 2500 NEXT
 2510ENDIF
 2520ENDPROC
 2530
 2540DEFPROCcheckalldone
 2550LOCAL j%
 2560FORj%=0TOmaxanim%-1
 2570 IF((anim%>>>j%)AND&01)=&01 THEN:IFNOTdonechange%(j%):PROCanimcopyblock(j%)
 2580NEXT
 2590ENDPROC
 2600
 2610DEFPROCanimcopyblock(j%)
 2620CASE j% OF
 2630 WHEN 0:PROCscrcopyblockpix(book%(0),book%(1),182,148,see%,do%,-1)
 2640 WHEN 1:IFch%<=2:PROCscrcopyblockpix(book%(0),book%(1),144+(lenbm%*2),148,see%,do%,-1):ELSE:PROCscrcopyblockpix(book%(0)+30-(lenbm%*2),book%(1),120+(lenbm%*4),148,see%,do%,-1)
 2650 WHEN 3:PROCscrcopyblockpix(book%(0),book%(1),182,184,see%,do%,-1)
 2660 OTHERWISE:PROCspecificcopy(j%)
 2670ENDCASE
 2680ENDPROC
 2690
 2700DEFPROCcheckanimate
 2710LOCAL j%
 2720FORj%=0TOmaxanim%-1
 2730 IF((anim%>>>j%)AND&01)=&01:PROCanimate(j%)
 2740NEXT
 2750ENDPROC
 2760
 2770DEFPROCanimate(j%)
 2780IFTIME>=(animtime%(j%)+animpause%(j%)) THEN
 2790 CASE j% OF
 2800  WHEN 0: IFchosen%>=0THEN
 2810           bookdirn%=1
 2820          ELSE
 2830           IFFNonbook THEN
 2840            IFmbut%=4THEN
 2850             chosen%=0:animpause%(0)=4:bookdirn%=1
 2860            ELSE
 2870             IFbk%<5:bookdirn%=1
 2880             IF(bk%=5)AND(bkflip%=1):bookdirn%=1
 2890             IF(bk%=5)AND(bkflip%=-1):bookdirn%=-1
 2900            ENDIF
 2910           ELSE
 2920            bookdirn%=-1
 2930           ENDIF
 2940          ENDIF
 2950          IF(bk%=6)AND((bookdirn%*bkflip%)=1):PROCflipbook:ELSE:bk%+=(bookdirn%*bkflip%)
 2960          IF(chosen%>=0)AND(bkflip%=-1)AND(bk%=0):animend%=-1
 2970          IFbk%<0:bk%=0
 2980          IF(bk%<>obk%)OR(bkflip%<>obkflip%):PROCplotbook(0):obk%=bk%:obkflip%=bkflip%
 2990  WHEN 3: IFchosen%<0 THEN
 3000           IFFNonbook THEN
 3010            IFmx%<(book%(0)+92):bm%=0:ELSE:bm%=1
 3020           ELSE
 3030            bm%=-1
 3040           ENDIF
 3050           IFbm%>=0 THEN
 3060            IFmbut%=4 THEN
 3070             chosen%=bm%:animpause%(2)=4
 3080             IFchosen%=1:bookdirn%=1:ELSE:bookdirn%=-1:PROCflipbook
 3090            ENDIF
 3100           ENDIF
 3110           IFobm%<>bm% THEN:PROCplotbook(3):obm%=bm%
 3120          ELSE
 3130           IF((chosen%=0)AND(nbmpos%=40)AND(ybmpos%=0))OR((chosen%=1)AND(ybmpos%=40)AND(nbmpos%=0)) THEN
 3140            fullbm%=-1
 3150            IF(bk%=6)AND((bookdirn%*bkflip%)=1):PROCflipbook:ELSE:bk%+=(bookdirn%*bkflip%)
 3160            IFbk%<0THEN:bk%=0:animend%=-1
 3170           ENDIF
 3180          ENDIF
 3190          IFbm%<0:nbmpos%-=4:ybmpos%-=4
 3200          IFbm%=0:nbmpos%+=4:ybmpos%-=4
 3210          IFbm%=1:nbmpos%-=4:ybmpos%+=4
 3220          IFnbmpos%<0:nbmpos%=0
 3230          IFnbmpos%>40:nbmpos%=40
 3240          IFybmpos%<0:ybmpos%=0
 3250          IFybmpos%>40:ybmpos%=40
 3260          IF(chosen%>=0)OR(obm%<>bm%)OR(onbmpos%<>nbmpos%)OR(oybmpos%<>ybmpos%) THEN
 3270           PROCplotbook(3)
 3280           obm%=bm%:onbmpos%=nbmpos%:oybmpos%=ybmpos%
 3290          ENDIF
 3300  OTHERWISE:PROCspecificanim(j%)
 3310 ENDCASE
 3320ENDIF
 3330ENDPROC
 3340
 3350DEFPROCflipbook
 3360LOCAL k%
 3370FORk%=1TO6:PROCflip(butarea%,"y","bb"+STR$(k%)):NEXT
 3380bkflip%=bkflip%*-1
 3390ENDPROC
 3400
 3410DEFFNonbook
 3420IF(mx%<=(book%(0)+182))AND(mx%>=book%(0))AND(my%<=(book%(1)+148))AND(my%>=book%(1))THEN:=-1
 3430=0
 3440
 3450DEFFNonblue
 3460LOCAL j%
 3470FORj%=0TObluewords%-1
 3480 IF(mx%<=say%(blwords%(j%),2))AND(mx%>=say%(blwords%(j%),0))AND(my%<=say%(blwords%(j%),3))AND(my%>=say%(blwords%(j%),1))THEN:=blwords%(j%)
 3490NEXT
 3500=-1
 3510
 3520DEFFNonbookmark
 3530LOCAL j%
 3540FORj%=0TO1
 3550 IF(mx%<=(book%(0)+144+(lenbm%*2)+8))AND(mx%>=(book%(0)+120))AND(my%<=(book%(1)+60+56-(60*j%)))AND(my%>=(book%(1)+60-(60*j%)))THEN:=j%
 3560NEXT
 3570IFch%>2 THEN
 3580 FORj%=2TOch%-1
 3590  IF(mx%<=(book%(0)+60))AND(mx%>=(book%(0)+30-(lenbm%*2)-8))AND(my%<=(book%(1)+60+56-(60*(j%MOD2))))AND(my%>=(book%(1)+60-(60*(j%MOD2))))THEN:=j%
 3600 NEXT
 3610ENDIF
 3620REMIF(mx%<=(book%(0)+182))AND(mx%>=book%(0))AND(my%<=(book%(1)+148))AND(my%>=book%(1))THEN:PRINT "on ";bk%;" ";bookdirn%;" ";bkflip%;" ";mbut%:X=GET:=-1
 3630REMPRINT "off ";bk%;" ";bookdirn%;" ";bkflip%;" ";mbut%:X=GET
 3640=-1
 3650
 3660DEFPROCplotbook(a%)
 3670SYS"OS_SpriteOp",&122,sparea%,"bookbg",book%(0),book%(1),8
 3680SYS"OS_SpriteOp",&134,butarea%,"bookbut",book%(0),book%(1),8,scale%,0
 3690IFa%=1 THEN:PROCplotbm:IFfullbm%:PROCfullbm
 3700IFa%=3 THEN:PROCplotynbm
 3710IFbk%>0THEN
 3720 IFbkflip%=-1:SYS"OS_SpriteOp",&134,butarea%,"bb"+STR$(bk%),book%(0)+bookx%(bk%),book%(1)+16+(4*bk%),8,scale%,0:ELSE:SYS"OS_SpriteOp",&134,butarea%,"bb"+STR$(bk%),book%(0)+90,book%(1)+16+(4*bk%),8,scale%,0
 3730 IF(a%=2)ANDNOTanimend% THEN
 3740  IF(chosen%=1)AND(bkflip%=1):SYS"OS_SpriteOp",&134,sparea2%,"y"+STR$(bk%),book%(0)+94,book%(1)+bkyn%(bk%,1),8,scale%,0
 3750  IF(chosen%=0)AND(bkflip%=-1):SYS"OS_SpriteOp",&134,sparea2%,"n"+STR$(bk%),book%(0)+bkyn%(bk%,0),book%(1)+bkyn%(bk%,1),8,scale%,0
 3760 ENDIF
 3770ENDIF
 3780achange%=-1:donechange%(a%)=-1:animtime%(a%)=-1
 3790ENDPROC
 3800
 3810DEFPROCplotynbm
 3820VDU24,0;0;1278;book%(1)+22;:PROCplotynbm0:PROCplotynbm1:VDU24,0;book%(1)+96;1278;958;:PROCplotynbm0:PROCplotynbm1
 3830VDU26
 3840IFfullbm%THEN
 3850 IFbm%=0:PROCplotynbm0:ELSE:PROCplotynbm1
 3860ENDIF
 3870ENDPROC
 3880
 3890DEFPROCplotynbm0
 3900LOCAL c%
 3910IFbm%=0:c%=9:ELSE:c%=0
 3920PROCbox(book%(0)+28,book%(1)+nbmpos%,36,136,c%,2)
 3930PROCbox(book%(0)+16,book%(1)+nbmpos%,60,96,c%,2)
 3940VDU18,0,c%:VDU25,4,book%(0)+30;book%(1)+nbmpos%+92;:VDU25,97,32;2;
 3950IFbm%=0:c%=8:ELSE:c%=3
 3960VDU5:VDU23,17,7,%10,8;8*cgavga%;0,0
 3970VDU18,0,c%
 3980VDU25,4,book%(0)+38;book%(1)+nbmpos%+124;
 3990PRINT "N"
 4000VDU25,4,book%(0)+30;book%(1)+nbmpos%+88;
 4010PRINT "no"
 4020VDU23,17,7,%10,8;8;0,0:VDU4
 4030ENDPROC
 4040
 4050DEFPROCplotynbm1
 4060LOCAL c%
 4070IFbm%=1:c%=9:ELSE:c%=0
 4080PROCbox(book%(0)+118,book%(1)+ybmpos%,36,136,c%,2)
 4090PROCbox(book%(0)+106,book%(1)+ybmpos%,60,96,c%,2)
 4100VDU18,0,c%:VDU25,4,book%(0)+120;book%(1)+ybmpos%+92;:VDU25,97,32;2;
 4110IFbm%=1:c%=8:ELSE:c%=3
 4120VDU5:VDU23,17,7,%10,8;8*cgavga%;0,0
 4130VDU18,0,c%
 4140VDU25,4,book%(0)+128;book%(1)+ybmpos%+124;
 4150PRINT "Y"
 4160VDU25,4,book%(0)+112;book%(1)+ybmpos%+88;
 4170PRINT "yes"
 4180VDU23,17,7,%10,8;8;0,0:VDU4
 4190ENDPROC
 4200
 4210DEFPROCplotbm
 4220LOCAL j%,k%
 4230FORj%=0TO1
 4240 VDU18,0,3:VDU25,4,book%(0)+144;book%(1)+60-(j%*52);:VDU25,97,(lenbm%*2)-2;48-2;
 4250 IFbm%=j%:VDU18,0,9:ELSE:VDU18,0,0
 4260 VDU25,4,book%(0)+146;book%(1)+64-(j%*52);:VDU25,97,(lenbm%*2)-6;48-10;
 4270 IFbm%=j%:SYS"OS_SpriteOp",&134,butarea%,"bm"+STR$(j%)+"1",book%(0)+144,book%(1)+60-(j%*52),8,scale%,0:ELSE:SYS"OS_SpriteOp",&134,butarea%,"bm"+STR$(j%)+"0",book%(0)+144,book%(1)+60-(j%*52),8,scale%,0
 4280 VDU5:VDU25,4,book%(0)+174+((8+(((maxbm%-LEN(ch$(j%)))/2)*8))*2);book%(1)+60+36-(j%*52);
 4290 PROCprintbm
 4300NEXT
 4310IFch%>2 THEN
 4320 FORj%=0TO1:FORk%=0TO1:PROCflip(butarea%,"y","bm"+STR$(j%)+STR$(k%)):NEXT:NEXT
 4330 FORj%=2TOch%-1
 4340  VDU18,0,3:VDU25,4,book%(0)+36;book%(1)+60-((j%-2)*52);:VDU25,97,2-(lenbm%*2);48-2;
 4350  IFbm%=j%:VDU18,0,9:ELSE:VDU18,0,0
 4360  VDU25,4,book%(0)+34;book%(1)+64-((j%-2)*52);:VDU25,97,6-(lenbm%*2);48-10;
 4370  IFbm%=j%:SYS"OS_SpriteOp",&134,butarea%,"bm"+STR$((j%-2))+"1",book%(0),book%(1)+60-((j%-2)*52),8,scale%,0:ELSE:SYS"OS_SpriteOp",&134,butarea%,"bm"+STR$((j%-2))+"0",book%(0),book%(1)+60-((j%-2)*52),8,scale%,0
 4380  VDU5:VDU25,4,book%(0)+36-(lenbm%*2)+((8+(((maxbm%-LEN(ch$(j%)))/2)*8))*2);book%(1)+60+36-((j%-2)*52);
 4390  PROCprintbm
 4400 NEXT
 4410 FORj%=0TO1:FORk%=0TO1:PROCflip(butarea%,"y","bm"+STR$(j%)+STR$(k%)):NEXT:NEXT
 4420ENDIF
 4430achange%=-1:donechange%(1)=-1:animtime%(1)=-1
 4440ENDPROC
 4450
 4460DEFPROCfullbm
 4470LOCAL j%
 4480IFbm%<2 THEN
 4490 VDU18,0,3:VDU25,4,book%(0)+144;book%(1)+60-((bm%MOD2)*52);:VDU25,97,(lenbm%*2)-2;48-2;
 4500 VDU18,0,9:VDU25,4,book%(0)+146;book%(1)+64-((bm%MOD2)*52);:VDU25,97,(lenbm%*2)-6;48-10;
 4510 VDU5:VDU25,4,book%(0)+174+((8+(((maxbm%-LEN(ch$(bm%)))/2)*8))*2);book%(1)+60+36-((bm%MOD2)*52);
 4520ELSE
 4530 VDU18,0,3:VDU25,4,book%(0)+36;book%(1)+60-((bm%MOD2)*52);:VDU25,97,2-(lenbm%*2);48-2;
 4540 VDU18,0,9:VDU25,4,book%(0)+34;book%(1)+64-((bm%MOD2)*52);:VDU25,97,6-(lenbm%*2);48-10;
 4550 VDU5:VDU25,4,book%(0)+36-(lenbm%*2)+((8+(((maxbm%-LEN(ch$(bm%)))/2)*8))*2);book%(1)+60+36-((bm%MOD2)*52);
 4560ENDIF
 4570j%=bm%:PROCprintbm
 4580ENDPROC
 4590
 4600DEFPROCprintbm
 4610IFbm%=j%:VDU18,0,8:ELSE:VDU18,0,3
 4620VDU23,17,7,%10,8;8*cgavga%;0,0
 4630PRINT ch$(j%)
 4640VDU23,17,7,%10,8;8;0,0:VDU4
 4650ENDPROC
 4660
 4670DEFPROCmousefull
 4680MOUSE RECTANGLE 0,0,1279,960
 4690ENDPROC
 4700
 4710DEFPROCsavespbgrd(x_pos%,y_pos%,spname$,bgname$)
 4720LOCAL w%,h%
 4730SYS "OS_SpriteOp",&128,sparea%,spname$ TO ,,,w%,h%
 4740PROCsavebgrd(x_pos%,y_pos%,w%*2,h%*4,bgname$)
 4750ENDPROC
 4760
 4770DEFPROCsavebgrd(x_pos%,y_pos%,x_siz%,y_siz%,bgname$)
 4780SYS "OS_SpriteOp",&110,sparea%,bgname$,0,x_pos%,y_pos%,x_pos%+x_siz%,y_pos%+y_siz%
 4790ENDPROC
 4800
 4810DEFPROCdelete(spn$)
 4820SYS "OS_SpriteOp",&119,sparea%,spn$
 4830ENDPROC
 4840
 4850DEFFNscreen_number
 4860sc%=0
 4870REPEAT
 4880sc%=sc%+1:sc$=STR$(sc%)
 4890SYS"XOS_Find",&40,"<ElfK$Save>.screen"+sc$ TO h%
 4900IFh%<>0:CLOSE#h%
 4910UNTILh%=0
 4920=sc%
 4930
 4940DEFPROCprinter
 4950LOCAL di%
 4960IF(L%<=1030)OR(L%>=1110):di%=1:ELSE:di%=2
 4970VDU26
 4980ORIGIN0,0:SYS"XOS_SpriteOp",&119,sparea%,"blank"
 4990!pscale%=1:pscale%!4=1:pscale%!8=1:pscale%!12=1
 5000LOCALF%,E%
 5010F%=OPENOUT("printer:")
 5020LOCAL ERROR
 5030ONERRORLOCAL:RESTORE ERROR:CLOSE#F%:OSCLI"FX229,0":ENDPROC
 5040REMONERRORLOCAL:RESTORE ERROR:CLOSE#F%:OSCLI"FX229,0":SYS"OS_Byte",250,0,255 TO ,scr%:SYS"OS_Byte",113,scr%:PRINT REPORT$+" (Internal error code "+STR$ERL+")"+CHR$0:PROCwait(500):PROCdesk_top
 5050SYS"PDriver_SelectJob",F%,0,0
 5060LOCAL ERROR
 5070ONERRORLOCAL:RESTORE ERROR:SYS"PDriver_AbortJob",F%:SYS"PDriver_SelectJob",E%:CLOSE#F%:OSCLI"FX229,0":ENDPROC
 5080REMONERRORLOCAL:RESTORE ERROR:SYS"PDriver_AbortJob",F%:SYS"PDriver_SelectJob",E%:CLOSE#F%:OSCLI"FX229,0":SYS"OS_Byte",250,0,255 TO ,scr%:SYS"OS_Byte",113,scr%:PRINT REPORT$+" (Internal error code "+STR$ERL+")"+CHR$0:PROCwait(500):PROCdesk_top
 5090!(pdrect%+0)=0:!(pdrect%+4)=0:!(pdrect%+8)=1280:!(pdrect%+12)=960
 5100!(pdtrans%+0)=1<<16:!(pdtrans%+4)=0:!(pdtrans%+8)=0:!(pdtrans%+12)=1<<16
 5110REM!(pdplot%+0)=128<<8:!(pdplot%+4)=512<<8
 5120!(pdplot%+0)=128<<8
 5130SYS"PDriver_PageSize" TO r0,r1,r2,r3,r4,r5,r6
 5140SYS"PDriver_SetPageSize",,r1,r2,r3,0,r5,r6
 5150!(pdplot%+4)=r6-400000:IF(pdplot%!4)<(512<<8):pdplot%!4=512<<8
 5160SYS"PDriver_GiveRectangle",0,pdrect%,pdtrans%,pdplot%,&FFFFFF00
 5170SYS "OS_SpriteOp",&13C,0,0,1:SYS"ColourTrans_InvalidateCache"
 5180SYS"PDriver_DrawPage",1,pdrect2%,0,0 TO copiesleft%
 5190WHILE copiesleft%<>0
 5200PROCpd_plot_screen
 5210SYS"PDriver_GetRectangle",,pdrect2% TO copiesleft%
 5220ENDWHILE
 5230SYS"PDriver_EndJob",F%
 5240RESTORE ERROR
 5250RESTORE ERROR
 5260CLOSE#F%
 5270REMSYS"OS_SpriteOp",&10F,sparea%,"blank",0,384,192,12
 5280*FX229,0
 5290IFY%=0:PROCcheckfloppyisthere(di%,"")
 5300ENDPROC
 5310
 5320DEFPROCpd_plot_screen
 5330LOCALy%,p%,i%,f%,t%
 5340*FX229,1
 5350FORy%=0TO936STEP24
 5360SYS"PDriver_SelectJob",0,0,0
 5370SYS"OS_SpriteOp",&110,sparea%,"blank",1,0,y%,1279,y%+24 TO r0%,r1%,r2%
 5380!pscale%=1:pscale%!4=1:pscale%!8=1:pscale%!12=1
 5390SYS"PDriver_SelectJob",F%,0,0
 5400f%=(r2%+44):t%=paltab%:FORi%=0TO15:!t%=!f%:t%+=4:f%+=8:NEXT
 5410SYS"ColourTrans_SelectTable",12,paltab%,-1,-1,ctrans%
 5420SYS "OS_SpriteOp",&234,sparea%,r2%,0,y%,0,pscale%,ctrans%
 5430NEXT
 5440ENDPROC
 5450
 5460DEFPROCscreen_save
 5470LOCAL di%
 5480IF(L%<=1030)OR(L%>=1110):di%=1:ELSE:di%=2
 5490PROCwait(50)
 5500VDU26
 5510IFY%=0:PROCfloppy_screen_save:PROCcheckfloppyisthere(di%,"")
 5520IFY%=1:PROChard_screen_save
 5530PROCwait(50)
 5540*fx15
 5550ENDPROC
 5560
 5570DEFPROCmergescr21(C%)
 5580REM time of merge is approx (C%*16)/100 seconds
 5590A%=2:B%=1
 5600CALL mergescr%
 5610WAIT:SYS "OS_Byte",113,1:SYS "OS_Byte",112,1:VDU 26
 5620ENDPROC
 5630
 5640DEFPROCscrcopy(A%,B%)
 5650SYS "OS_Byte",113,A%
 5660CALL copyscr%
 5670WAIT:SYS "OS_Byte",113,1:SYS "OS_Byte",112,1:VDU 26
 5680ENDPROC
 5690
 5700DEFPROCscrcopy21
 5710SYS "OS_Byte",113,2:A%=2:B%=1
 5720CALL copyscr%
 5730WAIT:SYS "OS_Byte",113,1:SYS "OS_Byte",112,1:VDU 26
 5740ENDPROC
 5750
 5760DEFPROCscrcopyblock(x%,y%,sx%,sy%,A%,B%)
 5770REM A%=addr to copy from. B%=addr to. C%=width in words. D%=rows.
 5780IFA%=1:A%=K%!&C0:B%=K%!&C4:ELSE:A%=K%!&C4:B%=K%!&C0
 5790C%=960-((y%+sy%)-((y%+sy%)MOD4)):C%=(cgavga%*(320*(C%/4)))+(4*INT(x%/16)):A%+=C%:B%+=C%
 5800C%=INT(sx%/16)+2:D%=cgavga%*INT(sy%/4):IF(sy%MOD4)<>0:D%+=cgavga%
 5810REMPRINT x%;" ";y%;" ";sx%;" ";sy%;" ";~(K%!&C0);" ";~(K%!&C4);" ";~A%;" ";~B%;" ";C%;" ";D%:X=GET
 5820CALL copyscrblock%
 5830ENDPROC
 5840
 5850DEFPROCscrcopyblockpix(x%,y%,sx%,sy%,from%,to%,fingbg%)
 5860REM A%=addr to copy from. B%=addr to. Each row consists of :- C% L-pixels (0,1):D% L-bytes (0,1,2,3):E% words:F% R-bytes (0,1,2,3):G% R-pixels.  H%=no. of rows
 5870LOCAL xx%,xxx%,sxx%
 5880IFfrom%=1:A%=K%!&C0:B%=K%!&C4:ELSE:A%=K%!&C4:B%=K%!&C0
 5890C%=960-((y%+sy%)-((y%+sy%)MOD4)):C%=(cgavga%*(320*(C%/4)))+INT(x%/4):A%+=C%:B%+=C%
 5900xx%=x%
 5910IF(x%MOD4)=0 THEN:C%=0:ELSE:C%=1:xx%+=2
 5920IF((x%MOD16)>0)AND((x%MOD16)<=4) THEN:D%=3:xx%+=12
 5930IF((x%MOD16)>4)AND((x%MOD16)<=8) THEN:D%=2:xx%+=8
 5940IF((x%MOD16)>8)AND((x%MOD16)<=12) THEN:D%=1:xx%+=4
 5950IF(((x%MOD16)>12)AND((x%MOD16)<=15))OR((x%MOD16)=0) THEN:D%=0
 5960sxx%=x%+sx%:xxx%=sxx%
 5970IF(sxx%MOD4)=0 THEN:G%=0:ELSE:G%=1:xxx%-=2
 5980IF((sxx%MOD16)>=0)AND((sxx%MOD16)<4) THEN:F%=0
 5990IF((sxx%MOD16)>=4)AND((sxx%MOD16)<8) THEN:F%=1:xxx%-=4
 6000IF((sxx%MOD16)>=8)AND((sxx%MOD16)<12) THEN:F%=2:xxx%-=8
 6010IF((sxx%MOD16)>=12)AND((sxx%MOD16)<15) THEN:F%=3:xxx%-=12
 6020E%=(xxx%-xx%)/16
 6030H%=cgavga%*INT(sy%/4):IF(sy%MOD4)<>0:H%+=cgavga%
 6040CALL copyscrblockp%
 6050IFfingbg%:VDU24,x%;y%;x%+sx%-2;y%+sy%-2;:SYS"OS_SpriteOp",&122,sparea%,"h0bg"+STR$(from%),x%(from%-1),y%(from%-1),8:VDU26
 6060ENDPROC
 6070
 6080DEFPROCwaterfall21(C%)
 6090REM waterfall will take approx (C%*16)/100 seconds
 6100C%=C%/(K%!&F0):C%=C%/4:IFC%=0:C%=1
 6110A%=2:B%=1:CALL waterfall%
 6120WAIT:SYS "OS_Byte",113,1:SYS "OS_Byte",112,1:VDU 26
 6130ENDPROC
 6140
 6150DEFPROCscrcopy21exp(A%,B%,C%,D%,E%,F%)
 6160CALL blowupscr%
 6170ENDPROC
 6180
 6190DEFPROCflip(area%,way$,spri$)
 6200IFway$="y":SYS"OS_SpriteOp",&12F,area%,spri$:ELSE:SYS"OS_SpriteOp",&121,area%,spri$
 6210ENDPROC
 6220
 6230DEFPROCelffade(word%)
 6240IFword%<0THEN:ENDPROC
 6250IFsay%(word%,1)<=736:PROCelffadeabove(word%):ELSE:PROCelffadeside(word%)
 6260ENDPROC
 6270
 6280DEFPROCelffadeabove(word%)
 6290LOCAL wid%,x%,y%,sx%,sy%
 6300wid%=say%(word%,2)-say%(word%,0)
 6310PROCcachesound("fxpop",1)
 6320SYS "OS_Byte",112,see%
 6330IFsayhand%:SYS"OS_SpriteOp",&122,sparea%,"h0bg"+STR$(see%),x%(see%-1),y%(see%-1),8:ELSE:SYS"OS_SpriteOp",&122,sparea%,"magbg"+STR$(see%),x%(see%-1),y%(see%-1),8
 6340SYS "OS_Byte",112,do%:PROCscrcopy(see%,do%):x%(do%-1)=x%(see%-1):y%(do%-1)=y%(see%-1):oomx%=mx%:oomy%=my%
 6350IFsayhand%THEN
 6360 SYS"OS_SpriteOp",&119,sparea%,"h0bg"+STR$(do%):SYS"OS_SpriteOp",&11B,sparea%,"h0bg"+STR$(see%),"h0bg"+STR$(do%)
 6370ELSE
 6380 SYS"OS_SpriteOp",&119,sparea%,"magbg"+STR$(do%):SYS"OS_SpriteOp",&11B,sparea%,"magbg"+STR$(see%),"magbg"+STR$(do%)
 6390ENDIF
 6400REMPROCsavebgrd(say%(word%,0)-40,say%(word%,1)-8,wid%+80,say%(word%,3)-say%(word%,1)+20,"sayboxbg")
 6410PROCsavebgrd(say%(word%,0)-40,say%(word%,1)-8,40,say%(word%,3)-say%(word%,1)+20,"sayboxbg1")
 6420PROCsavebgrd(say%(word%,0)+wid%,say%(word%,1)-8,40,say%(word%,3)-say%(word%,1)+20,"sayboxbg2")
 6430PROCsavebgrd(say%(word%,0),say%(word%,1)-8,wid%,12,"sayboxbg3")
 6440PROCsavebgrd(say%(word%,0),say%(word%,3),wid%,12,"sayboxbg4")
 6450IFNOTwhitebg%:PROCsavebgrd(say%(word%,0),say%(word%,1),wid%,say%(word%,3)-say%(word%,1),"sayboxbg5")
 6460PROCsavebgrd(say%(word%,0)+wid%/2-14,say%(word%,1)+76,28,40,"sayarrbg")
 6470REMPROCsavebgrd(say%(word%,0)+wid%/2-72,say%(word%,1)+116,146,140,"readerbg")
 6480PROCsavebgrd(say%(word%,0)+wid%/2-72,say%(word%,1)+88,146,140,"readerbg")
 6490see%=1:do%=2:WAIT:SYS "OS_Byte",113,see%:SYS "OS_Byte",112,do%
 6500REMSYS "OS_SpriteOp",&134,butarea%,"bang",say%(word%,0)+wid%/2-38,say%(word%,1)+144,8,scale%,0
 6510SYS "OS_SpriteOp",&134,butarea%,"bang",say%(word%,0)+wid%/2-38,say%(word%,1)+116,8,scale%,0
 6520SOUND 1,&17F,1,1:see%=%100>>>see%:do%=%100>>>do%:WAIT:SYS "OS_Byte",113,see%:SYS "OS_Byte",112,do%:lasttime%=TIME
 6530REMSYS "OS_SpriteOp",&122,sparea%,"readerbg",say%(word%,0)+wid%/2-72,say%(word%,1)+116,8
 6540REMSYS "OS_SpriteOp",&134,butarea%,"reader",say%(word%,0)+wid%/2-72,say%(word%,1)+116,8,scale%,0
 6550SYS "OS_SpriteOp",&122,sparea%,"readerbg",say%(word%,0)+wid%/2-72,say%(word%,1)+88,8
 6560SYS "OS_SpriteOp",&134,butarea%,"reader",say%(word%,0)+wid%/2-72,say%(word%,1)+88,8,scale%,0
 6570REMPROCspeechbox(say%(word%,0)-40,say%(word%,1)-8,wid%+80,say%(word%,3)-say%(word%,1)+20,3,0,say%(word%,0)+wid%/2-14,0)
 6580REMPROCwords(say%(word%,0)+8,say%(word%,1)+16,-1,3,0,0,on$+say$(word%,0))
 6590x%=say%(word%,0)-40:y%=say%(word%,1)-8:sx%=wid%+80:sy%=say%(word%,3)-say%(word%,1)+20
 6600VDU18,0,0:VDU25,4,x%+40;y%;:VDU25,101,x%+sx%-42;y%+10;:VDU25,4,x%+40;y%+sy%-12;:VDU25,101,x%+sx%-42;y%+sy%-2;
 6610VDU18,0,3:VDU25,4,x%+40;y%;:VDU25,101,x%+sx%-42;y%+2;:VDU25,4,x%+40;y%+sy%-4;:VDU25,101,x%+sx%-42;y%+sy%-2;
 6620PROCspeechbubs(x%,y%,sx%,sy%):SYS"OS_SpriteOp",&134,butarea%,"bub3",say%(word%,0)+wid%/2-14,y%+84,8,scale%,0
 6630IFNOTwhitebg%:VDU18,0,0:VDU25,4,say%(word%,0);say%(word%,1);:VDU25,97,wid%;say%(word%,3)-say%(word%,1);:PROCwords(say%(word%,0),say%(word%,1)+16,-1,3,0,0,on$+say$(say%(word%,4),0))
 6640REPEAT:UNTIL TIME>lasttime%+30
 6650A%=do%:B%=see%:C%=1:CALL mergescr%:PROCscrcopy21
 6660see%=1:do%=2:WAIT:SYS "OS_Byte",113,see%:SYS "OS_Byte",112,do%
 6670PROCwait(30)
 6680REMsayx%=say%(word%,0)+wid%/2-30:sayy%=say%(word%,1)+116
 6690sayx%=say%(word%,0)+wid%/2-30:sayy%=say%(word%,1)+88
 6700m$=say$(say%(word%,4),2):m%=VALm$:m$=RIGHT$(m$,LEN(m$)-2):lasttime%=TIME-100
 6710PROCcachesound(say$(say%(word%,4),1),1):SOUND 1,&17F,1,1
 6720REPEAT
 6730 m$=RIGHT$(m$,LEN(m$)-1):VDU24,sayx%;sayy%;sayx%+62;sayy%+48;
 6740 SYS "OS_SpriteOp",&122,sparea%,"readerbg",sayx%-42,sayy%,8
 6750 SYS "OS_SpriteOp",&134,butarea%,"reader",sayx%-42,sayy%,8,scale%,0
 6760 IFVALm$>0THEN
 6770  IFVAL(LEFT$(m$,1))=1:SYS "OS_SpriteOp",&134,butarea%,"m"+LEFT$(m$,1),sayx%,sayy%,8,scale%,0:ELSE:SYS "OS_SpriteOp",&134,butarea%,"m"+LEFT$(m$,1),sayx%,sayy%+24,8,scale%,0
 6780 ENDIF
 6790 SYS"OS_SpriteOp",&134,butarea%,"bub3",say%(word%,0)+wid%/2-14,y%+84,8,scale%,0
 6800 VDU26:REPEAT:UNTIL TIME>lasttime%+m%
 6810 see%=%100>>>see%:do%=%100>>>do%:WAIT:SYS "OS_Byte",113,see%:SYS "OS_Byte",112,do%
 6820 lasttime%=TIME
 6830UNTIL VAL(m$)=0
 6840PROCwait(80)
 6850
 6860REMX=GET
 6870
 6880PROCcachesound("fxpop",1)
 6890SYS "OS_SpriteOp",&122,sparea%,"readerbg",sayx%-42,sayy%,8
 6900REMSYS "OS_SpriteOp",&134,butarea%,"bang",say%(word%,0)+wid%/2-38,say%(word%,1)+144,8,scale%,0
 6910SYS "OS_SpriteOp",&134,butarea%,"bang",say%(word%,0)+wid%/2-38,say%(word%,1)+116,8,scale%,0
 6920SYS"OS_SpriteOp",&134,butarea%,"bub3",say%(word%,0)+wid%/2-14,y%+84,8,scale%,0
 6930REMPROCspeechbox(say%(word%,0)-40,say%(word%,1)-8,wid%+80,say%(word%,3)-say%(word%,1)+20,3,0,say%(word%,0)+wid%/2-14,0)
 6940REMPROCwords(say%(word%,0)+8,say%(word%,1)+16,-1,3,0,0,on$+say$(word%,0))
 6950SOUND 1,&17F,1,1:see%=%100>>>see%:do%=%100>>>do%:WAIT:SYS "OS_Byte",113,see%:SYS "OS_Byte",112,do%:lasttime%=TIME
 6960SYS "OS_SpriteOp",&122,sparea%,"readerbg",sayx%-42,sayy%,8
 6970REMSYS "OS_SpriteOp",&122,sparea%,"sayboxbg",say%(word%,0)-40,say%(word%,1)-8,8
 6980SYS "OS_SpriteOp",&122,sparea%,"sayboxbg1",say%(word%,0)-40,say%(word%,1)-8,8
 6990SYS "OS_SpriteOp",&122,sparea%,"sayboxbg2",say%(word%,0)+wid%,say%(word%,1)-8,8
 7000SYS "OS_SpriteOp",&122,sparea%,"sayboxbg3",say%(word%,0),say%(word%,1)-8,8
 7010SYS "OS_SpriteOp",&122,sparea%,"sayboxbg4",say%(word%,0),say%(word%,3),8
 7020IFNOTwhitebg%:SYS "OS_SpriteOp",&122,sparea%,"sayboxbg5",say%(word%,0),say%(word%,1),8
 7030SYS "OS_SpriteOp",&122,sparea%,"sayarrbg",say%(word%,0)+wid%/2-14,say%(word%,1)+76,8
 7040REPEAT:UNTIL TIME>lasttime%+30
 7050A%=do%:B%=see%:C%=1:CALL mergescr%:PROCscrcopy21
 7060see%=1:do%=2:WAIT:SYS "OS_Byte",113,see%:SYS "OS_Byte",112,do%
 7070mx%=oomx%:my%=oomy%:PROCmousefull:MOUSE TO mx%,my%:doneablue%=-1
 7080REMIFanim%=0:animend%=-1
 7090ENDPROC
 7100
 7110DEFPROCelffadeside(word%)
 7120LOCAL wid%,x%,y%,sx%,sy%
 7130IFword%<0THEN:ENDPROC
 7140wid%=say%(word%,2)-say%(word%,0)
 7150PROCcachesound("fxpop",1)
 7160SYS "OS_Byte",112,see%
 7170SYS"OS_SpriteOp",&122,sparea%,"h0bg"+STR$(see%),x%(see%-1),y%(see%-1),8
 7180SYS "OS_Byte",112,do%:PROCscrcopy(see%,do%):x%(do%-1)=x%(see%-1):y%(do%-1)=y%(see%-1):oomx%=mx%:oomy%=my%
 7190SYS"OS_SpriteOp",&119,sparea%,"h0bg"+STR$(do%):SYS"OS_SpriteOp",&11B,sparea%,"h0bg"+STR$(see%),"h0bg"+STR$(do%)
 7200PROCsavebgrd(say%(word%,0)-40,say%(word%,1)-8,40,say%(word%,3)-say%(word%,1)+20,"sayboxbg1")
 7210PROCsavebgrd(say%(word%,0)+wid%,say%(word%,1)-8,40,say%(word%,3)-say%(word%,1)+20,"sayboxbg2")
 7220PROCsavebgrd(say%(word%,0),say%(word%,1)-8,wid%,12,"sayboxbg3")
 7230PROCsavebgrd(say%(word%,0),say%(word%,3),wid%,12,"sayboxbg4")
 7240PROCsavebgrd(say%(word%,0)-72,say%(word%,1)+24,40,28,"sayarrbg")
 7250PROCsavebgrd(say%(word%,0)-196,say%(word%,1)-8,146,140,"readerbg")
 7260see%=1:do%=2:WAIT:SYS "OS_Byte",113,see%:SYS "OS_Byte",112,do%
 7270SYS "OS_SpriteOp",&134,butarea%,"bang",say%(word%,0)-162,say%(word%,1)+32,8,scale%,0
 7280SOUND 1,&17F,1,1:see%=%100>>>see%:do%=%100>>>do%:WAIT:SYS "OS_Byte",113,see%:SYS "OS_Byte",112,do%:lasttime%=TIME
 7290SYS "OS_SpriteOp",&122,sparea%,"readerbg",say%(word%,0)-196,say%(word%,1)-8,8
 7300SYS "OS_SpriteOp",&134,butarea%,"reader",say%(word%,0)-196,say%(word%,1)-8,8,scale%,0
 7310x%=say%(word%,0)-40:y%=say%(word%,1)-8:sx%=wid%+80:sy%=say%(word%,3)-say%(word%,1)+20
 7320VDU18,0,0:VDU25,4,x%+40;y%;:VDU25,101,x%+sx%-42;y%+10;:VDU25,4,x%+40;y%+sy%-12;:VDU25,101,x%+sx%-42;y%+sy%-2;
 7330VDU18,0,3:VDU25,4,x%+40;y%;:VDU25,101,x%+sx%-42;y%+2;:VDU25,4,x%+40;y%+sy%-4;:VDU25,101,x%+sx%-42;y%+sy%-2;
 7340PROCspeechbubs(x%,y%,sx%,sy%):SYS"OS_SpriteOp",&134,butarea%,"sayarr",say%(word%,0)-72,y%+32,8,scale%,0
 7350REPEAT:UNTIL TIME>lasttime%+30
 7360A%=do%:B%=see%:C%=1:CALL mergescr%:PROCscrcopy21
 7370see%=1:do%=2:WAIT:SYS "OS_Byte",113,see%:SYS "OS_Byte",112,do%
 7380PROCwait(30)
 7390REMsayx%=say%(word%,0)+wid%/2-30:sayy%=say%(word%,1)+116
 7400sayx%=say%(word%,0)-154:sayy%=say%(word%,1)-8
 7410m$=say$(say%(word%,4),2):m%=VALm$:m$=RIGHT$(m$,LEN(m$)-2):lasttime%=TIME-100
 7420PROCcachesound(say$(say%(word%,4),1),1):SOUND 1,&17F,1,1
 7430REPEAT
 7440 m$=RIGHT$(m$,LEN(m$)-1):VDU24,sayx%;sayy%;sayx%+62;sayy%+48;
 7450 SYS "OS_SpriteOp",&122,sparea%,"readerbg",sayx%-42,sayy%,8
 7460 SYS "OS_SpriteOp",&134,butarea%,"reader",sayx%-42,sayy%,8,scale%,0
 7470 IFVALm$>0THEN
 7480  IFVAL(LEFT$(m$,1))=1:SYS "OS_SpriteOp",&134,butarea%,"m"+LEFT$(m$,1),sayx%,sayy%,8,scale%,0:ELSE:SYS "OS_SpriteOp",&134,butarea%,"m"+LEFT$(m$,1),sayx%,sayy%+24,8,scale%,0
 7490 ENDIF
 7500 SYS"OS_SpriteOp",&134,butarea%,"sayarr",say%(word%,0)-72,y%+32,8,scale%,0
 7510 VDU26:REPEAT:UNTIL TIME>lasttime%+m%
 7520 see%=%100>>>see%:do%=%100>>>do%:WAIT:SYS "OS_Byte",113,see%:SYS "OS_Byte",112,do%
 7530 lasttime%=TIME
 7540UNTIL VAL(m$)=0
 7550PROCwait(80)
 7560
 7570REMX=GET
 7580
 7590PROCcachesound("fxpop",1)
 7600SYS "OS_SpriteOp",&122,sparea%,"readerbg",sayx%-42,sayy%,8
 7610SYS "OS_SpriteOp",&134,butarea%,"bang",say%(word%,0)-162,say%(word%,1)+32,8,scale%,0
 7620SYS"OS_SpriteOp",&134,butarea%,"sayarr",say%(word%,0)-72,y%+32,8,scale%,0
 7630SOUND 1,&17F,1,1:see%=%100>>>see%:do%=%100>>>do%:WAIT:SYS "OS_Byte",113,see%:SYS "OS_Byte",112,do%:lasttime%=TIME
 7640SYS "OS_SpriteOp",&122,sparea%,"readerbg",sayx%-42,sayy%,8
 7650SYS "OS_SpriteOp",&122,sparea%,"sayboxbg1",say%(word%,0)-40,say%(word%,1)-8,8
 7660SYS "OS_SpriteOp",&122,sparea%,"sayboxbg2",say%(word%,0)+wid%,say%(word%,1)-8,8
 7670SYS "OS_SpriteOp",&122,sparea%,"sayboxbg3",say%(word%,0),say%(word%,1)-8,8
 7680SYS "OS_SpriteOp",&122,sparea%,"sayboxbg4",say%(word%,0),say%(word%,3),8
 7690SYS "OS_SpriteOp",&122,sparea%,"sayarrbg",say%(word%,0)-72,say%(word%,1)+24,8
 7700REPEAT:UNTIL TIME>lasttime%+30
 7710A%=do%:B%=see%:C%=1:CALL mergescr%:PROCscrcopy21
 7720see%=1:do%=2:WAIT:SYS "OS_Byte",113,see%:SYS "OS_Byte",112,do%
 7730mx%=oomx%:my%=oomy%:PROCmousefull:MOUSE TO mx%,my%
 7740ENDPROC
 7750
 7760DEFPROCplotstars
 7770FORj%=0TO31
 7780 IFst%(j%,2)=l%:st%(j%,3)=-1
 7790 IF(st%(j%,4)<9)ANDst%(j%,3) THEN
 7800  IFst%(j%,4)<=5 THEN
 7810   SYS "OS_SpriteOp",&134,butarea%,"star"+STR$(st%(j%,4)),sayx%+st%(j%,0)+(2*(7-st%(j%,4))),sayy%+st%(j%,1)+(4*(5-st%(j%,4))),8,scale%,0
 7820  ELSE
 7830   SYS "OS_SpriteOp",&134,butarea%,"star"+STR$(st%(j%,4)),sayx%+st%(j%,0),sayy%+st%(j%,1),8,scale%,0
 7840  ENDIF
 7850 ENDIF
 7860 IFst%(j%,3)THEN
 7870  IFl%<10:st%(j%,4)=(st%(j%,4)+1)MOD9:ELSE:st%(j%,4)=st%(j%,4)+1
 7880 ENDIF
 7890NEXT
 7900ENDPROC
 7910
 7920DEFPROCmasksprite(area%,nosp%)
 7930LOCAL j%
 7940REMSYS"OS_Byte",112,1:SYS"OS_Byte",113,1:CLG
 7950FORj%=0TOnosp%-1
 7960REMPRINT masksp$(j%);" ";~area%;" "
 7970REMdebug$=masksp$(j%)
 7980 SYS"OS_SpriteOp",&11D,area%,masksp$(j%)
 7990 SYS "OS_SpriteOp",&118,area%,masksp$(j%) TO ,,C%:A%=C%+(C%!32):B%=C%+(C%!36)
 8000 SYS"OS_SpriteOp",&128,area%,masksp$(j%) TO ,,,C%,D%:IF(C%MOD8)<>0:C%=(INT(C%/8)+1)*8
 8010 C%=(C%*D%)/2:D%=masksp%(j%)
 8020 CALL addmask%
 8030NEXT
 8040ENDPROC
 8050
 8060DEFPROCloadunsquash(area%,areasiz%,file$)
 8070PROCload(file$)
 8080PROCunsquash(area%,areasiz%)
 8090ENDPROC
 8100
 8110DEFPROCload(file$)
 8120OSCLI"LOAD <ElfK$chaindir>."+file$+" "+STR$~sqfile%
 8130SYS "OS_File",5,"<ElfK$chaindir>."+file$ TO ,,,,sqsiz%
 8140ENDPROC
 8150
 8160DEFPROCunsquash(outptr%,outsiz%)
 8170SYS "Squash_Decompress",%100,sqbuffer%,sqfile%+20,sqsiz%-20,outptr%+4,outsiz%-4
 8180!sparea2%=sparea2siz%:sparea2%!8=16
 8190SYS "OS_SpriteOp",&109,sparea2%
 8200ENDPROC
 8210
 8220DEFPROCfade(x%,y%,col_st%,cycle%,totcycles%,fade$)
 8230SYS"OS_SpriteOp",&128,sparea%,fade$ TO r0,r1,r2,A%,B%,r5,r6
 8240A%=A%/2
 8250C%=(x%/4)+(((960-y%)/(4/cgavga%))*320)
 8260D%=4:E%=cgavga%*4
 8270SYS"OS_SpriteOp",&118,sparea%,fade$ TO r0,r1,add%
 8280F%=add%+!(add%+32)
 8290G%=sqbuffer%
 8300CALL screen_offsets%
 8310A%=totcycles%          :REM total cycles
 8320B%=col_st%      :REM next colour
 8330C%=cycle%       :REM number cycles before next colour starts
 8340D%=4:E%=4*cgavga% :REM sizes x and y (bytes per pixel)
 8350IFslow%THEN
 8360 F%=50000/(2-arm3%)   :REM pause
 8370ELSE
 8380 F%=10000/(2-arm3%)   :REM pause
 8390ENDIF
 8400G%=sqbuffer%    :REM Give code work space to store addresses
 8410CALL effect_start%
 8420ENDPROC
 8430
 8440DEFPROCbox(x%,y%,sx%,sy%,col%,linew%)
 8450VDU18,0,3:VDU25,4,x%;y%;:VDU25,101,x%+sx%-2;y%+sy%-2;
 8460PROCclbox(x%,y%,sx%,sy%,col%,linew%)
 8470ENDPROC
 8480
 8490DEFPROCclbox(x%,y%,sx%,sy%,col%,linew%)
 8500VDU18,0,col%:VDU25,4,x%+linew%;y%+4;:VDU25,101,x%+sx%-2-linew%;y%+sy%-6;
 8510ENDPROC
 8520
 8530DEFPROCspeechbox(x%,y%,sx%,sy%,arr%,arrflip%,pos%,update%)
 8540IFupdate%:sayw%(0)=x%:sayw%(1)=y%:sayw%(2)=sx%:sayw%(3)=sy%:sayw%(4)=arr%:sayw%(5)=arrflip%:sayw%(6)=pos%
 8550VDU18,0,3:VDU25,4,x%+40;y%;:VDU25,101,x%+sx%-42;y%+sy%-2;
 8560VDU18,0,0:VDU25,4,x%+40;y%+4;:VDU25,101,x%+sx%-42;y%+sy%-6;
 8570VDU18,0,3:VDU25,4,x%;y%+44;:VDU25,101,x%+sx%-2;y%+sy%-46;
 8580VDU18,0,0:VDU25,4,x%+4;y%+44;:VDU25,101,x%+sx%-6;y%+sy%-46;
 8590PROCspeechbubs(x%,y%,sx%,sy%):PROCspeechboxarr(x%,y%,arr%,arrflip%,pos%,sy%)
 8600ENDPROC
 8610
 8620DEFPROCspeechbubs(x%,y%,sx%,sy%)
 8630SYS"OS_SpriteOp",&134,butarea%,"bub",x%,y%+sy%-44,8,scale%,0:PROCflip(butarea%,"y","bub")
 8640SYS"OS_SpriteOp",&134,butarea%,"bub",x%+sx%-40,y%+sy%-44,8,scale%,0:PROCflip(butarea%,"x","bub")
 8650SYS"OS_SpriteOp",&134,butarea%,"bub",x%+sx%-40,y%,8,scale%,0:PROCflip(butarea%,"y","bub")
 8660SYS"OS_SpriteOp",&134,butarea%,"bub",x%,y%,8,scale%,0:PROCflip(butarea%,"x","bub")
 8670ENDPROC
 8680
 8690DEFPROCspeechboxarr(x%,y%,arr%,arrflip%,pos%,sy%)
 8700IFarr%=1THEN
 8710 IFarrflip%:PROCflip(butarea%,"x","bub"+STR$(arr%))
 8720 SYS"OS_SpriteOp",&134,butarea%,"bub"+STR$(arr%),x%-68,pos%,8,scale%,0
 8730 IFarrflip%:PROCflip(butarea%,"x","bub"+STR$(arr%))
 8740ENDIF
 8750IFarr%=2THEN
 8760 IFarrflip%:PROCflip(butarea%,"y","bub"+STR$(arr%))
 8770 SYS"OS_SpriteOp",&134,butarea%,"bub"+STR$(arr%),pos%,y%-108,8,scale%,0
 8780 IFarrflip%:PROCflip(butarea%,"y","bub"+STR$(arr%))
 8790ENDIF
 8800IFarr%=3THEN
 8810 PROCflip(butarea%,"x","bub2")
 8820 IFarrflip%:PROCflip(butarea%,"y","bub2")
 8830 SYS"OS_SpriteOp",&134,butarea%,"bub2",pos%,y%+sy%-4,8,scale%,0
 8840 IFarrflip%:PROCflip(butarea%,"y","bub2")
 8850 PROCflip(butarea%,"x","bub2")
 8860ENDIF
 8870IFarr%=4THEN
 8880 SYS"OS_SpriteOp",&134,butarea%,"bub3",pos%,y%+sy%-4,8,scale%,0
 8890ENDIF
 8900ENDPROC
 8910
 8920DEFPROCclspeech
 8930LOCAL x%,y%,sx%,sy%
 8940x%=sayw%(0):y%=sayw%(1):sx%=sayw%(2):sy%=sayw%(3)
 8950VDU18,0,0:VDU25,4,x%+24;y%+24;:VDU25,101,x%+sx%-26;y%+sy%-26;
 8960VDU18,0,0:VDU25,4,x%+40;y%+4;:VDU25,101,x%+sx%-42;y%+sy%-6;
 8970VDU18,0,0:VDU25,4,x%+4;y%+44;:VDU25,101,x%+sx%-6;y%+sy%-46;
 8980ENDPROC
 8990
 9000DEFFNstringsize(s$)
 9010LOCAL wid%,h%
 9020SYS"Font_FindFont",,"tabloid.medium",320,360,0,0 TO h%
 9030$blk%=s$
 9040SYS"Font_StringWidth",,blk%,600000,48000,-1,80 TO r0%,r1%,wid%,r3%,r4%,r5%
 9050SYS"Font_LoseFont",h%
 9060=wid%/400
 9070
 9080DEFPROCcachesound(s$,ch%)
 9090REMSYS &46187,R%,M%
 9100SYS &46180,R%,s$,M%,ch% TO ,,M%,prevo%;fl%
 9110IF(fl%AND%1)=%1 THEN:ERROR
 9120ENDPROC
 9130
 9140DEFFNnosound
 9150SYS"Sound_ReadControlBlock",1,0 TO ,,sccb%
 9160sccb%=sccb%>>24
 9170IFsccb%=0 THEN:=-1
 9180=0
 9190
 9200DEFFNreadstring(p%)
 9210LOCALa$:a$="":WHILE LENa$<255 AND ?p%>31 a$+=CHR$?p%:p%+=1:ENDWHILE
 9220=a$
 9230
 9240DEFFNreadsysvar(a$)
 9250LOCAL p%
 9260SYS "OS_ReadVarVal",a$,blk%,80,0,0 TO ,,a%:a$="":FORp%=0TOa%-1:a$+=CHR$(blk%?p%):NEXT
 9270=a$
 9280
 9290DEFPROCdummy
 9300VDU7:X=GET
 9310REM 'cos last PROC gets chopped
 9320ENDPROC
 9330
 9340REM ************** DEBUG SECTION - TO BE REMOVED  **********************
 9350REM ************** DEBUG SECTION - TO BE REMOVED  **********************
 9360REM ************** DEBUG SECTION - TO BE REMOVED  **********************
 9370REM ************** DEBUG SECTION - TO BE REMOVED  **********************
 9380
 9390DEFPROCdebuginit
 9400DIM blk2% 256,stname% 20
 9410ENDPROC
 9420
 9430DEFPROClistsprites
 9440LOCAL sp%
 9450FORsp%=1TOsparea%!4
 9460 SYS "OS_SpriteOp",&10D,sparea%,stname%,20,sp%
 9470 PRINT FNreadstring(stname%);" ";
 9480NEXT
 9490ENDPROC
 9500
 9510DEFPROCdebug
 9520PROCdebuginit
 9530PROCtestspeech
 9540REMPROCbluewordrect
 9550REMPROCpossprite
 9560REMPROCposspeechbox
 9570REMPROCodds
 9580ENDPROC
 9590
 9600DEFPROCodds
 9610PRINT walk%,step%,dirn%,posx%,posy%,gridx%,gridy%,movex%,movey%
 9620VDU7:X=GET
 9630ENDPROC
 9640
 9650DEFPROCtestspeech
 9660FORj%=0TO14
 9670 SYS"OS_Byte",21,9:PROCwait(50)
 9680 SYS"OS_Byte",112,2:SYS"OS_Byte",113,1
 9690 VDU18,0,0:VDU25,4,0;0;:VDU25,101,1278;958;
 9700 sayx%=500:sayy%=500
 9710 SYS "OS_SpriteOp",&134,butarea%,"reader",sayx%-42,sayy%,8,scale%,0
 9720 PROCwords(380,400,-1,3,0,0,STR$(j%)+"  "+say$(j%,2)+"    "+say$(j%,1))
 9730 PROCscrcopy21
 9740 see%=1:do%=2:SYS "OS_Byte",113,see%:SYS "OS_Byte",112,do%
 9750 PROCcachesound(say$(j%,1),1)
 9760 REPEAT
 9770  MOUSE mx%,my%,mbut%
 9780  IFmbut%=4 THEN
 9790   m$=say$(j%,2):m%=VALm$:m$=RIGHT$(m$,LEN(m$)-2):lasttime%=TIME-100
 9800   SOUND 1,&17F,1,1
 9810   REPEAT
 9820    m$=RIGHT$(m$,LEN(m$)-1):VDU24,sayx%;sayy%;sayx%+62;sayy%+48;
 9830    VDU18,0,0:VDU25,4,0;0;:VDU25,101,1278;958;
 9840    SYS "OS_SpriteOp",&134,butarea%,"reader",sayx%-42,sayy%,8,scale%,0
 9850    IFVALm$>0THEN
 9860     IFVAL(LEFT$(m$,1))=1:SYS "OS_SpriteOp",&134,butarea%,"m"+LEFT$(m$,1),sayx%,sayy%,8,scale%,0:ELSE:SYS "OS_SpriteOp",&134,butarea%,"m"+LEFT$(m$,1),sayx%,sayy%+24,8,scale%,0
 9870    ENDIF
 9880    VDU26:REPEAT:UNTIL TIME>lasttime%+m%
 9890    see%=%100>>>see%:do%=%100>>>do%:WAIT:SYS "OS_Byte",113,see%:SYS "OS_Byte",112,do%
 9900    lasttime%=TIME
 9910   UNTIL VAL(m$)=0
 9920  ENDIF
 9930 UNTIL mbut%=1
 9940NEXT
 9950X=GET
 9960ENDPROC
 9970
 9980DEFPROCtimesound
 9990PROCcachesound("fxgrind",1):ttime%=TIME:SOUND 1,&17F,1,1
10000REPEAT:UNTIL FNnosound
10010tttime%=TIME
10020PRINT tttime%-ttime%
10030X=GET
10040ENDPROC
10050
10060DEFPROCposspeechbox
10070see%=1:do%=1:SYS "OS_Byte",113,see%:SYS "OS_Byte",112,do%
10080VDU28,0,1,70,0:COLOUR 3:MOUSE ON 1:PROCmousefull
10090REPEAT
10100 MOUSE mmx%,mmy%,mmbut%
10110 PRINT mmx%-(mmx%MOD2),mmy%-(mmy%MOD4)
10120 IFmmbut%=4:PROCspeechbox(mmx%,mmy%,FNstringsize("Hello")+80,108,0,0,0,-1)
10130 IFmmbut%=2 THEN:PROCspeechboxarr(sayw%(0)-68,0,1,0,mmy%,108)
10140 IFmmbut%=1 THEN:PROCspeechboxarr(0,sayw%(1)-108,2,0,mmx%,108)
10150UNTIL mmbut%=7
10160see%=1:do%=2:SYS "OS_Byte",113,see%:SYS "OS_Byte",112,do%
10170VDU26
10180ENDPROC
10190
10200DEFPROCpossprite
10210see%=1:do%=1:SYS "OS_Byte",113,see%:SYS "OS_Byte",112,do%
10220VDU28,0,2,40,0:COLOUR 3:MOUSE ON 1:PROCmousefull
10230REPEAT
10240 MOUSE mmx%,mmy%,mmbut%
10250 PRINT mmx%-(mmx%MOD2),mmy%-(mmy%MOD4)
10260 IFmmbut%=1:SYS"OS_SpriteOp",&134,sparea%,"bed",mmx%,mmy%,8,scale%,0
10270UNTIL mmbut%=4
10280see%=1:do%=2:SYS "OS_Byte",113,see%:SYS "OS_Byte",112,do%
10290VDU26
10300ENDPROC
10310
10320DEFPROCbluewordrect
10330see%=1:do%=1:SYS "OS_Byte",113,see%:SYS "OS_Byte",112,do%
10340VDU28,0,2,40,0:COLOUR 3:MOUSE ON 1:PROCmousefull:MOUSE TO 500,600
10350REPEAT
10360 MOUSE mmx%,mmy%,mmbut%
10370 PRINT mmx%-(mmx%MOD2),mmy%-(mmy%MOD4)
10380UNTIL mmbut%=4
10390see%=1:do%=2:SYS "OS_Byte",113,see%:SYS "OS_Byte",112,do%
10400VDU26:SYS"OS_Byte",21,9:oldmx%=500
10410ENDPROC
10420

��pull_variables
addmask%=!(K%+&04)
copyscrblock%=!(K%+&08)
(copyscr%=!(K%+&0C)
2fonts%=!(K%+&10)
<letters%=!(K%+&14)
Fcopyscrblockp%=!(K%+&18)
Pelffade%=!(K%+&1C)
Zfocus%=!(K%+&20)
dmergescr%=!(K%+&30)
nblowupscr%=!(K%+&34)
xwaterfall%=!(K%+&38)
�maskit%=!(K%+&3C)
�amscreen_one%=!(K%+&A8)          :� find the location of screen store deep within fade routine
�B!mscreen_one%=K%!&C0            :� store screen1 start address
�Xmscreen_one%!4=K%!&C4           :� and screen2 which is right next to it in the code
�screen_offsets%=!(K%+&B4)
�sqbuffer%=!(K%+&C8)
�sqfile%=!(K%+&D0)
�sparea2%=!(K%+&D0)
�butarea%=!(K%+&D4)
�sparea%=!(K%+&D8)
�effect_start%=!(K%+&B8)
�+cgavga%=!(K%+&F0)             :� 1 or 2
�+arm3%=!(K%+&DC)               :� 0 or 1

sparea2siz%=36*1024
butareasiz%=31*1024
"spareasiz%=240*1024
,�
6
@
��palette
J@�i%=0�15:� 19,i%,16,palet%(i%,0),palet%(i%,1),palet%(i%,2):�
T�
^
h��wait(delay%)
r� a%
|a%=�:���>=a%+delay%
��
�
�-��words(A%,B%,big%,E%,centre%,of%,words$)
�'�big%:C%=320:D%=360:�:C%=240:D%=270
�/�centre%:A%+=�((of%-�stringsize(words$))/2)
�B�lett%=1��(words$):?(letters%+(lett%-1))=�(�words$,lett%,1)):�
�?(letters%+�(words$))=&0D
�� fonts%
��
�
���lib_initialise
��ONERROR SYS"OS_Byte",250,0,255 TO ,scr%:SYS"OS_Byte",113,scr%:PRINT REPORT$+" (Internal error code "+STR$ERL+")  sprite="+debug$+CHR$0:x=GET:PROCdesk_top
���ONERROR SYS"OS_Byte",250,0,255 TO ,scr%:SYS"OS_Byte",113,scr%:PRINT REPORT$+" (Internal error code "+STR$ERL+")  M%="+STR$(M%)+CHR$0:x=GET:PROCdesk_top
�:�desk_top

� blk% 80
/maxstarts%=�(�readsysvar("ElfK$maxstarts"))
&� link%(maxstarts%)
0� +0
:A� 1010,1020,1030,1040,1050,1060,1070,1080,1090,1100,1110,1120
D!�i%=1�maxstarts%:�link%(i%):�
NG�Y%=0:ț "<ElfK$chaindir>.floppylib":�:ț "<ElfK$chaindir>.hardlib"
X�pull_variables
b
l@� ****** temp reduction of 2K to add for printing at the end
v�spareasiz%-=2048
�� ************************
�
�� palet%(15,2)
�� +0
�5� &FF,&FF,&FF,&AA,&AA,&AA,&77,&77,&77,&00,&00,&00
�5� &00,&00,&AA,&00,&66,&FF,&00,&CC,&FF,&FF,&88,&00
�5� &EE,&00,&00,&FF,&FF,&00,&99,&55,&00,&FF,&CC,&99
�5� &00,&88,&11,&00,&BB,&00,&00,&EE,&22,&BB,&77,&00
�+� i%=0 � 15:�j%=0�2:� palet%(i%,j%):�:�
��palette:�initmouse
�
� blk% 80
�H� scale% 16:!scale%=16:scale%!4=16*(K%!&F0):scale%!8=16:scale%!12=16
�maxanim%=32
maxblue%=80:� per program
maxpageblue%=8:� per page
�� masksp$(49),masksp%(49),animtime%(maxanim%-1),animpause%(maxanim%-1),book%(1),bookx%(6),ch$(3),donechange%(maxanim%-1),bkyn%(6,1),st%(31,4)
 s� say%(maxblue%-1,4),say$(maxblue%-1,2),sayw%(6),blwords%(maxpageblue%-1),elfdisp%(1,8),oldsay%(1,3),oldsay$(1)
*� x%(1),y%(1)
4� 23,17,4,1,0,0,0,0,0,0
>
� 23,1,0|
H� input_disk_name% 256
R2� pdrect% 16,pdrect2% 16,pdtrans% 16,pdplot% 8
\'� pscale% 16,ctrans% 256,paltab% 64
f
p� +0
z� 22,32,42,52,64,78
��j%=1�6:� bookx%(j%):�
�� +0
�/� 14,28,24,28,34,36,44,44,54,52,66,56,80,68
�)�j%=0�6:� bkyn%(j%,0):� bkyn%(j%,1):�
�� +0
�i� -4,68,1,0,8,0,24,0,4,18,24,2,6,44,6,16,84,0,30,56,4,42,40,2,36,20,5,58,-8,3,68,36,1,64,16,7,54,64,5
�j� 38,92,3,60,80,8,94,96,4,80,72,2,100,60,6,92,32,3,80,12,7,96,-4,2,124,76,5,118,56,3,114,28,7,140,44,4
�C� 128,16,1,154,24,6,132,-8,2,158,0,8,-14,32,7,-16,-4,3,146,68,2
�st%()=0
�%�j%=0�31:�k%=0�2:� st%(j%,k%):�:�
�� +0
�#� 1,322,640,642,0,321,2,320,641
�� 1,50,96,98,0,49,2,48,97
)�j%=0�1:�k%=0�8:� elfdisp%(j%,k%):�:�
� +0
&� 1,642,1280,1282,0,641,2,640,1281
$*�cgavga%=2�:�k%=0�8:� elfdisp%(0,k%):�
.1my%=W%�&FFFF:mx%=W%>>16:oldmx%=mx%:oldmy%=my%
8`bluewords%=0:on$=�(18)+�(1)+�(�(�readsysvar("ElfK$wordcol")))+�(0):off$=�(18)+�(1)+�(3)+�(0)
B\usualpos%=-1:slow%=0:sayhand%=-1:sayabove%=-1:goonq%=0:ynq%=0:whitebg%=-1:checkmouse%=-1
L�
V
`J��words_box(blue%,list$,who$,line1$,line2$,bx%,by%,arr%,arrflip%,pos%)
j� sx%,sy%,k%
t#sx%=�stringsize(line1$):sy%=108
~�line2$<>"" �
�# sy%=160:k%=�stringsize(line2$)
� �k%>sx%:sx%=k%
��
�sx%+=120
�&�savebgrd(bx%,by%,sx%,sy%,"boxbg")
�0�arr%=1:�savebgrd(bx%-68,pos%,72,52,"arrbg")
�2�arr%=2:�savebgrd(pos%,by%-108,68,112,"arrbg")
�4�arr%=3:�savebgrd(pos%,by%+sy%-4,68,112,"arrbg")
�5�speechbox(bx%,by%,sx%,sy%,arr%,arrflip%,pos%,-1)
�6�words_read(blue%,list$):�words_say(line1$,line2$)
��
�
��words_read(blue%,list$)

� j%
bluewords%=blue%

�blue%>0�
(A �j%=0�blue%-1:blwords%(j%)=�list$:list$=�list$,�(list$)-3):�
2�
<�
F
P��words_say(line1$,line2$)
Z� j%
d�usualpos%�
nE �line2$="":oldsay%(0,1)=40:sayup%=40:�:oldsay%(0,1)=96:sayup%=60
x^ �words(240,oldsay%(0,1),-1,3,-1,820,line1$):�line2$<>"":�words(240,36,-1,3,-1,820,line2$)
��
�E �line2$="":oldsay%(0,1)=32:sayup%=40:�:oldsay%(0,1)=88:sayup%=40
� oldsay%(0,1)+=by%
�b �words(bx%,oldsay%(0,1),-1,3,-1,sx%,line1$):�line2$<>"":�words(bx%,by%+28,-1,3,-1,sx%,line2$)
��
��
�
���initmouse
�Fmboxle%=0:mboxlo%=0:mboxri%=1279:mboxhi%=1023:mtox%=1108:mtoy%=324
��
�
���desk_top
��iii%=1�maxstarts%
�L%=link%(iii%):S%=iii%
�
6�:�buf% 4:�i%=1�16:Ȗ:�c%=0�16:�c%<16v%=16 � v%=24
"Pș"OS_ReadPalette",c%,v% � ,,d%:!buf%=d%:�b%=1�3:�buf%?b%>0buf%?b%-=16:�:�:�
,%�19,c%,v%,buf%?1,buf%?2,buf%?3:�,
6!� "<ElfK$chaindir>.!runimage"
@�
J
T8��bookgoon(book%(0),book%(1),anim%,clear%,fadetext%)
^Dobk%=-1:obkflip%=-1:bk%=0:bkflip%=1:bookdirn%=1:animpause%(0)=10
h1�savebgrd(book%(0),book%(1),182,148,"bookbg")
r;see%=1:do%=2:ș "OS_Byte",113,see%:ș "OS_Byte",112,do%
|Hș"OS_SpriteOp",&134,butarea%,"bookbut",book%(0),book%(1),8,scale%,0
�:�scrcopyblockpix(book%(0),book%(1),182,148,do%,see%,0)
�+goonq%=-1:�buttonloop(anim%,0):goonq%=0
�
�flipbook
��clear%�fadetext% �
� ș "OS_Byte",112,2
�F �clear%:ș"OS_SpriteOp",&122,sparea%,"bookbg",book%(0),book%(1),8
�5 �fadetext%:�clspeech:�mergescr21(4):�:�scrcopy21
��
��
�
�4��bmyn(book%(0),book%(1),anim%,clear%,fadetext%)
�tbm%=-1:obm%=-2:onbmpos%=-2:nbmpos%=0:oybmpos%=-2:ybmpos%=0:fullbm%=0:bk%=0:bkflip%=1:bookdirn%=1:animpause%(3)=1
�1�savebgrd(book%(0),book%(1),182,184,"bookbg")
;see%=1:do%=2:ș "OS_Byte",113,see%:ș "OS_Byte",112,do%
Hș"OS_SpriteOp",&134,butarea%,"bookbut",book%(0),book%(1),8,scale%,0
:�scrcopyblockpix(book%(0),book%(1),182,184,do%,see%,0)
&'ynq%=-1:�buttonloop(anim%,0):ynq%=0
0�bkflip%=-1:�flipbook
:�clear%�fadetext% �
D ș "OS_Byte",112,2
NF �clear%:ș"OS_SpriteOp",&122,sparea%,"bookbg",book%(0),book%(1),8
X5 �fadetext%:�clspeech:�mergescr21(4):�:�scrcopy21
b�
l�
v
���buttonloop(anim%,exit%)
�+� enter loop with both screens the same
��PROCdebug
�� t%,k%
���savebgrd(oldmx%-8,oldmy%-104,118,112,"h0bg1"):�savebgrd(oldmx%-8,oldmy%-104,118,112,"h0bg2"):x%()=(oldmx%-8):y%()=(oldmy%-104)
�2chosen%=-1:animend%=0:t%=�-1000:animtime%()=t%
�]ș"OS_Byte",21,9:ȗ ȓ mboxle%,mboxlo%,mboxri%-mboxle%,mboxhi%-mboxlo%:ȗ � oldmx%,oldmy%
�ș"OS_Byte",21,0:mbut%=0
��
� �checkkeyevent
� �checkmouse%:�checkmouse
�0 �(mbut%=4)�(bluewords%>0):�elffade(�onblue)
�E ș"OS_SpriteOp",&122,sparea%,"h0bg"+�(do%),x%(do%-1),y%(do%-1),8
" donechange%()=0:�checkanimate
 �exit%:�loopexit
 �checkalldone
 [ x%(do%-1)=mx%-8:y%(do%-1)=my%-104:�savebgrd(x%(do%-1),y%(do%-1),118,112,"h0bg"+�(do%))
*F ș"OS_SpriteOp",&134,butarea%,"h0",x%(do%-1),y%(do%-1),8,scale%,0
4R see%=%100>>>see%:do%=%100>>>do%:Ȗ:ș "OS_Byte",113,see%:ș "OS_Byte",112,do%
> �k%=0�maxanim%-1
H'  �animtime%(k%)=-1:animtime%(k%)=�
R �
\
�animend%
fbluewords%=0
p]ș "OS_Byte",112,see%:ș"OS_SpriteOp",&122,sparea%,"h0bg"+�(see%),x%(see%-1),y%(see%-1),8
z�scrcopy(see%,do%)
��
�
���checkmouse
�� j%,k%,l%,m%
� ș"OS_Byte",128,246 � ,l%,m%
�!k%=(l%�&FF)�((m%�&FFFFFF)<<8)
��j%=1�1+(k%/9)
�! ș"OS_Mouse" � mx%,my%,mbut%
� oldmx%=mx%:oldmy%=my%
�# �(mbut%�%100)=%100 �:mbut%=4:�
��
��
�
	��checkkeyevent
	� r1%,r2%,b%,j%,f%
	checkmouse%=-1
	$"ș"OS_Byte",128,255 � ,r1%,r2%
	.#b%=(r1%�&FF)�((r2%�&FFFFFF)<<8)
	8
�b%>0�
	B
 �j%=1�b%
	L"  ș"OS_Byte",145,0 � ,,r2%;f%
	V  �(f%�%10)=%00 �
	`L�   IFr2%=19:SYS"OS_Byte",21,0:PROCscreen_save:SYS"OS_Byte",21,0:ENDPROC
	jH�   IFr2%=16:SYS"OS_Byte",21,0:PROCprinter:SYS"OS_Byte",21,0:ENDPROC
	t   �goonq%�
	~�    �r2%=32 �:mbut%=4:mx%=book%(0)+80:oldmx%=mx%:my%=book%(1)+60:oldmy%=my%:ȗ � mx%,my%:checkmouse%=0:chosen%=0:animpause%(0)=4:bookdirn%=1:�
	�   �
	�
   �ynq%�
	��    �(r2%=121)�(r2%=89) �:mbut%=4:mx%=book%(0)+140:oldmx%=mx%:my%=book%(1)+60:oldmy%=my%:ȗ � mx%,my%:checkmouse%=0:chosen%=1:bm%=1:animpause%(2)=4:bookdirn%=1:�
	��    �(r2%=110)�(r2%=78) �:mbut%=4:mx%=book%(0)+60:oldmx%=mx%:my%=book%(1)+60:oldmy%=my%:ȗ � mx%,my%:checkmouse%=0:chosen%=0:bm%=0:animpause%(2)=4:bookdirn%=-1:�flipbook:�
	�   �
	�  �
	� �
	��
	��
	�
	���checkalldone
	�� j%
�j%=0�maxanim%-1

C �((anim%>>>j%)�&01)=&01 �:�donechange%(j%):�animcopyblock(j%)
�
�
(
2��animcopyblock(j%)
<Ȏ j% �
F@ � 0:�scrcopyblockpix(book%(0),book%(1),182,148,see%,do%,-1)
P� � 1:�ch%<=2:�scrcopyblockpix(book%(0),book%(1),144+(lenbm%*2),148,see%,do%,-1):�:�scrcopyblockpix(book%(0)+30-(lenbm%*2),book%(1),120+(lenbm%*4),148,see%,do%,-1)
Z@ � 3:�scrcopyblockpix(book%(0),book%(1),182,184,see%,do%,-1)
d :�specificcopy(j%)
n�
x�
�
���checkanimate
�� j%
��j%=0�maxanim%-1
�) �((anim%>>>j%)�&01)=&01:�animate(j%)
��
��
�
���animate(j%)
�(�>=(animtime%(j%)+animpause%(j%)) �
� Ȏ j% �
�  � 0: �chosen%>=0�
�           bookdirn%=1
          �
           �onbook �
            �mbut%=4�
"6             chosen%=0:animpause%(0)=4:bookdirn%=1
,            �
6#             �bk%<5:bookdirn%=1
@1             �(bk%=5)�(bkflip%=1):bookdirn%=1
J3             �(bk%=5)�(bkflip%=-1):bookdirn%=-1
T            �
^           �
h            bookdirn%=-1
r           �
|          �
�S          �(bk%=6)�((bookdirn%*bkflip%)=1):�flipbook:�:bk%+=(bookdirn%*bkflip%)
�<          �(chosen%>=0)�(bkflip%=-1)�(bk%=0):animend%=-1
�          �bk%<0:bk%=0
�U          �(bk%<>obk%)�(bkflip%<>obkflip%):�plotbook(0):obk%=bk%:obkflip%=bkflip%
�  � 3: �chosen%<0 �
�           �onbook �
�0            �mx%<(book%(0)+92):bm%=0:�:bm%=1
�           �
�            bm%=-1
�           �
�           �bm%>=0 �
�            �mbut%=4 �
�,             chosen%=bm%:animpause%(2)=4
@             �chosen%=1:bookdirn%=1:�:bookdirn%=-1:�flipbook
            �
           �
&1           �obm%<>bm% �:�plotbook(3):obm%=bm%
0          �
:_           �((chosen%=0)�(nbmpos%=40)�(ybmpos%=0))�((chosen%=1)�(ybmpos%=40)�(nbmpos%=0)) �
D            fullbm%=-1
NU            �(bk%=6)�((bookdirn%*bkflip%)=1):�flipbook:�:bk%+=(bookdirn%*bkflip%)
X)            �bk%<0�:bk%=0:animend%=-1
b           �
l          �
v*          �bm%<0:nbmpos%-=4:ybmpos%-=4
�*          �bm%=0:nbmpos%+=4:ybmpos%-=4
�*          �bm%=1:nbmpos%-=4:ybmpos%+=4
�"          �nbmpos%<0:nbmpos%=0
�$          �nbmpos%>40:nbmpos%=40
�"          �ybmpos%<0:ybmpos%=0
�$          �ybmpos%>40:ybmpos%=40
�Q          �(chosen%>=0)�(obm%<>bm%)�(onbmpos%<>nbmpos%)�(oybmpos%<>ybmpos%) �
�           �plotbook(3)
�9           obm%=bm%:onbmpos%=nbmpos%:oybmpos%=ybmpos%
�          �
�  :�specificanim(j%)
� �
��

�



��flipbook

 � k%

*,�k%=1�6:�flip(butarea%,"y","bb"+�(k%)):�

4bkflip%=bkflip%*-1

>�

H

Rݤonbook

\U�(mx%<=(book%(0)+182))�(mx%>=book%(0))�(my%<=(book%(1)+148))�(my%>=book%(1))�:=-1

f=0

p

zݤonblue

�� j%

��j%=0�bluewords%-1

�� �(mx%<=say%(blwords%(j%),2))�(mx%>=say%(blwords%(j%),0))�(my%<=say%(blwords%(j%),3))�(my%>=say%(blwords%(j%),1))�:=blwords%(j%)

��

�=-1

�

�ݤonbookmark

�� j%

��j%=0�1

ހ �(mx%<=(book%(0)+144+(lenbm%*2)+8))�(mx%>=(book%(0)+120))�(my%<=(book%(1)+60+56-(60*j%)))�(my%>=(book%(1)+60-(60*j%)))�:=j%

��

��ch%>2 �

� �j%=2�ch%-1
�  �(mx%<=(book%(0)+60))�(mx%>=(book%(0)+30-(lenbm%*2)-8))�(my%<=(book%(1)+60+56-(60*(j%�2))))�(my%>=(book%(1)+60-(60*(j%�2))))�:=j%
 �
�
$��IF(mx%<=(book%(0)+182))AND(mx%>=book%(0))AND(my%<=(book%(1)+148))AND(my%>=book%(1))THEN:PRINT "on ";bk%;" ";bookdirn%;" ";bkflip%;" ";mbut%:X=GET:=-1
.?�PRINT "off ";bk%;" ";bookdirn%;" ";bkflip%;" ";mbut%:X=GET
8=-1
B
L��plotbook(a%)
V=ș"OS_SpriteOp",&122,sparea%,"bookbg",book%(0),book%(1),8
`Hș"OS_SpriteOp",&134,butarea%,"bookbut",book%(0),book%(1),8,scale%,0
j$�a%=1 �:�plotbm:�fullbm%:�fullbm
t�a%=3 �:�plotynbm
~�bk%>0�
�� �bkflip%=-1:ș"OS_SpriteOp",&134,butarea%,"bb"+�(bk%),book%(0)+bookx%(bk%),book%(1)+16+(4*bk%),8,scale%,0:�:ș"OS_SpriteOp",&134,butarea%,"bb"+�(bk%),book%(0)+90,book%(1)+16+(4*bk%),8,scale%,0
� �(a%=2)��animend% �
�t  �(chosen%=1)�(bkflip%=1):ș"OS_SpriteOp",&134,sparea2%,"y"+�(bk%),book%(0)+94,book%(1)+bkyn%(bk%,1),8,scale%,0
�  �(chosen%=0)�(bkflip%=-1):ș"OS_SpriteOp",&134,sparea2%,"n"+�(bk%),book%(0)+bkyn%(bk%,0),book%(1)+bkyn%(bk%,1),8,scale%,0
� �
��
�3achange%=-1:donechange%(a%)=-1:animtime%(a%)=-1
��
�
���plotynbm
�e�24,0;0;1278;book%(1)+22;:�plotynbm0:�plotynbm1:�24,0;book%(1)+96;1278;958;:�plotynbm0:�plotynbm1
��26

�fullbm%�

# �bm%=0:�plotynbm0:�:�plotynbm1
�
�
(
2��plotynbm0
<� c%
F�bm%=0:c%=9:�:c%=0
P2�box(book%(0)+28,book%(1)+nbmpos%,36,136,c%,2)
Z1�box(book%(0)+16,book%(1)+nbmpos%,60,96,c%,2)
d@�18,0,c%:�25,4,book%(0)+30;book%(1)+nbmpos%+92;:�25,97,32;2;
n�bm%=0:c%=8:�:c%=3
x#�5:�23,17,7,%10,8;8*cgavga%;0,0
��18,0,c%
�+�25,4,book%(0)+38;book%(1)+nbmpos%+124;
�	� "N"
�*�25,4,book%(0)+30;book%(1)+nbmpos%+88;
�
� "no"
��23,17,7,%10,8;8;0,0:�4
��
�
���plotynbm1
�� c%
��bm%=1:c%=9:�:c%=0
�3�box(book%(0)+118,book%(1)+ybmpos%,36,136,c%,2)
�2�box(book%(0)+106,book%(1)+ybmpos%,60,96,c%,2)
A�18,0,c%:�25,4,book%(0)+120;book%(1)+ybmpos%+92;:�25,97,32;2;
�bm%=1:c%=8:�:c%=3
#�5:�23,17,7,%10,8;8*cgavga%;0,0
"�18,0,c%
,,�25,4,book%(0)+128;book%(1)+ybmpos%+124;
6	� "Y"
@+�25,4,book%(0)+112;book%(1)+ybmpos%+88;
J� "yes"
T�23,17,7,%10,8;8;0,0:�4
^�
h
r��plotbm
|� j%,k%
��j%=0�1
�N �18,0,3:�25,4,book%(0)+144;book%(1)+60-(j%*52);:�25,97,(lenbm%*2)-2;48-2;
� �bm%=j%:�18,0,9:�:�18,0,0
�G �25,4,book%(0)+146;book%(1)+64-(j%*52);:�25,97,(lenbm%*2)-6;48-10;
�� �bm%=j%:ș"OS_SpriteOp",&134,butarea%,"bm"+�(j%)+"1",book%(0)+144,book%(1)+60-(j%*52),8,scale%,0:�:ș"OS_SpriteOp",&134,butarea%,"bm"+�(j%)+"0",book%(0)+144,book%(1)+60-(j%*52),8,scale%,0
�V �5:�25,4,book%(0)+174+((8+(((maxbm%-�(ch$(j%)))/2)*8))*2);book%(1)+60+36-(j%*52);
�
 �printbm
��
��ch%>2 �
�= �j%=0�1:�k%=0�1:�flip(butarea%,"y","bm"+�(j%)+�(k%)):�:�
� �j%=2�ch%-1
�R  �18,0,3:�25,4,book%(0)+36;book%(1)+60-((j%-2)*52);:�25,97,2-(lenbm%*2);48-2;
�  �bm%=j%:�18,0,9:�:�18,0,0
K  �25,4,book%(0)+34;book%(1)+64-((j%-2)*52);:�25,97,6-(lenbm%*2);48-10;
�  �bm%=j%:ș"OS_SpriteOp",&134,butarea%,"bm"+�((j%-2))+"1",book%(0),book%(1)+60-((j%-2)*52),8,scale%,0:�:ș"OS_SpriteOp",&134,butarea%,"bm"+�((j%-2))+"0",book%(0),book%(1)+60-((j%-2)*52),8,scale%,0
e  �5:�25,4,book%(0)+36-(lenbm%*2)+((8+(((maxbm%-�(ch$(j%)))/2)*8))*2);book%(1)+60+36-((j%-2)*52);
&  �printbm
0 �
:= �j%=0�1:�k%=0�1:�flip(butarea%,"y","bm"+�(j%)+�(k%)):�:�
D�
N1achange%=-1:donechange%(1)=-1:animtime%(1)=-1
X�
b
l��fullbm
v� j%
��bm%<2 �
�S �18,0,3:�25,4,book%(0)+144;book%(1)+60-((bm%�2)*52);:�25,97,(lenbm%*2)-2;48-2;
�T �18,0,9:�25,4,book%(0)+146;book%(1)+64-((bm%�2)*52);:�25,97,(lenbm%*2)-6;48-10;
�\ �5:�25,4,book%(0)+174+((8+(((maxbm%-�(ch$(bm%)))/2)*8))*2);book%(1)+60+36-((bm%�2)*52);
��
�R �18,0,3:�25,4,book%(0)+36;book%(1)+60-((bm%�2)*52);:�25,97,2-(lenbm%*2);48-2;
�S �18,0,9:�25,4,book%(0)+34;book%(1)+64-((bm%�2)*52);:�25,97,6-(lenbm%*2);48-10;
�f �5:�25,4,book%(0)+36-(lenbm%*2)+((8+(((maxbm%-�(ch$(bm%)))/2)*8))*2);book%(1)+60+36-((bm%�2)*52);
��
�j%=bm%:�printbm
��
�
�
��printbm
�bm%=j%:�18,0,8:�:�18,0,3
 �23,17,7,%10,8;8*cgavga%;0,0

� ch$(j%)
 �23,17,7,%10,8;8;0,0:�4
*�
4
>��mousefull
Hȗ ȓ 0,0,1279,960
R�
\
f/��savespbgrd(x_pos%,y_pos%,spname$,bgname$)
p� w%,h%
z4ș "OS_SpriteOp",&128,sparea%,spname$ � ,,,w%,h%
�.�savebgrd(x_pos%,y_pos%,w%*2,h%*4,bgname$)
��
�
�3��savebgrd(x_pos%,y_pos%,x_siz%,y_siz%,bgname$)
�Uș "OS_SpriteOp",&110,sparea%,bgname$,0,x_pos%,y_pos%,x_pos%+x_siz%,y_pos%+y_siz%
��
�
���delete(spn$)
�&ș "OS_SpriteOp",&119,sparea%,spn$
��
�
�ݤscreen_number
�	sc%=0
�
sc%=sc%+1:sc$=�(sc%)
2ș"XOS_Find",&40,"<ElfK$Save>.screen"+sc$ � h%
$�h%<>0:�#h%
.	�h%=0
8=sc%
B
L
��printer
V	� di%
`(�(L%<=1030)�(L%>=1110):di%=1:�:di%=2
j�26
t/ȑ0,0:ș"XOS_SpriteOp",&119,sparea%,"blank"
~3!pscale%=1:pscale%!4=1:pscale%!8=1:pscale%!12=1
�
�F%,E%
�F%=�("printer:")
�� �
���:� �:�#F%:�"FX229,0":�
���ONERRORLOCAL:RESTORE ERROR:CLOSE#F%:OSCLI"FX229,0":SYS"OS_Byte",250,0,255 TO ,scr%:SYS"OS_Byte",113,scr%:PRINT REPORT$+" (Internal error code "+STR$ERL+")"+CHR$0:PROCwait(500):PROCdesk_top
� ș"PDriver_SelectJob",F%,0,0
�� �
�N��:� �:ș"PDriver_AbortJob",F%:ș"PDriver_SelectJob",E%:�#F%:�"FX229,0":�
���ONERRORLOCAL:RESTORE ERROR:SYS"PDriver_AbortJob",F%:SYS"PDriver_SelectJob",E%:CLOSE#F%:OSCLI"FX229,0":SYS"OS_Byte",250,0,255 TO ,scr%:SYS"OS_Byte",113,scr%:PRINT REPORT$+" (Internal error code "+STR$ERL+")"+CHR$0:PROCwait(500):PROCdesk_top
�E!(pdrect%+0)=0:!(pdrect%+4)=0:!(pdrect%+8)=1280:!(pdrect%+12)=960
�L!(pdtrans%+0)=1<<16:!(pdtrans%+4)=0:!(pdtrans%+8)=0:!(pdtrans%+12)=1<<16
�,�!(pdplot%+0)=128<<8:!(pdplot%+4)=512<<8
!(pdplot%+0)=128<<8

/ș"PDriver_PageSize" � r0,r1,r2,r3,r4,r5,r6
-ș"PDriver_SetPageSize",,r1,r2,r3,0,r5,r6
A!(pdplot%+4)=r6-400000:�(pdplot%!4)<(512<<8):pdplot%!4=512<<8
(Bș"PDriver_GiveRectangle",0,pdrect%,pdtrans%,pdplot%,&FFFFFF00
2?ș "OS_SpriteOp",&13C,0,0,1:ș"ColourTrans_InvalidateCache"
<5ș"PDriver_DrawPage",1,pdrect2%,0,0 � copiesleft%
Fȕ copiesleft%<>0
P�pd_plot_screen
Z4ș"PDriver_GetRectangle",,pdrect2% � copiesleft%
d�
nș"PDriver_EndJob",F%
x� �
�� �
��#F%
�7�SYS"OS_SpriteOp",&10F,sparea%,"blank",0,384,192,12
�*FX229,0
�%�Y%=0:�checkfloppyisthere(di%,"")
��
�
���pd_plot_screen
��y%,p%,i%,f%,t%
�*FX229,1
��y%=0�936�24
�ș"PDriver_SelectJob",0,0,0
�Hș"OS_SpriteOp",&110,sparea%,"blank",1,0,y%,1279,y%+24 � r0%,r1%,r2%
3!pscale%=1:pscale%!4=1:pscale%!8=1:pscale%!12=1
 ș"PDriver_SelectJob",F%,0,0
9f%=(r2%+44):t%=paltab%:�i%=0�15:!t%=!f%:t%+=4:f%+=8:�
"8ș"ColourTrans_SelectTable",12,paltab%,-1,-1,ctrans%
,<ș "OS_SpriteOp",&234,sparea%,r2%,0,y%,0,pscale%,ctrans%
6�
@�
J
T��screen_save
^	� di%
h(�(L%<=1030)�(L%>=1110):di%=1:�:di%=2
r
�wait(50)
|�26
�9�Y%=0:�floppy_screen_save:�checkfloppyisthere(di%,"")
��Y%=1:�hard_screen_save
�
�wait(50)
�	*fx15
��
�
���mergescr21(C%)
�1� time of merge is approx (C%*16)/100 seconds
�
A%=2:B%=1
�� mergescr%
�1Ȗ:ș "OS_Byte",113,1:ș "OS_Byte",112,1:� 26
��
�
��scrcopy(A%,B%)
ș "OS_Byte",113,A%
� copyscr%
&1Ȗ:ș "OS_Byte",113,1:ș "OS_Byte",112,1:� 26
0�
:
D��scrcopy21
N ș "OS_Byte",113,2:A%=2:B%=1
X� copyscr%
b1Ȗ:ș "OS_Byte",113,1:ș "OS_Byte",112,1:� 26
l�
v
�'��scrcopyblock(x%,y%,sx%,sy%,A%,B%)
�C� A%=addr to copy from. B%=addr to. C%=width in words. D%=rows.
�3�A%=1:A%=K%!&C0:B%=K%!&C4:�:A%=K%!&C4:B%=K%!&C0
�WC%=960-((y%+sy%)-((y%+sy%)�4)):C%=(cgavga%*(320*(C%/4)))+(4*�(x%/16)):A%+=C%:B%+=C%
�>C%=�(sx%/16)+2:D%=cgavga%*�(sy%/4):�(sy%�4)<>0:D%+=cgavga%
�d�PRINT x%;" ";y%;" ";sx%;" ";sy%;" ";~(K%!&C0);" ";~(K%!&C4);" ";~A%;" ";~B%;" ";C%;" ";D%:X=GET
�� copyscrblock%
��
�
�6��scrcopyblockpix(x%,y%,sx%,sy%,from%,to%,fingbg%)
�� A%=addr to copy from. B%=addr to. Each row consists of :- C% L-pixels (0,1):D% L-bytes (0,1,2,3):E% words:F% R-bytes (0,1,2,3):G% R-pixels.  H%=no. of rows
�� xx%,xxx%,sxx%
�6�from%=1:A%=K%!&C0:B%=K%!&C4:�:A%=K%!&C4:B%=K%!&C0
RC%=960-((y%+sy%)-((y%+sy%)�4)):C%=(cgavga%*(320*(C%/4)))+�(x%/4):A%+=C%:B%+=C%

xx%=x%
"�(x%�4)=0 �:C%=0:�:C%=1:xx%+=2
 ,�((x%�16)>0)�((x%�16)<=4) �:D%=3:xx%+=12
*+�((x%�16)>4)�((x%�16)<=8) �:D%=2:xx%+=8
4,�((x%�16)>8)�((x%�16)<=12) �:D%=1:xx%+=4
>4�(((x%�16)>12)�((x%�16)<=15))�((x%�16)=0) �:D%=0
Hsxx%=x%+sx%:xxx%=sxx%
R%�(sxx%�4)=0 �:G%=0:�:G%=1:xxx%-=2
\(�((sxx%�16)>=0)�((sxx%�16)<4) �:F%=0
f0�((sxx%�16)>=4)�((sxx%�16)<8) �:F%=1:xxx%-=4
p1�((sxx%�16)>=8)�((sxx%�16)<12) �:F%=2:xxx%-=8
z3�((sxx%�16)>=12)�((sxx%�16)<15) �:F%=3:xxx%-=12
�E%=(xxx%-xx%)/16
�/H%=cgavga%*�(sy%/4):�(sy%�4)<>0:H%+=cgavga%
�� copyscrblockp%
�t�fingbg%:�24,x%;y%;x%+sx%-2;y%+sy%-2;:ș"OS_SpriteOp",&122,sparea%,"h0bg"+�(from%),x%(from%-1),y%(from%-1),8:�26
��
�
���waterfall21(C%)
�4� waterfall will take approx (C%*16)/100 seconds
�%C%=C%/(K%!&F0):C%=C%/4:�C%=0:C%=1
�A%=2:B%=1:� waterfall%
�1Ȗ:ș "OS_Byte",113,1:ș "OS_Byte",112,1:� 26
��
�
%��scrcopy21exp(A%,B%,C%,D%,E%,F%)
� blowupscr%
�
$
.��flip(area%,way$,spri$)
8Q�way$="y":ș"OS_SpriteOp",&12F,area%,spri$:�:ș"OS_SpriteOp",&121,area%,spri$
B�
L
V��elffade(word%)
`�word%<0�:�
jB�say%(word%,1)<=736:�elffadeabove(word%):�:�elffadeside(word%)
t�
~
���elffadeabove(word%)
�� wid%,x%,y%,sx%,sy%
�$wid%=say%(word%,2)-say%(word%,0)
��cachesound("fxpop",1)
�ș "OS_Byte",112,see%
���sayhand%:ș"OS_SpriteOp",&122,sparea%,"h0bg"+�(see%),x%(see%-1),y%(see%-1),8:�:ș"OS_SpriteOp",&122,sparea%,"magbg"+�(see%),x%(see%-1),y%(see%-1),8
�iș "OS_Byte",112,do%:�scrcopy(see%,do%):x%(do%-1)=x%(see%-1):y%(do%-1)=y%(see%-1):oomx%=mx%:oomy%=my%
��sayhand%�
�i ș"OS_SpriteOp",&119,sparea%,"h0bg"+�(do%):ș"OS_SpriteOp",&11B,sparea%,"h0bg"+�(see%),"h0bg"+�(do%)
��
�l ș"OS_SpriteOp",&119,sparea%,"magbg"+�(do%):ș"OS_SpriteOp",&11B,sparea%,"magbg"+�(see%),"magbg"+�(do%)
��
e�PROCsavebgrd(say%(word%,0)-40,say%(word%,1)-8,wid%+80,say%(word%,3)-say%(word%,1)+20,"sayboxbg")

]�savebgrd(say%(word%,0)-40,say%(word%,1)-8,40,say%(word%,3)-say%(word%,1)+20,"sayboxbg1")
_�savebgrd(say%(word%,0)+wid%,say%(word%,1)-8,40,say%(word%,3)-say%(word%,1)+20,"sayboxbg2")
@�savebgrd(say%(word%,0),say%(word%,1)-8,wid%,12,"sayboxbg3")
(>�savebgrd(say%(word%,0),say%(word%,3),wid%,12,"sayboxbg4")
2b�whitebg%:�savebgrd(say%(word%,0),say%(word%,1),wid%,say%(word%,3)-say%(word%,1),"sayboxbg5")
<H�savebgrd(say%(word%,0)+wid%/2-14,say%(word%,1)+76,28,40,"sayarrbg")
FO�PROCsavebgrd(say%(word%,0)+wid%/2-72,say%(word%,1)+116,146,140,"readerbg")
PJ�savebgrd(say%(word%,0)+wid%/2-72,say%(word%,1)+88,146,140,"readerbg")
Z>see%=1:do%=2:Ȗ:ș "OS_Byte",113,see%:ș "OS_Byte",112,do%
d`�SYS "OS_SpriteOp",&134,butarea%,"bang",say%(word%,0)+wid%/2-38,say%(word%,1)+144,8,scale%,0
n^ș "OS_SpriteOp",&134,butarea%,"bang",say%(word%,0)+wid%/2-38,say%(word%,1)+116,8,scale%,0
xj� 1,&17F,1,1:see%=%100>>>see%:do%=%100>>>do%:Ȗ:ș "OS_Byte",113,see%:ș "OS_Byte",112,do%:lasttime%=�
�Z�SYS "OS_SpriteOp",&122,sparea%,"readerbg",say%(word%,0)+wid%/2-72,say%(word%,1)+116,8
�b�SYS "OS_SpriteOp",&134,butarea%,"reader",say%(word%,0)+wid%/2-72,say%(word%,1)+116,8,scale%,0
�Wș "OS_SpriteOp",&122,sparea%,"readerbg",say%(word%,0)+wid%/2-72,say%(word%,1)+88,8
�_ș "OS_SpriteOp",&134,butarea%,"reader",say%(word%,0)+wid%/2-72,say%(word%,1)+88,8,scale%,0
�y�PROCspeechbox(say%(word%,0)-40,say%(word%,1)-8,wid%+80,say%(word%,3)-say%(word%,1)+20,3,0,say%(word%,0)+wid%/2-14,0)
�K�PROCwords(say%(word%,0)+8,say%(word%,1)+16,-1,3,0,0,on$+say$(word%,0))
�Yx%=say%(word%,0)-40:y%=say%(word%,1)-8:sx%=wid%+80:sy%=say%(word%,3)-say%(word%,1)+20
�g�18,0,0:�25,4,x%+40;y%;:�25,101,x%+sx%-42;y%+10;:�25,4,x%+40;y%+sy%-12;:�25,101,x%+sx%-42;y%+sy%-2;
�e�18,0,3:�25,4,x%+40;y%;:�25,101,x%+sx%-42;y%+2;:�25,4,x%+40;y%+sy%-4;:�25,101,x%+sx%-42;y%+sy%-2;
�l�speechbubs(x%,y%,sx%,sy%):ș"OS_SpriteOp",&134,butarea%,"bub3",say%(word%,0)+wid%/2-14,y%+84,8,scale%,0
��whitebg%:�18,0,0:�25,4,say%(word%,0);say%(word%,1);:�25,97,wid%;say%(word%,3)-say%(word%,1);:�words(say%(word%,0),say%(word%,1)+16,-1,3,0,0,on$+say$(say%(word%,4),0))
��:� �>lasttime%+30
�.A%=do%:B%=see%:C%=1:� mergescr%:�scrcopy21
>see%=1:do%=2:Ȗ:ș "OS_Byte",113,see%:ș "OS_Byte",112,do%

�wait(30)
:�sayx%=say%(word%,0)+wid%/2-30:sayy%=say%(word%,1)+116
"8sayx%=say%(word%,0)+wid%/2-30:sayy%=say%(word%,1)+88
,Cm$=say$(say%(word%,4),2):m%=�m$:m$=�m$,�(m$)-2):lasttime%=�-100
65�cachesound(say$(say%(word%,4),1),1):� 1,&17F,1,1
@�
J7 m$=�m$,�(m$)-1):�24,sayx%;sayy%;sayx%+62;sayy%+48;
T> ș "OS_SpriteOp",&122,sparea%,"readerbg",sayx%-42,sayy%,8
^F ș "OS_SpriteOp",&134,butarea%,"reader",sayx%-42,sayy%,8,scale%,0
h �m$>0�
r�  �(�m$,1))=1:ș "OS_SpriteOp",&134,butarea%,"m"+�m$,1),sayx%,sayy%,8,scale%,0:�:ș "OS_SpriteOp",&134,butarea%,"m"+�m$,1),sayx%,sayy%+24,8,scale%,0
| �
�R ș"OS_SpriteOp",&134,butarea%,"bub3",say%(word%,0)+wid%/2-14,y%+84,8,scale%,0
� �26:�:� �>lasttime%+m%
�R see%=%100>>>see%:do%=%100>>>do%:Ȗ:ș "OS_Byte",113,see%:ș "OS_Byte",112,do%
� lasttime%=�
�
� �(m$)=0
�
�wait(80)
�
�
�X=GET
�
��cachesound("fxpop",1)
�=ș "OS_SpriteOp",&122,sparea%,"readerbg",sayx%-42,sayy%,8
�`�SYS "OS_SpriteOp",&134,butarea%,"bang",say%(word%,0)+wid%/2-38,say%(word%,1)+144,8,scale%,0
�^ș "OS_SpriteOp",&134,butarea%,"bang",say%(word%,0)+wid%/2-38,say%(word%,1)+116,8,scale%,0
Qș"OS_SpriteOp",&134,butarea%,"bub3",say%(word%,0)+wid%/2-14,y%+84,8,scale%,0
y�PROCspeechbox(say%(word%,0)-40,say%(word%,1)-8,wid%+80,say%(word%,3)-say%(word%,1)+20,3,0,say%(word%,0)+wid%/2-14,0)
K�PROCwords(say%(word%,0)+8,say%(word%,1)+16,-1,3,0,0,on$+say$(word%,0))
&j� 1,&17F,1,1:see%=%100>>>see%:do%=%100>>>do%:Ȗ:ș "OS_Byte",113,see%:ș "OS_Byte",112,do%:lasttime%=�
0=ș "OS_SpriteOp",&122,sparea%,"readerbg",sayx%-42,sayy%,8
:Q�SYS "OS_SpriteOp",&122,sparea%,"sayboxbg",say%(word%,0)-40,say%(word%,1)-8,8
DPș "OS_SpriteOp",&122,sparea%,"sayboxbg1",say%(word%,0)-40,say%(word%,1)-8,8
NRș "OS_SpriteOp",&122,sparea%,"sayboxbg2",say%(word%,0)+wid%,say%(word%,1)-8,8
XMș "OS_SpriteOp",&122,sparea%,"sayboxbg3",say%(word%,0),say%(word%,1)-8,8
bKș "OS_SpriteOp",&122,sparea%,"sayboxbg4",say%(word%,0),say%(word%,3),8
lV�whitebg%:ș "OS_SpriteOp",&122,sparea%,"sayboxbg5",say%(word%,0),say%(word%,1),8
vWș "OS_SpriteOp",&122,sparea%,"sayarrbg",say%(word%,0)+wid%/2-14,say%(word%,1)+76,8
��:� �>lasttime%+30
�.A%=do%:B%=see%:C%=1:� mergescr%:�scrcopy21
�>see%=1:do%=2:Ȗ:ș "OS_Byte",113,see%:ș "OS_Byte",112,do%
�=mx%=oomx%:my%=oomy%:�mousefull:ȗ � mx%,my%:doneablue%=-1
��IFanim%=0:animend%=-1
��
�
���elffadeside(word%)
�� wid%,x%,y%,sx%,sy%
��word%<0�:�
�$wid%=say%(word%,2)-say%(word%,0)
��cachesound("fxpop",1)
�ș "OS_Byte",112,see%
Gș"OS_SpriteOp",&122,sparea%,"h0bg"+�(see%),x%(see%-1),y%(see%-1),8
iș "OS_Byte",112,do%:�scrcopy(see%,do%):x%(do%-1)=x%(see%-1):y%(do%-1)=y%(see%-1):oomx%=mx%:oomy%=my%
hș"OS_SpriteOp",&119,sparea%,"h0bg"+�(do%):ș"OS_SpriteOp",&11B,sparea%,"h0bg"+�(see%),"h0bg"+�(do%)
 ]�savebgrd(say%(word%,0)-40,say%(word%,1)-8,40,say%(word%,3)-say%(word%,1)+20,"sayboxbg1")
*_�savebgrd(say%(word%,0)+wid%,say%(word%,1)-8,40,say%(word%,3)-say%(word%,1)+20,"sayboxbg2")
4@�savebgrd(say%(word%,0),say%(word%,1)-8,wid%,12,"sayboxbg3")
>>�savebgrd(say%(word%,0),say%(word%,3),wid%,12,"sayboxbg4")
HA�savebgrd(say%(word%,0)-72,say%(word%,1)+24,40,28,"sayarrbg")
RC�savebgrd(say%(word%,0)-196,say%(word%,1)-8,146,140,"readerbg")
\>see%=1:do%=2:Ȗ:ș "OS_Byte",113,see%:ș "OS_Byte",112,do%
fWș "OS_SpriteOp",&134,butarea%,"bang",say%(word%,0)-162,say%(word%,1)+32,8,scale%,0
pj� 1,&17F,1,1:see%=%100>>>see%:do%=%100>>>do%:Ȗ:ș "OS_Byte",113,see%:ș "OS_Byte",112,do%:lasttime%=�
zPș "OS_SpriteOp",&122,sparea%,"readerbg",say%(word%,0)-196,say%(word%,1)-8,8
�Xș "OS_SpriteOp",&134,butarea%,"reader",say%(word%,0)-196,say%(word%,1)-8,8,scale%,0
�Yx%=say%(word%,0)-40:y%=say%(word%,1)-8:sx%=wid%+80:sy%=say%(word%,3)-say%(word%,1)+20
�g�18,0,0:�25,4,x%+40;y%;:�25,101,x%+sx%-42;y%+10;:�25,4,x%+40;y%+sy%-12;:�25,101,x%+sx%-42;y%+sy%-2;
�e�18,0,3:�25,4,x%+40;y%;:�25,101,x%+sx%-42;y%+2;:�25,4,x%+40;y%+sy%-4;:�25,101,x%+sx%-42;y%+sy%-2;
�g�speechbubs(x%,y%,sx%,sy%):ș"OS_SpriteOp",&134,butarea%,"sayarr",say%(word%,0)-72,y%+32,8,scale%,0
��:� �>lasttime%+30
�.A%=do%:B%=see%:C%=1:� mergescr%:�scrcopy21
�>see%=1:do%=2:Ȗ:ș "OS_Byte",113,see%:ș "OS_Byte",112,do%
�
�wait(30)
�:�sayx%=say%(word%,0)+wid%/2-30:sayy%=say%(word%,1)+116
�1sayx%=say%(word%,0)-154:sayy%=say%(word%,1)-8
�Cm$=say$(say%(word%,4),2):m%=�m$:m$=�m$,�(m$)-2):lasttime%=�-100
�5�cachesound(say$(say%(word%,4),1),1):� 1,&17F,1,1
�
7 m$=�m$,�(m$)-1):�24,sayx%;sayy%;sayx%+62;sayy%+48;
> ș "OS_SpriteOp",&122,sparea%,"readerbg",sayx%-42,sayy%,8
$F ș "OS_SpriteOp",&134,butarea%,"reader",sayx%-42,sayy%,8,scale%,0
. �m$>0�
8�  �(�m$,1))=1:ș "OS_SpriteOp",&134,butarea%,"m"+�m$,1),sayx%,sayy%,8,scale%,0:�:ș "OS_SpriteOp",&134,butarea%,"m"+�m$,1),sayx%,sayy%+24,8,scale%,0
B �
LM ș"OS_SpriteOp",&134,butarea%,"sayarr",say%(word%,0)-72,y%+32,8,scale%,0
V �26:�:� �>lasttime%+m%
`R see%=%100>>>see%:do%=%100>>>do%:Ȗ:ș "OS_Byte",113,see%:ș "OS_Byte",112,do%
j lasttime%=�
t
� �(m$)=0
~
�wait(80)
�
�
�X=GET
�
��cachesound("fxpop",1)
�=ș "OS_SpriteOp",&122,sparea%,"readerbg",sayx%-42,sayy%,8
�Wș "OS_SpriteOp",&134,butarea%,"bang",say%(word%,0)-162,say%(word%,1)+32,8,scale%,0
�Lș"OS_SpriteOp",&134,butarea%,"sayarr",say%(word%,0)-72,y%+32,8,scale%,0
�j� 1,&17F,1,1:see%=%100>>>see%:do%=%100>>>do%:Ȗ:ș "OS_Byte",113,see%:ș "OS_Byte",112,do%:lasttime%=�
�=ș "OS_SpriteOp",&122,sparea%,"readerbg",sayx%-42,sayy%,8
�Pș "OS_SpriteOp",&122,sparea%,"sayboxbg1",say%(word%,0)-40,say%(word%,1)-8,8
�Rș "OS_SpriteOp",&122,sparea%,"sayboxbg2",say%(word%,0)+wid%,say%(word%,1)-8,8
�Mș "OS_SpriteOp",&122,sparea%,"sayboxbg3",say%(word%,0),say%(word%,1)-8,8
Kș "OS_SpriteOp",&122,sparea%,"sayboxbg4",say%(word%,0),say%(word%,3),8

Pș "OS_SpriteOp",&122,sparea%,"sayarrbg",say%(word%,0)-72,say%(word%,1)+24,8
�:� �>lasttime%+30
.A%=do%:B%=see%:C%=1:� mergescr%:�scrcopy21
(>see%=1:do%=2:Ȗ:ș "OS_Byte",113,see%:ș "OS_Byte",112,do%
2/mx%=oomx%:my%=oomy%:�mousefull:ȗ � mx%,my%
<�
F
P��plotstars
Z�j%=0�31
d �st%(j%,2)=l%:st%(j%,3)=-1
n �(st%(j%,4)<9)�st%(j%,3) �
x  �st%(j%,4)<=5 �
��   ș "OS_SpriteOp",&134,butarea%,"star"+�(st%(j%,4)),sayx%+st%(j%,0)+(2*(7-st%(j%,4))),sayy%+st%(j%,1)+(4*(5-st%(j%,4))),8,scale%,0
�  �
�d   ș "OS_SpriteOp",&134,butarea%,"star"+�(st%(j%,4)),sayx%+st%(j%,0),sayy%+st%(j%,1),8,scale%,0
�  �
� �
� �st%(j%,3)�
�>  �l%<10:st%(j%,4)=(st%(j%,4)+1)�9:�:st%(j%,4)=st%(j%,4)+1
� �
��
��
�
���masksprite(area%,nosp%)
�� j%
.�SYS"OS_Byte",112,1:SYS"OS_Byte",113,1:CLG
�j%=0�nosp%-1
%�PRINT masksp$(j%);" ";~area%;" "
"�debug$=masksp$(j%)
,+ ș"OS_SpriteOp",&11D,area%,masksp$(j%)
6O ș "OS_SpriteOp",&118,area%,masksp$(j%) � ,,C%:A%=C%+(C%!32):B%=C%+(C%!36)
@R ș"OS_SpriteOp",&128,area%,masksp$(j%) � ,,,C%,D%:�(C%�8)<>0:C%=(�(C%/8)+1)*8
J  C%=(C%*D%)/2:D%=masksp%(j%)
T � addmask%
^�
h�
r
|(��loadunsquash(area%,areasiz%,file$)
��load(file$)
��unsquash(area%,areasiz%)
��
�
���load(file$)
�0�"LOAD <ElfK$chaindir>."+file$+" "+�~sqfile%
�8ș "OS_File",5,"<ElfK$chaindir>."+file$ � ,,,,sqsiz%
��
�
���unsquash(outptr%,outsiz%)
�Rș "Squash_Decompress",%100,sqbuffer%,sqfile%+20,sqsiz%-20,outptr%+4,outsiz%-4
�'!sparea2%=sparea2siz%:sparea2%!8=16
�"ș "OS_SpriteOp",&109,sparea2%
 �
 
 1��fade(x%,y%,col_st%,cycle%,totcycles%,fade$)
 &=ș"OS_SpriteOp",&128,sparea%,fade$ � r0,r1,r2,A%,B%,r5,r6
 0A%=A%/2
 :*C%=(x%/4)+(((960-y%)/(4/cgavga%))*320)
 DD%=4:E%=cgavga%*4
 N3ș"OS_SpriteOp",&118,sparea%,fade$ � r0,r1,add%
 XF%=add%+!(add%+32)
 bG%=sqbuffer%
 l� screen_offsets%
 v*A%=totcycles%          :� total cycles
 �"B%=col_st%      :� next colour
 �>C%=cycle%       :� number cycles before next colour starts
 �8D%=4:E%=4*cgavga% :� sizes x and y (bytes per pixel)
 ��slow%�
 �" F%=50000/(2-arm3%)   :� pause
 ��
 �" F%=10000/(2-arm3%)   :� pause
 ��
 �>G%=sqbuffer%    :� Give code work space to store addresses
 �� effect_start%
 ��
 �
 �$��box(x%,y%,sx%,sy%,col%,linew%)
!3�18,0,3:�25,4,x%;y%;:�25,101,x%+sx%-2;y%+sy%-2;
!%�clbox(x%,y%,sx%,sy%,col%,linew%)
!�
! 
!*&��clbox(x%,y%,sx%,sy%,col%,linew%)
!4F�18,0,col%:�25,4,x%+linew%;y%+4;:�25,101,x%+sx%-2-linew%;y%+sy%-6;
!>�
!H
!R9��speechbox(x%,y%,sx%,sy%,arr%,arrflip%,pos%,update%)
!\l�update%:sayw%(0)=x%:sayw%(1)=y%:sayw%(2)=sx%:sayw%(3)=sy%:sayw%(4)=arr%:sayw%(5)=arrflip%:sayw%(6)=pos%
!f7�18,0,3:�25,4,x%+40;y%;:�25,101,x%+sx%-42;y%+sy%-2;
!p9�18,0,0:�25,4,x%+40;y%+4;:�25,101,x%+sx%-42;y%+sy%-6;
!z7�18,0,3:�25,4,x%;y%+44;:�25,101,x%+sx%-2;y%+sy%-46;
!�9�18,0,0:�25,4,x%+4;y%+44;:�25,101,x%+sx%-6;y%+sy%-46;
!�J�speechbubs(x%,y%,sx%,sy%):�speechboxarr(x%,y%,arr%,arrflip%,pos%,sy%)
!��
!�
!���speechbubs(x%,y%,sx%,sy%)
!�Yș"OS_SpriteOp",&134,butarea%,"bub",x%,y%+sy%-44,8,scale%,0:�flip(butarea%,"y","bub")
!�`ș"OS_SpriteOp",&134,butarea%,"bub",x%+sx%-40,y%+sy%-44,8,scale%,0:�flip(butarea%,"x","bub")
!�Yș"OS_SpriteOp",&134,butarea%,"bub",x%+sx%-40,y%,8,scale%,0:�flip(butarea%,"y","bub")
!�Rș"OS_SpriteOp",&134,butarea%,"bub",x%,y%,8,scale%,0:�flip(butarea%,"x","bub")
!��
!�
!�0��speechboxarr(x%,y%,arr%,arrflip%,pos%,sy%)
!��arr%=1�
"0 �arrflip%:�flip(butarea%,"x","bub"+�(arr%))
"F ș"OS_SpriteOp",&134,butarea%,"bub"+�(arr%),x%-68,pos%,8,scale%,0
"0 �arrflip%:�flip(butarea%,"x","bub"+�(arr%))
"$�
".�arr%=2�
"80 �arrflip%:�flip(butarea%,"y","bub"+�(arr%))
"BG ș"OS_SpriteOp",&134,butarea%,"bub"+�(arr%),pos%,y%-108,8,scale%,0
"L0 �arrflip%:�flip(butarea%,"y","bub"+�(arr%))
"V�
"`�arr%=3�
"j �flip(butarea%,"x","bub2")
"t) �arrflip%:�flip(butarea%,"y","bub2")
"~B ș"OS_SpriteOp",&134,butarea%,"bub2",pos%,y%+sy%-4,8,scale%,0
"�) �arrflip%:�flip(butarea%,"y","bub2")
"� �flip(butarea%,"x","bub2")
"��
"��arr%=4�
"�B ș"OS_SpriteOp",&134,butarea%,"bub3",pos%,y%+sy%-4,8,scale%,0
"��
"��
"�
"���clspeech
"�� x%,y%,sx%,sy%
"�5x%=sayw%(0):y%=sayw%(1):sx%=sayw%(2):sy%=sayw%(3)
"�;�18,0,0:�25,4,x%+24;y%+24;:�25,101,x%+sx%-26;y%+sy%-26;
#9�18,0,0:�25,4,x%+40;y%+4;:�25,101,x%+sx%-42;y%+sy%-6;
#
9�18,0,0:�25,4,x%+4;y%+44;:�25,101,x%+sx%-6;y%+sy%-46;
#�
#
#(ݤstringsize(s$)
#2
� wid%,h%
#<8ș"Font_FindFont",,"tabloid.medium",320,360,0,0 � h%
#F$blk%=s$
#PLș"Font_StringWidth",,blk%,600000,48000,-1,80 � r0%,r1%,wid%,r3%,r4%,r5%
#Zș"Font_LoseFont",h%
#d
=wid%/400
#n
#x��cachesound(s$,ch%)
#��SYS &46187,R%,M%
#�,ș &46180,R%,s$,M%,ch% � ,,M%,prevo%;fl%
#��(fl%�%1)=%1 �:�
#��
#�
#�
ݤnosound
#�,ș"Sound_ReadControlBlock",1,0 � ,,sccb%
#�sccb%=sccb%>>24
#��sccb%=0 �:=-1
#�=0
#�
#�ݤreadstring(p%)
#�2�a$:a$="":ȕ �a$<255 � ?p%>31 a$+=�?p%:p%+=1:�
$=a$
$
$ݤreadsysvar(a$)
$"� p%
$,Nș "OS_ReadVarVal",a$,blk%,80,0,0 � ,,a%:a$="":�p%=0�a%-1:a$+=�(blk%?p%):�
$6=a$
$@
$J��dummy
$T
�7:X=�
$^!� 'cos last PROC gets chopped
$h�
$r
$|J� ************** DEBUG SECTION - TO BE REMOVED  **********************
$�J� ************** DEBUG SECTION - TO BE REMOVED  **********************
$�J� ************** DEBUG SECTION - TO BE REMOVED  **********************
$�J� ************** DEBUG SECTION - TO BE REMOVED  **********************
$�
$���debuginit
$�� blk2% 256,stname% 20
$��
$�
$���listsprites
$�	� sp%
$��sp%=1�sparea%!4
$�1 ș "OS_SpriteOp",&10D,sparea%,stname%,20,sp%
$�  � �readstring(stname%);" ";
%�
%�
%
%&��debug
%0�debuginit
%:�testspeech
%D�PROCbluewordrect
%N�PROCpossprite
%X�PROCposspeechbox
%b
�PROCodds
%l�
%v
%�
��odds
%�?� walk%,step%,dirn%,posx%,posy%,gridx%,gridy%,movex%,movey%
%�
�7:X=�
%��
%�
%���testspeech
%��j%=0�14
%� ș"OS_Byte",21,9:�wait(50)
%�( ș"OS_Byte",112,2:ș"OS_Byte",113,1
%�) �18,0,0:�25,4,0;0;:�25,101,1278;958;
%� sayx%=500:sayy%=500
%�F ș "OS_SpriteOp",&134,butarea%,"reader",sayx%-42,sayy%,8,scale%,0
%�E �words(380,400,-1,3,0,0,�(j%)+"  "+say$(j%,2)+"    "+say$(j%,1))
& �scrcopy21
&< see%=1:do%=2:ș "OS_Byte",113,see%:ș "OS_Byte",112,do%
& �cachesound(say$(j%,1),1)
&  �
&*  ȗ mx%,my%,mbut%
&4  �mbut%=4 �
&>;   m$=say$(j%,2):m%=�m$:m$=�m$,�(m$)-2):lasttime%=�-100
&H   � 1,&17F,1,1
&R   �
&\:    m$=�m$,�(m$)-1):�24,sayx%;sayy%;sayx%+62;sayy%+48;
&f,    �18,0,0:�25,4,0;0;:�25,101,1278;958;
&pI    ș "OS_SpriteOp",&134,butarea%,"reader",sayx%-42,sayy%,8,scale%,0
&z    �m$>0�
&��     �(�m$,1))=1:ș "OS_SpriteOp",&134,butarea%,"m"+�m$,1),sayx%,sayy%,8,scale%,0:�:ș "OS_SpriteOp",&134,butarea%,"m"+�m$,1),sayx%,sayy%+24,8,scale%,0
&�	    �
&�    �26:�:� �>lasttime%+m%
&�U    see%=%100>>>see%:do%=%100>>>do%:Ȗ:ș "OS_Byte",113,see%:ș "OS_Byte",112,do%
&�    lasttime%=�
&�   � �(m$)=0
&�  �
&� � mbut%=1
&��
&�X=�
&��
&�
&���timesound
'2�cachesound("fxgrind",1):ttime%=�:� 1,&17F,1,1
'�:� �nosound
'
tttime%=�
'$� tttime%-ttime%
'.X=�
'8�
'B
'L��posspeechbox
'V;see%=1:do%=1:ș "OS_Byte",113,see%:ș "OS_Byte",112,do%
'`&�28,0,1,70,0:� 3:ȗ � 1:�mousefull
'j�
't ȗ mmx%,mmy%,mmbut%
'~" � mmx%-(mmx%�2),mmy%-(mmy%�4)
'�I �mmbut%=4:�speechbox(mmx%,mmy%,�stringsize("Hello")+80,108,0,0,0,-1)
'�: �mmbut%=2 �:�speechboxarr(sayw%(0)-68,0,1,0,mmy%,108)
'�; �mmbut%=1 �:�speechboxarr(0,sayw%(1)-108,2,0,mmx%,108)
'�� mmbut%=7
'�;see%=1:do%=2:ș "OS_Byte",113,see%:ș "OS_Byte",112,do%
'��26
'��
'�
'���possprite
'�;see%=1:do%=1:ș "OS_Byte",113,see%:ș "OS_Byte",112,do%
'�&�28,0,2,40,0:� 3:ȗ � 1:�mousefull
'��
( ȗ mmx%,mmy%,mmbut%
(
" � mmx%-(mmx%�2),mmy%-(mmy%�4)
(F �mmbut%=1:ș"OS_SpriteOp",&134,sparea%,"bed",mmx%,mmy%,8,scale%,0
(� mmbut%=4
((;see%=1:do%=2:ș "OS_Byte",113,see%:ș "OS_Byte",112,do%
(2�26
(<�
(F
(P��bluewordrect
(Z;see%=1:do%=1:ș "OS_Byte",113,see%:ș "OS_Byte",112,do%
(d3�28,0,2,40,0:� 3:ȗ � 1:�mousefull:ȗ � 500,600
(n�
(x ȗ mmx%,mmy%,mmbut%
(�" � mmx%-(mmx%�2),mmy%-(mmy%�4)
(�� mmbut%=4
(�;see%=1:do%=2:ș "OS_Byte",113,see%:ș "OS_Byte",112,do%
(�#�26:ș"OS_Byte",21,9:oldmx%=500
(��
(�
�
00000000  0d 00 0a 14 dd f2 70 75  6c 6c 5f 76 61 72 69 61  |......pull_varia|
00000010  62 6c 65 73 0d 00 14 16  61 64 64 6d 61 73 6b 25  |bles....addmask%|
00000020  3d 21 28 4b 25 2b 26 30  34 29 0d 00 1e 1b 63 6f  |=!(K%+&04)....co|
00000030  70 79 73 63 72 62 6c 6f  63 6b 25 3d 21 28 4b 25  |pyscrblock%=!(K%|
00000040  2b 26 30 38 29 0d 00 28  16 63 6f 70 79 73 63 72  |+&08)..(.copyscr|
00000050  25 3d 21 28 4b 25 2b 26  30 43 29 0d 00 32 14 66  |%=!(K%+&0C)..2.f|
00000060  6f 6e 74 73 25 3d 21 28  4b 25 2b 26 31 30 29 0d  |onts%=!(K%+&10).|
00000070  00 3c 16 6c 65 74 74 65  72 73 25 3d 21 28 4b 25  |.<.letters%=!(K%|
00000080  2b 26 31 34 29 0d 00 46  1c 63 6f 70 79 73 63 72  |+&14)..F.copyscr|
00000090  62 6c 6f 63 6b 70 25 3d  21 28 4b 25 2b 26 31 38  |blockp%=!(K%+&18|
000000a0  29 0d 00 50 16 65 6c 66  66 61 64 65 25 3d 21 28  |)..P.elffade%=!(|
000000b0  4b 25 2b 26 31 43 29 0d  00 5a 14 66 6f 63 75 73  |K%+&1C)..Z.focus|
000000c0  25 3d 21 28 4b 25 2b 26  32 30 29 0d 00 64 17 6d  |%=!(K%+&20)..d.m|
000000d0  65 72 67 65 73 63 72 25  3d 21 28 4b 25 2b 26 33  |ergescr%=!(K%+&3|
000000e0  30 29 0d 00 6e 18 62 6c  6f 77 75 70 73 63 72 25  |0)..n.blowupscr%|
000000f0  3d 21 28 4b 25 2b 26 33  34 29 0d 00 78 18 77 61  |=!(K%+&34)..x.wa|
00000100  74 65 72 66 61 6c 6c 25  3d 21 28 4b 25 2b 26 33  |terfall%=!(K%+&3|
00000110  38 29 0d 00 82 15 6d 61  73 6b 69 74 25 3d 21 28  |8)....maskit%=!(|
00000120  4b 25 2b 26 33 43 29 0d  00 8c 61 6d 73 63 72 65  |K%+&3C)...amscre|
00000130  65 6e 5f 6f 6e 65 25 3d  21 28 4b 25 2b 26 41 38  |en_one%=!(K%+&A8|
00000140  29 20 20 20 20 20 20 20  20 20 20 3a f4 20 66 69  |)          :. fi|
00000150  6e 64 20 74 68 65 20 6c  6f 63 61 74 69 6f 6e 20  |nd the location |
00000160  6f 66 20 73 63 72 65 65  6e 20 73 74 6f 72 65 20  |of screen store |
00000170  64 65 65 70 20 77 69 74  68 69 6e 20 66 61 64 65  |deep within fade|
00000180  20 72 6f 75 74 69 6e 65  0d 00 96 42 21 6d 73 63  | routine...B!msc|
00000190  72 65 65 6e 5f 6f 6e 65  25 3d 4b 25 21 26 43 30  |reen_one%=K%!&C0|
000001a0  20 20 20 20 20 20 20 20  20 20 20 20 3a f4 20 73  |            :. s|
000001b0  74 6f 72 65 20 73 63 72  65 65 6e 31 20 73 74 61  |tore screen1 sta|
000001c0  72 74 20 61 64 64 72 65  73 73 0d 00 a0 58 6d 73  |rt address...Xms|
000001d0  63 72 65 65 6e 5f 6f 6e  65 25 21 34 3d 4b 25 21  |creen_one%!4=K%!|
000001e0  26 43 34 20 20 20 20 20  20 20 20 20 20 20 3a f4  |&C4           :.|
000001f0  20 61 6e 64 20 73 63 72  65 65 6e 32 20 77 68 69  | and screen2 whi|
00000200  63 68 20 69 73 20 72 69  67 68 74 20 6e 65 78 74  |ch is right next|
00000210  20 74 6f 20 69 74 20 69  6e 20 74 68 65 20 63 6f  | to it in the co|
00000220  64 65 0d 00 aa 1d 73 63  72 65 65 6e 5f 6f 66 66  |de....screen_off|
00000230  73 65 74 73 25 3d 21 28  4b 25 2b 26 42 34 29 0d  |sets%=!(K%+&B4).|
00000240  00 b4 17 73 71 62 75 66  66 65 72 25 3d 21 28 4b  |...sqbuffer%=!(K|
00000250  25 2b 26 43 38 29 0d 00  be 15 73 71 66 69 6c 65  |%+&C8)....sqfile|
00000260  25 3d 21 28 4b 25 2b 26  44 30 29 0d 00 c8 16 73  |%=!(K%+&D0)....s|
00000270  70 61 72 65 61 32 25 3d  21 28 4b 25 2b 26 44 30  |parea2%=!(K%+&D0|
00000280  29 0d 00 d2 16 62 75 74  61 72 65 61 25 3d 21 28  |)....butarea%=!(|
00000290  4b 25 2b 26 44 34 29 0d  00 dc 15 73 70 61 72 65  |K%+&D4)....spare|
000002a0  61 25 3d 21 28 4b 25 2b  26 44 38 29 0d 00 e6 1b  |a%=!(K%+&D8)....|
000002b0  65 66 66 65 63 74 5f 73  74 61 72 74 25 3d 21 28  |effect_start%=!(|
000002c0  4b 25 2b 26 42 38 29 0d  00 f0 2b 63 67 61 76 67  |K%+&B8)...+cgavg|
000002d0  61 25 3d 21 28 4b 25 2b  26 46 30 29 20 20 20 20  |a%=!(K%+&F0)    |
000002e0  20 20 20 20 20 20 20 20  20 3a f4 20 31 20 6f 72  |         :. 1 or|
000002f0  20 32 0d 00 fa 2b 61 72  6d 33 25 3d 21 28 4b 25  | 2...+arm3%=!(K%|
00000300  2b 26 44 43 29 20 20 20  20 20 20 20 20 20 20 20  |+&DC)           |
00000310  20 20 20 20 3a f4 20 30  20 6f 72 20 31 0d 01 04  |    :. 0 or 1...|
00000320  04 0d 01 0e 17 73 70 61  72 65 61 32 73 69 7a 25  |.....sparea2siz%|
00000330  3d 33 36 2a 31 30 32 34  0d 01 18 17 62 75 74 61  |=36*1024....buta|
00000340  72 65 61 73 69 7a 25 3d  33 31 2a 31 30 32 34 0d  |reasiz%=31*1024.|
00000350  01 22 17 73 70 61 72 65  61 73 69 7a 25 3d 32 34  |.".spareasiz%=24|
00000360  30 2a 31 30 32 34 0d 01  2c 05 e1 0d 01 36 04 0d  |0*1024..,....6..|
00000370  01 40 0d dd f2 70 61 6c  65 74 74 65 0d 01 4a 40  |.@...palette..J@|
00000380  e3 69 25 3d 30 b8 31 35  3a ef 20 31 39 2c 69 25  |.i%=0.15:. 19,i%|
00000390  2c 31 36 2c 70 61 6c 65  74 25 28 69 25 2c 30 29  |,16,palet%(i%,0)|
000003a0  2c 70 61 6c 65 74 25 28  69 25 2c 31 29 2c 70 61  |,palet%(i%,1),pa|
000003b0  6c 65 74 25 28 69 25 2c  32 29 3a ed 0d 01 54 05  |let%(i%,2):...T.|
000003c0  e1 0d 01 5e 04 0d 01 68  12 dd f2 77 61 69 74 28  |...^...h...wait(|
000003d0  64 65 6c 61 79 25 29 0d  01 72 08 ea 20 61 25 0d  |delay%)..r.. a%.|
000003e0  01 7c 17 61 25 3d 91 3a  f5 fd 91 3e 3d 61 25 2b  |.|.a%=.:...>=a%+|
000003f0  64 65 6c 61 79 25 0d 01  86 05 e1 0d 01 90 04 0d  |delay%..........|
00000400  01 9a 2d dd f2 77 6f 72  64 73 28 41 25 2c 42 25  |..-..words(A%,B%|
00000410  2c 62 69 67 25 2c 45 25  2c 63 65 6e 74 72 65 25  |,big%,E%,centre%|
00000420  2c 6f 66 25 2c 77 6f 72  64 73 24 29 0d 01 a4 27  |,of%,words$)...'|
00000430  e7 62 69 67 25 3a 43 25  3d 33 32 30 3a 44 25 3d  |.big%:C%=320:D%=|
00000440  33 36 30 3a 8b 3a 43 25  3d 32 34 30 3a 44 25 3d  |360:.:C%=240:D%=|
00000450  32 37 30 0d 01 ae 2f e7  63 65 6e 74 72 65 25 3a  |270.../.centre%:|
00000460  41 25 2b 3d a8 28 28 6f  66 25 2d a4 73 74 72 69  |A%+=.((of%-.stri|
00000470  6e 67 73 69 7a 65 28 77  6f 72 64 73 24 29 29 2f  |ngsize(words$))/|
00000480  32 29 0d 01 b8 42 e3 6c  65 74 74 25 3d 31 b8 a9  |2)...B.lett%=1..|
00000490  28 77 6f 72 64 73 24 29  3a 3f 28 6c 65 74 74 65  |(words$):?(lette|
000004a0  72 73 25 2b 28 6c 65 74  74 25 2d 31 29 29 3d 97  |rs%+(lett%-1))=.|
000004b0  28 c1 77 6f 72 64 73 24  2c 6c 65 74 74 25 2c 31  |(.words$,lett%,1|
000004c0  29 29 3a ed 0d 01 c2 1d  3f 28 6c 65 74 74 65 72  |)):.....?(letter|
000004d0  73 25 2b a9 28 77 6f 72  64 73 24 29 29 3d 26 30  |s%+.(words$))=&0|
000004e0  44 0d 01 cc 0c d6 20 66  6f 6e 74 73 25 0d 01 d6  |D..... fonts%...|
000004f0  05 e1 0d 01 e0 04 0d 01  ea 14 dd f2 6c 69 62 5f  |............lib_|
00000500  69 6e 69 74 69 61 6c 69  73 65 0d 01 f4 9e f4 4f  |initialise.....O|
00000510  4e 45 52 52 4f 52 20 53  59 53 22 4f 53 5f 42 79  |NERROR SYS"OS_By|
00000520  74 65 22 2c 32 35 30 2c  30 2c 32 35 35 20 54 4f  |te",250,0,255 TO|
00000530  20 2c 73 63 72 25 3a 53  59 53 22 4f 53 5f 42 79  | ,scr%:SYS"OS_By|
00000540  74 65 22 2c 31 31 33 2c  73 63 72 25 3a 50 52 49  |te",113,scr%:PRI|
00000550  4e 54 20 52 45 50 4f 52  54 24 2b 22 20 28 49 6e  |NT REPORT$+" (In|
00000560  74 65 72 6e 61 6c 20 65  72 72 6f 72 20 63 6f 64  |ternal error cod|
00000570  65 20 22 2b 53 54 52 24  45 52 4c 2b 22 29 20 20  |e "+STR$ERL+")  |
00000580  73 70 72 69 74 65 3d 22  2b 64 65 62 75 67 24 2b  |sprite="+debug$+|
00000590  43 48 52 24 30 3a 78 3d  47 45 54 3a 50 52 4f 43  |CHR$0:x=GET:PROC|
000005a0  64 65 73 6b 5f 74 6f 70  0d 01 fe 9c f4 4f 4e 45  |desk_top.....ONE|
000005b0  52 52 4f 52 20 53 59 53  22 4f 53 5f 42 79 74 65  |RROR SYS"OS_Byte|
000005c0  22 2c 32 35 30 2c 30 2c  32 35 35 20 54 4f 20 2c  |",250,0,255 TO ,|
000005d0  73 63 72 25 3a 53 59 53  22 4f 53 5f 42 79 74 65  |scr%:SYS"OS_Byte|
000005e0  22 2c 31 31 33 2c 73 63  72 25 3a 50 52 49 4e 54  |",113,scr%:PRINT|
000005f0  20 52 45 50 4f 52 54 24  2b 22 20 28 49 6e 74 65  | REPORT$+" (Inte|
00000600  72 6e 61 6c 20 65 72 72  6f 72 20 63 6f 64 65 20  |rnal error code |
00000610  22 2b 53 54 52 24 45 52  4c 2b 22 29 20 20 4d 25  |"+STR$ERL+")  M%|
00000620  3d 22 2b 53 54 52 24 28  4d 25 29 2b 43 48 52 24  |="+STR$(M%)+CHR$|
00000630  30 3a 78 3d 47 45 54 3a  50 52 4f 43 64 65 73 6b  |0:x=GET:PROCdesk|
00000640  5f 74 6f 70 0d 02 08 10  ee 85 3a f2 64 65 73 6b  |_top......:.desk|
00000650  5f 74 6f 70 0d 02 12 0d  de 20 62 6c 6b 25 20 38  |_top..... blk% 8|
00000660  30 0d 02 1c 2f 6d 61 78  73 74 61 72 74 73 25 3d  |0.../maxstarts%=|
00000670  bb 28 a4 72 65 61 64 73  79 73 76 61 72 28 22 45  |.(.readsysvar("E|
00000680  6c 66 4b 24 6d 61 78 73  74 61 72 74 73 22 29 29  |lfK$maxstarts"))|
00000690  0d 02 26 17 de 20 6c 69  6e 6b 25 28 6d 61 78 73  |..&.. link%(maxs|
000006a0  74 61 72 74 73 25 29 0d  02 30 08 f7 20 2b 30 0d  |tarts%)..0.. +0.|
000006b0  02 3a 41 dc 20 31 30 31  30 2c 31 30 32 30 2c 31  |.:A. 1010,1020,1|
000006c0  30 33 30 2c 31 30 34 30  2c 31 30 35 30 2c 31 30  |030,1040,1050,10|
000006d0  36 30 2c 31 30 37 30 2c  31 30 38 30 2c 31 30 39  |60,1070,1080,109|
000006e0  30 2c 31 31 30 30 2c 31  31 31 30 2c 31 31 32 30  |0,1100,1110,1120|
000006f0  0d 02 44 21 e3 69 25 3d  31 b8 6d 61 78 73 74 61  |..D!.i%=1.maxsta|
00000700  72 74 73 25 3a f3 6c 69  6e 6b 25 28 69 25 29 3a  |rts%:.link%(i%):|
00000710  ed 0d 02 4e 47 e7 59 25  3d 30 3a c8 9b 20 22 3c  |...NG.Y%=0:.. "<|
00000720  45 6c 66 4b 24 63 68 61  69 6e 64 69 72 3e 2e 66  |ElfK$chaindir>.f|
00000730  6c 6f 70 70 79 6c 69 62  22 3a 8b 3a c8 9b 20 22  |loppylib":.:.. "|
00000740  3c 45 6c 66 4b 24 63 68  61 69 6e 64 69 72 3e 2e  |<ElfK$chaindir>.|
00000750  68 61 72 64 6c 69 62 22  0d 02 58 13 f2 70 75 6c  |hardlib"..X..pul|
00000760  6c 5f 76 61 72 69 61 62  6c 65 73 0d 02 62 04 0d  |l_variables..b..|
00000770  02 6c 40 f4 20 2a 2a 2a  2a 2a 2a 20 74 65 6d 70  |.l@. ****** temp|
00000780  20 72 65 64 75 63 74 69  6f 6e 20 6f 66 20 32 4b  | reduction of 2K|
00000790  20 74 6f 20 61 64 64 20  66 6f 72 20 70 72 69 6e  | to add for prin|
000007a0  74 69 6e 67 20 61 74 20  74 68 65 20 65 6e 64 0d  |ting at the end.|
000007b0  02 76 15 f4 73 70 61 72  65 61 73 69 7a 25 2d 3d  |.v..spareasiz%-=|
000007c0  32 30 34 38 0d 02 80 1e  f4 20 2a 2a 2a 2a 2a 2a  |2048..... ******|
000007d0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
000007e0  2a 2a 0d 02 8a 04 0d 02  94 12 de 20 70 61 6c 65  |**......... pale|
000007f0  74 25 28 31 35 2c 32 29  0d 02 9e 08 f7 20 2b 30  |t%(15,2)..... +0|
00000800  0d 02 a8 35 dc 20 26 46  46 2c 26 46 46 2c 26 46  |...5. &FF,&FF,&F|
00000810  46 2c 26 41 41 2c 26 41  41 2c 26 41 41 2c 26 37  |F,&AA,&AA,&AA,&7|
00000820  37 2c 26 37 37 2c 26 37  37 2c 26 30 30 2c 26 30  |7,&77,&77,&00,&0|
00000830  30 2c 26 30 30 0d 02 b2  35 dc 20 26 30 30 2c 26  |0,&00...5. &00,&|
00000840  30 30 2c 26 41 41 2c 26  30 30 2c 26 36 36 2c 26  |00,&AA,&00,&66,&|
00000850  46 46 2c 26 30 30 2c 26  43 43 2c 26 46 46 2c 26  |FF,&00,&CC,&FF,&|
00000860  46 46 2c 26 38 38 2c 26  30 30 0d 02 bc 35 dc 20  |FF,&88,&00...5. |
00000870  26 45 45 2c 26 30 30 2c  26 30 30 2c 26 46 46 2c  |&EE,&00,&00,&FF,|
00000880  26 46 46 2c 26 30 30 2c  26 39 39 2c 26 35 35 2c  |&FF,&00,&99,&55,|
00000890  26 30 30 2c 26 46 46 2c  26 43 43 2c 26 39 39 0d  |&00,&FF,&CC,&99.|
000008a0  02 c6 35 dc 20 26 30 30  2c 26 38 38 2c 26 31 31  |..5. &00,&88,&11|
000008b0  2c 26 30 30 2c 26 42 42  2c 26 30 30 2c 26 30 30  |,&00,&BB,&00,&00|
000008c0  2c 26 45 45 2c 26 32 32  2c 26 42 42 2c 26 37 37  |,&EE,&22,&BB,&77|
000008d0  2c 26 30 30 0d 02 d0 2b  e3 20 69 25 3d 30 20 b8  |,&00...+. i%=0 .|
000008e0  20 31 35 3a e3 6a 25 3d  30 b8 32 3a f3 20 70 61  | 15:.j%=0.2:. pa|
000008f0  6c 65 74 25 28 69 25 2c  6a 25 29 3a ed 3a ed 0d  |let%(i%,j%):.:..|
00000900  02 da 17 f2 70 61 6c 65  74 74 65 3a f2 69 6e 69  |....palette:.ini|
00000910  74 6d 6f 75 73 65 0d 02  e4 0d de 20 62 6c 6b 25  |tmouse..... blk%|
00000920  20 38 30 0d 02 ee 48 de  20 73 63 61 6c 65 25 20  | 80...H. scale% |
00000930  31 36 3a 21 73 63 61 6c  65 25 3d 31 36 3a 73 63  |16:!scale%=16:sc|
00000940  61 6c 65 25 21 34 3d 31  36 2a 28 4b 25 21 26 46  |ale%!4=16*(K%!&F|
00000950  30 29 3a 73 63 61 6c 65  25 21 38 3d 31 36 3a 73  |0):scale%!8=16:s|
00000960  63 61 6c 65 25 21 31 32  3d 31 36 0d 02 f8 0f 6d  |cale%!12=16....m|
00000970  61 78 61 6e 69 6d 25 3d  33 32 0d 03 02 1d 6d 61  |axanim%=32....ma|
00000980  78 62 6c 75 65 25 3d 38  30 3a f4 20 70 65 72 20  |xblue%=80:. per |
00000990  70 72 6f 67 72 61 6d 0d  03 0c 1d 6d 61 78 70 61  |program....maxpa|
000009a0  67 65 62 6c 75 65 25 3d  38 3a f4 20 70 65 72 20  |geblue%=8:. per |
000009b0  70 61 67 65 0d 03 16 91  de 20 6d 61 73 6b 73 70  |page..... masksp|
000009c0  24 28 34 39 29 2c 6d 61  73 6b 73 70 25 28 34 39  |$(49),masksp%(49|
000009d0  29 2c 61 6e 69 6d 74 69  6d 65 25 28 6d 61 78 61  |),animtime%(maxa|
000009e0  6e 69 6d 25 2d 31 29 2c  61 6e 69 6d 70 61 75 73  |nim%-1),animpaus|
000009f0  65 25 28 6d 61 78 61 6e  69 6d 25 2d 31 29 2c 62  |e%(maxanim%-1),b|
00000a00  6f 6f 6b 25 28 31 29 2c  62 6f 6f 6b 78 25 28 36  |ook%(1),bookx%(6|
00000a10  29 2c 63 68 24 28 33 29  2c 64 6f 6e 65 63 68 61  |),ch$(3),donecha|
00000a20  6e 67 65 25 28 6d 61 78  61 6e 69 6d 25 2d 31 29  |nge%(maxanim%-1)|
00000a30  2c 62 6b 79 6e 25 28 36  2c 31 29 2c 73 74 25 28  |,bkyn%(6,1),st%(|
00000a40  33 31 2c 34 29 0d 03 20  73 de 20 73 61 79 25 28  |31,4).. s. say%(|
00000a50  6d 61 78 62 6c 75 65 25  2d 31 2c 34 29 2c 73 61  |maxblue%-1,4),sa|
00000a60  79 24 28 6d 61 78 62 6c  75 65 25 2d 31 2c 32 29  |y$(maxblue%-1,2)|
00000a70  2c 73 61 79 77 25 28 36  29 2c 62 6c 77 6f 72 64  |,sayw%(6),blword|
00000a80  73 25 28 6d 61 78 70 61  67 65 62 6c 75 65 25 2d  |s%(maxpageblue%-|
00000a90  31 29 2c 65 6c 66 64 69  73 70 25 28 31 2c 38 29  |1),elfdisp%(1,8)|
00000aa0  2c 6f 6c 64 73 61 79 25  28 31 2c 33 29 2c 6f 6c  |,oldsay%(1,3),ol|
00000ab0  64 73 61 79 24 28 31 29  0d 03 2a 11 de 20 78 25  |dsay$(1)..*.. x%|
00000ac0  28 31 29 2c 79 25 28 31  29 0d 03 34 1b ef 20 32  |(1),y%(1)..4.. 2|
00000ad0  33 2c 31 37 2c 34 2c 31  2c 30 2c 30 2c 30 2c 30  |3,17,4,1,0,0,0,0|
00000ae0  2c 30 2c 30 0d 03 3e 0d  ef 20 32 33 2c 31 2c 30  |,0,0..>.. 23,1,0|
00000af0  7c 0d 03 48 1a de 20 69  6e 70 75 74 5f 64 69 73  ||..H.. input_dis|
00000b00  6b 5f 6e 61 6d 65 25 20  32 35 36 0d 03 52 32 de  |k_name% 256..R2.|
00000b10  20 70 64 72 65 63 74 25  20 31 36 2c 70 64 72 65  | pdrect% 16,pdre|
00000b20  63 74 32 25 20 31 36 2c  70 64 74 72 61 6e 73 25  |ct2% 16,pdtrans%|
00000b30  20 31 36 2c 70 64 70 6c  6f 74 25 20 38 0d 03 5c  | 16,pdplot% 8..\|
00000b40  27 de 20 70 73 63 61 6c  65 25 20 31 36 2c 63 74  |'. pscale% 16,ct|
00000b50  72 61 6e 73 25 20 32 35  36 2c 70 61 6c 74 61 62  |rans% 256,paltab|
00000b60  25 20 36 34 0d 03 66 04  0d 03 70 08 f7 20 2b 30  |% 64..f...p.. +0|
00000b70  0d 03 7a 17 dc 20 32 32  2c 33 32 2c 34 32 2c 35  |..z.. 22,32,42,5|
00000b80  32 2c 36 34 2c 37 38 0d  03 84 1a e3 6a 25 3d 31  |2,64,78.....j%=1|
00000b90  b8 36 3a f3 20 62 6f 6f  6b 78 25 28 6a 25 29 3a  |.6:. bookx%(j%):|
00000ba0  ed 0d 03 8e 08 f7 20 2b  30 0d 03 98 2f dc 20 31  |...... +0.../. 1|
00000bb0  34 2c 32 38 2c 32 34 2c  32 38 2c 33 34 2c 33 36  |4,28,24,28,34,36|
00000bc0  2c 34 34 2c 34 34 2c 35  34 2c 35 32 2c 36 36 2c  |,44,44,54,52,66,|
00000bd0  35 36 2c 38 30 2c 36 38  0d 03 a2 29 e3 6a 25 3d  |56,80,68...).j%=|
00000be0  30 b8 36 3a f3 20 62 6b  79 6e 25 28 6a 25 2c 30  |0.6:. bkyn%(j%,0|
00000bf0  29 3a f3 20 62 6b 79 6e  25 28 6a 25 2c 31 29 3a  |):. bkyn%(j%,1):|
00000c00  ed 0d 03 ac 08 f7 20 2b  30 0d 03 b6 69 dc 20 2d  |...... +0...i. -|
00000c10  34 2c 36 38 2c 31 2c 30  2c 38 2c 30 2c 32 34 2c  |4,68,1,0,8,0,24,|
00000c20  30 2c 34 2c 31 38 2c 32  34 2c 32 2c 36 2c 34 34  |0,4,18,24,2,6,44|
00000c30  2c 36 2c 31 36 2c 38 34  2c 30 2c 33 30 2c 35 36  |,6,16,84,0,30,56|
00000c40  2c 34 2c 34 32 2c 34 30  2c 32 2c 33 36 2c 32 30  |,4,42,40,2,36,20|
00000c50  2c 35 2c 35 38 2c 2d 38  2c 33 2c 36 38 2c 33 36  |,5,58,-8,3,68,36|
00000c60  2c 31 2c 36 34 2c 31 36  2c 37 2c 35 34 2c 36 34  |,1,64,16,7,54,64|
00000c70  2c 35 0d 03 c0 6a dc 20  33 38 2c 39 32 2c 33 2c  |,5...j. 38,92,3,|
00000c80  36 30 2c 38 30 2c 38 2c  39 34 2c 39 36 2c 34 2c  |60,80,8,94,96,4,|
00000c90  38 30 2c 37 32 2c 32 2c  31 30 30 2c 36 30 2c 36  |80,72,2,100,60,6|
00000ca0  2c 39 32 2c 33 32 2c 33  2c 38 30 2c 31 32 2c 37  |,92,32,3,80,12,7|
00000cb0  2c 39 36 2c 2d 34 2c 32  2c 31 32 34 2c 37 36 2c  |,96,-4,2,124,76,|
00000cc0  35 2c 31 31 38 2c 35 36  2c 33 2c 31 31 34 2c 32  |5,118,56,3,114,2|
00000cd0  38 2c 37 2c 31 34 30 2c  34 34 2c 34 0d 03 ca 43  |8,7,140,44,4...C|
00000ce0  dc 20 31 32 38 2c 31 36  2c 31 2c 31 35 34 2c 32  |. 128,16,1,154,2|
00000cf0  34 2c 36 2c 31 33 32 2c  2d 38 2c 32 2c 31 35 38  |4,6,132,-8,2,158|
00000d00  2c 30 2c 38 2c 2d 31 34  2c 33 32 2c 37 2c 2d 31  |,0,8,-14,32,7,-1|
00000d10  36 2c 2d 34 2c 33 2c 31  34 36 2c 36 38 2c 32 0d  |6,-4,3,146,68,2.|
00000d20  03 d4 0b 73 74 25 28 29  3d 30 0d 03 de 25 e3 6a  |...st%()=0...%.j|
00000d30  25 3d 30 b8 33 31 3a e3  6b 25 3d 30 b8 32 3a f3  |%=0.31:.k%=0.2:.|
00000d40  20 73 74 25 28 6a 25 2c  6b 25 29 3a ed 3a ed 0d  | st%(j%,k%):.:..|
00000d50  03 e8 08 f7 20 2b 30 0d  03 f2 23 dc 20 31 2c 33  |.... +0...#. 1,3|
00000d60  32 32 2c 36 34 30 2c 36  34 32 2c 30 2c 33 32 31  |22,640,642,0,321|
00000d70  2c 32 2c 33 32 30 2c 36  34 31 0d 03 fc 1d dc 20  |,2,320,641..... |
00000d80  31 2c 35 30 2c 39 36 2c  39 38 2c 30 2c 34 39 2c  |1,50,96,98,0,49,|
00000d90  32 2c 34 38 2c 39 37 0d  04 06 29 e3 6a 25 3d 30  |2,48,97...).j%=0|
00000da0  b8 31 3a e3 6b 25 3d 30  b8 38 3a f3 20 65 6c 66  |.1:.k%=0.8:. elf|
00000db0  64 69 73 70 25 28 6a 25  2c 6b 25 29 3a ed 3a ed  |disp%(j%,k%):.:.|
00000dc0  0d 04 10 08 f7 20 2b 30  0d 04 1a 26 dc 20 31 2c  |..... +0...&. 1,|
00000dd0  36 34 32 2c 31 32 38 30  2c 31 32 38 32 2c 30 2c  |642,1280,1282,0,|
00000de0  36 34 31 2c 32 2c 36 34  30 2c 31 32 38 31 0d 04  |641,2,640,1281..|
00000df0  24 2a e7 63 67 61 76 67  61 25 3d 32 8c 3a e3 6b  |$*.cgavga%=2.:.k|
00000e00  25 3d 30 b8 38 3a f3 20  65 6c 66 64 69 73 70 25  |%=0.8:. elfdisp%|
00000e10  28 30 2c 6b 25 29 3a ed  0d 04 2e 31 6d 79 25 3d  |(0,k%):....1my%=|
00000e20  57 25 80 26 46 46 46 46  3a 6d 78 25 3d 57 25 3e  |W%.&FFFF:mx%=W%>|
00000e30  3e 31 36 3a 6f 6c 64 6d  78 25 3d 6d 78 25 3a 6f  |>16:oldmx%=mx%:o|
00000e40  6c 64 6d 79 25 3d 6d 79  25 0d 04 38 60 62 6c 75  |ldmy%=my%..8`blu|
00000e50  65 77 6f 72 64 73 25 3d  30 3a 6f 6e 24 3d bd 28  |ewords%=0:on$=.(|
00000e60  31 38 29 2b bd 28 31 29  2b bd 28 bb 28 a4 72 65  |18)+.(1)+.(.(.re|
00000e70  61 64 73 79 73 76 61 72  28 22 45 6c 66 4b 24 77  |adsysvar("ElfK$w|
00000e80  6f 72 64 63 6f 6c 22 29  29 29 2b bd 28 30 29 3a  |ordcol")))+.(0):|
00000e90  6f 66 66 24 3d bd 28 31  38 29 2b bd 28 31 29 2b  |off$=.(18)+.(1)+|
00000ea0  bd 28 33 29 2b bd 28 30  29 0d 04 42 5c 75 73 75  |.(3)+.(0)..B\usu|
00000eb0  61 6c 70 6f 73 25 3d 2d  31 3a 73 6c 6f 77 25 3d  |alpos%=-1:slow%=|
00000ec0  30 3a 73 61 79 68 61 6e  64 25 3d 2d 31 3a 73 61  |0:sayhand%=-1:sa|
00000ed0  79 61 62 6f 76 65 25 3d  2d 31 3a 67 6f 6f 6e 71  |yabove%=-1:goonq|
00000ee0  25 3d 30 3a 79 6e 71 25  3d 30 3a 77 68 69 74 65  |%=0:ynq%=0:white|
00000ef0  62 67 25 3d 2d 31 3a 63  68 65 63 6b 6d 6f 75 73  |bg%=-1:checkmous|
00000f00  65 25 3d 2d 31 0d 04 4c  05 e1 0d 04 56 04 0d 04  |e%=-1..L....V...|
00000f10  60 4a dd f2 77 6f 72 64  73 5f 62 6f 78 28 62 6c  |`J..words_box(bl|
00000f20  75 65 25 2c 6c 69 73 74  24 2c 77 68 6f 24 2c 6c  |ue%,list$,who$,l|
00000f30  69 6e 65 31 24 2c 6c 69  6e 65 32 24 2c 62 78 25  |ine1$,line2$,bx%|
00000f40  2c 62 79 25 2c 61 72 72  25 2c 61 72 72 66 6c 69  |,by%,arr%,arrfli|
00000f50  70 25 2c 70 6f 73 25 29  0d 04 6a 10 ea 20 73 78  |p%,pos%)..j.. sx|
00000f60  25 2c 73 79 25 2c 6b 25  0d 04 74 23 73 78 25 3d  |%,sy%,k%..t#sx%=|
00000f70  a4 73 74 72 69 6e 67 73  69 7a 65 28 6c 69 6e 65  |.stringsize(line|
00000f80  31 24 29 3a 73 79 25 3d  31 30 38 0d 04 7e 11 e7  |1$):sy%=108..~..|
00000f90  6c 69 6e 65 32 24 3c 3e  22 22 20 8c 0d 04 88 23  |line2$<>"" ....#|
00000fa0  20 73 79 25 3d 31 36 30  3a 6b 25 3d a4 73 74 72  | sy%=160:k%=.str|
00000fb0  69 6e 67 73 69 7a 65 28  6c 69 6e 65 32 24 29 0d  |ingsize(line2$).|
00000fc0  04 92 13 20 e7 6b 25 3e  73 78 25 3a 73 78 25 3d  |... .k%>sx%:sx%=|
00000fd0  6b 25 0d 04 9c 05 cd 0d  04 a6 0c 73 78 25 2b 3d  |k%.........sx%+=|
00000fe0  31 32 30 0d 04 b0 26 f2  73 61 76 65 62 67 72 64  |120...&.savebgrd|
00000ff0  28 62 78 25 2c 62 79 25  2c 73 78 25 2c 73 79 25  |(bx%,by%,sx%,sy%|
00001000  2c 22 62 6f 78 62 67 22  29 0d 04 ba 30 e7 61 72  |,"boxbg")...0.ar|
00001010  72 25 3d 31 3a f2 73 61  76 65 62 67 72 64 28 62  |r%=1:.savebgrd(b|
00001020  78 25 2d 36 38 2c 70 6f  73 25 2c 37 32 2c 35 32  |x%-68,pos%,72,52|
00001030  2c 22 61 72 72 62 67 22  29 0d 04 c4 32 e7 61 72  |,"arrbg")...2.ar|
00001040  72 25 3d 32 3a f2 73 61  76 65 62 67 72 64 28 70  |r%=2:.savebgrd(p|
00001050  6f 73 25 2c 62 79 25 2d  31 30 38 2c 36 38 2c 31  |os%,by%-108,68,1|
00001060  31 32 2c 22 61 72 72 62  67 22 29 0d 04 ce 34 e7  |12,"arrbg")...4.|
00001070  61 72 72 25 3d 33 3a f2  73 61 76 65 62 67 72 64  |arr%=3:.savebgrd|
00001080  28 70 6f 73 25 2c 62 79  25 2b 73 79 25 2d 34 2c  |(pos%,by%+sy%-4,|
00001090  36 38 2c 31 31 32 2c 22  61 72 72 62 67 22 29 0d  |68,112,"arrbg").|
000010a0  04 d8 35 f2 73 70 65 65  63 68 62 6f 78 28 62 78  |..5.speechbox(bx|
000010b0  25 2c 62 79 25 2c 73 78  25 2c 73 79 25 2c 61 72  |%,by%,sx%,sy%,ar|
000010c0  72 25 2c 61 72 72 66 6c  69 70 25 2c 70 6f 73 25  |r%,arrflip%,pos%|
000010d0  2c 2d 31 29 0d 04 e2 36  f2 77 6f 72 64 73 5f 72  |,-1)...6.words_r|
000010e0  65 61 64 28 62 6c 75 65  25 2c 6c 69 73 74 24 29  |ead(blue%,list$)|
000010f0  3a f2 77 6f 72 64 73 5f  73 61 79 28 6c 69 6e 65  |:.words_say(line|
00001100  31 24 2c 6c 69 6e 65 32  24 29 0d 04 ec 05 e1 0d  |1$,line2$)......|
00001110  04 f6 04 0d 05 00 1d dd  f2 77 6f 72 64 73 5f 72  |.........words_r|
00001120  65 61 64 28 62 6c 75 65  25 2c 6c 69 73 74 24 29  |ead(blue%,list$)|
00001130  0d 05 0a 08 ea 20 6a 25  0d 05 14 14 62 6c 75 65  |..... j%....blue|
00001140  77 6f 72 64 73 25 3d 62  6c 75 65 25 0d 05 1e 0d  |words%=blue%....|
00001150  e7 62 6c 75 65 25 3e 30  8c 0d 05 28 41 20 e3 6a  |.blue%>0...(A .j|
00001160  25 3d 30 b8 62 6c 75 65  25 2d 31 3a 62 6c 77 6f  |%=0.blue%-1:blwo|
00001170  72 64 73 25 28 6a 25 29  3d bb 6c 69 73 74 24 3a  |rds%(j%)=.list$:|
00001180  6c 69 73 74 24 3d c2 6c  69 73 74 24 2c a9 28 6c  |list$=.list$,.(l|
00001190  69 73 74 24 29 2d 33 29  3a ed 0d 05 32 05 cd 0d  |ist$)-3):...2...|
000011a0  05 3c 05 e1 0d 05 46 04  0d 05 50 1e dd f2 77 6f  |.<....F...P...wo|
000011b0  72 64 73 5f 73 61 79 28  6c 69 6e 65 31 24 2c 6c  |rds_say(line1$,l|
000011c0  69 6e 65 32 24 29 0d 05  5a 08 ea 20 6a 25 0d 05  |ine2$)..Z.. j%..|
000011d0  64 0f e7 75 73 75 61 6c  70 6f 73 25 8c 0d 05 6e  |d..usualpos%...n|
000011e0  45 20 e7 6c 69 6e 65 32  24 3d 22 22 3a 6f 6c 64  |E .line2$="":old|
000011f0  73 61 79 25 28 30 2c 31  29 3d 34 30 3a 73 61 79  |say%(0,1)=40:say|
00001200  75 70 25 3d 34 30 3a 8b  3a 6f 6c 64 73 61 79 25  |up%=40:.:oldsay%|
00001210  28 30 2c 31 29 3d 39 36  3a 73 61 79 75 70 25 3d  |(0,1)=96:sayup%=|
00001220  36 30 0d 05 78 5e 20 f2  77 6f 72 64 73 28 32 34  |60..x^ .words(24|
00001230  30 2c 6f 6c 64 73 61 79  25 28 30 2c 31 29 2c 2d  |0,oldsay%(0,1),-|
00001240  31 2c 33 2c 2d 31 2c 38  32 30 2c 6c 69 6e 65 31  |1,3,-1,820,line1|
00001250  24 29 3a e7 6c 69 6e 65  32 24 3c 3e 22 22 3a f2  |$):.line2$<>"":.|
00001260  77 6f 72 64 73 28 32 34  30 2c 33 36 2c 2d 31 2c  |words(240,36,-1,|
00001270  33 2c 2d 31 2c 38 32 30  2c 6c 69 6e 65 32 24 29  |3,-1,820,line2$)|
00001280  0d 05 82 05 cc 0d 05 8c  45 20 e7 6c 69 6e 65 32  |........E .line2|
00001290  24 3d 22 22 3a 6f 6c 64  73 61 79 25 28 30 2c 31  |$="":oldsay%(0,1|
000012a0  29 3d 33 32 3a 73 61 79  75 70 25 3d 34 30 3a 8b  |)=32:sayup%=40:.|
000012b0  3a 6f 6c 64 73 61 79 25  28 30 2c 31 29 3d 38 38  |:oldsay%(0,1)=88|
000012c0  3a 73 61 79 75 70 25 3d  34 30 0d 05 96 16 20 6f  |:sayup%=40.... o|
000012d0  6c 64 73 61 79 25 28 30  2c 31 29 2b 3d 62 79 25  |ldsay%(0,1)+=by%|
000012e0  0d 05 a0 62 20 f2 77 6f  72 64 73 28 62 78 25 2c  |...b .words(bx%,|
000012f0  6f 6c 64 73 61 79 25 28  30 2c 31 29 2c 2d 31 2c  |oldsay%(0,1),-1,|
00001300  33 2c 2d 31 2c 73 78 25  2c 6c 69 6e 65 31 24 29  |3,-1,sx%,line1$)|
00001310  3a e7 6c 69 6e 65 32 24  3c 3e 22 22 3a f2 77 6f  |:.line2$<>"":.wo|
00001320  72 64 73 28 62 78 25 2c  62 79 25 2b 32 38 2c 2d  |rds(bx%,by%+28,-|
00001330  31 2c 33 2c 2d 31 2c 73  78 25 2c 6c 69 6e 65 32  |1,3,-1,sx%,line2|
00001340  24 29 0d 05 aa 05 cd 0d  05 b4 05 e1 0d 05 be 04  |$)..............|
00001350  0d 05 c8 0f dd f2 69 6e  69 74 6d 6f 75 73 65 0d  |......initmouse.|
00001360  05 d2 46 6d 62 6f 78 6c  65 25 3d 30 3a 6d 62 6f  |..Fmboxle%=0:mbo|
00001370  78 6c 6f 25 3d 30 3a 6d  62 6f 78 72 69 25 3d 31  |xlo%=0:mboxri%=1|
00001380  32 37 39 3a 6d 62 6f 78  68 69 25 3d 31 30 32 33  |279:mboxhi%=1023|
00001390  3a 6d 74 6f 78 25 3d 31  31 30 38 3a 6d 74 6f 79  |:mtox%=1108:mtoy|
000013a0  25 3d 33 32 34 0d 05 dc  05 e1 0d 05 e6 04 0d 05  |%=324...........|
000013b0  f0 0e dd f2 64 65 73 6b  5f 74 6f 70 0d 05 fa 16  |....desk_top....|
000013c0  e3 69 69 69 25 3d 31 b8  6d 61 78 73 74 61 72 74  |.iii%=1.maxstart|
000013d0  73 25 0d 06 04 1b e7 4c  25 3d 6c 69 6e 6b 25 28  |s%.....L%=link%(|
000013e0  69 69 69 25 29 3a 53 25  3d 69 69 69 25 0d 06 0e  |iii%):S%=iii%...|
000013f0  05 ed 0d 06 18 36 d8 3a  de 62 75 66 25 20 34 3a  |.....6.:.buf% 4:|
00001400  e3 69 25 3d 31 b8 31 36  3a c8 96 3a e3 63 25 3d  |.i%=1.16:..:.c%=|
00001410  30 b8 31 36 3a e7 63 25  3c 31 36 76 25 3d 31 36  |0.16:.c%<16v%=16|
00001420  20 8b 20 76 25 3d 32 34  0d 06 22 50 c8 99 22 4f  | . v%=24.."P.."O|
00001430  53 5f 52 65 61 64 50 61  6c 65 74 74 65 22 2c 63  |S_ReadPalette",c|
00001440  25 2c 76 25 20 b8 20 2c  2c 64 25 3a 21 62 75 66  |%,v% . ,,d%:!buf|
00001450  25 3d 64 25 3a e3 62 25  3d 31 b8 33 3a e7 62 75  |%=d%:.b%=1.3:.bu|
00001460  66 25 3f 62 25 3e 30 62  75 66 25 3f 62 25 2d 3d  |f%?b%>0buf%?b%-=|
00001470  31 36 3a ed 3a 8b 3a ed  0d 06 2c 25 ef 31 39 2c  |16:.:.:...,%.19,|
00001480  63 25 2c 76 25 2c 62 75  66 25 3f 31 2c 62 75 66  |c%,v%,buf%?1,buf|
00001490  25 3f 32 2c 62 75 66 25  3f 33 3a ed 2c 0d 06 36  |%?2,buf%?3:.,..6|
000014a0  21 d7 20 22 3c 45 6c 66  4b 24 63 68 61 69 6e 64  |!. "<ElfK$chaind|
000014b0  69 72 3e 2e 21 72 75 6e  69 6d 61 67 65 22 0d 06  |ir>.!runimage"..|
000014c0  40 05 fa 0d 06 4a 04 0d  06 54 38 dd f2 62 6f 6f  |@....J...T8..boo|
000014d0  6b 67 6f 6f 6e 28 62 6f  6f 6b 25 28 30 29 2c 62  |kgoon(book%(0),b|
000014e0  6f 6f 6b 25 28 31 29 2c  61 6e 69 6d 25 2c 63 6c  |ook%(1),anim%,cl|
000014f0  65 61 72 25 2c 66 61 64  65 74 65 78 74 25 29 0d  |ear%,fadetext%).|
00001500  06 5e 44 6f 62 6b 25 3d  2d 31 3a 6f 62 6b 66 6c  |.^Dobk%=-1:obkfl|
00001510  69 70 25 3d 2d 31 3a 62  6b 25 3d 30 3a 62 6b 66  |ip%=-1:bk%=0:bkf|
00001520  6c 69 70 25 3d 31 3a 62  6f 6f 6b 64 69 72 6e 25  |lip%=1:bookdirn%|
00001530  3d 31 3a 61 6e 69 6d 70  61 75 73 65 25 28 30 29  |=1:animpause%(0)|
00001540  3d 31 30 0d 06 68 31 f2  73 61 76 65 62 67 72 64  |=10..h1.savebgrd|
00001550  28 62 6f 6f 6b 25 28 30  29 2c 62 6f 6f 6b 25 28  |(book%(0),book%(|
00001560  31 29 2c 31 38 32 2c 31  34 38 2c 22 62 6f 6f 6b  |1),182,148,"book|
00001570  62 67 22 29 0d 06 72 3b  73 65 65 25 3d 31 3a 64  |bg")..r;see%=1:d|
00001580  6f 25 3d 32 3a c8 99 20  22 4f 53 5f 42 79 74 65  |o%=2:.. "OS_Byte|
00001590  22 2c 31 31 33 2c 73 65  65 25 3a c8 99 20 22 4f  |",113,see%:.. "O|
000015a0  53 5f 42 79 74 65 22 2c  31 31 32 2c 64 6f 25 0d  |S_Byte",112,do%.|
000015b0  06 7c 48 c8 99 22 4f 53  5f 53 70 72 69 74 65 4f  |.|H.."OS_SpriteO|
000015c0  70 22 2c 26 31 33 34 2c  62 75 74 61 72 65 61 25  |p",&134,butarea%|
000015d0  2c 22 62 6f 6f 6b 62 75  74 22 2c 62 6f 6f 6b 25  |,"bookbut",book%|
000015e0  28 30 29 2c 62 6f 6f 6b  25 28 31 29 2c 38 2c 73  |(0),book%(1),8,s|
000015f0  63 61 6c 65 25 2c 30 0d  06 86 3a f2 73 63 72 63  |cale%,0...:.scrc|
00001600  6f 70 79 62 6c 6f 63 6b  70 69 78 28 62 6f 6f 6b  |opyblockpix(book|
00001610  25 28 30 29 2c 62 6f 6f  6b 25 28 31 29 2c 31 38  |%(0),book%(1),18|
00001620  32 2c 31 34 38 2c 64 6f  25 2c 73 65 65 25 2c 30  |2,148,do%,see%,0|
00001630  29 0d 06 90 2b 67 6f 6f  6e 71 25 3d 2d 31 3a f2  |)...+goonq%=-1:.|
00001640  62 75 74 74 6f 6e 6c 6f  6f 70 28 61 6e 69 6d 25  |buttonloop(anim%|
00001650  2c 30 29 3a 67 6f 6f 6e  71 25 3d 30 0d 06 9a 0d  |,0):goonq%=0....|
00001660  f2 66 6c 69 70 62 6f 6f  6b 0d 06 a4 17 e7 63 6c  |.flipbook.....cl|
00001670  65 61 72 25 84 66 61 64  65 74 65 78 74 25 20 8c  |ear%.fadetext% .|
00001680  0d 06 ae 17 20 c8 99 20  22 4f 53 5f 42 79 74 65  |.... .. "OS_Byte|
00001690  22 2c 31 31 32 2c 32 0d  06 b8 46 20 e7 63 6c 65  |",112,2...F .cle|
000016a0  61 72 25 3a c8 99 22 4f  53 5f 53 70 72 69 74 65  |ar%:.."OS_Sprite|
000016b0  4f 70 22 2c 26 31 32 32  2c 73 70 61 72 65 61 25  |Op",&122,sparea%|
000016c0  2c 22 62 6f 6f 6b 62 67  22 2c 62 6f 6f 6b 25 28  |,"bookbg",book%(|
000016d0  30 29 2c 62 6f 6f 6b 25  28 31 29 2c 38 0d 06 c2  |0),book%(1),8...|
000016e0  35 20 e7 66 61 64 65 74  65 78 74 25 3a f2 63 6c  |5 .fadetext%:.cl|
000016f0  73 70 65 65 63 68 3a f2  6d 65 72 67 65 73 63 72  |speech:.mergescr|
00001700  32 31 28 34 29 3a 8b 3a  f2 73 63 72 63 6f 70 79  |21(4):.:.scrcopy|
00001710  32 31 0d 06 cc 05 cd 0d  06 d6 05 e1 0d 06 e0 04  |21..............|
00001720  0d 06 ea 34 dd f2 62 6d  79 6e 28 62 6f 6f 6b 25  |...4..bmyn(book%|
00001730  28 30 29 2c 62 6f 6f 6b  25 28 31 29 2c 61 6e 69  |(0),book%(1),ani|
00001740  6d 25 2c 63 6c 65 61 72  25 2c 66 61 64 65 74 65  |m%,clear%,fadete|
00001750  78 74 25 29 0d 06 f4 74  62 6d 25 3d 2d 31 3a 6f  |xt%)...tbm%=-1:o|
00001760  62 6d 25 3d 2d 32 3a 6f  6e 62 6d 70 6f 73 25 3d  |bm%=-2:onbmpos%=|
00001770  2d 32 3a 6e 62 6d 70 6f  73 25 3d 30 3a 6f 79 62  |-2:nbmpos%=0:oyb|
00001780  6d 70 6f 73 25 3d 2d 32  3a 79 62 6d 70 6f 73 25  |mpos%=-2:ybmpos%|
00001790  3d 30 3a 66 75 6c 6c 62  6d 25 3d 30 3a 62 6b 25  |=0:fullbm%=0:bk%|
000017a0  3d 30 3a 62 6b 66 6c 69  70 25 3d 31 3a 62 6f 6f  |=0:bkflip%=1:boo|
000017b0  6b 64 69 72 6e 25 3d 31  3a 61 6e 69 6d 70 61 75  |kdirn%=1:animpau|
000017c0  73 65 25 28 33 29 3d 31  0d 06 fe 31 f2 73 61 76  |se%(3)=1...1.sav|
000017d0  65 62 67 72 64 28 62 6f  6f 6b 25 28 30 29 2c 62  |ebgrd(book%(0),b|
000017e0  6f 6f 6b 25 28 31 29 2c  31 38 32 2c 31 38 34 2c  |ook%(1),182,184,|
000017f0  22 62 6f 6f 6b 62 67 22  29 0d 07 08 3b 73 65 65  |"bookbg")...;see|
00001800  25 3d 31 3a 64 6f 25 3d  32 3a c8 99 20 22 4f 53  |%=1:do%=2:.. "OS|
00001810  5f 42 79 74 65 22 2c 31  31 33 2c 73 65 65 25 3a  |_Byte",113,see%:|
00001820  c8 99 20 22 4f 53 5f 42  79 74 65 22 2c 31 31 32  |.. "OS_Byte",112|
00001830  2c 64 6f 25 0d 07 12 48  c8 99 22 4f 53 5f 53 70  |,do%...H.."OS_Sp|
00001840  72 69 74 65 4f 70 22 2c  26 31 33 34 2c 62 75 74  |riteOp",&134,but|
00001850  61 72 65 61 25 2c 22 62  6f 6f 6b 62 75 74 22 2c  |area%,"bookbut",|
00001860  62 6f 6f 6b 25 28 30 29  2c 62 6f 6f 6b 25 28 31  |book%(0),book%(1|
00001870  29 2c 38 2c 73 63 61 6c  65 25 2c 30 0d 07 1c 3a  |),8,scale%,0...:|
00001880  f2 73 63 72 63 6f 70 79  62 6c 6f 63 6b 70 69 78  |.scrcopyblockpix|
00001890  28 62 6f 6f 6b 25 28 30  29 2c 62 6f 6f 6b 25 28  |(book%(0),book%(|
000018a0  31 29 2c 31 38 32 2c 31  38 34 2c 64 6f 25 2c 73  |1),182,184,do%,s|
000018b0  65 65 25 2c 30 29 0d 07  26 27 79 6e 71 25 3d 2d  |ee%,0)..&'ynq%=-|
000018c0  31 3a f2 62 75 74 74 6f  6e 6c 6f 6f 70 28 61 6e  |1:.buttonloop(an|
000018d0  69 6d 25 2c 30 29 3a 79  6e 71 25 3d 30 0d 07 30  |im%,0):ynq%=0..0|
000018e0  19 e7 62 6b 66 6c 69 70  25 3d 2d 31 3a f2 66 6c  |..bkflip%=-1:.fl|
000018f0  69 70 62 6f 6f 6b 0d 07  3a 17 e7 63 6c 65 61 72  |ipbook..:..clear|
00001900  25 84 66 61 64 65 74 65  78 74 25 20 8c 0d 07 44  |%.fadetext% ...D|
00001910  17 20 c8 99 20 22 4f 53  5f 42 79 74 65 22 2c 31  |. .. "OS_Byte",1|
00001920  31 32 2c 32 0d 07 4e 46  20 e7 63 6c 65 61 72 25  |12,2..NF .clear%|
00001930  3a c8 99 22 4f 53 5f 53  70 72 69 74 65 4f 70 22  |:.."OS_SpriteOp"|
00001940  2c 26 31 32 32 2c 73 70  61 72 65 61 25 2c 22 62  |,&122,sparea%,"b|
00001950  6f 6f 6b 62 67 22 2c 62  6f 6f 6b 25 28 30 29 2c  |ookbg",book%(0),|
00001960  62 6f 6f 6b 25 28 31 29  2c 38 0d 07 58 35 20 e7  |book%(1),8..X5 .|
00001970  66 61 64 65 74 65 78 74  25 3a f2 63 6c 73 70 65  |fadetext%:.clspe|
00001980  65 63 68 3a f2 6d 65 72  67 65 73 63 72 32 31 28  |ech:.mergescr21(|
00001990  34 29 3a 8b 3a f2 73 63  72 63 6f 70 79 32 31 0d  |4):.:.scrcopy21.|
000019a0  07 62 05 cd 0d 07 6c 05  e1 0d 07 76 04 0d 07 80  |.b....l....v....|
000019b0  1d dd f2 62 75 74 74 6f  6e 6c 6f 6f 70 28 61 6e  |...buttonloop(an|
000019c0  69 6d 25 2c 65 78 69 74  25 29 0d 07 8a 2b f4 20  |im%,exit%)...+. |
000019d0  65 6e 74 65 72 20 6c 6f  6f 70 20 77 69 74 68 20  |enter loop with |
000019e0  62 6f 74 68 20 73 63 72  65 65 6e 73 20 74 68 65  |both screens the|
000019f0  20 73 61 6d 65 0d 07 94  0e f4 50 52 4f 43 64 65  | same.....PROCde|
00001a00  62 75 67 0d 07 9e 0b ea  20 74 25 2c 6b 25 0d 07  |bug..... t%,k%..|
00001a10  a8 83 f2 73 61 76 65 62  67 72 64 28 6f 6c 64 6d  |...savebgrd(oldm|
00001a20  78 25 2d 38 2c 6f 6c 64  6d 79 25 2d 31 30 34 2c  |x%-8,oldmy%-104,|
00001a30  31 31 38 2c 31 31 32 2c  22 68 30 62 67 31 22 29  |118,112,"h0bg1")|
00001a40  3a f2 73 61 76 65 62 67  72 64 28 6f 6c 64 6d 78  |:.savebgrd(oldmx|
00001a50  25 2d 38 2c 6f 6c 64 6d  79 25 2d 31 30 34 2c 31  |%-8,oldmy%-104,1|
00001a60  31 38 2c 31 31 32 2c 22  68 30 62 67 32 22 29 3a  |18,112,"h0bg2"):|
00001a70  78 25 28 29 3d 28 6f 6c  64 6d 78 25 2d 38 29 3a  |x%()=(oldmx%-8):|
00001a80  79 25 28 29 3d 28 6f 6c  64 6d 79 25 2d 31 30 34  |y%()=(oldmy%-104|
00001a90  29 0d 07 b2 32 63 68 6f  73 65 6e 25 3d 2d 31 3a  |)...2chosen%=-1:|
00001aa0  61 6e 69 6d 65 6e 64 25  3d 30 3a 74 25 3d 91 2d  |animend%=0:t%=.-|
00001ab0  31 30 30 30 3a 61 6e 69  6d 74 69 6d 65 25 28 29  |1000:animtime%()|
00001ac0  3d 74 25 0d 07 bc 5d c8  99 22 4f 53 5f 42 79 74  |=t%...].."OS_Byt|
00001ad0  65 22 2c 32 31 2c 39 3a  c8 97 20 c8 93 20 6d 62  |e",21,9:.. .. mb|
00001ae0  6f 78 6c 65 25 2c 6d 62  6f 78 6c 6f 25 2c 6d 62  |oxle%,mboxlo%,mb|
00001af0  6f 78 72 69 25 2d 6d 62  6f 78 6c 65 25 2c 6d 62  |oxri%-mboxle%,mb|
00001b00  6f 78 68 69 25 2d 6d 62  6f 78 6c 6f 25 3a c8 97  |oxhi%-mboxlo%:..|
00001b10  20 b8 20 6f 6c 64 6d 78  25 2c 6f 6c 64 6d 79 25  | . oldmx%,oldmy%|
00001b20  0d 07 c6 1c c8 99 22 4f  53 5f 42 79 74 65 22 2c  |......"OS_Byte",|
00001b30  32 31 2c 30 3a 6d 62 75  74 25 3d 30 0d 07 d0 05  |21,0:mbut%=0....|
00001b40  f5 0d 07 da 13 20 f2 63  68 65 63 6b 6b 65 79 65  |..... .checkkeye|
00001b50  76 65 6e 74 0d 07 e4 1d  20 e7 63 68 65 63 6b 6d  |vent.... .checkm|
00001b60  6f 75 73 65 25 3a f2 63  68 65 63 6b 6d 6f 75 73  |ouse%:.checkmous|
00001b70  65 0d 07 ee 30 20 e7 28  6d 62 75 74 25 3d 34 29  |e...0 .(mbut%=4)|
00001b80  80 28 62 6c 75 65 77 6f  72 64 73 25 3e 30 29 3a  |.(bluewords%>0):|
00001b90  f2 65 6c 66 66 61 64 65  28 a4 6f 6e 62 6c 75 65  |.elffade(.onblue|
00001ba0  29 0d 07 f8 45 20 c8 99  22 4f 53 5f 53 70 72 69  |)...E .."OS_Spri|
00001bb0  74 65 4f 70 22 2c 26 31  32 32 2c 73 70 61 72 65  |teOp",&122,spare|
00001bc0  61 25 2c 22 68 30 62 67  22 2b c3 28 64 6f 25 29  |a%,"h0bg"+.(do%)|
00001bd0  2c 78 25 28 64 6f 25 2d  31 29 2c 79 25 28 64 6f  |,x%(do%-1),y%(do|
00001be0  25 2d 31 29 2c 38 0d 08  02 22 20 64 6f 6e 65 63  |%-1),8..." donec|
00001bf0  68 61 6e 67 65 25 28 29  3d 30 3a f2 63 68 65 63  |hange%()=0:.chec|
00001c00  6b 61 6e 69 6d 61 74 65  0d 08 0c 15 20 e7 65 78  |kanimate.... .ex|
00001c10  69 74 25 3a f2 6c 6f 6f  70 65 78 69 74 0d 08 16  |it%:.loopexit...|
00001c20  12 20 f2 63 68 65 63 6b  61 6c 6c 64 6f 6e 65 0d  |. .checkalldone.|
00001c30  08 20 5b 20 78 25 28 64  6f 25 2d 31 29 3d 6d 78  |. [ x%(do%-1)=mx|
00001c40  25 2d 38 3a 79 25 28 64  6f 25 2d 31 29 3d 6d 79  |%-8:y%(do%-1)=my|
00001c50  25 2d 31 30 34 3a f2 73  61 76 65 62 67 72 64 28  |%-104:.savebgrd(|
00001c60  78 25 28 64 6f 25 2d 31  29 2c 79 25 28 64 6f 25  |x%(do%-1),y%(do%|
00001c70  2d 31 29 2c 31 31 38 2c  31 31 32 2c 22 68 30 62  |-1),118,112,"h0b|
00001c80  67 22 2b c3 28 64 6f 25  29 29 0d 08 2a 46 20 c8  |g"+.(do%))..*F .|
00001c90  99 22 4f 53 5f 53 70 72  69 74 65 4f 70 22 2c 26  |."OS_SpriteOp",&|
00001ca0  31 33 34 2c 62 75 74 61  72 65 61 25 2c 22 68 30  |134,butarea%,"h0|
00001cb0  22 2c 78 25 28 64 6f 25  2d 31 29 2c 79 25 28 64  |",x%(do%-1),y%(d|
00001cc0  6f 25 2d 31 29 2c 38 2c  73 63 61 6c 65 25 2c 30  |o%-1),8,scale%,0|
00001cd0  0d 08 34 52 20 73 65 65  25 3d 25 31 30 30 3e 3e  |..4R see%=%100>>|
00001ce0  3e 73 65 65 25 3a 64 6f  25 3d 25 31 30 30 3e 3e  |>see%:do%=%100>>|
00001cf0  3e 64 6f 25 3a c8 96 3a  c8 99 20 22 4f 53 5f 42  |>do%:..:.. "OS_B|
00001d00  79 74 65 22 2c 31 31 33  2c 73 65 65 25 3a c8 99  |yte",113,see%:..|
00001d10  20 22 4f 53 5f 42 79 74  65 22 2c 31 31 32 2c 64  | "OS_Byte",112,d|
00001d20  6f 25 0d 08 3e 15 20 e3  6b 25 3d 30 b8 6d 61 78  |o%..>. .k%=0.max|
00001d30  61 6e 69 6d 25 2d 31 0d  08 48 27 20 20 e7 61 6e  |anim%-1..H'  .an|
00001d40  69 6d 74 69 6d 65 25 28  6b 25 29 3d 2d 31 3a 61  |imtime%(k%)=-1:a|
00001d50  6e 69 6d 74 69 6d 65 25  28 6b 25 29 3d 91 0d 08  |nimtime%(k%)=...|
00001d60  52 06 20 ed 0d 08 5c 0d  fd 61 6e 69 6d 65 6e 64  |R. ...\..animend|
00001d70  25 0d 08 66 10 62 6c 75  65 77 6f 72 64 73 25 3d  |%..f.bluewords%=|
00001d80  30 0d 08 70 5d c8 99 20  22 4f 53 5f 42 79 74 65  |0..p].. "OS_Byte|
00001d90  22 2c 31 31 32 2c 73 65  65 25 3a c8 99 22 4f 53  |",112,see%:.."OS|
00001da0  5f 53 70 72 69 74 65 4f  70 22 2c 26 31 32 32 2c  |_SpriteOp",&122,|
00001db0  73 70 61 72 65 61 25 2c  22 68 30 62 67 22 2b c3  |sparea%,"h0bg"+.|
00001dc0  28 73 65 65 25 29 2c 78  25 28 73 65 65 25 2d 31  |(see%),x%(see%-1|
00001dd0  29 2c 79 25 28 73 65 65  25 2d 31 29 2c 38 0d 08  |),y%(see%-1),8..|
00001de0  7a 16 f2 73 63 72 63 6f  70 79 28 73 65 65 25 2c  |z..scrcopy(see%,|
00001df0  64 6f 25 29 0d 08 84 05  e1 0d 08 8e 04 0d 08 98  |do%)............|
00001e00  10 dd f2 63 68 65 63 6b  6d 6f 75 73 65 0d 08 a2  |...checkmouse...|
00001e10  11 ea 20 6a 25 2c 6b 25  2c 6c 25 2c 6d 25 0d 08  |.. j%,k%,l%,m%..|
00001e20  ac 20 c8 99 22 4f 53 5f  42 79 74 65 22 2c 31 32  |. .."OS_Byte",12|
00001e30  38 2c 32 34 36 20 b8 20  2c 6c 25 2c 6d 25 0d 08  |8,246 . ,l%,m%..|
00001e40  b6 21 6b 25 3d 28 6c 25  80 26 46 46 29 84 28 28  |.!k%=(l%.&FF).((|
00001e50  6d 25 80 26 46 46 46 46  46 46 29 3c 3c 38 29 0d  |m%.&FFFFFF)<<8).|
00001e60  08 c0 12 e3 6a 25 3d 31  b8 31 2b 28 6b 25 2f 39  |....j%=1.1+(k%/9|
00001e70  29 0d 08 ca 21 20 c8 99  22 4f 53 5f 4d 6f 75 73  |)...! .."OS_Mous|
00001e80  65 22 20 b8 20 6d 78 25  2c 6d 79 25 2c 6d 62 75  |e" . mx%,my%,mbu|
00001e90  74 25 0d 08 d4 1a 20 6f  6c 64 6d 78 25 3d 6d 78  |t%.... oldmx%=mx|
00001ea0  25 3a 6f 6c 64 6d 79 25  3d 6d 79 25 0d 08 de 23  |%:oldmy%=my%...#|
00001eb0  20 e7 28 6d 62 75 74 25  80 25 31 30 30 29 3d 25  | .(mbut%.%100)=%|
00001ec0  31 30 30 20 8c 3a 6d 62  75 74 25 3d 34 3a e1 0d  |100 .:mbut%=4:..|
00001ed0  08 e8 05 ed 0d 08 f2 05  e1 0d 08 fc 04 0d 09 06  |................|
00001ee0  13 dd f2 63 68 65 63 6b  6b 65 79 65 76 65 6e 74  |...checkkeyevent|
00001ef0  0d 09 10 16 ea 20 72 31  25 2c 72 32 25 2c 62 25  |..... r1%,r2%,b%|
00001f00  2c 6a 25 2c 66 25 0d 09  1a 12 63 68 65 63 6b 6d  |,j%,f%....checkm|
00001f10  6f 75 73 65 25 3d 2d 31  0d 09 24 22 c8 99 22 4f  |ouse%=-1..$".."O|
00001f20  53 5f 42 79 74 65 22 2c  31 32 38 2c 32 35 35 20  |S_Byte",128,255 |
00001f30  b8 20 2c 72 31 25 2c 72  32 25 0d 09 2e 23 62 25  |. ,r1%,r2%...#b%|
00001f40  3d 28 72 31 25 80 26 46  46 29 84 28 28 72 32 25  |=(r1%.&FF).((r2%|
00001f50  80 26 46 46 46 46 46 46  29 3c 3c 38 29 0d 09 38  |.&FFFFFF)<<8)..8|
00001f60  0a e7 62 25 3e 30 8c 0d  09 42 0d 20 e3 6a 25 3d  |..b%>0...B. .j%=|
00001f70  31 b8 62 25 0d 09 4c 22  20 20 c8 99 22 4f 53 5f  |1.b%..L"  .."OS_|
00001f80  42 79 74 65 22 2c 31 34  35 2c 30 20 b8 20 2c 2c  |Byte",145,0 . ,,|
00001f90  72 32 25 3b 66 25 0d 09  56 15 20 20 e7 28 66 25  |r2%;f%..V.  .(f%|
00001fa0  80 25 31 30 29 3d 25 30  30 20 8c 0d 09 60 4c f4  |.%10)=%00 ...`L.|
00001fb0  20 20 20 49 46 72 32 25  3d 31 39 3a 53 59 53 22  |   IFr2%=19:SYS"|
00001fc0  4f 53 5f 42 79 74 65 22  2c 32 31 2c 30 3a 50 52  |OS_Byte",21,0:PR|
00001fd0  4f 43 73 63 72 65 65 6e  5f 73 61 76 65 3a 53 59  |OCscreen_save:SY|
00001fe0  53 22 4f 53 5f 42 79 74  65 22 2c 32 31 2c 30 3a  |S"OS_Byte",21,0:|
00001ff0  45 4e 44 50 52 4f 43 0d  09 6a 48 f4 20 20 20 49  |ENDPROC..jH.   I|
00002000  46 72 32 25 3d 31 36 3a  53 59 53 22 4f 53 5f 42  |Fr2%=16:SYS"OS_B|
00002010  79 74 65 22 2c 32 31 2c  30 3a 50 52 4f 43 70 72  |yte",21,0:PROCpr|
00002020  69 6e 74 65 72 3a 53 59  53 22 4f 53 5f 42 79 74  |inter:SYS"OS_Byt|
00002030  65 22 2c 32 31 2c 30 3a  45 4e 44 50 52 4f 43 0d  |e",21,0:ENDPROC.|
00002040  09 74 0f 20 20 20 e7 67  6f 6f 6e 71 25 8c 0d 09  |.t.   .goonq%...|
00002050  7e 92 20 20 20 20 e7 72  32 25 3d 33 32 20 8c 3a  |~.    .r2%=32 .:|
00002060  6d 62 75 74 25 3d 34 3a  6d 78 25 3d 62 6f 6f 6b  |mbut%=4:mx%=book|
00002070  25 28 30 29 2b 38 30 3a  6f 6c 64 6d 78 25 3d 6d  |%(0)+80:oldmx%=m|
00002080  78 25 3a 6d 79 25 3d 62  6f 6f 6b 25 28 31 29 2b  |x%:my%=book%(1)+|
00002090  36 30 3a 6f 6c 64 6d 79  25 3d 6d 79 25 3a c8 97  |60:oldmy%=my%:..|
000020a0  20 b8 20 6d 78 25 2c 6d  79 25 3a 63 68 65 63 6b  | . mx%,my%:check|
000020b0  6d 6f 75 73 65 25 3d 30  3a 63 68 6f 73 65 6e 25  |mouse%=0:chosen%|
000020c0  3d 30 3a 61 6e 69 6d 70  61 75 73 65 25 28 30 29  |=0:animpause%(0)|
000020d0  3d 34 3a 62 6f 6f 6b 64  69 72 6e 25 3d 31 3a e1  |=4:bookdirn%=1:.|
000020e0  0d 09 88 08 20 20 20 cd  0d 09 92 0d 20 20 20 e7  |....   .....   .|
000020f0  79 6e 71 25 8c 0d 09 9c  a5 20 20 20 20 e7 28 72  |ynq%.....    .(r|
00002100  32 25 3d 31 32 31 29 84  28 72 32 25 3d 38 39 29  |2%=121).(r2%=89)|
00002110  20 8c 3a 6d 62 75 74 25  3d 34 3a 6d 78 25 3d 62  | .:mbut%=4:mx%=b|
00002120  6f 6f 6b 25 28 30 29 2b  31 34 30 3a 6f 6c 64 6d  |ook%(0)+140:oldm|
00002130  78 25 3d 6d 78 25 3a 6d  79 25 3d 62 6f 6f 6b 25  |x%=mx%:my%=book%|
00002140  28 31 29 2b 36 30 3a 6f  6c 64 6d 79 25 3d 6d 79  |(1)+60:oldmy%=my|
00002150  25 3a c8 97 20 b8 20 6d  78 25 2c 6d 79 25 3a 63  |%:.. . mx%,my%:c|
00002160  68 65 63 6b 6d 6f 75 73  65 25 3d 30 3a 63 68 6f  |heckmouse%=0:cho|
00002170  73 65 6e 25 3d 31 3a 62  6d 25 3d 31 3a 61 6e 69  |sen%=1:bm%=1:ani|
00002180  6d 70 61 75 73 65 25 28  32 29 3d 34 3a 62 6f 6f  |mpause%(2)=4:boo|
00002190  6b 64 69 72 6e 25 3d 31  3a e1 0d 09 a6 af 20 20  |kdirn%=1:.....  |
000021a0  20 20 e7 28 72 32 25 3d  31 31 30 29 84 28 72 32  |  .(r2%=110).(r2|
000021b0  25 3d 37 38 29 20 8c 3a  6d 62 75 74 25 3d 34 3a  |%=78) .:mbut%=4:|
000021c0  6d 78 25 3d 62 6f 6f 6b  25 28 30 29 2b 36 30 3a  |mx%=book%(0)+60:|
000021d0  6f 6c 64 6d 78 25 3d 6d  78 25 3a 6d 79 25 3d 62  |oldmx%=mx%:my%=b|
000021e0  6f 6f 6b 25 28 31 29 2b  36 30 3a 6f 6c 64 6d 79  |ook%(1)+60:oldmy|
000021f0  25 3d 6d 79 25 3a c8 97  20 b8 20 6d 78 25 2c 6d  |%=my%:.. . mx%,m|
00002200  79 25 3a 63 68 65 63 6b  6d 6f 75 73 65 25 3d 30  |y%:checkmouse%=0|
00002210  3a 63 68 6f 73 65 6e 25  3d 30 3a 62 6d 25 3d 30  |:chosen%=0:bm%=0|
00002220  3a 61 6e 69 6d 70 61 75  73 65 25 28 32 29 3d 34  |:animpause%(2)=4|
00002230  3a 62 6f 6f 6b 64 69 72  6e 25 3d 2d 31 3a f2 66  |:bookdirn%=-1:.f|
00002240  6c 69 70 62 6f 6f 6b 3a  e1 0d 09 b0 08 20 20 20  |lipbook:.....   |
00002250  cd 0d 09 ba 07 20 20 cd  0d 09 c4 06 20 ed 0d 09  |.....  ..... ...|
00002260  ce 05 cd 0d 09 d8 05 e1  0d 09 e2 04 0d 09 ec 12  |................|
00002270  dd f2 63 68 65 63 6b 61  6c 6c 64 6f 6e 65 0d 09  |..checkalldone..|
00002280  f6 08 ea 20 6a 25 0d 0a  00 14 e3 6a 25 3d 30 b8  |... j%.....j%=0.|
00002290  6d 61 78 61 6e 69 6d 25  2d 31 0d 0a 0a 43 20 e7  |maxanim%-1...C .|
000022a0  28 28 61 6e 69 6d 25 3e  3e 3e 6a 25 29 80 26 30  |((anim%>>>j%).&0|
000022b0  31 29 3d 26 30 31 20 8c  3a e7 ac 64 6f 6e 65 63  |1)=&01 .:..donec|
000022c0  68 61 6e 67 65 25 28 6a  25 29 3a f2 61 6e 69 6d  |hange%(j%):.anim|
000022d0  63 6f 70 79 62 6c 6f 63  6b 28 6a 25 29 0d 0a 14  |copyblock(j%)...|
000022e0  05 ed 0d 0a 1e 05 e1 0d  0a 28 04 0d 0a 32 17 dd  |.........(...2..|
000022f0  f2 61 6e 69 6d 63 6f 70  79 62 6c 6f 63 6b 28 6a  |.animcopyblock(j|
00002300  25 29 0d 0a 3c 0b c8 8e  20 6a 25 20 ca 0d 0a 46  |%)..<... j% ...F|
00002310  40 20 c9 20 30 3a f2 73  63 72 63 6f 70 79 62 6c  |@ . 0:.scrcopybl|
00002320  6f 63 6b 70 69 78 28 62  6f 6f 6b 25 28 30 29 2c  |ockpix(book%(0),|
00002330  62 6f 6f 6b 25 28 31 29  2c 31 38 32 2c 31 34 38  |book%(1),182,148|
00002340  2c 73 65 65 25 2c 64 6f  25 2c 2d 31 29 0d 0a 50  |,see%,do%,-1)..P|
00002350  a6 20 c9 20 31 3a e7 63  68 25 3c 3d 32 3a f2 73  |. . 1:.ch%<=2:.s|
00002360  63 72 63 6f 70 79 62 6c  6f 63 6b 70 69 78 28 62  |crcopyblockpix(b|
00002370  6f 6f 6b 25 28 30 29 2c  62 6f 6f 6b 25 28 31 29  |ook%(0),book%(1)|
00002380  2c 31 34 34 2b 28 6c 65  6e 62 6d 25 2a 32 29 2c  |,144+(lenbm%*2),|
00002390  31 34 38 2c 73 65 65 25  2c 64 6f 25 2c 2d 31 29  |148,see%,do%,-1)|
000023a0  3a 8b 3a f2 73 63 72 63  6f 70 79 62 6c 6f 63 6b  |:.:.scrcopyblock|
000023b0  70 69 78 28 62 6f 6f 6b  25 28 30 29 2b 33 30 2d  |pix(book%(0)+30-|
000023c0  28 6c 65 6e 62 6d 25 2a  32 29 2c 62 6f 6f 6b 25  |(lenbm%*2),book%|
000023d0  28 31 29 2c 31 32 30 2b  28 6c 65 6e 62 6d 25 2a  |(1),120+(lenbm%*|
000023e0  34 29 2c 31 34 38 2c 73  65 65 25 2c 64 6f 25 2c  |4),148,see%,do%,|
000023f0  2d 31 29 0d 0a 5a 40 20  c9 20 33 3a f2 73 63 72  |-1)..Z@ . 3:.scr|
00002400  63 6f 70 79 62 6c 6f 63  6b 70 69 78 28 62 6f 6f  |copyblockpix(boo|
00002410  6b 25 28 30 29 2c 62 6f  6f 6b 25 28 31 29 2c 31  |k%(0),book%(1),1|
00002420  38 32 2c 31 38 34 2c 73  65 65 25 2c 64 6f 25 2c  |82,184,see%,do%,|
00002430  2d 31 29 0d 0a 64 18 20  7f 3a f2 73 70 65 63 69  |-1)..d. .:.speci|
00002440  66 69 63 63 6f 70 79 28  6a 25 29 0d 0a 6e 05 cb  |ficcopy(j%)..n..|
00002450  0d 0a 78 05 e1 0d 0a 82  04 0d 0a 8c 12 dd f2 63  |..x............c|
00002460  68 65 63 6b 61 6e 69 6d  61 74 65 0d 0a 96 08 ea  |heckanimate.....|
00002470  20 6a 25 0d 0a a0 14 e3  6a 25 3d 30 b8 6d 61 78  | j%.....j%=0.max|
00002480  61 6e 69 6d 25 2d 31 0d  0a aa 29 20 e7 28 28 61  |anim%-1...) .((a|
00002490  6e 69 6d 25 3e 3e 3e 6a  25 29 80 26 30 31 29 3d  |nim%>>>j%).&01)=|
000024a0  26 30 31 3a f2 61 6e 69  6d 61 74 65 28 6a 25 29  |&01:.animate(j%)|
000024b0  0d 0a b4 05 ed 0d 0a be  05 e1 0d 0a c8 04 0d 0a  |................|
000024c0  d2 11 dd f2 61 6e 69 6d  61 74 65 28 6a 25 29 0d  |....animate(j%).|
000024d0  0a dc 28 e7 91 3e 3d 28  61 6e 69 6d 74 69 6d 65  |..(..>=(animtime|
000024e0  25 28 6a 25 29 2b 61 6e  69 6d 70 61 75 73 65 25  |%(j%)+animpause%|
000024f0  28 6a 25 29 29 20 8c 0d  0a e6 0c 20 c8 8e 20 6a  |(j%)) ..... .. j|
00002500  25 20 ca 0d 0a f0 17 20  20 c9 20 30 3a 20 e7 63  |% .....  . 0: .c|
00002510  68 6f 73 65 6e 25 3e 3d  30 8c 0d 0a fa 1a 20 20  |hosen%>=0.....  |
00002520  20 20 20 20 20 20 20 20  20 62 6f 6f 6b 64 69 72  |         bookdir|
00002530  6e 25 3d 31 0d 0b 04 0f  20 20 20 20 20 20 20 20  |n%=1....        |
00002540  20 20 cc 0d 0b 0e 19 20  20 20 20 20 20 20 20 20  |  .....         |
00002550  20 20 e7 a4 6f 6e 62 6f  6f 6b 20 8c 0d 0b 18 19  |  ..onbook .....|
00002560  20 20 20 20 20 20 20 20  20 20 20 20 e7 6d 62 75  |            .mbu|
00002570  74 25 3d 34 8c 0d 0b 22  36 20 20 20 20 20 20 20  |t%=4..."6       |
00002580  20 20 20 20 20 20 63 68  6f 73 65 6e 25 3d 30 3a  |      chosen%=0:|
00002590  61 6e 69 6d 70 61 75 73  65 25 28 30 29 3d 34 3a  |animpause%(0)=4:|
000025a0  62 6f 6f 6b 64 69 72 6e  25 3d 31 0d 0b 2c 11 20  |bookdirn%=1..,. |
000025b0  20 20 20 20 20 20 20 20  20 20 20 cc 0d 0b 36 23  |           ...6#|
000025c0  20 20 20 20 20 20 20 20  20 20 20 20 20 e7 62 6b  |             .bk|
000025d0  25 3c 35 3a 62 6f 6f 6b  64 69 72 6e 25 3d 31 0d  |%<5:bookdirn%=1.|
000025e0  0b 40 31 20 20 20 20 20  20 20 20 20 20 20 20 20  |.@1             |
000025f0  e7 28 62 6b 25 3d 35 29  80 28 62 6b 66 6c 69 70  |.(bk%=5).(bkflip|
00002600  25 3d 31 29 3a 62 6f 6f  6b 64 69 72 6e 25 3d 31  |%=1):bookdirn%=1|
00002610  0d 0b 4a 33 20 20 20 20  20 20 20 20 20 20 20 20  |..J3            |
00002620  20 e7 28 62 6b 25 3d 35  29 80 28 62 6b 66 6c 69  | .(bk%=5).(bkfli|
00002630  70 25 3d 2d 31 29 3a 62  6f 6f 6b 64 69 72 6e 25  |p%=-1):bookdirn%|
00002640  3d 2d 31 0d 0b 54 11 20  20 20 20 20 20 20 20 20  |=-1..T.         |
00002650  20 20 20 cd 0d 0b 5e 10  20 20 20 20 20 20 20 20  |   ...^.        |
00002660  20 20 20 cc 0d 0b 68 1c  20 20 20 20 20 20 20 20  |   ...h.        |
00002670  20 20 20 20 62 6f 6f 6b  64 69 72 6e 25 3d 2d 31  |    bookdirn%=-1|
00002680  0d 0b 72 10 20 20 20 20  20 20 20 20 20 20 20 cd  |..r.           .|
00002690  0d 0b 7c 0f 20 20 20 20  20 20 20 20 20 20 cd 0d  |..|.          ..|
000026a0  0b 86 53 20 20 20 20 20  20 20 20 20 20 e7 28 62  |..S          .(b|
000026b0  6b 25 3d 36 29 80 28 28  62 6f 6f 6b 64 69 72 6e  |k%=6).((bookdirn|
000026c0  25 2a 62 6b 66 6c 69 70  25 29 3d 31 29 3a f2 66  |%*bkflip%)=1):.f|
000026d0  6c 69 70 62 6f 6f 6b 3a  8b 3a 62 6b 25 2b 3d 28  |lipbook:.:bk%+=(|
000026e0  62 6f 6f 6b 64 69 72 6e  25 2a 62 6b 66 6c 69 70  |bookdirn%*bkflip|
000026f0  25 29 0d 0b 90 3c 20 20  20 20 20 20 20 20 20 20  |%)...<          |
00002700  e7 28 63 68 6f 73 65 6e  25 3e 3d 30 29 80 28 62  |.(chosen%>=0).(b|
00002710  6b 66 6c 69 70 25 3d 2d  31 29 80 28 62 6b 25 3d  |kflip%=-1).(bk%=|
00002720  30 29 3a 61 6e 69 6d 65  6e 64 25 3d 2d 31 0d 0b  |0):animend%=-1..|
00002730  9a 1a 20 20 20 20 20 20  20 20 20 20 e7 62 6b 25  |..          .bk%|
00002740  3c 30 3a 62 6b 25 3d 30  0d 0b a4 55 20 20 20 20  |<0:bk%=0...U    |
00002750  20 20 20 20 20 20 e7 28  62 6b 25 3c 3e 6f 62 6b  |      .(bk%<>obk|
00002760  25 29 84 28 62 6b 66 6c  69 70 25 3c 3e 6f 62 6b  |%).(bkflip%<>obk|
00002770  66 6c 69 70 25 29 3a f2  70 6c 6f 74 62 6f 6f 6b  |flip%):.plotbook|
00002780  28 30 29 3a 6f 62 6b 25  3d 62 6b 25 3a 6f 62 6b  |(0):obk%=bk%:obk|
00002790  66 6c 69 70 25 3d 62 6b  66 6c 69 70 25 0d 0b ae  |flip%=bkflip%...|
000027a0  17 20 20 c9 20 33 3a 20  e7 63 68 6f 73 65 6e 25  |.  . 3: .chosen%|
000027b0  3c 30 20 8c 0d 0b b8 19  20 20 20 20 20 20 20 20  |<0 .....        |
000027c0  20 20 20 e7 a4 6f 6e 62  6f 6f 6b 20 8c 0d 0b c2  |   ..onbook ....|
000027d0  30 20 20 20 20 20 20 20  20 20 20 20 20 e7 6d 78  |0            .mx|
000027e0  25 3c 28 62 6f 6f 6b 25  28 30 29 2b 39 32 29 3a  |%<(book%(0)+92):|
000027f0  62 6d 25 3d 30 3a 8b 3a  62 6d 25 3d 31 0d 0b cc  |bm%=0:.:bm%=1...|
00002800  10 20 20 20 20 20 20 20  20 20 20 20 cc 0d 0b d6  |.           ....|
00002810  16 20 20 20 20 20 20 20  20 20 20 20 20 62 6d 25  |.            bm%|
00002820  3d 2d 31 0d 0b e0 10 20  20 20 20 20 20 20 20 20  |=-1....         |
00002830  20 20 cd 0d 0b ea 18 20  20 20 20 20 20 20 20 20  |  .....         |
00002840  20 20 e7 62 6d 25 3e 3d  30 20 8c 0d 0b f4 1a 20  |  .bm%>=0 ..... |
00002850  20 20 20 20 20 20 20 20  20 20 20 e7 6d 62 75 74  |           .mbut|
00002860  25 3d 34 20 8c 0d 0b fe  2c 20 20 20 20 20 20 20  |%=4 ....,       |
00002870  20 20 20 20 20 20 63 68  6f 73 65 6e 25 3d 62 6d  |      chosen%=bm|
00002880  25 3a 61 6e 69 6d 70 61  75 73 65 25 28 32 29 3d  |%:animpause%(2)=|
00002890  34 0d 0c 08 40 20 20 20  20 20 20 20 20 20 20 20  |4...@           |
000028a0  20 20 e7 63 68 6f 73 65  6e 25 3d 31 3a 62 6f 6f  |  .chosen%=1:boo|
000028b0  6b 64 69 72 6e 25 3d 31  3a 8b 3a 62 6f 6f 6b 64  |kdirn%=1:.:bookd|
000028c0  69 72 6e 25 3d 2d 31 3a  f2 66 6c 69 70 62 6f 6f  |irn%=-1:.flipboo|
000028d0  6b 0d 0c 12 11 20 20 20  20 20 20 20 20 20 20 20  |k....           |
000028e0  20 cd 0d 0c 1c 10 20 20  20 20 20 20 20 20 20 20  | .....          |
000028f0  20 cd 0d 0c 26 31 20 20  20 20 20 20 20 20 20 20  | ...&1          |
00002900  20 e7 6f 62 6d 25 3c 3e  62 6d 25 20 8c 3a f2 70  | .obm%<>bm% .:.p|
00002910  6c 6f 74 62 6f 6f 6b 28  33 29 3a 6f 62 6d 25 3d  |lotbook(3):obm%=|
00002920  62 6d 25 0d 0c 30 0f 20  20 20 20 20 20 20 20 20  |bm%..0.         |
00002930  20 cc 0d 0c 3a 5f 20 20  20 20 20 20 20 20 20 20  | ...:_          |
00002940  20 e7 28 28 63 68 6f 73  65 6e 25 3d 30 29 80 28  | .((chosen%=0).(|
00002950  6e 62 6d 70 6f 73 25 3d  34 30 29 80 28 79 62 6d  |nbmpos%=40).(ybm|
00002960  70 6f 73 25 3d 30 29 29  84 28 28 63 68 6f 73 65  |pos%=0)).((chose|
00002970  6e 25 3d 31 29 80 28 79  62 6d 70 6f 73 25 3d 34  |n%=1).(ybmpos%=4|
00002980  30 29 80 28 6e 62 6d 70  6f 73 25 3d 30 29 29 20  |0).(nbmpos%=0)) |
00002990  8c 0d 0c 44 1a 20 20 20  20 20 20 20 20 20 20 20  |...D.           |
000029a0  20 66 75 6c 6c 62 6d 25  3d 2d 31 0d 0c 4e 55 20  | fullbm%=-1..NU |
000029b0  20 20 20 20 20 20 20 20  20 20 20 e7 28 62 6b 25  |           .(bk%|
000029c0  3d 36 29 80 28 28 62 6f  6f 6b 64 69 72 6e 25 2a  |=6).((bookdirn%*|
000029d0  62 6b 66 6c 69 70 25 29  3d 31 29 3a f2 66 6c 69  |bkflip%)=1):.fli|
000029e0  70 62 6f 6f 6b 3a 8b 3a  62 6b 25 2b 3d 28 62 6f  |pbook:.:bk%+=(bo|
000029f0  6f 6b 64 69 72 6e 25 2a  62 6b 66 6c 69 70 25 29  |okdirn%*bkflip%)|
00002a00  0d 0c 58 29 20 20 20 20  20 20 20 20 20 20 20 20  |..X)            |
00002a10  e7 62 6b 25 3c 30 8c 3a  62 6b 25 3d 30 3a 61 6e  |.bk%<0.:bk%=0:an|
00002a20  69 6d 65 6e 64 25 3d 2d  31 0d 0c 62 10 20 20 20  |imend%=-1..b.   |
00002a30  20 20 20 20 20 20 20 20  cd 0d 0c 6c 0f 20 20 20  |        ...l.   |
00002a40  20 20 20 20 20 20 20 cd  0d 0c 76 2a 20 20 20 20  |       ...v*    |
00002a50  20 20 20 20 20 20 e7 62  6d 25 3c 30 3a 6e 62 6d  |      .bm%<0:nbm|
00002a60  70 6f 73 25 2d 3d 34 3a  79 62 6d 70 6f 73 25 2d  |pos%-=4:ybmpos%-|
00002a70  3d 34 0d 0c 80 2a 20 20  20 20 20 20 20 20 20 20  |=4...*          |
00002a80  e7 62 6d 25 3d 30 3a 6e  62 6d 70 6f 73 25 2b 3d  |.bm%=0:nbmpos%+=|
00002a90  34 3a 79 62 6d 70 6f 73  25 2d 3d 34 0d 0c 8a 2a  |4:ybmpos%-=4...*|
00002aa0  20 20 20 20 20 20 20 20  20 20 e7 62 6d 25 3d 31  |          .bm%=1|
00002ab0  3a 6e 62 6d 70 6f 73 25  2d 3d 34 3a 79 62 6d 70  |:nbmpos%-=4:ybmp|
00002ac0  6f 73 25 2b 3d 34 0d 0c  94 22 20 20 20 20 20 20  |os%+=4..."      |
00002ad0  20 20 20 20 e7 6e 62 6d  70 6f 73 25 3c 30 3a 6e  |    .nbmpos%<0:n|
00002ae0  62 6d 70 6f 73 25 3d 30  0d 0c 9e 24 20 20 20 20  |bmpos%=0...$    |
00002af0  20 20 20 20 20 20 e7 6e  62 6d 70 6f 73 25 3e 34  |      .nbmpos%>4|
00002b00  30 3a 6e 62 6d 70 6f 73  25 3d 34 30 0d 0c a8 22  |0:nbmpos%=40..."|
00002b10  20 20 20 20 20 20 20 20  20 20 e7 79 62 6d 70 6f  |          .ybmpo|
00002b20  73 25 3c 30 3a 79 62 6d  70 6f 73 25 3d 30 0d 0c  |s%<0:ybmpos%=0..|
00002b30  b2 24 20 20 20 20 20 20  20 20 20 20 e7 79 62 6d  |.$          .ybm|
00002b40  70 6f 73 25 3e 34 30 3a  79 62 6d 70 6f 73 25 3d  |pos%>40:ybmpos%=|
00002b50  34 30 0d 0c bc 51 20 20  20 20 20 20 20 20 20 20  |40...Q          |
00002b60  e7 28 63 68 6f 73 65 6e  25 3e 3d 30 29 84 28 6f  |.(chosen%>=0).(o|
00002b70  62 6d 25 3c 3e 62 6d 25  29 84 28 6f 6e 62 6d 70  |bm%<>bm%).(onbmp|
00002b80  6f 73 25 3c 3e 6e 62 6d  70 6f 73 25 29 84 28 6f  |os%<>nbmpos%).(o|
00002b90  79 62 6d 70 6f 73 25 3c  3e 79 62 6d 70 6f 73 25  |ybmpos%<>ybmpos%|
00002ba0  29 20 8c 0d 0c c6 1b 20  20 20 20 20 20 20 20 20  |) .....         |
00002bb0  20 20 f2 70 6c 6f 74 62  6f 6f 6b 28 33 29 0d 0c  |  .plotbook(3)..|
00002bc0  d0 39 20 20 20 20 20 20  20 20 20 20 20 6f 62 6d  |.9           obm|
00002bd0  25 3d 62 6d 25 3a 6f 6e  62 6d 70 6f 73 25 3d 6e  |%=bm%:onbmpos%=n|
00002be0  62 6d 70 6f 73 25 3a 6f  79 62 6d 70 6f 73 25 3d  |bmpos%:oybmpos%=|
00002bf0  79 62 6d 70 6f 73 25 0d  0c da 0f 20 20 20 20 20  |ybmpos%....     |
00002c00  20 20 20 20 20 cd 0d 0c  e4 19 20 20 7f 3a f2 73  |     .....  .:.s|
00002c10  70 65 63 69 66 69 63 61  6e 69 6d 28 6a 25 29 0d  |pecificanim(j%).|
00002c20  0c ee 06 20 cb 0d 0c f8  05 cd 0d 0d 02 05 e1 0d  |... ............|
00002c30  0d 0c 04 0d 0d 16 0e dd  f2 66 6c 69 70 62 6f 6f  |.........flipboo|
00002c40  6b 0d 0d 20 08 ea 20 6b  25 0d 0d 2a 2c e3 6b 25  |k.. .. k%..*,.k%|
00002c50  3d 31 b8 36 3a f2 66 6c  69 70 28 62 75 74 61 72  |=1.6:.flip(butar|
00002c60  65 61 25 2c 22 79 22 2c  22 62 62 22 2b c3 28 6b  |ea%,"y","bb"+.(k|
00002c70  25 29 29 3a ed 0d 0d 34  16 62 6b 66 6c 69 70 25  |%)):...4.bkflip%|
00002c80  3d 62 6b 66 6c 69 70 25  2a 2d 31 0d 0d 3e 05 e1  |=bkflip%*-1..>..|
00002c90  0d 0d 48 04 0d 0d 52 0c  dd a4 6f 6e 62 6f 6f 6b  |..H...R...onbook|
00002ca0  0d 0d 5c 55 e7 28 6d 78  25 3c 3d 28 62 6f 6f 6b  |..\U.(mx%<=(book|
00002cb0  25 28 30 29 2b 31 38 32  29 29 80 28 6d 78 25 3e  |%(0)+182)).(mx%>|
00002cc0  3d 62 6f 6f 6b 25 28 30  29 29 80 28 6d 79 25 3c  |=book%(0)).(my%<|
00002cd0  3d 28 62 6f 6f 6b 25 28  31 29 2b 31 34 38 29 29  |=(book%(1)+148))|
00002ce0  80 28 6d 79 25 3e 3d 62  6f 6f 6b 25 28 31 29 29  |.(my%>=book%(1))|
00002cf0  8c 3a 3d 2d 31 0d 0d 66  06 3d 30 0d 0d 70 04 0d  |.:=-1..f.=0..p..|
00002d00  0d 7a 0c dd a4 6f 6e 62  6c 75 65 0d 0d 84 08 ea  |.z...onblue.....|
00002d10  20 6a 25 0d 0d 8e 16 e3  6a 25 3d 30 b8 62 6c 75  | j%.....j%=0.blu|
00002d20  65 77 6f 72 64 73 25 2d  31 0d 0d 98 84 20 e7 28  |ewords%-1.... .(|
00002d30  6d 78 25 3c 3d 73 61 79  25 28 62 6c 77 6f 72 64  |mx%<=say%(blword|
00002d40  73 25 28 6a 25 29 2c 32  29 29 80 28 6d 78 25 3e  |s%(j%),2)).(mx%>|
00002d50  3d 73 61 79 25 28 62 6c  77 6f 72 64 73 25 28 6a  |=say%(blwords%(j|
00002d60  25 29 2c 30 29 29 80 28  6d 79 25 3c 3d 73 61 79  |%),0)).(my%<=say|
00002d70  25 28 62 6c 77 6f 72 64  73 25 28 6a 25 29 2c 33  |%(blwords%(j%),3|
00002d80  29 29 80 28 6d 79 25 3e  3d 73 61 79 25 28 62 6c  |)).(my%>=say%(bl|
00002d90  77 6f 72 64 73 25 28 6a  25 29 2c 31 29 29 8c 3a  |words%(j%),1)).:|
00002da0  3d 62 6c 77 6f 72 64 73  25 28 6a 25 29 0d 0d a2  |=blwords%(j%)...|
00002db0  05 ed 0d 0d ac 07 3d 2d  31 0d 0d b6 04 0d 0d c0  |......=-1.......|
00002dc0  10 dd a4 6f 6e 62 6f 6f  6b 6d 61 72 6b 0d 0d ca  |...onbookmark...|
00002dd0  08 ea 20 6a 25 0d 0d d4  0b e3 6a 25 3d 30 b8 31  |.. j%.....j%=0.1|
00002de0  0d 0d de 80 20 e7 28 6d  78 25 3c 3d 28 62 6f 6f  |.... .(mx%<=(boo|
00002df0  6b 25 28 30 29 2b 31 34  34 2b 28 6c 65 6e 62 6d  |k%(0)+144+(lenbm|
00002e00  25 2a 32 29 2b 38 29 29  80 28 6d 78 25 3e 3d 28  |%*2)+8)).(mx%>=(|
00002e10  62 6f 6f 6b 25 28 30 29  2b 31 32 30 29 29 80 28  |book%(0)+120)).(|
00002e20  6d 79 25 3c 3d 28 62 6f  6f 6b 25 28 31 29 2b 36  |my%<=(book%(1)+6|
00002e30  30 2b 35 36 2d 28 36 30  2a 6a 25 29 29 29 80 28  |0+56-(60*j%))).(|
00002e40  6d 79 25 3e 3d 28 62 6f  6f 6b 25 28 31 29 2b 36  |my%>=(book%(1)+6|
00002e50  30 2d 28 36 30 2a 6a 25  29 29 29 8c 3a 3d 6a 25  |0-(60*j%))).:=j%|
00002e60  0d 0d e8 05 ed 0d 0d f2  0c e7 63 68 25 3e 32 20  |..........ch%>2 |
00002e70  8c 0d 0d fc 10 20 e3 6a  25 3d 32 b8 63 68 25 2d  |..... .j%=2.ch%-|
00002e80  31 0d 0e 06 87 20 20 e7  28 6d 78 25 3c 3d 28 62  |1....  .(mx%<=(b|
00002e90  6f 6f 6b 25 28 30 29 2b  36 30 29 29 80 28 6d 78  |ook%(0)+60)).(mx|
00002ea0  25 3e 3d 28 62 6f 6f 6b  25 28 30 29 2b 33 30 2d  |%>=(book%(0)+30-|
00002eb0  28 6c 65 6e 62 6d 25 2a  32 29 2d 38 29 29 80 28  |(lenbm%*2)-8)).(|
00002ec0  6d 79 25 3c 3d 28 62 6f  6f 6b 25 28 31 29 2b 36  |my%<=(book%(1)+6|
00002ed0  30 2b 35 36 2d 28 36 30  2a 28 6a 25 83 32 29 29  |0+56-(60*(j%.2))|
00002ee0  29 29 80 28 6d 79 25 3e  3d 28 62 6f 6f 6b 25 28  |)).(my%>=(book%(|
00002ef0  31 29 2b 36 30 2d 28 36  30 2a 28 6a 25 83 32 29  |1)+60-(60*(j%.2)|
00002f00  29 29 29 8c 3a 3d 6a 25  0d 0e 10 06 20 ed 0d 0e  |))).:=j%.... ...|
00002f10  1a 05 cd 0d 0e 24 9a f4  49 46 28 6d 78 25 3c 3d  |.....$..IF(mx%<=|
00002f20  28 62 6f 6f 6b 25 28 30  29 2b 31 38 32 29 29 41  |(book%(0)+182))A|
00002f30  4e 44 28 6d 78 25 3e 3d  62 6f 6f 6b 25 28 30 29  |ND(mx%>=book%(0)|
00002f40  29 41 4e 44 28 6d 79 25  3c 3d 28 62 6f 6f 6b 25  |)AND(my%<=(book%|
00002f50  28 31 29 2b 31 34 38 29  29 41 4e 44 28 6d 79 25  |(1)+148))AND(my%|
00002f60  3e 3d 62 6f 6f 6b 25 28  31 29 29 54 48 45 4e 3a  |>=book%(1))THEN:|
00002f70  50 52 49 4e 54 20 22 6f  6e 20 22 3b 62 6b 25 3b  |PRINT "on ";bk%;|
00002f80  22 20 22 3b 62 6f 6f 6b  64 69 72 6e 25 3b 22 20  |" ";bookdirn%;" |
00002f90  22 3b 62 6b 66 6c 69 70  25 3b 22 20 22 3b 6d 62  |";bkflip%;" ";mb|
00002fa0  75 74 25 3a 58 3d 47 45  54 3a 3d 2d 31 0d 0e 2e  |ut%:X=GET:=-1...|
00002fb0  3f f4 50 52 49 4e 54 20  22 6f 66 66 20 22 3b 62  |?.PRINT "off ";b|
00002fc0  6b 25 3b 22 20 22 3b 62  6f 6f 6b 64 69 72 6e 25  |k%;" ";bookdirn%|
00002fd0  3b 22 20 22 3b 62 6b 66  6c 69 70 25 3b 22 20 22  |;" ";bkflip%;" "|
00002fe0  3b 6d 62 75 74 25 3a 58  3d 47 45 54 0d 0e 38 07  |;mbut%:X=GET..8.|
00002ff0  3d 2d 31 0d 0e 42 04 0d  0e 4c 12 dd f2 70 6c 6f  |=-1..B...L...plo|
00003000  74 62 6f 6f 6b 28 61 25  29 0d 0e 56 3d c8 99 22  |tbook(a%)..V=.."|
00003010  4f 53 5f 53 70 72 69 74  65 4f 70 22 2c 26 31 32  |OS_SpriteOp",&12|
00003020  32 2c 73 70 61 72 65 61  25 2c 22 62 6f 6f 6b 62  |2,sparea%,"bookb|
00003030  67 22 2c 62 6f 6f 6b 25  28 30 29 2c 62 6f 6f 6b  |g",book%(0),book|
00003040  25 28 31 29 2c 38 0d 0e  60 48 c8 99 22 4f 53 5f  |%(1),8..`H.."OS_|
00003050  53 70 72 69 74 65 4f 70  22 2c 26 31 33 34 2c 62  |SpriteOp",&134,b|
00003060  75 74 61 72 65 61 25 2c  22 62 6f 6f 6b 62 75 74  |utarea%,"bookbut|
00003070  22 2c 62 6f 6f 6b 25 28  30 29 2c 62 6f 6f 6b 25  |",book%(0),book%|
00003080  28 31 29 2c 38 2c 73 63  61 6c 65 25 2c 30 0d 0e  |(1),8,scale%,0..|
00003090  6a 24 e7 61 25 3d 31 20  8c 3a f2 70 6c 6f 74 62  |j$.a%=1 .:.plotb|
000030a0  6d 3a e7 66 75 6c 6c 62  6d 25 3a f2 66 75 6c 6c  |m:.fullbm%:.full|
000030b0  62 6d 0d 0e 74 15 e7 61  25 3d 33 20 8c 3a f2 70  |bm..t..a%=3 .:.p|
000030c0  6c 6f 74 79 6e 62 6d 0d  0e 7e 0b e7 62 6b 25 3e  |lotynbm..~..bk%>|
000030d0  30 8c 0d 0e 88 c5 20 e7  62 6b 66 6c 69 70 25 3d  |0..... .bkflip%=|
000030e0  2d 31 3a c8 99 22 4f 53  5f 53 70 72 69 74 65 4f  |-1:.."OS_SpriteO|
000030f0  70 22 2c 26 31 33 34 2c  62 75 74 61 72 65 61 25  |p",&134,butarea%|
00003100  2c 22 62 62 22 2b c3 28  62 6b 25 29 2c 62 6f 6f  |,"bb"+.(bk%),boo|
00003110  6b 25 28 30 29 2b 62 6f  6f 6b 78 25 28 62 6b 25  |k%(0)+bookx%(bk%|
00003120  29 2c 62 6f 6f 6b 25 28  31 29 2b 31 36 2b 28 34  |),book%(1)+16+(4|
00003130  2a 62 6b 25 29 2c 38 2c  73 63 61 6c 65 25 2c 30  |*bk%),8,scale%,0|
00003140  3a 8b 3a c8 99 22 4f 53  5f 53 70 72 69 74 65 4f  |:.:.."OS_SpriteO|
00003150  70 22 2c 26 31 33 34 2c  62 75 74 61 72 65 61 25  |p",&134,butarea%|
00003160  2c 22 62 62 22 2b c3 28  62 6b 25 29 2c 62 6f 6f  |,"bb"+.(bk%),boo|
00003170  6b 25 28 30 29 2b 39 30  2c 62 6f 6f 6b 25 28 31  |k%(0)+90,book%(1|
00003180  29 2b 31 36 2b 28 34 2a  62 6b 25 29 2c 38 2c 73  |)+16+(4*bk%),8,s|
00003190  63 61 6c 65 25 2c 30 0d  0e 92 18 20 e7 28 61 25  |cale%,0.... .(a%|
000031a0  3d 32 29 80 ac 61 6e 69  6d 65 6e 64 25 20 8c 0d  |=2)..animend% ..|
000031b0  0e 9c 74 20 20 e7 28 63  68 6f 73 65 6e 25 3d 31  |..t  .(chosen%=1|
000031c0  29 80 28 62 6b 66 6c 69  70 25 3d 31 29 3a c8 99  |).(bkflip%=1):..|
000031d0  22 4f 53 5f 53 70 72 69  74 65 4f 70 22 2c 26 31  |"OS_SpriteOp",&1|
000031e0  33 34 2c 73 70 61 72 65  61 32 25 2c 22 79 22 2b  |34,sparea2%,"y"+|
000031f0  c3 28 62 6b 25 29 2c 62  6f 6f 6b 25 28 30 29 2b  |.(bk%),book%(0)+|
00003200  39 34 2c 62 6f 6f 6b 25  28 31 29 2b 62 6b 79 6e  |94,book%(1)+bkyn|
00003210  25 28 62 6b 25 2c 31 29  2c 38 2c 73 63 61 6c 65  |%(bk%,1),8,scale|
00003220  25 2c 30 0d 0e a6 7f 20  20 e7 28 63 68 6f 73 65  |%,0....  .(chose|
00003230  6e 25 3d 30 29 80 28 62  6b 66 6c 69 70 25 3d 2d  |n%=0).(bkflip%=-|
00003240  31 29 3a c8 99 22 4f 53  5f 53 70 72 69 74 65 4f  |1):.."OS_SpriteO|
00003250  70 22 2c 26 31 33 34 2c  73 70 61 72 65 61 32 25  |p",&134,sparea2%|
00003260  2c 22 6e 22 2b c3 28 62  6b 25 29 2c 62 6f 6f 6b  |,"n"+.(bk%),book|
00003270  25 28 30 29 2b 62 6b 79  6e 25 28 62 6b 25 2c 30  |%(0)+bkyn%(bk%,0|
00003280  29 2c 62 6f 6f 6b 25 28  31 29 2b 62 6b 79 6e 25  |),book%(1)+bkyn%|
00003290  28 62 6b 25 2c 31 29 2c  38 2c 73 63 61 6c 65 25  |(bk%,1),8,scale%|
000032a0  2c 30 0d 0e b0 06 20 cd  0d 0e ba 05 cd 0d 0e c4  |,0.... .........|
000032b0  33 61 63 68 61 6e 67 65  25 3d 2d 31 3a 64 6f 6e  |3achange%=-1:don|
000032c0  65 63 68 61 6e 67 65 25  28 61 25 29 3d 2d 31 3a  |echange%(a%)=-1:|
000032d0  61 6e 69 6d 74 69 6d 65  25 28 61 25 29 3d 2d 31  |animtime%(a%)=-1|
000032e0  0d 0e ce 05 e1 0d 0e d8  04 0d 0e e2 0e dd f2 70  |...............p|
000032f0  6c 6f 74 79 6e 62 6d 0d  0e ec 65 ef 32 34 2c 30  |lotynbm...e.24,0|
00003300  3b 30 3b 31 32 37 38 3b  62 6f 6f 6b 25 28 31 29  |;0;1278;book%(1)|
00003310  2b 32 32 3b 3a f2 70 6c  6f 74 79 6e 62 6d 30 3a  |+22;:.plotynbm0:|
00003320  f2 70 6c 6f 74 79 6e 62  6d 31 3a ef 32 34 2c 30  |.plotynbm1:.24,0|
00003330  3b 62 6f 6f 6b 25 28 31  29 2b 39 36 3b 31 32 37  |;book%(1)+96;127|
00003340  38 3b 39 35 38 3b 3a f2  70 6c 6f 74 79 6e 62 6d  |8;958;:.plotynbm|
00003350  30 3a f2 70 6c 6f 74 79  6e 62 6d 31 0d 0e f6 07  |0:.plotynbm1....|
00003360  ef 32 36 0d 0f 00 0d e7  66 75 6c 6c 62 6d 25 8c  |.26.....fullbm%.|
00003370  0d 0f 0a 23 20 e7 62 6d  25 3d 30 3a f2 70 6c 6f  |...# .bm%=0:.plo|
00003380  74 79 6e 62 6d 30 3a 8b  3a f2 70 6c 6f 74 79 6e  |tynbm0:.:.plotyn|
00003390  62 6d 31 0d 0f 14 05 cd  0d 0f 1e 05 e1 0d 0f 28  |bm1............(|
000033a0  04 0d 0f 32 0f dd f2 70  6c 6f 74 79 6e 62 6d 30  |...2...plotynbm0|
000033b0  0d 0f 3c 08 ea 20 63 25  0d 0f 46 16 e7 62 6d 25  |..<.. c%..F..bm%|
000033c0  3d 30 3a 63 25 3d 39 3a  8b 3a 63 25 3d 30 0d 0f  |=0:c%=9:.:c%=0..|
000033d0  50 32 f2 62 6f 78 28 62  6f 6f 6b 25 28 30 29 2b  |P2.box(book%(0)+|
000033e0  32 38 2c 62 6f 6f 6b 25  28 31 29 2b 6e 62 6d 70  |28,book%(1)+nbmp|
000033f0  6f 73 25 2c 33 36 2c 31  33 36 2c 63 25 2c 32 29  |os%,36,136,c%,2)|
00003400  0d 0f 5a 31 f2 62 6f 78  28 62 6f 6f 6b 25 28 30  |..Z1.box(book%(0|
00003410  29 2b 31 36 2c 62 6f 6f  6b 25 28 31 29 2b 6e 62  |)+16,book%(1)+nb|
00003420  6d 70 6f 73 25 2c 36 30  2c 39 36 2c 63 25 2c 32  |mpos%,60,96,c%,2|
00003430  29 0d 0f 64 40 ef 31 38  2c 30 2c 63 25 3a ef 32  |)..d@.18,0,c%:.2|
00003440  35 2c 34 2c 62 6f 6f 6b  25 28 30 29 2b 33 30 3b  |5,4,book%(0)+30;|
00003450  62 6f 6f 6b 25 28 31 29  2b 6e 62 6d 70 6f 73 25  |book%(1)+nbmpos%|
00003460  2b 39 32 3b 3a ef 32 35  2c 39 37 2c 33 32 3b 32  |+92;:.25,97,32;2|
00003470  3b 0d 0f 6e 16 e7 62 6d  25 3d 30 3a 63 25 3d 38  |;..n..bm%=0:c%=8|
00003480  3a 8b 3a 63 25 3d 33 0d  0f 78 23 ef 35 3a ef 32  |:.:c%=3..x#.5:.2|
00003490  33 2c 31 37 2c 37 2c 25  31 30 2c 38 3b 38 2a 63  |3,17,7,%10,8;8*c|
000034a0  67 61 76 67 61 25 3b 30  2c 30 0d 0f 82 0c ef 31  |gavga%;0,0.....1|
000034b0  38 2c 30 2c 63 25 0d 0f  8c 2b ef 32 35 2c 34 2c  |8,0,c%...+.25,4,|
000034c0  62 6f 6f 6b 25 28 30 29  2b 33 38 3b 62 6f 6f 6b  |book%(0)+38;book|
000034d0  25 28 31 29 2b 6e 62 6d  70 6f 73 25 2b 31 32 34  |%(1)+nbmpos%+124|
000034e0  3b 0d 0f 96 09 f1 20 22  4e 22 0d 0f a0 2a ef 32  |;..... "N"...*.2|
000034f0  35 2c 34 2c 62 6f 6f 6b  25 28 30 29 2b 33 30 3b  |5,4,book%(0)+30;|
00003500  62 6f 6f 6b 25 28 31 29  2b 6e 62 6d 70 6f 73 25  |book%(1)+nbmpos%|
00003510  2b 38 38 3b 0d 0f aa 0a  f1 20 22 6e 6f 22 0d 0f  |+88;..... "no"..|
00003520  b4 1b ef 32 33 2c 31 37  2c 37 2c 25 31 30 2c 38  |...23,17,7,%10,8|
00003530  3b 38 3b 30 2c 30 3a ef  34 0d 0f be 05 e1 0d 0f  |;8;0,0:.4.......|
00003540  c8 04 0d 0f d2 0f dd f2  70 6c 6f 74 79 6e 62 6d  |........plotynbm|
00003550  31 0d 0f dc 08 ea 20 63  25 0d 0f e6 16 e7 62 6d  |1..... c%.....bm|
00003560  25 3d 31 3a 63 25 3d 39  3a 8b 3a 63 25 3d 30 0d  |%=1:c%=9:.:c%=0.|
00003570  0f f0 33 f2 62 6f 78 28  62 6f 6f 6b 25 28 30 29  |..3.box(book%(0)|
00003580  2b 31 31 38 2c 62 6f 6f  6b 25 28 31 29 2b 79 62  |+118,book%(1)+yb|
00003590  6d 70 6f 73 25 2c 33 36  2c 31 33 36 2c 63 25 2c  |mpos%,36,136,c%,|
000035a0  32 29 0d 0f fa 32 f2 62  6f 78 28 62 6f 6f 6b 25  |2)...2.box(book%|
000035b0  28 30 29 2b 31 30 36 2c  62 6f 6f 6b 25 28 31 29  |(0)+106,book%(1)|
000035c0  2b 79 62 6d 70 6f 73 25  2c 36 30 2c 39 36 2c 63  |+ybmpos%,60,96,c|
000035d0  25 2c 32 29 0d 10 04 41  ef 31 38 2c 30 2c 63 25  |%,2)...A.18,0,c%|
000035e0  3a ef 32 35 2c 34 2c 62  6f 6f 6b 25 28 30 29 2b  |:.25,4,book%(0)+|
000035f0  31 32 30 3b 62 6f 6f 6b  25 28 31 29 2b 79 62 6d  |120;book%(1)+ybm|
00003600  70 6f 73 25 2b 39 32 3b  3a ef 32 35 2c 39 37 2c  |pos%+92;:.25,97,|
00003610  33 32 3b 32 3b 0d 10 0e  16 e7 62 6d 25 3d 31 3a  |32;2;.....bm%=1:|
00003620  63 25 3d 38 3a 8b 3a 63  25 3d 33 0d 10 18 23 ef  |c%=8:.:c%=3...#.|
00003630  35 3a ef 32 33 2c 31 37  2c 37 2c 25 31 30 2c 38  |5:.23,17,7,%10,8|
00003640  3b 38 2a 63 67 61 76 67  61 25 3b 30 2c 30 0d 10  |;8*cgavga%;0,0..|
00003650  22 0c ef 31 38 2c 30 2c  63 25 0d 10 2c 2c ef 32  |"..18,0,c%..,,.2|
00003660  35 2c 34 2c 62 6f 6f 6b  25 28 30 29 2b 31 32 38  |5,4,book%(0)+128|
00003670  3b 62 6f 6f 6b 25 28 31  29 2b 79 62 6d 70 6f 73  |;book%(1)+ybmpos|
00003680  25 2b 31 32 34 3b 0d 10  36 09 f1 20 22 59 22 0d  |%+124;..6.. "Y".|
00003690  10 40 2b ef 32 35 2c 34  2c 62 6f 6f 6b 25 28 30  |.@+.25,4,book%(0|
000036a0  29 2b 31 31 32 3b 62 6f  6f 6b 25 28 31 29 2b 79  |)+112;book%(1)+y|
000036b0  62 6d 70 6f 73 25 2b 38  38 3b 0d 10 4a 0b f1 20  |bmpos%+88;..J.. |
000036c0  22 79 65 73 22 0d 10 54  1b ef 32 33 2c 31 37 2c  |"yes"..T..23,17,|
000036d0  37 2c 25 31 30 2c 38 3b  38 3b 30 2c 30 3a ef 34  |7,%10,8;8;0,0:.4|
000036e0  0d 10 5e 05 e1 0d 10 68  04 0d 10 72 0c dd f2 70  |..^....h...r...p|
000036f0  6c 6f 74 62 6d 0d 10 7c  0b ea 20 6a 25 2c 6b 25  |lotbm..|.. j%,k%|
00003700  0d 10 86 0b e3 6a 25 3d  30 b8 31 0d 10 90 4e 20  |.....j%=0.1...N |
00003710  ef 31 38 2c 30 2c 33 3a  ef 32 35 2c 34 2c 62 6f  |.18,0,3:.25,4,bo|
00003720  6f 6b 25 28 30 29 2b 31  34 34 3b 62 6f 6f 6b 25  |ok%(0)+144;book%|
00003730  28 31 29 2b 36 30 2d 28  6a 25 2a 35 32 29 3b 3a  |(1)+60-(j%*52);:|
00003740  ef 32 35 2c 39 37 2c 28  6c 65 6e 62 6d 25 2a 32  |.25,97,(lenbm%*2|
00003750  29 2d 32 3b 34 38 2d 32  3b 0d 10 9a 1e 20 e7 62  |)-2;48-2;.... .b|
00003760  6d 25 3d 6a 25 3a ef 31  38 2c 30 2c 39 3a 8b 3a  |m%=j%:.18,0,9:.:|
00003770  ef 31 38 2c 30 2c 30 0d  10 a4 47 20 ef 32 35 2c  |.18,0,0...G .25,|
00003780  34 2c 62 6f 6f 6b 25 28  30 29 2b 31 34 36 3b 62  |4,book%(0)+146;b|
00003790  6f 6f 6b 25 28 31 29 2b  36 34 2d 28 6a 25 2a 35  |ook%(1)+64-(j%*5|
000037a0  32 29 3b 3a ef 32 35 2c  39 37 2c 28 6c 65 6e 62  |2);:.25,97,(lenb|
000037b0  6d 25 2a 32 29 2d 36 3b  34 38 2d 31 30 3b 0d 10  |m%*2)-6;48-10;..|
000037c0  ae c0 20 e7 62 6d 25 3d  6a 25 3a c8 99 22 4f 53  |.. .bm%=j%:.."OS|
000037d0  5f 53 70 72 69 74 65 4f  70 22 2c 26 31 33 34 2c  |_SpriteOp",&134,|
000037e0  62 75 74 61 72 65 61 25  2c 22 62 6d 22 2b c3 28  |butarea%,"bm"+.(|
000037f0  6a 25 29 2b 22 31 22 2c  62 6f 6f 6b 25 28 30 29  |j%)+"1",book%(0)|
00003800  2b 31 34 34 2c 62 6f 6f  6b 25 28 31 29 2b 36 30  |+144,book%(1)+60|
00003810  2d 28 6a 25 2a 35 32 29  2c 38 2c 73 63 61 6c 65  |-(j%*52),8,scale|
00003820  25 2c 30 3a 8b 3a c8 99  22 4f 53 5f 53 70 72 69  |%,0:.:.."OS_Spri|
00003830  74 65 4f 70 22 2c 26 31  33 34 2c 62 75 74 61 72  |teOp",&134,butar|
00003840  65 61 25 2c 22 62 6d 22  2b c3 28 6a 25 29 2b 22  |ea%,"bm"+.(j%)+"|
00003850  30 22 2c 62 6f 6f 6b 25  28 30 29 2b 31 34 34 2c  |0",book%(0)+144,|
00003860  62 6f 6f 6b 25 28 31 29  2b 36 30 2d 28 6a 25 2a  |book%(1)+60-(j%*|
00003870  35 32 29 2c 38 2c 73 63  61 6c 65 25 2c 30 0d 10  |52),8,scale%,0..|
00003880  b8 56 20 ef 35 3a ef 32  35 2c 34 2c 62 6f 6f 6b  |.V .5:.25,4,book|
00003890  25 28 30 29 2b 31 37 34  2b 28 28 38 2b 28 28 28  |%(0)+174+((8+(((|
000038a0  6d 61 78 62 6d 25 2d a9  28 63 68 24 28 6a 25 29  |maxbm%-.(ch$(j%)|
000038b0  29 29 2f 32 29 2a 38 29  29 2a 32 29 3b 62 6f 6f  |))/2)*8))*2);boo|
000038c0  6b 25 28 31 29 2b 36 30  2b 33 36 2d 28 6a 25 2a  |k%(1)+60+36-(j%*|
000038d0  35 32 29 3b 0d 10 c2 0d  20 f2 70 72 69 6e 74 62  |52);.... .printb|
000038e0  6d 0d 10 cc 05 ed 0d 10  d6 0c e7 63 68 25 3e 32  |m..........ch%>2|
000038f0  20 8c 0d 10 e0 3d 20 e3  6a 25 3d 30 b8 31 3a e3  | ....= .j%=0.1:.|
00003900  6b 25 3d 30 b8 31 3a f2  66 6c 69 70 28 62 75 74  |k%=0.1:.flip(but|
00003910  61 72 65 61 25 2c 22 79  22 2c 22 62 6d 22 2b c3  |area%,"y","bm"+.|
00003920  28 6a 25 29 2b c3 28 6b  25 29 29 3a ed 3a ed 0d  |(j%)+.(k%)):.:..|
00003930  10 ea 10 20 e3 6a 25 3d  32 b8 63 68 25 2d 31 0d  |... .j%=2.ch%-1.|
00003940  10 f4 52 20 20 ef 31 38  2c 30 2c 33 3a ef 32 35  |..R  .18,0,3:.25|
00003950  2c 34 2c 62 6f 6f 6b 25  28 30 29 2b 33 36 3b 62  |,4,book%(0)+36;b|
00003960  6f 6f 6b 25 28 31 29 2b  36 30 2d 28 28 6a 25 2d  |ook%(1)+60-((j%-|
00003970  32 29 2a 35 32 29 3b 3a  ef 32 35 2c 39 37 2c 32  |2)*52);:.25,97,2|
00003980  2d 28 6c 65 6e 62 6d 25  2a 32 29 3b 34 38 2d 32  |-(lenbm%*2);48-2|
00003990  3b 0d 10 fe 1f 20 20 e7  62 6d 25 3d 6a 25 3a ef  |;....  .bm%=j%:.|
000039a0  31 38 2c 30 2c 39 3a 8b  3a ef 31 38 2c 30 2c 30  |18,0,9:.:.18,0,0|
000039b0  0d 11 08 4b 20 20 ef 32  35 2c 34 2c 62 6f 6f 6b  |...K  .25,4,book|
000039c0  25 28 30 29 2b 33 34 3b  62 6f 6f 6b 25 28 31 29  |%(0)+34;book%(1)|
000039d0  2b 36 34 2d 28 28 6a 25  2d 32 29 2a 35 32 29 3b  |+64-((j%-2)*52);|
000039e0  3a ef 32 35 2c 39 37 2c  36 2d 28 6c 65 6e 62 6d  |:.25,97,6-(lenbm|
000039f0  25 2a 32 29 3b 34 38 2d  31 30 3b 0d 11 12 c9 20  |%*2);48-10;.... |
00003a00  20 e7 62 6d 25 3d 6a 25  3a c8 99 22 4f 53 5f 53  | .bm%=j%:.."OS_S|
00003a10  70 72 69 74 65 4f 70 22  2c 26 31 33 34 2c 62 75  |priteOp",&134,bu|
00003a20  74 61 72 65 61 25 2c 22  62 6d 22 2b c3 28 28 6a  |tarea%,"bm"+.((j|
00003a30  25 2d 32 29 29 2b 22 31  22 2c 62 6f 6f 6b 25 28  |%-2))+"1",book%(|
00003a40  30 29 2c 62 6f 6f 6b 25  28 31 29 2b 36 30 2d 28  |0),book%(1)+60-(|
00003a50  28 6a 25 2d 32 29 2a 35  32 29 2c 38 2c 73 63 61  |(j%-2)*52),8,sca|
00003a60  6c 65 25 2c 30 3a 8b 3a  c8 99 22 4f 53 5f 53 70  |le%,0:.:.."OS_Sp|
00003a70  72 69 74 65 4f 70 22 2c  26 31 33 34 2c 62 75 74  |riteOp",&134,but|
00003a80  61 72 65 61 25 2c 22 62  6d 22 2b c3 28 28 6a 25  |area%,"bm"+.((j%|
00003a90  2d 32 29 29 2b 22 30 22  2c 62 6f 6f 6b 25 28 30  |-2))+"0",book%(0|
00003aa0  29 2c 62 6f 6f 6b 25 28  31 29 2b 36 30 2d 28 28  |),book%(1)+60-((|
00003ab0  6a 25 2d 32 29 2a 35 32  29 2c 38 2c 73 63 61 6c  |j%-2)*52),8,scal|
00003ac0  65 25 2c 30 0d 11 1c 65  20 20 ef 35 3a ef 32 35  |e%,0...e  .5:.25|
00003ad0  2c 34 2c 62 6f 6f 6b 25  28 30 29 2b 33 36 2d 28  |,4,book%(0)+36-(|
00003ae0  6c 65 6e 62 6d 25 2a 32  29 2b 28 28 38 2b 28 28  |lenbm%*2)+((8+((|
00003af0  28 6d 61 78 62 6d 25 2d  a9 28 63 68 24 28 6a 25  |(maxbm%-.(ch$(j%|
00003b00  29 29 29 2f 32 29 2a 38  29 29 2a 32 29 3b 62 6f  |)))/2)*8))*2);bo|
00003b10  6f 6b 25 28 31 29 2b 36  30 2b 33 36 2d 28 28 6a  |ok%(1)+60+36-((j|
00003b20  25 2d 32 29 2a 35 32 29  3b 0d 11 26 0e 20 20 f2  |%-2)*52);..&.  .|
00003b30  70 72 69 6e 74 62 6d 0d  11 30 06 20 ed 0d 11 3a  |printbm..0. ...:|
00003b40  3d 20 e3 6a 25 3d 30 b8  31 3a e3 6b 25 3d 30 b8  |= .j%=0.1:.k%=0.|
00003b50  31 3a f2 66 6c 69 70 28  62 75 74 61 72 65 61 25  |1:.flip(butarea%|
00003b60  2c 22 79 22 2c 22 62 6d  22 2b c3 28 6a 25 29 2b  |,"y","bm"+.(j%)+|
00003b70  c3 28 6b 25 29 29 3a ed  3a ed 0d 11 44 05 cd 0d  |.(k%)):.:...D...|
00003b80  11 4e 31 61 63 68 61 6e  67 65 25 3d 2d 31 3a 64  |.N1achange%=-1:d|
00003b90  6f 6e 65 63 68 61 6e 67  65 25 28 31 29 3d 2d 31  |onechange%(1)=-1|
00003ba0  3a 61 6e 69 6d 74 69 6d  65 25 28 31 29 3d 2d 31  |:animtime%(1)=-1|
00003bb0  0d 11 58 05 e1 0d 11 62  04 0d 11 6c 0c dd f2 66  |..X....b...l...f|
00003bc0  75 6c 6c 62 6d 0d 11 76  08 ea 20 6a 25 0d 11 80  |ullbm..v.. j%...|
00003bd0  0c e7 62 6d 25 3c 32 20  8c 0d 11 8a 53 20 ef 31  |..bm%<2 ....S .1|
00003be0  38 2c 30 2c 33 3a ef 32  35 2c 34 2c 62 6f 6f 6b  |8,0,3:.25,4,book|
00003bf0  25 28 30 29 2b 31 34 34  3b 62 6f 6f 6b 25 28 31  |%(0)+144;book%(1|
00003c00  29 2b 36 30 2d 28 28 62  6d 25 83 32 29 2a 35 32  |)+60-((bm%.2)*52|
00003c10  29 3b 3a ef 32 35 2c 39  37 2c 28 6c 65 6e 62 6d  |);:.25,97,(lenbm|
00003c20  25 2a 32 29 2d 32 3b 34  38 2d 32 3b 0d 11 94 54  |%*2)-2;48-2;...T|
00003c30  20 ef 31 38 2c 30 2c 39  3a ef 32 35 2c 34 2c 62  | .18,0,9:.25,4,b|
00003c40  6f 6f 6b 25 28 30 29 2b  31 34 36 3b 62 6f 6f 6b  |ook%(0)+146;book|
00003c50  25 28 31 29 2b 36 34 2d  28 28 62 6d 25 83 32 29  |%(1)+64-((bm%.2)|
00003c60  2a 35 32 29 3b 3a ef 32  35 2c 39 37 2c 28 6c 65  |*52);:.25,97,(le|
00003c70  6e 62 6d 25 2a 32 29 2d  36 3b 34 38 2d 31 30 3b  |nbm%*2)-6;48-10;|
00003c80  0d 11 9e 5c 20 ef 35 3a  ef 32 35 2c 34 2c 62 6f  |...\ .5:.25,4,bo|
00003c90  6f 6b 25 28 30 29 2b 31  37 34 2b 28 28 38 2b 28  |ok%(0)+174+((8+(|
00003ca0  28 28 6d 61 78 62 6d 25  2d a9 28 63 68 24 28 62  |((maxbm%-.(ch$(b|
00003cb0  6d 25 29 29 29 2f 32 29  2a 38 29 29 2a 32 29 3b  |m%)))/2)*8))*2);|
00003cc0  62 6f 6f 6b 25 28 31 29  2b 36 30 2b 33 36 2d 28  |book%(1)+60+36-(|
00003cd0  28 62 6d 25 83 32 29 2a  35 32 29 3b 0d 11 a8 05  |(bm%.2)*52);....|
00003ce0  cc 0d 11 b2 52 20 ef 31  38 2c 30 2c 33 3a ef 32  |....R .18,0,3:.2|
00003cf0  35 2c 34 2c 62 6f 6f 6b  25 28 30 29 2b 33 36 3b  |5,4,book%(0)+36;|
00003d00  62 6f 6f 6b 25 28 31 29  2b 36 30 2d 28 28 62 6d  |book%(1)+60-((bm|
00003d10  25 83 32 29 2a 35 32 29  3b 3a ef 32 35 2c 39 37  |%.2)*52);:.25,97|
00003d20  2c 32 2d 28 6c 65 6e 62  6d 25 2a 32 29 3b 34 38  |,2-(lenbm%*2);48|
00003d30  2d 32 3b 0d 11 bc 53 20  ef 31 38 2c 30 2c 39 3a  |-2;...S .18,0,9:|
00003d40  ef 32 35 2c 34 2c 62 6f  6f 6b 25 28 30 29 2b 33  |.25,4,book%(0)+3|
00003d50  34 3b 62 6f 6f 6b 25 28  31 29 2b 36 34 2d 28 28  |4;book%(1)+64-((|
00003d60  62 6d 25 83 32 29 2a 35  32 29 3b 3a ef 32 35 2c  |bm%.2)*52);:.25,|
00003d70  39 37 2c 36 2d 28 6c 65  6e 62 6d 25 2a 32 29 3b  |97,6-(lenbm%*2);|
00003d80  34 38 2d 31 30 3b 0d 11  c6 66 20 ef 35 3a ef 32  |48-10;...f .5:.2|
00003d90  35 2c 34 2c 62 6f 6f 6b  25 28 30 29 2b 33 36 2d  |5,4,book%(0)+36-|
00003da0  28 6c 65 6e 62 6d 25 2a  32 29 2b 28 28 38 2b 28  |(lenbm%*2)+((8+(|
00003db0  28 28 6d 61 78 62 6d 25  2d a9 28 63 68 24 28 62  |((maxbm%-.(ch$(b|
00003dc0  6d 25 29 29 29 2f 32 29  2a 38 29 29 2a 32 29 3b  |m%)))/2)*8))*2);|
00003dd0  62 6f 6f 6b 25 28 31 29  2b 36 30 2b 33 36 2d 28  |book%(1)+60+36-(|
00003de0  28 62 6d 25 83 32 29 2a  35 32 29 3b 0d 11 d0 05  |(bm%.2)*52);....|
00003df0  cd 0d 11 da 13 6a 25 3d  62 6d 25 3a f2 70 72 69  |.....j%=bm%:.pri|
00003e00  6e 74 62 6d 0d 11 e4 05  e1 0d 11 ee 04 0d 11 f8  |ntbm............|
00003e10  0d dd f2 70 72 69 6e 74  62 6d 0d 12 02 1d e7 62  |...printbm.....b|
00003e20  6d 25 3d 6a 25 3a ef 31  38 2c 30 2c 38 3a 8b 3a  |m%=j%:.18,0,8:.:|
00003e30  ef 31 38 2c 30 2c 33 0d  12 0c 20 ef 32 33 2c 31  |.18,0,3... .23,1|
00003e40  37 2c 37 2c 25 31 30 2c  38 3b 38 2a 63 67 61 76  |7,7,%10,8;8*cgav|
00003e50  67 61 25 3b 30 2c 30 0d  12 16 0d f1 20 63 68 24  |ga%;0,0..... ch$|
00003e60  28 6a 25 29 0d 12 20 1b  ef 32 33 2c 31 37 2c 37  |(j%).. ..23,17,7|
00003e70  2c 25 31 30 2c 38 3b 38  3b 30 2c 30 3a ef 34 0d  |,%10,8;8;0,0:.4.|
00003e80  12 2a 05 e1 0d 12 34 04  0d 12 3e 0f dd f2 6d 6f  |.*....4...>...mo|
00003e90  75 73 65 66 75 6c 6c 0d  12 48 16 c8 97 20 c8 93  |usefull..H... ..|
00003ea0  20 30 2c 30 2c 31 32 37  39 2c 39 36 30 0d 12 52  | 0,0,1279,960..R|
00003eb0  05 e1 0d 12 5c 04 0d 12  66 2f dd f2 73 61 76 65  |....\...f/..save|
00003ec0  73 70 62 67 72 64 28 78  5f 70 6f 73 25 2c 79 5f  |spbgrd(x_pos%,y_|
00003ed0  70 6f 73 25 2c 73 70 6e  61 6d 65 24 2c 62 67 6e  |pos%,spname$,bgn|
00003ee0  61 6d 65 24 29 0d 12 70  0b ea 20 77 25 2c 68 25  |ame$)..p.. w%,h%|
00003ef0  0d 12 7a 34 c8 99 20 22  4f 53 5f 53 70 72 69 74  |..z4.. "OS_Sprit|
00003f00  65 4f 70 22 2c 26 31 32  38 2c 73 70 61 72 65 61  |eOp",&128,sparea|
00003f10  25 2c 73 70 6e 61 6d 65  24 20 b8 20 2c 2c 2c 77  |%,spname$ . ,,,w|
00003f20  25 2c 68 25 0d 12 84 2e  f2 73 61 76 65 62 67 72  |%,h%.....savebgr|
00003f30  64 28 78 5f 70 6f 73 25  2c 79 5f 70 6f 73 25 2c  |d(x_pos%,y_pos%,|
00003f40  77 25 2a 32 2c 68 25 2a  34 2c 62 67 6e 61 6d 65  |w%*2,h%*4,bgname|
00003f50  24 29 0d 12 8e 05 e1 0d  12 98 04 0d 12 a2 33 dd  |$)............3.|
00003f60  f2 73 61 76 65 62 67 72  64 28 78 5f 70 6f 73 25  |.savebgrd(x_pos%|
00003f70  2c 79 5f 70 6f 73 25 2c  78 5f 73 69 7a 25 2c 79  |,y_pos%,x_siz%,y|
00003f80  5f 73 69 7a 25 2c 62 67  6e 61 6d 65 24 29 0d 12  |_siz%,bgname$)..|
00003f90  ac 55 c8 99 20 22 4f 53  5f 53 70 72 69 74 65 4f  |.U.. "OS_SpriteO|
00003fa0  70 22 2c 26 31 31 30 2c  73 70 61 72 65 61 25 2c  |p",&110,sparea%,|
00003fb0  62 67 6e 61 6d 65 24 2c  30 2c 78 5f 70 6f 73 25  |bgname$,0,x_pos%|
00003fc0  2c 79 5f 70 6f 73 25 2c  78 5f 70 6f 73 25 2b 78  |,y_pos%,x_pos%+x|
00003fd0  5f 73 69 7a 25 2c 79 5f  70 6f 73 25 2b 79 5f 73  |_siz%,y_pos%+y_s|
00003fe0  69 7a 25 0d 12 b6 05 e1  0d 12 c0 04 0d 12 ca 12  |iz%.............|
00003ff0  dd f2 64 65 6c 65 74 65  28 73 70 6e 24 29 0d 12  |..delete(spn$)..|
00004000  d4 26 c8 99 20 22 4f 53  5f 53 70 72 69 74 65 4f  |.&.. "OS_SpriteO|
00004010  70 22 2c 26 31 31 39 2c  73 70 61 72 65 61 25 2c  |p",&119,sparea%,|
00004020  73 70 6e 24 0d 12 de 05  e1 0d 12 e8 04 0d 12 f2  |spn$............|
00004030  13 dd a4 73 63 72 65 65  6e 5f 6e 75 6d 62 65 72  |...screen_number|
00004040  0d 12 fc 09 73 63 25 3d  30 0d 13 06 05 f5 0d 13  |....sc%=0.......|
00004050  10 18 73 63 25 3d 73 63  25 2b 31 3a 73 63 24 3d  |..sc%=sc%+1:sc$=|
00004060  c3 28 73 63 25 29 0d 13  1a 32 c8 99 22 58 4f 53  |.(sc%)...2.."XOS|
00004070  5f 46 69 6e 64 22 2c 26  34 30 2c 22 3c 45 6c 66  |_Find",&40,"<Elf|
00004080  4b 24 53 61 76 65 3e 2e  73 63 72 65 65 6e 22 2b  |K$Save>.screen"+|
00004090  73 63 24 20 b8 20 68 25  0d 13 24 0f e7 68 25 3c  |sc$ . h%..$..h%<|
000040a0  3e 30 3a d9 23 68 25 0d  13 2e 09 fd 68 25 3d 30  |>0:.#h%.....h%=0|
000040b0  0d 13 38 08 3d 73 63 25  0d 13 42 04 0d 13 4c 0d  |..8.=sc%..B...L.|
000040c0  dd f2 70 72 69 6e 74 65  72 0d 13 56 09 ea 20 64  |..printer..V.. d|
000040d0  69 25 0d 13 60 28 e7 28  4c 25 3c 3d 31 30 33 30  |i%..`(.(L%<=1030|
000040e0  29 84 28 4c 25 3e 3d 31  31 31 30 29 3a 64 69 25  |).(L%>=1110):di%|
000040f0  3d 31 3a 8b 3a 64 69 25  3d 32 0d 13 6a 07 ef 32  |=1:.:di%=2..j..2|
00004100  36 0d 13 74 2f c8 91 30  2c 30 3a c8 99 22 58 4f  |6..t/..0,0:.."XO|
00004110  53 5f 53 70 72 69 74 65  4f 70 22 2c 26 31 31 39  |S_SpriteOp",&119|
00004120  2c 73 70 61 72 65 61 25  2c 22 62 6c 61 6e 6b 22  |,sparea%,"blank"|
00004130  0d 13 7e 33 21 70 73 63  61 6c 65 25 3d 31 3a 70  |..~3!pscale%=1:p|
00004140  73 63 61 6c 65 25 21 34  3d 31 3a 70 73 63 61 6c  |scale%!4=1:pscal|
00004150  65 25 21 38 3d 31 3a 70  73 63 61 6c 65 25 21 31  |e%!8=1:pscale%!1|
00004160  32 3d 31 0d 13 88 0a ea  46 25 2c 45 25 0d 13 92  |2=1.....F%,E%...|
00004170  14 46 25 3d ae 28 22 70  72 69 6e 74 65 72 3a 22  |.F%=.("printer:"|
00004180  29 0d 13 9c 07 ea 20 85  0d 13 a6 1d ee 85 ea 3a  |)..... ........:|
00004190  f7 20 85 3a d9 23 46 25  3a ff 22 46 58 32 32 39  |. .:.#F%:."FX229|
000041a0  2c 30 22 3a e1 0d 13 b0  c1 f4 4f 4e 45 52 52 4f  |,0":......ONERRO|
000041b0  52 4c 4f 43 41 4c 3a 52  45 53 54 4f 52 45 20 45  |RLOCAL:RESTORE E|
000041c0  52 52 4f 52 3a 43 4c 4f  53 45 23 46 25 3a 4f 53  |RROR:CLOSE#F%:OS|
000041d0  43 4c 49 22 46 58 32 32  39 2c 30 22 3a 53 59 53  |CLI"FX229,0":SYS|
000041e0  22 4f 53 5f 42 79 74 65  22 2c 32 35 30 2c 30 2c  |"OS_Byte",250,0,|
000041f0  32 35 35 20 54 4f 20 2c  73 63 72 25 3a 53 59 53  |255 TO ,scr%:SYS|
00004200  22 4f 53 5f 42 79 74 65  22 2c 31 31 33 2c 73 63  |"OS_Byte",113,sc|
00004210  72 25 3a 50 52 49 4e 54  20 52 45 50 4f 52 54 24  |r%:PRINT REPORT$|
00004220  2b 22 20 28 49 6e 74 65  72 6e 61 6c 20 65 72 72  |+" (Internal err|
00004230  6f 72 20 63 6f 64 65 20  22 2b 53 54 52 24 45 52  |or code "+STR$ER|
00004240  4c 2b 22 29 22 2b 43 48  52 24 30 3a 50 52 4f 43  |L+")"+CHR$0:PROC|
00004250  77 61 69 74 28 35 30 30  29 3a 50 52 4f 43 64 65  |wait(500):PROCde|
00004260  73 6b 5f 74 6f 70 0d 13  ba 20 c8 99 22 50 44 72  |sk_top... .."PDr|
00004270  69 76 65 72 5f 53 65 6c  65 63 74 4a 6f 62 22 2c  |iver_SelectJob",|
00004280  46 25 2c 30 2c 30 0d 13  c4 07 ea 20 85 0d 13 ce  |F%,0,0..... ....|
00004290  4e ee 85 ea 3a f7 20 85  3a c8 99 22 50 44 72 69  |N...:. .:.."PDri|
000042a0  76 65 72 5f 41 62 6f 72  74 4a 6f 62 22 2c 46 25  |ver_AbortJob",F%|
000042b0  3a c8 99 22 50 44 72 69  76 65 72 5f 53 65 6c 65  |:.."PDriver_Sele|
000042c0  63 74 4a 6f 62 22 2c 45  25 3a d9 23 46 25 3a ff  |ctJob",E%:.#F%:.|
000042d0  22 46 58 32 32 39 2c 30  22 3a e1 0d 13 d8 f4 f4  |"FX229,0":......|
000042e0  4f 4e 45 52 52 4f 52 4c  4f 43 41 4c 3a 52 45 53  |ONERRORLOCAL:RES|
000042f0  54 4f 52 45 20 45 52 52  4f 52 3a 53 59 53 22 50  |TORE ERROR:SYS"P|
00004300  44 72 69 76 65 72 5f 41  62 6f 72 74 4a 6f 62 22  |Driver_AbortJob"|
00004310  2c 46 25 3a 53 59 53 22  50 44 72 69 76 65 72 5f  |,F%:SYS"PDriver_|
00004320  53 65 6c 65 63 74 4a 6f  62 22 2c 45 25 3a 43 4c  |SelectJob",E%:CL|
00004330  4f 53 45 23 46 25 3a 4f  53 43 4c 49 22 46 58 32  |OSE#F%:OSCLI"FX2|
00004340  32 39 2c 30 22 3a 53 59  53 22 4f 53 5f 42 79 74  |29,0":SYS"OS_Byt|
00004350  65 22 2c 32 35 30 2c 30  2c 32 35 35 20 54 4f 20  |e",250,0,255 TO |
00004360  2c 73 63 72 25 3a 53 59  53 22 4f 53 5f 42 79 74  |,scr%:SYS"OS_Byt|
00004370  65 22 2c 31 31 33 2c 73  63 72 25 3a 50 52 49 4e  |e",113,scr%:PRIN|
00004380  54 20 52 45 50 4f 52 54  24 2b 22 20 28 49 6e 74  |T REPORT$+" (Int|
00004390  65 72 6e 61 6c 20 65 72  72 6f 72 20 63 6f 64 65  |ernal error code|
000043a0  20 22 2b 53 54 52 24 45  52 4c 2b 22 29 22 2b 43  | "+STR$ERL+")"+C|
000043b0  48 52 24 30 3a 50 52 4f  43 77 61 69 74 28 35 30  |HR$0:PROCwait(50|
000043c0  30 29 3a 50 52 4f 43 64  65 73 6b 5f 74 6f 70 0d  |0):PROCdesk_top.|
000043d0  13 e2 45 21 28 70 64 72  65 63 74 25 2b 30 29 3d  |..E!(pdrect%+0)=|
000043e0  30 3a 21 28 70 64 72 65  63 74 25 2b 34 29 3d 30  |0:!(pdrect%+4)=0|
000043f0  3a 21 28 70 64 72 65 63  74 25 2b 38 29 3d 31 32  |:!(pdrect%+8)=12|
00004400  38 30 3a 21 28 70 64 72  65 63 74 25 2b 31 32 29  |80:!(pdrect%+12)|
00004410  3d 39 36 30 0d 13 ec 4c  21 28 70 64 74 72 61 6e  |=960...L!(pdtran|
00004420  73 25 2b 30 29 3d 31 3c  3c 31 36 3a 21 28 70 64  |s%+0)=1<<16:!(pd|
00004430  74 72 61 6e 73 25 2b 34  29 3d 30 3a 21 28 70 64  |trans%+4)=0:!(pd|
00004440  74 72 61 6e 73 25 2b 38  29 3d 30 3a 21 28 70 64  |trans%+8)=0:!(pd|
00004450  74 72 61 6e 73 25 2b 31  32 29 3d 31 3c 3c 31 36  |trans%+12)=1<<16|
00004460  0d 13 f6 2c f4 21 28 70  64 70 6c 6f 74 25 2b 30  |...,.!(pdplot%+0|
00004470  29 3d 31 32 38 3c 3c 38  3a 21 28 70 64 70 6c 6f  |)=128<<8:!(pdplo|
00004480  74 25 2b 34 29 3d 35 31  32 3c 3c 38 0d 14 00 17  |t%+4)=512<<8....|
00004490  21 28 70 64 70 6c 6f 74  25 2b 30 29 3d 31 32 38  |!(pdplot%+0)=128|
000044a0  3c 3c 38 0d 14 0a 2f c8  99 22 50 44 72 69 76 65  |<<8.../.."PDrive|
000044b0  72 5f 50 61 67 65 53 69  7a 65 22 20 b8 20 72 30  |r_PageSize" . r0|
000044c0  2c 72 31 2c 72 32 2c 72  33 2c 72 34 2c 72 35 2c  |,r1,r2,r3,r4,r5,|
000044d0  72 36 0d 14 14 2d c8 99  22 50 44 72 69 76 65 72  |r6...-.."PDriver|
000044e0  5f 53 65 74 50 61 67 65  53 69 7a 65 22 2c 2c 72  |_SetPageSize",,r|
000044f0  31 2c 72 32 2c 72 33 2c  30 2c 72 35 2c 72 36 0d  |1,r2,r3,0,r5,r6.|
00004500  14 1e 41 21 28 70 64 70  6c 6f 74 25 2b 34 29 3d  |..A!(pdplot%+4)=|
00004510  72 36 2d 34 30 30 30 30  30 3a e7 28 70 64 70 6c  |r6-400000:.(pdpl|
00004520  6f 74 25 21 34 29 3c 28  35 31 32 3c 3c 38 29 3a  |ot%!4)<(512<<8):|
00004530  70 64 70 6c 6f 74 25 21  34 3d 35 31 32 3c 3c 38  |pdplot%!4=512<<8|
00004540  0d 14 28 42 c8 99 22 50  44 72 69 76 65 72 5f 47  |..(B.."PDriver_G|
00004550  69 76 65 52 65 63 74 61  6e 67 6c 65 22 2c 30 2c  |iveRectangle",0,|
00004560  70 64 72 65 63 74 25 2c  70 64 74 72 61 6e 73 25  |pdrect%,pdtrans%|
00004570  2c 70 64 70 6c 6f 74 25  2c 26 46 46 46 46 46 46  |,pdplot%,&FFFFFF|
00004580  30 30 0d 14 32 3f c8 99  20 22 4f 53 5f 53 70 72  |00..2?.. "OS_Spr|
00004590  69 74 65 4f 70 22 2c 26  31 33 43 2c 30 2c 30 2c  |iteOp",&13C,0,0,|
000045a0  31 3a c8 99 22 43 6f 6c  6f 75 72 54 72 61 6e 73  |1:.."ColourTrans|
000045b0  5f 49 6e 76 61 6c 69 64  61 74 65 43 61 63 68 65  |_InvalidateCache|
000045c0  22 0d 14 3c 35 c8 99 22  50 44 72 69 76 65 72 5f  |"..<5.."PDriver_|
000045d0  44 72 61 77 50 61 67 65  22 2c 31 2c 70 64 72 65  |DrawPage",1,pdre|
000045e0  63 74 32 25 2c 30 2c 30  20 b8 20 63 6f 70 69 65  |ct2%,0,0 . copie|
000045f0  73 6c 65 66 74 25 0d 14  46 15 c8 95 20 63 6f 70  |sleft%..F... cop|
00004600  69 65 73 6c 65 66 74 25  3c 3e 30 0d 14 50 13 f2  |iesleft%<>0..P..|
00004610  70 64 5f 70 6c 6f 74 5f  73 63 72 65 65 6e 0d 14  |pd_plot_screen..|
00004620  5a 34 c8 99 22 50 44 72  69 76 65 72 5f 47 65 74  |Z4.."PDriver_Get|
00004630  52 65 63 74 61 6e 67 6c  65 22 2c 2c 70 64 72 65  |Rectangle",,pdre|
00004640  63 74 32 25 20 b8 20 63  6f 70 69 65 73 6c 65 66  |ct2% . copieslef|
00004650  74 25 0d 14 64 05 ce 0d  14 6e 19 c8 99 22 50 44  |t%..d....n..."PD|
00004660  72 69 76 65 72 5f 45 6e  64 4a 6f 62 22 2c 46 25  |river_EndJob",F%|
00004670  0d 14 78 07 f7 20 85 0d  14 82 07 f7 20 85 0d 14  |..x.. ...... ...|
00004680  8c 08 d9 23 46 25 0d 14  96 37 f4 53 59 53 22 4f  |...#F%...7.SYS"O|
00004690  53 5f 53 70 72 69 74 65  4f 70 22 2c 26 31 30 46  |S_SpriteOp",&10F|
000046a0  2c 73 70 61 72 65 61 25  2c 22 62 6c 61 6e 6b 22  |,sparea%,"blank"|
000046b0  2c 30 2c 33 38 34 2c 31  39 32 2c 31 32 0d 14 a0  |,0,384,192,12...|
000046c0  0c 2a 46 58 32 32 39 2c  30 0d 14 aa 25 e7 59 25  |.*FX229,0...%.Y%|
000046d0  3d 30 3a f2 63 68 65 63  6b 66 6c 6f 70 70 79 69  |=0:.checkfloppyi|
000046e0  73 74 68 65 72 65 28 64  69 25 2c 22 22 29 0d 14  |sthere(di%,"")..|
000046f0  b4 05 e1 0d 14 be 04 0d  14 c8 14 dd f2 70 64 5f  |.............pd_|
00004700  70 6c 6f 74 5f 73 63 72  65 65 6e 0d 14 d2 13 ea  |plot_screen.....|
00004710  79 25 2c 70 25 2c 69 25  2c 66 25 2c 74 25 0d 14  |y%,p%,i%,f%,t%..|
00004720  dc 0c 2a 46 58 32 32 39  2c 31 0d 14 e6 10 e3 79  |..*FX229,1.....y|
00004730  25 3d 30 b8 39 33 36 88  32 34 0d 14 f0 1f c8 99  |%=0.936.24......|
00004740  22 50 44 72 69 76 65 72  5f 53 65 6c 65 63 74 4a  |"PDriver_SelectJ|
00004750  6f 62 22 2c 30 2c 30 2c  30 0d 14 fa 48 c8 99 22  |ob",0,0,0...H.."|
00004760  4f 53 5f 53 70 72 69 74  65 4f 70 22 2c 26 31 31  |OS_SpriteOp",&11|
00004770  30 2c 73 70 61 72 65 61  25 2c 22 62 6c 61 6e 6b  |0,sparea%,"blank|
00004780  22 2c 31 2c 30 2c 79 25  2c 31 32 37 39 2c 79 25  |",1,0,y%,1279,y%|
00004790  2b 32 34 20 b8 20 72 30  25 2c 72 31 25 2c 72 32  |+24 . r0%,r1%,r2|
000047a0  25 0d 15 04 33 21 70 73  63 61 6c 65 25 3d 31 3a  |%...3!pscale%=1:|
000047b0  70 73 63 61 6c 65 25 21  34 3d 31 3a 70 73 63 61  |pscale%!4=1:psca|
000047c0  6c 65 25 21 38 3d 31 3a  70 73 63 61 6c 65 25 21  |le%!8=1:pscale%!|
000047d0  31 32 3d 31 0d 15 0e 20  c8 99 22 50 44 72 69 76  |12=1... .."PDriv|
000047e0  65 72 5f 53 65 6c 65 63  74 4a 6f 62 22 2c 46 25  |er_SelectJob",F%|
000047f0  2c 30 2c 30 0d 15 18 39  66 25 3d 28 72 32 25 2b  |,0,0...9f%=(r2%+|
00004800  34 34 29 3a 74 25 3d 70  61 6c 74 61 62 25 3a e3  |44):t%=paltab%:.|
00004810  69 25 3d 30 b8 31 35 3a  21 74 25 3d 21 66 25 3a  |i%=0.15:!t%=!f%:|
00004820  74 25 2b 3d 34 3a 66 25  2b 3d 38 3a ed 0d 15 22  |t%+=4:f%+=8:..."|
00004830  38 c8 99 22 43 6f 6c 6f  75 72 54 72 61 6e 73 5f  |8.."ColourTrans_|
00004840  53 65 6c 65 63 74 54 61  62 6c 65 22 2c 31 32 2c  |SelectTable",12,|
00004850  70 61 6c 74 61 62 25 2c  2d 31 2c 2d 31 2c 63 74  |paltab%,-1,-1,ct|
00004860  72 61 6e 73 25 0d 15 2c  3c c8 99 20 22 4f 53 5f  |rans%..,<.. "OS_|
00004870  53 70 72 69 74 65 4f 70  22 2c 26 32 33 34 2c 73  |SpriteOp",&234,s|
00004880  70 61 72 65 61 25 2c 72  32 25 2c 30 2c 79 25 2c  |parea%,r2%,0,y%,|
00004890  30 2c 70 73 63 61 6c 65  25 2c 63 74 72 61 6e 73  |0,pscale%,ctrans|
000048a0  25 0d 15 36 05 ed 0d 15  40 05 e1 0d 15 4a 04 0d  |%..6....@....J..|
000048b0  15 54 11 dd f2 73 63 72  65 65 6e 5f 73 61 76 65  |.T...screen_save|
000048c0  0d 15 5e 09 ea 20 64 69  25 0d 15 68 28 e7 28 4c  |..^.. di%..h(.(L|
000048d0  25 3c 3d 31 30 33 30 29  84 28 4c 25 3e 3d 31 31  |%<=1030).(L%>=11|
000048e0  31 30 29 3a 64 69 25 3d  31 3a 8b 3a 64 69 25 3d  |10):di%=1:.:di%=|
000048f0  32 0d 15 72 0d f2 77 61  69 74 28 35 30 29 0d 15  |2..r..wait(50)..|
00004900  7c 07 ef 32 36 0d 15 86  39 e7 59 25 3d 30 3a f2  ||..26...9.Y%=0:.|
00004910  66 6c 6f 70 70 79 5f 73  63 72 65 65 6e 5f 73 61  |floppy_screen_sa|
00004920  76 65 3a f2 63 68 65 63  6b 66 6c 6f 70 70 79 69  |ve:.checkfloppyi|
00004930  73 74 68 65 72 65 28 64  69 25 2c 22 22 29 0d 15  |sthere(di%,"")..|
00004940  90 1b e7 59 25 3d 31 3a  f2 68 61 72 64 5f 73 63  |...Y%=1:.hard_sc|
00004950  72 65 65 6e 5f 73 61 76  65 0d 15 9a 0d f2 77 61  |reen_save.....wa|
00004960  69 74 28 35 30 29 0d 15  a4 09 2a 66 78 31 35 0d  |it(50)....*fx15.|
00004970  15 ae 05 e1 0d 15 b8 04  0d 15 c2 14 dd f2 6d 65  |..............me|
00004980  72 67 65 73 63 72 32 31  28 43 25 29 0d 15 cc 31  |rgescr21(C%)...1|
00004990  f4 20 74 69 6d 65 20 6f  66 20 6d 65 72 67 65 20  |. time of merge |
000049a0  69 73 20 61 70 70 72 6f  78 20 28 43 25 2a 31 36  |is approx (C%*16|
000049b0  29 2f 31 30 30 20 73 65  63 6f 6e 64 73 0d 15 d6  |)/100 seconds...|
000049c0  0d 41 25 3d 32 3a 42 25  3d 31 0d 15 e0 0f d6 20  |.A%=2:B%=1..... |
000049d0  6d 65 72 67 65 73 63 72  25 0d 15 ea 31 c8 96 3a  |mergescr%...1..:|
000049e0  c8 99 20 22 4f 53 5f 42  79 74 65 22 2c 31 31 33  |.. "OS_Byte",113|
000049f0  2c 31 3a c8 99 20 22 4f  53 5f 42 79 74 65 22 2c  |,1:.. "OS_Byte",|
00004a00  31 31 32 2c 31 3a ef 20  32 36 0d 15 f4 05 e1 0d  |112,1:. 26......|
00004a10  15 fe 04 0d 16 08 14 dd  f2 73 63 72 63 6f 70 79  |.........scrcopy|
00004a20  28 41 25 2c 42 25 29 0d  16 12 17 c8 99 20 22 4f  |(A%,B%)...... "O|
00004a30  53 5f 42 79 74 65 22 2c  31 31 33 2c 41 25 0d 16  |S_Byte",113,A%..|
00004a40  1c 0e d6 20 63 6f 70 79  73 63 72 25 0d 16 26 31  |... copyscr%..&1|
00004a50  c8 96 3a c8 99 20 22 4f  53 5f 42 79 74 65 22 2c  |..:.. "OS_Byte",|
00004a60  31 31 33 2c 31 3a c8 99  20 22 4f 53 5f 42 79 74  |113,1:.. "OS_Byt|
00004a70  65 22 2c 31 31 32 2c 31  3a ef 20 32 36 0d 16 30  |e",112,1:. 26..0|
00004a80  05 e1 0d 16 3a 04 0d 16  44 0f dd f2 73 63 72 63  |....:...D...scrc|
00004a90  6f 70 79 32 31 0d 16 4e  20 c8 99 20 22 4f 53 5f  |opy21..N .. "OS_|
00004aa0  42 79 74 65 22 2c 31 31  33 2c 32 3a 41 25 3d 32  |Byte",113,2:A%=2|
00004ab0  3a 42 25 3d 31 0d 16 58  0e d6 20 63 6f 70 79 73  |:B%=1..X.. copys|
00004ac0  63 72 25 0d 16 62 31 c8  96 3a c8 99 20 22 4f 53  |cr%..b1..:.. "OS|
00004ad0  5f 42 79 74 65 22 2c 31  31 33 2c 31 3a c8 99 20  |_Byte",113,1:.. |
00004ae0  22 4f 53 5f 42 79 74 65  22 2c 31 31 32 2c 31 3a  |"OS_Byte",112,1:|
00004af0  ef 20 32 36 0d 16 6c 05  e1 0d 16 76 04 0d 16 80  |. 26..l....v....|
00004b00  27 dd f2 73 63 72 63 6f  70 79 62 6c 6f 63 6b 28  |'..scrcopyblock(|
00004b10  78 25 2c 79 25 2c 73 78  25 2c 73 79 25 2c 41 25  |x%,y%,sx%,sy%,A%|
00004b20  2c 42 25 29 0d 16 8a 43  f4 20 41 25 3d 61 64 64  |,B%)...C. A%=add|
00004b30  72 20 74 6f 20 63 6f 70  79 20 66 72 6f 6d 2e 20  |r to copy from. |
00004b40  42 25 3d 61 64 64 72 20  74 6f 2e 20 43 25 3d 77  |B%=addr to. C%=w|
00004b50  69 64 74 68 20 69 6e 20  77 6f 72 64 73 2e 20 44  |idth in words. D|
00004b60  25 3d 72 6f 77 73 2e 0d  16 94 33 e7 41 25 3d 31  |%=rows....3.A%=1|
00004b70  3a 41 25 3d 4b 25 21 26  43 30 3a 42 25 3d 4b 25  |:A%=K%!&C0:B%=K%|
00004b80  21 26 43 34 3a 8b 3a 41  25 3d 4b 25 21 26 43 34  |!&C4:.:A%=K%!&C4|
00004b90  3a 42 25 3d 4b 25 21 26  43 30 0d 16 9e 57 43 25  |:B%=K%!&C0...WC%|
00004ba0  3d 39 36 30 2d 28 28 79  25 2b 73 79 25 29 2d 28  |=960-((y%+sy%)-(|
00004bb0  28 79 25 2b 73 79 25 29  83 34 29 29 3a 43 25 3d  |(y%+sy%).4)):C%=|
00004bc0  28 63 67 61 76 67 61 25  2a 28 33 32 30 2a 28 43  |(cgavga%*(320*(C|
00004bd0  25 2f 34 29 29 29 2b 28  34 2a a8 28 78 25 2f 31  |%/4)))+(4*.(x%/1|
00004be0  36 29 29 3a 41 25 2b 3d  43 25 3a 42 25 2b 3d 43  |6)):A%+=C%:B%+=C|
00004bf0  25 0d 16 a8 3e 43 25 3d  a8 28 73 78 25 2f 31 36  |%...>C%=.(sx%/16|
00004c00  29 2b 32 3a 44 25 3d 63  67 61 76 67 61 25 2a a8  |)+2:D%=cgavga%*.|
00004c10  28 73 79 25 2f 34 29 3a  e7 28 73 79 25 83 34 29  |(sy%/4):.(sy%.4)|
00004c20  3c 3e 30 3a 44 25 2b 3d  63 67 61 76 67 61 25 0d  |<>0:D%+=cgavga%.|
00004c30  16 b2 64 f4 50 52 49 4e  54 20 78 25 3b 22 20 22  |..d.PRINT x%;" "|
00004c40  3b 79 25 3b 22 20 22 3b  73 78 25 3b 22 20 22 3b  |;y%;" ";sx%;" ";|
00004c50  73 79 25 3b 22 20 22 3b  7e 28 4b 25 21 26 43 30  |sy%;" ";~(K%!&C0|
00004c60  29 3b 22 20 22 3b 7e 28  4b 25 21 26 43 34 29 3b  |);" ";~(K%!&C4);|
00004c70  22 20 22 3b 7e 41 25 3b  22 20 22 3b 7e 42 25 3b  |" ";~A%;" ";~B%;|
00004c80  22 20 22 3b 43 25 3b 22  20 22 3b 44 25 3a 58 3d  |" ";C%;" ";D%:X=|
00004c90  47 45 54 0d 16 bc 13 d6  20 63 6f 70 79 73 63 72  |GET..... copyscr|
00004ca0  62 6c 6f 63 6b 25 0d 16  c6 05 e1 0d 16 d0 04 0d  |block%..........|
00004cb0  16 da 36 dd f2 73 63 72  63 6f 70 79 62 6c 6f 63  |..6..scrcopybloc|
00004cc0  6b 70 69 78 28 78 25 2c  79 25 2c 73 78 25 2c 73  |kpix(x%,y%,sx%,s|
00004cd0  79 25 2c 66 72 6f 6d 25  2c 74 6f 25 2c 66 69 6e  |y%,from%,to%,fin|
00004ce0  67 62 67 25 29 0d 16 e4  a1 f4 20 41 25 3d 61 64  |gbg%)..... A%=ad|
00004cf0  64 72 20 74 6f 20 63 6f  70 79 20 66 72 6f 6d 2e  |dr to copy from.|
00004d00  20 42 25 3d 61 64 64 72  20 74 6f 2e 20 45 61 63  | B%=addr to. Eac|
00004d10  68 20 72 6f 77 20 63 6f  6e 73 69 73 74 73 20 6f  |h row consists o|
00004d20  66 20 3a 2d 20 43 25 20  4c 2d 70 69 78 65 6c 73  |f :- C% L-pixels|
00004d30  20 28 30 2c 31 29 3a 44  25 20 4c 2d 62 79 74 65  | (0,1):D% L-byte|
00004d40  73 20 28 30 2c 31 2c 32  2c 33 29 3a 45 25 20 77  |s (0,1,2,3):E% w|
00004d50  6f 72 64 73 3a 46 25 20  52 2d 62 79 74 65 73 20  |ords:F% R-bytes |
00004d60  28 30 2c 31 2c 32 2c 33  29 3a 47 25 20 52 2d 70  |(0,1,2,3):G% R-p|
00004d70  69 78 65 6c 73 2e 20 20  48 25 3d 6e 6f 2e 20 6f  |ixels.  H%=no. o|
00004d80  66 20 72 6f 77 73 0d 16  ee 13 ea 20 78 78 25 2c  |f rows..... xx%,|
00004d90  78 78 78 25 2c 73 78 78  25 0d 16 f8 36 e7 66 72  |xxx%,sxx%...6.fr|
00004da0  6f 6d 25 3d 31 3a 41 25  3d 4b 25 21 26 43 30 3a  |om%=1:A%=K%!&C0:|
00004db0  42 25 3d 4b 25 21 26 43  34 3a 8b 3a 41 25 3d 4b  |B%=K%!&C4:.:A%=K|
00004dc0  25 21 26 43 34 3a 42 25  3d 4b 25 21 26 43 30 0d  |%!&C4:B%=K%!&C0.|
00004dd0  17 02 52 43 25 3d 39 36  30 2d 28 28 79 25 2b 73  |..RC%=960-((y%+s|
00004de0  79 25 29 2d 28 28 79 25  2b 73 79 25 29 83 34 29  |y%)-((y%+sy%).4)|
00004df0  29 3a 43 25 3d 28 63 67  61 76 67 61 25 2a 28 33  |):C%=(cgavga%*(3|
00004e00  32 30 2a 28 43 25 2f 34  29 29 29 2b a8 28 78 25  |20*(C%/4)))+.(x%|
00004e10  2f 34 29 3a 41 25 2b 3d  43 25 3a 42 25 2b 3d 43  |/4):A%+=C%:B%+=C|
00004e20  25 0d 17 0c 0a 78 78 25  3d 78 25 0d 17 16 22 e7  |%....xx%=x%...".|
00004e30  28 78 25 83 34 29 3d 30  20 8c 3a 43 25 3d 30 3a  |(x%.4)=0 .:C%=0:|
00004e40  8b 3a 43 25 3d 31 3a 78  78 25 2b 3d 32 0d 17 20  |.:C%=1:xx%+=2.. |
00004e50  2c e7 28 28 78 25 83 31  36 29 3e 30 29 80 28 28  |,.((x%.16)>0).((|
00004e60  78 25 83 31 36 29 3c 3d  34 29 20 8c 3a 44 25 3d  |x%.16)<=4) .:D%=|
00004e70  33 3a 78 78 25 2b 3d 31  32 0d 17 2a 2b e7 28 28  |3:xx%+=12..*+.((|
00004e80  78 25 83 31 36 29 3e 34  29 80 28 28 78 25 83 31  |x%.16)>4).((x%.1|
00004e90  36 29 3c 3d 38 29 20 8c  3a 44 25 3d 32 3a 78 78  |6)<=8) .:D%=2:xx|
00004ea0  25 2b 3d 38 0d 17 34 2c  e7 28 28 78 25 83 31 36  |%+=8..4,.((x%.16|
00004eb0  29 3e 38 29 80 28 28 78  25 83 31 36 29 3c 3d 31  |)>8).((x%.16)<=1|
00004ec0  32 29 20 8c 3a 44 25 3d  31 3a 78 78 25 2b 3d 34  |2) .:D%=1:xx%+=4|
00004ed0  0d 17 3e 34 e7 28 28 28  78 25 83 31 36 29 3e 31  |..>4.(((x%.16)>1|
00004ee0  32 29 80 28 28 78 25 83  31 36 29 3c 3d 31 35 29  |2).((x%.16)<=15)|
00004ef0  29 84 28 28 78 25 83 31  36 29 3d 30 29 20 8c 3a  |).((x%.16)=0) .:|
00004f00  44 25 3d 30 0d 17 48 19  73 78 78 25 3d 78 25 2b  |D%=0..H.sxx%=x%+|
00004f10  73 78 25 3a 78 78 78 25  3d 73 78 78 25 0d 17 52  |sx%:xxx%=sxx%..R|
00004f20  25 e7 28 73 78 78 25 83  34 29 3d 30 20 8c 3a 47  |%.(sxx%.4)=0 .:G|
00004f30  25 3d 30 3a 8b 3a 47 25  3d 31 3a 78 78 78 25 2d  |%=0:.:G%=1:xxx%-|
00004f40  3d 32 0d 17 5c 28 e7 28  28 73 78 78 25 83 31 36  |=2..\(.((sxx%.16|
00004f50  29 3e 3d 30 29 80 28 28  73 78 78 25 83 31 36 29  |)>=0).((sxx%.16)|
00004f60  3c 34 29 20 8c 3a 46 25  3d 30 0d 17 66 30 e7 28  |<4) .:F%=0..f0.(|
00004f70  28 73 78 78 25 83 31 36  29 3e 3d 34 29 80 28 28  |(sxx%.16)>=4).((|
00004f80  73 78 78 25 83 31 36 29  3c 38 29 20 8c 3a 46 25  |sxx%.16)<8) .:F%|
00004f90  3d 31 3a 78 78 78 25 2d  3d 34 0d 17 70 31 e7 28  |=1:xxx%-=4..p1.(|
00004fa0  28 73 78 78 25 83 31 36  29 3e 3d 38 29 80 28 28  |(sxx%.16)>=8).((|
00004fb0  73 78 78 25 83 31 36 29  3c 31 32 29 20 8c 3a 46  |sxx%.16)<12) .:F|
00004fc0  25 3d 32 3a 78 78 78 25  2d 3d 38 0d 17 7a 33 e7  |%=2:xxx%-=8..z3.|
00004fd0  28 28 73 78 78 25 83 31  36 29 3e 3d 31 32 29 80  |((sxx%.16)>=12).|
00004fe0  28 28 73 78 78 25 83 31  36 29 3c 31 35 29 20 8c  |((sxx%.16)<15) .|
00004ff0  3a 46 25 3d 33 3a 78 78  78 25 2d 3d 31 32 0d 17  |:F%=3:xxx%-=12..|
00005000  84 14 45 25 3d 28 78 78  78 25 2d 78 78 25 29 2f  |..E%=(xxx%-xx%)/|
00005010  31 36 0d 17 8e 2f 48 25  3d 63 67 61 76 67 61 25  |16.../H%=cgavga%|
00005020  2a a8 28 73 79 25 2f 34  29 3a e7 28 73 79 25 83  |*.(sy%/4):.(sy%.|
00005030  34 29 3c 3e 30 3a 48 25  2b 3d 63 67 61 76 67 61  |4)<>0:H%+=cgavga|
00005040  25 0d 17 98 14 d6 20 63  6f 70 79 73 63 72 62 6c  |%..... copyscrbl|
00005050  6f 63 6b 70 25 0d 17 a2  74 e7 66 69 6e 67 62 67  |ockp%...t.fingbg|
00005060  25 3a ef 32 34 2c 78 25  3b 79 25 3b 78 25 2b 73  |%:.24,x%;y%;x%+s|
00005070  78 25 2d 32 3b 79 25 2b  73 79 25 2d 32 3b 3a c8  |x%-2;y%+sy%-2;:.|
00005080  99 22 4f 53 5f 53 70 72  69 74 65 4f 70 22 2c 26  |."OS_SpriteOp",&|
00005090  31 32 32 2c 73 70 61 72  65 61 25 2c 22 68 30 62  |122,sparea%,"h0b|
000050a0  67 22 2b c3 28 66 72 6f  6d 25 29 2c 78 25 28 66  |g"+.(from%),x%(f|
000050b0  72 6f 6d 25 2d 31 29 2c  79 25 28 66 72 6f 6d 25  |rom%-1),y%(from%|
000050c0  2d 31 29 2c 38 3a ef 32  36 0d 17 ac 05 e1 0d 17  |-1),8:.26.......|
000050d0  b6 04 0d 17 c0 15 dd f2  77 61 74 65 72 66 61 6c  |........waterfal|
000050e0  6c 32 31 28 43 25 29 0d  17 ca 34 f4 20 77 61 74  |l21(C%)...4. wat|
000050f0  65 72 66 61 6c 6c 20 77  69 6c 6c 20 74 61 6b 65  |erfall will take|
00005100  20 61 70 70 72 6f 78 20  28 43 25 2a 31 36 29 2f  | approx (C%*16)/|
00005110  31 30 30 20 73 65 63 6f  6e 64 73 0d 17 d4 25 43  |100 seconds...%C|
00005120  25 3d 43 25 2f 28 4b 25  21 26 46 30 29 3a 43 25  |%=C%/(K%!&F0):C%|
00005130  3d 43 25 2f 34 3a e7 43  25 3d 30 3a 43 25 3d 31  |=C%/4:.C%=0:C%=1|
00005140  0d 17 de 1a 41 25 3d 32  3a 42 25 3d 31 3a d6 20  |....A%=2:B%=1:. |
00005150  77 61 74 65 72 66 61 6c  6c 25 0d 17 e8 31 c8 96  |waterfall%...1..|
00005160  3a c8 99 20 22 4f 53 5f  42 79 74 65 22 2c 31 31  |:.. "OS_Byte",11|
00005170  33 2c 31 3a c8 99 20 22  4f 53 5f 42 79 74 65 22  |3,1:.. "OS_Byte"|
00005180  2c 31 31 32 2c 31 3a ef  20 32 36 0d 17 f2 05 e1  |,112,1:. 26.....|
00005190  0d 17 fc 04 0d 18 06 25  dd f2 73 63 72 63 6f 70  |.......%..scrcop|
000051a0  79 32 31 65 78 70 28 41  25 2c 42 25 2c 43 25 2c  |y21exp(A%,B%,C%,|
000051b0  44 25 2c 45 25 2c 46 25  29 0d 18 10 10 d6 20 62  |D%,E%,F%)..... b|
000051c0  6c 6f 77 75 70 73 63 72  25 0d 18 1a 05 e1 0d 18  |lowupscr%.......|
000051d0  24 04 0d 18 2e 1c dd f2  66 6c 69 70 28 61 72 65  |$.......flip(are|
000051e0  61 25 2c 77 61 79 24 2c  73 70 72 69 24 29 0d 18  |a%,way$,spri$)..|
000051f0  38 51 e7 77 61 79 24 3d  22 79 22 3a c8 99 22 4f  |8Q.way$="y":.."O|
00005200  53 5f 53 70 72 69 74 65  4f 70 22 2c 26 31 32 46  |S_SpriteOp",&12F|
00005210  2c 61 72 65 61 25 2c 73  70 72 69 24 3a 8b 3a c8  |,area%,spri$:.:.|
00005220  99 22 4f 53 5f 53 70 72  69 74 65 4f 70 22 2c 26  |."OS_SpriteOp",&|
00005230  31 32 31 2c 61 72 65 61  25 2c 73 70 72 69 24 0d  |121,area%,spri$.|
00005240  18 42 05 e1 0d 18 4c 04  0d 18 56 14 dd f2 65 6c  |.B....L...V...el|
00005250  66 66 61 64 65 28 77 6f  72 64 25 29 0d 18 60 0f  |ffade(word%)..`.|
00005260  e7 77 6f 72 64 25 3c 30  8c 3a e1 0d 18 6a 42 e7  |.word%<0.:...jB.|
00005270  73 61 79 25 28 77 6f 72  64 25 2c 31 29 3c 3d 37  |say%(word%,1)<=7|
00005280  33 36 3a f2 65 6c 66 66  61 64 65 61 62 6f 76 65  |36:.elffadeabove|
00005290  28 77 6f 72 64 25 29 3a  8b 3a f2 65 6c 66 66 61  |(word%):.:.elffa|
000052a0  64 65 73 69 64 65 28 77  6f 72 64 25 29 0d 18 74  |deside(word%)..t|
000052b0  05 e1 0d 18 7e 04 0d 18  88 19 dd f2 65 6c 66 66  |....~.......elff|
000052c0  61 64 65 61 62 6f 76 65  28 77 6f 72 64 25 29 0d  |adeabove(word%).|
000052d0  18 92 18 ea 20 77 69 64  25 2c 78 25 2c 79 25 2c  |.... wid%,x%,y%,|
000052e0  73 78 25 2c 73 79 25 0d  18 9c 24 77 69 64 25 3d  |sx%,sy%...$wid%=|
000052f0  73 61 79 25 28 77 6f 72  64 25 2c 32 29 2d 73 61  |say%(word%,2)-sa|
00005300  79 25 28 77 6f 72 64 25  2c 30 29 0d 18 a6 1a f2  |y%(word%,0).....|
00005310  63 61 63 68 65 73 6f 75  6e 64 28 22 66 78 70 6f  |cachesound("fxpo|
00005320  70 22 2c 31 29 0d 18 b0  19 c8 99 20 22 4f 53 5f  |p",1)...... "OS_|
00005330  42 79 74 65 22 2c 31 31  32 2c 73 65 65 25 0d 18  |Byte",112,see%..|
00005340  ba 98 e7 73 61 79 68 61  6e 64 25 3a c8 99 22 4f  |...sayhand%:.."O|
00005350  53 5f 53 70 72 69 74 65  4f 70 22 2c 26 31 32 32  |S_SpriteOp",&122|
00005360  2c 73 70 61 72 65 61 25  2c 22 68 30 62 67 22 2b  |,sparea%,"h0bg"+|
00005370  c3 28 73 65 65 25 29 2c  78 25 28 73 65 65 25 2d  |.(see%),x%(see%-|
00005380  31 29 2c 79 25 28 73 65  65 25 2d 31 29 2c 38 3a  |1),y%(see%-1),8:|
00005390  8b 3a c8 99 22 4f 53 5f  53 70 72 69 74 65 4f 70  |.:.."OS_SpriteOp|
000053a0  22 2c 26 31 32 32 2c 73  70 61 72 65 61 25 2c 22  |",&122,sparea%,"|
000053b0  6d 61 67 62 67 22 2b c3  28 73 65 65 25 29 2c 78  |magbg"+.(see%),x|
000053c0  25 28 73 65 65 25 2d 31  29 2c 79 25 28 73 65 65  |%(see%-1),y%(see|
000053d0  25 2d 31 29 2c 38 0d 18  c4 69 c8 99 20 22 4f 53  |%-1),8...i.. "OS|
000053e0  5f 42 79 74 65 22 2c 31  31 32 2c 64 6f 25 3a f2  |_Byte",112,do%:.|
000053f0  73 63 72 63 6f 70 79 28  73 65 65 25 2c 64 6f 25  |scrcopy(see%,do%|
00005400  29 3a 78 25 28 64 6f 25  2d 31 29 3d 78 25 28 73  |):x%(do%-1)=x%(s|
00005410  65 65 25 2d 31 29 3a 79  25 28 64 6f 25 2d 31 29  |ee%-1):y%(do%-1)|
00005420  3d 79 25 28 73 65 65 25  2d 31 29 3a 6f 6f 6d 78  |=y%(see%-1):oomx|
00005430  25 3d 6d 78 25 3a 6f 6f  6d 79 25 3d 6d 79 25 0d  |%=mx%:oomy%=my%.|
00005440  18 ce 0e e7 73 61 79 68  61 6e 64 25 8c 0d 18 d8  |....sayhand%....|
00005450  69 20 c8 99 22 4f 53 5f  53 70 72 69 74 65 4f 70  |i .."OS_SpriteOp|
00005460  22 2c 26 31 31 39 2c 73  70 61 72 65 61 25 2c 22  |",&119,sparea%,"|
00005470  68 30 62 67 22 2b c3 28  64 6f 25 29 3a c8 99 22  |h0bg"+.(do%):.."|
00005480  4f 53 5f 53 70 72 69 74  65 4f 70 22 2c 26 31 31  |OS_SpriteOp",&11|
00005490  42 2c 73 70 61 72 65 61  25 2c 22 68 30 62 67 22  |B,sparea%,"h0bg"|
000054a0  2b c3 28 73 65 65 25 29  2c 22 68 30 62 67 22 2b  |+.(see%),"h0bg"+|
000054b0  c3 28 64 6f 25 29 0d 18  e2 05 cc 0d 18 ec 6c 20  |.(do%)........l |
000054c0  c8 99 22 4f 53 5f 53 70  72 69 74 65 4f 70 22 2c  |.."OS_SpriteOp",|
000054d0  26 31 31 39 2c 73 70 61  72 65 61 25 2c 22 6d 61  |&119,sparea%,"ma|
000054e0  67 62 67 22 2b c3 28 64  6f 25 29 3a c8 99 22 4f  |gbg"+.(do%):.."O|
000054f0  53 5f 53 70 72 69 74 65  4f 70 22 2c 26 31 31 42  |S_SpriteOp",&11B|
00005500  2c 73 70 61 72 65 61 25  2c 22 6d 61 67 62 67 22  |,sparea%,"magbg"|
00005510  2b c3 28 73 65 65 25 29  2c 22 6d 61 67 62 67 22  |+.(see%),"magbg"|
00005520  2b c3 28 64 6f 25 29 0d  18 f6 05 cd 0d 19 00 65  |+.(do%)........e|
00005530  f4 50 52 4f 43 73 61 76  65 62 67 72 64 28 73 61  |.PROCsavebgrd(sa|
00005540  79 25 28 77 6f 72 64 25  2c 30 29 2d 34 30 2c 73  |y%(word%,0)-40,s|
00005550  61 79 25 28 77 6f 72 64  25 2c 31 29 2d 38 2c 77  |ay%(word%,1)-8,w|
00005560  69 64 25 2b 38 30 2c 73  61 79 25 28 77 6f 72 64  |id%+80,say%(word|
00005570  25 2c 33 29 2d 73 61 79  25 28 77 6f 72 64 25 2c  |%,3)-say%(word%,|
00005580  31 29 2b 32 30 2c 22 73  61 79 62 6f 78 62 67 22  |1)+20,"sayboxbg"|
00005590  29 0d 19 0a 5d f2 73 61  76 65 62 67 72 64 28 73  |)...].savebgrd(s|
000055a0  61 79 25 28 77 6f 72 64  25 2c 30 29 2d 34 30 2c  |ay%(word%,0)-40,|
000055b0  73 61 79 25 28 77 6f 72  64 25 2c 31 29 2d 38 2c  |say%(word%,1)-8,|
000055c0  34 30 2c 73 61 79 25 28  77 6f 72 64 25 2c 33 29  |40,say%(word%,3)|
000055d0  2d 73 61 79 25 28 77 6f  72 64 25 2c 31 29 2b 32  |-say%(word%,1)+2|
000055e0  30 2c 22 73 61 79 62 6f  78 62 67 31 22 29 0d 19  |0,"sayboxbg1")..|
000055f0  14 5f f2 73 61 76 65 62  67 72 64 28 73 61 79 25  |._.savebgrd(say%|
00005600  28 77 6f 72 64 25 2c 30  29 2b 77 69 64 25 2c 73  |(word%,0)+wid%,s|
00005610  61 79 25 28 77 6f 72 64  25 2c 31 29 2d 38 2c 34  |ay%(word%,1)-8,4|
00005620  30 2c 73 61 79 25 28 77  6f 72 64 25 2c 33 29 2d  |0,say%(word%,3)-|
00005630  73 61 79 25 28 77 6f 72  64 25 2c 31 29 2b 32 30  |say%(word%,1)+20|
00005640  2c 22 73 61 79 62 6f 78  62 67 32 22 29 0d 19 1e  |,"sayboxbg2")...|
00005650  40 f2 73 61 76 65 62 67  72 64 28 73 61 79 25 28  |@.savebgrd(say%(|
00005660  77 6f 72 64 25 2c 30 29  2c 73 61 79 25 28 77 6f  |word%,0),say%(wo|
00005670  72 64 25 2c 31 29 2d 38  2c 77 69 64 25 2c 31 32  |rd%,1)-8,wid%,12|
00005680  2c 22 73 61 79 62 6f 78  62 67 33 22 29 0d 19 28  |,"sayboxbg3")..(|
00005690  3e f2 73 61 76 65 62 67  72 64 28 73 61 79 25 28  |>.savebgrd(say%(|
000056a0  77 6f 72 64 25 2c 30 29  2c 73 61 79 25 28 77 6f  |word%,0),say%(wo|
000056b0  72 64 25 2c 33 29 2c 77  69 64 25 2c 31 32 2c 22  |rd%,3),wid%,12,"|
000056c0  73 61 79 62 6f 78 62 67  34 22 29 0d 19 32 62 e7  |sayboxbg4")..2b.|
000056d0  ac 77 68 69 74 65 62 67  25 3a f2 73 61 76 65 62  |.whitebg%:.saveb|
000056e0  67 72 64 28 73 61 79 25  28 77 6f 72 64 25 2c 30  |grd(say%(word%,0|
000056f0  29 2c 73 61 79 25 28 77  6f 72 64 25 2c 31 29 2c  |),say%(word%,1),|
00005700  77 69 64 25 2c 73 61 79  25 28 77 6f 72 64 25 2c  |wid%,say%(word%,|
00005710  33 29 2d 73 61 79 25 28  77 6f 72 64 25 2c 31 29  |3)-say%(word%,1)|
00005720  2c 22 73 61 79 62 6f 78  62 67 35 22 29 0d 19 3c  |,"sayboxbg5")..<|
00005730  48 f2 73 61 76 65 62 67  72 64 28 73 61 79 25 28  |H.savebgrd(say%(|
00005740  77 6f 72 64 25 2c 30 29  2b 77 69 64 25 2f 32 2d  |word%,0)+wid%/2-|
00005750  31 34 2c 73 61 79 25 28  77 6f 72 64 25 2c 31 29  |14,say%(word%,1)|
00005760  2b 37 36 2c 32 38 2c 34  30 2c 22 73 61 79 61 72  |+76,28,40,"sayar|
00005770  72 62 67 22 29 0d 19 46  4f f4 50 52 4f 43 73 61  |rbg")..FO.PROCsa|
00005780  76 65 62 67 72 64 28 73  61 79 25 28 77 6f 72 64  |vebgrd(say%(word|
00005790  25 2c 30 29 2b 77 69 64  25 2f 32 2d 37 32 2c 73  |%,0)+wid%/2-72,s|
000057a0  61 79 25 28 77 6f 72 64  25 2c 31 29 2b 31 31 36  |ay%(word%,1)+116|
000057b0  2c 31 34 36 2c 31 34 30  2c 22 72 65 61 64 65 72  |,146,140,"reader|
000057c0  62 67 22 29 0d 19 50 4a  f2 73 61 76 65 62 67 72  |bg")..PJ.savebgr|
000057d0  64 28 73 61 79 25 28 77  6f 72 64 25 2c 30 29 2b  |d(say%(word%,0)+|
000057e0  77 69 64 25 2f 32 2d 37  32 2c 73 61 79 25 28 77  |wid%/2-72,say%(w|
000057f0  6f 72 64 25 2c 31 29 2b  38 38 2c 31 34 36 2c 31  |ord%,1)+88,146,1|
00005800  34 30 2c 22 72 65 61 64  65 72 62 67 22 29 0d 19  |40,"readerbg")..|
00005810  5a 3e 73 65 65 25 3d 31  3a 64 6f 25 3d 32 3a c8  |Z>see%=1:do%=2:.|
00005820  96 3a c8 99 20 22 4f 53  5f 42 79 74 65 22 2c 31  |.:.. "OS_Byte",1|
00005830  31 33 2c 73 65 65 25 3a  c8 99 20 22 4f 53 5f 42  |13,see%:.. "OS_B|
00005840  79 74 65 22 2c 31 31 32  2c 64 6f 25 0d 19 64 60  |yte",112,do%..d`|
00005850  f4 53 59 53 20 22 4f 53  5f 53 70 72 69 74 65 4f  |.SYS "OS_SpriteO|
00005860  70 22 2c 26 31 33 34 2c  62 75 74 61 72 65 61 25  |p",&134,butarea%|
00005870  2c 22 62 61 6e 67 22 2c  73 61 79 25 28 77 6f 72  |,"bang",say%(wor|
00005880  64 25 2c 30 29 2b 77 69  64 25 2f 32 2d 33 38 2c  |d%,0)+wid%/2-38,|
00005890  73 61 79 25 28 77 6f 72  64 25 2c 31 29 2b 31 34  |say%(word%,1)+14|
000058a0  34 2c 38 2c 73 63 61 6c  65 25 2c 30 0d 19 6e 5e  |4,8,scale%,0..n^|
000058b0  c8 99 20 22 4f 53 5f 53  70 72 69 74 65 4f 70 22  |.. "OS_SpriteOp"|
000058c0  2c 26 31 33 34 2c 62 75  74 61 72 65 61 25 2c 22  |,&134,butarea%,"|
000058d0  62 61 6e 67 22 2c 73 61  79 25 28 77 6f 72 64 25  |bang",say%(word%|
000058e0  2c 30 29 2b 77 69 64 25  2f 32 2d 33 38 2c 73 61  |,0)+wid%/2-38,sa|
000058f0  79 25 28 77 6f 72 64 25  2c 31 29 2b 31 31 36 2c  |y%(word%,1)+116,|
00005900  38 2c 73 63 61 6c 65 25  2c 30 0d 19 78 6a d4 20  |8,scale%,0..xj. |
00005910  31 2c 26 31 37 46 2c 31  2c 31 3a 73 65 65 25 3d  |1,&17F,1,1:see%=|
00005920  25 31 30 30 3e 3e 3e 73  65 65 25 3a 64 6f 25 3d  |%100>>>see%:do%=|
00005930  25 31 30 30 3e 3e 3e 64  6f 25 3a c8 96 3a c8 99  |%100>>>do%:..:..|
00005940  20 22 4f 53 5f 42 79 74  65 22 2c 31 31 33 2c 73  | "OS_Byte",113,s|
00005950  65 65 25 3a c8 99 20 22  4f 53 5f 42 79 74 65 22  |ee%:.. "OS_Byte"|
00005960  2c 31 31 32 2c 64 6f 25  3a 6c 61 73 74 74 69 6d  |,112,do%:lasttim|
00005970  65 25 3d 91 0d 19 82 5a  f4 53 59 53 20 22 4f 53  |e%=....Z.SYS "OS|
00005980  5f 53 70 72 69 74 65 4f  70 22 2c 26 31 32 32 2c  |_SpriteOp",&122,|
00005990  73 70 61 72 65 61 25 2c  22 72 65 61 64 65 72 62  |sparea%,"readerb|
000059a0  67 22 2c 73 61 79 25 28  77 6f 72 64 25 2c 30 29  |g",say%(word%,0)|
000059b0  2b 77 69 64 25 2f 32 2d  37 32 2c 73 61 79 25 28  |+wid%/2-72,say%(|
000059c0  77 6f 72 64 25 2c 31 29  2b 31 31 36 2c 38 0d 19  |word%,1)+116,8..|
000059d0  8c 62 f4 53 59 53 20 22  4f 53 5f 53 70 72 69 74  |.b.SYS "OS_Sprit|
000059e0  65 4f 70 22 2c 26 31 33  34 2c 62 75 74 61 72 65  |eOp",&134,butare|
000059f0  61 25 2c 22 72 65 61 64  65 72 22 2c 73 61 79 25  |a%,"reader",say%|
00005a00  28 77 6f 72 64 25 2c 30  29 2b 77 69 64 25 2f 32  |(word%,0)+wid%/2|
00005a10  2d 37 32 2c 73 61 79 25  28 77 6f 72 64 25 2c 31  |-72,say%(word%,1|
00005a20  29 2b 31 31 36 2c 38 2c  73 63 61 6c 65 25 2c 30  |)+116,8,scale%,0|
00005a30  0d 19 96 57 c8 99 20 22  4f 53 5f 53 70 72 69 74  |...W.. "OS_Sprit|
00005a40  65 4f 70 22 2c 26 31 32  32 2c 73 70 61 72 65 61  |eOp",&122,sparea|
00005a50  25 2c 22 72 65 61 64 65  72 62 67 22 2c 73 61 79  |%,"readerbg",say|
00005a60  25 28 77 6f 72 64 25 2c  30 29 2b 77 69 64 25 2f  |%(word%,0)+wid%/|
00005a70  32 2d 37 32 2c 73 61 79  25 28 77 6f 72 64 25 2c  |2-72,say%(word%,|
00005a80  31 29 2b 38 38 2c 38 0d  19 a0 5f c8 99 20 22 4f  |1)+88,8..._.. "O|
00005a90  53 5f 53 70 72 69 74 65  4f 70 22 2c 26 31 33 34  |S_SpriteOp",&134|
00005aa0  2c 62 75 74 61 72 65 61  25 2c 22 72 65 61 64 65  |,butarea%,"reade|
00005ab0  72 22 2c 73 61 79 25 28  77 6f 72 64 25 2c 30 29  |r",say%(word%,0)|
00005ac0  2b 77 69 64 25 2f 32 2d  37 32 2c 73 61 79 25 28  |+wid%/2-72,say%(|
00005ad0  77 6f 72 64 25 2c 31 29  2b 38 38 2c 38 2c 73 63  |word%,1)+88,8,sc|
00005ae0  61 6c 65 25 2c 30 0d 19  aa 79 f4 50 52 4f 43 73  |ale%,0...y.PROCs|
00005af0  70 65 65 63 68 62 6f 78  28 73 61 79 25 28 77 6f  |peechbox(say%(wo|
00005b00  72 64 25 2c 30 29 2d 34  30 2c 73 61 79 25 28 77  |rd%,0)-40,say%(w|
00005b10  6f 72 64 25 2c 31 29 2d  38 2c 77 69 64 25 2b 38  |ord%,1)-8,wid%+8|
00005b20  30 2c 73 61 79 25 28 77  6f 72 64 25 2c 33 29 2d  |0,say%(word%,3)-|
00005b30  73 61 79 25 28 77 6f 72  64 25 2c 31 29 2b 32 30  |say%(word%,1)+20|
00005b40  2c 33 2c 30 2c 73 61 79  25 28 77 6f 72 64 25 2c  |,3,0,say%(word%,|
00005b50  30 29 2b 77 69 64 25 2f  32 2d 31 34 2c 30 29 0d  |0)+wid%/2-14,0).|
00005b60  19 b4 4b f4 50 52 4f 43  77 6f 72 64 73 28 73 61  |..K.PROCwords(sa|
00005b70  79 25 28 77 6f 72 64 25  2c 30 29 2b 38 2c 73 61  |y%(word%,0)+8,sa|
00005b80  79 25 28 77 6f 72 64 25  2c 31 29 2b 31 36 2c 2d  |y%(word%,1)+16,-|
00005b90  31 2c 33 2c 30 2c 30 2c  6f 6e 24 2b 73 61 79 24  |1,3,0,0,on$+say$|
00005ba0  28 77 6f 72 64 25 2c 30  29 29 0d 19 be 59 78 25  |(word%,0))...Yx%|
00005bb0  3d 73 61 79 25 28 77 6f  72 64 25 2c 30 29 2d 34  |=say%(word%,0)-4|
00005bc0  30 3a 79 25 3d 73 61 79  25 28 77 6f 72 64 25 2c  |0:y%=say%(word%,|
00005bd0  31 29 2d 38 3a 73 78 25  3d 77 69 64 25 2b 38 30  |1)-8:sx%=wid%+80|
00005be0  3a 73 79 25 3d 73 61 79  25 28 77 6f 72 64 25 2c  |:sy%=say%(word%,|
00005bf0  33 29 2d 73 61 79 25 28  77 6f 72 64 25 2c 31 29  |3)-say%(word%,1)|
00005c00  2b 32 30 0d 19 c8 67 ef  31 38 2c 30 2c 30 3a ef  |+20...g.18,0,0:.|
00005c10  32 35 2c 34 2c 78 25 2b  34 30 3b 79 25 3b 3a ef  |25,4,x%+40;y%;:.|
00005c20  32 35 2c 31 30 31 2c 78  25 2b 73 78 25 2d 34 32  |25,101,x%+sx%-42|
00005c30  3b 79 25 2b 31 30 3b 3a  ef 32 35 2c 34 2c 78 25  |;y%+10;:.25,4,x%|
00005c40  2b 34 30 3b 79 25 2b 73  79 25 2d 31 32 3b 3a ef  |+40;y%+sy%-12;:.|
00005c50  32 35 2c 31 30 31 2c 78  25 2b 73 78 25 2d 34 32  |25,101,x%+sx%-42|
00005c60  3b 79 25 2b 73 79 25 2d  32 3b 0d 19 d2 65 ef 31  |;y%+sy%-2;...e.1|
00005c70  38 2c 30 2c 33 3a ef 32  35 2c 34 2c 78 25 2b 34  |8,0,3:.25,4,x%+4|
00005c80  30 3b 79 25 3b 3a ef 32  35 2c 31 30 31 2c 78 25  |0;y%;:.25,101,x%|
00005c90  2b 73 78 25 2d 34 32 3b  79 25 2b 32 3b 3a ef 32  |+sx%-42;y%+2;:.2|
00005ca0  35 2c 34 2c 78 25 2b 34  30 3b 79 25 2b 73 79 25  |5,4,x%+40;y%+sy%|
00005cb0  2d 34 3b 3a ef 32 35 2c  31 30 31 2c 78 25 2b 73  |-4;:.25,101,x%+s|
00005cc0  78 25 2d 34 32 3b 79 25  2b 73 79 25 2d 32 3b 0d  |x%-42;y%+sy%-2;.|
00005cd0  19 dc 6c f2 73 70 65 65  63 68 62 75 62 73 28 78  |..l.speechbubs(x|
00005ce0  25 2c 79 25 2c 73 78 25  2c 73 79 25 29 3a c8 99  |%,y%,sx%,sy%):..|
00005cf0  22 4f 53 5f 53 70 72 69  74 65 4f 70 22 2c 26 31  |"OS_SpriteOp",&1|
00005d00  33 34 2c 62 75 74 61 72  65 61 25 2c 22 62 75 62  |34,butarea%,"bub|
00005d10  33 22 2c 73 61 79 25 28  77 6f 72 64 25 2c 30 29  |3",say%(word%,0)|
00005d20  2b 77 69 64 25 2f 32 2d  31 34 2c 79 25 2b 38 34  |+wid%/2-14,y%+84|
00005d30  2c 38 2c 73 63 61 6c 65  25 2c 30 0d 19 e6 ac e7  |,8,scale%,0.....|
00005d40  ac 77 68 69 74 65 62 67  25 3a ef 31 38 2c 30 2c  |.whitebg%:.18,0,|
00005d50  30 3a ef 32 35 2c 34 2c  73 61 79 25 28 77 6f 72  |0:.25,4,say%(wor|
00005d60  64 25 2c 30 29 3b 73 61  79 25 28 77 6f 72 64 25  |d%,0);say%(word%|
00005d70  2c 31 29 3b 3a ef 32 35  2c 39 37 2c 77 69 64 25  |,1);:.25,97,wid%|
00005d80  3b 73 61 79 25 28 77 6f  72 64 25 2c 33 29 2d 73  |;say%(word%,3)-s|
00005d90  61 79 25 28 77 6f 72 64  25 2c 31 29 3b 3a f2 77  |ay%(word%,1);:.w|
00005da0  6f 72 64 73 28 73 61 79  25 28 77 6f 72 64 25 2c  |ords(say%(word%,|
00005db0  30 29 2c 73 61 79 25 28  77 6f 72 64 25 2c 31 29  |0),say%(word%,1)|
00005dc0  2b 31 36 2c 2d 31 2c 33  2c 30 2c 30 2c 6f 6e 24  |+16,-1,3,0,0,on$|
00005dd0  2b 73 61 79 24 28 73 61  79 25 28 77 6f 72 64 25  |+say$(say%(word%|
00005de0  2c 34 29 2c 30 29 29 0d  19 f0 16 f5 3a fd 20 91  |,4),0)).....:. .|
00005df0  3e 6c 61 73 74 74 69 6d  65 25 2b 33 30 0d 19 fa  |>lasttime%+30...|
00005e00  2e 41 25 3d 64 6f 25 3a  42 25 3d 73 65 65 25 3a  |.A%=do%:B%=see%:|
00005e10  43 25 3d 31 3a d6 20 6d  65 72 67 65 73 63 72 25  |C%=1:. mergescr%|
00005e20  3a f2 73 63 72 63 6f 70  79 32 31 0d 1a 04 3e 73  |:.scrcopy21...>s|
00005e30  65 65 25 3d 31 3a 64 6f  25 3d 32 3a c8 96 3a c8  |ee%=1:do%=2:..:.|
00005e40  99 20 22 4f 53 5f 42 79  74 65 22 2c 31 31 33 2c  |. "OS_Byte",113,|
00005e50  73 65 65 25 3a c8 99 20  22 4f 53 5f 42 79 74 65  |see%:.. "OS_Byte|
00005e60  22 2c 31 31 32 2c 64 6f  25 0d 1a 0e 0d f2 77 61  |",112,do%.....wa|
00005e70  69 74 28 33 30 29 0d 1a  18 3a f4 73 61 79 78 25  |it(30)...:.sayx%|
00005e80  3d 73 61 79 25 28 77 6f  72 64 25 2c 30 29 2b 77  |=say%(word%,0)+w|
00005e90  69 64 25 2f 32 2d 33 30  3a 73 61 79 79 25 3d 73  |id%/2-30:sayy%=s|
00005ea0  61 79 25 28 77 6f 72 64  25 2c 31 29 2b 31 31 36  |ay%(word%,1)+116|
00005eb0  0d 1a 22 38 73 61 79 78  25 3d 73 61 79 25 28 77  |.."8sayx%=say%(w|
00005ec0  6f 72 64 25 2c 30 29 2b  77 69 64 25 2f 32 2d 33  |ord%,0)+wid%/2-3|
00005ed0  30 3a 73 61 79 79 25 3d  73 61 79 25 28 77 6f 72  |0:sayy%=say%(wor|
00005ee0  64 25 2c 31 29 2b 38 38  0d 1a 2c 43 6d 24 3d 73  |d%,1)+88..,Cm$=s|
00005ef0  61 79 24 28 73 61 79 25  28 77 6f 72 64 25 2c 34  |ay$(say%(word%,4|
00005f00  29 2c 32 29 3a 6d 25 3d  bb 6d 24 3a 6d 24 3d c2  |),2):m%=.m$:m$=.|
00005f10  6d 24 2c a9 28 6d 24 29  2d 32 29 3a 6c 61 73 74  |m$,.(m$)-2):last|
00005f20  74 69 6d 65 25 3d 91 2d  31 30 30 0d 1a 36 35 f2  |time%=.-100..65.|
00005f30  63 61 63 68 65 73 6f 75  6e 64 28 73 61 79 24 28  |cachesound(say$(|
00005f40  73 61 79 25 28 77 6f 72  64 25 2c 34 29 2c 31 29  |say%(word%,4),1)|
00005f50  2c 31 29 3a d4 20 31 2c  26 31 37 46 2c 31 2c 31  |,1):. 1,&17F,1,1|
00005f60  0d 1a 40 05 f5 0d 1a 4a  37 20 6d 24 3d c2 6d 24  |..@....J7 m$=.m$|
00005f70  2c a9 28 6d 24 29 2d 31  29 3a ef 32 34 2c 73 61  |,.(m$)-1):.24,sa|
00005f80  79 78 25 3b 73 61 79 79  25 3b 73 61 79 78 25 2b  |yx%;sayy%;sayx%+|
00005f90  36 32 3b 73 61 79 79 25  2b 34 38 3b 0d 1a 54 3e  |62;sayy%+48;..T>|
00005fa0  20 c8 99 20 22 4f 53 5f  53 70 72 69 74 65 4f 70  | .. "OS_SpriteOp|
00005fb0  22 2c 26 31 32 32 2c 73  70 61 72 65 61 25 2c 22  |",&122,sparea%,"|
00005fc0  72 65 61 64 65 72 62 67  22 2c 73 61 79 78 25 2d  |readerbg",sayx%-|
00005fd0  34 32 2c 73 61 79 79 25  2c 38 0d 1a 5e 46 20 c8  |42,sayy%,8..^F .|
00005fe0  99 20 22 4f 53 5f 53 70  72 69 74 65 4f 70 22 2c  |. "OS_SpriteOp",|
00005ff0  26 31 33 34 2c 62 75 74  61 72 65 61 25 2c 22 72  |&134,butarea%,"r|
00006000  65 61 64 65 72 22 2c 73  61 79 78 25 2d 34 32 2c  |eader",sayx%-42,|
00006010  73 61 79 79 25 2c 38 2c  73 63 61 6c 65 25 2c 30  |sayy%,8,scale%,0|
00006020  0d 1a 68 0c 20 e7 bb 6d  24 3e 30 8c 0d 1a 72 99  |..h. ..m$>0...r.|
00006030  20 20 e7 bb 28 c0 6d 24  2c 31 29 29 3d 31 3a c8  |  ..(.m$,1))=1:.|
00006040  99 20 22 4f 53 5f 53 70  72 69 74 65 4f 70 22 2c  |. "OS_SpriteOp",|
00006050  26 31 33 34 2c 62 75 74  61 72 65 61 25 2c 22 6d  |&134,butarea%,"m|
00006060  22 2b c0 6d 24 2c 31 29  2c 73 61 79 78 25 2c 73  |"+.m$,1),sayx%,s|
00006070  61 79 79 25 2c 38 2c 73  63 61 6c 65 25 2c 30 3a  |ayy%,8,scale%,0:|
00006080  8b 3a c8 99 20 22 4f 53  5f 53 70 72 69 74 65 4f  |.:.. "OS_SpriteO|
00006090  70 22 2c 26 31 33 34 2c  62 75 74 61 72 65 61 25  |p",&134,butarea%|
000060a0  2c 22 6d 22 2b c0 6d 24  2c 31 29 2c 73 61 79 78  |,"m"+.m$,1),sayx|
000060b0  25 2c 73 61 79 79 25 2b  32 34 2c 38 2c 73 63 61  |%,sayy%+24,8,sca|
000060c0  6c 65 25 2c 30 0d 1a 7c  06 20 cd 0d 1a 86 52 20  |le%,0..|. ....R |
000060d0  c8 99 22 4f 53 5f 53 70  72 69 74 65 4f 70 22 2c  |.."OS_SpriteOp",|
000060e0  26 31 33 34 2c 62 75 74  61 72 65 61 25 2c 22 62  |&134,butarea%,"b|
000060f0  75 62 33 22 2c 73 61 79  25 28 77 6f 72 64 25 2c  |ub3",say%(word%,|
00006100  30 29 2b 77 69 64 25 2f  32 2d 31 34 2c 79 25 2b  |0)+wid%/2-14,y%+|
00006110  38 34 2c 38 2c 73 63 61  6c 65 25 2c 30 0d 1a 90  |84,8,scale%,0...|
00006120  1b 20 ef 32 36 3a f5 3a  fd 20 91 3e 6c 61 73 74  |. .26:.:. .>last|
00006130  74 69 6d 65 25 2b 6d 25  0d 1a 9a 52 20 73 65 65  |time%+m%...R see|
00006140  25 3d 25 31 30 30 3e 3e  3e 73 65 65 25 3a 64 6f  |%=%100>>>see%:do|
00006150  25 3d 25 31 30 30 3e 3e  3e 64 6f 25 3a c8 96 3a  |%=%100>>>do%:..:|
00006160  c8 99 20 22 4f 53 5f 42  79 74 65 22 2c 31 31 33  |.. "OS_Byte",113|
00006170  2c 73 65 65 25 3a c8 99  20 22 4f 53 5f 42 79 74  |,see%:.. "OS_Byt|
00006180  65 22 2c 31 31 32 2c 64  6f 25 0d 1a a4 10 20 6c  |e",112,do%.... l|
00006190  61 73 74 74 69 6d 65 25  3d 91 0d 1a ae 0d fd 20  |asttime%=...... |
000061a0  bb 28 6d 24 29 3d 30 0d  1a b8 0d f2 77 61 69 74  |.(m$)=0.....wait|
000061b0  28 38 30 29 0d 1a c2 04  0d 1a cc 0a f4 58 3d 47  |(80).........X=G|
000061c0  45 54 0d 1a d6 04 0d 1a  e0 1a f2 63 61 63 68 65  |ET.........cache|
000061d0  73 6f 75 6e 64 28 22 66  78 70 6f 70 22 2c 31 29  |sound("fxpop",1)|
000061e0  0d 1a ea 3d c8 99 20 22  4f 53 5f 53 70 72 69 74  |...=.. "OS_Sprit|
000061f0  65 4f 70 22 2c 26 31 32  32 2c 73 70 61 72 65 61  |eOp",&122,sparea|
00006200  25 2c 22 72 65 61 64 65  72 62 67 22 2c 73 61 79  |%,"readerbg",say|
00006210  78 25 2d 34 32 2c 73 61  79 79 25 2c 38 0d 1a f4  |x%-42,sayy%,8...|
00006220  60 f4 53 59 53 20 22 4f  53 5f 53 70 72 69 74 65  |`.SYS "OS_Sprite|
00006230  4f 70 22 2c 26 31 33 34  2c 62 75 74 61 72 65 61  |Op",&134,butarea|
00006240  25 2c 22 62 61 6e 67 22  2c 73 61 79 25 28 77 6f  |%,"bang",say%(wo|
00006250  72 64 25 2c 30 29 2b 77  69 64 25 2f 32 2d 33 38  |rd%,0)+wid%/2-38|
00006260  2c 73 61 79 25 28 77 6f  72 64 25 2c 31 29 2b 31  |,say%(word%,1)+1|
00006270  34 34 2c 38 2c 73 63 61  6c 65 25 2c 30 0d 1a fe  |44,8,scale%,0...|
00006280  5e c8 99 20 22 4f 53 5f  53 70 72 69 74 65 4f 70  |^.. "OS_SpriteOp|
00006290  22 2c 26 31 33 34 2c 62  75 74 61 72 65 61 25 2c  |",&134,butarea%,|
000062a0  22 62 61 6e 67 22 2c 73  61 79 25 28 77 6f 72 64  |"bang",say%(word|
000062b0  25 2c 30 29 2b 77 69 64  25 2f 32 2d 33 38 2c 73  |%,0)+wid%/2-38,s|
000062c0  61 79 25 28 77 6f 72 64  25 2c 31 29 2b 31 31 36  |ay%(word%,1)+116|
000062d0  2c 38 2c 73 63 61 6c 65  25 2c 30 0d 1b 08 51 c8  |,8,scale%,0...Q.|
000062e0  99 22 4f 53 5f 53 70 72  69 74 65 4f 70 22 2c 26  |."OS_SpriteOp",&|
000062f0  31 33 34 2c 62 75 74 61  72 65 61 25 2c 22 62 75  |134,butarea%,"bu|
00006300  62 33 22 2c 73 61 79 25  28 77 6f 72 64 25 2c 30  |b3",say%(word%,0|
00006310  29 2b 77 69 64 25 2f 32  2d 31 34 2c 79 25 2b 38  |)+wid%/2-14,y%+8|
00006320  34 2c 38 2c 73 63 61 6c  65 25 2c 30 0d 1b 12 79  |4,8,scale%,0...y|
00006330  f4 50 52 4f 43 73 70 65  65 63 68 62 6f 78 28 73  |.PROCspeechbox(s|
00006340  61 79 25 28 77 6f 72 64  25 2c 30 29 2d 34 30 2c  |ay%(word%,0)-40,|
00006350  73 61 79 25 28 77 6f 72  64 25 2c 31 29 2d 38 2c  |say%(word%,1)-8,|
00006360  77 69 64 25 2b 38 30 2c  73 61 79 25 28 77 6f 72  |wid%+80,say%(wor|
00006370  64 25 2c 33 29 2d 73 61  79 25 28 77 6f 72 64 25  |d%,3)-say%(word%|
00006380  2c 31 29 2b 32 30 2c 33  2c 30 2c 73 61 79 25 28  |,1)+20,3,0,say%(|
00006390  77 6f 72 64 25 2c 30 29  2b 77 69 64 25 2f 32 2d  |word%,0)+wid%/2-|
000063a0  31 34 2c 30 29 0d 1b 1c  4b f4 50 52 4f 43 77 6f  |14,0)...K.PROCwo|
000063b0  72 64 73 28 73 61 79 25  28 77 6f 72 64 25 2c 30  |rds(say%(word%,0|
000063c0  29 2b 38 2c 73 61 79 25  28 77 6f 72 64 25 2c 31  |)+8,say%(word%,1|
000063d0  29 2b 31 36 2c 2d 31 2c  33 2c 30 2c 30 2c 6f 6e  |)+16,-1,3,0,0,on|
000063e0  24 2b 73 61 79 24 28 77  6f 72 64 25 2c 30 29 29  |$+say$(word%,0))|
000063f0  0d 1b 26 6a d4 20 31 2c  26 31 37 46 2c 31 2c 31  |..&j. 1,&17F,1,1|
00006400  3a 73 65 65 25 3d 25 31  30 30 3e 3e 3e 73 65 65  |:see%=%100>>>see|
00006410  25 3a 64 6f 25 3d 25 31  30 30 3e 3e 3e 64 6f 25  |%:do%=%100>>>do%|
00006420  3a c8 96 3a c8 99 20 22  4f 53 5f 42 79 74 65 22  |:..:.. "OS_Byte"|
00006430  2c 31 31 33 2c 73 65 65  25 3a c8 99 20 22 4f 53  |,113,see%:.. "OS|
00006440  5f 42 79 74 65 22 2c 31  31 32 2c 64 6f 25 3a 6c  |_Byte",112,do%:l|
00006450  61 73 74 74 69 6d 65 25  3d 91 0d 1b 30 3d c8 99  |asttime%=...0=..|
00006460  20 22 4f 53 5f 53 70 72  69 74 65 4f 70 22 2c 26  | "OS_SpriteOp",&|
00006470  31 32 32 2c 73 70 61 72  65 61 25 2c 22 72 65 61  |122,sparea%,"rea|
00006480  64 65 72 62 67 22 2c 73  61 79 78 25 2d 34 32 2c  |derbg",sayx%-42,|
00006490  73 61 79 79 25 2c 38 0d  1b 3a 51 f4 53 59 53 20  |sayy%,8..:Q.SYS |
000064a0  22 4f 53 5f 53 70 72 69  74 65 4f 70 22 2c 26 31  |"OS_SpriteOp",&1|
000064b0  32 32 2c 73 70 61 72 65  61 25 2c 22 73 61 79 62  |22,sparea%,"sayb|
000064c0  6f 78 62 67 22 2c 73 61  79 25 28 77 6f 72 64 25  |oxbg",say%(word%|
000064d0  2c 30 29 2d 34 30 2c 73  61 79 25 28 77 6f 72 64  |,0)-40,say%(word|
000064e0  25 2c 31 29 2d 38 2c 38  0d 1b 44 50 c8 99 20 22  |%,1)-8,8..DP.. "|
000064f0  4f 53 5f 53 70 72 69 74  65 4f 70 22 2c 26 31 32  |OS_SpriteOp",&12|
00006500  32 2c 73 70 61 72 65 61  25 2c 22 73 61 79 62 6f  |2,sparea%,"saybo|
00006510  78 62 67 31 22 2c 73 61  79 25 28 77 6f 72 64 25  |xbg1",say%(word%|
00006520  2c 30 29 2d 34 30 2c 73  61 79 25 28 77 6f 72 64  |,0)-40,say%(word|
00006530  25 2c 31 29 2d 38 2c 38  0d 1b 4e 52 c8 99 20 22  |%,1)-8,8..NR.. "|
00006540  4f 53 5f 53 70 72 69 74  65 4f 70 22 2c 26 31 32  |OS_SpriteOp",&12|
00006550  32 2c 73 70 61 72 65 61  25 2c 22 73 61 79 62 6f  |2,sparea%,"saybo|
00006560  78 62 67 32 22 2c 73 61  79 25 28 77 6f 72 64 25  |xbg2",say%(word%|
00006570  2c 30 29 2b 77 69 64 25  2c 73 61 79 25 28 77 6f  |,0)+wid%,say%(wo|
00006580  72 64 25 2c 31 29 2d 38  2c 38 0d 1b 58 4d c8 99  |rd%,1)-8,8..XM..|
00006590  20 22 4f 53 5f 53 70 72  69 74 65 4f 70 22 2c 26  | "OS_SpriteOp",&|
000065a0  31 32 32 2c 73 70 61 72  65 61 25 2c 22 73 61 79  |122,sparea%,"say|
000065b0  62 6f 78 62 67 33 22 2c  73 61 79 25 28 77 6f 72  |boxbg3",say%(wor|
000065c0  64 25 2c 30 29 2c 73 61  79 25 28 77 6f 72 64 25  |d%,0),say%(word%|
000065d0  2c 31 29 2d 38 2c 38 0d  1b 62 4b c8 99 20 22 4f  |,1)-8,8..bK.. "O|
000065e0  53 5f 53 70 72 69 74 65  4f 70 22 2c 26 31 32 32  |S_SpriteOp",&122|
000065f0  2c 73 70 61 72 65 61 25  2c 22 73 61 79 62 6f 78  |,sparea%,"saybox|
00006600  62 67 34 22 2c 73 61 79  25 28 77 6f 72 64 25 2c  |bg4",say%(word%,|
00006610  30 29 2c 73 61 79 25 28  77 6f 72 64 25 2c 33 29  |0),say%(word%,3)|
00006620  2c 38 0d 1b 6c 56 e7 ac  77 68 69 74 65 62 67 25  |,8..lV..whitebg%|
00006630  3a c8 99 20 22 4f 53 5f  53 70 72 69 74 65 4f 70  |:.. "OS_SpriteOp|
00006640  22 2c 26 31 32 32 2c 73  70 61 72 65 61 25 2c 22  |",&122,sparea%,"|
00006650  73 61 79 62 6f 78 62 67  35 22 2c 73 61 79 25 28  |sayboxbg5",say%(|
00006660  77 6f 72 64 25 2c 30 29  2c 73 61 79 25 28 77 6f  |word%,0),say%(wo|
00006670  72 64 25 2c 31 29 2c 38  0d 1b 76 57 c8 99 20 22  |rd%,1),8..vW.. "|
00006680  4f 53 5f 53 70 72 69 74  65 4f 70 22 2c 26 31 32  |OS_SpriteOp",&12|
00006690  32 2c 73 70 61 72 65 61  25 2c 22 73 61 79 61 72  |2,sparea%,"sayar|
000066a0  72 62 67 22 2c 73 61 79  25 28 77 6f 72 64 25 2c  |rbg",say%(word%,|
000066b0  30 29 2b 77 69 64 25 2f  32 2d 31 34 2c 73 61 79  |0)+wid%/2-14,say|
000066c0  25 28 77 6f 72 64 25 2c  31 29 2b 37 36 2c 38 0d  |%(word%,1)+76,8.|
000066d0  1b 80 16 f5 3a fd 20 91  3e 6c 61 73 74 74 69 6d  |....:. .>lasttim|
000066e0  65 25 2b 33 30 0d 1b 8a  2e 41 25 3d 64 6f 25 3a  |e%+30....A%=do%:|
000066f0  42 25 3d 73 65 65 25 3a  43 25 3d 31 3a d6 20 6d  |B%=see%:C%=1:. m|
00006700  65 72 67 65 73 63 72 25  3a f2 73 63 72 63 6f 70  |ergescr%:.scrcop|
00006710  79 32 31 0d 1b 94 3e 73  65 65 25 3d 31 3a 64 6f  |y21...>see%=1:do|
00006720  25 3d 32 3a c8 96 3a c8  99 20 22 4f 53 5f 42 79  |%=2:..:.. "OS_By|
00006730  74 65 22 2c 31 31 33 2c  73 65 65 25 3a c8 99 20  |te",113,see%:.. |
00006740  22 4f 53 5f 42 79 74 65  22 2c 31 31 32 2c 64 6f  |"OS_Byte",112,do|
00006750  25 0d 1b 9e 3d 6d 78 25  3d 6f 6f 6d 78 25 3a 6d  |%...=mx%=oomx%:m|
00006760  79 25 3d 6f 6f 6d 79 25  3a f2 6d 6f 75 73 65 66  |y%=oomy%:.mousef|
00006770  75 6c 6c 3a c8 97 20 b8  20 6d 78 25 2c 6d 79 25  |ull:.. . mx%,my%|
00006780  3a 64 6f 6e 65 61 62 6c  75 65 25 3d 2d 31 0d 1b  |:doneablue%=-1..|
00006790  a8 1a f4 49 46 61 6e 69  6d 25 3d 30 3a 61 6e 69  |...IFanim%=0:ani|
000067a0  6d 65 6e 64 25 3d 2d 31  0d 1b b2 05 e1 0d 1b bc  |mend%=-1........|
000067b0  04 0d 1b c6 18 dd f2 65  6c 66 66 61 64 65 73 69  |.......elffadesi|
000067c0  64 65 28 77 6f 72 64 25  29 0d 1b d0 18 ea 20 77  |de(word%)..... w|
000067d0  69 64 25 2c 78 25 2c 79  25 2c 73 78 25 2c 73 79  |id%,x%,y%,sx%,sy|
000067e0  25 0d 1b da 0f e7 77 6f  72 64 25 3c 30 8c 3a e1  |%.....word%<0.:.|
000067f0  0d 1b e4 24 77 69 64 25  3d 73 61 79 25 28 77 6f  |...$wid%=say%(wo|
00006800  72 64 25 2c 32 29 2d 73  61 79 25 28 77 6f 72 64  |rd%,2)-say%(word|
00006810  25 2c 30 29 0d 1b ee 1a  f2 63 61 63 68 65 73 6f  |%,0).....cacheso|
00006820  75 6e 64 28 22 66 78 70  6f 70 22 2c 31 29 0d 1b  |und("fxpop",1)..|
00006830  f8 19 c8 99 20 22 4f 53  5f 42 79 74 65 22 2c 31  |.... "OS_Byte",1|
00006840  31 32 2c 73 65 65 25 0d  1c 02 47 c8 99 22 4f 53  |12,see%...G.."OS|
00006850  5f 53 70 72 69 74 65 4f  70 22 2c 26 31 32 32 2c  |_SpriteOp",&122,|
00006860  73 70 61 72 65 61 25 2c  22 68 30 62 67 22 2b c3  |sparea%,"h0bg"+.|
00006870  28 73 65 65 25 29 2c 78  25 28 73 65 65 25 2d 31  |(see%),x%(see%-1|
00006880  29 2c 79 25 28 73 65 65  25 2d 31 29 2c 38 0d 1c  |),y%(see%-1),8..|
00006890  0c 69 c8 99 20 22 4f 53  5f 42 79 74 65 22 2c 31  |.i.. "OS_Byte",1|
000068a0  31 32 2c 64 6f 25 3a f2  73 63 72 63 6f 70 79 28  |12,do%:.scrcopy(|
000068b0  73 65 65 25 2c 64 6f 25  29 3a 78 25 28 64 6f 25  |see%,do%):x%(do%|
000068c0  2d 31 29 3d 78 25 28 73  65 65 25 2d 31 29 3a 79  |-1)=x%(see%-1):y|
000068d0  25 28 64 6f 25 2d 31 29  3d 79 25 28 73 65 65 25  |%(do%-1)=y%(see%|
000068e0  2d 31 29 3a 6f 6f 6d 78  25 3d 6d 78 25 3a 6f 6f  |-1):oomx%=mx%:oo|
000068f0  6d 79 25 3d 6d 79 25 0d  1c 16 68 c8 99 22 4f 53  |my%=my%...h.."OS|
00006900  5f 53 70 72 69 74 65 4f  70 22 2c 26 31 31 39 2c  |_SpriteOp",&119,|
00006910  73 70 61 72 65 61 25 2c  22 68 30 62 67 22 2b c3  |sparea%,"h0bg"+.|
00006920  28 64 6f 25 29 3a c8 99  22 4f 53 5f 53 70 72 69  |(do%):.."OS_Spri|
00006930  74 65 4f 70 22 2c 26 31  31 42 2c 73 70 61 72 65  |teOp",&11B,spare|
00006940  61 25 2c 22 68 30 62 67  22 2b c3 28 73 65 65 25  |a%,"h0bg"+.(see%|
00006950  29 2c 22 68 30 62 67 22  2b c3 28 64 6f 25 29 0d  |),"h0bg"+.(do%).|
00006960  1c 20 5d f2 73 61 76 65  62 67 72 64 28 73 61 79  |. ].savebgrd(say|
00006970  25 28 77 6f 72 64 25 2c  30 29 2d 34 30 2c 73 61  |%(word%,0)-40,sa|
00006980  79 25 28 77 6f 72 64 25  2c 31 29 2d 38 2c 34 30  |y%(word%,1)-8,40|
00006990  2c 73 61 79 25 28 77 6f  72 64 25 2c 33 29 2d 73  |,say%(word%,3)-s|
000069a0  61 79 25 28 77 6f 72 64  25 2c 31 29 2b 32 30 2c  |ay%(word%,1)+20,|
000069b0  22 73 61 79 62 6f 78 62  67 31 22 29 0d 1c 2a 5f  |"sayboxbg1")..*_|
000069c0  f2 73 61 76 65 62 67 72  64 28 73 61 79 25 28 77  |.savebgrd(say%(w|
000069d0  6f 72 64 25 2c 30 29 2b  77 69 64 25 2c 73 61 79  |ord%,0)+wid%,say|
000069e0  25 28 77 6f 72 64 25 2c  31 29 2d 38 2c 34 30 2c  |%(word%,1)-8,40,|
000069f0  73 61 79 25 28 77 6f 72  64 25 2c 33 29 2d 73 61  |say%(word%,3)-sa|
00006a00  79 25 28 77 6f 72 64 25  2c 31 29 2b 32 30 2c 22  |y%(word%,1)+20,"|
00006a10  73 61 79 62 6f 78 62 67  32 22 29 0d 1c 34 40 f2  |sayboxbg2")..4@.|
00006a20  73 61 76 65 62 67 72 64  28 73 61 79 25 28 77 6f  |savebgrd(say%(wo|
00006a30  72 64 25 2c 30 29 2c 73  61 79 25 28 77 6f 72 64  |rd%,0),say%(word|
00006a40  25 2c 31 29 2d 38 2c 77  69 64 25 2c 31 32 2c 22  |%,1)-8,wid%,12,"|
00006a50  73 61 79 62 6f 78 62 67  33 22 29 0d 1c 3e 3e f2  |sayboxbg3")..>>.|
00006a60  73 61 76 65 62 67 72 64  28 73 61 79 25 28 77 6f  |savebgrd(say%(wo|
00006a70  72 64 25 2c 30 29 2c 73  61 79 25 28 77 6f 72 64  |rd%,0),say%(word|
00006a80  25 2c 33 29 2c 77 69 64  25 2c 31 32 2c 22 73 61  |%,3),wid%,12,"sa|
00006a90  79 62 6f 78 62 67 34 22  29 0d 1c 48 41 f2 73 61  |yboxbg4")..HA.sa|
00006aa0  76 65 62 67 72 64 28 73  61 79 25 28 77 6f 72 64  |vebgrd(say%(word|
00006ab0  25 2c 30 29 2d 37 32 2c  73 61 79 25 28 77 6f 72  |%,0)-72,say%(wor|
00006ac0  64 25 2c 31 29 2b 32 34  2c 34 30 2c 32 38 2c 22  |d%,1)+24,40,28,"|
00006ad0  73 61 79 61 72 72 62 67  22 29 0d 1c 52 43 f2 73  |sayarrbg")..RC.s|
00006ae0  61 76 65 62 67 72 64 28  73 61 79 25 28 77 6f 72  |avebgrd(say%(wor|
00006af0  64 25 2c 30 29 2d 31 39  36 2c 73 61 79 25 28 77  |d%,0)-196,say%(w|
00006b00  6f 72 64 25 2c 31 29 2d  38 2c 31 34 36 2c 31 34  |ord%,1)-8,146,14|
00006b10  30 2c 22 72 65 61 64 65  72 62 67 22 29 0d 1c 5c  |0,"readerbg")..\|
00006b20  3e 73 65 65 25 3d 31 3a  64 6f 25 3d 32 3a c8 96  |>see%=1:do%=2:..|
00006b30  3a c8 99 20 22 4f 53 5f  42 79 74 65 22 2c 31 31  |:.. "OS_Byte",11|
00006b40  33 2c 73 65 65 25 3a c8  99 20 22 4f 53 5f 42 79  |3,see%:.. "OS_By|
00006b50  74 65 22 2c 31 31 32 2c  64 6f 25 0d 1c 66 57 c8  |te",112,do%..fW.|
00006b60  99 20 22 4f 53 5f 53 70  72 69 74 65 4f 70 22 2c  |. "OS_SpriteOp",|
00006b70  26 31 33 34 2c 62 75 74  61 72 65 61 25 2c 22 62  |&134,butarea%,"b|
00006b80  61 6e 67 22 2c 73 61 79  25 28 77 6f 72 64 25 2c  |ang",say%(word%,|
00006b90  30 29 2d 31 36 32 2c 73  61 79 25 28 77 6f 72 64  |0)-162,say%(word|
00006ba0  25 2c 31 29 2b 33 32 2c  38 2c 73 63 61 6c 65 25  |%,1)+32,8,scale%|
00006bb0  2c 30 0d 1c 70 6a d4 20  31 2c 26 31 37 46 2c 31  |,0..pj. 1,&17F,1|
00006bc0  2c 31 3a 73 65 65 25 3d  25 31 30 30 3e 3e 3e 73  |,1:see%=%100>>>s|
00006bd0  65 65 25 3a 64 6f 25 3d  25 31 30 30 3e 3e 3e 64  |ee%:do%=%100>>>d|
00006be0  6f 25 3a c8 96 3a c8 99  20 22 4f 53 5f 42 79 74  |o%:..:.. "OS_Byt|
00006bf0  65 22 2c 31 31 33 2c 73  65 65 25 3a c8 99 20 22  |e",113,see%:.. "|
00006c00  4f 53 5f 42 79 74 65 22  2c 31 31 32 2c 64 6f 25  |OS_Byte",112,do%|
00006c10  3a 6c 61 73 74 74 69 6d  65 25 3d 91 0d 1c 7a 50  |:lasttime%=...zP|
00006c20  c8 99 20 22 4f 53 5f 53  70 72 69 74 65 4f 70 22  |.. "OS_SpriteOp"|
00006c30  2c 26 31 32 32 2c 73 70  61 72 65 61 25 2c 22 72  |,&122,sparea%,"r|
00006c40  65 61 64 65 72 62 67 22  2c 73 61 79 25 28 77 6f  |eaderbg",say%(wo|
00006c50  72 64 25 2c 30 29 2d 31  39 36 2c 73 61 79 25 28  |rd%,0)-196,say%(|
00006c60  77 6f 72 64 25 2c 31 29  2d 38 2c 38 0d 1c 84 58  |word%,1)-8,8...X|
00006c70  c8 99 20 22 4f 53 5f 53  70 72 69 74 65 4f 70 22  |.. "OS_SpriteOp"|
00006c80  2c 26 31 33 34 2c 62 75  74 61 72 65 61 25 2c 22  |,&134,butarea%,"|
00006c90  72 65 61 64 65 72 22 2c  73 61 79 25 28 77 6f 72  |reader",say%(wor|
00006ca0  64 25 2c 30 29 2d 31 39  36 2c 73 61 79 25 28 77  |d%,0)-196,say%(w|
00006cb0  6f 72 64 25 2c 31 29 2d  38 2c 38 2c 73 63 61 6c  |ord%,1)-8,8,scal|
00006cc0  65 25 2c 30 0d 1c 8e 59  78 25 3d 73 61 79 25 28  |e%,0...Yx%=say%(|
00006cd0  77 6f 72 64 25 2c 30 29  2d 34 30 3a 79 25 3d 73  |word%,0)-40:y%=s|
00006ce0  61 79 25 28 77 6f 72 64  25 2c 31 29 2d 38 3a 73  |ay%(word%,1)-8:s|
00006cf0  78 25 3d 77 69 64 25 2b  38 30 3a 73 79 25 3d 73  |x%=wid%+80:sy%=s|
00006d00  61 79 25 28 77 6f 72 64  25 2c 33 29 2d 73 61 79  |ay%(word%,3)-say|
00006d10  25 28 77 6f 72 64 25 2c  31 29 2b 32 30 0d 1c 98  |%(word%,1)+20...|
00006d20  67 ef 31 38 2c 30 2c 30  3a ef 32 35 2c 34 2c 78  |g.18,0,0:.25,4,x|
00006d30  25 2b 34 30 3b 79 25 3b  3a ef 32 35 2c 31 30 31  |%+40;y%;:.25,101|
00006d40  2c 78 25 2b 73 78 25 2d  34 32 3b 79 25 2b 31 30  |,x%+sx%-42;y%+10|
00006d50  3b 3a ef 32 35 2c 34 2c  78 25 2b 34 30 3b 79 25  |;:.25,4,x%+40;y%|
00006d60  2b 73 79 25 2d 31 32 3b  3a ef 32 35 2c 31 30 31  |+sy%-12;:.25,101|
00006d70  2c 78 25 2b 73 78 25 2d  34 32 3b 79 25 2b 73 79  |,x%+sx%-42;y%+sy|
00006d80  25 2d 32 3b 0d 1c a2 65  ef 31 38 2c 30 2c 33 3a  |%-2;...e.18,0,3:|
00006d90  ef 32 35 2c 34 2c 78 25  2b 34 30 3b 79 25 3b 3a  |.25,4,x%+40;y%;:|
00006da0  ef 32 35 2c 31 30 31 2c  78 25 2b 73 78 25 2d 34  |.25,101,x%+sx%-4|
00006db0  32 3b 79 25 2b 32 3b 3a  ef 32 35 2c 34 2c 78 25  |2;y%+2;:.25,4,x%|
00006dc0  2b 34 30 3b 79 25 2b 73  79 25 2d 34 3b 3a ef 32  |+40;y%+sy%-4;:.2|
00006dd0  35 2c 31 30 31 2c 78 25  2b 73 78 25 2d 34 32 3b  |5,101,x%+sx%-42;|
00006de0  79 25 2b 73 79 25 2d 32  3b 0d 1c ac 67 f2 73 70  |y%+sy%-2;...g.sp|
00006df0  65 65 63 68 62 75 62 73  28 78 25 2c 79 25 2c 73  |eechbubs(x%,y%,s|
00006e00  78 25 2c 73 79 25 29 3a  c8 99 22 4f 53 5f 53 70  |x%,sy%):.."OS_Sp|
00006e10  72 69 74 65 4f 70 22 2c  26 31 33 34 2c 62 75 74  |riteOp",&134,but|
00006e20  61 72 65 61 25 2c 22 73  61 79 61 72 72 22 2c 73  |area%,"sayarr",s|
00006e30  61 79 25 28 77 6f 72 64  25 2c 30 29 2d 37 32 2c  |ay%(word%,0)-72,|
00006e40  79 25 2b 33 32 2c 38 2c  73 63 61 6c 65 25 2c 30  |y%+32,8,scale%,0|
00006e50  0d 1c b6 16 f5 3a fd 20  91 3e 6c 61 73 74 74 69  |.....:. .>lastti|
00006e60  6d 65 25 2b 33 30 0d 1c  c0 2e 41 25 3d 64 6f 25  |me%+30....A%=do%|
00006e70  3a 42 25 3d 73 65 65 25  3a 43 25 3d 31 3a d6 20  |:B%=see%:C%=1:. |
00006e80  6d 65 72 67 65 73 63 72  25 3a f2 73 63 72 63 6f  |mergescr%:.scrco|
00006e90  70 79 32 31 0d 1c ca 3e  73 65 65 25 3d 31 3a 64  |py21...>see%=1:d|
00006ea0  6f 25 3d 32 3a c8 96 3a  c8 99 20 22 4f 53 5f 42  |o%=2:..:.. "OS_B|
00006eb0  79 74 65 22 2c 31 31 33  2c 73 65 65 25 3a c8 99  |yte",113,see%:..|
00006ec0  20 22 4f 53 5f 42 79 74  65 22 2c 31 31 32 2c 64  | "OS_Byte",112,d|
00006ed0  6f 25 0d 1c d4 0d f2 77  61 69 74 28 33 30 29 0d  |o%.....wait(30).|
00006ee0  1c de 3a f4 73 61 79 78  25 3d 73 61 79 25 28 77  |..:.sayx%=say%(w|
00006ef0  6f 72 64 25 2c 30 29 2b  77 69 64 25 2f 32 2d 33  |ord%,0)+wid%/2-3|
00006f00  30 3a 73 61 79 79 25 3d  73 61 79 25 28 77 6f 72  |0:sayy%=say%(wor|
00006f10  64 25 2c 31 29 2b 31 31  36 0d 1c e8 31 73 61 79  |d%,1)+116...1say|
00006f20  78 25 3d 73 61 79 25 28  77 6f 72 64 25 2c 30 29  |x%=say%(word%,0)|
00006f30  2d 31 35 34 3a 73 61 79  79 25 3d 73 61 79 25 28  |-154:sayy%=say%(|
00006f40  77 6f 72 64 25 2c 31 29  2d 38 0d 1c f2 43 6d 24  |word%,1)-8...Cm$|
00006f50  3d 73 61 79 24 28 73 61  79 25 28 77 6f 72 64 25  |=say$(say%(word%|
00006f60  2c 34 29 2c 32 29 3a 6d  25 3d bb 6d 24 3a 6d 24  |,4),2):m%=.m$:m$|
00006f70  3d c2 6d 24 2c a9 28 6d  24 29 2d 32 29 3a 6c 61  |=.m$,.(m$)-2):la|
00006f80  73 74 74 69 6d 65 25 3d  91 2d 31 30 30 0d 1c fc  |sttime%=.-100...|
00006f90  35 f2 63 61 63 68 65 73  6f 75 6e 64 28 73 61 79  |5.cachesound(say|
00006fa0  24 28 73 61 79 25 28 77  6f 72 64 25 2c 34 29 2c  |$(say%(word%,4),|
00006fb0  31 29 2c 31 29 3a d4 20  31 2c 26 31 37 46 2c 31  |1),1):. 1,&17F,1|
00006fc0  2c 31 0d 1d 06 05 f5 0d  1d 10 37 20 6d 24 3d c2  |,1........7 m$=.|
00006fd0  6d 24 2c a9 28 6d 24 29  2d 31 29 3a ef 32 34 2c  |m$,.(m$)-1):.24,|
00006fe0  73 61 79 78 25 3b 73 61  79 79 25 3b 73 61 79 78  |sayx%;sayy%;sayx|
00006ff0  25 2b 36 32 3b 73 61 79  79 25 2b 34 38 3b 0d 1d  |%+62;sayy%+48;..|
00007000  1a 3e 20 c8 99 20 22 4f  53 5f 53 70 72 69 74 65  |.> .. "OS_Sprite|
00007010  4f 70 22 2c 26 31 32 32  2c 73 70 61 72 65 61 25  |Op",&122,sparea%|
00007020  2c 22 72 65 61 64 65 72  62 67 22 2c 73 61 79 78  |,"readerbg",sayx|
00007030  25 2d 34 32 2c 73 61 79  79 25 2c 38 0d 1d 24 46  |%-42,sayy%,8..$F|
00007040  20 c8 99 20 22 4f 53 5f  53 70 72 69 74 65 4f 70  | .. "OS_SpriteOp|
00007050  22 2c 26 31 33 34 2c 62  75 74 61 72 65 61 25 2c  |",&134,butarea%,|
00007060  22 72 65 61 64 65 72 22  2c 73 61 79 78 25 2d 34  |"reader",sayx%-4|
00007070  32 2c 73 61 79 79 25 2c  38 2c 73 63 61 6c 65 25  |2,sayy%,8,scale%|
00007080  2c 30 0d 1d 2e 0c 20 e7  bb 6d 24 3e 30 8c 0d 1d  |,0.... ..m$>0...|
00007090  38 99 20 20 e7 bb 28 c0  6d 24 2c 31 29 29 3d 31  |8.  ..(.m$,1))=1|
000070a0  3a c8 99 20 22 4f 53 5f  53 70 72 69 74 65 4f 70  |:.. "OS_SpriteOp|
000070b0  22 2c 26 31 33 34 2c 62  75 74 61 72 65 61 25 2c  |",&134,butarea%,|
000070c0  22 6d 22 2b c0 6d 24 2c  31 29 2c 73 61 79 78 25  |"m"+.m$,1),sayx%|
000070d0  2c 73 61 79 79 25 2c 38  2c 73 63 61 6c 65 25 2c  |,sayy%,8,scale%,|
000070e0  30 3a 8b 3a c8 99 20 22  4f 53 5f 53 70 72 69 74  |0:.:.. "OS_Sprit|
000070f0  65 4f 70 22 2c 26 31 33  34 2c 62 75 74 61 72 65  |eOp",&134,butare|
00007100  61 25 2c 22 6d 22 2b c0  6d 24 2c 31 29 2c 73 61  |a%,"m"+.m$,1),sa|
00007110  79 78 25 2c 73 61 79 79  25 2b 32 34 2c 38 2c 73  |yx%,sayy%+24,8,s|
00007120  63 61 6c 65 25 2c 30 0d  1d 42 06 20 cd 0d 1d 4c  |cale%,0..B. ...L|
00007130  4d 20 c8 99 22 4f 53 5f  53 70 72 69 74 65 4f 70  |M .."OS_SpriteOp|
00007140  22 2c 26 31 33 34 2c 62  75 74 61 72 65 61 25 2c  |",&134,butarea%,|
00007150  22 73 61 79 61 72 72 22  2c 73 61 79 25 28 77 6f  |"sayarr",say%(wo|
00007160  72 64 25 2c 30 29 2d 37  32 2c 79 25 2b 33 32 2c  |rd%,0)-72,y%+32,|
00007170  38 2c 73 63 61 6c 65 25  2c 30 0d 1d 56 1b 20 ef  |8,scale%,0..V. .|
00007180  32 36 3a f5 3a fd 20 91  3e 6c 61 73 74 74 69 6d  |26:.:. .>lasttim|
00007190  65 25 2b 6d 25 0d 1d 60  52 20 73 65 65 25 3d 25  |e%+m%..`R see%=%|
000071a0  31 30 30 3e 3e 3e 73 65  65 25 3a 64 6f 25 3d 25  |100>>>see%:do%=%|
000071b0  31 30 30 3e 3e 3e 64 6f  25 3a c8 96 3a c8 99 20  |100>>>do%:..:.. |
000071c0  22 4f 53 5f 42 79 74 65  22 2c 31 31 33 2c 73 65  |"OS_Byte",113,se|
000071d0  65 25 3a c8 99 20 22 4f  53 5f 42 79 74 65 22 2c  |e%:.. "OS_Byte",|
000071e0  31 31 32 2c 64 6f 25 0d  1d 6a 10 20 6c 61 73 74  |112,do%..j. last|
000071f0  74 69 6d 65 25 3d 91 0d  1d 74 0d fd 20 bb 28 6d  |time%=...t.. .(m|
00007200  24 29 3d 30 0d 1d 7e 0d  f2 77 61 69 74 28 38 30  |$)=0..~..wait(80|
00007210  29 0d 1d 88 04 0d 1d 92  0a f4 58 3d 47 45 54 0d  |).........X=GET.|
00007220  1d 9c 04 0d 1d a6 1a f2  63 61 63 68 65 73 6f 75  |........cachesou|
00007230  6e 64 28 22 66 78 70 6f  70 22 2c 31 29 0d 1d b0  |nd("fxpop",1)...|
00007240  3d c8 99 20 22 4f 53 5f  53 70 72 69 74 65 4f 70  |=.. "OS_SpriteOp|
00007250  22 2c 26 31 32 32 2c 73  70 61 72 65 61 25 2c 22  |",&122,sparea%,"|
00007260  72 65 61 64 65 72 62 67  22 2c 73 61 79 78 25 2d  |readerbg",sayx%-|
00007270  34 32 2c 73 61 79 79 25  2c 38 0d 1d ba 57 c8 99  |42,sayy%,8...W..|
00007280  20 22 4f 53 5f 53 70 72  69 74 65 4f 70 22 2c 26  | "OS_SpriteOp",&|
00007290  31 33 34 2c 62 75 74 61  72 65 61 25 2c 22 62 61  |134,butarea%,"ba|
000072a0  6e 67 22 2c 73 61 79 25  28 77 6f 72 64 25 2c 30  |ng",say%(word%,0|
000072b0  29 2d 31 36 32 2c 73 61  79 25 28 77 6f 72 64 25  |)-162,say%(word%|
000072c0  2c 31 29 2b 33 32 2c 38  2c 73 63 61 6c 65 25 2c  |,1)+32,8,scale%,|
000072d0  30 0d 1d c4 4c c8 99 22  4f 53 5f 53 70 72 69 74  |0...L.."OS_Sprit|
000072e0  65 4f 70 22 2c 26 31 33  34 2c 62 75 74 61 72 65  |eOp",&134,butare|
000072f0  61 25 2c 22 73 61 79 61  72 72 22 2c 73 61 79 25  |a%,"sayarr",say%|
00007300  28 77 6f 72 64 25 2c 30  29 2d 37 32 2c 79 25 2b  |(word%,0)-72,y%+|
00007310  33 32 2c 38 2c 73 63 61  6c 65 25 2c 30 0d 1d ce  |32,8,scale%,0...|
00007320  6a d4 20 31 2c 26 31 37  46 2c 31 2c 31 3a 73 65  |j. 1,&17F,1,1:se|
00007330  65 25 3d 25 31 30 30 3e  3e 3e 73 65 65 25 3a 64  |e%=%100>>>see%:d|
00007340  6f 25 3d 25 31 30 30 3e  3e 3e 64 6f 25 3a c8 96  |o%=%100>>>do%:..|
00007350  3a c8 99 20 22 4f 53 5f  42 79 74 65 22 2c 31 31  |:.. "OS_Byte",11|
00007360  33 2c 73 65 65 25 3a c8  99 20 22 4f 53 5f 42 79  |3,see%:.. "OS_By|
00007370  74 65 22 2c 31 31 32 2c  64 6f 25 3a 6c 61 73 74  |te",112,do%:last|
00007380  74 69 6d 65 25 3d 91 0d  1d d8 3d c8 99 20 22 4f  |time%=....=.. "O|
00007390  53 5f 53 70 72 69 74 65  4f 70 22 2c 26 31 32 32  |S_SpriteOp",&122|
000073a0  2c 73 70 61 72 65 61 25  2c 22 72 65 61 64 65 72  |,sparea%,"reader|
000073b0  62 67 22 2c 73 61 79 78  25 2d 34 32 2c 73 61 79  |bg",sayx%-42,say|
000073c0  79 25 2c 38 0d 1d e2 50  c8 99 20 22 4f 53 5f 53  |y%,8...P.. "OS_S|
000073d0  70 72 69 74 65 4f 70 22  2c 26 31 32 32 2c 73 70  |priteOp",&122,sp|
000073e0  61 72 65 61 25 2c 22 73  61 79 62 6f 78 62 67 31  |area%,"sayboxbg1|
000073f0  22 2c 73 61 79 25 28 77  6f 72 64 25 2c 30 29 2d  |",say%(word%,0)-|
00007400  34 30 2c 73 61 79 25 28  77 6f 72 64 25 2c 31 29  |40,say%(word%,1)|
00007410  2d 38 2c 38 0d 1d ec 52  c8 99 20 22 4f 53 5f 53  |-8,8...R.. "OS_S|
00007420  70 72 69 74 65 4f 70 22  2c 26 31 32 32 2c 73 70  |priteOp",&122,sp|
00007430  61 72 65 61 25 2c 22 73  61 79 62 6f 78 62 67 32  |area%,"sayboxbg2|
00007440  22 2c 73 61 79 25 28 77  6f 72 64 25 2c 30 29 2b  |",say%(word%,0)+|
00007450  77 69 64 25 2c 73 61 79  25 28 77 6f 72 64 25 2c  |wid%,say%(word%,|
00007460  31 29 2d 38 2c 38 0d 1d  f6 4d c8 99 20 22 4f 53  |1)-8,8...M.. "OS|
00007470  5f 53 70 72 69 74 65 4f  70 22 2c 26 31 32 32 2c  |_SpriteOp",&122,|
00007480  73 70 61 72 65 61 25 2c  22 73 61 79 62 6f 78 62  |sparea%,"sayboxb|
00007490  67 33 22 2c 73 61 79 25  28 77 6f 72 64 25 2c 30  |g3",say%(word%,0|
000074a0  29 2c 73 61 79 25 28 77  6f 72 64 25 2c 31 29 2d  |),say%(word%,1)-|
000074b0  38 2c 38 0d 1e 00 4b c8  99 20 22 4f 53 5f 53 70  |8,8...K.. "OS_Sp|
000074c0  72 69 74 65 4f 70 22 2c  26 31 32 32 2c 73 70 61  |riteOp",&122,spa|
000074d0  72 65 61 25 2c 22 73 61  79 62 6f 78 62 67 34 22  |rea%,"sayboxbg4"|
000074e0  2c 73 61 79 25 28 77 6f  72 64 25 2c 30 29 2c 73  |,say%(word%,0),s|
000074f0  61 79 25 28 77 6f 72 64  25 2c 33 29 2c 38 0d 1e  |ay%(word%,3),8..|
00007500  0a 50 c8 99 20 22 4f 53  5f 53 70 72 69 74 65 4f  |.P.. "OS_SpriteO|
00007510  70 22 2c 26 31 32 32 2c  73 70 61 72 65 61 25 2c  |p",&122,sparea%,|
00007520  22 73 61 79 61 72 72 62  67 22 2c 73 61 79 25 28  |"sayarrbg",say%(|
00007530  77 6f 72 64 25 2c 30 29  2d 37 32 2c 73 61 79 25  |word%,0)-72,say%|
00007540  28 77 6f 72 64 25 2c 31  29 2b 32 34 2c 38 0d 1e  |(word%,1)+24,8..|
00007550  14 16 f5 3a fd 20 91 3e  6c 61 73 74 74 69 6d 65  |...:. .>lasttime|
00007560  25 2b 33 30 0d 1e 1e 2e  41 25 3d 64 6f 25 3a 42  |%+30....A%=do%:B|
00007570  25 3d 73 65 65 25 3a 43  25 3d 31 3a d6 20 6d 65  |%=see%:C%=1:. me|
00007580  72 67 65 73 63 72 25 3a  f2 73 63 72 63 6f 70 79  |rgescr%:.scrcopy|
00007590  32 31 0d 1e 28 3e 73 65  65 25 3d 31 3a 64 6f 25  |21..(>see%=1:do%|
000075a0  3d 32 3a c8 96 3a c8 99  20 22 4f 53 5f 42 79 74  |=2:..:.. "OS_Byt|
000075b0  65 22 2c 31 31 33 2c 73  65 65 25 3a c8 99 20 22  |e",113,see%:.. "|
000075c0  4f 53 5f 42 79 74 65 22  2c 31 31 32 2c 64 6f 25  |OS_Byte",112,do%|
000075d0  0d 1e 32 2f 6d 78 25 3d  6f 6f 6d 78 25 3a 6d 79  |..2/mx%=oomx%:my|
000075e0  25 3d 6f 6f 6d 79 25 3a  f2 6d 6f 75 73 65 66 75  |%=oomy%:.mousefu|
000075f0  6c 6c 3a c8 97 20 b8 20  6d 78 25 2c 6d 79 25 0d  |ll:.. . mx%,my%.|
00007600  1e 3c 05 e1 0d 1e 46 04  0d 1e 50 0f dd f2 70 6c  |.<....F...P...pl|
00007610  6f 74 73 74 61 72 73 0d  1e 5a 0c e3 6a 25 3d 30  |otstars..Z..j%=0|
00007620  b8 33 31 0d 1e 64 1f 20  e7 73 74 25 28 6a 25 2c  |.31..d. .st%(j%,|
00007630  32 29 3d 6c 25 3a 73 74  25 28 6a 25 2c 33 29 3d  |2)=l%:st%(j%,3)=|
00007640  2d 31 0d 1e 6e 1f 20 e7  28 73 74 25 28 6a 25 2c  |-1..n. .(st%(j%,|
00007650  34 29 3c 39 29 80 73 74  25 28 6a 25 2c 33 29 20  |4)<9).st%(j%,3) |
00007660  8c 0d 1e 78 15 20 20 e7  73 74 25 28 6a 25 2c 34  |...x.  .st%(j%,4|
00007670  29 3c 3d 35 20 8c 0d 1e  82 88 20 20 20 c8 99 20  |)<=5 .....   .. |
00007680  22 4f 53 5f 53 70 72 69  74 65 4f 70 22 2c 26 31  |"OS_SpriteOp",&1|
00007690  33 34 2c 62 75 74 61 72  65 61 25 2c 22 73 74 61  |34,butarea%,"sta|
000076a0  72 22 2b c3 28 73 74 25  28 6a 25 2c 34 29 29 2c  |r"+.(st%(j%,4)),|
000076b0  73 61 79 78 25 2b 73 74  25 28 6a 25 2c 30 29 2b  |sayx%+st%(j%,0)+|
000076c0  28 32 2a 28 37 2d 73 74  25 28 6a 25 2c 34 29 29  |(2*(7-st%(j%,4))|
000076d0  29 2c 73 61 79 79 25 2b  73 74 25 28 6a 25 2c 31  |),sayy%+st%(j%,1|
000076e0  29 2b 28 34 2a 28 35 2d  73 74 25 28 6a 25 2c 34  |)+(4*(5-st%(j%,4|
000076f0  29 29 29 2c 38 2c 73 63  61 6c 65 25 2c 30 0d 1e  |))),8,scale%,0..|
00007700  8c 07 20 20 cc 0d 1e 96  64 20 20 20 c8 99 20 22  |..  ....d   .. "|
00007710  4f 53 5f 53 70 72 69 74  65 4f 70 22 2c 26 31 33  |OS_SpriteOp",&13|
00007720  34 2c 62 75 74 61 72 65  61 25 2c 22 73 74 61 72  |4,butarea%,"star|
00007730  22 2b c3 28 73 74 25 28  6a 25 2c 34 29 29 2c 73  |"+.(st%(j%,4)),s|
00007740  61 79 78 25 2b 73 74 25  28 6a 25 2c 30 29 2c 73  |ayx%+st%(j%,0),s|
00007750  61 79 79 25 2b 73 74 25  28 6a 25 2c 31 29 2c 38  |ayy%+st%(j%,1),8|
00007760  2c 73 63 61 6c 65 25 2c  30 0d 1e a0 07 20 20 cd  |,scale%,0....  .|
00007770  0d 1e aa 06 20 cd 0d 1e  b4 10 20 e7 73 74 25 28  |.... ..... .st%(|
00007780  6a 25 2c 33 29 8c 0d 1e  be 3e 20 20 e7 6c 25 3c  |j%,3)....>  .l%<|
00007790  31 30 3a 73 74 25 28 6a  25 2c 34 29 3d 28 73 74  |10:st%(j%,4)=(st|
000077a0  25 28 6a 25 2c 34 29 2b  31 29 83 39 3a 8b 3a 73  |%(j%,4)+1).9:.:s|
000077b0  74 25 28 6a 25 2c 34 29  3d 73 74 25 28 6a 25 2c  |t%(j%,4)=st%(j%,|
000077c0  34 29 2b 31 0d 1e c8 06  20 cd 0d 1e d2 05 ed 0d  |4)+1.... .......|
000077d0  1e dc 05 e1 0d 1e e6 04  0d 1e f0 1d dd f2 6d 61  |..............ma|
000077e0  73 6b 73 70 72 69 74 65  28 61 72 65 61 25 2c 6e  |sksprite(area%,n|
000077f0  6f 73 70 25 29 0d 1e fa  08 ea 20 6a 25 0d 1f 04  |osp%)..... j%...|
00007800  2e f4 53 59 53 22 4f 53  5f 42 79 74 65 22 2c 31  |..SYS"OS_Byte",1|
00007810  31 32 2c 31 3a 53 59 53  22 4f 53 5f 42 79 74 65  |12,1:SYS"OS_Byte|
00007820  22 2c 31 31 33 2c 31 3a  43 4c 47 0d 1f 0e 11 e3  |",113,1:CLG.....|
00007830  6a 25 3d 30 b8 6e 6f 73  70 25 2d 31 0d 1f 18 25  |j%=0.nosp%-1...%|
00007840  f4 50 52 49 4e 54 20 6d  61 73 6b 73 70 24 28 6a  |.PRINT masksp$(j|
00007850  25 29 3b 22 20 22 3b 7e  61 72 65 61 25 3b 22 20  |%);" ";~area%;" |
00007860  22 0d 1f 22 17 f4 64 65  62 75 67 24 3d 6d 61 73  |".."..debug$=mas|
00007870  6b 73 70 24 28 6a 25 29  0d 1f 2c 2b 20 c8 99 22  |ksp$(j%)..,+ .."|
00007880  4f 53 5f 53 70 72 69 74  65 4f 70 22 2c 26 31 31  |OS_SpriteOp",&11|
00007890  44 2c 61 72 65 61 25 2c  6d 61 73 6b 73 70 24 28  |D,area%,masksp$(|
000078a0  6a 25 29 0d 1f 36 4f 20  c8 99 20 22 4f 53 5f 53  |j%)..6O .. "OS_S|
000078b0  70 72 69 74 65 4f 70 22  2c 26 31 31 38 2c 61 72  |priteOp",&118,ar|
000078c0  65 61 25 2c 6d 61 73 6b  73 70 24 28 6a 25 29 20  |ea%,masksp$(j%) |
000078d0  b8 20 2c 2c 43 25 3a 41  25 3d 43 25 2b 28 43 25  |. ,,C%:A%=C%+(C%|
000078e0  21 33 32 29 3a 42 25 3d  43 25 2b 28 43 25 21 33  |!32):B%=C%+(C%!3|
000078f0  36 29 0d 1f 40 52 20 c8  99 22 4f 53 5f 53 70 72  |6)..@R .."OS_Spr|
00007900  69 74 65 4f 70 22 2c 26  31 32 38 2c 61 72 65 61  |iteOp",&128,area|
00007910  25 2c 6d 61 73 6b 73 70  24 28 6a 25 29 20 b8 20  |%,masksp$(j%) . |
00007920  2c 2c 2c 43 25 2c 44 25  3a e7 28 43 25 83 38 29  |,,,C%,D%:.(C%.8)|
00007930  3c 3e 30 3a 43 25 3d 28  a8 28 43 25 2f 38 29 2b  |<>0:C%=(.(C%/8)+|
00007940  31 29 2a 38 0d 1f 4a 20  20 43 25 3d 28 43 25 2a  |1)*8..J  C%=(C%*|
00007950  44 25 29 2f 32 3a 44 25  3d 6d 61 73 6b 73 70 25  |D%)/2:D%=masksp%|
00007960  28 6a 25 29 0d 1f 54 0f  20 d6 20 61 64 64 6d 61  |(j%)..T. . addma|
00007970  73 6b 25 0d 1f 5e 05 ed  0d 1f 68 05 e1 0d 1f 72  |sk%..^....h....r|
00007980  04 0d 1f 7c 28 dd f2 6c  6f 61 64 75 6e 73 71 75  |...|(..loadunsqu|
00007990  61 73 68 28 61 72 65 61  25 2c 61 72 65 61 73 69  |ash(area%,areasi|
000079a0  7a 25 2c 66 69 6c 65 24  29 0d 1f 86 10 f2 6c 6f  |z%,file$).....lo|
000079b0  61 64 28 66 69 6c 65 24  29 0d 1f 90 1d f2 75 6e  |ad(file$).....un|
000079c0  73 71 75 61 73 68 28 61  72 65 61 25 2c 61 72 65  |squash(area%,are|
000079d0  61 73 69 7a 25 29 0d 1f  9a 05 e1 0d 1f a4 04 0d  |asiz%)..........|
000079e0  1f ae 11 dd f2 6c 6f 61  64 28 66 69 6c 65 24 29  |.....load(file$)|
000079f0  0d 1f b8 30 ff 22 4c 4f  41 44 20 3c 45 6c 66 4b  |...0."LOAD <ElfK|
00007a00  24 63 68 61 69 6e 64 69  72 3e 2e 22 2b 66 69 6c  |$chaindir>."+fil|
00007a10  65 24 2b 22 20 22 2b c3  7e 73 71 66 69 6c 65 25  |e$+" "+.~sqfile%|
00007a20  0d 1f c2 38 c8 99 20 22  4f 53 5f 46 69 6c 65 22  |...8.. "OS_File"|
00007a30  2c 35 2c 22 3c 45 6c 66  4b 24 63 68 61 69 6e 64  |,5,"<ElfK$chaind|
00007a40  69 72 3e 2e 22 2b 66 69  6c 65 24 20 b8 20 2c 2c  |ir>."+file$ . ,,|
00007a50  2c 2c 73 71 73 69 7a 25  0d 1f cc 05 e1 0d 1f d6  |,,sqsiz%........|
00007a60  04 0d 1f e0 1f dd f2 75  6e 73 71 75 61 73 68 28  |.......unsquash(|
00007a70  6f 75 74 70 74 72 25 2c  6f 75 74 73 69 7a 25 29  |outptr%,outsiz%)|
00007a80  0d 1f ea 52 c8 99 20 22  53 71 75 61 73 68 5f 44  |...R.. "Squash_D|
00007a90  65 63 6f 6d 70 72 65 73  73 22 2c 25 31 30 30 2c  |ecompress",%100,|
00007aa0  73 71 62 75 66 66 65 72  25 2c 73 71 66 69 6c 65  |sqbuffer%,sqfile|
00007ab0  25 2b 32 30 2c 73 71 73  69 7a 25 2d 32 30 2c 6f  |%+20,sqsiz%-20,o|
00007ac0  75 74 70 74 72 25 2b 34  2c 6f 75 74 73 69 7a 25  |utptr%+4,outsiz%|
00007ad0  2d 34 0d 1f f4 27 21 73  70 61 72 65 61 32 25 3d  |-4...'!sparea2%=|
00007ae0  73 70 61 72 65 61 32 73  69 7a 25 3a 73 70 61 72  |sparea2siz%:spar|
00007af0  65 61 32 25 21 38 3d 31  36 0d 1f fe 22 c8 99 20  |ea2%!8=16...".. |
00007b00  22 4f 53 5f 53 70 72 69  74 65 4f 70 22 2c 26 31  |"OS_SpriteOp",&1|
00007b10  30 39 2c 73 70 61 72 65  61 32 25 0d 20 08 05 e1  |09,sparea2%. ...|
00007b20  0d 20 12 04 0d 20 1c 31  dd f2 66 61 64 65 28 78  |. ... .1..fade(x|
00007b30  25 2c 79 25 2c 63 6f 6c  5f 73 74 25 2c 63 79 63  |%,y%,col_st%,cyc|
00007b40  6c 65 25 2c 74 6f 74 63  79 63 6c 65 73 25 2c 66  |le%,totcycles%,f|
00007b50  61 64 65 24 29 0d 20 26  3d c8 99 22 4f 53 5f 53  |ade$). &=.."OS_S|
00007b60  70 72 69 74 65 4f 70 22  2c 26 31 32 38 2c 73 70  |priteOp",&128,sp|
00007b70  61 72 65 61 25 2c 66 61  64 65 24 20 b8 20 72 30  |area%,fade$ . r0|
00007b80  2c 72 31 2c 72 32 2c 41  25 2c 42 25 2c 72 35 2c  |,r1,r2,A%,B%,r5,|
00007b90  72 36 0d 20 30 0b 41 25  3d 41 25 2f 32 0d 20 3a  |r6. 0.A%=A%/2. :|
00007ba0  2a 43 25 3d 28 78 25 2f  34 29 2b 28 28 28 39 36  |*C%=(x%/4)+(((96|
00007bb0  30 2d 79 25 29 2f 28 34  2f 63 67 61 76 67 61 25  |0-y%)/(4/cgavga%|
00007bc0  29 29 2a 33 32 30 29 0d  20 44 15 44 25 3d 34 3a  |))*320). D.D%=4:|
00007bd0  45 25 3d 63 67 61 76 67  61 25 2a 34 0d 20 4e 33  |E%=cgavga%*4. N3|
00007be0  c8 99 22 4f 53 5f 53 70  72 69 74 65 4f 70 22 2c  |.."OS_SpriteOp",|
00007bf0  26 31 31 38 2c 73 70 61  72 65 61 25 2c 66 61 64  |&118,sparea%,fad|
00007c00  65 24 20 b8 20 72 30 2c  72 31 2c 61 64 64 25 0d  |e$ . r0,r1,add%.|
00007c10  20 58 16 46 25 3d 61 64  64 25 2b 21 28 61 64 64  | X.F%=add%+!(add|
00007c20  25 2b 33 32 29 0d 20 62  10 47 25 3d 73 71 62 75  |%+32). b.G%=sqbu|
00007c30  66 66 65 72 25 0d 20 6c  15 d6 20 73 63 72 65 65  |ffer%. l.. scree|
00007c40  6e 5f 6f 66 66 73 65 74  73 25 0d 20 76 2a 41 25  |n_offsets%. v*A%|
00007c50  3d 74 6f 74 63 79 63 6c  65 73 25 20 20 20 20 20  |=totcycles%     |
00007c60  20 20 20 20 20 3a f4 20  74 6f 74 61 6c 20 63 79  |     :. total cy|
00007c70  63 6c 65 73 0d 20 80 22  42 25 3d 63 6f 6c 5f 73  |cles. ."B%=col_s|
00007c80  74 25 20 20 20 20 20 20  3a f4 20 6e 65 78 74 20  |t%      :. next |
00007c90  63 6f 6c 6f 75 72 0d 20  8a 3e 43 25 3d 63 79 63  |colour. .>C%=cyc|
00007ca0  6c 65 25 20 20 20 20 20  20 20 3a f4 20 6e 75 6d  |le%       :. num|
00007cb0  62 65 72 20 63 79 63 6c  65 73 20 62 65 66 6f 72  |ber cycles befor|
00007cc0  65 20 6e 65 78 74 20 63  6f 6c 6f 75 72 20 73 74  |e next colour st|
00007cd0  61 72 74 73 0d 20 94 38  44 25 3d 34 3a 45 25 3d  |arts. .8D%=4:E%=|
00007ce0  34 2a 63 67 61 76 67 61  25 20 3a f4 20 73 69 7a  |4*cgavga% :. siz|
00007cf0  65 73 20 78 20 61 6e 64  20 79 20 28 62 79 74 65  |es x and y (byte|
00007d00  73 20 70 65 72 20 70 69  78 65 6c 29 0d 20 9e 0b  |s per pixel). ..|
00007d10  e7 73 6c 6f 77 25 8c 0d  20 a8 22 20 46 25 3d 35  |.slow%.. ." F%=5|
00007d20  30 30 30 30 2f 28 32 2d  61 72 6d 33 25 29 20 20  |0000/(2-arm3%)  |
00007d30  20 3a f4 20 70 61 75 73  65 0d 20 b2 05 cc 0d 20  | :. pause. .... |
00007d40  bc 22 20 46 25 3d 31 30  30 30 30 2f 28 32 2d 61  |." F%=10000/(2-a|
00007d50  72 6d 33 25 29 20 20 20  3a f4 20 70 61 75 73 65  |rm3%)   :. pause|
00007d60  0d 20 c6 05 cd 0d 20 d0  3e 47 25 3d 73 71 62 75  |. .... .>G%=sqbu|
00007d70  66 66 65 72 25 20 20 20  20 3a f4 20 47 69 76 65  |ffer%    :. Give|
00007d80  20 63 6f 64 65 20 77 6f  72 6b 20 73 70 61 63 65  | code work space|
00007d90  20 74 6f 20 73 74 6f 72  65 20 61 64 64 72 65 73  | to store addres|
00007da0  73 65 73 0d 20 da 13 d6  20 65 66 66 65 63 74 5f  |ses. ... effect_|
00007db0  73 74 61 72 74 25 0d 20  e4 05 e1 0d 20 ee 04 0d  |start%. .... ...|
00007dc0  20 f8 24 dd f2 62 6f 78  28 78 25 2c 79 25 2c 73  | .$..box(x%,y%,s|
00007dd0  78 25 2c 73 79 25 2c 63  6f 6c 25 2c 6c 69 6e 65  |x%,sy%,col%,line|
00007de0  77 25 29 0d 21 02 33 ef  31 38 2c 30 2c 33 3a ef  |w%).!.3.18,0,3:.|
00007df0  32 35 2c 34 2c 78 25 3b  79 25 3b 3a ef 32 35 2c  |25,4,x%;y%;:.25,|
00007e00  31 30 31 2c 78 25 2b 73  78 25 2d 32 3b 79 25 2b  |101,x%+sx%-2;y%+|
00007e10  73 79 25 2d 32 3b 0d 21  0c 25 f2 63 6c 62 6f 78  |sy%-2;.!.%.clbox|
00007e20  28 78 25 2c 79 25 2c 73  78 25 2c 73 79 25 2c 63  |(x%,y%,sx%,sy%,c|
00007e30  6f 6c 25 2c 6c 69 6e 65  77 25 29 0d 21 16 05 e1  |ol%,linew%).!...|
00007e40  0d 21 20 04 0d 21 2a 26  dd f2 63 6c 62 6f 78 28  |.! ..!*&..clbox(|
00007e50  78 25 2c 79 25 2c 73 78  25 2c 73 79 25 2c 63 6f  |x%,y%,sx%,sy%,co|
00007e60  6c 25 2c 6c 69 6e 65 77  25 29 0d 21 34 46 ef 31  |l%,linew%).!4F.1|
00007e70  38 2c 30 2c 63 6f 6c 25  3a ef 32 35 2c 34 2c 78  |8,0,col%:.25,4,x|
00007e80  25 2b 6c 69 6e 65 77 25  3b 79 25 2b 34 3b 3a ef  |%+linew%;y%+4;:.|
00007e90  32 35 2c 31 30 31 2c 78  25 2b 73 78 25 2d 32 2d  |25,101,x%+sx%-2-|
00007ea0  6c 69 6e 65 77 25 3b 79  25 2b 73 79 25 2d 36 3b  |linew%;y%+sy%-6;|
00007eb0  0d 21 3e 05 e1 0d 21 48  04 0d 21 52 39 dd f2 73  |.!>...!H..!R9..s|
00007ec0  70 65 65 63 68 62 6f 78  28 78 25 2c 79 25 2c 73  |peechbox(x%,y%,s|
00007ed0  78 25 2c 73 79 25 2c 61  72 72 25 2c 61 72 72 66  |x%,sy%,arr%,arrf|
00007ee0  6c 69 70 25 2c 70 6f 73  25 2c 75 70 64 61 74 65  |lip%,pos%,update|
00007ef0  25 29 0d 21 5c 6c e7 75  70 64 61 74 65 25 3a 73  |%).!\l.update%:s|
00007f00  61 79 77 25 28 30 29 3d  78 25 3a 73 61 79 77 25  |ayw%(0)=x%:sayw%|
00007f10  28 31 29 3d 79 25 3a 73  61 79 77 25 28 32 29 3d  |(1)=y%:sayw%(2)=|
00007f20  73 78 25 3a 73 61 79 77  25 28 33 29 3d 73 79 25  |sx%:sayw%(3)=sy%|
00007f30  3a 73 61 79 77 25 28 34  29 3d 61 72 72 25 3a 73  |:sayw%(4)=arr%:s|
00007f40  61 79 77 25 28 35 29 3d  61 72 72 66 6c 69 70 25  |ayw%(5)=arrflip%|
00007f50  3a 73 61 79 77 25 28 36  29 3d 70 6f 73 25 0d 21  |:sayw%(6)=pos%.!|
00007f60  66 37 ef 31 38 2c 30 2c  33 3a ef 32 35 2c 34 2c  |f7.18,0,3:.25,4,|
00007f70  78 25 2b 34 30 3b 79 25  3b 3a ef 32 35 2c 31 30  |x%+40;y%;:.25,10|
00007f80  31 2c 78 25 2b 73 78 25  2d 34 32 3b 79 25 2b 73  |1,x%+sx%-42;y%+s|
00007f90  79 25 2d 32 3b 0d 21 70  39 ef 31 38 2c 30 2c 30  |y%-2;.!p9.18,0,0|
00007fa0  3a ef 32 35 2c 34 2c 78  25 2b 34 30 3b 79 25 2b  |:.25,4,x%+40;y%+|
00007fb0  34 3b 3a ef 32 35 2c 31  30 31 2c 78 25 2b 73 78  |4;:.25,101,x%+sx|
00007fc0  25 2d 34 32 3b 79 25 2b  73 79 25 2d 36 3b 0d 21  |%-42;y%+sy%-6;.!|
00007fd0  7a 37 ef 31 38 2c 30 2c  33 3a ef 32 35 2c 34 2c  |z7.18,0,3:.25,4,|
00007fe0  78 25 3b 79 25 2b 34 34  3b 3a ef 32 35 2c 31 30  |x%;y%+44;:.25,10|
00007ff0  31 2c 78 25 2b 73 78 25  2d 32 3b 79 25 2b 73 79  |1,x%+sx%-2;y%+sy|
00008000  25 2d 34 36 3b 0d 21 84  39 ef 31 38 2c 30 2c 30  |%-46;.!.9.18,0,0|
00008010  3a ef 32 35 2c 34 2c 78  25 2b 34 3b 79 25 2b 34  |:.25,4,x%+4;y%+4|
00008020  34 3b 3a ef 32 35 2c 31  30 31 2c 78 25 2b 73 78  |4;:.25,101,x%+sx|
00008030  25 2d 36 3b 79 25 2b 73  79 25 2d 34 36 3b 0d 21  |%-6;y%+sy%-46;.!|
00008040  8e 4a f2 73 70 65 65 63  68 62 75 62 73 28 78 25  |.J.speechbubs(x%|
00008050  2c 79 25 2c 73 78 25 2c  73 79 25 29 3a f2 73 70  |,y%,sx%,sy%):.sp|
00008060  65 65 63 68 62 6f 78 61  72 72 28 78 25 2c 79 25  |eechboxarr(x%,y%|
00008070  2c 61 72 72 25 2c 61 72  72 66 6c 69 70 25 2c 70  |,arr%,arrflip%,p|
00008080  6f 73 25 2c 73 79 25 29  0d 21 98 05 e1 0d 21 a2  |os%,sy%).!....!.|
00008090  04 0d 21 ac 1f dd f2 73  70 65 65 63 68 62 75 62  |..!....speechbub|
000080a0  73 28 78 25 2c 79 25 2c  73 78 25 2c 73 79 25 29  |s(x%,y%,sx%,sy%)|
000080b0  0d 21 b6 59 c8 99 22 4f  53 5f 53 70 72 69 74 65  |.!.Y.."OS_Sprite|
000080c0  4f 70 22 2c 26 31 33 34  2c 62 75 74 61 72 65 61  |Op",&134,butarea|
000080d0  25 2c 22 62 75 62 22 2c  78 25 2c 79 25 2b 73 79  |%,"bub",x%,y%+sy|
000080e0  25 2d 34 34 2c 38 2c 73  63 61 6c 65 25 2c 30 3a  |%-44,8,scale%,0:|
000080f0  f2 66 6c 69 70 28 62 75  74 61 72 65 61 25 2c 22  |.flip(butarea%,"|
00008100  79 22 2c 22 62 75 62 22  29 0d 21 c0 60 c8 99 22  |y","bub").!.`.."|
00008110  4f 53 5f 53 70 72 69 74  65 4f 70 22 2c 26 31 33  |OS_SpriteOp",&13|
00008120  34 2c 62 75 74 61 72 65  61 25 2c 22 62 75 62 22  |4,butarea%,"bub"|
00008130  2c 78 25 2b 73 78 25 2d  34 30 2c 79 25 2b 73 79  |,x%+sx%-40,y%+sy|
00008140  25 2d 34 34 2c 38 2c 73  63 61 6c 65 25 2c 30 3a  |%-44,8,scale%,0:|
00008150  f2 66 6c 69 70 28 62 75  74 61 72 65 61 25 2c 22  |.flip(butarea%,"|
00008160  78 22 2c 22 62 75 62 22  29 0d 21 ca 59 c8 99 22  |x","bub").!.Y.."|
00008170  4f 53 5f 53 70 72 69 74  65 4f 70 22 2c 26 31 33  |OS_SpriteOp",&13|
00008180  34 2c 62 75 74 61 72 65  61 25 2c 22 62 75 62 22  |4,butarea%,"bub"|
00008190  2c 78 25 2b 73 78 25 2d  34 30 2c 79 25 2c 38 2c  |,x%+sx%-40,y%,8,|
000081a0  73 63 61 6c 65 25 2c 30  3a f2 66 6c 69 70 28 62  |scale%,0:.flip(b|
000081b0  75 74 61 72 65 61 25 2c  22 79 22 2c 22 62 75 62  |utarea%,"y","bub|
000081c0  22 29 0d 21 d4 52 c8 99  22 4f 53 5f 53 70 72 69  |").!.R.."OS_Spri|
000081d0  74 65 4f 70 22 2c 26 31  33 34 2c 62 75 74 61 72  |teOp",&134,butar|
000081e0  65 61 25 2c 22 62 75 62  22 2c 78 25 2c 79 25 2c  |ea%,"bub",x%,y%,|
000081f0  38 2c 73 63 61 6c 65 25  2c 30 3a f2 66 6c 69 70  |8,scale%,0:.flip|
00008200  28 62 75 74 61 72 65 61  25 2c 22 78 22 2c 22 62  |(butarea%,"x","b|
00008210  75 62 22 29 0d 21 de 05  e1 0d 21 e8 04 0d 21 f2  |ub").!....!...!.|
00008220  30 dd f2 73 70 65 65 63  68 62 6f 78 61 72 72 28  |0..speechboxarr(|
00008230  78 25 2c 79 25 2c 61 72  72 25 2c 61 72 72 66 6c  |x%,y%,arr%,arrfl|
00008240  69 70 25 2c 70 6f 73 25  2c 73 79 25 29 0d 21 fc  |ip%,pos%,sy%).!.|
00008250  0c e7 61 72 72 25 3d 31  8c 0d 22 06 30 20 e7 61  |..arr%=1..".0 .a|
00008260  72 72 66 6c 69 70 25 3a  f2 66 6c 69 70 28 62 75  |rrflip%:.flip(bu|
00008270  74 61 72 65 61 25 2c 22  78 22 2c 22 62 75 62 22  |tarea%,"x","bub"|
00008280  2b c3 28 61 72 72 25 29  29 0d 22 10 46 20 c8 99  |+.(arr%)).".F ..|
00008290  22 4f 53 5f 53 70 72 69  74 65 4f 70 22 2c 26 31  |"OS_SpriteOp",&1|
000082a0  33 34 2c 62 75 74 61 72  65 61 25 2c 22 62 75 62  |34,butarea%,"bub|
000082b0  22 2b c3 28 61 72 72 25  29 2c 78 25 2d 36 38 2c  |"+.(arr%),x%-68,|
000082c0  70 6f 73 25 2c 38 2c 73  63 61 6c 65 25 2c 30 0d  |pos%,8,scale%,0.|
000082d0  22 1a 30 20 e7 61 72 72  66 6c 69 70 25 3a f2 66  |".0 .arrflip%:.f|
000082e0  6c 69 70 28 62 75 74 61  72 65 61 25 2c 22 78 22  |lip(butarea%,"x"|
000082f0  2c 22 62 75 62 22 2b c3  28 61 72 72 25 29 29 0d  |,"bub"+.(arr%)).|
00008300  22 24 05 cd 0d 22 2e 0c  e7 61 72 72 25 3d 32 8c  |"$..."...arr%=2.|
00008310  0d 22 38 30 20 e7 61 72  72 66 6c 69 70 25 3a f2  |."80 .arrflip%:.|
00008320  66 6c 69 70 28 62 75 74  61 72 65 61 25 2c 22 79  |flip(butarea%,"y|
00008330  22 2c 22 62 75 62 22 2b  c3 28 61 72 72 25 29 29  |","bub"+.(arr%))|
00008340  0d 22 42 47 20 c8 99 22  4f 53 5f 53 70 72 69 74  |."BG .."OS_Sprit|
00008350  65 4f 70 22 2c 26 31 33  34 2c 62 75 74 61 72 65  |eOp",&134,butare|
00008360  61 25 2c 22 62 75 62 22  2b c3 28 61 72 72 25 29  |a%,"bub"+.(arr%)|
00008370  2c 70 6f 73 25 2c 79 25  2d 31 30 38 2c 38 2c 73  |,pos%,y%-108,8,s|
00008380  63 61 6c 65 25 2c 30 0d  22 4c 30 20 e7 61 72 72  |cale%,0."L0 .arr|
00008390  66 6c 69 70 25 3a f2 66  6c 69 70 28 62 75 74 61  |flip%:.flip(buta|
000083a0  72 65 61 25 2c 22 79 22  2c 22 62 75 62 22 2b c3  |rea%,"y","bub"+.|
000083b0  28 61 72 72 25 29 29 0d  22 56 05 cd 0d 22 60 0c  |(arr%))."V..."`.|
000083c0  e7 61 72 72 25 3d 33 8c  0d 22 6a 1f 20 f2 66 6c  |.arr%=3.."j. .fl|
000083d0  69 70 28 62 75 74 61 72  65 61 25 2c 22 78 22 2c  |ip(butarea%,"x",|
000083e0  22 62 75 62 32 22 29 0d  22 74 29 20 e7 61 72 72  |"bub2")."t) .arr|
000083f0  66 6c 69 70 25 3a f2 66  6c 69 70 28 62 75 74 61  |flip%:.flip(buta|
00008400  72 65 61 25 2c 22 79 22  2c 22 62 75 62 32 22 29  |rea%,"y","bub2")|
00008410  0d 22 7e 42 20 c8 99 22  4f 53 5f 53 70 72 69 74  |."~B .."OS_Sprit|
00008420  65 4f 70 22 2c 26 31 33  34 2c 62 75 74 61 72 65  |eOp",&134,butare|
00008430  61 25 2c 22 62 75 62 32  22 2c 70 6f 73 25 2c 79  |a%,"bub2",pos%,y|
00008440  25 2b 73 79 25 2d 34 2c  38 2c 73 63 61 6c 65 25  |%+sy%-4,8,scale%|
00008450  2c 30 0d 22 88 29 20 e7  61 72 72 66 6c 69 70 25  |,0.".) .arrflip%|
00008460  3a f2 66 6c 69 70 28 62  75 74 61 72 65 61 25 2c  |:.flip(butarea%,|
00008470  22 79 22 2c 22 62 75 62  32 22 29 0d 22 92 1f 20  |"y","bub2").".. |
00008480  f2 66 6c 69 70 28 62 75  74 61 72 65 61 25 2c 22  |.flip(butarea%,"|
00008490  78 22 2c 22 62 75 62 32  22 29 0d 22 9c 05 cd 0d  |x","bub2")."....|
000084a0  22 a6 0c e7 61 72 72 25  3d 34 8c 0d 22 b0 42 20  |"...arr%=4..".B |
000084b0  c8 99 22 4f 53 5f 53 70  72 69 74 65 4f 70 22 2c  |.."OS_SpriteOp",|
000084c0  26 31 33 34 2c 62 75 74  61 72 65 61 25 2c 22 62  |&134,butarea%,"b|
000084d0  75 62 33 22 2c 70 6f 73  25 2c 79 25 2b 73 79 25  |ub3",pos%,y%+sy%|
000084e0  2d 34 2c 38 2c 73 63 61  6c 65 25 2c 30 0d 22 ba  |-4,8,scale%,0.".|
000084f0  05 cd 0d 22 c4 05 e1 0d  22 ce 04 0d 22 d8 0e dd  |..."...."..."...|
00008500  f2 63 6c 73 70 65 65 63  68 0d 22 e2 13 ea 20 78  |.clspeech."... x|
00008510  25 2c 79 25 2c 73 78 25  2c 73 79 25 0d 22 ec 35  |%,y%,sx%,sy%.".5|
00008520  78 25 3d 73 61 79 77 25  28 30 29 3a 79 25 3d 73  |x%=sayw%(0):y%=s|
00008530  61 79 77 25 28 31 29 3a  73 78 25 3d 73 61 79 77  |ayw%(1):sx%=sayw|
00008540  25 28 32 29 3a 73 79 25  3d 73 61 79 77 25 28 33  |%(2):sy%=sayw%(3|
00008550  29 0d 22 f6 3b ef 31 38  2c 30 2c 30 3a ef 32 35  |).".;.18,0,0:.25|
00008560  2c 34 2c 78 25 2b 32 34  3b 79 25 2b 32 34 3b 3a  |,4,x%+24;y%+24;:|
00008570  ef 32 35 2c 31 30 31 2c  78 25 2b 73 78 25 2d 32  |.25,101,x%+sx%-2|
00008580  36 3b 79 25 2b 73 79 25  2d 32 36 3b 0d 23 00 39  |6;y%+sy%-26;.#.9|
00008590  ef 31 38 2c 30 2c 30 3a  ef 32 35 2c 34 2c 78 25  |.18,0,0:.25,4,x%|
000085a0  2b 34 30 3b 79 25 2b 34  3b 3a ef 32 35 2c 31 30  |+40;y%+4;:.25,10|
000085b0  31 2c 78 25 2b 73 78 25  2d 34 32 3b 79 25 2b 73  |1,x%+sx%-42;y%+s|
000085c0  79 25 2d 36 3b 0d 23 0a  39 ef 31 38 2c 30 2c 30  |y%-6;.#.9.18,0,0|
000085d0  3a ef 32 35 2c 34 2c 78  25 2b 34 3b 79 25 2b 34  |:.25,4,x%+4;y%+4|
000085e0  34 3b 3a ef 32 35 2c 31  30 31 2c 78 25 2b 73 78  |4;:.25,101,x%+sx|
000085f0  25 2d 36 3b 79 25 2b 73  79 25 2d 34 36 3b 0d 23  |%-6;y%+sy%-46;.#|
00008600  14 05 e1 0d 23 1e 04 0d  23 28 14 dd a4 73 74 72  |....#...#(...str|
00008610  69 6e 67 73 69 7a 65 28  73 24 29 0d 23 32 0d ea  |ingsize(s$).#2..|
00008620  20 77 69 64 25 2c 68 25  0d 23 3c 38 c8 99 22 46  | wid%,h%.#<8.."F|
00008630  6f 6e 74 5f 46 69 6e 64  46 6f 6e 74 22 2c 2c 22  |ont_FindFont",,"|
00008640  74 61 62 6c 6f 69 64 2e  6d 65 64 69 75 6d 22 2c  |tabloid.medium",|
00008650  33 32 30 2c 33 36 30 2c  30 2c 30 20 b8 20 68 25  |320,360,0,0 . h%|
00008660  0d 23 46 0c 24 62 6c 6b  25 3d 73 24 0d 23 50 4c  |.#F.$blk%=s$.#PL|
00008670  c8 99 22 46 6f 6e 74 5f  53 74 72 69 6e 67 57 69  |.."Font_StringWi|
00008680  64 74 68 22 2c 2c 62 6c  6b 25 2c 36 30 30 30 30  |dth",,blk%,60000|
00008690  30 2c 34 38 30 30 30 2c  2d 31 2c 38 30 20 b8 20  |0,48000,-1,80 . |
000086a0  72 30 25 2c 72 31 25 2c  77 69 64 25 2c 72 33 25  |r0%,r1%,wid%,r3%|
000086b0  2c 72 34 25 2c 72 35 25  0d 23 5a 18 c8 99 22 46  |,r4%,r5%.#Z..."F|
000086c0  6f 6e 74 5f 4c 6f 73 65  46 6f 6e 74 22 2c 68 25  |ont_LoseFont",h%|
000086d0  0d 23 64 0d 3d 77 69 64  25 2f 34 30 30 0d 23 6e  |.#d.=wid%/400.#n|
000086e0  04 0d 23 78 18 dd f2 63  61 63 68 65 73 6f 75 6e  |..#x...cachesoun|
000086f0  64 28 73 24 2c 63 68 25  29 0d 23 82 15 f4 53 59  |d(s$,ch%).#...SY|
00008700  53 20 26 34 36 31 38 37  2c 52 25 2c 4d 25 0d 23  |S &46187,R%,M%.#|
00008710  8c 2c c8 99 20 26 34 36  31 38 30 2c 52 25 2c 73  |.,.. &46180,R%,s|
00008720  24 2c 4d 25 2c 63 68 25  20 b8 20 2c 2c 4d 25 2c  |$,M%,ch% . ,,M%,|
00008730  70 72 65 76 6f 25 3b 66  6c 25 0d 23 96 14 e7 28  |prevo%;fl%.#...(|
00008740  66 6c 25 80 25 31 29 3d  25 31 20 8c 3a 85 0d 23  |fl%.%1)=%1 .:..#|
00008750  a0 05 e1 0d 23 aa 04 0d  23 b4 0d dd a4 6e 6f 73  |....#...#....nos|
00008760  6f 75 6e 64 0d 23 be 2c  c8 99 22 53 6f 75 6e 64  |ound.#.,.."Sound|
00008770  5f 52 65 61 64 43 6f 6e  74 72 6f 6c 42 6c 6f 63  |_ReadControlBloc|
00008780  6b 22 2c 31 2c 30 20 b8  20 2c 2c 73 63 63 62 25  |k",1,0 . ,,sccb%|
00008790  0d 23 c8 13 73 63 63 62  25 3d 73 63 63 62 25 3e  |.#..sccb%=sccb%>|
000087a0  3e 32 34 0d 23 d2 12 e7  73 63 63 62 25 3d 30 20  |>24.#...sccb%=0 |
000087b0  8c 3a 3d 2d 31 0d 23 dc  06 3d 30 0d 23 e6 04 0d  |.:=-1.#..=0.#...|
000087c0  23 f0 14 dd a4 72 65 61  64 73 74 72 69 6e 67 28  |#....readstring(|
000087d0  70 25 29 0d 23 fa 32 ea  61 24 3a 61 24 3d 22 22  |p%).#.2.a$:a$=""|
000087e0  3a c8 95 20 a9 61 24 3c  32 35 35 20 80 20 3f 70  |:.. .a$<255 . ?p|
000087f0  25 3e 33 31 20 61 24 2b  3d bd 3f 70 25 3a 70 25  |%>31 a$+=.?p%:p%|
00008800  2b 3d 31 3a ce 0d 24 04  07 3d 61 24 0d 24 0e 04  |+=1:..$..=a$.$..|
00008810  0d 24 18 14 dd a4 72 65  61 64 73 79 73 76 61 72  |.$....readsysvar|
00008820  28 61 24 29 0d 24 22 08  ea 20 70 25 0d 24 2c 4e  |(a$).$".. p%.$,N|
00008830  c8 99 20 22 4f 53 5f 52  65 61 64 56 61 72 56 61  |.. "OS_ReadVarVa|
00008840  6c 22 2c 61 24 2c 62 6c  6b 25 2c 38 30 2c 30 2c  |l",a$,blk%,80,0,|
00008850  30 20 b8 20 2c 2c 61 25  3a 61 24 3d 22 22 3a e3  |0 . ,,a%:a$="":.|
00008860  70 25 3d 30 b8 61 25 2d  31 3a 61 24 2b 3d bd 28  |p%=0.a%-1:a$+=.(|
00008870  62 6c 6b 25 3f 70 25 29  3a ed 0d 24 36 07 3d 61  |blk%?p%):..$6.=a|
00008880  24 0d 24 40 04 0d 24 4a  0b dd f2 64 75 6d 6d 79  |$.$@..$J...dummy|
00008890  0d 24 54 0a ef 37 3a 58  3d a5 0d 24 5e 21 f4 20  |.$T..7:X=..$^!. |
000088a0  27 63 6f 73 20 6c 61 73  74 20 50 52 4f 43 20 67  |'cos last PROC g|
000088b0  65 74 73 20 63 68 6f 70  70 65 64 0d 24 68 05 e1  |ets chopped.$h..|
000088c0  0d 24 72 04 0d 24 7c 4a  f4 20 2a 2a 2a 2a 2a 2a  |.$r..$|J. ******|
000088d0  2a 2a 2a 2a 2a 2a 2a 2a  20 44 45 42 55 47 20 53  |******** DEBUG S|
000088e0  45 43 54 49 4f 4e 20 2d  20 54 4f 20 42 45 20 52  |ECTION - TO BE R|
000088f0  45 4d 4f 56 45 44 20 20  2a 2a 2a 2a 2a 2a 2a 2a  |EMOVED  ********|
00008900  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 0d 24  |**************.$|
00008910  86 4a f4 20 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |.J. ************|
00008920  2a 2a 20 44 45 42 55 47  20 53 45 43 54 49 4f 4e  |** DEBUG SECTION|
00008930  20 2d 20 54 4f 20 42 45  20 52 45 4d 4f 56 45 44  | - TO BE REMOVED|
00008940  20 20 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |  **************|
00008950  2a 2a 2a 2a 2a 2a 2a 2a  0d 24 90 4a f4 20 2a 2a  |********.$.J. **|
00008960  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 20 44 45 42  |************ DEB|
00008970  55 47 20 53 45 43 54 49  4f 4e 20 2d 20 54 4f 20  |UG SECTION - TO |
00008980  42 45 20 52 45 4d 4f 56  45 44 20 20 2a 2a 2a 2a  |BE REMOVED  ****|
00008990  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
000089a0  2a 2a 0d 24 9a 4a f4 20  2a 2a 2a 2a 2a 2a 2a 2a  |**.$.J. ********|
000089b0  2a 2a 2a 2a 2a 2a 20 44  45 42 55 47 20 53 45 43  |****** DEBUG SEC|
000089c0  54 49 4f 4e 20 2d 20 54  4f 20 42 45 20 52 45 4d  |TION - TO BE REM|
000089d0  4f 56 45 44 20 20 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |OVED  **********|
000089e0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 0d 24 a4 04  |************.$..|
000089f0  0d 24 ae 0f dd f2 64 65  62 75 67 69 6e 69 74 0d  |.$....debuginit.|
00008a00  24 b8 1a de 20 62 6c 6b  32 25 20 32 35 36 2c 73  |$... blk2% 256,s|
00008a10  74 6e 61 6d 65 25 20 32  30 0d 24 c2 05 e1 0d 24  |tname% 20.$....$|
00008a20  cc 04 0d 24 d6 11 dd f2  6c 69 73 74 73 70 72 69  |...$....listspri|
00008a30  74 65 73 0d 24 e0 09 ea  20 73 70 25 0d 24 ea 14  |tes.$... sp%.$..|
00008a40  e3 73 70 25 3d 31 b8 73  70 61 72 65 61 25 21 34  |.sp%=1.sparea%!4|
00008a50  0d 24 f4 31 20 c8 99 20  22 4f 53 5f 53 70 72 69  |.$.1 .. "OS_Spri|
00008a60  74 65 4f 70 22 2c 26 31  30 44 2c 73 70 61 72 65  |teOp",&10D,spare|
00008a70  61 25 2c 73 74 6e 61 6d  65 25 2c 32 30 2c 73 70  |a%,stname%,20,sp|
00008a80  25 0d 24 fe 20 20 f1 20  a4 72 65 61 64 73 74 72  |%.$.  . .readstr|
00008a90  69 6e 67 28 73 74 6e 61  6d 65 25 29 3b 22 20 22  |ing(stname%);" "|
00008aa0  3b 0d 25 08 05 ed 0d 25  12 05 e1 0d 25 1c 04 0d  |;.%....%....%...|
00008ab0  25 26 0b dd f2 64 65 62  75 67 0d 25 30 0e f2 64  |%&...debug.%0..d|
00008ac0  65 62 75 67 69 6e 69 74  0d 25 3a 0f f2 74 65 73  |ebuginit.%:..tes|
00008ad0  74 73 70 65 65 63 68 0d  25 44 15 f4 50 52 4f 43  |tspeech.%D..PROC|
00008ae0  62 6c 75 65 77 6f 72 64  72 65 63 74 0d 25 4e 12  |bluewordrect.%N.|
00008af0  f4 50 52 4f 43 70 6f 73  73 70 72 69 74 65 0d 25  |.PROCpossprite.%|
00008b00  58 15 f4 50 52 4f 43 70  6f 73 73 70 65 65 63 68  |X..PROCposspeech|
00008b10  62 6f 78 0d 25 62 0d f4  50 52 4f 43 6f 64 64 73  |box.%b..PROCodds|
00008b20  0d 25 6c 05 e1 0d 25 76  04 0d 25 80 0a dd f2 6f  |.%l...%v..%....o|
00008b30  64 64 73 0d 25 8a 3f f1  20 77 61 6c 6b 25 2c 73  |dds.%.?. walk%,s|
00008b40  74 65 70 25 2c 64 69 72  6e 25 2c 70 6f 73 78 25  |tep%,dirn%,posx%|
00008b50  2c 70 6f 73 79 25 2c 67  72 69 64 78 25 2c 67 72  |,posy%,gridx%,gr|
00008b60  69 64 79 25 2c 6d 6f 76  65 78 25 2c 6d 6f 76 65  |idy%,movex%,move|
00008b70  79 25 0d 25 94 0a ef 37  3a 58 3d a5 0d 25 9e 05  |y%.%...7:X=..%..|
00008b80  e1 0d 25 a8 04 0d 25 b2  10 dd f2 74 65 73 74 73  |..%...%....tests|
00008b90  70 65 65 63 68 0d 25 bc  0c e3 6a 25 3d 30 b8 31  |peech.%...j%=0.1|
00008ba0  34 0d 25 c6 1f 20 c8 99  22 4f 53 5f 42 79 74 65  |4.%.. .."OS_Byte|
00008bb0  22 2c 32 31 2c 39 3a f2  77 61 69 74 28 35 30 29  |",21,9:.wait(50)|
00008bc0  0d 25 d0 28 20 c8 99 22  4f 53 5f 42 79 74 65 22  |.%.( .."OS_Byte"|
00008bd0  2c 31 31 32 2c 32 3a c8  99 22 4f 53 5f 42 79 74  |,112,2:.."OS_Byt|
00008be0  65 22 2c 31 31 33 2c 31  0d 25 da 29 20 ef 31 38  |e",113,1.%.) .18|
00008bf0  2c 30 2c 30 3a ef 32 35  2c 34 2c 30 3b 30 3b 3a  |,0,0:.25,4,0;0;:|
00008c00  ef 32 35 2c 31 30 31 2c  31 32 37 38 3b 39 35 38  |.25,101,1278;958|
00008c10  3b 0d 25 e4 18 20 73 61  79 78 25 3d 35 30 30 3a  |;.%.. sayx%=500:|
00008c20  73 61 79 79 25 3d 35 30  30 0d 25 ee 46 20 c8 99  |sayy%=500.%.F ..|
00008c30  20 22 4f 53 5f 53 70 72  69 74 65 4f 70 22 2c 26  | "OS_SpriteOp",&|
00008c40  31 33 34 2c 62 75 74 61  72 65 61 25 2c 22 72 65  |134,butarea%,"re|
00008c50  61 64 65 72 22 2c 73 61  79 78 25 2d 34 32 2c 73  |ader",sayx%-42,s|
00008c60  61 79 79 25 2c 38 2c 73  63 61 6c 65 25 2c 30 0d  |ayy%,8,scale%,0.|
00008c70  25 f8 45 20 f2 77 6f 72  64 73 28 33 38 30 2c 34  |%.E .words(380,4|
00008c80  30 30 2c 2d 31 2c 33 2c  30 2c 30 2c c3 28 6a 25  |00,-1,3,0,0,.(j%|
00008c90  29 2b 22 20 20 22 2b 73  61 79 24 28 6a 25 2c 32  |)+"  "+say$(j%,2|
00008ca0  29 2b 22 20 20 20 20 22  2b 73 61 79 24 28 6a 25  |)+"    "+say$(j%|
00008cb0  2c 31 29 29 0d 26 02 0f  20 f2 73 63 72 63 6f 70  |,1)).&.. .scrcop|
00008cc0  79 32 31 0d 26 0c 3c 20  73 65 65 25 3d 31 3a 64  |y21.&.< see%=1:d|
00008cd0  6f 25 3d 32 3a c8 99 20  22 4f 53 5f 42 79 74 65  |o%=2:.. "OS_Byte|
00008ce0  22 2c 31 31 33 2c 73 65  65 25 3a c8 99 20 22 4f  |",113,see%:.. "O|
00008cf0  53 5f 42 79 74 65 22 2c  31 31 32 2c 64 6f 25 0d  |S_Byte",112,do%.|
00008d00  26 16 1e 20 f2 63 61 63  68 65 73 6f 75 6e 64 28  |&.. .cachesound(|
00008d10  73 61 79 24 28 6a 25 2c  31 29 2c 31 29 0d 26 20  |say$(j%,1),1).& |
00008d20  06 20 f5 0d 26 2a 16 20  20 c8 97 20 6d 78 25 2c  |. ..&*.  .. mx%,|
00008d30  6d 79 25 2c 6d 62 75 74  25 0d 26 34 10 20 20 e7  |my%,mbut%.&4.  .|
00008d40  6d 62 75 74 25 3d 34 20  8c 0d 26 3e 3b 20 20 20  |mbut%=4 ..&>;   |
00008d50  6d 24 3d 73 61 79 24 28  6a 25 2c 32 29 3a 6d 25  |m$=say$(j%,2):m%|
00008d60  3d bb 6d 24 3a 6d 24 3d  c2 6d 24 2c a9 28 6d 24  |=.m$:m$=.m$,.(m$|
00008d70  29 2d 32 29 3a 6c 61 73  74 74 69 6d 65 25 3d 91  |)-2):lasttime%=.|
00008d80  2d 31 30 30 0d 26 48 13  20 20 20 d4 20 31 2c 26  |-100.&H.   . 1,&|
00008d90  31 37 46 2c 31 2c 31 0d  26 52 08 20 20 20 f5 0d  |17F,1,1.&R.   ..|
00008da0  26 5c 3a 20 20 20 20 6d  24 3d c2 6d 24 2c a9 28  |&\:    m$=.m$,.(|
00008db0  6d 24 29 2d 31 29 3a ef  32 34 2c 73 61 79 78 25  |m$)-1):.24,sayx%|
00008dc0  3b 73 61 79 79 25 3b 73  61 79 78 25 2b 36 32 3b  |;sayy%;sayx%+62;|
00008dd0  73 61 79 79 25 2b 34 38  3b 0d 26 66 2c 20 20 20  |sayy%+48;.&f,   |
00008de0  20 ef 31 38 2c 30 2c 30  3a ef 32 35 2c 34 2c 30  | .18,0,0:.25,4,0|
00008df0  3b 30 3b 3a ef 32 35 2c  31 30 31 2c 31 32 37 38  |;0;:.25,101,1278|
00008e00  3b 39 35 38 3b 0d 26 70  49 20 20 20 20 c8 99 20  |;958;.&pI    .. |
00008e10  22 4f 53 5f 53 70 72 69  74 65 4f 70 22 2c 26 31  |"OS_SpriteOp",&1|
00008e20  33 34 2c 62 75 74 61 72  65 61 25 2c 22 72 65 61  |34,butarea%,"rea|
00008e30  64 65 72 22 2c 73 61 79  78 25 2d 34 32 2c 73 61  |der",sayx%-42,sa|
00008e40  79 79 25 2c 38 2c 73 63  61 6c 65 25 2c 30 0d 26  |yy%,8,scale%,0.&|
00008e50  7a 0f 20 20 20 20 e7 bb  6d 24 3e 30 8c 0d 26 84  |z.    ..m$>0..&.|
00008e60  9c 20 20 20 20 20 e7 bb  28 c0 6d 24 2c 31 29 29  |.     ..(.m$,1))|
00008e70  3d 31 3a c8 99 20 22 4f  53 5f 53 70 72 69 74 65  |=1:.. "OS_Sprite|
00008e80  4f 70 22 2c 26 31 33 34  2c 62 75 74 61 72 65 61  |Op",&134,butarea|
00008e90  25 2c 22 6d 22 2b c0 6d  24 2c 31 29 2c 73 61 79  |%,"m"+.m$,1),say|
00008ea0  78 25 2c 73 61 79 79 25  2c 38 2c 73 63 61 6c 65  |x%,sayy%,8,scale|
00008eb0  25 2c 30 3a 8b 3a c8 99  20 22 4f 53 5f 53 70 72  |%,0:.:.. "OS_Spr|
00008ec0  69 74 65 4f 70 22 2c 26  31 33 34 2c 62 75 74 61  |iteOp",&134,buta|
00008ed0  72 65 61 25 2c 22 6d 22  2b c0 6d 24 2c 31 29 2c  |rea%,"m"+.m$,1),|
00008ee0  73 61 79 78 25 2c 73 61  79 79 25 2b 32 34 2c 38  |sayx%,sayy%+24,8|
00008ef0  2c 73 63 61 6c 65 25 2c  30 0d 26 8e 09 20 20 20  |,scale%,0.&..   |
00008f00  20 cd 0d 26 98 1e 20 20  20 20 ef 32 36 3a f5 3a  | ..&..    .26:.:|
00008f10  fd 20 91 3e 6c 61 73 74  74 69 6d 65 25 2b 6d 25  |. .>lasttime%+m%|
00008f20  0d 26 a2 55 20 20 20 20  73 65 65 25 3d 25 31 30  |.&.U    see%=%10|
00008f30  30 3e 3e 3e 73 65 65 25  3a 64 6f 25 3d 25 31 30  |0>>>see%:do%=%10|
00008f40  30 3e 3e 3e 64 6f 25 3a  c8 96 3a c8 99 20 22 4f  |0>>>do%:..:.. "O|
00008f50  53 5f 42 79 74 65 22 2c  31 31 33 2c 73 65 65 25  |S_Byte",113,see%|
00008f60  3a c8 99 20 22 4f 53 5f  42 79 74 65 22 2c 31 31  |:.. "OS_Byte",11|
00008f70  32 2c 64 6f 25 0d 26 ac  13 20 20 20 20 6c 61 73  |2,do%.&..    las|
00008f80  74 74 69 6d 65 25 3d 91  0d 26 b6 10 20 20 20 fd  |ttime%=..&..   .|
00008f90  20 bb 28 6d 24 29 3d 30  0d 26 c0 07 20 20 cd 0d  | .(m$)=0.&..  ..|
00008fa0  26 ca 0e 20 fd 20 6d 62  75 74 25 3d 31 0d 26 d4  |&.. . mbut%=1.&.|
00008fb0  05 ed 0d 26 de 07 58 3d  a5 0d 26 e8 05 e1 0d 26  |...&..X=..&....&|
00008fc0  f2 04 0d 26 fc 0f dd f2  74 69 6d 65 73 6f 75 6e  |...&....timesoun|
00008fd0  64 0d 27 06 32 f2 63 61  63 68 65 73 6f 75 6e 64  |d.'.2.cachesound|
00008fe0  28 22 66 78 67 72 69 6e  64 22 2c 31 29 3a 74 74  |("fxgrind",1):tt|
00008ff0  69 6d 65 25 3d 91 3a d4  20 31 2c 26 31 37 46 2c  |ime%=.:. 1,&17F,|
00009000  31 2c 31 0d 27 10 10 f5  3a fd 20 a4 6e 6f 73 6f  |1,1.'...:. .noso|
00009010  75 6e 64 0d 27 1a 0d 74  74 74 69 6d 65 25 3d 91  |und.'..tttime%=.|
00009020  0d 27 24 14 f1 20 74 74  74 69 6d 65 25 2d 74 74  |.'$.. tttime%-tt|
00009030  69 6d 65 25 0d 27 2e 07  58 3d a5 0d 27 38 05 e1  |ime%.'..X=..'8..|
00009040  0d 27 42 04 0d 27 4c 12  dd f2 70 6f 73 73 70 65  |.'B..'L...posspe|
00009050  65 63 68 62 6f 78 0d 27  56 3b 73 65 65 25 3d 31  |echbox.'V;see%=1|
00009060  3a 64 6f 25 3d 31 3a c8  99 20 22 4f 53 5f 42 79  |:do%=1:.. "OS_By|
00009070  74 65 22 2c 31 31 33 2c  73 65 65 25 3a c8 99 20  |te",113,see%:.. |
00009080  22 4f 53 5f 42 79 74 65  22 2c 31 31 32 2c 64 6f  |"OS_Byte",112,do|
00009090  25 0d 27 60 26 ef 32 38  2c 30 2c 31 2c 37 30 2c  |%.'`&.28,0,1,70,|
000090a0  30 3a fb 20 33 3a c8 97  20 ee 20 31 3a f2 6d 6f  |0:. 3:.. . 1:.mo|
000090b0  75 73 65 66 75 6c 6c 0d  27 6a 05 f5 0d 27 74 18  |usefull.'j...'t.|
000090c0  20 c8 97 20 6d 6d 78 25  2c 6d 6d 79 25 2c 6d 6d  | .. mmx%,mmy%,mm|
000090d0  62 75 74 25 0d 27 7e 22  20 f1 20 6d 6d 78 25 2d  |but%.'~" . mmx%-|
000090e0  28 6d 6d 78 25 83 32 29  2c 6d 6d 79 25 2d 28 6d  |(mmx%.2),mmy%-(m|
000090f0  6d 79 25 83 34 29 0d 27  88 49 20 e7 6d 6d 62 75  |my%.4).'.I .mmbu|
00009100  74 25 3d 34 3a f2 73 70  65 65 63 68 62 6f 78 28  |t%=4:.speechbox(|
00009110  6d 6d 78 25 2c 6d 6d 79  25 2c a4 73 74 72 69 6e  |mmx%,mmy%,.strin|
00009120  67 73 69 7a 65 28 22 48  65 6c 6c 6f 22 29 2b 38  |gsize("Hello")+8|
00009130  30 2c 31 30 38 2c 30 2c  30 2c 30 2c 2d 31 29 0d  |0,108,0,0,0,-1).|
00009140  27 92 3a 20 e7 6d 6d 62  75 74 25 3d 32 20 8c 3a  |'.: .mmbut%=2 .:|
00009150  f2 73 70 65 65 63 68 62  6f 78 61 72 72 28 73 61  |.speechboxarr(sa|
00009160  79 77 25 28 30 29 2d 36  38 2c 30 2c 31 2c 30 2c  |yw%(0)-68,0,1,0,|
00009170  6d 6d 79 25 2c 31 30 38  29 0d 27 9c 3b 20 e7 6d  |mmy%,108).'.; .m|
00009180  6d 62 75 74 25 3d 31 20  8c 3a f2 73 70 65 65 63  |mbut%=1 .:.speec|
00009190  68 62 6f 78 61 72 72 28  30 2c 73 61 79 77 25 28  |hboxarr(0,sayw%(|
000091a0  31 29 2d 31 30 38 2c 32  2c 30 2c 6d 6d 78 25 2c  |1)-108,2,0,mmx%,|
000091b0  31 30 38 29 0d 27 a6 0e  fd 20 6d 6d 62 75 74 25  |108).'... mmbut%|
000091c0  3d 37 0d 27 b0 3b 73 65  65 25 3d 31 3a 64 6f 25  |=7.'.;see%=1:do%|
000091d0  3d 32 3a c8 99 20 22 4f  53 5f 42 79 74 65 22 2c  |=2:.. "OS_Byte",|
000091e0  31 31 33 2c 73 65 65 25  3a c8 99 20 22 4f 53 5f  |113,see%:.. "OS_|
000091f0  42 79 74 65 22 2c 31 31  32 2c 64 6f 25 0d 27 ba  |Byte",112,do%.'.|
00009200  07 ef 32 36 0d 27 c4 05  e1 0d 27 ce 04 0d 27 d8  |..26.'....'...'.|
00009210  0f dd f2 70 6f 73 73 70  72 69 74 65 0d 27 e2 3b  |...possprite.'.;|
00009220  73 65 65 25 3d 31 3a 64  6f 25 3d 31 3a c8 99 20  |see%=1:do%=1:.. |
00009230  22 4f 53 5f 42 79 74 65  22 2c 31 31 33 2c 73 65  |"OS_Byte",113,se|
00009240  65 25 3a c8 99 20 22 4f  53 5f 42 79 74 65 22 2c  |e%:.. "OS_Byte",|
00009250  31 31 32 2c 64 6f 25 0d  27 ec 26 ef 32 38 2c 30  |112,do%.'.&.28,0|
00009260  2c 32 2c 34 30 2c 30 3a  fb 20 33 3a c8 97 20 ee  |,2,40,0:. 3:.. .|
00009270  20 31 3a f2 6d 6f 75 73  65 66 75 6c 6c 0d 27 f6  | 1:.mousefull.'.|
00009280  05 f5 0d 28 00 18 20 c8  97 20 6d 6d 78 25 2c 6d  |...(.. .. mmx%,m|
00009290  6d 79 25 2c 6d 6d 62 75  74 25 0d 28 0a 22 20 f1  |my%,mmbut%.(." .|
000092a0  20 6d 6d 78 25 2d 28 6d  6d 78 25 83 32 29 2c 6d  | mmx%-(mmx%.2),m|
000092b0  6d 79 25 2d 28 6d 6d 79  25 83 34 29 0d 28 14 46  |my%-(mmy%.4).(.F|
000092c0  20 e7 6d 6d 62 75 74 25  3d 31 3a c8 99 22 4f 53  | .mmbut%=1:.."OS|
000092d0  5f 53 70 72 69 74 65 4f  70 22 2c 26 31 33 34 2c  |_SpriteOp",&134,|
000092e0  73 70 61 72 65 61 25 2c  22 62 65 64 22 2c 6d 6d  |sparea%,"bed",mm|
000092f0  78 25 2c 6d 6d 79 25 2c  38 2c 73 63 61 6c 65 25  |x%,mmy%,8,scale%|
00009300  2c 30 0d 28 1e 0e fd 20  6d 6d 62 75 74 25 3d 34  |,0.(... mmbut%=4|
00009310  0d 28 28 3b 73 65 65 25  3d 31 3a 64 6f 25 3d 32  |.((;see%=1:do%=2|
00009320  3a c8 99 20 22 4f 53 5f  42 79 74 65 22 2c 31 31  |:.. "OS_Byte",11|
00009330  33 2c 73 65 65 25 3a c8  99 20 22 4f 53 5f 42 79  |3,see%:.. "OS_By|
00009340  74 65 22 2c 31 31 32 2c  64 6f 25 0d 28 32 07 ef  |te",112,do%.(2..|
00009350  32 36 0d 28 3c 05 e1 0d  28 46 04 0d 28 50 12 dd  |26.(<...(F..(P..|
00009360  f2 62 6c 75 65 77 6f 72  64 72 65 63 74 0d 28 5a  |.bluewordrect.(Z|
00009370  3b 73 65 65 25 3d 31 3a  64 6f 25 3d 31 3a c8 99  |;see%=1:do%=1:..|
00009380  20 22 4f 53 5f 42 79 74  65 22 2c 31 31 33 2c 73  | "OS_Byte",113,s|
00009390  65 65 25 3a c8 99 20 22  4f 53 5f 42 79 74 65 22  |ee%:.. "OS_Byte"|
000093a0  2c 31 31 32 2c 64 6f 25  0d 28 64 33 ef 32 38 2c  |,112,do%.(d3.28,|
000093b0  30 2c 32 2c 34 30 2c 30  3a fb 20 33 3a c8 97 20  |0,2,40,0:. 3:.. |
000093c0  ee 20 31 3a f2 6d 6f 75  73 65 66 75 6c 6c 3a c8  |. 1:.mousefull:.|
000093d0  97 20 b8 20 35 30 30 2c  36 30 30 0d 28 6e 05 f5  |. . 500,600.(n..|
000093e0  0d 28 78 18 20 c8 97 20  6d 6d 78 25 2c 6d 6d 79  |.(x. .. mmx%,mmy|
000093f0  25 2c 6d 6d 62 75 74 25  0d 28 82 22 20 f1 20 6d  |%,mmbut%.(." . m|
00009400  6d 78 25 2d 28 6d 6d 78  25 83 32 29 2c 6d 6d 79  |mx%-(mmx%.2),mmy|
00009410  25 2d 28 6d 6d 79 25 83  34 29 0d 28 8c 0e fd 20  |%-(mmy%.4).(... |
00009420  6d 6d 62 75 74 25 3d 34  0d 28 96 3b 73 65 65 25  |mmbut%=4.(.;see%|
00009430  3d 31 3a 64 6f 25 3d 32  3a c8 99 20 22 4f 53 5f  |=1:do%=2:.. "OS_|
00009440  42 79 74 65 22 2c 31 31  33 2c 73 65 65 25 3a c8  |Byte",113,see%:.|
00009450  99 20 22 4f 53 5f 42 79  74 65 22 2c 31 31 32 2c  |. "OS_Byte",112,|
00009460  64 6f 25 0d 28 a0 23 ef  32 36 3a c8 99 22 4f 53  |do%.(.#.26:.."OS|
00009470  5f 42 79 74 65 22 2c 32  31 2c 39 3a 6f 6c 64 6d  |_Byte",21,9:oldm|
00009480  78 25 3d 35 30 30 0d 28  aa 05 e1 0d 28 b4 04 0d  |x%=500.(....(...|
00009490  ff                                                |.|
00009491